Мастер: одинаковые отметки шагов, «Обновление» после «Лицензии», переходы

- ключ, подключённый мастером ключа, засчитывается сразу и в мастере, и на главной
  (сверка справочника шлюза отстаёт)
- точка в заголовке шага — то же «выполнено», что в колонке (с «Настроить позже»)
- выход из мастера — «Выйти из мастера», не «Настроить позже»
- шаг «Обновление» — сразу после «Лицензии»; на шаге 1 — указание на него, без второй кнопки
- «Далее»/«Назад» со шага вне пути (сделан установщиком) — соседи по порядку глав
- последний шаг при несделанном обязательном — «Вернуться к шагу …», не «Перейти к работе»

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
This commit is contained in:
fontvielle
2026-10-21 23:50:02 +03:00
parent f1065e369a
commit 90aacf9ef4
7 changed files with 65 additions and 33 deletions
+23 -5
View File
@@ -1,6 +1,6 @@
package lkgateway
// Мастер настройки — 4 главы вместо 10 шагов (05.10.2026). Внутри глав — прежние шаги (адреса ?step=N не
// Мастер настройки — главы вместо длинного списка шагов (05.10.2026). Внутри глав — прежние шаги (адреса ?step=N не
// меняются: на них ссылаются проверка готовности, письма, кнопки «Исправить»). Шаг показывается, только
// если он нужен этой установке:
// - не входит в лицензию (учёт DEPO и QUIK — «quik-mnp», модули) — шага нет вовсе;
@@ -14,8 +14,7 @@ var wizChapters = []struct {
Title string
Steps []int
}{
{"Обновление", []int{14}},
{"Сервер", []int{1, 2, 6, 12}},
{"Сервер", []int{1, 14, 2, 6, 12}}, // обновление — сразу после лицензии: без неё обновлений нет
{"Учёт и организация", []int{3, 4, 5}},
{"НРД", []int{7, 8}},
{"Запуск", []int{11, 9, 13, 10}},
@@ -141,8 +140,27 @@ func wizNeighbours(path []int, current int) (prev, next int) {
return
}
}
if len(path) > 0 { // текущий шаг не в пути (открыт по прямой ссылке) — «Далее» ведёт в начало пути
next = path[0]
// текущий шаг не в пути (сделан установщиком, открыт по прямой ссылке) — соседи по порядку глав,
// а не начало мастера
pos := map[int]int{}
for _, c := range wizChapters {
for _, n := range c.Steps {
pos[n] = len(pos)
}
}
cur, known := pos[current]
if !known {
if len(path) > 0 {
next = path[0]
}
return
}
for _, n := range path {
if pos[n] < cur {
prev = n
} else if next == 0 {
next = n
}
}
return
}