Re: [xwiki-users] UIExtension Access document holding the UIExtension object

2016-02-05 Thread Gerritjan Koekkoek
Hi,
Using:
So you could have params like:

name = $doc.documentReference (or $doc.fullName)
title = $doc.title
creator = $doc.creatorReference
hasAdmin = $services.authorization.checkAccess(‘ADMIN’, $doc.authorReference)

>> Looks like the $doc is retrieving the current doc and not the Document that 
>> holds the UIExtension object?
Any way to access the holding Document?

From: users <users-boun...@xwiki.org> on behalf of vinc...@massol.net 
<vinc...@massol.net>
Sent: 04 February 2016 15:32
To: XWiki Users
Subject: Re: [xwiki-users] UIExtension Access document holding the UIExtension 
object

Hi,


On 3 Feb 2016 at 11:24:22, Gerritjan Koekkoek 
(gerrit...@cdlsworld.org(mailto:gerrit...@cdlsworld.org)) wrote:

> Hi,
>
>
> We have pages having ONE UIExtension objects of XWiki.UIExtensionClass.
>
> Using as
>
> $services.uix.getExtensions('dashboard.mainMenu.items',{'sortByParameter' : 
> 'displayorder'})
>
>
> With a #foreach loop we can access all the parameters. (and other extension 
> properties)
>
> But is it possible to get the page information (Name, Title, Creator, Rights)
>
>
> The use case is that we want a dynamic menu based on that information?
>
>
> The following did not give the desired result:
>
> #set($dashboardMenuItems = 
> $services.uix.getExtensions('dashboard.mainMenu.items',{'sortByParameter' : 
> 'displayorder'}) )
>
> #foreach($dashboardMenuItem in $dashboardMenuItems)
>
> #set($dashboardMenuItemDocument = $xwiki.getDocument($dashboardMenuItem))
>
> #end


I guess you already know about 
http://extensions.xwiki.org/xwiki/bin/view/Extension/UIExtension+Module ?

$services.uix.getExtensions returns a List and UIExtension is:

public interface UIExtension
{
/**
 * @return the ID of this extension
 */
String getId();

/**
 * @return the ID of the extension point this UI extension is providing an 
extension for
 */
String getExtensionPointId();

/**
 * A map of parameters provided by the extension. When providing a new 
Extension Point the developer must document
 * the list of parameters he requires.
 *
  * @return a map of parameters provided by the extension
 */
Map<String, String> getParameters();

/**
 * @return the {@link Block} that must be rendered when this extension is 
displayed
 */
Block execute();
}


So as you can see there’s no way to return anything else here.

However, when you define your UIX you can pass any number of parameters (which 
are retrieved through calling getParameters() on UIExtension).

So you could have params like:

name = $doc.documentReference (or $doc.fullName)
title = $doc.title
creator = $doc.creatorReference
hasAdmin = $services.authorization.checkAccess(‘ADMIN’, $doc.authorReference)
...

Hope it helps,
-Vincent


> Gerritjan Koekkoek
> Vader van Rai Koekkoek (cdls) en voorzitter vereniging CdLS
> Visit our website
> Facebook
> email

___
users mailing list
users@xwiki.org
http://lists.xwiki.org/mailman/listinfo/users
___
users mailing list
users@xwiki.org
http://lists.xwiki.org/mailman/listinfo/users


Re: [xwiki-users] UIExtension Access document holding the UIExtension object

2016-02-05 Thread vinc...@massol.net



On 5 Feb 2016 at 09:35:36, Gerritjan Koekkoek (gerrit...@cdlsworld.org) wrote:

Hi, 
Using: 
So you could have params like: 

name = $doc.documentReference (or $doc.fullName) 
title = $doc.title 
creator = $doc.creatorReference 
hasAdmin = $services.authorization.checkAccess(‘ADMIN’, $doc.authorReference) 

>> Looks like the $doc is retrieving the current doc and not the Document that 
>> holds the UIExtension object? 
Any way to access the holding Document? 


$xwiki.getDocument(‘name of uiextension doc’)

-Vincent




 
From: users <users-boun...@xwiki.org> on behalf of vinc...@massol.net 
<vinc...@massol.net> 
Sent: 04 February 2016 15:32 
To: XWiki Users 
Subject: Re: [xwiki-users] UIExtension Access document holding the UIExtension 
object 

Hi, 


On 3 Feb 2016 at 11:24:22, Gerritjan Koekkoek 
(gerrit...@cdlsworld.org(mailto:gerrit...@cdlsworld.org)) wrote: 

> Hi, 
> 
> 
> We have pages having ONE UIExtension objects of XWiki.UIExtensionClass. 
> 
> Using as 
> 
> $services.uix.getExtensions('dashboard.mainMenu.items',{'sortByParameter' : 
> 'displayorder'}) 
> 
> 
> With a #foreach loop we can access all the parameters. (and other extension 
> properties) 
> 
> But is it possible to get the page information (Name, Title, Creator, Rights) 
> 
> 
> The use case is that we want a dynamic menu based on that information? 
> 
> 
> The following did not give the desired result: 
> 
> #set($dashboardMenuItems = 
> $services.uix.getExtensions('dashboard.mainMenu.items',{'sortByParameter' : 
> 'displayorder'}) ) 
> 
> #foreach($dashboardMenuItem in $dashboardMenuItems) 
> 
> #set($dashboardMenuItemDocument = $xwiki.getDocument($dashboardMenuItem)) 
> 
> #end 


I guess you already know about 
http://extensions.xwiki.org/xwiki/bin/view/Extension/UIExtension+Module ? 

$services.uix.getExtensions returns a List and UIExtension is: 

public interface UIExtension 
{ 
/** 
* @return the ID of this extension 
*/ 
String getId(); 

/** 
* @return the ID of the extension point this UI extension is providing an 
extension for 
*/ 
String getExtensionPointId(); 

/** 
* A map of parameters provided by the extension. When providing a new Extension 
Point the developer must document 
* the list of parameters he requires. 
* 
* @return a map of parameters provided by the extension 
*/ 
Map<String, String> getParameters(); 

/** 
* @return the {@link Block} that must be rendered when this extension is 
displayed 
*/ 
Block execute(); 
} 


So as you can see there’s no way to return anything else here. 

However, when you define your UIX you can pass any number of parameters (which 
are retrieved through calling getParameters() on UIExtension). 

So you could have params like: 

name = $doc.documentReference (or $doc.fullName) 
title = $doc.title 
creator = $doc.creatorReference 
hasAdmin = $services.authorization.checkAccess(‘ADMIN’, $doc.authorReference) 
... 

Hope it helps, 
-Vincent 


> Gerritjan Koekkoek 
> Vader van Rai Koekkoek (cdls) en voorzitter vereniging CdLS 
> Visit our website 
> Facebook 
> email 

___ 
users mailing list 
users@xwiki.org 
http://lists.xwiki.org/mailman/listinfo/users 
___ 
users mailing list 
users@xwiki.org 
http://lists.xwiki.org/mailman/listinfo/users 
___
users mailing list
users@xwiki.org
http://lists.xwiki.org/mailman/listinfo/users


Re: [xwiki-users] UIExtension Access document holding the UIExtension object

2016-02-05 Thread Gerritjan Koekkoek


From: users <users-boun...@xwiki.org> on behalf of vinc...@massol.net 
<vinc...@massol.net>
Sent: 05 February 2016 09:53
To: XWiki Users
Subject: Re: [xwiki-users] UIExtension Access document holding the UIExtension 
object

On 5 Feb 2016 at 09:44:08, Gerritjan Koekkoek 
(gerrit...@cdlsworld.org(mailto:gerrit...@cdlsworld.org)) wrote:

>
> 
> From: users on behalf of vinc...@massol.net
> Sent: 05 February 2016 09:39
> To: XWiki Users
> Subject: Re: [xwiki-users] UIExtension Access document holding the 
> UIExtension object
>
> On 5 Feb 2016 at 09:35:36, Gerritjan Koekkoek (gerrit...@cdlsworld.org) wrote:
>
> Hi,
> Using:
> So you could have params like:
>
> name = $doc.documentReference (or $doc.fullName)
> title = $doc.title
> creator = $doc.creatorReference
> hasAdmin = $services.authorization.checkAccess(‘ADMIN’, $doc.authorReference)
>
> >> Looks like the $doc is retrieving the current doc and not the Document 
> >> that holds the UIExtension object?
> Any way to access the holding Document?
>
>
> $xwiki.getDocument(‘name of uiextension doc’)
>
> >>> Thanks, that is indeed the 'simple' solution.
> >>> This requires updating the parameter if you move the page/object: use 
> >>> Case is distributing the app to another wiki


