Skip to content
Snippets Groups Projects
Commit 8f684dec authored by Bruno Nocera Zanette's avatar Bruno Nocera Zanette
Browse files

Update Municipio option's list based on the Estado

Update Municipio option's list based on the Estado chosen.

Steps:
1) Client sends a request to the server using estado as parameter.

2) Server receives the request, generates the list based on the Estado
and sends as response a complete view/page ("orgaoexecutores/create")
containing that list

3) Client receive the response, processes it to get only the list,
and exchanges the list of the page for the response list.
parent feddc505
No related branches found
No related tags found
No related merge requests found
......@@ -29,4 +29,8 @@ public class Municipio {
public static List<Municipio> findAllMunicipios() {
return entityManager().createQuery("SELECT o FROM Municipio o ORDER BY nome", Municipio.class).getResultList();
}
public static List<Municipio> findAllMunicipiosByUf(String uf) {
return entityManager().createQuery("SELECT o FROM Municipio o WHERE UF="+uf+" ORDER BY nome", Municipio.class).getResultList();
}
}
......@@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import br.ufpr.c3sl.estacaojuventude.Estado;
import br.ufpr.c3sl.estacaojuventude.Municipio;
import br.ufpr.c3sl.estacaojuventude.OrgaoExecutor;
......@@ -63,16 +64,33 @@ public class OrgaoExecutorController {
return "redirect:/orgaoexecutores";
}
@RequestMapping(value = "/{id}", method = RequestMethod.GET, produces = "text/html")
public String get(@PathVariable(value = "id") String uf, @Valid OrgaoExecutor orgaoExecutor, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest) {
repopulateMunicipios(uf, uiModel, orgaoExecutor);
return "municipios/selectmunicipios";
}
void repopulateMunicipios(String uf, Model uiModel, OrgaoExecutor orgaoExecutor) {
List<Municipio> lm = Municipio.findAllMunicipiosByUf(uf);
uiModel.addAttribute("municipios", lm);
}
void populateEditForm(Model uiModel, OrgaoExecutor orgaoExecutor) {
uiModel.addAttribute("orgaoExecutor", orgaoExecutor);
addDateTimeFormatPatterns(uiModel);
List<Municipio> lm = Municipio.findAllMunicipios();
Municipio m = new Municipio();
m.setId((long) 0);
m.setNome("");
lm.add(0, m);
uiModel.addAttribute("municipios", lm);
List<Estado> le = Estado.findAllEstadoes();
Estado e = new Estado();
e.setNome("");
le.add(0, e);
uiModel.addAttribute("estadoes", le);
// List<Municipio> lm = Municipio.findAllMunicipios();
// Municipio m = new Municipio();
// m.setId((long) 0);
// m.setNome("");
// lm.add(0, m);
// uiModel.addAttribute("municipios", lm);
}
}
......@@ -69,6 +69,8 @@ label_br_ufpr_c3sl_estacaojuventude_orgaoexecutor_sigla=Sigla
label_br_ufpr_c3sl_estacaojuventude_orgaoexecutor_site=Site
label_br_ufpr_c3sl_estacaojuventude_orgaoexecutor_telefonecontato=Telefone do contato
label_br_ufpr_c3sl_estacaojuventude_orgaoexecutor_version=Versão
label_br_ufpr_c3sl_estacaojuventude_orgaoexecutor_municipio.uf=UF
label_br_ufpr_c3sl_estacaojuventude_orgaoexecutor_estado=Estado
label_br_ufpr_c3sl_estacaojuventude_programa=Programa
label_br_ufpr_c3sl_estacaojuventude_programa_beneficios=Benefícios Associados
......
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<div xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:form="urn:jsptagdir:/WEB-INF/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:spring="http://www.springframework.org/tags" version="2.0">
<jsp:directive.page contentType="text/html;charset=UTF-8"/>
<jsp:output omit-xml-declaration="yes"/>
<form:create id="fc_br_ufpr_c3sl_estacaojuventude_OrgaoExecutor" modelAttribute="orgaoExecutor" path="/orgaoexecutores" render="${empty dependencies}" z="ySSBiOgc68ijzLxGB8mEHSqYtyU=">
<field:select field="municipio" id="c_br_ufpr_c3sl_estacaojuventude_OrgaoExecutor_municipio" itemValue="id" items="${municipios}" path="/municipios" z="TsmVkI/NlGQHwdhUUjgjQ8bprz4="/>
</form:create>
<form:dependency dependencies="${dependencies}" id="d_br_ufpr_c3sl_estacaojuventude_OrgaoExecutor" render="${not empty dependencies}" z="AAjeOEHmudaMpa7oWwH71C1aVn0="/>
</div>
......@@ -13,4 +13,7 @@
<definition extends="default" name="municipios/update">
<put-attribute name="body" value="/WEB-INF/views/municipios/update.jspx"/>
</definition>
<definition extends="default" name="municipios/selectmunicipios">
<put-attribute name="body" value="/WEB-INF/views/municipios/selectmunicipios.jspx"/>
</definition>
</tiles-definitions>
......@@ -10,11 +10,52 @@
<field:input field="logradouro" id="c_br_ufpr_c3sl_estacaojuventude_OrgaoExecutor_logradouro" z="k/1XFT6R2/obR+osepiqSAJabF8="/>
<field:input field="bairro" id="c_br_ufpr_c3sl_estacaojuventude_OrgaoExecutor_bairro" z="C0AhYYllc9NQKj6P/OsWQ/cbgBs="/>
<field:input field="cep" id="c_br_ufpr_c3sl_estacaojuventude_OrgaoExecutor_cep" widthcss="65px" z="user-managed"/>
<field:select field="uf"
id="c_br_ufpr_c3sl_estacaojuventude_Municipio_uf"
itemValue="id" items="${estadoes}" path="/estados"
z="user-managed"
disableFormBinding="true" />
<field:select field="municipio" id="c_br_ufpr_c3sl_estacaojuventude_OrgaoExecutor_municipio" itemValue="id" items="${municipios}" path="/municipios" z="TsmVkI/NlGQHwdhUUjgjQ8bprz4="/>
<field:input field="contato" id="c_br_ufpr_c3sl_estacaojuventude_OrgaoExecutor_contato" z="N464inkZDRkVnlMA8hpmvvyzs7g="/>
<field:datetime dateTimePattern="${orgaoExecutor_ultimaalteracao_date_format}" field="ultimaAlteracao" id="c_br_ufpr_c3sl_estacaojuventude_OrgaoExecutor_ultimaAlteracao" render="false" z="user-managed"/>
<field:input field="emailContato" id="c_br_ufpr_c3sl_estacaojuventude_OrgaoExecutor_emailContato" validationMessageCode="field_invalid_email" validationRegex="[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}" z="user-managed"/>
<field:input field="telefoneContato" id="c_br_ufpr_c3sl_estacaojuventude_OrgaoExecutor_telefoneContato" mask="(##)####-####" max="13" validationMessageCode="field_invalid_integer" validationRegex="[(][0-9]*[)][0-9]*-[0-9]*" widthcss="85px" z="user-managed"/>
</form:create>
<form:dependency dependencies="${dependencies}" id="d_br_ufpr_c3sl_estacaojuventude_OrgaoExecutor" render="${not empty dependencies}" z="AAjeOEHmudaMpa7oWwH71C1aVn0="/>
<script type="text/javascript">
Spring.addDecoration(new Spring.ElementDecoration({
elementId : '_uf_id',
widgetType : "dijit.form.FilteringSelect",
widgetAttrs : {
onChange : function() {
//ID of the chosen "estado"
uf=document.getElementsByName("uf")[0].value;
//Create and send to server a request of
//the list of "Municipios" that belongs to the "Estado" chosen
xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "orgaoexecutores/"+uf ,false);
xmlhttp.send();
//Create a temporary html document to store the html code
//sent by the server containing the list of "Municipios"
var responseDoc = document.implementation.createHTMLDocument("XMLHttpResponse");
responseDoc.documentElement.innerHTML = xmlhttp.responseText;
//Copy the list of the response to the real page
var PageElem = document.getElementById("_c_br_ufpr_c3sl_estacaojuventude_OrgaoExecutor_municipio_id");
var RespElem = responseDoc.getElementById("_c_br_ufpr_c3sl_estacaojuventude_OrgaoExecutor_municipio_id");
PageElem.innerHTML = RespElem.innerHTML;
}
}
}));
</script>
</div>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment