Wiki source code of TemplateProviderEditSheet

Last modified by shahzad kazama on 2023/12/18 18:56

Show last authors
1 {{include reference="XWiki.TemplateProviderMacros" /}}
2
3 {{include reference="AppWithinMinutes.VelocityMacros" /}}
4
5 {{velocity}}
6 #if ("$!request.wizard" == 'true')
7 {{include reference="AppWithinMinutes.WizardStep" /}}
8 #end
9 {{/velocity}}
10
11 {{velocity output="false"}}
12 #set ($appDescriptorClassName = 'AppWithinMinutes.LiveTableClass')
13
14 #macro (updateHiddenTemplateProviderProperties)
15 #set ($prefix = $stringtool.removeEnd($doc.documentReference.name, 'TemplateProvider'))
16 #set ($discard = $doc.setTitle("$prefix Template Provider"))
17 #set ($templateProviderObj = $doc.getObject('XWiki.TemplateProviderClass'))
18 #set ($discard = $templateProviderObj.set('name', "${prefix.toLowerCase()}.entry.name"))
19 #set ($discard = $templateProviderObj.set('template', $stringtool.removeEnd($doc.fullName, 'Provider')))
20 #end
21
22 #macro (initVisibleTemplateProviderProperties $templateProviderObj)
23 #getAppReference
24 #set ($localStringAppRef = $services.model.serialize($appReference, 'local'))
25 #set ($icon = 'application')
26 #foreach ($uix in $services.uix.getExtensions('org.xwiki.platform.panels.Applications'))
27 #if ($uix.id == "platform.panels.${localStringAppRef}Application" && $uix.parameters.icon.startsWith('icon:'))
28 ## Use the application icon by default if set.
29 #set ($icon = $stringtool.removeStart($uix.parameters.icon, 'icon:'))
30 #end
31 #end
32 #set ($discard = $templateProviderObj.set('icon', $icon))
33 #set ($homePageRef = $services.model.resolveDocument('', 'default', $appReference))
34 ## We recommend the users to create the entries in the application space by default because:
35 ## * for most applications it's better to keep the entries in the same place
36 ## * if the application is not yet created the application space doesn't exist so the user cannot select it from the
37 ## tree unless we select it by default
38 #set ($creationRestrictions = [$services.model.serialize($appReference, 'local')])
39 #set ($creationRestrictionsAreSuggestions = 1)
40 #if ($xwiki.exists($homePageRef))
41 ## We are (most probably) editing an existing application. Initialize the entry location based on the information
42 ## stored on the application home page.
43 #set ($dataSpace = $xwiki.getDocument($homePageRef).getValue('dataSpace'))
44 #set ($dataSpaceReference = $services.model.resolveSpace($dataSpace, 'explicit', $appReference))
45 #set ($creationRestrictions = [$services.model.serialize($dataSpaceReference, 'local')])
46 #set ($creationRestrictionsAreSuggestions = 0)
47 ## Preserve the old behavior.
48 #set ($discard = $templateProviderObj.set('terminal', 1))
49 #end
50 #set ($discard = $templateProviderObj.set('creationRestrictions', $creationRestrictions))
51 #set ($discard = $templateProviderObj.set('creationRestrictionsAreSuggestions', $creationRestrictionsAreSuggestions))
52 #end
53
54 #macro (maybeAddXRedirectToNextWizardStep)
55 #if ("$!request.wizard" == 'true')
56 ## Add redirect to next wizard step.
57 #getAppReference
58 #set ($homePageRef = $services.model.resolveDocument('', 'default', $appReference))
59 #set ($queryString = {"wizard" : true})
60 #if (!$xwiki.exists($homePageRef))
61 #set ($classReference = "${stringtool.removeEnd($doc.fullName, 'TemplateProvider')}Class")
62 #set ($wikiHomePageRef = $services.model.resolveDocument('', 'default'))
63 #set ($wikiHomePage = $services.model.serialize($wikiHomePageRef, 'local'))
64 #set ($discard = $queryString.putAll({
65 'form_token': $services.csrf.getToken(),
66 'template': 'AppWithinMinutes.LiveTableTemplate',
67 "${appDescriptorClassName}_0_class": $classReference,
68 'title': $appReference.name,
69 'parent': $wikiHomePage
70 }))
71 #end
72 #set ($queryString = $escapetool.url($queryString))
73 <input type="hidden" name="xredirect" value="$escapetool.xml($xwiki.getURL($homePageRef, 'edit', $queryString))" />
74 #end
75 #end
76
77 #macro (displayEditForm)
78 #set ($discard = $xwiki.ssx.use('XWiki.TemplateProviderMacros'))
79 #set ($discard = $xwiki.jsx.use('XWiki.TemplateProviderMacros'))
80 #updateHiddenTemplateProviderProperties
81 #if ($doc.isNew())
82 #initVisibleTemplateProviderProperties($templateProviderObj)
83 #end
84 <div class="hidden">
85 <input type="hidden" name="title" value="$escapetool.xml($doc.title)" />
86 <input type="hidden" name="xhidden" value="1" />
87 #foreach ($property in ['name', 'template', 'action'])
88 #displayPropertyValue($property 'hidden')
89 #end
90 #maybeAddXRedirectToNextWizardStep
91 </div>
92 <div class="xform row templateProviderSheet">
93 <div class="xHint col-xs-12">
94 $services.icon.renderHTML('info')
95 $services.localization.render('appWithinMinutes.templateProviderEditor.hint')
96 </div>
97 ##
98 ## Left side
99 ##
100 <div class="col-xs-12 col-md-6">
101 <dl>
102 ##
103 ## Icon
104 ##
105 <dt>
106 <label for="XWiki.TemplateProviderClass_0_icon">
107 $escapetool.xml($doc.displayPrettyName('icon'))
108 </label>
109 <span class="xHint">
110 $services.localization.render('appWithinMinutes.templateProviderEditor.icon.hint')
111 </span>
112 </dt>
113 <dd>#displayPropertyValue('icon')</dd>
114 ##
115 ## Description
116 ##
117 <dt>
118 <label for="XWiki.TemplateProviderClass_0_description">
119 $escapetool.xml($doc.displayPrettyName('description'))
120 </label>
121 <span class="xHint">
122 $services.localization.render('appWithinMinutes.templateProviderEditor.description.hint')
123 </span>
124 </dt>
125 <dd>#displayPropertyValue('description')</dd>
126 ##
127 ## Visibility Restrictions
128 ##
129 <dt>
130 <label>
131 $escapetool.xml($services.localization.render('appWithinMinutes.templateProviderEditor.visibilityRestrictions.name'))
132 </label>
133 <span class="xHint">
134 $escapetool.xml($services.localization.render('appWithinMinutes.templateProviderEditor.visibilityRestrictions.hint'))
135 </span>
136 </dt>
137 <dd>#displayPathsPropertyValue('visibilityRestrictions')</dd>
138 </dl>
139 </div>
140 ##
141 ## Right side
142 ##
143 <div class="col-xs-12 col-md-6">
144 <dl>
145 ##
146 ## Creation Restrictions
147 ##
148 <dt>
149 <label for="XWiki.TemplateProviderClass_0_creationRestrictions">
150 $escapetool.xml($services.localization.render('appWithinMinutes.templateProviderEditor.creationRestrictions.name'))
151 </label>
152 <span class="xHint">
153 $services.localization.render('appWithinMinutes.templateProviderEditor.creationRestrictions.hint')
154 </span>
155 </dt>
156 <dd>#displayPathsPropertyValue('creationRestrictions')</dd>
157 ##
158 ## Creation Restrictions As Suggestions
159 ##
160 <dt>
161 <label for="XWiki.TemplateProviderClass_0_creationRestrictionsAreSuggestions">
162 #displayPropertyValue('creationRestrictionsAreSuggestions')
163 $escapetool.xml($services.localization.render('appWithinMinutes.templateProviderEditor.creationRestrictionsAreSuggestions.name'))
164 </label>
165 <span class="xHint">
166 $services.localization.render('appWithinMinutes.templateProviderEditor.creationRestrictionsAreSuggestions.hint')
167 </span>
168 </dt>
169 <dd></dd>
170 ##
171 ## Terminal page creation - Advanced user
172 ##
173 #if ($isAdvancedUser || $isSuperAdmin)
174 <dt>
175 <label for="XWiki.TemplateProviderClass_0_terminal">
176 $escapetool.xml($doc.displayPrettyName('terminal'))
177 </label>
178 <span class="xHint">
179 $escapetool.xml($services.localization.render('appWithinMinutes.templateProviderEditor.terminal.hint'))
180 </span>
181 </dt>
182 <dd>#displayPropertyValue('terminal')</dd>
183 #else
184 <dd>#displayPropertyValue('terminal' 'hidden')</dd>
185 #end
186 </dl>
187 </div>
188 #locationPickerModal
189 </div>
190 #end
191
192 #macro (doEdit)
193 #if ("$!request.wizard" == 'true')
194 #appWizardHeader('entries')
195 ## Compute the application title to be used as the wizard step title.
196 #getAppTitle
197 #end
198 #displayEditForm
199 #if ("$!request.wizard" == 'true')
200 #appWizardFooter('entries')
201 #end
202 #end
203 {{/velocity}}
204
205 {{velocity}}
206 #if ($doc.getObject('XWiki.TemplateProviderClass'))
207 {{html clean="false"}}
208 #doEdit
209 {{/html}}
210
211 {{iconPicker id="XWiki.TemplateProviderClass_0_icon" prefix="" /}}
212 #end
213 {{/velocity}}

Tips

You can click on the arrows next to the breadcrumb elements to quickly navigate to sibling and children pages.

Need help?

If you need help with XWiki you can contact: