use of org.activityinfo.shared.report.model.Report in project activityinfo by bedatadriven.
the class ReportMailerTest method testEmail.
private void testEmail(String locale) {
User user = new User();
user.setEmail("akbertram@gmail.com");
user.setName("alex");
user.setLocale(locale);
ReportSubscription sub = new ReportSubscription();
sub.setTemplate(new ReportDefinition());
sub.getTemplate().setId(5040);
sub.setUser(user);
sub.setEmailDelivery(EmailDelivery.WEEKLY);
sub.setEmailDay(1);
Report report = new Report();
report.setTitle("Rapport RRM Mensuelle");
String text = ReportMailerHelper.composeTextEmail(sub, report);
System.out.println(text);
Assert.assertTrue("user name is present", text.contains(user.getName()));
Assert.assertTrue("link is correct without comma", text.contains("#report/5040"));
}
use of org.activityinfo.shared.report.model.Report in project activityinfo by bedatadriven.
the class ReportJsonFactory method deserialize.
@Override
public Report deserialize(String json) {
if (json == null || json.length() < 1) {
return null;
}
JsonObject jsonObject = (JsonObject) parser.parse(json);
Report report = new Report();
report.setId(jsonObject.get("id").getAsInt());
JsonElement title = jsonObject.get("title");
if (title != null) {
report.setTitle(title.getAsString());
}
JsonElement sheetTitle = jsonObject.get("sheetTitle");
if (sheetTitle != null) {
report.setSheetTitle(sheetTitle.getAsString());
}
JsonElement description = jsonObject.get("description");
if (description != null) {
report.setDescription(description.getAsString());
}
JsonElement fileName = jsonObject.get("fileName");
if (fileName != null) {
report.setFileName(fileName.getAsString());
}
JsonObject filter = jsonObject.get("filter").getAsJsonObject();
if (filter != null) {
report.setFilter(decodeFilter(filter));
}
JsonArray elements = jsonObject.get("elements").getAsJsonArray();
if (elements.size() > 0) {
report.setElements(decodeElements(elements));
}
return report;
}
use of org.activityinfo.shared.report.model.Report in project activityinfo by bedatadriven.
the class ReportServlet method doGet.
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// first, authenticate the response
AuthenticationDAO authDAO = injector.getInstance(AuthenticationDAO.class);
Authentication auth = authDAO.findById(req.getParameter("auth"));
if (auth == null) {
resp.setStatus(500);
return;
}
// now apply the user filters
EntityManager em = injector.getInstance(EntityManager.class);
DomainFilters.applyUserFilter(auth.getUser(), em);
// load the report definition by id
ReportDefinition template = em.find(ReportDefinition.class, Integer.parseInt(req.getParameter("id")));
Report report = null;
try {
report = ReportParserJaxb.parseXml(template.getXml());
} catch (Exception e) {
e.printStackTrace();
resp.setStatus(500);
}
// parse parameters
DateRange dateRange = new DateRange();
if (req.getParameter("minDate") != null) {
dateRange.setMinDate(new Date(Long.parseLong(req.getParameter("minDate"))));
}
if (req.getParameter("maxDate") != null) {
dateRange.setMaxDate(new Date(Long.parseLong(req.getParameter("maxDate"))));
}
// generate the report content
ReportGenerator gtor = injector.getInstance(ReportGenerator.class);
gtor.generate(auth.getUser(), report, null, dateRange);
// render in the requested format
RenderElement.Format format = RenderElement.Format.valueOf(req.getParameter("format"));
RendererFactory factory = injector.getInstance(RendererFactory.class);
Renderer renderer = factory.get(format);
// composefile name
String filename = report.getContent().getFileName() + renderer.getFileSuffix();
resp.setContentType(renderer.getMimeType());
resp.addHeader("Content-Disposition", "attachment; filename=" + filename);
try {
renderer.render(report, resp.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
resp.setStatus(500);
}
}
use of org.activityinfo.shared.report.model.Report in project activityinfo by bedatadriven.
the class ReportParserJaxb method parseXML.
public static Report parseXML(Reader reader) throws JAXBException {
Unmarshaller um = CONTEXT.get().createUnmarshaller();
um.setEventHandler(new javax.xml.bind.helpers.DefaultValidationEventHandler());
return (Report) um.unmarshal(reader);
}
use of org.activityinfo.shared.report.model.Report in project activityinfo by bedatadriven.
the class ExcelReportRenderer method render.
@Override
public void render(ReportElement element, OutputStream os) throws IOException {
HSSFWorkbook book = new HSSFWorkbook();
if (element instanceof Report) {
render(book, (Report) element);
} else if (element instanceof PivotTableReportElement) {
pivotTableRenderer.render(book, (PivotTableReportElement) element);
} else if (element instanceof TableElement) {
tableRenderer.render(book, (TableElement) element);
} else if (element instanceof PivotChartReportElement) {
chartRenderer.render(book, (PivotChartReportElement) element);
}
book.write(os);
}
Aggregations