View Javadoc

1   /**
2    * - Digitalis Internal Framework v2.0 - (C) 2007, Digitalis Informatica. Distribuicao e Gestao de Informatica, Lda.
3    * Estrada de Paco de Arcos num.9 - Piso -1 2780-666 Paco de Arcos Telefone: (351) 21 4408990 Fax: (351) 21 4408999
4    * http://www.digitalis.pt
5    */
6   package pt.digitalis.dif.presentation.entities.system.error;
7   
8   import pt.digitalis.dif.controller.interfaces.IDIFContext;
9   import pt.digitalis.dif.dem.annotations.entities.StageDefinition;
10  import pt.digitalis.dif.dem.annotations.parameter.Parameter;
11  import pt.digitalis.dif.dem.annotations.presentation.OnAJAX;
12  import pt.digitalis.dif.dem.annotations.stage.Context;
13  import pt.digitalis.dif.dem.annotations.stage.View;
14  import pt.digitalis.dif.dem.annotations.stage.controller.DispatcherMode;
15  import pt.digitalis.dif.persistentactions.pool.MailPersistentPool;
16  import pt.digitalis.dif.utils.mail.MailAction;
17  import pt.digitalis.dif.utils.mail.MailType;
18  
19  /**
20   * The default DiF Error page
21   * 
22   * @author Pedro Viegas <a href="mailto:pviegas@digitalis.pt">pviegas@digitalis.pt</a>
23   * @created Dec 20, 2007
24   */
25  @StageDefinition(name = "Error Stage", service = "errorhandlingservice")
26  @View(target = "internal/dynamicErrorStage.jsp")
27  @DispatcherMode(authenticate = false, authorize = false)
28  public class ErrorStage {
29  
30      /**  */
31      @Parameter
32      protected String body;
33  
34      /**  */
35      @Parameter
36      protected String content;
37  
38      /**  */
39      @Context
40      IDIFContext context;
41  
42      /**  */
43      @Parameter(id = "email")
44      protected String destinationEmail;
45  
46      /**  */
47      @Parameter
48      protected String title;
49  
50      /**
51       * @return T if the report was sent
52       */
53      @OnAJAX("reportissue")
54      public Boolean sendErrorReport()
55      {
56          StringBuffer mailBody = new StringBuffer();
57          if (body != null && !"".equals(body))
58          {
59              mailBody.append("<h1>" + title + "</h1>\n");
60              mailBody.append(body);
61              mailBody.append("\n<br /><br />\n");
62          }
63          mailBody.append(content);
64  
65          MailAction mail = new MailAction();
66          mail.setSubject("[DIF:IssueReport] " + title.trim());
67          mail.setAddressTo(destinationEmail);
68          mail.setBody(mailBody.toString());
69          mail.setType(MailType.HTML);
70  
71          MailPersistentPool.getPool().addAction(mail);
72  
73          return true;
74      }
75  }