НПР / УДС — отдельная служба bj-npr
Модуль вынесен в modules/npr + cmd/bj-npr (127.0.0.1:8083), обновляется независимо от ядра. Служба читает подключение из setup.json и принимает запросы только со служебным ключом модулей (/var/lib/bj/.bj/module.key, создаёт bj-server). Полные страницы отдаются фрагментом (X-BJ-Layout: page). bj-server хранит настройки и проверку подключения, проксирует /admin/npr после входа, прав и лицензии и встраивает страницы модуля в общий макет (admin.modulePage); если служба не отвечает — понятная страница. Unit bj-npr.service встроен в установщик, установщик включает службы установленных модулей; build-release.sh собирает bj-npr. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+13
-21
@@ -22,13 +22,13 @@ var templatesFS embed.FS
|
||||
// конкретный content-шаблон). Так html/template не путается с несколькими
|
||||
// {{define "content"}} в разных файлах.
|
||||
type admin struct {
|
||||
home, claims, claim, status, setup *template.Template
|
||||
help, helpDatabase, helpLK, helpCrypto, helpSystems, helpRobot, helpArchitecture, helpQuik, helpFancyEvents, npr, nprClient, nprRows *template.Template
|
||||
incoming, incomingDetail, fancyQueue, quikInstr *template.Template
|
||||
wizard, news, keyWizard *template.Template
|
||||
handbook *template.Template
|
||||
m2mtest, m2mpreview, depoSim *template.Template
|
||||
journal *template.Template
|
||||
home, claims, claim, status, setup *template.Template
|
||||
help, helpDatabase, helpLK, helpCrypto, helpSystems, helpRobot, helpArchitecture, helpQuik, helpFancyEvents, modulePage *template.Template
|
||||
incoming, incomingDetail, fancyQueue, quikInstr *template.Template
|
||||
wizard, news, keyWizard *template.Template
|
||||
handbook *template.Template
|
||||
m2mtest, m2mpreview, depoSim *template.Template
|
||||
journal *template.Template
|
||||
}
|
||||
|
||||
// templateFuncs — функции, доступные внутри шаблонов. Главная задача —
|
||||
@@ -51,7 +51,6 @@ var templateFuncs = template.FuncMap{
|
||||
// m2mCode — человекочитаемое название кода M2M: «Текст (M2Mxx)».
|
||||
"m2mCode": m2mCodeLabel,
|
||||
"quikCodeMap": quikClientCodeMapText,
|
||||
"nprF": nprF,
|
||||
"curUser": authTemplateFuncs["curUser"],
|
||||
"can": authTemplateFuncs["can"],
|
||||
"authOpen": authOpen,
|
||||
@@ -277,20 +276,13 @@ func newAdmin() (*admin, error) {
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("parse admin_help_fancy_events: %w", err)
|
||||
}
|
||||
parseNPR := func(content string) (*template.Template, error) {
|
||||
return template.New("layout.html").Funcs(templateFuncs).ParseFS(templatesFS, "web/templates/layout.html", "web/templates/npr_css.html", "web/templates/"+content)
|
||||
// Страница модуля (служба модуля отдаёт содержимое, макет и меню — bj): npr.go.
|
||||
modulePage, err := template.New("layout.html").Funcs(templateFuncs).ParseFS(templatesFS, "web/templates/layout.html")
|
||||
if err == nil {
|
||||
_, err = modulePage.New("content").Parse(`{{.Content}}`)
|
||||
}
|
||||
nprT, err := parseNPR("admin_npr.html")
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("parse admin_npr: %w", err)
|
||||
}
|
||||
nprC, err := parseNPR("admin_npr_client.html")
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("parse admin_npr_client: %w", err)
|
||||
}
|
||||
nprR, err := template.New("npr_rows").Funcs(templateFuncs).ParseFS(templatesFS, "web/templates/admin_npr_rows.html")
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("parse admin_npr_rows: %w", err)
|
||||
return nil, fmt.Errorf("parse module page: %w", err)
|
||||
}
|
||||
keyWizard, err := parse("admin_keywizard.html")
|
||||
if err != nil {
|
||||
@@ -335,7 +327,7 @@ func newAdmin() (*admin, error) {
|
||||
return &admin{
|
||||
home: home, claims: claims, claim: claim, status: status, setup: setup,
|
||||
help: help, helpDatabase: helpDB, helpLK: helpLK, helpCrypto: helpCrypto, helpSystems: helpSys,
|
||||
helpRobot: helpRobot, helpArchitecture: helpArch, helpQuik: helpQuik, helpFancyEvents: helpFancyEvents, npr: nprT, nprClient: nprC, nprRows: nprR,
|
||||
helpRobot: helpRobot, helpArchitecture: helpArch, helpQuik: helpQuik, helpFancyEvents: helpFancyEvents, modulePage: modulePage,
|
||||
wizard: wizard, news: news, keyWizard: keyWizard,
|
||||
incoming: incoming, incomingDetail: incomingDetail, fancyQueue: fancyQueue, quikInstr: quikInstr,
|
||||
handbook: handbook,
|
||||
|
||||
Reference in New Issue
Block a user