You could open a jira issue to request an improvement.

FWIW and FYI the code is here:
https://github.com/xwiki/xwiki-platform/blob/4533b98fb45a9010198582a7053bc67e0b81b26d/xwiki-platform-core/xwiki-platform-uiextension/xwiki-platform-uiextension-api/src/main/java/org/xwiki/uiextension/internal/WikiUIExtensionParameters.java#L159-L159

>>>> Thanks a lot. It was very helpful. I think the workaround is not too 
>>>> difficult and I think the value of having access to that document 
>>>> meta-information is limited for the typical use-cases of a UIExtension, So 
>>>> a JIRA issue would maybe be too much
My suggested work-around would be to use the ExtensionID; and with that ID 
perform a XWQL query on object of  UIExetensionClass where ExtensionID = 
:ExtensionID(from the uiExtension)
Off course this would require Unique ExtensionID's but that would anyway be a 
good-practice?

Thanks
-Vincent

> ________________
> From: users on behalf of vinc...@massol.net
> Sent: 04 February 2016 15:32
> To: XWiki Users
> Subject: Re: [xwiki-users] UIExtension Access document holding the 
> UIExtension object
>
> Hi,
>
>
> On 3 Feb 2016 at 11:24:22, Gerritjan Koekkoek 
> (gerrit...@cdlsworld.org(mailto:gerrit...@cdlsworld.org)) wrote:
>
> > Hi,
> >
> >
> > We have pages having ONE UIExtension objects of XWiki.UIExtensionClass.
> >
> > Using as
> >
> > $services.uix.getExtensions('dashboard.mainMenu.items',{'sortByParameter' : 
> > 'displayorder'})
> >
> >
> > With a #foreach loop we can access all the parameters. (and other extension 
> > properties)
> >
> > But is it possible to get the page information (Name, Title, Creator, 
> > Rights)
> >
> >
> > The use case is that we want a dynamic menu based on that information?
> >
> >
> > The following did not give the desired result:
> >
> > #set($dashboardMenuItems = 
> > $services.uix.getExtensions('dashboard.mainMenu.items',{'sortByParameter' : 
> > 'displayorder'}) )
> >
> > #foreach($dashboardMenuItem in $dashboardMenuItems)
> >
> > #set($dashboardMenuItemDocument = $xwiki.getDocument($dashboardMenuItem))
> >
> > #end
>
>
> I guess you already know about 
> http://extensions.xwiki.org/xwiki/bin/view/Extension/UIExtension+Module ?
>
> $services.uix.getExtensions returns a List and UIExtension is:
>
> public interface UIExtension
> {
> /**
> * @return the ID of this extension
> */
> String getId();
>
> /**
> * @return the ID of the extension point this UI extension is providing an 
> extension for
> */
> String getExtensionPointId();
>
> /**
> * A map of parameters provided by the extension. When providing a new 
> Extension Point the developer must document
> * the list of parameters he requires.
> *
> * @return a map of parameters provided by the extension
> */
> Map getParameters();
>
> /**
> * @return the {@link Block} that must be rendered when this extension is 
> displayed
> */
> Block execute();
> }
>
>
> So as you can see there’s no way to return anything else here.
>
> However, when you define your UIX you can pass any number of parameters 
> (which are retrieved through calling getParameters() on

Re: [xwiki-users] UIExtension Access document holding the UIExtension object

2016-02-05 Thread Gerritjan Koekkoek
From: users <users-boun...@xwiki.org> on behalf of vinc...@massol.net 
<vinc...@massol.net>
Sent: 05 February 2016 10:25
To: XWiki Users
Subject: Re: [xwiki-users] UIExtension Access document holding the UIExtension 
object

On 5 Feb 2016 at 10:15:56, Gerritjan Koekkoek 
(gerrit...@cdlsworld.org(mailto:gerrit...@cdlsworld.org)) wrote:

>
> 
> From: users on behalf of vinc...@massol.net
> Sent: 05 February 2016 09:53
> To: XWiki Users
> Subject: Re: [xwiki-users] UIExtension Access document holding the 
> UIExtension object
>
> On 5 Feb 2016 at 09:44:08, Gerritjan Koekkoek 
> (gerrit...@cdlsworld.org(mailto:gerrit...@cdlsworld.org)) wrote:
>
> >
> > 
> > From: users on behalf of vinc...@massol.net
> > Sent: 05 February 2016 09:39
> > To: XWiki Users
> > Subject: Re: [xwiki-users] UIExtension Access document holding the 
> > UIExtension object
> >
> > On 5 Feb 2016 at 09:35:36, Gerritjan Koekkoek (gerrit...@cdlsworld.org) 
> > wrote:
> >
> > Hi,
> > Using:
> > So you could have params like:
> >
> > name = $doc.documentReference (or $doc.fullName)
> > title = $doc.title
> > creator = $doc.creatorReference
> > hasAdmin = $services.authorization.checkAccess(‘ADMIN’, 
> > $doc.authorReference)
> >
> > >> Looks like the $doc is retrieving the current doc and not the Document 
> > >> that holds the UIExtension object?
> > Any way to access the holding Document?
> >
> >
> > $xwiki.getDocument(‘name of uiextension doc’)
> >
> > >>> Thanks, that is indeed the 'simple' solution.
> > >>> This requires updating the parameter if you move the page/object: use 
> > >>> Case is distributing the app to another wiki
>
>
> You could open a jira issue to request an improvement.
>
> FWIW and FYI the code is here:
> https://github.com/xwiki/xwiki-platform/blob/4533b98fb45a9010198582a7053bc67e0b81b26d/xwiki-platform-core/xwiki-platform-uiextension/xwiki-platform-uiextension-api/src/main/java/org/xwiki/uiextension/internal/WikiUIExtensionParameters.java#L159-L159
>
> >>>> Thanks a lot. It was very helpful. I think the workaround is not too 
> >>>> difficult and I think the value of having access to that document 
> >>>> meta-information is limited for the typical use-cases of a UIExtension, 
> >>>> So a JIRA issue would maybe be too much
> My suggested work-around would be to use the ExtensionID; and with that ID 
> perform a XWQL query on object of UIExetensionClass where ExtensionID = 
> :ExtensionID(from the uiExtension)
> Off course this would require Unique ExtensionID's but that would anyway be a 
> good-practice?

yes

>>>>>> Maybe I have a use case for a Jira issue ? Could you evaluate if you 
>>>>>> consider it a bug:
I have set the rights of a page holding an UIExtension object to DENY VIEW to 
$guest
The UIExtension will still show:
#set($dashboardMenuItems = 
$services.uix.getExtensions('dashboard.mainMenu.items',{'sortByParameter' : 
'displayorder'}) )

