Add server-side rendered setup UI accessible via `heatwave web`. The dashboard is now re-rendered per request and includes a nav bar linking to the new /setup page. Setup provides full CRUD for profiles, rooms, devices, occupants, AC units (with room assignment), scenario toggles, and forecast fetching — all via POST/redirect/GET forms. - Add ShowNav field to DashboardData for conditional nav bar - Extract fetchForecastForProfile() for reuse by web handler - Create setup.html.tmpl with Tailwind-styled entity sections - Create web_handlers.go with 15 route handlers and flash cookies - Switch web.go from pre-rendered to per-request dashboard rendering - Graceful dashboard fallback when no forecast data exists
24 lines
429 B
Go
24 lines
429 B
Go
package action
|
|
|
|
import (
|
|
_ "embed"
|
|
|
|
"gopkg.in/yaml.v3"
|
|
)
|
|
|
|
//go:embed templates/actions.yaml
|
|
var defaultActionsYAML []byte
|
|
|
|
type actionFile struct {
|
|
Actions []Action `yaml:"actions"`
|
|
}
|
|
|
|
// LoadDefaultActions loads the embedded default action templates.
|
|
func LoadDefaultActions() ([]Action, error) {
|
|
var f actionFile
|
|
if err := yaml.Unmarshal(defaultActionsYAML, &f); err != nil {
|
|
return nil, err
|
|
}
|
|
return f.Actions, nil
|
|
}
|