Skip to content
Snippets Groups Projects
Commit 58414e24 authored by Thomas Mortagne's avatar Thomas Mortagne
Browse files

XWIKI-20604: Refactor tips panel UIX to store the tip in the content instead of a property

parent efce34e6
No related branches found
No related tags found
No related merge requests found
Showing
with 423 additions and 76 deletions
......@@ -58,7 +58,7 @@ void setUp(TestUtils testUtils)
@Test
@Order(1)
void verifyTipsPropertyIsRestricted(TestUtils testUtils, TestReference testReference) throws Exception
void verifyTipsParameterIsRestricted(TestUtils testUtils, TestReference testReference) throws Exception
{
// Unregister all tips
switchUIXs(TIPS_UIXP, TIPS_UIXP_DISABLED, testUtils);
......@@ -66,13 +66,13 @@ void verifyTipsPropertyIsRestricted(TestUtils testUtils, TestReference testRefer
// Register a macro to check if the context is restricted
registerIsrestrictedMacro(testUtils);
// Create a tip with tip property
// Create a parameter based tip
Page tipPage = testUtils.rest().page(testReference);
tipPage.setObjects(new Objects());
org.xwiki.rest.model.jaxb.Object tipObject = object(UIExtensionClassDocumentInitializer.CLASS_REFERENCE_STRING);
tipObject.getProperties().add(property("name", testUtils.serializeReference(testReference)));
tipObject.getProperties().add(property("extensionPointId", "org.xwiki.platform.help.tipsPanel"));
tipObject.getProperties().add(property("parameters",
"tip=execution is restricted: {{isrestricted/}}"));
tipObject.getProperties().add(property("parameters", "tip=execution is restricted: {{isrestricted/}}"));
tipPage.getObjects().getObjectSummaries().add(tipObject);
testUtils.rest().save(tipPage);
......@@ -85,6 +85,42 @@ void verifyTipsPropertyIsRestricted(TestUtils testUtils, TestReference testRefer
switchUIXs(TIPS_UIXP_DISABLED, TIPS_UIXP, testUtils);
}
@Test
@Order(2)
void verifyTipsContentIsExecutedWithTheRightAuthor(TestUtils testUtils, TestReference testReference)
throws Exception
{
// Unregister all tips
switchUIXs(TIPS_UIXP, TIPS_UIXP_DISABLED, testUtils);
// Register a macro to check if the context is restricted
registerIsrestrictedMacro(testUtils);
// Switch to a different user than tips panel author
testUtils.createAdminUser(true);
// Create a content based tip
Page tipPage = testUtils.rest().page(testReference);
tipPage.setObjects(new Objects());
org.xwiki.rest.model.jaxb.Object tipObject = object(UIExtensionClassDocumentInitializer.CLASS_REFERENCE_STRING);
tipObject.getProperties().add(property("name", testUtils.serializeReference(testReference)));
tipObject.getProperties().add(property("extensionPointId", "org.xwiki.platform.help.tipsPanel"));
tipObject.getProperties().add(property("content",
"execution is restricted: {{isrestricted/}}, executed by {{velocity}}$xcontext.context.authorReference{{/velocity}}"));
tipPage.getObjects().getObjectSummaries().add(tipObject);
testUtils.rest().save(tipPage);
// Execute the tip panel and verify the result is the expected one
testUtils.gotoPage(new DocumentReference("xwiki", "Help", "TipsPanel", "WebHome"));
PanelViewPage panelPage = new PanelViewPage();
assertEquals(
"execution is restricted: false, executed by xwiki:XWiki." + TestUtils.ADMIN_CREDENTIALS.getUserName(),
panelPage.getPanelContent().getText());
// Put back all tips
switchUIXs(TIPS_UIXP_DISABLED, TIPS_UIXP, testUtils);
}
private void switchUIXs(String oldid, String newid, TestUtils testUtils) throws Exception
{
testUtils.executeWiki(String.format(
......@@ -108,8 +144,8 @@ private void registerIsrestrictedMacro(TestUtils testUtils) throws Exception
org.xwiki.rest.model.jaxb.Object tipObject = object(WikiMacroClassDocumentInitializer.WIKI_MACRO_CLASS);
tipObject.getProperties().add(property("id", "isrestricted"));
tipObject.getProperties().add(property("supportsInlineMode", 1));
tipObject.getProperties().add(property("code",
"{{velocity}}$wikimacro.context.transformationContext.isRestricted(){{/velocity}}"));
tipObject.getProperties()
.add(property("code", "{{velocity}}$wikimacro.context.transformationContext.isRestricted(){{/velocity}}"));
macroPage.getObjects().getObjectSummaries().add(tipObject);
testUtils.rest().save(macroPage);
}
......
......@@ -180,6 +180,14 @@
<scope>runtime</scope>
<type>xar</type>
</dependency>
<dependency>
<!-- Used to manipulate tips. -->
<groupId>org.xwiki.platform</groupId>
<artifactId>xwiki-platform-uiextension-api</artifactId>
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
<!-- Test Dependencies -->
<dependency>
<groupId>org.xwiki.platform</groupId>
......
......@@ -20,7 +20,7 @@
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-->
<xwikidoc version="1.3" reference="Help.TipsPanel.AdvancedHiddenShortcutTip" locale="">
<xwikidoc version="1.5" reference="Help.TipsPanel.AdvancedHiddenShortcutTip" locale="">
<web>Help.TipsPanel</web>
<name>AdvancedHiddenShortcutTip</name>
<language/>
......@@ -51,21 +51,62 @@
<defaultWeb/>
<nameField/>
<validationScript/>
<async_cached>
<defaultValue>0</defaultValue>
<disabled>0</disabled>
<displayFormType>select</displayFormType>
<displayType/>
<name>async_cached</name>
<number>3</number>
<prettyName>Cached</prettyName>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.BooleanClass</classType>
</async_cached>
<async_context>
<cache>0</cache>
<disabled>0</disabled>
<displayType>select</displayType>
<freeText>forbidden</freeText>
<largeStorage>0</largeStorage>
<multiSelect>1</multiSelect>
<name>async_context</name>
<number>4</number>
<prettyName>Context elements</prettyName>
<relationalStorage>0</relationalStorage>
<separator>, </separator>
<separators>|, </separators>
<size>5</size>
<unmodifiable>0</unmodifiable>
<values>action=Action|doc.reference=Document|icon.theme=Icon theme|locale=Language|rendering.defaultsyntax=Default syntax|rendering.restricted=Restricted|rendering.targetsyntax=Target syntax|request.base=Request base URL|request.cookies|request.headers|request.parameters=Request parameters|request.remoteAddr|request.url=Request URL|request.wiki=Request wiki|user=User|wiki=Wiki</values>
<classType>com.xpn.xwiki.objects.classes.StaticListClass</classType>
</async_context>
<async_enabled>
<defaultValue>0</defaultValue>
<disabled>0</disabled>
<displayFormType>select</displayFormType>
<displayType/>
<name>async_enabled</name>
<number>2</number>
<prettyName>Asynchronous rendering</prettyName>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.BooleanClass</classType>
</async_enabled>
<content>
<disabled>0</disabled>
<editor>Text</editor>
<name>content</name>
<number>3</number>
<prettyName>Extension Content</prettyName>
<rows>10</rows>
<size>40</size>
<number>1</number>
<prettyName>Executed Content</prettyName>
<restricted>0</restricted>
<rows>25</rows>
<size>120</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.TextAreaClass</classType>
</content>
<extensionPointId>
<disabled>0</disabled>
<name>extensionPointId</name>
<number>1</number>
<number>5</number>
<prettyName>Extension Point ID</prettyName>
<size>30</size>
<unmodifiable>0</unmodifiable>
......@@ -74,7 +115,7 @@
<name>
<disabled>0</disabled>
<name>name</name>
<number>2</number>
<number>6</number>
<prettyName>Extension ID</prettyName>
<size>30</size>
<unmodifiable>0</unmodifiable>
......@@ -85,8 +126,9 @@
<disabled>0</disabled>
<editor>PureText</editor>
<name>parameters</name>
<number>4</number>
<number>7</number>
<prettyName>Extension Parameters</prettyName>
<restricted>0</restricted>
<rows>10</rows>
<size>40</size>
<unmodifiable>0</unmodifiable>
......@@ -96,9 +138,11 @@
<cache>0</cache>
<disabled>0</disabled>
<displayType>select</displayType>
<freeText>forbidden</freeText>
<largeStorage>0</largeStorage>
<multiSelect>0</multiSelect>
<name>scope</name>
<number>5</number>
<number>8</number>
<prettyName>Extension Scope</prettyName>
<relationalStorage>0</relationalStorage>
<separator> </separator>
......@@ -110,7 +154,18 @@
</scope>
</class>
<property>
<content/>
<async_cached>0</async_cached>
</property>
<property>
<async_context/>
</property>
<property>
<async_enabled>0</async_enabled>
</property>
<property>
<content>{{velocity}}
$services.localization.render('help.tipsPanel.advancedHiddenShortcutTip')
{{/velocity}}</content>
</property>
<property>
<extensionPointId>org.xwiki.platform.help.tipsPanel</extensionPointId>
......@@ -119,7 +174,7 @@
<name>AdvancedHiddenShortcutTip</name>
</property>
<property>
<parameters>tip=$services.localization.render('help.tipsPanel.advancedHiddenShortcutTip')</parameters>
<parameters/>
</property>
<property>
<scope>wiki</scope>
......
......@@ -20,7 +20,7 @@
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-->
<xwikidoc version="1.2" reference="Help.TipsPanel.BreadcrumbsTip" locale="">
<xwikidoc version="1.5" reference="Help.TipsPanel.BreadcrumbsTip" locale="">
<web>Help.TipsPanel</web>
<name>BreadcrumbsTip</name>
<language/>
......@@ -51,21 +51,62 @@
<defaultWeb/>
<nameField/>
<validationScript/>
<async_cached>
<defaultValue>0</defaultValue>
<disabled>0</disabled>
<displayFormType>select</displayFormType>
<displayType/>
<name>async_cached</name>
<number>3</number>
<prettyName>Cached</prettyName>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.BooleanClass</classType>
</async_cached>
<async_context>
<cache>0</cache>
<disabled>0</disabled>
<displayType>select</displayType>
<freeText>forbidden</freeText>
<largeStorage>0</largeStorage>
<multiSelect>1</multiSelect>
<name>async_context</name>
<number>4</number>
<prettyName>Context elements</prettyName>
<relationalStorage>0</relationalStorage>
<separator>, </separator>
<separators>|, </separators>
<size>5</size>
<unmodifiable>0</unmodifiable>
<values>action=Action|doc.reference=Document|icon.theme=Icon theme|locale=Language|rendering.defaultsyntax=Default syntax|rendering.restricted=Restricted|rendering.targetsyntax=Target syntax|request.base=Request base URL|request.cookies|request.headers|request.parameters=Request parameters|request.remoteAddr|request.url=Request URL|request.wiki=Request wiki|user=User|wiki=Wiki</values>
<classType>com.xpn.xwiki.objects.classes.StaticListClass</classType>
</async_context>
<async_enabled>
<defaultValue>0</defaultValue>
<disabled>0</disabled>
<displayFormType>select</displayFormType>
<displayType/>
<name>async_enabled</name>
<number>2</number>
<prettyName>Asynchronous rendering</prettyName>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.BooleanClass</classType>
</async_enabled>
<content>
<disabled>0</disabled>
<editor/>
<editor>Text</editor>
<name>content</name>
<number>3</number>
<prettyName>Extension Content</prettyName>
<rows>10</rows>
<size>40</size>
<number>1</number>
<prettyName>Executed Content</prettyName>
<restricted>0</restricted>
<rows>25</rows>
<size>120</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.TextAreaClass</classType>
</content>
<extensionPointId>
<disabled>0</disabled>
<name>extensionPointId</name>
<number>1</number>
<number>5</number>
<prettyName>Extension Point ID</prettyName>
<size>30</size>
<unmodifiable>0</unmodifiable>
......@@ -74,18 +115,20 @@
<name>
<disabled>0</disabled>
<name>name</name>
<number>2</number>
<number>6</number>
<prettyName>Extension ID</prettyName>
<size>30</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.StringClass</classType>
</name>
<parameters>
<contenttype>PureText</contenttype>
<disabled>0</disabled>
<editor/>
<editor>PureText</editor>
<name>parameters</name>
<number>4</number>
<number>7</number>
<prettyName>Extension Parameters</prettyName>
<restricted>0</restricted>
<rows>10</rows>
<size>40</size>
<unmodifiable>0</unmodifiable>
......@@ -95,9 +138,11 @@
<cache>0</cache>
<disabled>0</disabled>
<displayType>select</displayType>
<freeText>forbidden</freeText>
<largeStorage>0</largeStorage>
<multiSelect>0</multiSelect>
<name>scope</name>
<number>5</number>
<number>8</number>
<prettyName>Extension Scope</prettyName>
<relationalStorage>0</relationalStorage>
<separator> </separator>
......@@ -109,7 +154,18 @@
</scope>
</class>
<property>
<content/>
<async_cached>0</async_cached>
</property>
<property>
<async_context/>
</property>
<property>
<async_enabled>0</async_enabled>
</property>
<property>
<content>{{velocity}}
$services.localization.render('help.tipsPanel.breadcrumbsTip')
{{/velocity}}</content>
</property>
<property>
<extensionPointId>org.xwiki.platform.help.tipsPanel</extensionPointId>
......@@ -118,7 +174,7 @@
<name>BreadcrumbsTip</name>
</property>
<property>
<parameters>tip=$services.localization.render('help.tipsPanel.breadcrumbsTip')</parameters>
<parameters/>
</property>
<property>
<scope>wiki</scope>
......
......@@ -20,7 +20,7 @@
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-->
<xwikidoc version="1.2" reference="Help.TipsPanel.GettingStartedTip" locale="">
<xwikidoc version="1.5" reference="Help.TipsPanel.GettingStartedTip" locale="">
<web>Help.TipsPanel</web>
<name>GettingStartedTip</name>
<language/>
......@@ -51,20 +51,62 @@
<defaultWeb/>
<nameField/>
<validationScript/>
<async_cached>
<defaultValue>0</defaultValue>
<disabled>0</disabled>
<displayFormType>select</displayFormType>
<displayType/>
<name>async_cached</name>
<number>3</number>
<prettyName>Cached</prettyName>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.BooleanClass</classType>
</async_cached>
<async_context>
<cache>0</cache>
<disabled>0</disabled>
<displayType>select</displayType>
<freeText>forbidden</freeText>
<largeStorage>0</largeStorage>
<multiSelect>1</multiSelect>
<name>async_context</name>
<number>4</number>
<prettyName>Context elements</prettyName>
<relationalStorage>0</relationalStorage>
<separator>, </separator>
<separators>|, </separators>
<size>5</size>
<unmodifiable>0</unmodifiable>
<values>action=Action|doc.reference=Document|icon.theme=Icon theme|locale=Language|rendering.defaultsyntax=Default syntax|rendering.restricted=Restricted|rendering.targetsyntax=Target syntax|request.base=Request base URL|request.cookies|request.headers|request.parameters=Request parameters|request.remoteAddr|request.url=Request URL|request.wiki=Request wiki|user=User|wiki=Wiki</values>
<classType>com.xpn.xwiki.objects.classes.StaticListClass</classType>
</async_context>
<async_enabled>
<defaultValue>0</defaultValue>
<disabled>0</disabled>
<displayFormType>select</displayFormType>
<displayType/>
<name>async_enabled</name>
<number>2</number>
<prettyName>Asynchronous rendering</prettyName>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.BooleanClass</classType>
</async_enabled>
<content>
<disabled>0</disabled>
<editor>Text</editor>
<name>content</name>
<number>3</number>
<prettyName>Extension Content</prettyName>
<rows>10</rows>
<size>40</size>
<number>1</number>
<prettyName>Executed Content</prettyName>
<restricted>0</restricted>
<rows>25</rows>
<size>120</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.TextAreaClass</classType>
</content>
<extensionPointId>
<disabled>0</disabled>
<name>extensionPointId</name>
<number>1</number>
<number>5</number>
<prettyName>Extension Point ID</prettyName>
<size>30</size>
<unmodifiable>0</unmodifiable>
......@@ -73,17 +115,20 @@
<name>
<disabled>0</disabled>
<name>name</name>
<number>2</number>
<number>6</number>
<prettyName>Extension ID</prettyName>
<size>30</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.StringClass</classType>
</name>
<parameters>
<contenttype>PureText</contenttype>
<disabled>0</disabled>
<editor>PureText</editor>
<name>parameters</name>
<number>4</number>
<number>7</number>
<prettyName>Extension Parameters</prettyName>
<restricted>0</restricted>
<rows>10</rows>
<size>40</size>
<unmodifiable>0</unmodifiable>
......@@ -93,9 +138,11 @@
<cache>0</cache>
<disabled>0</disabled>
<displayType>select</displayType>
<freeText>forbidden</freeText>
<largeStorage>0</largeStorage>
<multiSelect>0</multiSelect>
<name>scope</name>
<number>5</number>
<number>8</number>
<prettyName>Extension Scope</prettyName>
<relationalStorage>0</relationalStorage>
<separator> </separator>
......@@ -107,7 +154,18 @@
</scope>
</class>
<property>
<content/>
<async_cached>0</async_cached>
</property>
<property>
<async_context/>
</property>
<property>
<async_enabled>0</async_enabled>
</property>
<property>
<content>{{velocity}}
$services.localization.render('help.tipsPanel.gettingStartedTip')
{{/velocity}}</content>
</property>
<property>
<extensionPointId>org.xwiki.platform.help.tipsPanel</extensionPointId>
......@@ -116,7 +174,7 @@
<name>GettingStartedTip</name>
</property>
<property>
<parameters>tip=$services.localization.render('help.tipsPanel.gettingStartedTip')</parameters>
<parameters/>
</property>
<property>
<scope>wiki</scope>
......
......@@ -20,7 +20,7 @@
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-->
<xwikidoc version="1.2" reference="Help.TipsPanel.ImproveXWikiTip" locale="">
<xwikidoc version="1.5" reference="Help.TipsPanel.ImproveXWikiTip" locale="">
<web>Help.TipsPanel</web>
<name>ImproveXWikiTip</name>
<language/>
......@@ -51,21 +51,62 @@
<defaultWeb/>
<nameField/>
<validationScript/>
<async_cached>
<defaultValue>0</defaultValue>
<disabled>0</disabled>
<displayFormType>select</displayFormType>
<displayType/>
<name>async_cached</name>
<number>3</number>
<prettyName>Cached</prettyName>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.BooleanClass</classType>
</async_cached>
<async_context>
<cache>0</cache>
<disabled>0</disabled>
<displayType>select</displayType>
<freeText>forbidden</freeText>
<largeStorage>0</largeStorage>
<multiSelect>1</multiSelect>
<name>async_context</name>
<number>4</number>
<prettyName>Context elements</prettyName>
<relationalStorage>0</relationalStorage>
<separator>, </separator>
<separators>|, </separators>
<size>5</size>
<unmodifiable>0</unmodifiable>
<values>action=Action|doc.reference=Document|icon.theme=Icon theme|locale=Language|rendering.defaultsyntax=Default syntax|rendering.restricted=Restricted|rendering.targetsyntax=Target syntax|request.base=Request base URL|request.cookies|request.headers|request.parameters=Request parameters|request.remoteAddr|request.url=Request URL|request.wiki=Request wiki|user=User|wiki=Wiki</values>
<classType>com.xpn.xwiki.objects.classes.StaticListClass</classType>
</async_context>
<async_enabled>
<defaultValue>0</defaultValue>
<disabled>0</disabled>
<displayFormType>select</displayFormType>
<displayType/>
<name>async_enabled</name>
<number>2</number>
<prettyName>Asynchronous rendering</prettyName>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.BooleanClass</classType>
</async_enabled>
<content>
<disabled>0</disabled>
<editor/>
<editor>Text</editor>
<name>content</name>
<number>3</number>
<prettyName>Extension Content</prettyName>
<rows>10</rows>
<size>40</size>
<number>1</number>
<prettyName>Executed Content</prettyName>
<restricted>0</restricted>
<rows>25</rows>
<size>120</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.TextAreaClass</classType>
</content>
<extensionPointId>
<disabled>0</disabled>
<name>extensionPointId</name>
<number>1</number>
<number>5</number>
<prettyName>Extension Point ID</prettyName>
<size>30</size>
<unmodifiable>0</unmodifiable>
......@@ -74,18 +115,20 @@
<name>
<disabled>0</disabled>
<name>name</name>
<number>2</number>
<number>6</number>
<prettyName>Extension ID</prettyName>
<size>30</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.StringClass</classType>
</name>
<parameters>
<contenttype>PureText</contenttype>
<disabled>0</disabled>
<editor/>
<editor>PureText</editor>
<name>parameters</name>
<number>4</number>
<number>7</number>
<prettyName>Extension Parameters</prettyName>
<restricted>0</restricted>
<rows>10</rows>
<size>40</size>
<unmodifiable>0</unmodifiable>
......@@ -95,9 +138,11 @@
<cache>0</cache>
<disabled>0</disabled>
<displayType>select</displayType>
<freeText>forbidden</freeText>
<largeStorage>0</largeStorage>
<multiSelect>0</multiSelect>
<name>scope</name>
<number>5</number>
<number>8</number>
<prettyName>Extension Scope</prettyName>
<relationalStorage>0</relationalStorage>
<separator> </separator>
......@@ -109,7 +154,18 @@
</scope>
</class>
<property>
<content/>
<async_cached>0</async_cached>
</property>
<property>
<async_context/>
</property>
<property>
<async_enabled>0</async_enabled>
</property>
<property>
<content>{{velocity}}
$services.localization.render('help.tipsPanel.improveXWikiTip')
{{/velocity}}</content>
</property>
<property>
<extensionPointId>org.xwiki.platform.help.tipsPanel</extensionPointId>
......@@ -118,7 +174,7 @@
<name>ImproveXWikiTip</name>
</property>
<property>
<parameters>tip=$services.localization.render('help.tipsPanel.improveXWikiTip')</parameters>
<parameters/>
</property>
<property>
<scope>wiki</scope>
......
......@@ -20,7 +20,7 @@
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-->
<xwikidoc version="1.2" reference="Help.TipsPanel.JumpToPageTip" locale="">
<xwikidoc version="1.5" reference="Help.TipsPanel.JumpToPageTip" locale="">
<web>Help.TipsPanel</web>
<name>JumpToPageTip</name>
<language/>
......@@ -51,20 +51,62 @@
<defaultWeb/>
<nameField/>
<validationScript/>
<async_cached>
<defaultValue>0</defaultValue>
<disabled>0</disabled>
<displayFormType>select</displayFormType>
<displayType/>
<name>async_cached</name>
<number>3</number>
<prettyName>Cached</prettyName>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.BooleanClass</classType>
</async_cached>
<async_context>
<cache>0</cache>
<disabled>0</disabled>
<displayType>select</displayType>
<freeText>forbidden</freeText>
<largeStorage>0</largeStorage>
<multiSelect>1</multiSelect>
<name>async_context</name>
<number>4</number>
<prettyName>Context elements</prettyName>
<relationalStorage>0</relationalStorage>
<separator>, </separator>
<separators>|, </separators>
<size>5</size>
<unmodifiable>0</unmodifiable>
<values>action=Action|doc.reference=Document|icon.theme=Icon theme|locale=Language|rendering.defaultsyntax=Default syntax|rendering.restricted=Restricted|rendering.targetsyntax=Target syntax|request.base=Request base URL|request.cookies|request.headers|request.parameters=Request parameters|request.remoteAddr|request.url=Request URL|request.wiki=Request wiki|user=User|wiki=Wiki</values>
<classType>com.xpn.xwiki.objects.classes.StaticListClass</classType>
</async_context>
<async_enabled>
<defaultValue>0</defaultValue>
<disabled>0</disabled>
<displayFormType>select</displayFormType>
<displayType/>
<name>async_enabled</name>
<number>2</number>
<prettyName>Asynchronous rendering</prettyName>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.BooleanClass</classType>
</async_enabled>
<content>
<disabled>0</disabled>
<editor>Text</editor>
<name>content</name>
<number>3</number>
<prettyName>Extension Content</prettyName>
<rows>10</rows>
<size>40</size>
<number>1</number>
<prettyName>Executed Content</prettyName>
<restricted>0</restricted>
<rows>25</rows>
<size>120</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.TextAreaClass</classType>
</content>
<extensionPointId>
<disabled>0</disabled>
<name>extensionPointId</name>
<number>1</number>
<number>5</number>
<prettyName>Extension Point ID</prettyName>
<size>30</size>
<unmodifiable>0</unmodifiable>
......@@ -73,17 +115,20 @@
<name>
<disabled>0</disabled>
<name>name</name>
<number>2</number>
<number>6</number>
<prettyName>Extension ID</prettyName>
<size>30</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.StringClass</classType>
</name>
<parameters>
<contenttype>PureText</contenttype>
<disabled>0</disabled>
<editor>PureText</editor>
<name>parameters</name>
<number>4</number>
<number>7</number>
<prettyName>Extension Parameters</prettyName>
<restricted>0</restricted>
<rows>10</rows>
<size>40</size>
<unmodifiable>0</unmodifiable>
......@@ -93,9 +138,11 @@
<cache>0</cache>
<disabled>0</disabled>
<displayType>select</displayType>
<freeText>forbidden</freeText>
<largeStorage>0</largeStorage>
<multiSelect>0</multiSelect>
<name>scope</name>
<number>5</number>
<number>8</number>
<prettyName>Extension Scope</prettyName>
<relationalStorage>0</relationalStorage>
<separator> </separator>
......@@ -107,7 +154,18 @@
</scope>
</class>
<property>
<content/>
<async_cached>0</async_cached>
</property>
<property>
<async_context/>
</property>
<property>
<async_enabled>0</async_enabled>
</property>
<property>
<content>{{velocity}}
$services.localization.render('help.tipsPanel.jumpToPageTip')
{{/velocity}}</content>
</property>
<property>
<extensionPointId>org.xwiki.platform.help.tipsPanel</extensionPointId>
......@@ -116,7 +174,7 @@
<name>JumpToPageTip</name>
</property>
<property>
<parameters>tip=$services.localization.render('help.tipsPanel.jumpToPageTip')</parameters>
<parameters/>
</property>
<property>
<scope>wiki</scope>
......
......@@ -20,7 +20,7 @@
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-->
<xwikidoc version="1.3" reference="Help.TipsPanel.WYSIWYGLinkAutocomplete" locale="">
<xwikidoc version="1.5" reference="Help.TipsPanel.WYSIWYGLinkAutocomplete" locale="">
<web>Help.TipsPanel</web>
<name>WYSIWYGLinkAutocomplete</name>
<language/>
......@@ -66,16 +66,18 @@
<cache>0</cache>
<disabled>0</disabled>
<displayType>select</displayType>
<freeText>forbidden</freeText>
<largeStorage>0</largeStorage>
<multiSelect>1</multiSelect>
<name>async_context</name>
<number>4</number>
<prettyName>Context elements</prettyName>
<relationalStorage>0</relationalStorage>
<separator> </separator>
<separator>, </separator>
<separators>|, </separators>
<size>5</size>
<unmodifiable>0</unmodifiable>
<values>author=Author|doc.reference=Document|locale=Language|request.base=Request base URL|request.parameters=Request parameters|request.url=Request URL|request.wiki=Request wiki|user=User|wiki=Wiki</values>
<values>action=Action|doc.reference=Document|icon.theme=Icon theme|locale=Language|rendering.defaultsyntax=Default syntax|rendering.restricted=Restricted|rendering.targetsyntax=Target syntax|request.base=Request base URL|request.cookies|request.headers|request.parameters=Request parameters|request.remoteAddr|request.url=Request URL|request.wiki=Request wiki|user=User|wiki=Wiki</values>
<classType>com.xpn.xwiki.objects.classes.StaticListClass</classType>
</async_context>
<async_enabled>
......@@ -95,6 +97,7 @@
<name>content</name>
<number>1</number>
<prettyName>Executed Content</prettyName>
<restricted>0</restricted>
<rows>25</rows>
<size>120</size>
<unmodifiable>0</unmodifiable>
......@@ -125,6 +128,7 @@
<name>parameters</name>
<number>7</number>
<prettyName>Extension Parameters</prettyName>
<restricted>0</restricted>
<rows>10</rows>
<size>40</size>
<unmodifiable>0</unmodifiable>
......@@ -134,6 +138,8 @@
<cache>0</cache>
<disabled>0</disabled>
<displayType>select</displayType>
<freeText>forbidden</freeText>
<largeStorage>0</largeStorage>
<multiSelect>0</multiSelect>
<name>scope</name>
<number>8</number>
......@@ -157,7 +163,9 @@
<async_enabled>0</async_enabled>
</property>
<property>
<content/>
<content>{{velocity}}
$services.localization.render('help.tipsPanel.linkAutocompleteWYSIWYGTip')
{{/velocity}}</content>
</property>
<property>
<extensionPointId>org.xwiki.platform.help.tipsPanel</extensionPointId>
......@@ -166,7 +174,7 @@
<name>LinkAutocompleteWYSIWYGTip</name>
</property>
<property>
<parameters>tip=$services.localization.render('help.tipsPanel.linkAutocompleteWYSIWYGTip')</parameters>
<parameters/>
</property>
<property>
<scope>wiki</scope>
......
......@@ -20,7 +20,7 @@
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-->
<xwikidoc version="1.3" reference="Help.TipsPanel.WebHome" locale="">
<xwikidoc version="1.5" reference="Help.TipsPanel.WebHome" locale="">
<web>Help.TipsPanel</web>
<name>WebHome</name>
<language/>
......@@ -66,16 +66,18 @@
<cache>0</cache>
<disabled>0</disabled>
<displayType>select</displayType>
<freeText>forbidden</freeText>
<largeStorage>0</largeStorage>
<multiSelect>1</multiSelect>
<name>async_context</name>
<number>8</number>
<prettyName>Context elements</prettyName>
<relationalStorage>0</relationalStorage>
<separator> </separator>
<separator>, </separator>
<separators>|, </separators>
<size>5</size>
<unmodifiable>0</unmodifiable>
<values>author=Author|doc.reference=Document|wiki=Wiki|request.parameters=Request parameters|request.url=Request URL|locale=Language|user=User</values>
<values>action=Action|doc.reference=Document|icon.theme=Icon theme|locale=Language|rendering.defaultsyntax=Default syntax|rendering.restricted=Restricted|rendering.targetsyntax=Target syntax|request.base=Request base URL|request.cookies|request.headers|request.parameters=Request parameters|request.remoteAddr|request.url=Request URL|request.wiki=Request wiki|user=User|wiki=Wiki</values>
<classType>com.xpn.xwiki.objects.classes.StaticListClass</classType>
</async_context>
<async_enabled>
......@@ -93,6 +95,8 @@
<cache>0</cache>
<disabled>0</disabled>
<displayType>select</displayType>
<freeText>forbidden</freeText>
<largeStorage>0</largeStorage>
<multiSelect>0</multiSelect>
<name>category</name>
<number>1</number>
......@@ -111,6 +115,7 @@
<name>content</name>
<number>5</number>
<prettyName>Executed Content</prettyName>
<restricted>0</restricted>
<rows>25</rows>
<size>120</size>
<unmodifiable>0</unmodifiable>
......@@ -122,6 +127,7 @@
<name>description</name>
<number>2</number>
<prettyName>Description</prettyName>
<restricted>0</restricted>
<rows>5</rows>
<size>40</size>
<unmodifiable>0</unmodifiable>
......@@ -140,6 +146,8 @@
<cache>0</cache>
<disabled>0</disabled>
<displayType>select</displayType>
<freeText>forbidden</freeText>
<largeStorage>0</largeStorage>
<multiSelect>0</multiSelect>
<name>type</name>
<number>4</number>
......@@ -173,9 +181,13 @@
#set ($uixs = $services.uix.getExtensions('org.xwiki.platform.help.tipsPanel'))
#if ($uixs.size() &gt; 0)
#set ($index = $mathtool.random(0, $uixs.size()))
#set ($tip = $uixs.get($index).getParameters().get('tip'))
## Execute the content in restricted mode as it's not executed with the right author
{{context restricted="true" transformationContext="transformations" source="script:tip"/}}
#set ($uix = $uixs.get($index))
#set ($tip = $uix.getParameters().get('tip'))
#if ($tip)
{{context restricted="true" transformationContext="transformations" source="script:tip"/}}
#else
{{uiextension id="$services.rendering.escape($uix.id, 'xwiki/2.1')"/}}
#end
#else
$services.localization.render('help.tipsPanel.noTipMessage')
#end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment