[xwiki-users] Fw : Re: How can I get event object through a form
Did you try using searchEvents and building an HQL that retrieves the Event object with the given IDs? Then, once you get the Event objects, you can use deleteActivityEvent on each of them.
That is what I was affraid of ... hql query. I though there was a simplier way like xcontext stuff or convert id in event object ;-) Thxs I will give a try (must found id field and table)
I try to make an Admin form to delete some event from activity stream.
I manage:
- to list events in a checkbox list
- to delete an event
#foreach ($MonEvent in $xwiki.activitystream.getEventsForUser($MyUserr, false, 300, 0))
#if ($MonEvent.getPage()=='MySpace.MyPage')
* event deletion
$xwiki.activitystream.deleteActivityEvent($MonEvent)
#end
#end
- but I didn't manage to pass an event id/object with form to my deleteActivityEvent method :-(
It doesn't work because when I get my event through $request.getParameterValues('IdEntry'), event ID is transformed in text and is not event object anymore.
I use velocity with xwiki 7.0.1 and my page contains this code:
**********************************
{{velocity}}
{{html}}
## My form to select events to delete
<form method="get" id="DelActivityStream" onsubmit="return confirm('Are you sure?')">
<div class="container">
#foreach ($MonEvent in $xwiki.activitystream.getEvents(false, 200, 0 ))
##1. AAA $MonEvent - $MonEvent.getPage()
#set($MycheckBox="<input type='checkbox' name='IdEntry' value='")
#set($MycheckBox=$MycheckBox + "$MonEvent")
#set($MycheckBox=$MycheckBox + "'/>" + "$MonEvent.getPage() - $MonEvent.getDisplayDate() - $MonEvent.getType() - $MonEvent.getPriority() - $MonEvent.getUser() - $MonEvent.getEventId() - $MonEvent.getEvent() " + "<br />")
$MycheckBox
#end
## <input type="checkbox" name="IdEntry" value="${doc.fullName}"/> This is checkbox <br />
</div>
<span class="buttonwrapper"><input type="submit" value="Supprimer les entrées du flux d'activité" class="button"/></span>
</form>
{{/html}}
## get select events ID
$request.getParameterValues('IdEntry')
## i want to delete these ID
#foreach ($MyValue in $request.getParameterValues('IdEntry'))
* try to delete this event with ID: $MyValue $MyValue.getPage()
## $MyValue.getPage() it doesn't work because $MyValue is not event anymore
## delete event method
:-(
#end
**********************************
To resume, do you have a way to give an event object to my deleteActivityEvent with form+velocity (because deleteActivityEvent accept only event object) ?
Thxs
Pascal B
_______________________________________________
users mailing list
Also note that the AS has a buitin feature to delete old events, see your xwiki.cfg file: #-# Number of days the events should be kept (0 or any negative value: infinite duration) #-# Note: if this value is greater than 0 a scheduler job will be created, this job will then be fired every week to #-# delete events older than the configured value. #-# Default: 0 # xwiki.plugin.activitystream.daystokeepevents=0 If you still need to delete event manually you could check the code executed by the scheduler job. Thanks -Vincent On 19 Jan 2016 at 07:33:20, Pascal BASTIEN ([email protected]) wrote:
Did you try using searchEvents and building an HQL that retrieves the Event object with the given IDs? Then, once you get the Event objects, you can use deleteActivityEvent on each of them.
That is what I was affraid of ... hql query. I though there was a simplier way like xcontext stuff or convert id in event object ;-) Thxs I will give a try (must found id field and table)
I try to make an Admin form to delete some event from activity stream.
I manage:
- to list events in a checkbox list
- to delete an event
#foreach ($MonEvent in $xwiki.activitystream.getEventsForUser($MyUserr, false, 300, 0))
#if ($MonEvent.getPage()=='MySpace.MyPage')
* event deletion
$xwiki.activitystream.deleteActivityEvent($MonEvent)
#end
#end
- but I didn't manage to pass an event id/object with form to my deleteActivityEvent method :-(
It doesn't work because when I get my event through $request.getParameterValues('IdEntry'), event ID is transformed in text and is not event object anymore.
I use velocity with xwiki 7.0.1 and my page contains this code:
**********************************
{{velocity}}
{{html}}
## My form to select events to delete
<form method="get" id="DelActivityStream" onsubmit="return confirm('Are you sure?')">
<div class="container">
#foreach ($MonEvent in $xwiki.activitystream.getEvents(false, 200, 0 ))
##1. AAA $MonEvent - $MonEvent.getPage()
#set($MycheckBox="<input type='checkbox' name='IdEntry' value='")
#set($MycheckBox=$MycheckBox + "$MonEvent")
#set($MycheckBox=$MycheckBox + "'/>" + "$MonEvent.getPage() - $MonEvent.getDisplayDate() - $MonEvent.getType() - $MonEvent.getPriority() - $MonEvent.getUser() - $MonEvent.getEventId() - $MonEvent.getEvent() " + "<br />")
$MycheckBox
#end
## <input type="checkbox" name="IdEntry" value="${doc.fullName}"/> This is checkbox <br />
</div>
<span class="buttonwrapper"><input type="submit" value="Supprimer les entrées du flux d'activité" class="button"/></span>
</form>
{{/html}}
## get select events ID
$request.getParameterValues('IdEntry')
## i want to delete these ID
#foreach ($MyValue in $request.getParameterValues('IdEntry'))
* try to delete this event with ID: $MyValue $MyValue.getPage()
## $MyValue.getPage() it doesn't work because $MyValue is not event anymore
## delete event method
:-(
#end
**********************************
To resume, do you have a way to give an event object to my deleteActivityEvent with form+velocity (because deleteActivityEvent accept only event object) ?
Thxs
Pascal B
_______________________________________________
users mailing list
_______________________________________________ users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users
participants (2)
-
Pascal BASTIEN -
vincent@massol.net