package net.conselldemallorca.helium.webapp.v3.controller; import java.util.Calendar; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import net.conselldemallorca.helium.core.util.GlobalProperties; import net.conselldemallorca.helium.v3.core.api.service.TerminiService; import net.conselldemallorca.helium.webapp.mvc.util.BaseController; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.PathVariable; 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; /** * Controlador per a la de configuraciĆ³ de festius. * * @author Limit Tecnologies <limit@limit.es> */ @Controller @RequestMapping("/v3/configuracio/festius") public class ConfiguracioFestiusController extends BaseController { @Resource(name = "terminiServiceV3") private TerminiService terminiService; @RequestMapping(method = RequestMethod.GET) public String get( HttpServletRequest request, @RequestParam(value = "any", required = false) Integer any, Model model) { Calendar cal = Calendar.getInstance(); int anyActual = (any != null) ? any : cal.get(Calendar.YEAR); int[] darrerDiaMes = new int[12]; int[] diaSetmanaIniciMes = new int[12]; for (int i = 0; i < 12; i++) { cal.set(Calendar.YEAR, anyActual); cal.set(Calendar.MONTH, i); cal.set(Calendar.DAY_OF_MONTH, 1); diaSetmanaIniciMes[i] = (cal.get(Calendar.DAY_OF_WEEK) + 6) % 7; if (diaSetmanaIniciMes[i] == 0) diaSetmanaIniciMes[i] = 7; cal.add(Calendar.MONTH, 1); cal.add(Calendar.DAY_OF_MONTH, -1); darrerDiaMes[i] = cal.get(Calendar.DAY_OF_MONTH); } model.addAttribute( "darrerDiaMes", darrerDiaMes); model.addAttribute( "diaSetmanaIniciMes", diaSetmanaIniciMes); model.addAttribute( "anyInicial", new Integer(anyActual - 5)); model.addAttribute( "anyActual", new Integer(anyActual)); model.addAttribute( "anyFinal", new Integer(anyActual + 5)); model.addAttribute( "festius", terminiService.findFestiuAmbAny(anyActual)); String nolabsStr = GlobalProperties.getInstance().getProperty("app.calendari.nolabs"); if (nolabsStr != null) { model.addAttribute( "nolabs", nolabsStr.split(",")); } return "v3/festius"; } @RequestMapping(value = "/create/{dia}/{mes}/{any}", method = RequestMethod.GET) @ResponseBody public boolean crearFestiu( HttpServletRequest request, @PathVariable(value = "dia") String dia, @PathVariable(value = "mes") String mes, @PathVariable(value = "any") String any, ModelMap model) { try { terminiService.createFestiu(dia + "/" + mes + "/" + any); return true; } catch (Exception ex) { return false; } } @RequestMapping(value = "/delete/{dia}/{mes}/{any}", method = RequestMethod.GET) @ResponseBody public boolean esborrarFestiu( HttpServletRequest request, @PathVariable(value = "dia") String dia, @PathVariable(value = "mes") String mes, @PathVariable(value = "any") String any, ModelMap model) { try { terminiService.deleteFestiu(dia + "/" + mes + "/" + any); return true; } catch (Exception ex) { return false; } } // private static final Log logger = LogFactory.getLog(ConfiguracioFestiusController.class); }