But then performing the XWQL to access meta information of that page works as 
expected: it does not return any information

But I consider it kind of kinky that the object is showing in the 
getExtensions? Or not?

- Gerritjan

-Vincent

> Thanks
> -Vincent
>
> > 
> > From: users on behalf of vinc...@massol.net
> > Sent: 04 February 2016 15:32
> > To: XWiki Users
> > Subject: Re: [xwiki-users] UIExtension Access document holding the 
> > UIExtension object
> >
> > Hi,
> >
> >
> > On 3 Feb 2016 at 11:24:22, Gerritjan Koekkoek 
> > (gerrit...@cdlsworld.org(mailto:gerrit...@cdlsworld.org)) wrote:
> >
> > > Hi,
> > >
> > >
> > > We have pages having ONE UIExtension objects of XWiki.UIExtensionClass.
> > >
> > > Using as
> > >
> > > $services.uix.getExtensions('dashboard.mainMenu.items',{'sortByParameter' 
> > > : 'displayorder'})
> > >
> > >
> > > With a #foreach loop we can access all the parameters. (and other 
> > > extension properties)
> > >
> > > But is it possible to get the page information (Name, Title, Creator, 
> > > Rights)
> > >
> > >
> > > The use case is that we want a dynamic menu based on that information?
> > >
> > >
> > > The following did not give the desired result:
> > >
> > > #set($dashboardMenuItems = 
> > > $services.u

Re: [xwiki-users] UIExtension Access document holding the UIExtension object

2016-02-05 Thread vinc...@massol.net
 




On 5 Feb 2016 at 10:15:56, Gerritjan Koekkoek 
(gerrit...@cdlsworld.org(mailto:gerrit...@cdlsworld.org)) wrote:

