| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- // package web_gui -- веб-сервер для графики
- package web_gui
- import (
- _ "embed"
- // "net/http"
- "strings"
- "github.com/gofiber/fiber/v2"
- . "gitp78su.ipnodns.ru/svi/kern"
- . "gitp78su.ipnodns.ru/svi/kern/kc/helpers"
- . "gitp78su.ipnodns.ru/svi/kern/krn/ktypes"
- "gitp78su.ipnodns.ru/svi/kern/wui"
- "gitp78su.ipnodns.ru/svi/kern/wui/wtypes"
- . "wartank/app/lev0/types"
- "wartank/app/lev3/serv_web/web_gui/page_bot_add"
- "wartank/app/lev3/serv_web/web_gui/page_bot_list"
- "wartank/app/lev3/serv_web/web_gui/page_bot_show"
- "wartank/app/lev3/serv_web/web_gui/page_login"
- )
- // ВебГип -- веб-сервер для графики
- type ВебГуи struct {
- прилож ИПриложение
- конт IKernelCtx
- лог ILogBuf
- кнпБоты wtypes.IWuiButton
- }
- // НовВебГуи -- возвращает новый веб-сервер для графики
- func НовВебГуи(конт IKernelCtx) *ВебГуи {
- лог := NewLogBuf()
- Hassert(конт != nil, "НовВебГуи(): ИЯдроКонтекст==nil")
- сам := &ВебГуи{
- прилож: конт.Get("мод_сервер").Val().(ИПриложение),
- конт: конт,
- лог: лог,
- }
- сам.кнпБоты = wui.NewWuiButton("Список ботов", сам.ботыКлик)
- сам.кнпБоты.Hx().Target().Set("#main")
- файбер := конт.Get("fiberApp").Val().(*fiber.App)
- // файбер.Get("/", сам.кукиПроверить) //, сам.индекс)
- файбер.Get("/", сам.индекс)
- _ = page_login.НовСтраницаЛогин(конт)
- _ = page_bot_list.НовСтраницаСписокБотов(конт)
- _ = page_bot_add.НовСтраницаБотовДобавить(конт)
- _ = page_bot_show.НовСтраницаБотПоказать(конт)
- return сам
- }
- var стрБлокБоты string
- //go:embed block_login.html
- var стрБлокЛогин string
- func (сам *ВебГуи) ботыКлик() string {
- еслиЛогин := сам.конт.Get("еслиЛогин").Val().(bool)
- if !еслиЛогин {
- return стрБлокЛогин
- }
- return стрБлокБоты
- }
- //go:embed index.tmpl.html
- var стрГлавная string
- // Возвращает индексную страницу
- func (сам *ВебГуи) индекс(кнт *fiber.Ctx) error {
- сам.лог.Debug("ВебГуи.индекс()\n")
- кнт.Set("Content-type", "text/html; charset=utf8;-")
- кнт.Set("Cache-Control", "no-cache")
- _, _ = кнт.WriteString("\n\n")
- стрВых := strings.ReplaceAll(стрГлавная, "{.btn_lst_bot}", сам.кнпБоты.Html())
- return кнт.SendString(стрВых)
- }
- /*
- // Проверка на куки
- func (сам *ВебГуи) кукиПроверить(кнт *fiber.Ctx) error {
- сам.лог.Debug("ВебГуи.кукиПроверить()\n")
- имя := кнт.Cookies("login")
- if имя != "svi" {
- сам.конт.Set("еслиЛогин", false, "Признак логина")
- } else {
- сам.конт.Set("еслиЛогин", true, "Признак логина")
- }
- return кнт.Next()
- }
- */
|