Depuis la version 1.1 >
modifié par Administrator
sur 2013/06/04 10:06
À la version < 2.1 >
modifié par Paul Libbrecht (admin)
sur 2016/07/26 22:02
>
Commentaire de modification : Install extension [org.xwiki.platform:xwiki-platform-appwithinminutes-ui-8.2]

Résumé

Détails

Icon Propriétés de la Page
Auteur du document
... ... @@ -1,1 +1,1 @@
1 -XWiki.Admin
1 +XWiki.adminPolx
Contenu
... ... @@ -2,9 +2,8 @@
2 2  #macro(listAvailableColumns)
3 3   {{html}}
4 4   <select id="availableColumns">
5 - #set($className = "$!liveTableObj.getProperty('class').value")
5 + #set($className = "$!liveTableObj.getValue('class')")
6 6   #set($classFields = $xwiki.getDocument($className).getxWikiClass().properties)
7 - #set($discard = $services.localization.use('document', "$stringtool.removeEnd($className, 'Class')Translations"))
8 8   #if($classFields.size() > 0)
9 9   <optgroup label="$escapetool.xml($services.localization.render('platform.appwithinminutes.liveTableEditorClassFieldColumnGroupLabel'))" id="classFields">
10 10   #foreach($field in $classFields)
... ... @@ -50,8 +50,9 @@
50 50   (((
51 51   ## Make sure that only the sheet content is rendered when the class is saved using AJAX.
52 52   <input type="hidden" name="xpage" value="plain" />
53 - ## We prevent the class name from being edited directly. The class name can be specified in the URL.
52 + ## We prevent the class name and the data space from being edited directly. They can be specified in the URL.
54 54   $doc.display('class', 'hidden')
54 + $doc.display('class', 'dataSpace')
55 55   ## We have to pass the list of available columns to the JavaScript code.
56 56   #listAvailableColumns()
57 57   )))
... ... @@ -68,18 +68,18 @@
68 68   #if($services.uix)
69 69   #set($icon = 'icon:application')
70 70   #foreach($uix in $services.uix.getExtensions('org.xwiki.platform.panels.Applications'))
71 - #if($uix.getId() == "platform.panels.${doc.space}Application")
72 - #if("$!uix.getParameters().get('icon')" != '')
73 - #set($icon = $uix.getParameters().get('icon'))
74 - #end
71 + #if($uix.getId() == "platform.panels.${doc.space}Application" && "$!uix.getParameters().get('icon')" != '')
72 + #set($icon = $uix.getParameters().get('icon'))
75 75   #end
76 76   #end
77 77   {{html wiki="true"}}
78 - ## The icon
79 - ; <label for="applicationIcon">$services.localization.render('platform.appwithinminutes.liveTableEditorIcon')</label>
80 - (% class="xHint" %)$services.localization.render('platform.appwithinminutes.liveTableEditorIconHint', $xwiki.getSkinFile('icons/silk/index_abc.png'))
81 - : <input id="applicationIcon" name="applicationIcon" type="text" size="10" value="$!icon" />
82 - {{/html}}
76 + ; <label for="applicationIcon">$services.localization.render('platform.appwithinminutes.liveTableEditorIcon')</label>
77 + (% class="xHint" %)$services.localization.render('platform.appwithinminutes.liveTableEditorIconHintWithPicker',
78 + [$xwiki.getSkinFile('icons/silk/index_abc.png')])
79 + : <input id="applicationIcon" name="applicationIcon" type="text" size="10" value="$!escapetool.xml($icon)" />
80 + {{/html}}
81 +
82 + {{iconPicker id="applicationIcon" prefix="icon:" /}}
83 83   #end
84 84  #end
85 85  
... ... @@ -108,54 +108,93 @@
108 108   {{html}}<div class="clearfloats"></div>{{/html}}
109 109  #end
110 110  
111 -#macro(maybeGrantSpaceAdminRights)
112 - #set($spaceHomeRef = $services.model.createDocumentReference($doc.wiki, $doc.space, 'WebHome'))
113 - ## Grant space administration rights only if the space is new.
114 - #if(!$xwiki.exists($spaceHomeRef))
115 - #set($spacePrefsRef = $services.model.createDocumentReference($doc.wiki, $doc.space, 'WebPreferences'))
116 - #set($spacePrefsDoc = $xwiki.getDocument($spacePrefsRef))
117 - ## Don't overwrite existing space preferences.
118 - #if($spacePrefsDoc.isNew())
119 - #set($discard = $spacePrefsDoc.use($spacePrefsDoc.getObject('XWiki.XWikiGlobalRights', true)))
120 - #set($discard = $spacePrefsDoc.set('allow', 1))
121 - #set($discard = $spacePrefsDoc.set('levels', 'admin'))
122 - #set($discard = $spacePrefsDoc.set('users', $services.model.serialize($xcontext.userReference, 'default')))
123 - #set($discard = $spacePrefsDoc.setParent($services.model.serialize($spaceHomeRef, 'default')))
124 - #set($discard = $spacePrefsDoc.setHidden(true))
125 - #set($discard = $spacePrefsDoc.saveWithProgrammingRights($services.localization.render('platform.appwithinminutes.grantSpaceAdminRightsSaveComment')))
126 - #end
111 +#macro (maybeGrantSpaceAdminRight $spaceRef)
112 + ## Grant space administration rights only if the space is new. Don't overwrite existing space preferences.
113 + #set ($spaceHomeRef = $services.model.resolveDocument('', 'default', $spaceRef))
114 + #set ($spacePrefsRef = $services.model.resolveDocument('WebPreferences', 'explicit', $spaceRef))
115 + #if (!$xwiki.exists($spaceHomeRef) && !$xwiki.exists($spacePrefsRef))
116 + #set ($spacePrefsDoc = $xwiki.getDocument($spacePrefsRef))
117 + #set ($discard = $spacePrefsDoc.use($spacePrefsDoc.getObject('XWiki.XWikiGlobalRights', true)))
118 + #set ($discard = $spacePrefsDoc.set('allow', 1))
119 + #set ($discard = $spacePrefsDoc.set('levels', 'admin'))
120 + #set ($discard = $spacePrefsDoc.set('users', $services.model.serialize($xcontext.userReference, 'default')))
121 + #set ($discard = $spacePrefsDoc.setTitle('$services.localization.render(''admin.preferences.title'')'))
122 + #set ($discard = $spacePrefsDoc.setParent($services.model.serialize($spaceHomeRef, 'default')))
123 + #set ($discard = $spacePrefsDoc.setHidden(true))
124 + #set ($discard = $spacePrefsDoc.saveWithProgrammingRights($services.localization.render(
125 + 'platform.appwithinminutes.grantSpaceAdminRightsSaveComment')))
127 127   #end
128 128  #end
129 129  
129 +#macro (maybeGrantSpaceAdminRights)
130 + ## Application space
131 + #set ($appReference = $doc.documentReference.parent)
132 + #maybeGrantSpaceAdminRight($appReference)
133 + ## Code space (if it's not nested inside the application space)
134 + #set ($className = $request.get('AppWithinMinutes.LiveTableClass_0_class'))
135 + #set ($classReference = $services.model.resolveDocument($className))
136 + #if (!$classReference.hasParent($appReference))
137 + #maybeGrantSpaceAdminRight($classReference.parent)
138 + #end
139 +#end
140 +
130 130  #macro(updateAndSaveLiveTable)
131 131   #set($discard = $doc.updateObjectFromRequest('AppWithinMinutes.LiveTableClass'))
132 132   #set($liveTableGeneratorDoc = $xwiki.getDocument('AppWithinMinutes.LiveTableGenerator'))
133 - #set($discard = $doc.setContent($doc.getRenderedContent($liveTableGeneratorDoc.content, $liveTableGeneratorDoc.syntax.toIdString(), 'plain/1.0')))
144 +
145 + ## Generate the LiveTable by displaying the LiveTableGenerator document in the context of the current document.
146 + #set ($displayParameters = $services.display.createDocumentDisplayerParameters())
147 + #set ($discard = $displayParameters.setExecutionContextIsolated(false))
148 + #set ($discard = $displayParameters.setContentTranslated(true))
149 + #set ($generatedLiveTableContent = $services.display.content($liveTableGeneratorDoc, { 'outputSyntaxId' : 'plain/1.0', 'displayerParameters' : $displayParameters }))
150 +
151 + ## Use the generated LiveTable content for the data home page.
152 + #set ($dataSpaceReference = $services.model.resolveSpace($doc.getValue('dataSpace')))
153 + #set ($dataSpaceHomeReference = $services.model.resolveDocument('', 'default', $dataSpaceReference))
154 + #if ($dataSpaceHomeReference.equals($doc.documentReference))
155 + ## The application space and the data space are one and the same.
156 + #set ($dataHomePage = $doc)
157 + #else
158 + ## The application data is stored in a different space.
159 + #set ($dataHomePage = $xwiki.getDocument($dataSpaceHomeReference))
160 + #set ($discard = $dataHomePage.setHidden(true))
161 + #set ($escapedAppName = $doc.documentReference.parent.name.toLowerCase().replace("'", "''"))
162 + #set ($discard = $dataHomePage.setTitle("${escapetool.d}services.localization.render('${escapedAppName}.dataSpace.title')"))
163 +
164 + ## Update the home page content.
165 + #set ($homePageContent = '')
166 + #if ("$!generatedLiveTableContent" != '')
167 + ## Include the entries live table in the application home page.
168 + #set ($escapedReference = $services.model.serialize($dataSpaceHomeReference).replaceAll('([~"])', '~$1'))
169 + #set ($homePageContent = "{{include reference=""$escapedReference"" /}}")
170 + #end
171 + #set ($discard = $doc.setContent($homePageContent))
172 + #end
173 + #set ($discard = $dataHomePage.setContent($generatedLiveTableContent))
174 +
134 134   #set($minorEdit = "$!request.minorEdit" != '')
135 135   #set($comment = $request.comment)
136 136   #if("$!comment" == '')
137 137   #set($comment = $services.localization.render('platform.appwithinminutes.liveTableEditorSaveComment'))
138 138   #end
139 - #set($discard = $doc.save($comment, $minorEdit))
140 -#end
141 141  
142 -#macro(maybeCreateLiveTableResultsPage)
143 - #set ($className = "$!doc.getObject('AppWithinMinutes.LiveTableClass').getProperty('class').value")
144 - #set ($liveTableResultsDoc = $xwiki.getDocument("$!stringtool.removeEnd($className, 'Class')LiveTableResults"))
145 - #set ($liveTableResultsGeneratorDoc = $xwiki.getDocument('AppWithinMinutes.LiveTableResultsGenerator'))
146 - #if ($liveTableResultsDoc.isNew())
147 - #set ($discard = $liveTableResultsDoc.setParent($doc.name))
148 - #set ($discard = $liveTableResultsDoc.setHidden(true))
149 - #set ($discard = $liveTableResultsDoc.setContent($doc.getRenderedContent($liveTableResultsGeneratorDoc.content, $liveTableResultsGeneratorDoc.syntax.toIdString(), 'plain/1.0')))
150 - #set ($discard = $liveTableResultsDoc.save($services.localization.render('platform.appwithinminutes.liveTableEditorCreateLiveTableResultsComment')))
181 + #if ($dataHomePage != $doc)
182 + ## Save the data home page.
183 + #set ($discard = $dataHomePage.save($comment, $minorEdit))
151 151   #end
185 +
186 + ## Save the application home page.
187 + #set($discard = $doc.save($comment, $minorEdit))
152 152  #end
153 153  
154 154  #macro(updateAndSaveIcon)
155 155   #set($uix = $doc.getObject('XWiki.UIExtensionClass', true))
156 - #set($discard = $uix.set('name', "platform.panels.${doc.space}Application"))
157 - #set($discard = $uix.set('extensionPointId', "org.xwiki.platform.panels.Applications"))
158 - #set($discard = $uix.set('parameters', "label=${doc.space}${util.newline}target=${doc.fullName}${util.newline}icon=${request.applicationIcon}"))
192 + #set($appName = $doc.documentReference.parent.name)
193 + #set($discard = $uix.set('name', "platform.panels.${appName}Application"))
194 + #set($discard = $uix.set('extensionPointId', 'org.xwiki.platform.panels.Applications'))
195 + #set($discard = $uix.set('parameters', "label=${appName}${util.newline}target=${doc.fullName}${util.newline}icon=${request.applicationIcon}"))
196 + #set ($hasWikiAdminRights = $services.security.authorization.hasAccess('admin', $doc.documentReference.wikiReference))
197 + #set($discard = $uix.set('scope', "#if ($hasWikiAdminRights)wiki#{else}user#end"))
159 159   #set($discard = $doc.save('Updated application icon', true))
160 160  #end
161 161  
... ... @@ -162,7 +162,6 @@
162 162  #macro(doSave)
163 163   #maybeGrantSpaceAdminRights()
164 164   #updateAndSaveLiveTable()
165 - #maybeCreateLiveTableResultsPage()
166 166   #updateAndSaveIcon()
167 167   #if($action == 'save')
168 168   #if($errorMessage)
... ... @@ -183,13 +183,13 @@
183 183  
184 184  {{velocity}}
185 185  #if("$!request.wizard" == 'true')
186 - {{include document="AppWithinMinutes.WizardStep" /}}
224 + {{include reference="AppWithinMinutes.WizardStep" /}}
187 187  #end
188 188  {{/velocity}}
189 189  
190 190  {{velocity}}
191 191  ## Determine the action button that triggered the request
192 -#set($action = $context.action)
230 +#set($action = $xcontext.action)
193 193  #foreach($paramName in $request.getParameterMap().keySet())
194 194   #if($paramName.startsWith('xaction_'))
195 195   #set($action = $paramName.substring(8))
Icon XWiki.JavaScriptExtension[0]
Code
... ... @@ -135,7 +135,7 @@
135 135   form.addClassName('xform');
136 136  
137 137   // Remove the preview button.
138 - form.down("input[name='action_preview']").up().remove();
138 + form.down("input[name='action_preview']").remove();
139 139  
140 140   // Rename the save buttons.
141 141   form.down("input[name='action_save']").name = 'xaction_save';
Icon XWiki.StyleSheetExtension[0]
Code
... ... @@ -3,6 +3,7 @@
3 3   font-size: 90%;
4 4   list-style: none outside none;
5 5   margin: 0;
6 + padding: 0;
6 6  }
7 7  
8 8  #inline .hList li {
... ... @@ -52,7 +52,8 @@
52 52  }
53 53  
54 54  .columnPicker input[type=image] {
55 - margin-left: 2px;
56 + margin: 0 .5em;
57 + padding: 0;
56 56   vertical-align: text-bottom;
57 57  }
58 58  
This wiki is licensed under a Creative Commons 2.0 license
XWiki 13.10 - Documentation - Conditions