Documentation
¶
Overview ¶
Package prago is MVC framework for go
Index ¶
- Constants
- Variables
- func IsEmailValid(email string) bool
- func IsPhoneNumberValid(phone string) bool
- func MultirelationArrayToString(in []int64) string
- func MultirelationStringToArray(in string) (ret []int64)
- func MultirelationStringToMap(in string) (ret map[int64]bool)
- func Must(err error)
- func Unlocalized(name string) func(string) string
- type API
- type Accordion
- type Action
- func (action *Action) Board(board *Board) *Action
- func (action *Action) Icon(icon string) *Action
- func (action *Action) Method(method string) *Action
- func (action *Action) Name(name func(string) string) *Action
- func (action *Action) Permission(permission Permission) *Action
- func (action *Action) StyleAccented() *Action
- func (action *Action) StyleCreate() *Action
- func (action *Action) StyleDestroy() *Action
- type Activity
- type Aggregation
- type App
- func (app *App) ActionForm(url string, formGenerator func(form *Form, request *Request), ...) *Action
- func (app *App) ActionPlain(url string, handler func(request *Request)) *Action
- func (app *App) ActionResourceForm[T any](url string, formGenerator func(form *Form, request *Request), ...) *Action
- func (app *App) ActionResourceItemForm[T any](url string, formGenerator func(item *T, form *Form, request *Request), ...) *Action
- func (app *App) ActionResourceItemPlain[T any](url string, fn func(item *T, request *Request)) *Action
- func (app *App) ActionResourceItemUI[T any](url string, contentSource func(item *T, request *Request) template.HTML) *Action
- func (app *App) ActionResourceMultipleItemsForm[T any](url string, formGenerator func(items []*T, form *Form, request *Request), ...) *Action
- func (app *App) ActionResourcePlain[T any](url string, handler func(request *Request)) *Action
- func (app *App) ActionResourceUI[T any](url string, content func(request *Request) template.HTML) *Action
- func (app *App) ActionUI(url string, content func(request *Request) template.HTML) *Action
- func (app *App) AddCSS(fn func() string)
- func (app *App) AddCustomDateRange(tm [2]time.Time)
- func (app *App) AddCustomSearchFunction(fn func(q string, userData UserData) []*CustomSearchResult)
- func (app *App) AddDeleteValidation[T any](fn func(item *T, validation Validation, userData UserData))
- func (app *App) AddDevStaticFiles(path string)
- func (app *App) AddDevelopmentPath(path string)
- func (app *App) AddEnum(name string, items []*Enum)
- func (app *App) AddEnumShort(name string, items [][2]string)
- func (app *App) AddHelp(url string, permission Permission, name func(string) string, icon string, ...)
- func (app *App) AddHelpMarkdown(url string, permission Permission, name string, icon string, ...)
- func (app *App) AddItemStatistic[T any](name func(string) string, permission Permission, ...)
- func (app *App) AddJavascript(fn func() string)
- func (app *App) AddLessDevelopmentPaths(sourcePath, targetPath string)
- func (app *App) AddManagerOfRole(whoRole, whomRole string)
- func (app *App) AddResourceCustomSearchFunction[T any](fn func(q string, userData UserData) []*T)
- func (app *App) AddRole(roleID string, roleName func(string) string, permissions []Permission) *App
- func (app *App) AddSassDevelopmentPaths(sourcePath, targetPath string)
- func (app *App) AddServerSetup(fn func(*http.Server))
- func (app *App) AddStaticFiles(f fs.FS, pathPrefix string)
- func (app *App) AddTemplatesDevelopmentPath(templates *Templates, watchPath string, matchPatterns ...string)
- func (app *App) AddTypeScriptDevelopmentPath(path string)
- func (app *App) AddUpdateValidation[T any](fn func(item *T, validation Validation, userData UserData))
- func (app *App) BaseColor(hue int64, saturation float64, lightness float64) *App
- func (app *App) BaseURL() string
- func (app *App) BeforeAction(fn func(request *Request) bool)
- func (app *App) Cached[T any](name string, createFn func() T) T
- func (app *App) CachedPermanent[T any](name string, duration time.Duration, createFn func() T) T
- func (app *App) CheckDeleteValidation[T any](item *T, user UserData) ([]ValidationError, bool)
- func (app *App) CheckUpdateValidation[T any](item *T, user UserData) ([]ValidationError, bool)
- func (app *App) ClearCache()
- func (app *App) Create[T any](item *T) error
- func (app *App) CreateContext[T any](ctx context.Context, item *T) error
- func (app *App) DB() *sql.DB
- func (app *App) Delete[T any](id int64) error
- func (app *App) DeleteContext[T any](ctx context.Context, id int64) error
- func (app *App) DevelopmentMode() bool
- func (app *App) ForEach[T any](ctx context.Context, filter map[string][]string, handler func(*T) error) error
- func (app *App) FormFilter(id string) *FormFilter
- func (app *App) GenerateCSRFToken(userID int64) string
- func (app *App) GetAdminTemplates() *Templates
- func (app *App) GetAllUsers() (ret []UserData)
- func (app *App) GetBeaconCount(beaconName, pageURL, val1, val2, val3 string) int64
- func (app *App) GetCDNVideoURL(uuid string) string
- func (app *App) GetCachedUserEmail(id int64) string
- func (app *App) GetEnumName(request *Request, typeID string, typeValue string) string
- func (app *App) GetFiles(ctx context.Context, ids string) []*File
- func (app *App) GetImages(ids string) (ret []*Image)
- func (app *App) GetItemVersion[T any](item *T) int64
- func (app *App) GetMailingDataHTML(locale string, fn func(*MailingData)) string
- func (app *App) GetPhotoGalleryImageData(idsStr string) (ret []*PhotoGalleryImage)
- func (app *App) GetUserData(id int64) *userData
- func (app *App) GetUserName(id int64) string
- func (app *App) GetVersionString() string
- func (app *App) GoogleKey() string
- func (app *App) Handle(method, path string, action func(request *Request), constraints ...Constraint)
- func (app *App) HandlePage(url string, handler func(request *Request, pageData *PageData), ...)
- func (app *App) HandlePageWithValidation(url string, handler func(request *Request, pageData *PageData), ...)
- func (app *App) HandleSimple(path string, handler func(*PageDataSimple))
- func (app *App) HandleSimpleWithValidation(path string, handler func(*PageDataSimple), ...)
- func (app *App) Icon(icon string) *App
- func (app *App) IconURL() string
- func (app *App) Info() AppInfo
- func (app *App) InstallDatabase(rootPassword, codeName string) error
- func (app *App) InternalBeacon(typ, val1, val2, val3 string)
- func (app *App) ListenActivity(handler func(Activity))
- func (app *App) Log() *logger
- func (app *App) Logo(logo []byte) *App
- func (app *App) Mailing(locale string, fn func(*MailingData)) error
- func (app *App) Name(name func(string) string) *App
- func (app *App) NewAPI(url string) *API
- func (app *App) NewEmail() *Email
- func (app *App) NewForm(action string) *Form
- func (app *App) NewMCPTool[T any](name, description string, handler func(request *Request, input T) (any, error)) *MCPTool
- func (app *App) NewNotification(name string) *Notification
- func (app *App) NewResource[T any]() *Resource
- func (app *App) NewResourceAPI[T any](url string) *API
- func (app *App) NewResourceAPIJSON[T any](url string, handler func(request *Request, item *T) any) *API
- func (app *App) NewSetting(id string, permission Permission) *Setting
- func (app *App) NewTable() *Table
- func (app *App) NewWriter[T any](templates *Templates, templateName string) *Writer[T]
- func (app *App) Permission(permission Permission) *App
- func (app *App) PopupForm(url string, formGenerator func(form *Form, request *Request), ...) *Action
- func (app *App) PreviewURLFunction[T any](fn func(*T) string)
- func (app *App) Query[T any]() *QueryData[T]
- func (app *App) RandomizationString() string
- func (app *App) ReplaceContext[T any](ctx context.Context, item *T) error
- func (app *App) Run()
- func (app *App) SetAfterRequestServedHandler(fn func(*Request))
- func (app *App) SetIcons(iconsFS embed.FS, prefix string)
- func (app *App) SetLogHandler(fn func(string, string))
- func (app *App) Suggestions(permission Permission, contextFields []string, ...) *SuggestionsCustom
- func (app *App) TemporaryCache[T any]() *TemporaryCacheData[T]
- func (app *App) TestUserData(role string) UserData
- func (app *App) Update[T any](item *T) error
- func (app *App) UpdatePartial[T any](item *T, fields []string) error
- func (app *App) UploadFile(fileHeader *multipart.FileHeader, request *Request, description string) (*File, error)
- func (app *App) UploadFileFromURL(ctx context.Context, fileURL string, userID int64, description string) (*File, error)
- type AppInfo
- type Beacon
- type BeaconRequest
- type Board
- type BoxHeader
- type Button
- type Constraint
- type CustomSearchResult
- type DBConnectConfig
- type Dashboard
- func (dashboard *Dashboard) AddFigure(name func(string) string, permission Permission) *dashboardFigure
- func (dashboard *Dashboard) AddFormItemOptions(id, name string, options [][2]string)
- func (group *Dashboard) AddTable(tableFn func(request *Request) *Table, permission Permission) *dashboardTable
- func (dashboard *Dashboard) AddTimeline(name func(string) string, permission Permission, ...) *Timeline
- type DashboardFormItem
- type Email
- func (email *Email) Attachement(filename string, content []byte) *Email
- func (email *Email) From(name, emailAddress string) *Email
- func (email *Email) HTMLContent(content string) *Email
- func (email *Email) Send() error
- func (email *Email) Subject(subject string) *Email
- func (email *Email) TextContent(content string) *Email
- func (email *Email) To(name, emailAddress string) *Email
- type Enum
- type Field
- func (field *Field) Description(description func(string) string) *Field
- func (field *Field) FilterByPrefix() *Field
- func (field *Field) FixStringValue(fn func(string) string) *Field
- func (field *Field) FormContentGenerator(fn func(item *FormItem) template.HTML) *Field
- func (field *Field) GetManuallySetPluralName(locale string) string
- func (field *Field) GetName(locale string) string
- func (field *Field) HelpURL(url string) *Field
- func (field *Field) Name(name func(string) string) *Field
- func (field *Field) PreventPasswordManager(prevent bool) *Field
- func (field *Field) Searchable(isSearchable bool) *Field
- func (field *Field) SetFormFilter(filter *FormFilter) *Field
- func (field *Field) SuggestionsCustom(customSuggestion *SuggestionsCustom) *Field
- func (field *Field) TextOver(textOver func(string) string) *Field
- func (field *Field) UnitAfter(unit string) *Field
- func (field *Field) UnitBefore(unit string) *Field
- func (field *Field) Validation(fn func(fieldVal any, userData UserData) error)
- func (field *Field) Wide(isWide bool) *Field
- type File
- type Form
- func (form *Form) AddCAPTCHA(name, description string) *FormItem
- func (form *Form) AddCSRFToken(request *Request) *Form
- func (form *Form) AddCheckbox(name, description string) *FormItem
- func (form *Form) AddDatePicker(name, description string) *FormItem
- func (form *Form) AddDateRange(name, description string, from, to time.Time) *FormItem
- func (form *Form) AddDateTimePicker(name, description string) *FormItem
- func (form *Form) AddDeleteSubmit(description string) *FormItem
- func (form *Form) AddEmail(name, description string) *FormItem
- func (form *Form) AddFile(name, description string) *FormItem
- func (form *Form) AddHidden(name string) *FormItem
- func (form *Form) AddItem(item *FormItem)
- func (form *Form) AddNumber(name, description string) *FormItem
- func (form *Form) AddPassword(name, description string) *FormItem
- func (form *Form) AddRadio(name, description string, values [][2]string) *FormItem
- func (form *Form) AddRadioOptions(name, description string, options []*FormOption) *FormItem
- func (form *Form) AddRelation(name, description string, relatedResourceID string) *FormItem
- func (form *Form) AddRelationMultiple(name, description string, relatedResourceID string) *FormItem
- func (form *Form) AddSelect(name, description string, values [][2]string) *FormItem
- func (form *Form) AddSelectOptions(name, description string, options []*FormOption) *FormItem
- func (form *Form) AddSubmit(description string) *FormItem
- func (form *Form) AddText(name, description string) *FormItem
- func (form *Form) AddTextarea(name, description string) *FormItem
- func (form *Form) BindData(params url.Values)
- func (form *Form) Description(text string)
- func (form *Form) GetBoxHeader() *BoxHeader
- func (form *Form) HeaderIcon() string
- func (form *Form) HeaderName() string
- type FormFilter
- type FormItem
- func (fi *FormItem) DateRangeFrom() string
- func (fi *FormItem) DateRangeTo() string
- func (fi *FormItem) GetColor() string
- func (fi *FormItem) GetContent() template.HTML
- func (fi *FormItem) SetContent(content template.HTML) *FormItem
- func (fi *FormItem) SetCustomSuggestion(suggestionCustom *SuggestionsCustom) *FormItem
- func (fi *FormItem) SetDescription(description string) *FormItem
- func (fi *FormItem) SetDescriptionsAfter(after []string) *FormItem
- func (fi *FormItem) SetDescriptionsBefore(before []string) *FormItem
- func (fi *FormItem) SetFocused() *FormItem
- func (fi *FormItem) SetFormFilter(formFilter *FormFilter) *FormItem
- func (fi *FormItem) SetIcon(icon string) *FormItem
- func (fi *FormItem) SetReadonly() *FormItem
- func (fi *FormItem) SetTextOver(textOver string) *FormItem
- func (fi *FormItem) SetUUID() *FormItem
- func (fi *FormItem) SetUnitAfter(unit string) *FormItem
- func (fi *FormItem) SetUnitBefore(unit string) *FormItem
- func (fi *FormItem) SetValue(value string) *FormItem
- type FormOption
- type FormTaskActivity
- type FormTaskView
- type FormValidation
- type Image
- type ListFilterResponse
- type MCPTool
- type MailingData
- type MailingDataSection
- type MailingRecipient
- type MenuItem
- type Notification
- func (n *Notification) Flash(request *Request) error
- func (n *Notification) Push(userID int64)
- func (n *Notification) SetDescription(description string) *Notification
- func (n *Notification) SetImage(image string) *Notification
- func (n *Notification) SetPreName(preName string) *Notification
- func (n *Notification) SetPrimaryAction(name string, fn func()) *Notification
- func (n *Notification) SetProgress(progress *float64) *Notification
- func (n *Notification) SetSecondaryAction(name string, fn func()) *Notification
- func (n *Notification) SetStyleFail() *Notification
- func (n *Notification) SetStyleSuccess() *Notification
- func (n *Notification) SetURL(url string) *Notification
- type PageData
- type PageDataSimple
- type Permission
- type PhotoGalleryImage
- type Preview
- type QueryData
- func (q *QueryData[T]) Aggregation() *Aggregation
- func (q *QueryData[T]) Context(ctx context.Context) *QueryData[T]
- func (q *QueryData[T]) Count() (int64, error)
- func (q *QueryData[T]) Debug() *QueryData[T]
- func (q *QueryData[T]) First() *T
- func (q *QueryData[T]) ID(id any) *T
- func (q *QueryData[T]) In(name string, value any) *QueryData[T]
- func (q *QueryData[T]) Is(name string, value any) *QueryData[T]
- func (q *QueryData[T]) Limit(limit int64) *QueryData[T]
- func (q *QueryData[T]) List() []*T
- func (q *QueryData[T]) Offset(offset int64) *QueryData[T]
- func (q *QueryData[T]) Order(order string) *QueryData[T]
- func (q *QueryData[T]) OrderDesc(order string) *QueryData[T]
- func (q *QueryData[T]) Where(condition string, values ...any) *QueryData[T]
- type Request
- func (request *Request) AddFlashMessage(message string)
- func (request *Request) Authorize(permission Permission) bool
- func (request *Request) CreateWithLog[T any](item *T) error
- func (request *Request) DeleteUserPreference(name string)
- func (request *Request) DeleteWithLog[T any](item *T) error
- func (request *Request) Duration() time.Duration
- func (request *Request) Email() string
- func (request *Request) GetUserPreference(name string) *string
- func (request *Request) Locale() string
- func (request *Request) Name() string
- func (request Request) Param(name string) string
- func (request Request) Params() url.Values
- func (request *Request) ParseDateRange(itemID string) *[2]time.Time
- func (request *Request) Phone() string
- func (request *Request) Redirect(url string)
- func (request Request) Request() *http.Request
- func (request Request) Response() http.ResponseWriter
- func (request *Request) Role() string
- func (request *Request) SetUserPreference(name string, value string)
- func (request *Request) UpdateWithLog[T any](item *T) error
- func (request *Request) UserID() int64
- func (request *Request) WriteHTML(statusCode int, templates *Templates, templateName string, data any)
- func (request *Request) WriteJSON(statusCode int, data any)
- type Resource
- func (resource *Resource) Board(board *Board) *Resource
- func (resource *Resource) Dashboard(name func(string) string) *Dashboard
- func (resource *Resource) DefaultValue(fieldName string, fn func(request *Request) string) *Resource
- func (resource *Resource) Field(name string) *Field
- func (resource *Resource) Icon(icon string) *Resource
- func (resource *Resource) ItemsPerPage(itemsPerPage int64) *Resource
- func (resource *Resource) Name(singularName, pluralName func(string) string) *Resource
- func (resource *Resource) PermissionCreate(permission Permission) *Resource
- func (resource *Resource) PermissionDelete(permission Permission) *Resource
- func (resource *Resource) PermissionExport(permission Permission) *Resource
- func (resource *Resource) PermissionUpdate(permission Permission) *Resource
- func (resource *Resource) PermissionView(permission Permission) *Resource
- type Setting
- type SimpleSection
- type Suggestion
- type SuggestionsCustom
- type SuggestionsRequest
- type SuggestionsResponse
- type Table
- func (t *Table) AddFooterText(text string)
- func (table *Table) AddTable() *Table
- func (table *Table) Cell(item any) *TableCell
- func (t *Table) ExecuteHTML() template.HTML
- func (t *Table) ExportXLSX(writer io.Writer) error
- func (table *Table) Header(items ...string) *Table
- func (table *Table) Javascript(javascript template.JS) *Table
- func (table *Table) Row(items ...*TableCell) *Table
- func (table *Table) ToExcelFile() ([]byte, error)
- type TableCell
- func (cell *TableCell) AsyncDataURL(url string) *TableCell
- func (cell *TableCell) Button(btn *Button) *TableCell
- func (cell *TableCell) CSSClass(class string) *TableCell
- func (cell *TableCell) Center() *TableCell
- func (cell *TableCell) Checkbox(name string, checked bool) *TableCell
- func (cell *TableCell) Colspan(i int64) *TableCell
- func (cell *TableCell) DescriptionAfter(description string) *TableCell
- func (cell *TableCell) DescriptionBefore(description string) *TableCell
- func (cell *TableCell) Files(app *App, fileIDs string) *TableCell
- func (cell *TableCell) Green() *TableCell
- func (cell *TableCell) Header() *TableCell
- func (cell *TableCell) Nowrap() *TableCell
- func (cell *TableCell) Orange() *TableCell
- func (cell *TableCell) Pre() *TableCell
- func (cell *TableCell) Progress(progress float64) *TableCell
- func (cell *TableCell) Red() *TableCell
- func (cell *TableCell) Right() *TableCell
- func (cell *TableCell) Rowspan(i int64) *TableCell
- func (cell *TableCell) Style(style template.CSS) *TableCell
- func (cell *TableCell) TextAfter(text string) *TableCell
- func (cell *TableCell) Textarea(value string) *TableCell
- func (cell *TableCell) URL(link string) *TableCell
- type TableCellAsyncData
- type Templates
- func (templates *Templates) Execute(wr io.Writer, name string, data any) error
- func (templates *Templates) ExecuteToHTML(templateName string, data any) template.HTML
- func (templates *Templates) ExecuteToString(templateName string, data any) string
- func (templates *Templates) Function(name string, f any)
- func (templates *Templates) SetFilesystem(fsys fs.FS, patterns ...string) error
- type TemporaryCacheData
- type Timeline
- func (timeline *Timeline) Center() *Timeline
- func (timeline *Timeline) FilterName(key string, fn func(request *Request, value string) (string, string)) *Timeline
- func (timeline *Timeline) Future() *Timeline
- func (timeline *Timeline) OptionsForm(fn func(request *Request, form *Form)) *Timeline
- func (timeline *Timeline) Unit(unit func(string) string) *Timeline
- type TimelineDataFilter
- type TimelineDataRequest
- type TimelineRequest
- type UserData
- type Validation
- type ValidationError
- type View
- type ViewContent
- type Writer
- func (w *Writer[T]) After(fn func(request *Request, item *T)) *Writer[T]
- func (w *Writer[T]) Before(fn func(request *Request, item *T)) *Writer[T]
- func (w *Writer[T]) GET(path string, handler func(request *Request, item *T), ...)
- func (w *Writer[T]) POST(path string, handler func(request *Request, item *T), ...)
Constants ¶
const ( StyleAccented = "accented" StyleCreate = "create" StyleDestroy = "destroy" )
Variables ¶
var ErrItemNotFound = errors.New("item not found")
ErrItemNotFound is returned when no item is found
var ErrWrongWhereFormat = errors.New("wrong where format")
ErrWrongWhereFormat is returned when where query has a bad format
Functions ¶
func IsEmailValid ¶
func IsPhoneNumberValid ¶
func Unlocalized ¶
Types ¶
type API ¶
type API struct {
// contains filtered or unexported fields
}
func (*API) HandlerJSON ¶
TODO: Deprecated
func (*API) Permission ¶
func (api *API) Permission(permission Permission) *API
type Action ¶
type Action struct {
// contains filtered or unexported fields
}
Action represents action
func (*Action) Permission ¶
func (action *Action) Permission(permission Permission) *Action
func (*Action) StyleAccented ¶
func (*Action) StyleCreate ¶
func (*Action) StyleDestroy ¶
type Aggregation ¶
type Aggregation struct {
// contains filtered or unexported fields
}
func (*Aggregation) Count ¶
func (agg *Aggregation) Count() *Aggregation
func (*Aggregation) Get ¶
func (agg *Aggregation) Get() ([]int64, error)
func (*Aggregation) Max ¶
func (agg *Aggregation) Max(fieldName string) *Aggregation
func (*Aggregation) Min ¶
func (agg *Aggregation) Min(fieldName string) *Aggregation
func (*Aggregation) Sum ¶
func (agg *Aggregation) Sum(fieldName string) *Aggregation
type App ¶
type App struct {
UsersResource *Resource
FilesResource *Resource
MainBoard *Board
InitializationAfterServerStart func()
Is2faEnabled bool
GetTrackingUUIDFunc func(request *Request) string
AI *pragoai.Client
// contains filtered or unexported fields
}
func (*App) ActionForm ¶
func (*App) ActionPlain ¶
func (*App) ActionResourceForm ¶
func (*App) ActionResourceItemForm ¶
func (*App) ActionResourceItemPlain ¶
func (*App) ActionResourceItemUI ¶
func (*App) ActionResourceMultipleItemsForm ¶
func (*App) ActionResourcePlain ¶
func (*App) ActionResourceUI ¶
func (*App) AddCustomDateRange ¶
func (*App) AddCustomSearchFunction ¶
func (app *App) AddCustomSearchFunction(fn func(q string, userData UserData) []*CustomSearchResult)
func (*App) AddDeleteValidation ¶
func (app *App) AddDeleteValidation[T any](fn func(item *T, validation Validation, userData UserData))
func (*App) AddDevStaticFiles ¶
AddDevStaticFiles adds path for public files for development and publish them in server's root
func (*App) AddDevelopmentPath ¶
func (*App) AddEnumShort ¶
func (*App) AddHelpMarkdown ¶
func (*App) AddItemStatistic ¶
func (*App) AddJavascript ¶
func (*App) AddLessDevelopmentPaths ¶
AddLessDevelopmentPaths compiles less files in sourcePath into targetPath in development mode
func (*App) AddManagerOfRole ¶
func (*App) AddResourceCustomSearchFunction ¶
func (*App) AddSassDevelopmentPaths ¶
func (*App) AddServerSetup ¶
func (*App) AddStaticFiles ¶
AddStaticFiles add filesystem of public files and publish them in server's root
func (*App) AddTemplatesDevelopmentPath ¶
func (*App) AddTypeScriptDevelopmentPath ¶
AddTypeScriptDevelopmentPath automatically runs compilation of .tsc file in development mode
func (*App) AddUpdateValidation ¶
func (app *App) AddUpdateValidation[T any](fn func(item *T, validation Validation, userData UserData))
func (*App) BeforeAction ¶
AddBeforeAction adds action which is executed before main router action is called
func (*App) CachedPermanent ¶
func (*App) CheckDeleteValidation ¶
func (app *App) CheckDeleteValidation[T any](item *T, user UserData) ([]ValidationError, bool)
func (*App) CheckUpdateValidation ¶
func (app *App) CheckUpdateValidation[T any](item *T, user UserData) ([]ValidationError, bool)
func (*App) ClearCache ¶
func (app *App) ClearCache()
func (*App) CreateContext ¶
func (*App) DeleteContext ¶
func (*App) DevelopmentMode ¶
DevelopmentMode returns if app is running in development mode
func (*App) FormFilter ¶
func (app *App) FormFilter(id string) *FormFilter
func (*App) GenerateCSRFToken ¶
func (*App) GetAdminTemplates ¶
func (*App) GetAllUsers ¶
func (*App) GetBeaconCount ¶
func (*App) GetCDNVideoURL ¶
func (*App) GetCachedUserEmail ¶
func (*App) GetEnumName ¶
func (*App) GetItemVersion ¶
func (*App) GetMailingDataHTML ¶
func (app *App) GetMailingDataHTML(locale string, fn func(*MailingData)) string
func (*App) GetPhotoGalleryImageData ¶
func (app *App) GetPhotoGalleryImageData(idsStr string) (ret []*PhotoGalleryImage)
func (*App) GetUserData ¶
func (*App) GetUserName ¶
func (*App) GetVersionString ¶
func (*App) Handle ¶
func (app *App) Handle(method, path string, action func(request *Request), constraints ...Constraint)
Get creates new route for GET request
func (*App) HandlePage ¶
func (app *App) HandlePage(url string, handler func(request *Request, pageData *PageData), constraints ...Constraint)
func (*App) HandlePageWithValidation ¶
func (app *App) HandlePageWithValidation(url string, handler func(request *Request, pageData *PageData), formValidation func(fv FormValidation, request *Request), constraints ...Constraint)
func (*App) HandleSimple ¶
func (app *App) HandleSimple(path string, handler func(*PageDataSimple))
func (*App) HandleSimpleWithValidation ¶
func (app *App) HandleSimpleWithValidation(path string, handler func(*PageDataSimple), formValidation func(fv FormValidation, request *Request))
func (*App) InstallDatabase ¶
func (*App) InternalBeacon ¶
func (*App) ListenActivity ¶
ListenActivity listens to all changes in app's administration
func (*App) NewMCPTool ¶
func (app *App) NewMCPTool[T any](name, description string, handler func(request *Request, input T) (any, error)) *MCPTool
NewMCPTool přidá nástroj do MCP serveru aplikace. Vstup T musí být struktura, její JSON schéma se odvodí z tagů json a ai (případně prago-name). Handler běží v kontextu přihlášeného uživatele.
func (*App) NewNotification ¶
func (app *App) NewNotification(name string) *Notification
NewNotification creates notification
func (*App) NewResource ¶
func (*App) NewResourceAPIJSON ¶
func (*App) NewSetting ¶
func (app *App) NewSetting(id string, permission Permission) *Setting
func (*App) Permission ¶
func (app *App) Permission(permission Permission) *App
Permission adds permission to admin
func (*App) PreviewURLFunction ¶
func (*App) RandomizationString ¶
func (*App) ReplaceContext ¶
func (*App) SetAfterRequestServedHandler ¶
func (*App) SetLogHandler ¶
func (*App) Suggestions ¶
func (app *App) Suggestions(permission Permission, contextFields []string, handler func(sr SuggestionsRequest) *SuggestionsResponse) *SuggestionsCustom
func (*App) TemporaryCache ¶
func (app *App) TemporaryCache[T any]() *TemporaryCacheData[T]
func (*App) TestUserData ¶
func (*App) UploadFile ¶
type Beacon ¶
type BeaconRequest ¶
type Board ¶
type Board struct {
// contains filtered or unexported fields
}
type Button ¶
type Button struct {
Icon string
Name string
URL string
OnClick template.JS
Title string
Selected bool
Style string
Priority int64
}
func (*Button) ButtonColor ¶
func (*Button) StyleAccented ¶
func (*Button) StyleCreate ¶
func (*Button) StyleDestroy ¶
type CustomSearchResult ¶
type DBConnectConfig ¶
type DBConnectConfig struct {
Name string `json:"name"`
User string `json:"user"`
Password string `json:"password"`
}
func GetDBConnectConfig ¶
func GetDBConnectConfig(codeName string) (*DBConnectConfig, error)
type Dashboard ¶
type Dashboard struct {
// contains filtered or unexported fields
}
func (*Dashboard) AddFigure ¶
func (dashboard *Dashboard) AddFigure(name func(string) string, permission Permission) *dashboardFigure
func (*Dashboard) AddFormItemOptions ¶
func (*Dashboard) AddTable ¶
func (group *Dashboard) AddTable(tableFn func(request *Request) *Table, permission Permission) *dashboardTable
func (*Dashboard) AddTimeline ¶
func (dashboard *Dashboard) AddTimeline(name func(string) string, permission Permission, dataSource func(tdr *TimelineDataRequest) float64) *Timeline
type DashboardFormItem ¶
type Email ¶
type Email struct {
// contains filtered or unexported fields
}
func (*Email) HTMLContent ¶
func (*Email) TextContent ¶
type Enum ¶
type Field ¶
type Field struct {
// contains filtered or unexported fields
}
func (*Field) FilterByPrefix ¶
func (*Field) FormContentGenerator ¶
func (*Field) GetManuallySetPluralName ¶
func (*Field) PreventPasswordManager ¶
func (*Field) Searchable ¶
func (*Field) SetFormFilter ¶
func (field *Field) SetFormFilter(filter *FormFilter) *Field
func (*Field) SuggestionsCustom ¶
func (field *Field) SuggestionsCustom(customSuggestion *SuggestionsCustom) *Field
func (*Field) UnitBefore ¶
func (*Field) Validation ¶
type File ¶
type File struct {
ID int64 `prago-order-desc:"true"`
UID string `prago-unique:"true" prago-type:"cdnfile"`
Name string `prago-can-edit:"nobody"`
Description string `prago-type:"text"`
User int64 `prago-type:"relation" prago-can-edit:"nobody"`
Width int64 `prago-can-edit:"nobody"`
Height int64 `prago-can-edit:"nobody"`
CreatedAt time.Time
UpdatedAt time.Time
}
File is structure representing files in admin
func (*File) GetExactSize ¶
func (*File) GetOriginal ¶
type Form ¶
type Form struct {
Action string
Icon string
Title string
DescriptionsBefore []string
DescriptionsAfter []string
Items []*FormItem
Valid bool
CSRFToken string
HTMLAfter template.HTML
AutosubmitFirstTime bool
AutosubmitOnDataChange bool
ScriptPaths []string
ItemVersion int64
BoxHeader *BoxHeader
// contains filtered or unexported fields
}
Form represents admin form
func (*Form) AddCAPTCHA ¶
AddCAPTCHA to form
func (*Form) AddCSRFToken ¶
func (*Form) AddCheckbox ¶
AddCheckbox to form
func (*Form) AddDatePicker ¶
AddDatePicker to form
func (*Form) AddDateRange ¶
func (*Form) AddDateTimePicker ¶
func (*Form) AddDeleteSubmit ¶
AddDeleteSubmit to form
func (*Form) AddPassword ¶
AddPassword to form
func (*Form) AddRadioOptions ¶
func (form *Form) AddRadioOptions(name, description string, options []*FormOption) *FormItem
func (*Form) AddRelation ¶
func (*Form) AddRelationMultiple ¶
func (*Form) AddSelectOptions ¶
func (form *Form) AddSelectOptions(name, description string, options []*FormOption) *FormItem
func (*Form) AddTextarea ¶
AddTextarea to form
func (*Form) Description ¶
func (*Form) GetBoxHeader ¶
func (*Form) HeaderIcon ¶
func (*Form) HeaderName ¶
type FormFilter ¶
type FormFilter struct {
// contains filtered or unexported fields
}
func (*FormFilter) Is ¶
func (filter *FormFilter) Is(name string, value any) *FormFilter
func (*FormFilter) Where ¶
func (filter *FormFilter) Where(condition string, values ...any) *FormFilter
type FormItem ¶
type FormItem struct {
ID string
Icon string
Name string
Description string
DescriptionsBefore []string
DescriptionsAfter []string
Placeholder string
Required bool
Focused bool
Readonly bool
HiddenName bool
Hidden bool
Template string
Value string
Data any
Style string
Color string
Content template.HTML
TextOver string
UUID string
Autocomplete string
InputMode string
HelpURL string
FileMultiple bool
FileAccept string
FormFilterID string
SuggestionsCustom *SuggestionsCustom
IsWide bool
PreventPasswordManager bool
UnitBefore string
UnitAfter string
// contains filtered or unexported fields
}
FormItem represents item of form
func (*FormItem) DateRangeFrom ¶
func (*FormItem) DateRangeTo ¶
func (*FormItem) GetContent ¶
func (*FormItem) SetCustomSuggestion ¶
func (fi *FormItem) SetCustomSuggestion(suggestionCustom *SuggestionsCustom) *FormItem
func (*FormItem) SetDescription ¶
func (*FormItem) SetDescriptionsAfter ¶
func (*FormItem) SetDescriptionsBefore ¶
func (*FormItem) SetFocused ¶
func (*FormItem) SetFormFilter ¶
func (fi *FormItem) SetFormFilter(formFilter *FormFilter) *FormItem
func (*FormItem) SetReadonly ¶
func (*FormItem) SetTextOver ¶
func (*FormItem) SetUnitAfter ¶
func (*FormItem) SetUnitBefore ¶
type FormOption ¶
type FormOption struct {
ID string
Name string
DescriptionBefore string
DescriptionAfter string
TextAfter string
Color string
Icon string
Style string
ImageURL string
Button *Button
//Google Fonts family name (e.g. "Playfair Display"), option name is rendered in this font
Font string
}
func (*FormOption) FontURL ¶
func (fo *FormOption) FontURL() string
func (*FormOption) GetColor ¶
func (fo *FormOption) GetColor() string
type FormTaskActivity ¶
type FormTaskActivity struct {
// contains filtered or unexported fields
}
func (*FormTaskActivity) Context ¶
func (fta *FormTaskActivity) Context() context.Context
func (*FormTaskActivity) Description ¶
func (fta *FormTaskActivity) Description(description string)
func (*FormTaskActivity) Progress ¶
func (fta *FormTaskActivity) Progress(finishedSoFar, total int64)
func (*FormTaskActivity) TableCells ¶
func (fta *FormTaskActivity) TableCells(cells ...*TableCell)
type FormTaskView ¶
type FormValidation ¶
type ListFilterResponse ¶
type MCPTool ¶
type MCPTool struct {
// contains filtered or unexported fields
}
MCPTool je nástroj, který aplikace vystavuje přes MCP endpoint /admin/api/mcp. Uvidí ho jen uživatelé s oprávněním nastaveným přes Permission.
func (*MCPTool) Permission ¶
func (tool *MCPTool) Permission(permission Permission) *MCPTool
type MailingData ¶
type MailingData struct {
App *App
BaseURL string
LogoURL string
AppName string
FromEmail string
FromName string
Tos []*MailingRecipient
Subject string
PreName string
Name string
PostName string
Images []*File
Description template.HTML
Text template.HTML
Sections []*MailingDataSection
Button *Button
}
func (*MailingData) AddRecipient ¶
func (md *MailingData) AddRecipient(name, email string) *MailingData
func (*MailingData) AddSection ¶
func (md *MailingData) AddSection(name, text string) *MailingDataSection
type MailingDataSection ¶
type MailingRecipient ¶
type MenuItem ¶
type MenuItem struct {
Icon string
Image string
Name string
URL string
Subitems []*MenuItem
Selected bool
Expanded bool
SortPriority int64
NoSearch bool
Style string
}
func (*MenuItem) IsSelectedOrExpanded ¶
type Notification ¶
type Notification struct {
// contains filtered or unexported fields
}
NotificationItem represents item for notification
func (*Notification) Flash ¶
func (n *Notification) Flash(request *Request) error
func (*Notification) Push ¶
func (n *Notification) Push(userID int64)
func (*Notification) SetDescription ¶
func (n *Notification) SetDescription(description string) *Notification
SetDescription sets description to notification item
func (*Notification) SetImage ¶
func (n *Notification) SetImage(image string) *Notification
func (*Notification) SetPreName ¶
func (n *Notification) SetPreName(preName string) *Notification
SetPreName sets prefix name to notification item
func (*Notification) SetPrimaryAction ¶
func (n *Notification) SetPrimaryAction(name string, fn func()) *Notification
func (*Notification) SetProgress ¶
func (n *Notification) SetProgress(progress *float64) *Notification
SetProgress sets description to notification item
func (*Notification) SetSecondaryAction ¶
func (n *Notification) SetSecondaryAction(name string, fn func()) *Notification
func (*Notification) SetStyleFail ¶
func (n *Notification) SetStyleFail() *Notification
SetTypeFail sets notification item type to fail
func (*Notification) SetStyleSuccess ¶
func (n *Notification) SetStyleSuccess() *Notification
SetTypeSuccess sets notification item type to success
func (*Notification) SetURL ¶
func (n *Notification) SetURL(url string) *Notification
type PageData ¶
type PageData struct {
Language string
Version string
GoogleKey string
LogoHref string
LogoImageURL string
CSSPaths []string
JavascriptPaths []string
Icon string
Style string
Name string
App *App
AllowSearch bool
SearchQuery string
Breadcrumbs *breadcrumbs
ErrorMessage *pageMessage
PageContent template.HTML
MenuItems []*MenuItem
BoxHeader *BoxHeader
Form *Form
List *list
Views []*View
Pagination []*paginationItem
BoardView *boardView
NotificationsData string
HTTPCode int
Hue int64
AnalyticsCode template.HTML
}
func (*PageData) AddMenuItem ¶
func (*PageData) GetBreadcrumbs ¶
func (pd *PageData) GetBreadcrumbs() *breadcrumbs
func (*PageData) GetIconAndStyle ¶
func (*PageData) GetIconColor ¶
type PageDataSimple ¶
type PageDataSimple struct {
Request *Request
BackButtons []*Button
PreName string
Name string
PostName string
BannerImageID string
Sections []*SimpleSection
Description template.HTML
Text template.HTML
Form func(*Form)
PrimaryButton *Button
AnalyticsCode template.HTML
HTTPCode int
}
func (*PageDataSimple) BackButton ¶
func (pds *PageDataSimple) BackButton(btn *Button)
type PhotoGalleryImage ¶
type Preview ¶
type Preview struct {
ID int64
Image string
ImageID string
Icon string
Style string
URL string
Name string
Description string
}
func (Preview) GetIconColor ¶
type QueryData ¶
type QueryData[T any] struct { // contains filtered or unexported fields }
func (*QueryData[T]) Aggregation ¶
func (q *QueryData[T]) Aggregation() *Aggregation
type Request ¶
type Request struct {
Written bool
ResponseStatus int
ResponseTemplateName string
// contains filtered or unexported fields
}
Request represents structure for http request
func (*Request) AddFlashMessage ¶
func (*Request) Authorize ¶
func (request *Request) Authorize(permission Permission) bool
func (*Request) CreateWithLog ¶
func (*Request) DeleteUserPreference ¶
func (*Request) DeleteWithLog ¶
func (*Request) GetUserPreference ¶
func (*Request) ParseDateRange ¶
func (Request) Response ¶
func (request Request) Response() http.ResponseWriter
Response returns underlying http.ResponseWriter
func (*Request) SetUserPreference ¶
func (*Request) UpdateWithLog ¶
type Resource ¶
type Resource struct {
// contains filtered or unexported fields
}
func (*Resource) DefaultValue ¶
func (*Resource) ItemsPerPage ¶
func (*Resource) PermissionCreate ¶
func (resource *Resource) PermissionCreate(permission Permission) *Resource
func (*Resource) PermissionDelete ¶
func (resource *Resource) PermissionDelete(permission Permission) *Resource
func (*Resource) PermissionExport ¶
func (resource *Resource) PermissionExport(permission Permission) *Resource
func (*Resource) PermissionUpdate ¶
func (resource *Resource) PermissionUpdate(permission Permission) *Resource
func (*Resource) PermissionView ¶
func (resource *Resource) PermissionView(permission Permission) *Resource
type Setting ¶
type Setting struct {
// contains filtered or unexported fields
}
func (*Setting) DefaultValue ¶
func (*Setting) ValueChangeCallback ¶
type SimpleSection ¶
type Suggestion ¶
type SuggestionsCustom ¶
type SuggestionsRequest ¶
type SuggestionsResponse ¶
type SuggestionsResponse struct {
Message string
Suggestions []*Suggestion
Buttons []*Button
}
func SuggestionsResponseFromArray ¶
func SuggestionsResponseFromArray(in []string) *SuggestionsResponse
type Table ¶
type Table struct {
// contains filtered or unexported fields
}
func (*Table) AddFooterText ¶
func (*Table) ExecuteHTML ¶
TODO execute right into response
func (*Table) ToExcelFile ¶
type TableCell ¶
type TableCell struct {
// contains filtered or unexported fields
}
func (*TableCell) AsyncDataURL ¶
func (*TableCell) DescriptionAfter ¶
func (*TableCell) DescriptionBefore ¶
type TableCellAsyncData ¶
type Templates ¶
type Templates struct {
// contains filtered or unexported fields
}
func NewTemplates ¶
func NewTemplates() *Templates
func (*Templates) ExecuteToHTML ¶
func (*Templates) ExecuteToString ¶
type TemporaryCacheData ¶
type TemporaryCacheData[T any] struct { // contains filtered or unexported fields }
func (TemporaryCacheData[T]) GetItemByID ¶
func (tc TemporaryCacheData[T]) GetItemByID(id int64) *T
type Timeline ¶
type Timeline struct {
// contains filtered or unexported fields
}
func (*Timeline) FilterName ¶
func (*Timeline) OptionsForm ¶
type TimelineDataFilter ¶
type TimelineDataRequest ¶
type TimelineDataRequest struct {
From time.Time
To time.Time
Options map[string]string
Request *Request
}
func (*TimelineDataRequest) Context ¶
func (tdr *TimelineDataRequest) Context() context.Context
type TimelineRequest ¶
type Validation ¶
type ValidationError ¶
type View ¶
type View struct {
Icon string
Name string
SubNames []string
ViewContent *ViewContent
Buttons []*Button
Relation *viewRelationItem
}
type ViewContent ¶
type ViewContent struct {
Empty bool
Icon string
Name string
Color string
Style string
ContentHTML template.HTML
Previews []*Preview
CDNFileData *cdnFileData
Images []*Image
ImagesSimple []*Image
PlaceData string
VideoURL string
Accordions []*Accordion
Buttons []*Button
}
func (*ViewContent) HasNameOrIcon ¶
func (vfc *ViewContent) HasNameOrIcon() bool
func (*ViewContent) IconColor ¶
func (vfc *ViewContent) IconColor() string
func (*ViewContent) IsEmpty ¶
func (vf *ViewContent) IsEmpty() bool
Source Files
¶
- access.go
- accordion.go
- action.go
- activitylog.go
- admin.go
- admin_api.go
- aggregations.go
- ai.go
- ai_console.go
- ai_mcp.go
- ai_usage.go
- api.go
- app.go
- backup.go
- beacon.go
- board.go
- board_view.go
- box.go
- breadcrumbs.go
- build.go
- button.go
- cache.go
- cache_access.go
- cache_permanent.go
- cache_reloader.go
- cache_stats.go
- cdn.go
- command.go
- controller.go
- cookies.go
- cron.go
- dashboard.go
- dashboard_figure.go
- dashboard_form.go
- dashboard_table.go
- db.go
- db_connect.go
- development.go
- email.go
- email_sent.go
- enum.go
- exit.go
- field.go
- field_type.go
- field_validation.go
- file.go
- file_upload.go
- flash.go
- form.go
- form_action.go
- form_daterange.go
- form_filter.go
- form_item.go
- form_options.go
- form_task.go
- form_task_view.go
- help.go
- icons.go
- imagepicker.go
- info.go
- install.go
- list.go
- list_cell.go
- list_content.go
- list_filter.go
- list_filter_form.go
- list_filter_handle.go
- list_query.go
- list_settings.go
- list_stats.go
- locale.go
- logger.go
- mailing.go
- markdown.go
- menu.go
- messages.go
- migration.go
- multiple_item_action.go
- mysql.go
- navigation.go
- notifications.go
- page_data.go
- photo_gallery.go
- popup.go
- pprof.go
- preview.go
- query.go
- recovery.go
- relation.go
- request.go
- resource.go
- resource_actions.go
- resource_actions_multiple.go
- resource_api.go
- resource_conflict.go
- resource_edit.go
- resource_export_csv.go
- resource_item_action.go
- resource_item_stats.go
- resource_timelines.go
- router.go
- search.go
- server.go
- session_cache.go
- sessions.go
- settings.go
- simple.go
- simple_handle.go
- sqlbackup.go
- sqlconsole.go
- sqlview.go
- static.go
- struct.go
- struct_bind.go
- struct_scanners.go
- style.go
- suggestions.go
- suggestions_advanced.go
- suggestions_advanced_select.go
- suggestions_custom.go
- synced_item.go
- systemstats.go
- table.go
- table_excel.go
- templates.go
- temporary_cache.go
- timeline.go
- timeline_data.go
- timeline_data_filter.go
- timeline_data_line.go
- timeline_data_line_ticks.go
- timeline_settings.go
- user.go
- user_api.go
- user_csrf.go
- user_data.go
- user_login.go
- user_otp.go
- user_preference.go
- user_registration.go
- user_renew.go
- user_settings.go
- utils.go
- utils_stringer.go
- validation.go
- validation_form.go
- validation_item.go
- view.go
- view_relations.go
- watcher.go
- writer.go