>  
> 
> From: users on behalf of vinc...@massol.net  
> Sent: 05 February 2016 09:53
> To: XWiki Users
> Subject: Re: [xwiki-users] UIExtension Access document holding the 
> UIExtension object
>  
> On 5 Feb 2016 at 09:44:08, Gerritjan Koekkoek 
> (gerrit...@cdlsworld.org(mailto:gerrit...@cdlsworld.org)) wrote:
>  
> >
> > 
> > From: users on behalf of vinc...@massol.net
> > Sent: 05 February 2016 09:39
> > To: XWiki Users
> > Subject: Re: [xwiki-users] UIExtension Access document holding the 
> > UIExtension object
> >
> > On 5 Feb 2016 at 09:35:36, Gerritjan Koekkoek (gerrit...@cdlsworld.org) 
> > wrote:
> >
> > Hi,
> > Using:
> > So you could have params like:
> >
> > name = $doc.documentReference (or $doc.fullName)
> > title = $doc.title
> > creator = $doc.creatorReference
> > hasAdmin = $services.authorization.checkAccess(‘ADMIN’, 
> > $doc.authorReference)
> >
> > >> Looks like the $doc is retrieving the current doc and not the Document 
> > >> that holds the UIExtension object?
> > Any way to access the holding Document?
> >
> >
> > $xwiki.getDocument(‘name of uiextension doc’)
> >
> > >>> Thanks, that is indeed the 'simple' solution.
> > >>> This requires updating the parameter if you move the page/object: use 
> > >>> Case is distributing the app to another wiki
>  
>  
> You could open a jira issue to request an improvement.
>  
> FWIW and FYI the code is here:
> https://github.com/xwiki/xwiki-platform/blob/4533b98fb45a9010198582a7053bc67e0b81b26d/xwiki-platform-core/xwiki-platform-uiextension/xwiki-platform-uiextension-api/src/main/java/org/xwiki/uiextension/internal/WikiUIExtensionParameters.java#L159-L159
>  
> >>>> Thanks a lot. It was very helpful. I think the workaround is not too 
> >>>> difficult and I think the value of having access to that document 
> >>>> meta-information is limited for the typical use-cases of a UIExtension, 
> >>>> So a JIRA issue would maybe be too much
> My suggested work-around would be to use the ExtensionID; and with that ID 
> perform a XWQL query on object of UIExetensionClass where ExtensionID = 
> :ExtensionID(from the uiExtension)
> Off course this would require Unique ExtensionID's but that would anyway be a 
> good-practice?

yes

-Vincent

