fix: UI redesign — horizontal instance rows, proper scaling, readable tag cards

- Backend: add replicas field to InstanceResponse (extracted from values.replicaCount)
- InstanceCard: complete redesign as horizontal row layout
  - Status bar | Name+Chart | Replicas +/- | Action buttons
  - Scale controls show for deployed AND failed statuses (scale to 0)
  - Fix replicas display using new instance.replicas backend field
- InstancesManagementPage: vertical row list + onScale callback to update state
- TagCard: restore proper padding (p-4), min-width, readable button sizes
- ArtifactBrowserPage: reduce grid density (sm:1 md:2 lg:3)
- ModifyModal: simplify to YAML-only editing with current values pre-populated
  - Remove schema-based form generator
  - Keep values-diff as collapsible reference panel
This commit is contained in:
Ivan087
2026-05-13 12:30:52 +08:00
parent 28ecb2e636
commit 49b92e66c3
8 changed files with 247 additions and 462 deletions

View File

@ -73,6 +73,7 @@ type InstanceResponse struct {
LastError string `json:"lastError,omitempty"`
Revision int `json:"revision"`
Values map[string]interface{} `json:"values,omitempty"`
Replicas int `json:"replicas"`
CreatedAt string `json:"createdAt"`
UpdatedAt string `json:"updatedAt"`
}

View File

@ -566,6 +566,17 @@ func formatTime(value time.Time) string {
}
func convertInstanceResponse(instance *entity.Instance, includeValues bool) *dto.InstanceResponse {
replicas := 0
if v, ok := instance.Values["replicaCount"]; ok {
switch n := v.(type) {
case float64:
replicas = int(n)
case int:
replicas = n
case int64:
replicas = int(n)
}
}
response := &dto.InstanceResponse{
ID: instance.ID,
ClusterID: instance.ClusterID,
@ -583,6 +594,7 @@ func convertInstanceResponse(instance *entity.Instance, includeValues bool) *dto
LastOperation: string(instance.LastOperation),
LastError: instance.LastError,
Revision: instance.Revision,
Replicas: replicas,
AllowedActions: []string{"view", "update", "delete"},
CreatedAt: instance.CreatedAt.Format("2006-01-02T15:04:05Z07:00"),
UpdatedAt: instance.UpdatedAt.Format("2006-01-02T15:04:05Z07:00"),