Código fuente wiki de TemplateProviderEditSheet

Última modificación por Administrator el 2024/06/06 11:39

Mostrar los últimos autores
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}}