/** * */ package net.conselldemallorca.helium.webapp.mvc; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import net.conselldemallorca.helium.core.model.dto.TascaLlistatDto; import net.conselldemallorca.helium.core.model.hibernate.Entorn; import net.conselldemallorca.helium.core.model.service.AlertaService; import net.conselldemallorca.helium.core.model.service.EntornService; import net.conselldemallorca.helium.core.model.service.PermissionService; import net.conselldemallorca.helium.core.model.service.TascaService; import net.conselldemallorca.helium.core.security.ExtendedPermission; import net.conselldemallorca.helium.v3.core.api.service.AdminService; import net.conselldemallorca.helium.webapp.mvc.util.BaseController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.acls.model.Permission; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; /** * Controlador per a la pĂ gina inicial * * @author Limit Tecnologies <limit@limit.es> */ @Controller public class IndexController extends BaseController { private EntornService entornService; private TascaService tascaService; private AlertaService alertaService; private PermissionService permissionService; private AdminService adminService; @Autowired public IndexController( EntornService entornService, TascaService tascaService, AlertaService alertaService, PermissionService permissionService, AdminService adminService) { this.entornService = entornService; this.tascaService = tascaService; this.alertaService = alertaService; this.permissionService = permissionService; this.adminService = adminService; } @RequestMapping(value = "/index", method = RequestMethod.GET) public String index( HttpServletRequest request, ModelMap model) { return "redirect:/v3/expedient"; } @RequestMapping(value = "/index26", method = RequestMethod.GET) public String index26( HttpServletRequest request, ModelMap model) { Entorn entorn = getEntornActiu(request); Authentication auth = SecurityContextHolder.getContext().getAuthentication(); if (entorn != null) { adminService.mesuraTemporalIniciar("Index", "general"); model.addAttribute("countPersonaLlistat", tascaService.findCountTasquesPersonalsIndex(entorn.getId())); model.addAttribute("countGrupLlistat", tascaService.findCountTasquesGrupIndex(entorn.getId())); model.addAttribute("alertesCountLlistat", alertaService.countActivesAmbEntornIUsuari(entorn.getId(), auth.getName(), AlertaService.ALERTAS_TODAS)); adminService.mesuraTemporalCalcular("Index", "general"); } else { adminService.mesuraTemporalIniciar("Index sense entorn actiu", "general"); Map<Entorn, List<TascaLlistatDto>> tasquesPersonaEntorn = new HashMap<Entorn, List<TascaLlistatDto>>(); Map<Entorn, List<TascaLlistatDto>> tasquesGrupEntorn = new HashMap<Entorn, List<TascaLlistatDto>>(); Map<Entorn, Object> alertesEntorn = new HashMap<Entorn, Object>(); List<Entorn> entornsActius = entornService.findActius(); permissionService.filterAllowed( entornsActius, Entorn.class, new Permission[] { ExtendedPermission.ADMINISTRATION, ExtendedPermission.READ}); for (Entorn ent: entornsActius) { tasquesPersonaEntorn.put(ent, tascaService.findTasquesPersonalsIndex(ent.getId())); tasquesGrupEntorn.put(ent, tascaService.findTasquesGrupIndex(ent.getId())); alertesEntorn.put(ent, alertaService.countActivesAmbEntornIUsuari(ent.getId(), auth.getName(), AlertaService.ALERTAS_TODAS)); } model.addAttribute("entornsActius", entornsActius); model.addAttribute("tasquesPersonaEntorn", tasquesPersonaEntorn); model.addAttribute("tasquesGrupEntorn", tasquesGrupEntorn); model.addAttribute("alertesCountEntorn", alertesEntorn); adminService.mesuraTemporalCalcular("Index sense entorn actiu", "general"); } return "index"; } }