package qa.qcri.aidr.manager.controller; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Map; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.propertyeditors.CustomDateEditor; import org.springframework.stereotype.Controller; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import qa.qcri.aidr.manager.dto.UITemplateRequest; import qa.qcri.aidr.manager.exception.AidrException; import qa.qcri.aidr.manager.service.CollectionService; import qa.qcri.aidr.manager.service.UITemplateService; /** * Created with IntelliJ IDEA. * User: jlucas * Date: 3/23/14 * Time: 1:59 PM * To change this template use File | Settings | File Templates. */ @Controller @RequestMapping("protected/uitemplate") public class UITemplateController extends BaseController { private Logger logger = Logger.getLogger(UITemplateController.class); @Autowired private UITemplateService uiTemplateService; @Autowired private CollectionService collectionService; @InitBinder public void initBinder(WebDataBinder binder) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true)); } @RequestMapping(value = "/updateTemplate.action", method = {RequestMethod.POST}) @ResponseBody public Map<String, Object> updateTemplate(UITemplateRequest uiTemplateRequest) { logger.info("Creating new label in uiTemplate"); try { UITemplateRequest response = uiTemplateService.updateTemplate(uiTemplateRequest); if (response != null){ return getUIWrapper(response, true); } else { return getUIWrapper(false, "Error while creating new ui template in uiTemplate"); } } catch (Exception e) { logger.error("Error while updating UI Template", e); return getUIWrapper(false, e.getMessage()); } } @RequestMapping(value = "/getTemplate.action", method = {RequestMethod.GET}) @ResponseBody public Map<String, Object> getTemplate(long crisisID) { logger.info("get Template for crisisID = " + crisisID); try { logger.info("crisisID :" + crisisID); String response = uiTemplateService.getTemplatesByCrisisID(crisisID); if (response != null){ return getUIWrapper(response, true); } else { return getUIWrapper(false, "Error while getLandingPageTemplate in uiTemplate"); } } catch (Exception e) { logger.error("Error while fetching templates by crisisID: "+crisisID, e); return getUIWrapper(false, e.getMessage()); } } @RequestMapping(value = "/getCrisisChildren.action", method = RequestMethod.GET) @ResponseBody public Map<String,Object> getCrisisChildren(@RequestParam Integer id) throws Exception { try { logger.info("Get Assignable Task is started with crisis id: " + id); getAuthenticatedUserName(); String sVar = uiTemplateService.getCrisisChildrenElement(id); return getUIWrapper(sVar, true); } catch (AidrException e) { logger.error("Error while getting crisis children elements for crisisID: "+id, e); return getUIWrapper(e.getMessage(), false); } } }