Wiki源代码TemplateProviderEditSheet
在2022-05-25 17:59上被ybq sz修改
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 | 'template': 'AppWithinMinutes.LiveTableTemplate', |
| 66 | "${appDescriptorClassName}_0_class": $classReference, |
| 67 | 'title': $appReference.name, |
| 68 | 'parent': $wikiHomePage |
| 69 | })) |
| 70 | #end |
| 71 | #set ($queryString = $escapetool.url($queryString)) |
| 72 | <input type="hidden" name="xredirect" value="$escapetool.xml($xwiki.getURL($homePageRef, 'edit', $queryString))" /> |
| 73 | #end |
| 74 | #end |
| 75 | |
| 76 | #macro (displayEditForm) |
| 77 | #set ($discard = $xwiki.ssx.use('XWiki.TemplateProviderMacros')) |
| 78 | #set ($discard = $xwiki.jsx.use('XWiki.TemplateProviderMacros')) |
| 79 | #updateHiddenTemplateProviderProperties |
| 80 | #if ($doc.isNew()) |
| 81 | #initVisibleTemplateProviderProperties($templateProviderObj) |
| 82 | #end |
| 83 | <div class="hidden"> |
| 84 | <input type="hidden" name="title" value="$escapetool.xml($doc.title)" /> |
| 85 | <input type="hidden" name="xhidden" value="1" /> |
| 86 | #foreach ($property in ['name', 'template', 'action']) |
| 87 | #displayPropertyValue($property 'hidden') |
| 88 | #end |
| 89 | #maybeAddXRedirectToNextWizardStep |
| 90 | </div> |
| 91 | <div class="xform row templateProviderSheet"> |
| 92 | <div class="xHint col-xs-12"> |
| 93 | $services.icon.renderHTML('info') |
| 94 | $services.localization.render('appWithinMinutes.templateProviderEditor.hint') |
| 95 | </div> |
| 96 | ## |
| 97 | ## Left side |
| 98 | ## |
| 99 | <div class="col-xs-12 col-md-6"> |
| 100 | <dl> |
| 101 | ## |
| 102 | ## Icon |
| 103 | ## |
| 104 | <dt> |
| 105 | <label for="XWiki.TemplateProviderClass_0_icon"> |
| 106 | $escapetool.xml($doc.displayPrettyName('icon')) |
| 107 | </label> |
| 108 | <span class="xHint"> |
| 109 | $services.localization.render('appWithinMinutes.templateProviderEditor.icon.hint') |
| 110 | </span> |
| 111 | </dt> |
| 112 | <dd>#displayPropertyValue('icon')</dd> |
| 113 | ## |
| 114 | ## Description |
| 115 | ## |
| 116 | <dt> |
| 117 | <label for="XWiki.TemplateProviderClass_0_description"> |
| 118 | $escapetool.xml($doc.displayPrettyName('description')) |
| 119 | </label> |
| 120 | <span class="xHint"> |
| 121 | $services.localization.render('appWithinMinutes.templateProviderEditor.description.hint') |
| 122 | </span> |
| 123 | </dt> |
| 124 | <dd>#displayPropertyValue('description')</dd> |
| 125 | ## |
| 126 | ## Visibility Restrictions |
| 127 | ## |
| 128 | <dt> |
| 129 | <label> |
| 130 | $escapetool.xml($services.localization.render('appWithinMinutes.templateProviderEditor.visibilityRestrictions.name')) |
| 131 | </label> |
| 132 | <span class="xHint"> |
| 133 | $escapetool.xml($services.localization.render('appWithinMinutes.templateProviderEditor.visibilityRestrictions.hint')) |
| 134 | </span> |
| 135 | </dt> |
| 136 | <dd>#displayPathsPropertyValue('visibilityRestrictions')</dd> |
| 137 | </dl> |
| 138 | </div> |
| 139 | ## |
| 140 | ## Right side |
| 141 | ## |
| 142 | <div class="col-xs-12 col-md-6"> |
| 143 | <dl> |
| 144 | ## |
| 145 | ## Creation Restrictions |
| 146 | ## |
| 147 | <dt> |
| 148 | <label for="XWiki.TemplateProviderClass_0_creationRestrictions"> |
| 149 | $escapetool.xml($services.localization.render('appWithinMinutes.templateProviderEditor.creationRestrictions.name')) |
| 150 | </label> |
| 151 | <span class="xHint"> |
| 152 | $services.localization.render('appWithinMinutes.templateProviderEditor.creationRestrictions.hint') |
| 153 | </span> |
| 154 | </dt> |
| 155 | <dd>#displayPathsPropertyValue('creationRestrictions')</dd> |
| 156 | ## |
| 157 | ## Creation Restrictions As Suggestions |
| 158 | ## |
| 159 | <dt> |
| 160 | <label for="XWiki.TemplateProviderClass_0_creationRestrictionsAreSuggestions"> |
| 161 | #displayPropertyValue('creationRestrictionsAreSuggestions') |
| 162 | $escapetool.xml($services.localization.render('appWithinMinutes.templateProviderEditor.creationRestrictionsAreSuggestions.name')) |
| 163 | </label> |
| 164 | <span class="xHint"> |
| 165 | $services.localization.render('appWithinMinutes.templateProviderEditor.creationRestrictionsAreSuggestions.hint') |
| 166 | </span> |
| 167 | </dt> |
| 168 | <dd></dd> |
| 169 | ## |
| 170 | ## Terminal page creation - Advanced user |
| 171 | ## |
| 172 | #if ($isAdvancedUser || $isSuperAdmin) |
| 173 | <dt> |
| 174 | <label for="XWiki.TemplateProviderClass_0_terminal"> |
| 175 | $escapetool.xml($doc.displayPrettyName('terminal')) |
| 176 | </label> |
| 177 | <span class="xHint"> |
| 178 | $escapetool.xml($services.localization.render('appWithinMinutes.templateProviderEditor.terminal.hint')) |
| 179 | </span> |
| 180 | </dt> |
| 181 | <dd>#displayPropertyValue('terminal')</dd> |
| 182 | #else |
| 183 | <dd>#displayPropertyValue('terminal' 'hidden')</dd> |
| 184 | #end |
| 185 | </dl> |
| 186 | </div> |
| 187 | #locationPickerModal |
| 188 | </div> |
| 189 | #end |
| 190 | |
| 191 | #macro (doEdit) |
| 192 | #if ("$!request.wizard" == 'true') |
| 193 | #appWizardHeader('entries') |
| 194 | ## Compute the application title to be used as the wizard step title. |
| 195 | #getAppTitle |
| 196 | #end |
| 197 | #displayEditForm |
| 198 | #if ("$!request.wizard" == 'true') |
| 199 | #appWizardFooter('entries') |
| 200 | #end |
| 201 | #end |
| 202 | {{/velocity}} |
| 203 | |
| 204 | {{velocity}} |
| 205 | #if ($doc.getObject('XWiki.TemplateProviderClass')) |
| 206 | {{html clean="false"}} |
| 207 | #doEdit |
| 208 | {{/html}} |
| 209 | |
| 210 | {{iconPicker id="XWiki\\.TemplateProviderClass_0_icon" prefix="" /}} |
| 211 | #end |
| 212 | {{/velocity}} |