On Wed, Jan 3, 2018 at 4:30 PM, Thomas Mortagne
<thomas.mortagne(a)xwiki.com> wrote:
On Wed, Jan 3, 2018 at 4:02 PM, Guillaume Delhumeau
<guillaume.delhumeau(a)xwiki.com> wrote:
Hi devs.
In XWiki, we have the ability to create wiki components. It means that each
extension can define a custom XClass which is used to create a component
when a corresponding XObject exists.
Sometimes, this XObject contains a textarea where the developer could write
velocity code. The velocity code is rendered, and the result is parsed in
order to complete other actions. For example, velocity can render a
boolean, or a list of documents, etc... The reason why Velocity is used is
because it does not require programming rights. On the other-side, it can
only return a string: the rendered content.
Actually this is not true, you can "return" anything you want using
$output.setValue($someStuff).
My use-case is to generate a specific list of users when an event is
triggered, to perform some actions with these users.
Currently, we have no recommended practice about this
"velocity-rendered-fields".
That's what I propose to always use JSON when velocity is used to render
data in a wiki component. The reason is that JSON is standard and easy to
parse.
Use case:
In the Event Stream module [1], the XClass
"XWiki.EventStream.Code.EventClass" is used to trigger custom events when
some event occurs.
Example: if a DocumentUpdatedEvent is triggered and that event contains an
XObject of type "Meeting", you can send a new "Meeting Created"
event.
There is a "Validation Expression" field used to determine either or not
the custom event should be sent. Now I need to add an other field to
determine which user should receive the event notifications. For example:
if userA and userB have been invited to MeetingC, I need to send an event
"Meeting Created" only for user A and user B.
Here is my +1,
Thanks,
[1]
http://extensions.xwiki.org/xwiki/bin/view/Extension/Event%20Stream%20Modul…
--
Guillaume Delhumeau (guillaume.delhumeau(a)xwiki.com)
Research & Development Engineer at XWiki SAS
Committer on the
XWiki.org project
--
Thomas Mortagne