> Thanks
> -Vincent
>  
> > 
> > From: users on behalf of vinc...@massol.net
> > Sent: 04 February 2016 15:32
> > To: XWiki Users
> > Subject: Re: [xwiki-users] UIExtension Access document holding the 
> > UIExtension object
> >
> > Hi,
> >
> >
> > On 3 Feb 2016 at 11:24:22, Gerritjan Koekkoek 
> > (gerrit...@cdlsworld.org(mailto:gerrit...@cdlsworld.org)) wrote:
> >
> > > Hi,
> > >
> > >
> > > We have pages having ONE UIExtension objects of XWiki.UIExtensionClass.
> > >
> > > Using as
> > >
> > > $services.uix.getExtensions('dashboard.mainMenu.items',{'sortByParameter' 
> > > : 'displayorder'})
> > >
> > >
> > > With a #foreach loop we can access all the parameters. (and other 
> > > extension properties)
> > >
> > > But is it possible to get the page information (Name, Title, Creator, 
> > > Rights)
> > >
> > >
> > > The use case is that we want a dynamic menu based on that information?
> > >
> > >
> > > The following did not give the desired result:
> > >
> > > #set($dashboardMenuItems = 
> > > $services.uix.getExtensions('dashboard.mainMenu.items',{'sortByParameter' 
> > > : 'displayorder'}) )
> > >
> > > #foreach($dashboardMenuItem in $dashboardMenuItems)
> > >
> > > #set($dashboardMenuItemDocument = $xwiki.getDocument($dashboardMenuItem))
> > >
> > > #end
> >
> >
> > I guess you already know about 
> > http://extensions.xwiki.org/xwiki/bin/view/Extension/UIExtension+Module ?
> >
> > $services.uix.getExtensions returns a List and UIExtension is:
> >
> > public interface UIExtension
> > {
> > /**
> > * @return the ID of this extension
> > */
> > String getId();
> >
> > /**
> > * @return the ID of the extension point this UI extension is providing an 
> &g

Re: [xwiki-users] UIExtension Access document holding the UIExtension object

2016-02-05 Thread Gerritjan Koekkoek


From: users <users-boun...@xwiki.org> on behalf of vinc...@massol.net 
<vinc...@massol.net>
Sent: 05 February 2016 09:39
To: XWiki Users
Subject: Re: [xwiki-users] UIExtension Access document holding the UIExtension 
object

On 5 Feb 2016 at 09:35:36, Gerritjan Koekkoek (gerrit...@cdlsworld.org) wrote:

Hi,
Using:
So you could have params like:

name = $doc.documentReference (or $doc.fullName)
title = $doc.title
creator = $doc.creatorReference
hasAdmin = $services.authorization.checkAccess(‘ADMIN’, $doc.authorReference)

>> Looks like the $doc is retrieving the current doc and not the Document that 
>> holds the UIExtension object?
Any way to access the holding Document?


$xwiki.getDocument(‘name of uiextension doc’)

>>> Thanks, that is indeed the 'simple' solution.
>>> This requires updating the parameter if you move the page/object: use Case 
>>> is distributing the app to another wiki




From: users <users-boun...@xwiki.org> on behalf of vinc...@massol.net 
<vinc...@massol.net> 
Sent: 04 February 2016 15:32
To: XWiki Users
Subject: Re: [xwiki-users] UIExtension Access document holding the UIExtension 
object

Hi,


On 3 Feb 2016 at 11:24:22, Gerritjan Koekkoek 
(gerrit...@cdlsworld.org(mailto:gerrit...@cdlsworld.org)) wrote:

> Hi,
> 
> 
> We have pages having ONE UIExtension objects of XWiki.UIExtensionClass.
> 
> Using as
> 
> $services.uix.getExtensions('dashboard.mainMenu.items',{'sortByParameter' : 
> 'displayorder'})
> 
> 
> With a #foreach loop we can access all the parameters. (and other extension 
> properties)
> 
> But is it possible to get the page information (Name, Title, Creator, Rights)
> 
> 
> The use case is that we want a dynamic menu based on that information?
> 
> 
> The following did not give the desired result:
> 
> #set($dashboardMenuItems = 
> $services.uix.getExtensions('dashboard.mainMenu.items',{'sortByParameter' : 
> 'displayorder'}) )
> 
> #foreach($dashboardMenuItem in $dashboardMenuItems)
> 
> #set($dashboardMenuItemDocument = $xwiki.getDocument($dashboardMenuItem))
> 
> #end


I guess you already know about 
http://extensions.xwiki.org/xwiki/bin/view/Extension/UIExtension+Module ?

$services.uix.getExtensions returns a List and UIExtension is:

public interface UIExtension
{ 
/**
* @return the ID of this extension
*/
String getId();

/**
* @return the ID of the extension point this UI extension is providing an 
extension for
*/
String getExtensionPointId();

/**
* A map of parameters provided by the extension. When providing a new Extension 
Point the developer must document
* the list of parameters he requires.
*
* @return a map of parameters provided by the extension
*/
Map<String, String> getParameters();

/**
* @return the {@link Block} that must be rendered when this extension is 
displayed
*/
Block execute();
} 


So as you can see there’s no way to return anything else here.

However, when you define your UIX you can pass any number of parameters (which 
are retrieved through calling getParameters() on UIExtension).

So you could have params like:

name = $doc.documentReference (or $doc.fullName)
title = $doc.title
creator = $doc.creatorReference
hasAdmin = $services.authorization.checkAccess(‘ADMIN’, $doc.authorReference)
...

Hope it helps,
-Vincent


> Gerritjan Koekkoek
> Vader van Rai Koekkoek (cdls) en voorzitter vereniging CdLS
> Visit our website
> Facebook
> email

___
users mailing list
users@xwiki.org
http://lists.xwiki.org/mailman/listinfo/users
___
users mailing list
users@xwiki.org
http://lists.xwiki.org/mailman/listinfo/users
___
users mailing list
users@xwiki.org
http://lists.xwiki.org/mailman/listinfo/users
___
users mailing list
users@xwiki.org
http://lists.xwiki.org/mailman/listinfo/users


