Browse Source

d04 Добавление кода для веб-морды

SVI 2 năm trước cách đây
mục cha
commit
5d910ea878
6 tập tin đã thay đổi với 78 bổ sung44 xóa
  1. 3 10
      Makefile
  2. 1 1
      run_dev.sh
  3. 2 0
      server/serv_web/serv_web.go
  4. 2 12
      server/server.go
  5. 69 0
      web/static/bry/index.bry
  6. 1 21
      web/tmpl/index.tmpl.html

+ 3 - 10
Makefile

@@ -4,13 +4,6 @@ build:
 	go build -o ./bin/server ./cmd/server/main.go
 	strip -s ./bin/server
 	upx -f ./bin/server
-pwa.build:
-	clear
-	go fmt ./...
-	go build -o ./bin/pwa ./cmd/pwa/main.go
-	strip -s ./bin/pwa
-	upx -f ./bin/pwa
-	GOARCH=wasm GOOS=js go build -o ./bin/web/app.wasm ./cmd/pwa/main.go
 runner.build:
 	clear
 	go fmt ./...
@@ -19,15 +12,15 @@ runner.build:
 	upx -f ./bin/serv_run
 dev.run:
 	clear
-	cp -fR ./web ./bin_dev
 	go fmt ./...
-	go build -race -o ./bin_dev/wartank ./cmd/server/main.go
+	go build -race -o ./bin_dev/wartank_dev ./cmd/server/main.go
+		cp -fR ./web ./bin_dev/web
 	./run_dev.sh
 prod.run:
 	clear
-	cp -fR ./web ./bin
 	go fmt ./...
 	go build -o ./bin/wartank ./cmd/server/main.go
+		cp -fR ./web ./bin/web
 	./run_prod.sh
 test.run:
 	clear

+ 1 - 1
run_dev.sh

@@ -3,4 +3,4 @@ export SERVER_HTTP_PORT=":18061"
 
 
 cd ./bin_dev && \
-./wartank
+./wartank_dev

+ 2 - 0
server/serv_http/serv_http.go → server/serv_web/serv_web.go

@@ -3,6 +3,7 @@ package serv_web
 
 import (
 	"fmt"
+	"log"
 	"os"
 	"time"
 
@@ -111,6 +112,7 @@ func (сам *СервВеб) Пуск() {
 	фнПуск := func() {
 		ош := сам.роутер.Listen(сам.порт)
 		if ош != nil {
+			log.Printf("СервВеб.Пуск(): при работе веб-сервера, ош=\n\t%v\n", ош)
 			сам.серв.CancelApp()
 		}
 	}

+ 2 - 12
server/server.go

@@ -8,8 +8,7 @@ import (
 	"wartank/pkg/store"
 	"wartank/pkg/types"
 	"wartank/server/serv_bots"
-	serv_web "wartank/server/serv_http"
-	// "wartank/server/serv_desktop"
+	"wartank/server/serv_web"
 )
 
 // Сервер -- главный тип приложения
@@ -17,8 +16,7 @@ type Сервер struct {
 	*kernel.Kernel
 	хранилище types.IStore
 	ботоФерма *serv_bots.БотоФерма
-	// gui      *serv_desktop.СерверДесктоп
-	сервВеб *serv_web.СервВеб
+	сервВеб   *serv_web.СервВеб
 }
 
 // НовСервер -- возвращает новый объект приложения
@@ -58,16 +56,8 @@ func (sf *Сервер) Store() types.IStore {
 
 // Run -- запускает сервер бота в работу
 func (сам *Сервер) Run() error {
-	// go sf.bot.Run()
-	// sf.gui.Run()
 	сам.сервВеб.Пуск()
 	<-сам.Done()
-	// if err := sf._erverWeb.Error(); err != nil {
-	// 	return fmt.Errorf("Server.Run(): in work IServHttp, err=\n\t%w", err)
-	// }
-	// if err := sf.bot.Error(); err != nil {
-	// 	return fmt.Errorf("Server.Run(): in work IBot, err=\n\t%w", err)
-	// }
 	return nil
 }
 

+ 69 - 0
web/static/bry/index.bry

@@ -0,0 +1,69 @@
+# coding: utf8
+"""С этого начинается работа """
+
+from browser import document, ajax
+
+
+def bot_list_update(event):
+    """Обновляет список ботов"""
+    def read(req):
+        print(req.text)
+        document["bot_list"] = req.text
+    print(f"bot_list_update click, ev={event}!")
+    ajax.get("/bot_list/update", oncomplete=read)
+
+
+def bot_list_add(event):
+    """Добавляет нового бота"""
+    print(f"bot_list_add click, ev={event}!")
+    formBotNew=FormBotNew()
+
+
+class FormBotNew():
+    def __init__(self):
+        print(f"FormBotNew.__init__()")
+        self.divNew=document["bot_list_new"]
+        self.divNew.clear()
+        self.add_container_new()
+
+    def add_container_new(self):
+        print(f"FormBotNew.add_container_new()")
+        self.boxNew= document.createElement("div")
+        self.boxNew["class"]="container bg-secondary text-white p-3 border"
+        self.add_row_login()
+        self.add_row_pass()
+        self.divNew.appendChild(self.boxNew)
+
+    def add_row_login(self):
+        print(f"FormBotNew.add_row_login()")
+        self.loginRow=document.createElement("div")
+        self.loginRow["class"]="row"
+        self.labelLogin=document.createElement("label")
+        self.labelLogin["class"]="col-2"
+        self.labelLogin.text="Логин"
+        self.loginRow.appendChild(self.labelLogin)
+
+        self.entLogin=document.createElement("input")
+        self.entLogin["class"]="col-9"
+        self.loginRow.appendChild(self.entLogin)
+
+        self.boxNew.appendChild(self.loginRow)
+
+    def add_row_pass(self):
+        print(f"FormBotNew.add_row_pass()")
+        self.passRow=document.createElement("div")
+        self.passRow["class"]="row"
+        self.labelPass=document.createElement("label")
+        self.labelPass["class"]="col-2"
+        self.labelPass.text="Пароль"
+        self.passRow.appendChild(self.labelPass)
+
+        self.entPass=document.createElement("input")
+        self.entPass["class"]="col-9"
+        self.passRow.appendChild(self.entPass)
+
+        self.boxNew.appendChild(self.passRow)
+
+document["bot_list_update"].bind("click", bot_list_update)
+document["bot_list_add"].bind("click", bot_list_add)
+document.attach("Hello !")

+ 1 - 21
web/tmpl/index.tmpl.html

@@ -30,27 +30,7 @@
 
             </div>
         </div>
-        <script type="text/python">
-            from browser import document, ajax, bind
-
-            def bot_list_update(ev):
-                def read(req):
-                    print(req.text)
-                    document["bot_list"]=req.text
-                ajax.get("/bot_list/update", oncomplete=read)
-
-            def bot_list_add(ev):
-                print("bot_list_add click!")
-                botListNew=document["bot_list_new"]
-                botListNew.clear()
-                login=document.createElement("span")
-                login["class"]="badge bg-primary"
-                login.text="Логин"
-                botListNew.appendChild(login)
-            document["bot_list_update"].bind("click", bot_list_update)
-            document["bot_list_add"].bind("click", bot_list_add)
-            document.attach("Hello !")
-        </script>
+        <script type="text/python" src="/static/bry/index.bry"></script>
     </body>
 
 </html>