63 lines
1.8 KiB
Go
63 lines
1.8 KiB
Go
/*
|
|
* Amsterdam Web Communities System
|
|
* Copyright (c) 2025-2026 Erbosoft Metaverse Design Solutions, All Rights Reserved
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
*/
|
|
// Package ui holds the support for the Amsterdam user interface, wrapping Echo and Jet templates.
|
|
package ui
|
|
|
|
import (
|
|
_ "embed"
|
|
|
|
"gopkg.in/yaml.v3"
|
|
)
|
|
|
|
// MBoxWarningLine defines a single warning line in a message box.
|
|
type MBoxWarningLine struct {
|
|
Text string `yaml:"text"`
|
|
Bold bool `yaml:"bold"`
|
|
}
|
|
|
|
// MBoxButton defines a single button on a message box.
|
|
type MBoxButton struct {
|
|
Id string `yaml:"id"`
|
|
Link string `yaml:"link"`
|
|
Confirm bool `yaml:"confirm"`
|
|
Tone string `yaml:"tone"`
|
|
Icon string `yaml:"icon"`
|
|
Text string `yaml:"text"`
|
|
}
|
|
|
|
// MessageBoxDefinition defines a single message box resource.
|
|
type MessageBoxDefinition struct {
|
|
Id string `yaml:"id"`
|
|
Title string `yaml:"title"`
|
|
Tone string `yaml:"tone"`
|
|
Destructive bool `yaml:"destructive"`
|
|
Message string `yaml:"message"`
|
|
WarningIcon string `yaml:"warningIcon"`
|
|
WarningLines []MBoxWarningLine `yaml:"warningLines"`
|
|
Buttons []MBoxButton `yaml:"buttons"`
|
|
}
|
|
|
|
// MessageBoxDefs is the top-level structure for defining message boxes.
|
|
type MessageBoxDefs struct {
|
|
D []MessageBoxDefinition `yaml:"messagedefs"`
|
|
}
|
|
|
|
//go:embed messagedefs.yaml
|
|
var initMessageData []byte
|
|
|
|
// messageBoxDefs is the master repository for message box data.
|
|
var messageBoxDefs MessageBoxDefs
|
|
|
|
// init loads and binds the message box definitions.
|
|
func init() {
|
|
if err := yaml.Unmarshal(initMessageData, &messageBoxDefs); err != nil {
|
|
panic(err) // can't happen
|
|
}
|
|
}
|