Мастер без лицензии учёта: глава 2 называется «Организация», подзаголовок мастера собирается из глав этой установки; в шапке «НРД не подключён» вместо «Нет связи с НРД», пока обмен не настроен

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
zuevav
2026-10-05 19:07:41 +03:00
parent ba1aae705d
commit 79d20bc2cf
5 changed files with 33 additions and 2 deletions
+23
View File
@@ -7,6 +7,8 @@ package lkgateway
// - сделан установщиком без участия человека (база bj, Валидата) — шага нет в пути, в главе «Сервер»
// это показано строкой «сделано автоматически».
import "strings"
// wizChapters — главы мастера: название и шаги по порядку.
var wizChapters = []struct {
Title string
@@ -91,6 +93,9 @@ func wizPath(rc *RuntimeConfig, done map[int]bool, current int) (path []int, cha
if len(c.Steps) == 0 {
continue
}
if len(c.Steps) == 1 { // в главе один шаг (остальные не в лицензии) — глава называется по нему: «Организация»
c.Title = c.Steps[0].Title
}
// переход по главе — на первый несделанный шаг главы
for _, s := range c.Steps {
if !s.Done {
@@ -103,6 +108,24 @@ func wizPath(rc *RuntimeConfig, done map[int]bool, current int) (path []int, cha
return path, chapters
}
// wizChaptersLine — подзаголовок мастера: «Четыре главы: сервер, организация, НРД, запуск».
func wizChaptersLine(chapters []WizChapter) string {
words := []string{"", "Одна глава", "Две главы", "Три главы", "Четыре главы"}
var names []string
for _, c := range chapters {
t := c.Title
if t != "НРД" && t != "" {
r := []rune(t)
t = strings.ToLower(string(r[:1])) + string(r[1:])
}
names = append(names, t)
}
if len(chapters) == 0 || len(chapters) >= len(words) {
return ""
}
return words[len(chapters)] + ": " + strings.Join(names, ", ") + "."
}
// wizNeighbours — предыдущий и следующий шаг в пути (0 — нет).
func wizNeighbours(path []int, current int) (prev, next int) {
for i, n := range path {