From c78761fe20bfa0d820a3f7c17667b4bf323de967 Mon Sep 17 00:00:00 2001 From: despiegk Date: Fri, 23 May 2025 16:23:41 +0400 Subject: [PATCH] ... --- pkg/servers/ui/app.go | 43 +++++++++++++++---- pkg/servers/ui/views/layouts/base.jet | 2 +- pkg/servers/ui/views/pages/dashboard.jet | 2 +- pkg/servers/ui/views/pages/login.jet | 2 +- .../ui/views/pages/process_manager.jet | 2 +- 5 files changed, 39 insertions(+), 12 deletions(-) diff --git a/pkg/servers/ui/app.go b/pkg/servers/ui/app.go index 0c6564b..390df95 100644 --- a/pkg/servers/ui/app.go +++ b/pkg/servers/ui/app.go @@ -1,6 +1,9 @@ package ui import ( + "os" + "path/filepath" + "git.ourworld.tf/herocode/heroagent/pkg/servers/ui/routes" // Import the routes package "github.com/gofiber/fiber/v2" jetadapter "github.com/gofiber/template/jet/v2" // Aliased for clarity @@ -16,17 +19,41 @@ func NewApp(config AppConfig) *fiber.App { // Initialize Jet template engine // Using OSFileSystemLoader to load templates from the filesystem. // The path is relative to where the application is run. - // For development, InDevelopmentMode can be true to reload templates on each request. - engine := jetadapter.New("./pkg/servers/ui/views", ".jet") + // Get current working directory and construct absolute path to views + cwd, err := os.Getwd() + if err != nil { + panic("Failed to get current working directory: " + err.Error()) + } + viewsPath := filepath.Join(cwd, "pkg", "servers", "ui", "views") - // Enable template reloading for development. - // Set to false or remove this line for production. + // Validate that the views directory and key template files exist + if _, err := os.Stat(viewsPath); os.IsNotExist(err) { + panic("Views directory does not exist: " + viewsPath) + } + + // Check for key template files + baseLayoutPath := filepath.Join(viewsPath, "layouts", "base.jet") + dashboardPath := filepath.Join(viewsPath, "pages", "dashboard.jet") + navbarPath := filepath.Join(viewsPath, "components", "navbar.jet") + sidebarPath := filepath.Join(viewsPath, "components", "sidebar.jet") + + requiredFiles := []string{baseLayoutPath, dashboardPath, navbarPath, sidebarPath} + for _, filePath := range requiredFiles { + if _, err := os.Stat(filePath); os.IsNotExist(err) { + panic("Required template file does not exist: " + filePath) + } + } + + // Log the views path for debugging + println("Views directory found at:", viewsPath) + println("All required template files exist") + + // Create Fiber Jet adapter + engine := jetadapter.New(viewsPath, ".jet") + + // Enable template reloading for development engine.Reload(true) - // If you need to add custom functions or global variables to Jet: - // engine.AddFunc("myCustomFunc", func(arg jet.Arguments) reflect.Value { ... }) - // engine.AddGlobal("myGlobalVar", "someValue") - // Create a new Fiber app with the configured Jet engine app := fiber.New(fiber.Config{ Views: engine, diff --git a/pkg/servers/ui/views/layouts/base.jet b/pkg/servers/ui/views/layouts/base.jet index d422940..84e4c08 100644 --- a/pkg/servers/ui/views/layouts/base.jet +++ b/pkg/servers/ui/views/layouts/base.jet @@ -3,7 +3,7 @@ - {{ block "title" . }}My App{{ end }} + {{ block title() }}My App{{ end }} diff --git a/pkg/servers/ui/views/pages/dashboard.jet b/pkg/servers/ui/views/pages/dashboard.jet index 1a36fa9..e2f34b8 100644 --- a/pkg/servers/ui/views/pages/dashboard.jet +++ b/pkg/servers/ui/views/pages/dashboard.jet @@ -1,4 +1,4 @@ -{{ extends "/layouts/base.jet" }} +{{ extends "layouts/base.jet" }} {{ block title() }}Dashboard - HeroApp UI{{ end }} diff --git a/pkg/servers/ui/views/pages/login.jet b/pkg/servers/ui/views/pages/login.jet index b56f871..6988778 100644 --- a/pkg/servers/ui/views/pages/login.jet +++ b/pkg/servers/ui/views/pages/login.jet @@ -1,4 +1,4 @@ -{{ extends "/layouts/base.jet" }} +{{ extends "layouts/base.jet" }} {{ block title() }}Login - HeroApp UI{{ end }} diff --git a/pkg/servers/ui/views/pages/process_manager.jet b/pkg/servers/ui/views/pages/process_manager.jet index 6e40512..60263e7 100644 --- a/pkg/servers/ui/views/pages/process_manager.jet +++ b/pkg/servers/ui/views/pages/process_manager.jet @@ -1,4 +1,4 @@ -{{ extends "/layouts/base.jet" }} +{{ extends "layouts/base.jet" }} {{ block title() }}Process Manager - HeroApp UI{{ end }}