On Tue, May 29, 2012 at 2:17 PM, Stéphanie Roulland <[email protected]> wrote:
I don't know how I do that, but it works :D
I have an other question : what is the difference between these two events : DocumentUpdateEvent() and DocumentSaveEvent() ?
That's actually old deprecated events (and indeed the naming was not very good). The new events are: org.xwiki.observation.event.DocumentUpdateEvent -> org.xwiki.bridge.event.DocumentUpdatedEvent org.xwiki.observation.event.DocumentSaveEvent -> org.xwiki.bridge.event.DocumentCreatedEvent I'm sure the new names are a bit more clear ;)
Thanks, Stéphanie
2012/5/29 Stéphanie Roulland <[email protected]>
I've only one page called "EventListener" with this code :
{{groovy}} import org.xwiki.observation.* import org.xwiki.observation.event.* import com.xpn.xwiki.web.* import com.xpn.xwiki.* class LoggingEventListener implements EventListener{ def xwiki def context LoggingEventListener(xwiki, context) { this.xwiki = xwiki this.context = context } String getName() { // The unique name of this event listener return "logging" } List<Event> getEvents() { // The list of events this listener listens to return Arrays.asList(new DocumentSaveEvent()) } // Called by the Observation Manager when an event matches the list of events returned // by getEvents()
void onEvent(Event event, Object source, Object data) { // Prevent infinite recursion since in this example we log to wiki page which // triggers a document change... :) if (source.fullName != "Main.Logger") { def sender = context.user.substring(6) def emailcc = xwiki.null def emailbcc = xwiki.null def pageattachments = [] def emailcontent = "ceci est un test du mail" def result = xwiki.mailsender.sendHtmlMessage("${sender}", " [email protected]", emailcc, emailbcc, "Test du mail", emailcontent, document.getContent(), pageattachments)
def document = xwiki.getDocument("Main.Logger") document.setContent("ça marche Sender : ${sender} / Content : ${emailcontent}")
document.save("Logging event", true) } }} // Register against the Observation Manager def observation = Utils.getComponent(ObservationManager.class) observation.removeListener("logging") def listener = new LoggingEventListener(xwiki, xcontext) observation.addListener(listener) {{/groovy}}
Have I forgotten something ?
Thanks, Stéphanie 2012/5/29 Vincent Massol <[email protected]>
On May 29, 2012, at 1:22 PM, Stéphanie wrote:
I'm really sorry, I don't understand all this kind of specific words ^^ Do you want the entire code ? Or what do you want exactly ?
Sorry I meant Observation Manager, not Component Manager. See http://platform.xwiki.org/xwiki/bin/view/DevGuide/GroovyNotificationTutorial
Thanks -Vincent
In any case, thanks for your answer, Stéphanie
2012/5/29 vmassol [via XWiki] <[email protected]
On May 29, 2012, at 1:07 PM, Stéphanie Roulland wrote:
Hello,
Thank you for your answer, but I'm sorry, I don't understand what you mean by CM.
Component Manager.
-Vincent
Thanks, Stéphanie
2012/5/29 Vincent Massol <[hidden email]<
http://user/SendEmail.jtp?type=node&node=7579201&i=0>> >>
> FYI I've just done this in a training I gave last week and it worked > nicely. > > Can you show us the code you've used to register the event listener > against the CM? > > Thanks > -Vincent > > On May 29, 2012, at 9:12 AM, Stéphanie wrote: > >> Hello everyone, >> >> I'm trying to send an automatic email and this is the idea I have
had.
>> >> I used the "Groovy Notification Tutorial" >> ( >
http://platform.xwiki.org/xwiki/bin/view/DevGuide/GroovyNotificationTutorial
> ) >> and instead of writing in a file, I try to send an email. >> >> This is my code (I only copy the method onEvent, I didn't change the > rest) : >> >> void onEvent(Event event, Object source, Object data) >> { >> // Prevent infinite recursion since in this example we log to wiki >> page which >> // triggers a document change... :) >> if (source.fullName != "Main.Logger") { >> def sender = context.user.substring(6) >> def emailcc = xwiki.null >> def emailbcc = xwiki.null >> def pageattachments = [] >> def emailcontent = "Test" >> def result = > xwiki.mailsender.sendHtmlMessage("${sender}", >> "[hidden email] < http://user/SendEmail.jtp?type=node&node=7579201&i=1>", emailcc, emailbcc, "Test du mail", emailcontent, >> document.getContent(), pageattachments) >> def document = xwiki.getDocument("Main.Logger") >> document.setContent("Sender : ${sender} / Content : >> ${emailcontent}") >> document.save("Logging event", true) >> } >> } >> >> But when I try this, nothing happened. I don't have any error message so > I >> don't know if I make something wrong. >> >> Do you have an idea of how doing this ? >> >> Thank you very much for your future answer, >> Stéphanie
users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users
-- Stéphanie ROULLAND 06.74.85.37.90 ------------------------- Contrat de professionnalisation DCNS Ingénieur domaine collaboratif 02.29.05.42.23 ------------------------- Elève ingénieur ENIB 3ème année cycle ingénieur Option informatique
-- Stéphanie ROULLAND 06.74.85.37.90 ------------------------- Contrat de professionnalisation DCNS Ingénieur domaine collaboratif 02.29.05.42.23 ------------------------- Elève ingénieur ENIB 3ème année cycle ingénieur Option informatique _______________________________________________ users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users
-- Thomas Mortagne