├── .gitignore ├── Makefile ├── README.md ├── README_CN.md ├── adminlte ├── .gitignore ├── Makefile ├── adminlte.go ├── components │ ├── chart_legend │ │ ├── chart_legend.go │ │ ├── chart_legend.tmpl │ │ └── chart_legend_tmpl.go │ ├── description │ │ ├── description.go │ │ ├── description.tmpl │ │ └── description_tmpl.go │ ├── infobox │ │ ├── infobox.go │ │ ├── infobox.tmpl │ │ └── infobox_tmpl.go │ ├── productlist │ │ ├── productlist.go │ │ ├── productlist.tmpl │ │ └── productlist_tmpl.go │ ├── progress_group │ │ ├── progress_group.go │ │ ├── progress_group.tmpl │ │ └── progress_group_tmpl.go │ └── smallbox │ │ ├── smallbox.go │ │ ├── smallbox.tmpl │ │ └── smallbox_tmpl.go ├── resource │ ├── adminlte │ │ └── adminlte.css │ ├── assets.go │ ├── assets │ │ └── dist │ │ │ ├── css │ │ │ ├── all.min.165468e1df.css │ │ │ ├── blue.png │ │ │ ├── blue@2x.png │ │ │ └── fonts │ │ │ │ ├── 6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7g.ttf │ │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdr.ttf │ │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdr.ttf │ │ │ │ └── 6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdr.ttf │ │ │ ├── fonts │ │ │ ├── 6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDc.ttf │ │ │ ├── 6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCds18E.ttf │ │ │ ├── 6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkids18E.ttf │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.svg │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ ├── fontawesome-webfont.woff2 │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ ├── glyphicons-halflings-regular.woff2 │ │ │ ├── ionicons.ttf │ │ │ └── ionicons.woff │ │ │ ├── img │ │ │ ├── avatar04.png │ │ │ ├── clear.png │ │ │ ├── loading.gif │ │ │ ├── plugin_default.png │ │ │ ├── plugin_more.png │ │ │ ├── sprite-skin-nice.png │ │ │ ├── ui-icons_444444_256x240.png │ │ │ ├── ui-icons_555555_256x240.png │ │ │ ├── ui-icons_777620_256x240.png │ │ │ ├── ui-icons_777777_256x240.png │ │ │ ├── ui-icons_cc0000_256x240.png │ │ │ └── ui-icons_ffffff_256x240.png │ │ │ └── js │ │ │ ├── all.min.506636f003.js │ │ │ ├── all_2.min.1cd3070239.js │ │ │ ├── datatable.min.43c12443cf.js │ │ │ ├── form.min.4022a41f70.js │ │ │ ├── html5shiv.min.js │ │ │ ├── respond.min.js │ │ │ ├── tree.min.b68a8b6689.js │ │ │ └── treeview.min.3095cd8c12.js │ ├── assets_list.go │ └── assets_path.go ├── separation │ ├── adminlte.go │ ├── public.zip │ └── public │ │ ├── assets │ │ ├── dist │ │ │ ├── css │ │ │ │ ├── all.min.165468e1df.css │ │ │ │ ├── blue.png │ │ │ │ ├── blue@2x.png │ │ │ │ └── fonts │ │ │ │ │ ├── 6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7g.ttf │ │ │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdr.ttf │ │ │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdr.ttf │ │ │ │ │ └── 6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdr.ttf │ │ │ ├── fonts │ │ │ │ ├── 6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDc.ttf │ │ │ │ ├── 6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCds18E.ttf │ │ │ │ ├── 6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkids18E.ttf │ │ │ │ ├── FontAwesome.otf │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ ├── fontawesome-webfont.svg │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ ├── fontawesome-webfont.woff2 │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ ├── glyphicons-halflings-regular.woff2 │ │ │ │ ├── ionicons.ttf │ │ │ │ └── ionicons.woff │ │ │ ├── img │ │ │ │ ├── avatar04.png │ │ │ │ ├── clear.png │ │ │ │ ├── loading.gif │ │ │ │ ├── plugin_default.png │ │ │ │ ├── plugin_more.png │ │ │ │ ├── sprite-skin-nice.png │ │ │ │ ├── ui-icons_444444_256x240.png │ │ │ │ ├── ui-icons_555555_256x240.png │ │ │ │ ├── ui-icons_777620_256x240.png │ │ │ │ ├── ui-icons_777777_256x240.png │ │ │ │ ├── ui-icons_cc0000_256x240.png │ │ │ │ └── ui-icons_ffffff_256x240.png │ │ │ └── js │ │ │ │ ├── all.min.506636f003.js │ │ │ │ ├── all_2.min.1cd3070239.js │ │ │ │ ├── datatable.min.43c12443cf.js │ │ │ │ ├── form.min.4022a41f70.js │ │ │ │ ├── html5shiv.min.js │ │ │ │ ├── respond.min.js │ │ │ │ ├── tree.min.b68a8b6689.js │ │ │ │ └── treeview.min.3095cd8c12.js │ │ └── src │ │ │ ├── css │ │ │ ├── blue.png │ │ │ ├── blue@2x.png │ │ │ ├── combine │ │ │ │ ├── 0_animate.min.css │ │ │ │ ├── 0_bootstrap.min.css │ │ │ │ ├── 1_font-awesome.min.css │ │ │ │ ├── 2_ionicons.min.css │ │ │ │ ├── 3_dataTables.bootstrap.min.css │ │ │ │ ├── 4__all.css │ │ │ │ ├── 5_futurico.css │ │ │ │ ├── 6_polaris.css │ │ │ │ ├── 7_toastr.min.css │ │ │ │ ├── 8_nprogress.css │ │ │ │ ├── 9_select2.min.css │ │ │ │ ├── a_sweetalert.css │ │ │ │ ├── b_bootstrap-editable.css │ │ │ │ ├── b_fileinput.min.css │ │ │ │ ├── c_bootstrap-colorpicker.min.css │ │ │ │ ├── d_nestable.css │ │ │ │ ├── e_bootstrap-datetimepicker.min.css │ │ │ │ ├── e_bootstrap-switch.min.css │ │ │ │ ├── f_bootstrap-duallistbox.min.css │ │ │ │ ├── g_all.css │ │ │ │ ├── g_fontawesome-iconpicker.min.css │ │ │ │ ├── h_AdminLTE.min.css │ │ │ │ ├── h_ion.rangeSlider.css │ │ │ │ ├── h_ion.rangeSlider.skinNice.css │ │ │ │ ├── h_jquery-ui.min.css │ │ │ │ ├── j_font.css │ │ │ │ └── k__all-skins.min.css │ │ │ └── fonts │ │ │ │ ├── 6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7g.ttf │ │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdr.ttf │ │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdr.ttf │ │ │ │ └── 6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdr.ttf │ │ │ ├── fonts │ │ │ ├── 6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDc.ttf │ │ │ ├── 6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCds18E.ttf │ │ │ ├── 6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkids18E.ttf │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.svg │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ ├── fontawesome-webfont.woff2 │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ ├── glyphicons-halflings-regular.woff2 │ │ │ ├── ionicons.ttf │ │ │ └── ionicons.woff │ │ │ ├── img │ │ │ ├── avatar04.png │ │ │ ├── clear.png │ │ │ ├── loading.gif │ │ │ ├── plugin_default.png │ │ │ ├── plugin_more.png │ │ │ ├── sprite-skin-nice.png │ │ │ ├── ui-icons_444444_256x240.png │ │ │ ├── ui-icons_555555_256x240.png │ │ │ ├── ui-icons_777620_256x240.png │ │ │ ├── ui-icons_777777_256x240.png │ │ │ ├── ui-icons_cc0000_256x240.png │ │ │ └── ui-icons_ffffff_256x240.png │ │ │ └── js │ │ │ ├── all │ │ │ ├── 0_jquery_2.1.4.min.js │ │ │ ├── 1_adminlte.min.js │ │ │ ├── 2_icheck.min.js │ │ │ ├── 3_bootstrap-select.min.js │ │ │ ├── 4_jquery.ui.min.js │ │ │ └── 5_bootstrap.min.js │ │ │ ├── all_2 │ │ │ ├── 1_jquery.slimscroll.min.js │ │ │ ├── 2_fastclick.js │ │ │ ├── 3_nprogress.js │ │ │ ├── 4_toastr.min.js │ │ │ ├── 5_jquery.pjax.js │ │ │ ├── 6_sweetalert.min.js │ │ │ └── 7_info.js │ │ │ ├── components │ │ │ ├── datatable │ │ │ │ ├── 0_jquery.dataTables.min.js │ │ │ │ ├── 1_dataTables.bootstrap.min.js │ │ │ │ └── 2_bootstrap-editable.min.js │ │ │ ├── form │ │ │ │ ├── 0_select2.full.min.js │ │ │ │ ├── 1_fileinput.min.js │ │ │ │ ├── 2_jquery.bootstrap-duallistbox.min.js │ │ │ │ ├── 3_bootstrap-switch.min.js │ │ │ │ ├── 4_bootstrap-colorpicker.min.js │ │ │ │ ├── 5_jquery.inputmask.bundle.min.js │ │ │ │ ├── 6_bootstrap-number-input.js │ │ │ │ ├── 6_ion.rangeSlider.min.js │ │ │ │ ├── 7_wangEditor.min.js │ │ │ │ ├── 8_fileinput.min.js │ │ │ │ ├── 9_fontawesome-iconpicker.min.js │ │ │ │ ├── a_moment-with-locales.min.js │ │ │ │ ├── b_bootstrap-datetimepicker.min.js │ │ │ │ ├── e_ace.js │ │ │ │ ├── f_ext-language_tools.js │ │ │ │ ├── f_mode-html.js │ │ │ │ ├── f_theme-monokai.js │ │ │ │ └── f_worker-html.js │ │ │ ├── tree │ │ │ │ └── jquery.nestable.js │ │ │ └── treeview │ │ │ │ └── bootstrap-treeview.min.js │ │ │ ├── html5shiv.min.js │ │ │ └── respond.min.js │ │ └── pages │ │ ├── 403.tmpl │ │ ├── 404.tmpl │ │ ├── 500.tmpl │ │ ├── admin_panel.tmpl │ │ ├── components │ │ ├── alert.tmpl │ │ ├── box.tmpl │ │ ├── button.tmpl │ │ ├── col.tmpl │ │ ├── form.tmpl │ │ ├── form │ │ │ ├── array.tmpl │ │ │ ├── checkbox.tmpl │ │ │ ├── checkbox_single.tmpl │ │ │ ├── checkbox_stacked.tmpl │ │ │ ├── code.tmpl │ │ │ ├── color.tmpl │ │ │ ├── currency.tmpl │ │ │ ├── custom.tmpl │ │ │ ├── datetime.tmpl │ │ │ ├── datetime_range.tmpl │ │ │ ├── default.tmpl │ │ │ ├── email.tmpl │ │ │ ├── file.tmpl │ │ │ ├── help_block.tmpl │ │ │ ├── iconpicker.tmpl │ │ │ ├── ip.tmpl │ │ │ ├── multi_file.tmpl │ │ │ ├── number.tmpl │ │ │ ├── number_range.tmpl │ │ │ ├── password.tmpl │ │ │ ├── radio.tmpl │ │ │ ├── rate.tmpl │ │ │ ├── richtext.tmpl │ │ │ ├── select.tmpl │ │ │ ├── selectbox.tmpl │ │ │ ├── singleselect.tmpl │ │ │ ├── slider.tmpl │ │ │ ├── switch.tmpl │ │ │ ├── table.tmpl │ │ │ ├── text.tmpl │ │ │ ├── textarea.tmpl │ │ │ └── url.tmpl │ │ ├── form_components.tmpl │ │ ├── form_components_layout.tmpl │ │ ├── form_layout_default.tmpl │ │ ├── form_layout_filter.tmpl │ │ ├── form_layout_flow.tmpl │ │ ├── form_layout_tab.tmpl │ │ ├── form_layout_two_col.tmpl │ │ ├── image.tmpl │ │ ├── label.tmpl │ │ ├── link.tmpl │ │ ├── paginator.tmpl │ │ ├── popup.tmpl │ │ ├── row.tmpl │ │ ├── table.tmpl │ │ ├── table │ │ │ └── box-header.tmpl │ │ ├── tabs.tmpl │ │ ├── tree-header.tmpl │ │ ├── tree.tmpl │ │ └── treeview.tmpl │ │ ├── content.tmpl │ │ ├── control_panel.tmpl │ │ ├── footer.tmpl │ │ ├── head.tmpl │ │ ├── header.tmpl │ │ ├── js.tmpl │ │ ├── layout.tmpl │ │ ├── menu.tmpl │ │ └── sidebar.tmpl └── template.go ├── common ├── assets │ ├── css │ │ ├── blue.png │ │ ├── blue@2x.png │ │ ├── combine │ │ │ ├── 0_animate.min.css │ │ │ ├── 0_bootstrap.min.css │ │ │ ├── 1_font-awesome.min.css │ │ │ ├── 2_ionicons.min.css │ │ │ ├── 3_dataTables.bootstrap.min.css │ │ │ ├── 4__all.css │ │ │ ├── 5_futurico.css │ │ │ ├── 6_polaris.css │ │ │ ├── 7_toastr.min.css │ │ │ ├── 8_nprogress.css │ │ │ ├── 9_select2.min.css │ │ │ ├── a_sweetalert.css │ │ │ ├── b_bootstrap-editable.css │ │ │ ├── b_fileinput.min.css │ │ │ ├── c_bootstrap-colorpicker.min.css │ │ │ ├── d_nestable.css │ │ │ ├── e_bootstrap-datetimepicker.min.css │ │ │ ├── e_bootstrap-switch.min.css │ │ │ ├── f_bootstrap-duallistbox.min.css │ │ │ ├── g_fontawesome-iconpicker.min.css │ │ │ ├── h_AdminLTE.min.css │ │ │ ├── h_ion.rangeSlider.css │ │ │ ├── h_ion.rangeSlider.skinNice.css │ │ │ ├── h_jquery-ui.min.css │ │ │ ├── j_font.css │ │ │ └── k__all-skins.min.css │ │ └── fonts │ │ │ ├── 6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7g.ttf │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdr.ttf │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdr.ttf │ │ │ └── 6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdr.ttf │ ├── fonts │ │ ├── 6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDc.ttf │ │ ├── 6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCds18E.ttf │ │ ├── 6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkids18E.ttf │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ ├── fontawesome-webfont.woff2 │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ ├── glyphicons-halflings-regular.woff2 │ │ ├── ionicons.ttf │ │ └── ionicons.woff │ ├── img │ │ ├── avatar04.png │ │ ├── clear.png │ │ ├── loading.gif │ │ ├── plugin_default.png │ │ ├── plugin_more.png │ │ ├── sprite-skin-nice.png │ │ ├── ui-icons_444444_256x240.png │ │ ├── ui-icons_555555_256x240.png │ │ ├── ui-icons_777620_256x240.png │ │ ├── ui-icons_777777_256x240.png │ │ ├── ui-icons_cc0000_256x240.png │ │ └── ui-icons_ffffff_256x240.png │ └── js │ │ ├── all │ │ ├── 0_jquery_2.1.4.min.js │ │ ├── 1_adminlte.min.js │ │ ├── 2_icheck.min.js │ │ ├── 3_bootstrap-select.min.js │ │ ├── 4_jquery.ui.min.js │ │ └── 5_bootstrap.min.js │ │ ├── all_2 │ │ ├── 1_jquery.slimscroll.min.js │ │ ├── 2_fastclick.js │ │ ├── 3_nprogress.js │ │ ├── 4_toastr.min.js │ │ ├── 5_jquery.pjax.js │ │ ├── 6_sweetalert.min.js │ │ └── 7_info.js │ │ ├── components │ │ ├── datatable │ │ │ ├── 0_jquery.dataTables.min.js │ │ │ ├── 1_dataTables.bootstrap.min.js │ │ │ └── 2_bootstrap-editable.min.js │ │ ├── form │ │ │ ├── 0_select2.full.min.js │ │ │ ├── 1_fileinput.min.js │ │ │ ├── 2_jquery.bootstrap-duallistbox.min.js │ │ │ ├── 3_bootstrap-switch.min.js │ │ │ ├── 4_bootstrap-colorpicker.min.js │ │ │ ├── 5_jquery.inputmask.bundle.min.js │ │ │ ├── 6_bootstrap-number-input.js │ │ │ ├── 6_ion.rangeSlider.min.js │ │ │ ├── 7_wangEditor.min.js │ │ │ ├── 8_fileinput.min.js │ │ │ ├── 9_fontawesome-iconpicker.min.js │ │ │ ├── a_moment-with-locales.min.js │ │ │ ├── b_bootstrap-datetimepicker.min.js │ │ │ ├── e_ace.js │ │ │ ├── f_ext-language_tools.js │ │ │ ├── f_mode-html.js │ │ │ ├── f_theme-monokai.js │ │ │ └── f_worker-html.js │ │ ├── tree │ │ │ └── jquery.nestable.js │ │ └── treeview │ │ │ └── bootstrap-treeview.min.js │ │ ├── html5shiv.min.js │ │ └── respond.min.js ├── common.go └── pages │ ├── 403.tmpl │ ├── 404.tmpl │ ├── 500.tmpl │ ├── admin_panel.tmpl │ ├── components │ ├── alert.tmpl │ ├── box.tmpl │ ├── button.tmpl │ ├── col.tmpl │ ├── form.tmpl │ ├── form │ │ ├── array.tmpl │ │ ├── checkbox.tmpl │ │ ├── checkbox_single.tmpl │ │ ├── checkbox_stacked.tmpl │ │ ├── code.tmpl │ │ ├── color.tmpl │ │ ├── currency.tmpl │ │ ├── custom.tmpl │ │ ├── datetime.tmpl │ │ ├── datetime_range.tmpl │ │ ├── default.tmpl │ │ ├── email.tmpl │ │ ├── file.tmpl │ │ ├── help_block.tmpl │ │ ├── iconpicker.tmpl │ │ ├── ip.tmpl │ │ ├── multi_file.tmpl │ │ ├── number.tmpl │ │ ├── number_range.tmpl │ │ ├── password.tmpl │ │ ├── radio.tmpl │ │ ├── rate.tmpl │ │ ├── richtext.tmpl │ │ ├── select.tmpl │ │ ├── selectbox.tmpl │ │ ├── singleselect.tmpl │ │ ├── slider.tmpl │ │ ├── switch.tmpl │ │ ├── table.tmpl │ │ ├── text.tmpl │ │ ├── textarea.tmpl │ │ └── url.tmpl │ ├── form_components.tmpl │ ├── form_components_layout.tmpl │ ├── form_layout_default.tmpl │ ├── form_layout_filter.tmpl │ ├── form_layout_flow.tmpl │ ├── form_layout_tab.tmpl │ ├── form_layout_two_col.tmpl │ ├── image.tmpl │ ├── label.tmpl │ ├── link.tmpl │ ├── paginator.tmpl │ ├── popup.tmpl │ ├── row.tmpl │ ├── table.tmpl │ ├── table │ │ └── box-header.tmpl │ ├── tabs.tmpl │ ├── tree-header.tmpl │ ├── tree.tmpl │ └── treeview.tmpl │ ├── content.tmpl │ ├── control_panel.tmpl │ ├── footer.tmpl │ ├── head.tmpl │ ├── header.tmpl │ ├── js.tmpl │ ├── layout.tmpl │ ├── menu.tmpl │ └── sidebar.tmpl ├── go.mod ├── go.sum └── sword ├── .gitignore ├── Makefile ├── components ├── card │ ├── card.go │ ├── card.tmpl │ └── card_tmpl.go ├── chart_legend │ ├── chart_legend.go │ ├── chart_legend.tmpl │ └── chart_legend_tmpl.go ├── description │ ├── description.go │ ├── description.tmpl │ └── description_tmpl.go └── progress_group │ ├── progress_group.go │ ├── progress_group.tmpl │ └── progress_group_tmpl.go ├── go_plugin ├── Makefile └── main.go ├── resource ├── assets.go ├── assets │ └── dist │ │ ├── css │ │ ├── all.min.dd4b069ab5.css │ │ ├── blue.png │ │ ├── blue@2x.png │ │ └── fonts │ │ │ ├── 6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7g.ttf │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdr.ttf │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdr.ttf │ │ │ └── 6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdr.ttf │ │ ├── fonts │ │ ├── 6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDc.ttf │ │ ├── 6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCds18E.ttf │ │ ├── 6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkids18E.ttf │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ ├── fontawesome-webfont.woff2 │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ ├── glyphicons-halflings-regular.woff2 │ │ ├── ionicons.ttf │ │ └── ionicons.woff │ │ ├── img │ │ ├── avatar04.png │ │ ├── clear.png │ │ ├── loading.gif │ │ ├── plugin_default.png │ │ ├── plugin_more.png │ │ ├── sprite-skin-nice.png │ │ ├── ui-icons_444444_256x240.png │ │ ├── ui-icons_555555_256x240.png │ │ ├── ui-icons_777620_256x240.png │ │ ├── ui-icons_777777_256x240.png │ │ ├── ui-icons_cc0000_256x240.png │ │ └── ui-icons_ffffff_256x240.png │ │ └── js │ │ ├── all.min.506636f003.js │ │ ├── all_2.min.1cd3070239.js │ │ ├── datatable.min.43c12443cf.js │ │ ├── form.min.4022a41f70.js │ │ ├── html5shiv.min.js │ │ ├── respond.min.js │ │ ├── tree.min.b68a8b6689.js │ │ └── treeview.min.3095cd8c12.js ├── assets_list.go ├── assets_path.go └── sword │ ├── blue.png │ ├── blue@2x.png │ ├── pages │ ├── 403.tmpl │ ├── 404.tmpl │ ├── 500.tmpl │ ├── admin_panel.tmpl │ ├── components │ │ ├── paginator.tmpl │ │ ├── table │ │ │ └── box-header.tmpl │ │ └── tree-header.tmpl │ ├── content.tmpl │ ├── header.tmpl │ ├── layout.tmpl │ └── sidebar.tmpl │ └── sword.css ├── separation ├── public.zip ├── public │ ├── assets │ │ ├── dist │ │ │ ├── css │ │ │ │ ├── all.min.dd4b069ab5.css │ │ │ │ ├── blue.png │ │ │ │ ├── blue@2x.png │ │ │ │ └── fonts │ │ │ │ │ ├── 6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7g.ttf │ │ │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdr.ttf │ │ │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdr.ttf │ │ │ │ │ └── 6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdr.ttf │ │ │ ├── fonts │ │ │ │ ├── 6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDc.ttf │ │ │ │ ├── 6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCds18E.ttf │ │ │ │ ├── 6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkids18E.ttf │ │ │ │ ├── FontAwesome.otf │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ ├── fontawesome-webfont.svg │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ ├── fontawesome-webfont.woff2 │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ ├── glyphicons-halflings-regular.woff2 │ │ │ │ ├── ionicons.ttf │ │ │ │ └── ionicons.woff │ │ │ ├── img │ │ │ │ ├── avatar04.png │ │ │ │ ├── clear.png │ │ │ │ ├── loading.gif │ │ │ │ ├── plugin_default.png │ │ │ │ ├── plugin_more.png │ │ │ │ ├── sprite-skin-nice.png │ │ │ │ ├── ui-icons_444444_256x240.png │ │ │ │ ├── ui-icons_555555_256x240.png │ │ │ │ ├── ui-icons_777620_256x240.png │ │ │ │ ├── ui-icons_777777_256x240.png │ │ │ │ ├── ui-icons_cc0000_256x240.png │ │ │ │ └── ui-icons_ffffff_256x240.png │ │ │ └── js │ │ │ │ ├── all.min.506636f003.js │ │ │ │ ├── all_2.min.1cd3070239.js │ │ │ │ ├── datatable.min.43c12443cf.js │ │ │ │ ├── form.min.4022a41f70.js │ │ │ │ ├── html5shiv.min.js │ │ │ │ ├── respond.min.js │ │ │ │ ├── tree.min.b68a8b6689.js │ │ │ │ └── treeview.min.3095cd8c12.js │ │ └── src │ │ │ ├── css │ │ │ ├── blue.png │ │ │ ├── blue@2x.png │ │ │ ├── combine │ │ │ │ ├── 0_animate.min.css │ │ │ │ ├── 0_bootstrap.min.css │ │ │ │ ├── 1_font-awesome.min.css │ │ │ │ ├── 2_ionicons.min.css │ │ │ │ ├── 3_dataTables.bootstrap.min.css │ │ │ │ ├── 4__all.css │ │ │ │ ├── 5_futurico.css │ │ │ │ ├── 6_polaris.css │ │ │ │ ├── 7_toastr.min.css │ │ │ │ ├── 8_nprogress.css │ │ │ │ ├── 9_select2.min.css │ │ │ │ ├── a_sweetalert.css │ │ │ │ ├── b_bootstrap-editable.css │ │ │ │ ├── b_fileinput.min.css │ │ │ │ ├── c_bootstrap-colorpicker.min.css │ │ │ │ ├── d_nestable.css │ │ │ │ ├── e_bootstrap-datetimepicker.min.css │ │ │ │ ├── e_bootstrap-switch.min.css │ │ │ │ ├── f_bootstrap-duallistbox.min.css │ │ │ │ ├── g_fontawesome-iconpicker.min.css │ │ │ │ ├── h_AdminLTE.min.css │ │ │ │ ├── h_ion.rangeSlider.css │ │ │ │ ├── h_ion.rangeSlider.skinNice.css │ │ │ │ ├── h_jquery-ui.min.css │ │ │ │ ├── i_sword.css │ │ │ │ ├── j_font.css │ │ │ │ └── k__all-skins.min.css │ │ │ └── fonts │ │ │ │ ├── 6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7g.ttf │ │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdr.ttf │ │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdr.ttf │ │ │ │ └── 6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdr.ttf │ │ │ ├── fonts │ │ │ ├── 6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDc.ttf │ │ │ ├── 6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCds18E.ttf │ │ │ ├── 6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkids18E.ttf │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.svg │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ ├── fontawesome-webfont.woff2 │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ ├── glyphicons-halflings-regular.woff2 │ │ │ ├── ionicons.ttf │ │ │ └── ionicons.woff │ │ │ ├── img │ │ │ ├── avatar04.png │ │ │ ├── clear.png │ │ │ ├── loading.gif │ │ │ ├── plugin_default.png │ │ │ ├── plugin_more.png │ │ │ ├── sprite-skin-nice.png │ │ │ ├── ui-icons_444444_256x240.png │ │ │ ├── ui-icons_555555_256x240.png │ │ │ ├── ui-icons_777620_256x240.png │ │ │ ├── ui-icons_777777_256x240.png │ │ │ ├── ui-icons_cc0000_256x240.png │ │ │ └── ui-icons_ffffff_256x240.png │ │ │ └── js │ │ │ ├── all │ │ │ ├── 0_jquery_2.1.4.min.js │ │ │ ├── 1_adminlte.min.js │ │ │ ├── 2_icheck.min.js │ │ │ ├── 3_bootstrap-select.min.js │ │ │ ├── 4_jquery.ui.min.js │ │ │ └── 5_bootstrap.min.js │ │ │ ├── all_2 │ │ │ ├── 1_jquery.slimscroll.min.js │ │ │ ├── 2_fastclick.js │ │ │ ├── 3_nprogress.js │ │ │ ├── 4_toastr.min.js │ │ │ ├── 5_jquery.pjax.js │ │ │ ├── 6_sweetalert.min.js │ │ │ └── 7_info.js │ │ │ ├── components │ │ │ ├── datatable │ │ │ │ ├── 0_jquery.dataTables.min.js │ │ │ │ ├── 1_dataTables.bootstrap.min.js │ │ │ │ └── 2_bootstrap-editable.min.js │ │ │ ├── form │ │ │ │ ├── 0_select2.full.min.js │ │ │ │ ├── 1_fileinput.min.js │ │ │ │ ├── 2_jquery.bootstrap-duallistbox.min.js │ │ │ │ ├── 3_bootstrap-switch.min.js │ │ │ │ ├── 4_bootstrap-colorpicker.min.js │ │ │ │ ├── 5_jquery.inputmask.bundle.min.js │ │ │ │ ├── 6_bootstrap-number-input.js │ │ │ │ ├── 6_ion.rangeSlider.min.js │ │ │ │ ├── 7_wangEditor.min.js │ │ │ │ ├── 8_fileinput.min.js │ │ │ │ ├── 9_fontawesome-iconpicker.min.js │ │ │ │ ├── a_moment-with-locales.min.js │ │ │ │ ├── b_bootstrap-datetimepicker.min.js │ │ │ │ ├── e_ace.js │ │ │ │ ├── f_ext-language_tools.js │ │ │ │ ├── f_mode-html.js │ │ │ │ ├── f_theme-monokai.js │ │ │ │ └── f_worker-html.js │ │ │ ├── tree │ │ │ │ └── jquery.nestable.js │ │ │ └── treeview │ │ │ │ └── bootstrap-treeview.min.js │ │ │ ├── html5shiv.min.js │ │ │ └── respond.min.js │ └── pages │ │ ├── 403.tmpl │ │ ├── 404.tmpl │ │ ├── 500.tmpl │ │ ├── admin_panel.tmpl │ │ ├── components │ │ ├── alert.tmpl │ │ ├── box.tmpl │ │ ├── button.tmpl │ │ ├── col.tmpl │ │ ├── form.tmpl │ │ ├── form │ │ │ ├── array.tmpl │ │ │ ├── checkbox.tmpl │ │ │ ├── checkbox_single.tmpl │ │ │ ├── checkbox_stacked.tmpl │ │ │ ├── code.tmpl │ │ │ ├── color.tmpl │ │ │ ├── currency.tmpl │ │ │ ├── custom.tmpl │ │ │ ├── datetime.tmpl │ │ │ ├── datetime_range.tmpl │ │ │ ├── default.tmpl │ │ │ ├── email.tmpl │ │ │ ├── file.tmpl │ │ │ ├── help_block.tmpl │ │ │ ├── iconpicker.tmpl │ │ │ ├── ip.tmpl │ │ │ ├── multi_file.tmpl │ │ │ ├── number.tmpl │ │ │ ├── number_range.tmpl │ │ │ ├── password.tmpl │ │ │ ├── radio.tmpl │ │ │ ├── rate.tmpl │ │ │ ├── richtext.tmpl │ │ │ ├── select.tmpl │ │ │ ├── selectbox.tmpl │ │ │ ├── singleselect.tmpl │ │ │ ├── slider.tmpl │ │ │ ├── switch.tmpl │ │ │ ├── table.tmpl │ │ │ ├── text.tmpl │ │ │ ├── textarea.tmpl │ │ │ └── url.tmpl │ │ ├── form_components.tmpl │ │ ├── form_components_layout.tmpl │ │ ├── form_layout_default.tmpl │ │ ├── form_layout_filter.tmpl │ │ ├── form_layout_flow.tmpl │ │ ├── form_layout_tab.tmpl │ │ ├── form_layout_two_col.tmpl │ │ ├── image.tmpl │ │ ├── label.tmpl │ │ ├── link.tmpl │ │ ├── paginator.tmpl │ │ ├── popup.tmpl │ │ ├── row.tmpl │ │ ├── table.tmpl │ │ ├── table │ │ │ └── box-header.tmpl │ │ ├── tabs.tmpl │ │ ├── tree-header.tmpl │ │ ├── tree.tmpl │ │ └── treeview.tmpl │ │ ├── content.tmpl │ │ ├── control_panel.tmpl │ │ ├── footer.tmpl │ │ ├── head.tmpl │ │ ├── header.tmpl │ │ ├── js.tmpl │ │ ├── layout.tmpl │ │ ├── menu.tmpl │ │ └── sidebar.tmpl └── sword.go ├── sword.go └── template.go /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | .vscode 3 | .DS_Store 4 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | all: 2 | make -C ./adminlte 3 | make -C ./sword 4 | make fmt 5 | 6 | fmt: 7 | GO111MODULE=off go fmt ./... 8 | GO111MODULE=off goimports -l -w . -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GoAdmin Official Themes 2 | 3 | - [adminlte](https://github.com/GoAdminGroup/themes/tree/master/adminlte) 4 | - [sword](https://github.com/GoAdminGroup/themes/tree/master/sword) 5 | 6 | [中文介绍](./README_CN.md) 7 | 8 | ## How to use 9 | 10 | - Import the theme 11 | - Set in the global configuration of GoAdmin 12 | 13 | ```go 14 | 15 | package main 16 | 17 | import ( 18 | ... 19 | _ "github.com/GoAdminGroup/themes/adminlte" 20 | ... 21 | ) 22 | 23 | func main() { 24 | 25 | ... 26 | 27 | cfg := config.Config{ 28 | ... 29 | 30 | Theme: "adminlte", 31 | 32 | ... 33 | } 34 | 35 | ... 36 | 37 | } 38 | 39 | ``` 40 | 41 | ## How to modify and make it work 42 | 43 | Use the Makefile under each theme directory. -------------------------------------------------------------------------------- /README_CN.md: -------------------------------------------------------------------------------- 1 | # GoAdmin 官方主题 2 | 3 | - [adminlte](https://github.com/GoAdminGroup/themes/tree/master/adminlte) 4 | - [sword](https://github.com/GoAdminGroup/themes/tree/master/sword) 5 | 6 | ## 如何使用 7 | 8 | - 导入主题 9 | - 在全局配置中设置 10 | 11 | ```go 12 | 13 | package main 14 | 15 | import ( 16 | ... 17 | _ "github.com/GoAdminGroup/themes/adminlte" 18 | ... 19 | ) 20 | 21 | func main() { 22 | 23 | ... 24 | 25 | cfg := config.Config{ 26 | ... 27 | 28 | Theme: "adminlte", 29 | 30 | ... 31 | } 32 | 33 | ... 34 | 35 | } 36 | 37 | ``` 38 | 39 | ## 如何修改,自定义 40 | 41 | 使用每个主题下面的 Makefile 命令 -------------------------------------------------------------------------------- /adminlte/.gitignore: -------------------------------------------------------------------------------- 1 | /resource/assets/vendor -------------------------------------------------------------------------------- /adminlte/components/chart_legend/chart_legend.go: -------------------------------------------------------------------------------- 1 | package chart_legend 2 | 3 | import ( 4 | "html/template" 5 | 6 | adminTemplate "github.com/GoAdminGroup/go-admin/template" 7 | ) 8 | 9 | type ChartLegend struct { 10 | *adminTemplate.BaseComponent 11 | 12 | Data []map[string]string 13 | } 14 | 15 | func New() ChartLegend { 16 | return ChartLegend{ 17 | BaseComponent: &adminTemplate.BaseComponent{ 18 | Name: "chart-legend", 19 | HTMLData: List["chart-legend"], 20 | }, 21 | } 22 | } 23 | 24 | func (c ChartLegend) SetData(value []map[string]string) ChartLegend { 25 | c.Data = value 26 | return c 27 | } 28 | 29 | func (c ChartLegend) GetContent() template.HTML { return c.GetContentWithData(c) } 30 | -------------------------------------------------------------------------------- /adminlte/components/chart_legend/chart_legend.tmpl: -------------------------------------------------------------------------------- 1 | {{define "chart-legend"}} 2 |
{{langHtml .Title}}
6 |{{langHtml .Title}}
9 |