feat: DH-HIS Web Giao Ban Go v1.0.1 (Favicon, Exe icon, System Tray, Gitea auto-update)
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
//go:build windows
|
||||
|
||||
package tray
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os/exec"
|
||||
|
||||
"github.com/getlantern/systray"
|
||||
"web-giao-ban-go/config"
|
||||
"web-giao-ban-go/logger"
|
||||
)
|
||||
|
||||
func openBrowser(url string) {
|
||||
_ = exec.Command("rundll32", "url.dll,FileProtocolHandler", url).Start()
|
||||
}
|
||||
|
||||
func Run(onServerReady func()) {
|
||||
systray.Run(func() {
|
||||
cfg := config.Get()
|
||||
baseURL := fmt.Sprintf("http://localhost:%d", cfg.Server.Port)
|
||||
adminPath := cfg.Server.AdminPath
|
||||
if adminPath == "" {
|
||||
adminPath = "/admin"
|
||||
}
|
||||
|
||||
systray.SetIcon(DefaultIconBytes())
|
||||
systray.SetTitle("DH-HIS Giao Ban")
|
||||
systray.SetTooltip(fmt.Sprintf("DH-HIS Quản Lý Giao Ban (Port %d)", cfg.Server.Port))
|
||||
|
||||
mTitle := systray.AddMenuItem(fmt.Sprintf("🏥 DH-HIS Giao Ban (%s)", cfg.Updater.CurrentVersion), "Phiên bản phần mềm")
|
||||
mTitle.Disable()
|
||||
|
||||
systray.AddSeparator()
|
||||
|
||||
mOpenWeb := systray.AddMenuItem("📊 Mở Báo Cáo Giao Ban", "Mở giao diện báo cáo giao ban bệnh viện")
|
||||
mOpenAdmin := systray.AddMenuItem("⚙️ Quản Trị Hệ Thống", "Thiết lập kết nối CSDL và tham số")
|
||||
mOpenLogs := systray.AddMenuItem("📜 Xem Nhật Ký / Log App", "Xem trực tiếp log hoạt động của ứng dụng")
|
||||
mCheckUpdate := systray.AddMenuItem("🔄 Kiểm Tra Bản Cập Nhật", "Kiểm tra phiên bản mới từ Gitea")
|
||||
|
||||
systray.AddSeparator()
|
||||
mQuit := systray.AddMenuItem("❌ Thoát Ứng Dụng", "Dừng dịch vụ và thoát")
|
||||
|
||||
// Start web server in background
|
||||
if onServerReady != nil {
|
||||
go onServerReady()
|
||||
}
|
||||
|
||||
// Handle tray menu events
|
||||
go func() {
|
||||
for {
|
||||
select {
|
||||
case <-mOpenWeb.ClickedCh:
|
||||
openBrowser(baseURL + "/web-giao-ban-go")
|
||||
case <-mOpenAdmin.ClickedCh:
|
||||
openBrowser(baseURL + "/web-giao-ban-go" + adminPath)
|
||||
case <-mOpenLogs.ClickedCh:
|
||||
openBrowser(baseURL + "/web-giao-ban-go" + adminPath + "#tab-logs")
|
||||
case <-mCheckUpdate.ClickedCh:
|
||||
openBrowser(baseURL + "/web-giao-ban-go" + adminPath + "#tab-update")
|
||||
case <-mQuit.ClickedCh:
|
||||
logger.Info("Người dùng chọn Thoát từ khay hệ thống (System Tray)")
|
||||
systray.Quit()
|
||||
return
|
||||
}
|
||||
}
|
||||
}()
|
||||
}, func() {
|
||||
logger.Info("System Tray đã đóng")
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user