diff --git a/api/src/main/resources/messages.properties b/api/src/main/resources/messages.properties index 54f10da4ad..b9407e1b39 100644 --- a/api/src/main/resources/messages.properties +++ b/api/src/main/resources/messages.properties @@ -765,4 +765,7 @@ reporting.createNewLogicDataSet=Create New Logic DataSet reporting.previewLimitedToRandomCohort=Results have been limited to a random cohort of {0} patients reporting.affectedReportDefinitions.label=Affected Reports Definitions reporting.loadAffectedReportDefinitions.label=Load Affected Report Definitions -reporting.noAffectedReportDefs.label=No Affected Report Defifnitions! \ No newline at end of file +reporting.noAffectedReportDefs.label=No Affected Report Defifnitions! + +reporting.nullPropertyValues.error=Empty Property values Entered! +reporting.nullRnderType.error=No render Type Selected! diff --git a/omod/src/main/java/org/openmrs/module/reporting/web/controller/portlet/ReportDesignFormController.java b/omod/src/main/java/org/openmrs/module/reporting/web/controller/portlet/ReportDesignFormController.java index 612e14b37c..9c5abbb243 100644 --- a/omod/src/main/java/org/openmrs/module/reporting/web/controller/portlet/ReportDesignFormController.java +++ b/omod/src/main/java/org/openmrs/module/reporting/web/controller/portlet/ReportDesignFormController.java @@ -16,10 +16,12 @@ import java.util.Set; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.hibernate.PropertyValueException; import org.openmrs.api.context.Context; import org.openmrs.module.htmlwidgets.web.handler.WidgetHandler; import org.openmrs.module.reporting.report.ReportDesign; @@ -51,7 +53,7 @@ public ReportDesignFormController() { } */ @RequestMapping("/module/reporting/reports/saveReportDesign") @SuppressWarnings("unchecked") - public String saveReportDesign(ModelMap model, HttpServletRequest request, + public String saveReportDesign(ModelMap model, HttpServletRequest request, HttpSession sesion, @RequestParam(required=false, value="uuid") String uuid, @RequestParam(required=true, value="name") String name, @RequestParam(required=false, value="description") String description, @@ -62,7 +64,7 @@ public String saveReportDesign(ModelMap model, HttpServletRequest request, ) { ReportService rs = Context.getService(ReportService.class); - + try { ReportDesign design = null; if (StringUtils.isNotEmpty(uuid)) { design = rs.getReportDesignByUuid(uuid); @@ -128,6 +130,10 @@ else if (successUrl.startsWith(pathToRemove)) { } design = rs.saveReportDesign(design); return "redirect:" + successUrl; + }catch(PropertyValueException e) { + sesion.setAttribute(WebConstants.OPENMRS_ERROR_ATTR,"reporting.nullPropertyValues.error"); + return "module/reporting/reports/renderers/defaultReportDesignEditor"; + } } /** diff --git a/omod/src/main/java/org/openmrs/module/reporting/web/reports/ManageReportsController.java b/omod/src/main/java/org/openmrs/module/reporting/web/reports/ManageReportsController.java index d2665a7402..6e62c04d78 100644 --- a/omod/src/main/java/org/openmrs/module/reporting/web/reports/ManageReportsController.java +++ b/omod/src/main/java/org/openmrs/module/reporting/web/reports/ManageReportsController.java @@ -33,6 +33,7 @@ import org.openmrs.module.reporting.report.service.ReportService; import org.openmrs.module.reporting.web.controller.mapping.renderers.RendererMappingHandler; import org.openmrs.util.HandlerUtil; +import org.openmrs.web.WebConstants; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; @@ -40,6 +41,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + import java.io.IOException; import java.util.ArrayList; import java.util.LinkedHashMap; @@ -103,12 +106,12 @@ public ModelMap manageReportDesigns(ModelMap model, * to edit a reportDefinition based on its rendererType. */ @RequestMapping("/module/reporting/reports/renderers/editReportDesign") - public String editReportDesign(ModelMap model, + public String editReportDesign(ModelMap model, HttpSession sesion, @RequestParam(required=true, value="type") Class type, @RequestParam(required=false, value="reportDesignUuid") String reportDesignUuid, @RequestParam(required=false, value="reportDefinitionUuid") String reportDefinitionUuid, @RequestParam(required=false, value="returnUrl") String returnUrl) { - + try { if ( !ObjectUtil.isNull(type) ) { try { RendererMappingHandler handler = HandlerUtil.getPreferredHandler(RendererMappingHandler.class, type); @@ -137,6 +140,10 @@ public String editReportDesign(ModelMap model, url.append("&returnUrl=" + returnUrl); } return "redirect:"+url.toString(); + }catch(NullPointerException e){ + sesion.setAttribute(WebConstants.OPENMRS_ERROR_ATTR,"reporting.nullRnderType.error"); + return "module/reporting/reports/manageReportDesigns"; + } } /** diff --git a/omod/src/main/java/org/openmrs/module/reporting/web/reports/renderers/DelimitedTextReportRendererFormController.java b/omod/src/main/java/org/openmrs/module/reporting/web/reports/renderers/DelimitedTextReportRendererFormController.java index 6e1b999d8c..674ffea2e0 100644 --- a/omod/src/main/java/org/openmrs/module/reporting/web/reports/renderers/DelimitedTextReportRendererFormController.java +++ b/omod/src/main/java/org/openmrs/module/reporting/web/reports/renderers/DelimitedTextReportRendererFormController.java @@ -11,12 +11,15 @@ package org.openmrs.module.reporting.web.reports.renderers; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + import java.util.LinkedHashMap; import java.util.Map; import java.util.Properties; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.hibernate.PropertyValueException; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Controller; @@ -96,7 +99,7 @@ else if (successUrl.startsWith(pathToRemove)) { * @throws InstantiationException */ @RequestMapping("/module/reporting/reports/renderers/saveDelimitedTextReportDesign") - public String saveDelimitedTextReportDesign(ModelMap model, HttpServletRequest request, + public String saveDelimitedTextReportDesign(ModelMap model, HttpServletRequest request, HttpSession sesion, @RequestParam(required=false, value="uuid") String uuid, @RequestParam(required=true, value="name") String name, @RequestParam(required=false, value="description") String description, @@ -110,7 +113,7 @@ public String saveDelimitedTextReportDesign(ModelMap model, HttpServletRequest r ReportService rs = Context.getService(ReportService.class); ReportDesign design = null; Properties delimiters = new Properties(); - +try { if (StringUtils.isNotEmpty(uuid)) { design = rs.getReportDesignByUuid(uuid); } @@ -148,5 +151,10 @@ else if (successUrl.startsWith(pathToRemove)) { } design = rs.saveReportDesign(design); return "redirect:" + successUrl; +}catch(PropertyValueException e) { + sesion.setAttribute(WebConstants.OPENMRS_ERROR_ATTR,"reporting.nullPropertyValues.error"); + return "module/reporting/reports/renderers/delimitedTextReportRenderer"; + +} } } diff --git a/omod/src/main/java/org/openmrs/module/reporting/web/reports/renderers/ExcelReportRendererFormController.java b/omod/src/main/java/org/openmrs/module/reporting/web/reports/renderers/ExcelReportRendererFormController.java index 8840aeb49a..5793fcc551 100644 --- a/omod/src/main/java/org/openmrs/module/reporting/web/reports/renderers/ExcelReportRendererFormController.java +++ b/omod/src/main/java/org/openmrs/module/reporting/web/reports/renderers/ExcelReportRendererFormController.java @@ -18,9 +18,11 @@ import java.util.Set; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.hibernate.PropertyValueException; import org.apache.commons.lang.StringUtils; import org.openmrs.module.reporting.report.renderer.XlsReportRenderer; @@ -111,7 +113,7 @@ else if (successUrl.startsWith(pathToRemove)) { */ @SuppressWarnings("unchecked") @RequestMapping("/module/reporting/reports/renderers/saveExcelReportRenderer") - public String saveExcelReportRenderer(ModelMap model, HttpServletRequest request, + public String saveExcelReportRenderer(ModelMap model, HttpServletRequest request, HttpSession sesion, @RequestParam(required=false, value="uuid") String uuid, @RequestParam(required=true, value="name") String name, @RequestParam(required=false, value="description") String description, @@ -126,7 +128,7 @@ public String saveExcelReportRenderer(ModelMap model, HttpServletRequest request ) throws ClassNotFoundException, InstantiationException, IllegalAccessException { ReportService rs = Context.getService(ReportService.class); ReportDesign design = null; - + try { if (StringUtils.isNotEmpty(uuid)) { design = rs.getReportDesignByUuid(uuid); } @@ -213,5 +215,9 @@ else if (successUrl.startsWith(pathToRemove)) { } design = rs.saveReportDesign(design); return "redirect:" + successUrl; + }catch(PropertyValueException e) { + sesion.setAttribute(WebConstants.OPENMRS_ERROR_ATTR,"reporting.nullPropertyValues.error"); + return "module/reporting/reports/renderers/excelReportRenderer"; + } } } diff --git a/omod/src/main/java/org/openmrs/module/reporting/web/reports/renderers/NonConfigurableReportRendererFormController.java b/omod/src/main/java/org/openmrs/module/reporting/web/reports/renderers/NonConfigurableReportRendererFormController.java index acf49a3613..e4d252820b 100644 --- a/omod/src/main/java/org/openmrs/module/reporting/web/reports/renderers/NonConfigurableReportRendererFormController.java +++ b/omod/src/main/java/org/openmrs/module/reporting/web/reports/renderers/NonConfigurableReportRendererFormController.java @@ -11,9 +11,11 @@ package org.openmrs.module.reporting.web.reports.renderers; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.hibernate.PropertyValueException; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Controller; @@ -79,7 +81,7 @@ else if (successUrl.startsWith(pathToRemove)) { * Saves report design */ @RequestMapping("/module/reporting/reports/renderers/saveNonConfigurableReportRenderer") - public String saveNonConfigurableReportRenderer(ModelMap model, HttpServletRequest request, + public String saveNonConfigurableReportRenderer(ModelMap model, HttpServletRequest request,HttpSession sesion, @RequestParam(required=false, value="uuid") String uuid, @RequestParam(required=true, value="name") String name, @RequestParam(required=false, value="description") String description, @@ -89,7 +91,7 @@ public String saveNonConfigurableReportRenderer(ModelMap model, HttpServletReque ){ ReportService rs = Context.getService(ReportService.class); ReportDesign design = null; - + try { if (StringUtils.isNotEmpty(uuid)) { design = rs.getReportDesignByUuid(uuid); } @@ -112,5 +114,9 @@ else if (successUrl.startsWith(pathToRemove)) { } design = rs.saveReportDesign(design); return "redirect:" + successUrl; + }catch(PropertyValueException e){ + sesion.setAttribute(WebConstants.OPENMRS_ERROR_ATTR,"reporting.nullPropertyValues.error"); + return "module/reporting/reports/renderers/nonConfigurableReportRenderer"; + } } } diff --git a/omod/src/main/java/org/openmrs/module/reporting/web/reports/renderers/TextTemplateFormController.java b/omod/src/main/java/org/openmrs/module/reporting/web/reports/renderers/TextTemplateFormController.java index b49e41adb0..44c6718eae 100644 --- a/omod/src/main/java/org/openmrs/module/reporting/web/reports/renderers/TextTemplateFormController.java +++ b/omod/src/main/java/org/openmrs/module/reporting/web/reports/renderers/TextTemplateFormController.java @@ -10,6 +10,7 @@ package org.openmrs.module.reporting.web.reports.renderers; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; import java.io.ByteArrayOutputStream; import java.io.UnsupportedEncodingException; @@ -24,6 +25,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.hibernate.PropertyValueException; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -125,7 +127,7 @@ else if (successUrl.startsWith(pathToRemove)) { * @throws UnsupportedEncodingException */ @RequestMapping("/module/reporting/reports/renderers/saveTextTemplateReportRendererDesign") - public String saveTextTemplateReportRendererDesign(ModelMap model, HttpServletRequest request, + public String saveTextTemplateReportRendererDesign(ModelMap model, HttpServletRequest request, HttpSession sesion, @RequestParam(required=false, value="uuid") String uuid, @RequestParam(required=true, value="name") String name, @RequestParam(required=false, value="description") String description, @@ -138,7 +140,7 @@ public String saveTextTemplateReportRendererDesign(ModelMap model, HttpServletRe ReportService rs = Context.getService(ReportService.class); ReportDesign design = null; ReportDesignResource designResource = new ReportDesignResource(); - + try { if (StringUtils.isNotEmpty(uuid)) { design = rs.getReportDesignByUuid(uuid); } @@ -171,6 +173,10 @@ else if (successUrl.startsWith(pathToRemove)) { design = rs.saveReportDesign(design); return "redirect:" + successUrl; + }catch(PropertyValueException e){ + sesion.setAttribute(WebConstants.OPENMRS_ERROR_ATTR,"reporting.nullPropertyValues.error"); + return "module/reporting/reports/renderers/textTemplateReportRenderer"; + } } @ModelAttribute( "expSupportedTypes" )