Re: [xwiki-users] UIExtension Access document holding the UIExtension object

2016-02-05 Thread vinc...@massol.net
 




On 5 Feb 2016 at 09:44:08, Gerritjan Koekkoek 
(gerrit...@cdlsworld.org(mailto:gerrit...@cdlsworld.org)) wrote:

>  
> 
> From: users on behalf of vinc...@massol.net  
> Sent: 05 February 2016 09:39
> To: XWiki Users
> Subject: Re: [xwiki-users] UIExtension Access document holding the 
> UIExtension object
>  
> On 5 Feb 2016 at 09:35:36, Gerritjan Koekkoek (gerrit...@cdlsworld.org) wrote:
>  
> Hi,
> Using:
> So you could have params like:
>  
> name = $doc.documentReference (or $doc.fullName)
> title = $doc.title
> creator = $doc.creatorReference
> hasAdmin = $services.authorization.checkAccess(‘ADMIN’, $doc.authorReference)
>  
> >> Looks like the $doc is retrieving the current doc and not the Document 
> >> that holds the UIExtension object?
> Any way to access the holding Document?
>  
>  
> $xwiki.getDocument(‘name of uiextension doc’)
>  
> >>> Thanks, that is indeed the 'simple' solution.
> >>> This requires updating the parameter if you move the page/object: use 
> >>> Case is distributing the app to another wiki


You could open a jira issue to request an improvement.

FWIW and FYI the code is here:
https://github.com/xwiki/xwiki-platform/blob/4533b98fb45a9010198582a7053bc67e0b81b26d/xwiki-platform-core/xwiki-platform-uiextension/xwiki-platform-uiextension-api/src/main/java/org/xwiki/uiextension/internal/WikiUIExtensionParameters.java#L159-L159

Thanks
-Vincent

> ________
> From: users on behalf of vinc...@massol.net  
> Sent: 04 February 2016 15:32
> To: XWiki Users
> Subject: Re: [xwiki-users] UIExtension Access document holding the 
> UIExtension object
>  
> Hi,
>  
>  
> On 3 Feb 2016 at 11:24:22, Gerritjan Koekkoek 
> (gerrit...@cdlsworld.org(mailto:gerrit...@cdlsworld.org)) wrote:
>  
> > Hi,
> >  
> >  
> > We have pages having ONE UIExtension objects of XWiki.UIExtensionClass.
> >  
> > Using as
> >  
> > $services.uix.getExtensions('dashboard.mainMenu.items',{'sortByParameter' : 
> > 'displayorder'})
> >  
> >  
> > With a #foreach loop we can access all the parameters. (and other extension 
> > properties)
> >  
> > But is it possible to get the page information (Name, Title, Creator, 
> > Rights)
> >  
> >  
> > The use case is that we want a dynamic menu based on that information?
> >  
> >  
> > The following did not give the desired result:
> >  
> > #set($dashboardMenuItems = 
> > $services.uix.getExtensions('dashboard.mainMenu.items',{'sortByParameter' : 
> > 'displayorder'}) )
> >  
> > #foreach($dashboardMenuItem in $dashboardMenuItems)
> >  
> > #set($dashboardMenuItemDocument = $xwiki.getDocument($dashboardMenuItem))
> >  
> > #end
>  
>  
> I guess you already know about 
> http://extensions.xwiki.org/xwiki/bin/view/Extension/UIExtension+Module ?
>  
> $services.uix.getExtensions returns a List and UIExtension is:
>  
> public interface UIExtension
> {  
> /**
> * @return the ID of this extension
> */
> String getId();
>  
> /**
> * @return the ID of the extension point this UI extension is providing an 
> extension for
> */
> String getExtensionPointId();
>  
> /**
> * A map of parameters provided by the extension. When providing a new 
> Extension Point the developer must document
> * the list of parameters he requires.
> *
> * @return a map of parameters provided by the extension
> */
> Map getParameters();
>  
> /**
> * @return the {@link Block} that must be rendered when this extension is 
> displayed
> */
> Block execute();
> }  
>  
>  
> So as you can see there’s no way to return anything else here.
>  
> However, when you define your UIX you can pass any number of parameters 
> (which are retrieved through calling getParameters() on UIExtension).
>  
> So you could have params like:
>  
> name = $doc.documentReference (or $doc.fullName)
> title = $doc.title
> creator = $doc.creatorReference
> hasAdmin = $services.authorization.checkAccess(‘ADMIN’, $doc.authorReference)
> ...
>  
> Hope it helps,
> -Vincent
>  
>  
> > Gerritjan Koekkoek
> > Vader van Rai Koekkoek (cdls) en voorzitter vereniging CdLS
> > Visit our website
> > Facebook
> > email
>  
___
users mailing list
users@xwiki.org
http://lists.xwiki.org/mailman/listinfo/users


