|
|
|
|
|
|
|
|
|
package types |
|
|
|
import ( |
|
"html/template" |
|
|
|
"github.com/GoAdminGroup/go-admin/modules/menu" |
|
"github.com/GoAdminGroup/go-admin/plugins/admin/modules" |
|
"github.com/GoAdminGroup/go-admin/template/types/form" |
|
) |
|
|
|
type FormAttribute interface { |
|
SetHeader(value template.HTML) FormAttribute |
|
SetContent(value FormFields) FormAttribute |
|
SetTabContents(value []FormFields) FormAttribute |
|
SetTabHeaders(value []string) FormAttribute |
|
SetFooter(value template.HTML) FormAttribute |
|
SetPrefix(value string) FormAttribute |
|
SetUrl(value string) FormAttribute |
|
SetPrimaryKey(value string) FormAttribute |
|
SetHorizontal(value bool) FormAttribute |
|
SetId(id string) FormAttribute |
|
SetAjax(successJS, errorJS template.JS) FormAttribute |
|
SetHiddenFields(fields map[string]string) FormAttribute |
|
SetFieldsHTML(html template.HTML) FormAttribute |
|
SetMethod(value string) FormAttribute |
|
SetHeadWidth(width int) FormAttribute |
|
SetInputWidth(width int) FormAttribute |
|
SetTitle(value template.HTML) FormAttribute |
|
SetLayout(layout form.Layout) FormAttribute |
|
SetOperationFooter(value template.HTML) FormAttribute |
|
GetDefaultBoxHeader(hideBack bool) template.HTML |
|
GetDetailBoxHeader(editUrl, deleteUrl string) template.HTML |
|
GetBoxHeaderNoButton() template.HTML |
|
GetContent() template.HTML |
|
} |
|
|
|
type BoxAttribute interface { |
|
SetHeader(value template.HTML) BoxAttribute |
|
SetBody(value template.HTML) BoxAttribute |
|
SetNoPadding() BoxAttribute |
|
SetFooter(value template.HTML) BoxAttribute |
|
SetTitle(value template.HTML) BoxAttribute |
|
WithHeadBorder() BoxAttribute |
|
SetIframeStyle(iframe bool) BoxAttribute |
|
SetAttr(attr template.HTMLAttr) BoxAttribute |
|
SetStyle(value template.HTMLAttr) BoxAttribute |
|
SetHeadColor(value string) BoxAttribute |
|
SetClass(value string) BoxAttribute |
|
SetTheme(value string) BoxAttribute |
|
SetSecondHeader(value template.HTML) BoxAttribute |
|
SetSecondHeadColor(value string) BoxAttribute |
|
WithSecondHeadBorder() BoxAttribute |
|
SetSecondHeaderClass(value string) BoxAttribute |
|
GetContent() template.HTML |
|
} |
|
|
|
type ColAttribute interface { |
|
SetSize(value S) ColAttribute |
|
SetContent(value template.HTML) ColAttribute |
|
AddContent(value template.HTML) ColAttribute |
|
GetContent() template.HTML |
|
} |
|
|
|
type ImgAttribute interface { |
|
SetWidth(value string) ImgAttribute |
|
SetHeight(value string) ImgAttribute |
|
WithModal() ImgAttribute |
|
SetSrc(value template.HTML) ImgAttribute |
|
GetContent() template.HTML |
|
} |
|
|
|
type LabelAttribute interface { |
|
SetContent(value template.HTML) LabelAttribute |
|
SetColor(value template.HTML) LabelAttribute |
|
SetType(value string) LabelAttribute |
|
GetContent() template.HTML |
|
} |
|
|
|
type RowAttribute interface { |
|
SetContent(value template.HTML) RowAttribute |
|
AddContent(value template.HTML) RowAttribute |
|
GetContent() template.HTML |
|
} |
|
|
|
type ButtonAttribute interface { |
|
SetContent(value template.HTML) ButtonAttribute |
|
SetOrientationRight() ButtonAttribute |
|
SetOrientationLeft() ButtonAttribute |
|
SetMarginLeft(int) ButtonAttribute |
|
SetMarginRight(int) ButtonAttribute |
|
SetThemePrimary() ButtonAttribute |
|
SetSmallSize() ButtonAttribute |
|
AddClass(class string) ButtonAttribute |
|
SetID(id string) ButtonAttribute |
|
SetMiddleSize() ButtonAttribute |
|
SetHref(string) ButtonAttribute |
|
SetThemeWarning() ButtonAttribute |
|
SetTheme(value string) ButtonAttribute |
|
SetLoadingText(value template.HTML) ButtonAttribute |
|
SetThemeDefault() ButtonAttribute |
|
SetType(string) ButtonAttribute |
|
GetContent() template.HTML |
|
} |
|
|
|
type TableAttribute interface { |
|
SetThead(value Thead) TableAttribute |
|
SetInfoList(value []map[string]InfoItem) TableAttribute |
|
SetType(value string) TableAttribute |
|
SetName(name string) TableAttribute |
|
SetMinWidth(value string) TableAttribute |
|
SetHideThead() TableAttribute |
|
SetSticky(sticky bool) TableAttribute |
|
SetLayout(value string) TableAttribute |
|
SetStyle(style string) TableAttribute |
|
GetContent() template.HTML |
|
} |
|
|
|
type DataTableAttribute interface { |
|
GetDataTableHeader() template.HTML |
|
SetThead(value Thead) DataTableAttribute |
|
SetInfoList(value []map[string]InfoItem) DataTableAttribute |
|
SetEditUrl(value string) DataTableAttribute |
|
SetDeleteUrl(value string) DataTableAttribute |
|
SetNewUrl(value string) DataTableAttribute |
|
SetPrimaryKey(value string) DataTableAttribute |
|
SetStyle(style string) DataTableAttribute |
|
SetAction(action template.HTML) DataTableAttribute |
|
SetIsTab(value bool) DataTableAttribute |
|
SetActionFold(fold bool) DataTableAttribute |
|
SetHideThead() DataTableAttribute |
|
SetLayout(value string) DataTableAttribute |
|
SetButtons(btns template.HTML) DataTableAttribute |
|
SetSticky(sticky bool) DataTableAttribute |
|
SetHideFilterArea(value bool) DataTableAttribute |
|
SetHideRowSelector(value bool) DataTableAttribute |
|
SetActionJs(aj template.JS) DataTableAttribute |
|
SetNoAction() DataTableAttribute |
|
SetInfoUrl(value string) DataTableAttribute |
|
SetDetailUrl(value string) DataTableAttribute |
|
SetHasFilter(hasFilter bool) DataTableAttribute |
|
SetSortUrl(value string) DataTableAttribute |
|
SetExportUrl(value string) DataTableAttribute |
|
SetUpdateUrl(value string) DataTableAttribute |
|
GetContent() template.HTML |
|
} |
|
|
|
type TreeAttribute interface { |
|
SetTree(value []menu.Item) TreeAttribute |
|
SetEditUrl(value string) TreeAttribute |
|
SetOrderUrl(value string) TreeAttribute |
|
SetUrlPrefix(value string) TreeAttribute |
|
SetDeleteUrl(value string) TreeAttribute |
|
GetContent() template.HTML |
|
GetTreeHeader() template.HTML |
|
} |
|
|
|
type TreeViewAttribute interface { |
|
SetTree(value TreeViewData) TreeViewAttribute |
|
SetUrlPrefix(value string) TreeViewAttribute |
|
SetID(id string) TreeViewAttribute |
|
GetContent() template.HTML |
|
} |
|
|
|
type PaginatorAttribute interface { |
|
SetCurPageStartIndex(value string) PaginatorAttribute |
|
SetCurPageEndIndex(value string) PaginatorAttribute |
|
SetTotal(value string) PaginatorAttribute |
|
SetPreviousClass(value string) PaginatorAttribute |
|
SetPreviousUrl(value string) PaginatorAttribute |
|
SetPages(value []map[string]string) PaginatorAttribute |
|
SetPageSizeList(value []string) PaginatorAttribute |
|
SetNextClass(value string) PaginatorAttribute |
|
SetNextUrl(value string) PaginatorAttribute |
|
SetOption(value map[string]template.HTML) PaginatorAttribute |
|
SetUrl(value string) PaginatorAttribute |
|
SetExtraInfo(value template.HTML) PaginatorAttribute |
|
SetEntriesInfo(value template.HTML) PaginatorAttribute |
|
GetContent() template.HTML |
|
} |
|
|
|
type TabsAttribute interface { |
|
SetData(value []map[string]template.HTML) TabsAttribute |
|
GetContent() template.HTML |
|
} |
|
|
|
type AlertAttribute interface { |
|
SetTheme(value string) AlertAttribute |
|
SetTitle(value template.HTML) AlertAttribute |
|
SetContent(value template.HTML) AlertAttribute |
|
Warning(msg string) template.HTML |
|
GetContent() template.HTML |
|
} |
|
|
|
type LinkAttribute interface { |
|
OpenInNewTab() LinkAttribute |
|
SetURL(value string) LinkAttribute |
|
SetAttributes(attr template.HTMLAttr) LinkAttribute |
|
SetClass(class template.HTML) LinkAttribute |
|
NoPjax() LinkAttribute |
|
SetTabTitle(value template.HTML) LinkAttribute |
|
SetContent(value template.HTML) LinkAttribute |
|
GetContent() template.HTML |
|
} |
|
|
|
type PopupAttribute interface { |
|
SetID(value string) PopupAttribute |
|
SetTitle(value template.HTML) PopupAttribute |
|
SetDraggable() PopupAttribute |
|
SetHideFooter() PopupAttribute |
|
SetWidth(width string) PopupAttribute |
|
SetHeight(height string) PopupAttribute |
|
SetFooter(value template.HTML) PopupAttribute |
|
SetFooterHTML(value template.HTML) PopupAttribute |
|
SetBody(value template.HTML) PopupAttribute |
|
SetSize(value string) PopupAttribute |
|
GetContent() template.HTML |
|
} |
|
|
|
type PanelInfo struct { |
|
Thead Thead `json:"thead"` |
|
InfoList InfoList `json:"info_list"` |
|
} |
|
|
|
type Thead []TheadItem |
|
|
|
type TheadItem struct { |
|
Head string `json:"head"` |
|
Sortable bool `json:"sortable"` |
|
Field string `json:"field"` |
|
Hide bool `json:"hide"` |
|
Editable bool `json:"editable"` |
|
EditType string `json:"edit_type"` |
|
EditOption FieldOptions `json:"edit_option"` |
|
Width string `json:"width"` |
|
} |
|
|
|
func (t Thead) GroupBy(group [][]string) []Thead { |
|
var res = make([]Thead, len(group)) |
|
|
|
for key, value := range group { |
|
var newThead = make(Thead, 0) |
|
|
|
for _, info := range t { |
|
if modules.InArray(value, info.Field) { |
|
newThead = append(newThead, info) |
|
} |
|
} |
|
|
|
res[key] = newThead |
|
} |
|
|
|
return res |
|
} |
|
|
|
type TreeViewData struct { |
|
Data TreeViewItems `json:"data,omitempty"` |
|
Levels int `json:"levels,omitempty"` |
|
BackColor string `json:"backColor,omitempty"` |
|
BorderColor string `json:"borderColor,omitempty"` |
|
CheckedIcon string `json:"checkedIcon,omitempty"` |
|
CollapseIcon string `json:"collapseIcon,omitempty"` |
|
Color string `json:"color,omitempty"` |
|
EmptyIcon string `json:"emptyIcon,omitempty"` |
|
EnableLinks bool `json:"enableLinks,omitempty"` |
|
ExpandIcon string `json:"expandIcon,omitempty"` |
|
MultiSelect bool `json:"multiSelect,omitempty"` |
|
NodeIcon string `json:"nodeIcon,omitempty"` |
|
OnhoverColor string `json:"onhoverColor,omitempty"` |
|
SelectedIcon string `json:"selectedIcon,omitempty"` |
|
SearchResultColor string `json:"searchResultColor,omitempty"` |
|
SelectedBackColor string `json:"selectedBackColor,omitempty"` |
|
SelectedColor string `json:"selectedColor,omitempty"` |
|
ShowBorder bool `json:"showBorder,omitempty"` |
|
ShowCheckbox bool `json:"showCheckbox,omitempty"` |
|
ShowIcon bool `json:"showIcon,omitempty"` |
|
ShowTags bool `json:"showTags,omitempty"` |
|
UncheckedIcon string `json:"uncheckedIcon,omitempty"` |
|
|
|
SearchResultBackColor string `json:"searchResultBackColor,omitempty"` |
|
HighlightSearchResults bool `json:"highlightSearchResults,omitempty"` |
|
} |
|
|
|
type TreeViewItems []TreeViewItem |
|
|
|
type TreeViewItemState struct { |
|
Checked bool `json:"checked,omitempty"` |
|
Disabled bool `json:"disabled,omitempty"` |
|
Expanded bool `json:"expanded,omitempty"` |
|
Selected bool `json:"selected,omitempty"` |
|
} |
|
|
|
type TreeViewItem struct { |
|
Text string `json:"text,omitempty"` |
|
Icon string `json:"icon,omitempty"` |
|
SelectedIcon string `json:"selected_icon,omitempty"` |
|
Color string `json:"color,omitempty"` |
|
BackColor string `json:"backColor,omitempty"` |
|
Href string `json:"href,omitempty"` |
|
Selectable bool `json:"selectable,omitempty"` |
|
State TreeViewItemState `json:"state,omitempty"` |
|
Tags []string `json:"tags,omitempty"` |
|
Nodes TreeViewItems `json:"nodes,omitempty"` |
|
} |
|
|