180a5920fe
Per /Users/zimin/Downloads/Ordinis (4)/redesign/screens/04-editor-links.png.
Replaced 3-col hub view (left rail + center dict card + right rail) с simple
2-col grid. Central dict card стал избыточен — все его info уже в InfoPanel
слева, дублирование тратило место и attention.
New layout:
┌────────────────────────────┬────────────────────────────┐
│ → ССЫЛАЕТСЯ НА (N) │ ← ССЫЛАЮТСЯ НА НАС (M) │
│ ┌──────────────────────┐ │ ┌──────────────────────┐ │
│ │ {target} {count} │ │ │ {source} {count} │ │
│ │ {req|opt} {.field} │ │ │ {крит} {.field} │ │
│ └──────────────────────┘ │ ├──────────────────────┤ │
│ │ │ Warning N ссылок │ │
│ │ └──────────────────────┘ │
└────────────────────────────┴────────────────────────────┘
Each outgoing row: target_dict (link accent) | recordCount | required/optional
chip | source_field (mono right).
Each incoming row: source_dict (link) | activeRecordsInSourceDict | onClose
policy chip (BLOCK=критично pink, CASCADE=warn amber) | .source_field.
Footer warning в incoming panel когда totalDeps > 100 — "удаление сложно".
Ordinis Admin UI
React 19 + Vite 7 + TanStack Router + TanStack Query + Tailwind v4 + i18next.
Локально
cd ordinis-admin-ui
pnpm install
# .env.local: VITE_API_PROXY=http://localhost:8081 (port-forward read-api)
pnpm dev
Контракт API
GET /api/v1/dictionaries(read-api) — список справочниковGET /api/v1/{dictionaryName}/records(read-api) — записи с локализациейPOST /api/v1/dictionaries(writer) — создание справочника (TODO в UI)POST /api/v1/dictionaries/{name}/records(writer) — создание записи (TODO в UI)
Сборка / Docker
docker build -t repo.nstart.cloud/terravault/ordinis-admin-ui:dev .
docker run --rm -p 8088:80 repo.nstart.cloud/terravault/ordinis-admin-ui:dev
# → http://localhost:8088
В кластере nginx проксирует /api/v1/* в ordinis-read-api (GET) и
ordinis-app (POST/PUT/PATCH/DELETE).