`
}
return result_html
}
return ""
}
func (this *Module) module_get_list_of_modules() *[]ModuleItem {
if len(this.modlist) <= 0 {
t := reflect.TypeOf(this)
for i := 0; i < t.NumMethod(); i++ {
m := t.Method(i)
if strings.HasPrefix(m.Name, "Module_") && strings.HasSuffix(m.Name, "_alias") {
alias := m.Name[7:]
alias = alias[0 : len(alias)-6]
this.modlist = append(this.modlist, ModuleItem{
alias,
this.module_get_display(alias),
this.module_get_name(alias),
this.module_get_icon(alias),
this.module_get_order(alias),
})
}
}
sort.Slice(this.modlist, func(i, j int) bool {
return this.modlist[i].Order < this.modlist[j].Order
})
}
return &this.modlist
}
func (this *Module) breadcrumb(data []dataBreadcrumb) string {
result := ``
result += ``
return result
}
func (this *Module) data_table(table string, order_by string, order_way string, data []dataTableRow, action dataTableAction, pagination_url string) string {
var num int
err := this.db.QueryRow("SELECT COUNT(*) FROM `" + table + "`;").Scan(&num)
if err != nil {
return ""
}
pear_page := 10
max_pages := int(math.Ceil(float64(num) / float64(pear_page)))
curr_page := 1
p := this.wrapper.R.URL.Query().Get("p")
if p != "" {
pi, err := strconv.Atoi(p)
if err != nil {
curr_page = 1
} else {
if pi < 1 {
curr_page = 1
} else if pi > max_pages {
curr_page = max_pages
} else {
curr_page = pi
}
}
}
limit_offset := curr_page*pear_page - pear_page
result := `
`
result += ``
result += `
`
sql := "SELECT"
for i, column := range data {
if column.nameInTable != "" {
result += `
` + html.EscapeString(column.nameInTable) + `
`
}
sql += " `" + column.dbField + "`"
if i+1 < len(data) {
sql += ","
}
}
sql += " FROM `" + table + "` ORDER BY `" + order_by + "` " + order_way + " LIMIT ?, ?;"
if action != nil {
result += `
`
}
result += `
`
result += ``
result += ``
rows, err := this.db.Query(sql, limit_offset, pear_page)
if err == nil {
values := make([]string, len(data))
scan := make([]interface{}, len(values))
for i := range values {
scan[i] = &values[i]
}
for rows.Next() {
err = rows.Scan(scan...)
if err == nil {
result += `
`
for i, val := range values {
if data[i].nameInTable != "" {
if data[i].display == nil {
result += `
` + html.EscapeString(string(val)) + `
`
} else {
result += `
` + data[i].display(&values) + `
`
}
}
}
if action != nil {
result += `
` + action(&values) + `
`
}
result += `
`
}
}
}
result += `
`
result += ``
return result
}
func (this *Module) data_form(data []dataFormField) string {
result := ``
return result
}
func New(wrapper *wrapper.Wrapper, db *sql.DB, user *utils.MySql_user, url_args *[]string) *Module {
mmod := "index"
smod := "default"
imod := 0
if len(*url_args) >= 2 {
mmod = (*url_args)[1]
}
if len(*url_args) >= 3 {
smod = (*url_args)[2]
}
if len(*url_args) >= 4 {
if val, err := strconv.Atoi((*url_args)[3]); err == nil {
imod = val
}
}
return &Module{wrapper, db, user, url_args, mmod, smod, imod, make([]ModuleItem, 0)}
}
func (this *Module) Run() bool {
mname := "Module_" + this.mmod
if _, ok := reflect.TypeOf(this).MethodByName(mname); ok {
reflect.ValueOf(this).MethodByName(mname).Call([]reflect.Value{})
return true
}
return false
}
func (this *Module) GetNavMenuModules() string {
html := ""
list := this.module_get_list_of_modules()
for _, value := range *list {
if value.Display {
class := ""
if value.Alias == this.mmod {
class = " active"
}
html += `` + value.Name + ``
}
}
return html
}
func (this *Module) GetNavMenuModulesSys() string {
html := ""
list := this.module_get_list_of_modules()
for _, value := range *list {
if !value.Display {
class := ""
if value.Alias == this.mmod {
class = " active"
}
html += `` + value.Name + ``
}
}
return html
}
func (this *Module) GetSidebarLeft() string {
list := this.module_get_list_of_modules()
modules_all := `
`
for _, value := range *list {
if value.Display {
class := ""
submenu := ""
if value.Alias == this.mmod {
class = " active"
submenu = this.module_get_submenu(value.Alias)
}
modules_all += `
`
for _, value := range *list {
if !value.Display {
class := ""
submenu := ""
if value.Alias == this.mmod {
class = " active"
submenu = this.module_get_submenu(value.Alias)
}
modules_sys += `