1 <tal:var define="config view.configuration" i18n:domain="pyams_portal"> |
|
2 <div class="ams-widget" |
|
3 data-ams-plugins="pyams_portal" |
|
4 data-ams-plugin-pyams_portal-src="/--static--/pyams_portal/js/portal{MyAMS.devext}.js" |
|
5 data-ams-plugin-pyams_portal-css="/--static--/pyams_portal/css/portal{MyAMS.devext}.css" |
|
6 data-ams-plugin-pyams_portal-callback="PyAMS_portal.template.initConfig"> |
|
7 <header> |
|
8 <span tal:condition="view.widget_icon_class | nothing" |
|
9 class="widget-icon"><i tal:attributes="class view.widget_icon_class"></i> |
|
10 </span> |
|
11 <h2 tal:content="view.title">Title</h2> |
|
12 <tal:var content="structure provider:pyams.widget_title" /> |
|
13 <tal:var content="structure provider:pyams.toolbar" /> |
|
14 </header> |
|
15 <div class="widget-body" tal:define="can_change view.can_change"> |
|
16 <div class="btn-toolbar" role="toolbar" |
|
17 tal:condition="can_change"> |
|
18 <div class="btn-group" role="group"> |
|
19 <div class="btn btn-default btn-row hint" title="Add row" i18n:attributes="title" |
|
20 data-ams-hint-gravity="n"> |
|
21 <i class="fa fa-fw fa-2x fa-indent"></i> |
|
22 </div> |
|
23 <div class="btn btn-default btn-slot hint" title="Add slot" i18n:attributes="title" |
|
24 data-ams-hint-gravity="n"> |
|
25 <i class="fa fa-fw fa-2x fa-columns"></i> |
|
26 </div> |
|
27 </div> |
|
28 <div class="btn-group" role="group"> |
|
29 <div tal:repeat="portlet view.selected_portlets" |
|
30 class="btn btn-default btn-portlet hint" |
|
31 data-ams-hint-gravity="n" |
|
32 tal:attributes="data-ams-portlet-name portlet.name; |
|
33 title portlet.label;"> |
|
34 <img tal:condition="portlet.toolbar_image" |
|
35 tal:attributes="src portlet.toolbar_image" /> |
|
36 <i tal:condition="portlet.toolbar_css_class" |
|
37 tal:attributes="class portlet.toolbar_css_class"></i> |
|
38 </div> |
|
39 </div> |
|
40 <div class="btn-group" role="group"> |
|
41 <div class="btn btn-default hint" data-ams-url="add-template-portlet.html" data-toggle="modal" |
|
42 data-ams-hint-gravity="n" |
|
43 title="Add another portlet..." i18n:attributes="title"> |
|
44 <i class="fa fa-fw fa-2x fa-plus"></i> |
|
45 </div> |
|
46 </div> |
|
47 </div> |
|
48 <div class="clearfix"> |
|
49 <div class="ams-form form-horizontal margin-bottom-10"> |
|
50 <label class="control-label col-md-6 padding-right-5" i18n:translate="">Selected display:</label> |
|
51 <div class="col-md-5"> |
|
52 <select id="device_selector" class="select2" |
|
53 data-ams-select2-width="300px" |
|
54 data-ams-change-handler="PyAMS_portal.template.selectDisplay"> |
|
55 <option value="" selected i18n:translate="">Current device</option> |
|
56 <option value="xs" i18n:translate="">Extra small device (phone)</option> |
|
57 <option value="sm" i18n:translate="">Small device (tablet)</option> |
|
58 <option value="md" i18n:translate="">Medium desktop device (> 970px)</option> |
|
59 <option value="lg" i18n:translate="">Large desktop device (> 1170px)</option> |
|
60 </select> |
|
61 </div> |
|
62 </div> |
|
63 </div> |
|
64 <div id="portal_config" class="container" |
|
65 tal:attributes="data-ams-allowed-change can_change"> |
|
66 <div class="rows" |
|
67 data-ams-sortable-placeholder="row-highlight" |
|
68 data-ams-sortable-items="> .row" |
|
69 data-ams-sortable-over="PyAMS_portal.template.overRows" |
|
70 data-ams-sortable-stop="PyAMS_portal.template.sortRows"> |
|
71 <div class="row context-menu" |
|
72 data-ams-contextmenu-selector="#rowMenu" |
|
73 tal:repeat="row range(config.rows)" |
|
74 tal:attributes="data-ams-row-id row;"> |
|
75 <span class="row_id label label-success pull-right" |
|
76 tal:content="row"></span> |
|
77 <div class="slots" |
|
78 data-ams-sortable-placeholder="slot-highlight" |
|
79 data-ams-sortable-connectwith=".slots" |
|
80 data-ams-sortable-over="PyAMS_portal.template.overSlots" |
|
81 data-ams-sortable-stop="PyAMS_portal.template.sortSlots"> |
|
82 <div class="slot context-menu col col-md-12 no-padding" |
|
83 data-ams-contextmenu-selector="#slotMenu" |
|
84 data-ams-resizable-start="PyAMS_portal.template.startSlotResize" |
|
85 data-ams-resizable-stop="PyAMS_portal.template.stopSlotResize" |
|
86 data-ams-resizable-handles="e" |
|
87 tal:repeat="slot_name config.get_slots(row)" |
|
88 tal:attributes="class string:slot context-menu col ${config.get_slot_configuration(slot_name).get_css_class()}; |
|
89 data-ams-slot-name slot_name;"> |
|
90 <div class="header padding-x-5" |
|
91 tal:content="slot_name"></div> |
|
92 <div class="portlets" |
|
93 data-ams-sortable-placeholder="portlet-highlight" |
|
94 data-ams-sortable-connectwith=".portlets" |
|
95 data-ams-sortable-over="PyAMS_portal.template.overPortlets" |
|
96 data-ams-sortable-stop="PyAMS_portal.template.sortPortlets"> |
|
97 <div class="portlet context-menu" |
|
98 data-ams-contextmenu-selector="#portletMenu" |
|
99 tal:repeat="portlet_name config.slots.get(row,{}).get(slot_name, ())" |
|
100 tal:attributes="data-ams-portlet-name portlet_name; |
|
101 data-ams-portlet-slot slot_name; |
|
102 data-ams-portlet-position repeat['portlet_name'].index();"> |
|
103 <div class="header padding-x-5" |
|
104 tal:content="string:${view.get_portlet_label(portlet_name)}"></div> |
|
105 <div class="preview" |
|
106 tal:content="structure view.get_portlet_preview(slot_name, repeat['portlet_name'].index())"></div> |
|
107 </div> |
|
108 </div> |
|
109 <div class="clearfix"></div> |
|
110 </div> |
|
111 </div> |
|
112 </div> |
|
113 </div> |
|
114 </div> |
|
115 <ul id="rowMenu" class="dropdown-menu" role="menu" style="display:none;" |
|
116 tal:condition="can_change"> |
|
117 <li class="small"> |
|
118 <a tabindex="-1" data-ams-url="PyAMS_portal.template.deleteRow"> |
|
119 <i class="fa fa-fw fa-trash"></i> |
|
120 <i18n:var translate="">Delete row...</i18n:var> |
|
121 </a> |
|
122 </li> |
|
123 </ul> |
|
124 <ul id="slotMenu" class="dropdown-menu" role="menu" style="display:none;" > |
|
125 <li class="small"> |
|
126 <a tabindex="-1" data-ams-url="PyAMS_portal.template.editSlot"> |
|
127 <i class="fa fa-fw fa-edit"></i> |
|
128 <i18n:var translate="">Edit slot properties...</i18n:var> |
|
129 </a> |
|
130 </li> |
|
131 <tal:if condition="can_change"> |
|
132 <li class="divider"></li> |
|
133 <li class="small" tal:condition="can_change"> |
|
134 <a tabindex="-1" data-ams-url="PyAMS_portal.template.deleteSlot"> |
|
135 <i class="fa fa-fw fa-trash"></i> |
|
136 <i18n:var translate="">Delete slot...</i18n:var> |
|
137 </a> |
|
138 </li> |
|
139 </tal:if> |
|
140 </ul> |
|
141 <ul id="portletMenu" class="dropdown-menu" role="menu" style="display:none;" > |
|
142 <li class="small"> |
|
143 <a tabindex="-1" data-ams-url="PyAMS_portal.template.editPortlet"> |
|
144 <i class="fa fa-fw fa-edit"></i> |
|
145 <i18n:var translate="">Edit portlet properties...</i18n:var> |
|
146 </a> |
|
147 </li> |
|
148 <tal:if condition="can_change"> |
|
149 <li class="divider"></li> |
|
150 <li class="small"> |
|
151 <a tabindex="-1" data-ams-url="PyAMS_portal.template.deletePortlet"> |
|
152 <i class="fa fa-fw fa-trash"></i> |
|
153 <i18n:var translate="">Delete portlet...</i18n:var> |
|
154 </a> |
|
155 </li> |
|
156 </tal:if> |
|
157 </ul> |
|
158 </div> |
|
159 </div> |
|
160 </tal:var> |
|