/**
*
*/
package net.conselldemallorca.helium.webapp.mvc;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import net.conselldemallorca.helium.core.model.service.PersonaService;
import net.conselldemallorca.helium.webapp.mvc.util.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
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.support.SessionStatus;
/**
* Controlador per la gestiĆ³ d'entorns
*
* @author Limit Tecnologies <limit@limit.es>
*/
@Controller
public class PersonaConsultaController extends BaseController {
public static final String VARIABLE_SESSIO_COMMAND = "consultaPersonesCommand";
private PersonaService personaService;
@Autowired
public PersonaConsultaController(
PersonaService personaService) {
this.personaService = personaService;
}
@RequestMapping(value = "/persona/consulta.html", method = RequestMethod.GET)
public String consultaGet(
HttpServletRequest request,
HttpSession session,
@RequestParam(value = "page", required = false) String page,
@RequestParam(value = "sort", required = false) String sort,
@RequestParam(value = "dir", required = false) String dir,
@RequestParam(value = "objectsPerPage", required = false) String objectsPerPage,
ModelMap model) {
PersonaConsultaCommand command = (PersonaConsultaCommand)session.getAttribute(VARIABLE_SESSIO_COMMAND);
if (command != null) {
int pagina = (page != null) ? new Integer(page).intValue() : 1;
int firstRow = (pagina - 1) * getObjectsPerPage(objectsPerPage);
boolean isAsc = "asc".equals(dir);
model.addAttribute(
"llistat",
newPaginatedList(
pagina,
sort,
isAsc,
getObjectsPerPage(objectsPerPage),
personaService.countPersonaUsuariFiltre(
command.getCodi(),
command.getNom(),
command.getEmail()),
personaService.findPersonaUsuariPagedAndOrderedFiltre(
sort,
isAsc,
firstRow,
getObjectsPerPage(objectsPerPage),
command.getCodi(),
command.getNom(),
command.getEmail())));
model.addAttribute("command", command);
} else {
model.addAttribute("command", new PersonaConsultaCommand());
}
return "persona/consulta";
}
@RequestMapping(value = "/persona/consulta.html", method = RequestMethod.POST)
public String consultaPost(
HttpServletRequest request,
HttpSession session,
@RequestParam(value = "submit", required = false) String submit,
@ModelAttribute("command") PersonaConsultaCommand command,
BindingResult result,
SessionStatus status,
ModelMap model) {
if ("submit".equals(submit)) {
session.setAttribute(VARIABLE_SESSIO_COMMAND, command);
return "redirect:/persona/consulta.html";
} else if ("clean".equals(submit)) {
session.removeAttribute(VARIABLE_SESSIO_COMMAND);
return "redirect:/persona/consulta.html";
}
return "expedient/consulta";
}
}