On Tue, May 29, 2012 at 4:31 PM, Stéphanie Roulland <[email protected]> wrote:
Thank you all for your answers. I have two last questions and everything will be perfect after that :D
When defining my variable "emailcontent" (the body of my email), I want to write a little text with a link to the page (= the source of the event).
Question 1 : Is it possible to have the URL of the document and how ? I've tried ${source.getExternalURL('view')}, but as source is an Object and not a Document, it doens't work at all ...
source is actually a XWikiDocument and not a Document so it's not exactly the same methods. You need to add the XWikiContext object to the method call as second parameter (in case you don't already have it it's the data parameter coming with the event). You can look at https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwik... to get all the method.
Question 2 : How can I make a line break on the text of my mail ? I've tried <br/>, \n, %0D%0A, but nothing work ... Do you have a solution ?
Again, thank you everyone for your answers. Stéphanie
2012/5/29 Thomas Mortagne <[email protected]>
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] <
> > 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 _______________________________________________ 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 _______________________________________________ users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users
-- Thomas Mortagne