Добавление и исправление комментариев, начало добавление валидации, сообщение прокрути viewport на форме
This commit is contained in:
parent
c7ff7662ba
commit
e37cabadcc
14 changed files with 371 additions and 297 deletions
35
types/msg.go
35
types/msg.go
|
|
@ -2,32 +2,43 @@ package types
|
|||
|
||||
import tea "github.com/charmbracelet/bubbletea"
|
||||
|
||||
// SelectedAppMsg сообщение выбора приложения из списка приложений
|
||||
type SelectedAppMsg struct {
|
||||
App PackageApplication
|
||||
App PackageApplication //Объект выбранного приложения
|
||||
}
|
||||
|
||||
// BackToListMsg сообщение перехода к списку приложений
|
||||
type BackToListMsg struct{}
|
||||
|
||||
// NextSectionMsg сообщение перехода на следующую секцию
|
||||
type NextSectionMsg struct{}
|
||||
|
||||
// SugarMsg сообщение о возможной необходимости обновить форму
|
||||
type SugarMsg struct {
|
||||
VariableName string
|
||||
FieldName string
|
||||
Compute string
|
||||
Focus int
|
||||
VariableName string //Имя переменной присвоенной измененному полю
|
||||
FieldName string //Имя измененного поля
|
||||
Focus int //Старый фокус формы
|
||||
}
|
||||
|
||||
// ShowModalMsg сообщение о показе модального окна
|
||||
type ShowModalMsg struct {
|
||||
Type ModalType
|
||||
Title string
|
||||
Message string
|
||||
ModalButtons []ModalButton
|
||||
OnResult func(result any) tea.Cmd
|
||||
Type ModalType //Тип модального окна
|
||||
Title string //Заголовок модального окна
|
||||
Message string //Сообщение модального окна
|
||||
ModalButtons []ModalButton //Кнопки модального окна
|
||||
OnResult func(result any) tea.Cmd //Функция для выполнения
|
||||
}
|
||||
|
||||
// ModalButton структура кнопки модального окна
|
||||
type ModalButton struct {
|
||||
Text string
|
||||
Value any
|
||||
Text string //Текст кнопки
|
||||
Value any //Значение кнопки
|
||||
}
|
||||
|
||||
// CloseModalMsg сообщение о закрытии модального окна
|
||||
type CloseModalMsg struct{}
|
||||
|
||||
// ViewportScrollMsg сообщение прокрутки видимой области формы
|
||||
type ViewportScrollMsg struct {
|
||||
Direction string //Направление прокрутки
|
||||
}
|
||||
|
|
|
|||
103
types/types.go
103
types/types.go
|
|
@ -1,70 +1,77 @@
|
|||
package types
|
||||
|
||||
// PackageApplication структура описывающая настраиваемое приложение
|
||||
type PackageApplication struct {
|
||||
Name string `yaml:"name"`
|
||||
Version string `yaml:"version"`
|
||||
Description string `yaml:"description"`
|
||||
Icon string `yaml:"icon"`
|
||||
Type string `yaml:"type"`
|
||||
ConfFiles []ConfFile `yaml:"conf-files"`
|
||||
Variables []Variable `yaml:"variables"`
|
||||
Sections []Section `yaml:"sections"`
|
||||
Changed bool `yaml:"-"`
|
||||
Name string `yaml:"name"` //Имя приложения
|
||||
Version string `yaml:"version"` //Версия приложения
|
||||
Description string `yaml:"description"` //Описание приложения
|
||||
Icon string `yaml:"icon"` //Иконка приложения
|
||||
Type string `yaml:"type"` //Тип приложения
|
||||
ConfFiles []ConfFile `yaml:"conf-files"` //Файлы конфигурации
|
||||
Variables []Variable `yaml:"variables"` //Переменные настройки
|
||||
Sections []Section `yaml:"sections"` //Секции настройки
|
||||
Changed bool `yaml:"-"` //Вносились ли изменения
|
||||
}
|
||||
|
||||
// ConfFile структура описывающая используемый приложением конфигурационный файл
|
||||
type ConfFile struct {
|
||||
File string `yaml:"file"`
|
||||
Type string `yaml:"type"`
|
||||
Name string `yaml:"name"`
|
||||
File string `yaml:"file"` //Путь файла
|
||||
Type string `yaml:"type"` //Тип файла
|
||||
Name string `yaml:"name"` //Имя файла
|
||||
}
|
||||
|
||||
// Variable структура описывающая переменную для настройки приложения
|
||||
type Variable struct {
|
||||
Name string `yaml:"name"`
|
||||
Type string `yaml:"type"`
|
||||
Default string `yaml:"default"`
|
||||
Value interface{} `yaml:"-"`
|
||||
Name string `yaml:"name"` //Имя переменной
|
||||
Type string `yaml:"type"` //Тип значения переменной
|
||||
Default string `yaml:"default"` //Значение по умолчанию
|
||||
Value interface{} `yaml:"-"` //Используемое значение
|
||||
}
|
||||
|
||||
// Section структура описывающая секцию настройки приложения
|
||||
type Section struct {
|
||||
Name string `yaml:"name"`
|
||||
Type string `yaml:"type"`
|
||||
Description string `yaml:"description"`
|
||||
Fields []SectionField `yaml:"fields"`
|
||||
Paragraphs []string `yaml:"paragraphs"`
|
||||
Parent []string `yaml:"parent"`
|
||||
Condition string `yaml:"condition"`
|
||||
Actions []SectionAction `yaml:"actions"`
|
||||
Name string `yaml:"name"` //Имя секции
|
||||
Type string `yaml:"type"` //Тип секции
|
||||
Description string `yaml:"description"` //Описание секции
|
||||
Fields []SectionField `yaml:"fields"` //Поля секции
|
||||
Paragraphs []string `yaml:"paragraphs"` //Параграфы для описания приложения
|
||||
Parent []string `yaml:"parent"` //Переменные от которых зависит секция
|
||||
Condition string `yaml:"condition"` //Условие отображения секции
|
||||
Actions []SectionAction `yaml:"actions"` //Действия выполняемые после перехода с секции
|
||||
}
|
||||
|
||||
// SectionField структура описывающая поле секции
|
||||
type SectionField struct {
|
||||
Name string `yaml:"name"`
|
||||
VariableName string `yaml:"variable-name"`
|
||||
FieldType string `yaml:"field-type"`
|
||||
FileFieldExtensions []string `yaml:"file-field-extensions"`
|
||||
Description string `yaml:"description"`
|
||||
Condition string `yaml:"condition"`
|
||||
Options []interface{} `yaml:"options"`
|
||||
SpecialValue string `yaml:"special-value"`
|
||||
Compute string `yaml:"compute"`
|
||||
Validate []FieldValidate `yaml:"validate"`
|
||||
Parent []string `yaml:"parent"`
|
||||
Variable *Variable `yaml:"-"`
|
||||
Active bool `yaml:"-"`
|
||||
Name string `yaml:"name"` //Имя поля
|
||||
VariableName string `yaml:"variable-name"` //Имя переменной, хранящей значение поля
|
||||
FieldType string `yaml:"field-type"` //Тип поля
|
||||
FileFieldExtensions []string `yaml:"file-field-extensions"` //Расширения файла для поля выбора файла
|
||||
Description string `yaml:"description"` //Описание поля
|
||||
Condition string `yaml:"condition"` //Условие отображения поля
|
||||
Options []interface{} `yaml:"options"` //Список опций
|
||||
SpecialValue string `yaml:"special-value"` //Специального значения
|
||||
Compute string `yaml:"compute"` //Строка вычислений значения
|
||||
Validate []FieldValidate `yaml:"validate"` //Правила проверки значения
|
||||
Parent []string `yaml:"parent"` //Переменные от которых зависит поле
|
||||
Variable *Variable `yaml:"-"` //Указатель на переменную
|
||||
Active bool `yaml:"-"` //Активно ли поле для получения значения
|
||||
}
|
||||
|
||||
// FieldValidate структура описывающая правила проверки значения поля
|
||||
type FieldValidate struct {
|
||||
Rule string `yaml:"rule"`
|
||||
Message string `yaml:"message"`
|
||||
Rule string `yaml:"rule"` //Правило проверки
|
||||
Message string `yaml:"message"` //Сообщение ошибки
|
||||
}
|
||||
|
||||
// SectionAction структура описывающая действия к выполнению
|
||||
type SectionAction struct {
|
||||
Name string `yaml:"name"`
|
||||
Type string `yaml:"type"`
|
||||
Command string `yaml:"command"`
|
||||
FileTarget string `yaml:"file-target"`
|
||||
FileSource string `yaml:"file-source"`
|
||||
Condition string `yaml:"condition"`
|
||||
RunAs string `yaml:"run-as"`
|
||||
RequirePackages []string `yaml:"require-packages"`
|
||||
Error string `yaml:"error"`
|
||||
Name string `yaml:"name"` //Имя действия
|
||||
Type string `yaml:"type"` //Тип действия
|
||||
Command string `yaml:"command"` //Команда для выполнения
|
||||
FileTarget string `yaml:"file-target"` //Целевой файл редактирования
|
||||
FileSource string `yaml:"file-source"` //Файл источник
|
||||
Condition string `yaml:"condition"` //Условие для выполнения
|
||||
RunAs string `yaml:"run-as"` //Пользователь для запуска
|
||||
RequirePackages []string `yaml:"require-packages"` //Требуемые пакеты
|
||||
Error string `yaml:"error"` //Ошибка выполнения
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue