Skip to content

Commit b8971b8

Browse files
author
cg33
committed
Feature: support more form layouts
1 parent 7b2aa91 commit b8971b8

File tree

1 file changed

+145
-52
lines changed

1 file changed

+145
-52
lines changed

sword/template.go

Lines changed: 145 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -712,63 +712,25 @@ var TemplateList = map[string]string{"admin_panel":`{{define "admin_panel"}}
712712
{{.Header}}
713713
<form action="{{.Url}}" method="{{.Method}}" accept-charset="UTF-8" class="form-horizontal" pjax-container>
714714
<div class="box-body">
715-
{{if eq (len .TabHeaders) 0}}
716-
<div class="fields-group">
717-
{{ template "form_components" .Content }}
718-
</div>
719715
720-
{{range $key, $data := .Content}}
721-
{{if eq $data.Field $.PrimaryKey}}
722-
<input type="hidden" name="{{$.PrimaryKey}}" value='{{$data.Value}}'>
723-
{{end}}
716+
{{if ne (len .TabHeaders) 0}}
717+
{{ template "form_layout_tab" . }}
718+
{{else if ne (len .ContentList) 0}}
719+
{{ template "form_layout_two_col" . }}
720+
{{else}}
721+
{{ template "form_layout_default" . }}
724722
{{end}}
725723
726-
{{else}}
727-
<div class="nav-tabs-custom">
728-
<ul class="nav nav-tabs">
729-
{{range $key, $data := .TabHeaders}}
730-
{{if eq $key 0}}
731-
<li class="active">
732-
{{else}}
733-
<li class="">
734-
{{end}}
735-
<a href="#tab-form-{{$key}}" data-toggle="tab" aria-expanded="true">
736-
{{$data}} <i class="fa fa-exclamation-circle text-red hide"></i>
737-
</a>
738-
</li>
739-
{{end}}
740-
</ul>
741-
<div class="tab-content fields-group">
742-
743-
{{range $key, $data := .TabContents}}
744-
745-
{{if eq $key 0}}
746-
<div class="tab-pane active" id="tab-form-{{$key}}">
747-
{{else}}
748-
<div class="tab-pane" id="tab-form-{{$key}}">
749-
{{end}}
750-
{{ template "form_components" $data}}
751-
{{range $key, $d := $data}}
752-
{{if eq $d.Field $.PrimaryKey}}
753-
<input type="hidden" name="{{$.PrimaryKey}}" value='{{$d.Value}}'>
754-
{{end}}
755-
{{end}}
756-
</div>
757-
758-
{{end}}
724+
</div>
759725
760-
</div>
761-
</div>
762-
{{end}}
726+
{{if ne .OperationFooter ""}}
727+
<div class="box-footer">
728+
{{.OperationFooter}}
763729
</div>
764-
{{if ne .OperationFooter ""}}
765-
<div class="box-footer">
766-
{{.OperationFooter}}
767-
</div>
768-
{{end}}
730+
{{end}}
769731
770-
<input type="hidden" name="_previous_" value='{{.InfoUrl}}'>
771-
<input type="hidden" name="_t" value='{{.CSRFToken}}'>
732+
<input type="hidden" name="_previous_" value='{{.InfoUrl}}'>
733+
<input type="hidden" name="_t" value='{{.CSRFToken}}'>
772734
</form>
773735
{{.Footer}}
774736
{{end}}`,"components/form_components":`{{define "form_components"}}
@@ -825,6 +787,135 @@ var TemplateList = map[string]string{"admin_panel":`{{define "admin_panel"}}
825787
</div>
826788
{{end}}
827789
{{end}}
790+
{{end}}`,"components/form_layout_default":`{{define "form_layout_default"}}
791+
792+
<div class="box-body">
793+
{{if eq (len .TabHeaders) 0}}
794+
<div class="fields-group">
795+
{{ template "form_components" .Content }}
796+
</div>
797+
798+
{{range $key, $data := .Content}}
799+
{{if eq $data.Field $.PrimaryKey}}
800+
<input type="hidden" name="{{$.PrimaryKey}}" value='{{$data.Value}}'>
801+
{{end}}
802+
{{end}}
803+
{{else}}
804+
<div class="nav-tabs-custom">
805+
<ul class="nav nav-tabs">
806+
{{range $key, $data := .TabHeaders}}
807+
{{if eq $key 0}}
808+
<li class="active">
809+
<a href="#tab-form-{{$key}}" data-toggle="tab" aria-expanded="true">
810+
{{$data}} <i class="fa fa-exclamation-circle text-red hide"></i>
811+
</a>
812+
</li>
813+
{{else}}
814+
<li class="">
815+
<a href="#tab-form-{{$key}}" data-toggle="tab" aria-expanded="true">
816+
{{$data}} <i class="fa fa-exclamation-circle text-red hide"></i>
817+
</a>
818+
</li>
819+
{{end}}
820+
{{end}}
821+
</ul>
822+
<div class="tab-content fields-group">
823+
{{range $key, $data := .TabContents}}
824+
{{if eq $key 0}}
825+
<div class="tab-pane active" id="tab-form-{{$key}}">
826+
{{ template "form_components" $data}}
827+
{{range $key, $d := $data}}
828+
{{if eq $d.Field $.PrimaryKey}}
829+
<input type="hidden" name="{{$.PrimaryKey}}" value='{{$d.Value}}'>
830+
{{end}}
831+
{{end}}
832+
</div>
833+
{{else}}
834+
<div class="tab-pane" id="tab-form-{{$key}}">
835+
{{ template "form_components" $data}}
836+
{{range $key, $d := $data}}
837+
{{if eq $d.Field $.PrimaryKey}}
838+
<input type="hidden" name="{{$.PrimaryKey}}" value='{{$d.Value}}'>
839+
{{end}}
840+
{{end}}
841+
</div>
842+
{{end}}
843+
{{end}}
844+
</div>
845+
</div>
846+
{{end}}
847+
</div>
848+
849+
{{end}}`,"components/form_layout_tab":`{{define "form_layout_tab"}}
850+
851+
<div class="box-body">
852+
<div class="nav-tabs-custom">
853+
<ul class="nav nav-tabs">
854+
{{range $key, $data := .TabHeaders}}
855+
{{if eq $key 0}}
856+
<li class="active">
857+
<a href="#tab-form-{{$key}}" data-toggle="tab" aria-expanded="true">
858+
{{$data}} <i class="fa fa-exclamation-circle text-red hide"></i>
859+
</a>
860+
</li>
861+
{{else}}
862+
<li class="">
863+
<a href="#tab-form-{{$key}}" data-toggle="tab" aria-expanded="true">
864+
{{$data}} <i class="fa fa-exclamation-circle text-red hide"></i>
865+
</a>
866+
</li>
867+
{{end}}
868+
{{end}}
869+
</ul>
870+
<div class="tab-content fields-group">
871+
{{range $key, $data := .TabContents}}
872+
{{if eq $key 0}}
873+
<div class="tab-pane active" id="tab-form-{{$key}}">
874+
{{ template "form_components" $data}}
875+
{{range $key, $d := $data}}
876+
{{if eq $d.Field $.PrimaryKey}}
877+
<input type="hidden" name="{{$.PrimaryKey}}" value='{{$d.Value}}'>
878+
{{end}}
879+
{{end}}
880+
</div>
881+
{{else}}
882+
<div class="tab-pane" id="tab-form-{{$key}}">
883+
{{ template "form_components" $data}}
884+
{{range $key, $d := $data}}
885+
{{if eq $d.Field $.PrimaryKey}}
886+
<input type="hidden" name="{{$.PrimaryKey}}" value='{{$d.Value}}'>
887+
{{end}}
888+
{{end}}
889+
</div>
890+
{{end}}
891+
{{end}}
892+
</div>
893+
</div>
894+
</div>
895+
896+
{{end}}`,"components/form_layout_two_col":`{{define "form_layout_two_col"}}
897+
<div class="row">
898+
<div class="col-md-6">
899+
<div class="box-body">
900+
<div class="fields-group">
901+
{{ template "form_components" (index .ContentList 0)}}
902+
</div>
903+
</div>
904+
</div>
905+
<div class="col-md-6">
906+
<div class="box-body">
907+
<div class="fields-group">
908+
{{ template "form_components" (index .ContentList 1)}}
909+
</div>
910+
</div>
911+
</div>
912+
</div>
913+
914+
{{range $key, $data := .Content}}
915+
{{if eq $data.Field $.PrimaryKey}}
916+
<input type="hidden" name="{{$.PrimaryKey}}" value='{{$data.Value}}'>
917+
{{end}}
918+
{{end}}
828919
{{end}}`,"components/image":`{{define "image"}}
829920
{{if .HasModal}}
830921
<img src="{{.Src}}" width="{{.Width}}" height="{{.Height}}" data-toggle="modal" data-target="#img_{{.Uuid}}" style="cursor: zoom-in;">
@@ -1194,7 +1285,9 @@ var TemplateList = map[string]string{"admin_panel":`{{define "admin_panel"}}
11941285
}
11951286
11961287
{{if .HasFilter}}
1197-
$('.filter-area').hide();
1288+
{{if .IsHideFilterArea}}
1289+
$('.filter-area').hide();
1290+
{{end}}
11981291
{{end}}
11991292
});
12001293

0 commit comments

Comments
 (0)