Re: [xwiki-users] UIExtension Access document holding the UIExtension object

2016-02-04 Thread vinc...@massol.net
Hi,


On 3 Feb 2016 at 11:24:22, Gerritjan Koekkoek 
(gerrit...@cdlsworld.org(mailto:gerrit...@cdlsworld.org)) wrote:

> Hi,
>  
>  
> We have pages having ONE UIExtension objects of XWiki.UIExtensionClass.
>  
> Using as
>  
> $services.uix.getExtensions('dashboard.mainMenu.items',{'sortByParameter' : 
> 'displayorder'})
>  
>  
> With a #foreach loop we can access all the parameters. (and other extension 
> properties)
>  
> But is it possible to get the page information (Name, Title, Creator, Rights)
>  
>  
> The use case is that we want a dynamic menu based on that information?
>  
>  
> The following did not give the desired result:
>  
> #set($dashboardMenuItems = 
> $services.uix.getExtensions('dashboard.mainMenu.items',{'sortByParameter' : 
> 'displayorder'}) )
>  
> #foreach($dashboardMenuItem in $dashboardMenuItems)
>  
> #set($dashboardMenuItemDocument = $xwiki.getDocument($dashboardMenuItem))
>  
> #end


I guess you already know about 
http://extensions.xwiki.org/xwiki/bin/view/Extension/UIExtension+Module ?

$services.uix.getExtensions returns a List and UIExtension is:

public interface UIExtension
{
    /**
     * @return the ID of this extension
     */
    String getId();

    /**
     * @return the ID of the extension point this UI extension is providing an 
extension for
     */
    String getExtensionPointId();

    /**
     * A map of parameters provided by the extension. When providing a new 
Extension Point the developer must document
     * the list of parameters he requires.
     *
      * @return a map of parameters provided by the extension
     */
    Map getParameters();

    /**
     * @return the {@link Block} that must be rendered when this extension is 
displayed
     */
    Block execute();
}


So as you can see there’s no way to return anything else here.

However, when you define your UIX you can pass any number of parameters (which 
are retrieved through calling getParameters() on UIExtension).

So you could have params like:

name = $doc.documentReference (or $doc.fullName)
title = $doc.title
creator = $doc.creatorReference
hasAdmin = $services.authorization.checkAccess(‘ADMIN’, $doc.authorReference)
...

Hope it helps,
-Vincent


> Gerritjan Koekkoek
> Vader van Rai Koekkoek (cdls) en voorzitter vereniging CdLS
> Visit our website
> Facebook
> email

___
users mailing list
users@xwiki.org
http://lists.xwiki.org/mailman/listinfo/users


[xwiki-users] UIExtension Access document holding the UIExtension object

2016-02-03 Thread Gerritjan Koekkoek
Hi,


We have pages having ONE UIExtension objects of XWiki.UIExtensionClass.

Using as

$services.uix.getExtensions('dashboard.mainMenu.items',{'sortByParameter' : 
'displayorder'})


With a #foreach loop we can access all the parameters. (and other extension 
properties)

But is it possible to get the page information (Name, Title, Creator, Rights)


The use case is that we want a dynamic menu based on that information?


The following did not give the desired result:

#set($dashboardMenuItems = 
$services.uix.getExtensions('dashboard.mainMenu.items',{'sortByParameter' : 
'displayorder'}) )

#foreach($dashboardMenuItem in $dashboardMenuItems)

  #set($dashboardMenuItemDocument = $xwiki.getDocument($dashboardMenuItem))

#end


Gerritjan Koekkoek
Vader van Rai Koekkoek (cdls) en voorzitter vereniging CdLS
Visit our website
Facebook
email



___
users mailing list
users@xwiki.org
http://lists.xwiki.org/mailman/listinfo/users