1
2
3
4
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
21
22
23
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
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 }