Wiki source code of $services.localization.render('panelwizard.panelwizard')
Version 3.1 by Thomas Coelho on 2023/02/27 12:05
Show last authors
author | version | line-number | content |
---|---|---|---|
1 | {{velocity output="false"}} | ||
2 | ## | ||
3 | ## Redirect to force right and left panels layout | ||
4 | ## | ||
5 | #set ($mustRedirect = false) | ||
6 | #set ($redirectQuery = '') | ||
7 | #set ($redirectDoc = $doc.fullName) | ||
8 | #set ($redirectMode = 'view') | ||
9 | #if ($xwiki.exists('XWiki.AdminSheet')) | ||
10 | ## The new administration interface, use XWiki.XWikiPreferences as the container document, and this as an included sheet | ||
11 | #set ($currSpace = $request.getParameter('space')) | ||
12 | #set ($redirectQuery = "$!{request.queryString}&forceLeftPanels=1&forceRightPanels=1§ion=Panels.PanelWizard&$!docvariant") | ||
13 | #set ($redirectMode = 'admin') | ||
14 | #if ($doc.documentReference.name != 'XWikiPreferences' && $doc.documentReference.name != 'WebPreferences') | ||
15 | #set ($redirectDoc = 'XWiki.XWikiPreferences') | ||
16 | #set ($mustRedirect = true) | ||
17 | #end | ||
18 | #else | ||
19 | ## No admin application, use this as the container document | ||
20 | #set ($redirectQuery = "$!{request.queryString}&forceLeftPanels=1&forceRightPanels=1&$!docvariant") | ||
21 | #end | ||
22 | #if (!$request.getParameter('forceLeftPanels') || !$request.getParameter('forceRightPanels')) | ||
23 | #set ($mustRedirect = true) | ||
24 | #end | ||
25 | #if ($mustRedirect) | ||
26 | $response.sendRedirect($xwiki.getDocument($redirectDoc).getURL($redirectMode, $redirectQuery))## | ||
27 | #stop() | ||
28 | #end | ||
29 | ## No redirect needed, display the wizard | ||
30 | #set ($showdata = 0) | ||
31 | #set ($showEmptyPanels = 1) | ||
32 | #if ("$!{currSpace}" != '') | ||
33 | #set ($accessLevel = $xwiki.hasAccessLevel('admin', $xcontext.user, "${currSpace}.WebPreferences")) | ||
34 | #else | ||
35 | #set ($accessLevel = $xwiki.hasAdminRights()) | ||
36 | #end | ||
37 | ## | ||
38 | ## Check for admin right for the current preferences document (XWiki.XWikiPreferences or Space.WebPreferences) | ||
39 | ## | ||
40 | {{/velocity}} | ||
41 | |||
42 | {{velocity output="false"}} | ||
43 | #macro (displayConfigPropertyValue $propName $action) | ||
44 | #unwrapXPropertyDisplay($doc.display($propName, $action)) | ||
45 | #end | ||
46 | |||
47 | #macro (displayPageLayoutSection) | ||
48 | <dl> | ||
49 | <dt> | ||
50 | <label>$services.localization.render('panelwizard.panelColumns')</label> | ||
51 | <span class="xHint"> | ||
52 | $services.localization.render('panelwizard.choosepagelayout') | ||
53 | </span> | ||
54 | </dt> | ||
55 | <dd class="row pagelayoutoptions"> | ||
56 | #set ($crtlayout = 0) | ||
57 | #if ($showLeftPanels and $showLeftPanels == '1') | ||
58 | #set ($crtlayout = $crtlayout + 1) | ||
59 | #end | ||
60 | #if ($showRightPanels and $showRightPanels == '1') | ||
61 | #set ($crtlayout = $crtlayout + 2) | ||
62 | #end | ||
63 | <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3 pagelayoutoption pagelayoutoption0" | ||
64 | #if ($crtlayout == 0) id="selectedoption"#end> | ||
65 | <label>$escapetool.xml($services.localization.render('panelwizard.nosidecolumn'))</label> | ||
66 | <div id="nosidecolumn" class="layoutmaquette"> | ||
67 | <div class="lmcontentcolumn"></div> | ||
68 | </div> | ||
69 | </div> | ||
70 | <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3 pagelayoutoption pagelayoutoption1" | ||
71 | #if ($crtlayout == 1) id="selectedoption"#end> | ||
72 | <label>$escapetool.xml($services.localization.render('panelwizard.leftcolumn'))</label> | ||
73 | <div id="leftcolumn" class="layoutmaquette"> | ||
74 | <div class="lmleftcolumn"></div> | ||
75 | <div class="lmcontentcolumn"></div> | ||
76 | </div> | ||
77 | </div> | ||
78 | <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3 pagelayoutoption pagelayoutoption2" | ||
79 | #if ($crtlayout == 2) id="selectedoption"#end> | ||
80 | <label>$escapetool.xml($services.localization.render('panelwizard.rightcolumn'))</label> | ||
81 | <div id="rightcolumn" class="layoutmaquette"> | ||
82 | <div class="lmrightcolumn"></div> | ||
83 | <div class="lmcontentcolumn"></div> | ||
84 | </div> | ||
85 | </div> | ||
86 | <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3 pagelayoutoption pagelayoutoption3" | ||
87 | #if ($crtlayout == 3) id="selectedoption"#end> | ||
88 | <label>$escapetool.xml($services.localization.render('panelwizard.bothcolumns'))</label> | ||
89 | <div id="bothcolumns" class="layoutmaquette"> | ||
90 | <div class="lmleftcolumn"></div> | ||
91 | <div class="lmrightcolumn"></div> | ||
92 | <div class="lmcontentcolumn"></div> | ||
93 | </div> | ||
94 | </div> | ||
95 | </dd> | ||
96 | <dt> | ||
97 | <label for="XWiki.XWikiPreferences_0_leftPanelsWidth"> | ||
98 | $services.localization.render('XWiki.XWikiPreferences_leftPanelsWidth') | ||
99 | </label> | ||
100 | <span class="xHint"> | ||
101 | $services.localization.render('XWiki.XWikiPreferences_leftPanelsWidth.hint') | ||
102 | </span> | ||
103 | </dt> | ||
104 | <dd>#displayConfigPropertyValue('leftPanelsWidth' 'edit')</dd> | ||
105 | <dt> | ||
106 | <label for="XWiki.XWikiPreferences_0_leftPanels"> | ||
107 | $services.localization.render('XWiki.XWikiPreferences_leftPanels') | ||
108 | </label> | ||
109 | <span class="xHint"> | ||
110 | $services.localization.render('XWiki.XWikiPreferences_leftPanels.hint') | ||
111 | </span> | ||
112 | </dt> | ||
113 | <dd>#displayConfigPropertyValue('leftPanels' 'edit')</dd> | ||
114 | <dt> | ||
115 | <label for="XWiki.XWikiPreferences_0_rightPanelsWidth"> | ||
116 | $services.localization.render('XWiki.XWikiPreferences_rightPanelsWidth') | ||
117 | </label> | ||
118 | <span class="xHint"> | ||
119 | $services.localization.render('XWiki.XWikiPreferences_rightPanelsWidth.hint') | ||
120 | </span> | ||
121 | </dt> | ||
122 | <dd>#displayConfigPropertyValue('rightPanelsWidth' 'edit')</dd> | ||
123 | <dt> | ||
124 | <label for="XWiki.XWikiPreferences_0_rightPanels"> | ||
125 | $services.localization.render('XWiki.XWikiPreferences_rightPanels') | ||
126 | </label> | ||
127 | <span class="xHint"> | ||
128 | $services.localization.render('XWiki.XWikiPreferences_rightPanels.hint') | ||
129 | </span> | ||
130 | </dt> | ||
131 | <dd>#displayConfigPropertyValue('rightPanels' 'edit')</dd> | ||
132 | </dl> | ||
133 | #end | ||
134 | |||
135 | #macro (displayPanelListSection) | ||
136 | (% id="draganddroptooltip" class="hastooltip noitems" title="${services.localization.render('panelwizard.tip')}"%)$services.localization.render('panelwizard.draganddrop')(%%) | ||
137 | #set ($panelClass = $xwiki.getDocument('Panels.PanelClass').xWikiClass) | ||
138 | #set ($categoryList = $panelClass.category.getProperty('values').value.split('[|]')) | ||
139 | #set ($panelsList = $services.query.xwql('from doc.object(Panels.PanelClass) as panel where doc.fullName <> ''Panels.PanelTemplate''').execute()) | ||
140 | #set ($categoryMap = {}) | ||
141 | #foreach ($category in $categoryList) | ||
142 | $!categoryMap.put($category, [])## | ||
143 | #end | ||
144 | #foreach ($item in $panelsList) | ||
145 | ## stats panels can't be seen by non global admins | ||
146 | #if ($xwiki.hasAccessLevel('view', $xcontext.user, $item)) | ||
147 | #set ($obj = $xwiki.getDocument($item).getObject('Panels.PanelClass')) | ||
148 | #if ($obj.type == 'view') | ||
149 | #set ($arrayList = $categoryMap.get($obj.category)) | ||
150 | #if ($arrayList) | ||
151 | #set ($discard = $categoryMap.get($obj.category).add($item)) | ||
152 | ## TODO: uncategorized? | ||
153 | #end | ||
154 | #end | ||
155 | #end | ||
156 | #end | ||
157 | #set ($panelsPerRow = 3) | ||
158 | (% id="dhtmltooltip" style="visibility: hidden;" %)((())) | ||
159 | #if ($request.place) | ||
160 | #set ($ajaxurl = $xwiki.getDocument('Panels.PanelLayoutUpdate').getURL('get', "xpage=plain&outputSyntax=plain&place=$!{escapetool.url($request.place)}&prefsdoc=${escapetool.url($currentDoc)}&form_token=${escapetool.url($services.csrf.getToken())}")) | ||
161 | #else | ||
162 | #set ($ajaxurl = $xwiki.getDocument("Panels.PanelLayoutUpdate").getURL('get', "xpage=plain&outputSyntax=plain&prefsdoc=${escapetool.url($currentDoc)}&form_token=${escapetool.url($services.csrf.getToken())}")) | ||
163 | #end | ||
164 | $xwiki.jsfx.use('js/xwiki/panelwizard/Drag.js')## | ||
165 | $xwiki.jsfx.use('js/xwiki/panelwizard/ieemu.js')## | ||
166 | $xwiki.jsfx.use('js/xwiki/panelwizard/toolTip.js')## | ||
167 | {{html}} | ||
168 | <script> | ||
169 | //<![CDATA[ | ||
170 | window.ajaxurl = "$ajaxurl"; | ||
171 | window.allPanelsPlace = new Object(); | ||
172 | window.panelsavesuccess = "$escapetool.javascript($services.localization.render('panelsavesuccess'))"; | ||
173 | window.panelsaveerror = "$escapetool.javascript($services.localization.render('panelsaveerror'))"; | ||
174 | #set ($counter = 0) | ||
175 | #set ($panelsStatus = {}) | ||
176 | #foreach ($category in $categoryList) | ||
177 | #set ($categPanels = $categoryMap.get($category)) | ||
178 | #foreach ($item in $categPanels) | ||
179 | #set ($discard = $panelsStatus.put($item, 'false')) | ||
180 | #set ($obj = $xwiki.getDocument($item).getObject('Panels.PanelClass')) | ||
181 | window.allPanelsPlace[$counter] = new Object(); | ||
182 | window.allPanelsPlace[$counter]['fullname'] = '$escapetool.javascript($item)'; | ||
183 | #set ($issetleft = 0) | ||
184 | #set ($counterleft = 0) | ||
185 | #set ($issetright = 0) | ||
186 | #set ($counterright = 0) | ||
187 | #foreach ($element in $leftPanels.split(',')) | ||
188 | #if ($item == $element) | ||
189 | window.allPanelsPlace[$counter]['left'] = $counterleft; | ||
190 | #set ($issetleft = 1) | ||
191 | #set ($discard = $panelsStatus.put($item, 'true')) | ||
192 | #end | ||
193 | #set ($counterleft = $counterleft + 1) | ||
194 | #end | ||
195 | #if ($issetleft == 0) | ||
196 | window.allPanelsPlace[$counter]['left'] = -1; | ||
197 | #end | ||
198 | #foreach ($element in $rightPanels.split(',')) | ||
199 | #if ($item == $element) | ||
200 | window.allPanelsPlace[$counter]['right'] = $counterright; | ||
201 | #set ($issetright = 1) | ||
202 | #set ($discard = $panelsStatus.put($item, 'true')) | ||
203 | #end | ||
204 | #set ($counterright = $counterright + 1) | ||
205 | #end | ||
206 | #if ($issetright == 0) | ||
207 | window.allPanelsPlace[$counter]['right'] = -1; | ||
208 | #end | ||
209 | #set ($counter = $counter + 1) | ||
210 | #end | ||
211 | #end | ||
212 | window.showLeftColumn = $showLeftPanels; | ||
213 | window.showRightColumn = $showRightPanels; | ||
214 | #if ($showApplicationPanel) | ||
215 | window.showApplicationPanel = true; | ||
216 | #else | ||
217 | window.showApplicationPanel = false; | ||
218 | #end | ||
219 | require(['scriptaculous-accordion'], function() { | ||
220 | createAccordion({div: 'panellistaccordion', no: 0, height: 512}); | ||
221 | }); | ||
222 | //]]> | ||
223 | </script> | ||
224 | {{/html}} | ||
225 | $xwiki.jsfx.use('js/xwiki/panelwizard/panelWizard.js')## | ||
226 | |||
227 | (% id="allviewpanels" %) | ||
228 | ((( | ||
229 | (% id="panellistaccordion" class="accordion" %) | ||
230 | ((( | ||
231 | #set ($panelCount = 0) | ||
232 | #foreach ($category in $categoryList) | ||
233 | ## start of accordion tab: | ||
234 | (% class="accordionTabTitleBar" id="${category}_header" %) | ||
235 | (((=${category}=))) | ||
236 | ## start of accordion tab content: | ||
237 | (% class="accordionTabContentBox" %) | ||
238 | ((( | ||
239 | #set ($categPanels = $categoryMap.get($category)) | ||
240 | #if ($categPanels.size() == 0) | ||
241 | (%class="noitems"%)$services.localization.render('panelwizard.nopanels')(%%) | ||
242 | #else | ||
243 | #foreach ($item in $categPanels) | ||
244 | #set ($panelDoc = $xwiki.getDocument($item)) | ||
245 | #set ($obj = $panelDoc.getObject('Panels.PanelClass')) | ||
246 | (% class="panelitemc" %) | ||
247 | ((( | ||
248 | (% class="label" %)((($doc.display('name', $obj)))) | ||
249 | (% id="panelContainer${panelCount}" class="panelcontainer" title="${doc.display('description', 'view', $obj, 'xwiki/2.0').replaceAll('^\{\{html(.*?)\}\}', '').replaceAll('\{\{/html\}\}$', '')}" %)(((#if($panelsStatus.get($item) == 'false')#displaypanel($item)#else(% class="panel" %)((()))#end))) | ||
250 | (% class="xwikibuttonlink" %)((([[$services.localization.render('edit')>>path:$xwiki.getURL($item, 'edit')]] [[$services.localization.render('delete')>>path:$xwiki.getURL($item, 'delete')]]))) | ||
251 | ))) | ||
252 | #set ($panelCount = $panelCount + 1) | ||
253 | #end## foreach panel | ||
254 | #end## categPanels.size() | ||
255 | )))## end of accordion tab content - accordionTabContentBox | ||
256 | #end## foreach category | ||
257 | )))## panellistaccordion | ||
258 | )))## allviewpanels | ||
259 | #end | ||
260 | {{/velocity}} | ||
261 | |||
262 | {{velocity}} | ||
263 | {{html clean="false"}} | ||
264 | #if ($accessLevel) | ||
265 | #set ($discard = $xwiki.jsx.use('Panels.PanelWizard')) | ||
266 | #set ($discard = $xwiki.ssx.use('Panels.PanelWizard')) | ||
267 | <ul class="nav nav-tabs" role="tablist" id="panelEditorSteps"> | ||
268 | <li role="presentation" class="active"> | ||
269 | <a href="#PageLayoutSection" aria-controls="PageLayoutSection" role="tab" data-toggle="tab" | ||
270 | >$escapetool.xml($services.localization.render('panelwizard.pagelayout'))</a> | ||
271 | </li> | ||
272 | <li role="presentation"> | ||
273 | <a href="#PanelListSection" aria-controls="PanelListSection" role="tab" data-toggle="tab" | ||
274 | >$escapetool.xml($services.localization.render('panelwizard.panellist'))</a> | ||
275 | </li> | ||
276 | </ul> | ||
277 | <div class="tab-content"> | ||
278 | <div role="tabpanel" class="tab-pane active xform" id="PageLayoutSection"> | ||
279 | #displayPageLayoutSection | ||
280 | </div> | ||
281 | <div role="tabpanel" class="tab-pane" id="PanelListSection"> | ||
282 | {{/html}} | ||
283 | |||
284 | #displayPanelListSection | ||
285 | |||
286 | {{html clean="false"}} | ||
287 | </div> | ||
288 | </div> | ||
289 | <div id="panelwizardbuttons"> | ||
290 | <button class="btn btn-primary" id="saveLayout" | ||
291 | >$services.localization.render('xe.panels.wizard.savenew')</button> | ||
292 | <button class="btn btn-default" id="revertLayout" | ||
293 | >$services.localization.render('xe.panels.wizard.revert')</button> | ||
294 | <a href="$xwiki.getURL('Panels.WebHome')" | ||
295 | >$services.localization.render('xe.panels.wizard.homepage')</a> | ||
296 | </div> | ||
297 | #end | ||
298 | {{/html}} | ||
299 | {{/velocity}} |