Wiki source code of Sheet for XWikiServerClass

Show last authors
1 {{velocity}}
2 #############################
3 ## GLOBALS
4 #############################
5 #set ($wikiId = $doc.documentReference.name.replaceAll('XWikiServer', '').toLowerCase())
6 #set ($wiki = $services.wiki.getById($wikiId))
7 #set ($descriptorObj = $doc.getObject('XWiki.XWikiServerClass'))
8 #set ($templateObj = $doc.getObject('WikiManager.WikiTemplateClass'))
9 #set ($aliases = $doc.getObjects('XWiki.XWikiServerClass'))
10 #############################
11 ## CONTROLLER
12 #############################
13 #controller()
14 #macro(controller)
15 #if ($doc.fullName == "XWiki.XWikiServerClassSheet" || $doc.fullName == "XWiki.XWikiServerClassTemplate")
16 = Document "$doc.documentReference.name" =
17 #elseif ($request.action == 'create' && "$!request.domain" != '' && $request.domain.trim().length() > 0)
18 #createAlias()
19 #elseif ($request.action == 'delete' && "$!request.domain" != '' && $request.domain.trim().length() > 0)
20 #deleteAlias()
21 #elseif ($xcontext.action == 'edit')
22 #edit()
23 #else
24 #view()
25 #end
26 #end
27 #############################
28 ## VIEW
29 #############################
30 #macro(view)
31 #set($adminPageRef = $services.model.createDocumentReference($wiki.id, 'XWiki', 'XWikiPreferences'))
32 #set($adminPageLink = "[[$services.localization.render('platform.wiki.sheet.descriptor.admin')>>$adminPageRef]]")
33 {{translation key="platform.wiki.sheet.descriptor" parameters="${wiki.id},${adminPageLink}"/}} $adminPageLink
34
35 {{toc /}}
36 #displaySettings()
37 #displayAliases()
38 #createAliasForm()
39 #end
40 #############################
41 ## EDIT
42 #############################
43 #macro(edit)
44 {{toc /}}
45 #displaySettings()
46 #displayAliases()
47 #end
48 #############################
49 ## CREATE ALIAS
50 #############################
51 #macro(createAlias)
52 #if (!${services.csrf.isTokenValid("$!{request.getParameter('form_token')}")})
53
54 {{error}}{{translation key="notallowed"/}}{{/error}}
55
56 #elseif (!$wiki.aliases.contains($request.domain))
57 #set ($alias = $doc.newObject("XWiki.XWikiServerClass"))
58 #set ($discard = $alias.set("server", $request.domain))
59 #set ($discard = $alias.set("homepage", "Main.WebHome"))
60 #set ($discard = $doc.save())
61 $response.sendRedirect($doc.getURL())
62 #else
63
64 {{error}}{{translation key="platform.wiki.sheet.erroraliasalreadynotexists" parameters="~"${services.rendering.escape($escapetool.java($request.domain), 'xwiki/2.1')}~""/}}{{/error}}
65
66 #end
67 #end
68 #############################
69 ## DELETE ALIAS
70 #############################
71 #macro(deleteAlias)
72 #if (!${services.csrf.isTokenValid("$!{request.getParameter('form_token')}")})
73
74 {{error}}{{translation key="notallowed"/}}{{/error}}
75
76 #elseif ($wiki.aliases.contains($request.domain))
77 #set ($alias = $doc.getObject('XWiki.XWikiServerClass', 'server', $request.domain))
78 #set ($removed = $doc.removeObject($alias))
79 #set ($discard = $doc.save())
80 $response.sendRedirect($doc.getURL())
81 #else
82
83 {{error}}{{translation key="platform.wiki.sheet.erroraliasdoesnotexists" parameters="~"${services.rendering.escape($escapetool.java($request.domain), 'xwiki/2.1')}~""/}}{{/error}}
84
85 #end
86 #end
87 #############################
88 ## DISPLAY SETTINGS
89 #############################
90 #macro(displaySettings)
91 (% id="HWikiProperties" %)
92 = {{translation key="platform.wiki.sheet.title.settings"/}} =
93 {{html wiki="true" clean="false"}}
94 <div class="xform">
95 <dl>
96 #displayField('wikiprettyname', $descriptorObj)
97 #displayField('owner', $descriptorObj)
98 #displayField('secure', $descriptorObj)
99 #displayField('port', $descriptorObj)
100 #displayField('iswikitemplate', $templateObj)
101 #displayField('server', $descriptorObj)
102 #displayField('description', $descriptorObj)
103 #displayField('homepage', $descriptorObj, "#homePagePicker($descriptorObj)")
104 </dl>
105 </div>
106 {{/html}}
107 #end
108 #############################
109 ## DISPLAY FIELD
110 #############################
111 #macro(displayField $fieldName $object $customDisplay)
112 #if ("$!object" != '')
113 <dt>
114 #if ($xcontext.action=='edit')
115 <label for="${object.xWikiClass.name}_${object.number}_${fieldName}">
116 #else
117 <label>
118 #end
119 {{translation key="platform.wiki.sheet.prop.${fieldName}" /}}:
120 </label>
121 <span class="xHint">{{translation key="platform.wiki.sheet.desc.${fieldName}" /}}</span>
122 </dt>
123 <dd>#if ("$!customDisplay" != '')$customDisplay#else$object.get($fieldName)#end</dd>
124 #end
125 #end
126 #macro (homePagePicker $object)
127 #if ($xcontext.action == 'edit')
128 ## The wiki descriptor is stored on the main wiki so we need to configure the page picker to give suggestions from
129 ## the corresponding wiki (not from the main wiki).
130 #set ($id = "${object.xWikiClass.name}_${object.number}_homepage")
131 #set ($homePagePickerParams = {
132 'id': $id,
133 'name': $id,
134 'value': $object.getValue('homepage'),
135 'data-search-scope': "wiki:$wikiId"
136 })
137 #pagePicker($homePagePickerParams)
138 #end
139 #end
140 #############################
141 ## DISPLAY ALIASES
142 #############################
143 #macro(displayAliases)
144 (% id="HWikiViewAliases" %)
145 = {{translation key="platform.wiki.sheet.title.viewaliases"/}} =
146 {{translation key="platform.wiki.sheet.aliases"/}}
147 #if ($aliases.size() > 1)
148 #foreach ($alias in $aliases)
149 #if ($foreach.count > 1)
150 == $alias.display('server', 'view') ==
151 {{html wiki="true" clean="false"}}
152 <div class="xform">
153 <dl>
154 #displayField('description', $alias)
155 #displayField('homepage', $alias)
156 </dl>
157 </div>
158 {{/html}}
159 #if ($xcontext.action == 'view')
160 #deleteButton($alias)
161 #end
162 #end
163 #end
164 #end
165 #end
166 #############################
167 ## DELETE ALIAS BUTTON
168 #############################
169 #macro(deleteButton $alias)
170 #if($xcontext.action == 'view')
171
172 {{html}}
173 <form method="get" action="$doc.getURL('view')">
174 <fieldset>
175 <input type="hidden" name="form_token" value="$!{services.csrf.getToken()}" />
176 <input type="hidden" name="action" value="delete"/>
177 <input type="hidden" name="domain" value="$alias.server"/>
178 <input type="submit" class="button" value="$services.localization.render('delete')"/>
179 </fieldset>
180 </form>
181 {{/html}}
182
183 #end
184 #end
185 #############################
186 ## CREATE ALIAS FORM
187 #############################
188 #macro(createAliasForm)
189 (% id="HWikiCreateNewAlias" %)
190 = {{translation key="platform.wiki.sheet.title.createnewalias"/}} =
191
192 {{html}}
193 <form method="get" action="$doc.getURL('view')">
194 <fieldset>
195 <input type="hidden" name="form_token" value="$!{services.csrf.getToken()}" />
196 <input type="hidden" name="action" value="create"/>
197 <label for="inputdomain">$services.localization.render('platform.wiki.sheet.prop.server')</label>:
198 <input id="inputdomain" type="text" name="domain" class="wikialiasinput"/>
199 <input type="submit" class="button" value="$services.localization.render('create')"/>
200 </fieldset>
201 </form>
202 {{/html}}
203
204 #end
205 {{/velocity}}