From 614aeb40f3c8193a68fd8f910bfe23652097be45 Mon Sep 17 00:00:00 2001
From: "Israel B. Sant'Anna" <ibsa14@inf.ufpr.br>
Date: Thu, 14 Aug 2014 11:05:08 -0300
Subject: [PATCH] Fixed update and show bug on OrgaoExecutor

Signed-off-by: Israel B. Sant'Anna <ibsa14@inf.ufpr.br>
---
 .../web/OrgaoExecutorController.java          | 24 ++++++----
 .../WEB-INF/views/orgaoexecutores/create.jspx |  6 ++-
 .../WEB-INF/views/orgaoexecutores/update.jspx | 46 +++++++++++++++++++
 3 files changed, 67 insertions(+), 9 deletions(-)

diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/OrgaoExecutorController.java b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/OrgaoExecutorController.java
index 7d781b3..7da52ce 100644
--- a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/OrgaoExecutorController.java
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/OrgaoExecutorController.java
@@ -7,6 +7,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.validation.Valid;
 
 import org.springframework.roo.addon.web.mvc.controller.scaffold.RooWebScaffold;
+import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.validation.BindingResult;
@@ -19,6 +20,7 @@ import br.ufpr.c3sl.estacaojuventude.Estado;
 import br.ufpr.c3sl.estacaojuventude.Municipio;
 import br.ufpr.c3sl.estacaojuventude.OcorrenciaMunicipal;
 import br.ufpr.c3sl.estacaojuventude.OrgaoExecutor;
+import br.ufpr.c3sl.estacaojuventude.enums.TipoStatus;
 
 @RequestMapping("/orgaoexecutores")
 @Controller
@@ -65,8 +67,8 @@ 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) {
+	@RequestMapping(params = "uf", method = RequestMethod.GET, produces = "text/html")
+	public String get(@RequestParam(value = "uf", required = false) String uf, @Valid OrgaoExecutor orgaoexecutor, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest) {
 		repopulateMunicipios(uf, uiModel, orgaoexecutor);
 		return "orgaoexecutores/selectmunicipios";
 	}
@@ -86,12 +88,18 @@ public class OrgaoExecutorController {
         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);
+        if (orgaoExecutor.getMunicipio() != null){
+        	long estadoId = orgaoExecutor.getMunicipio().getUf().getId();
+        	repopulateMunicipios(estadoId+"", uiModel, orgaoExecutor);
+        	uiModel.addAttribute("estadoid", estadoId);
+        }
+        
+	        /*List<Municipio> lm = Municipio.findAllMunicipios();
+	        Municipio m = new Municipio();
+	        m.setId((long) 0);
+	        m.setNome("");
+	        lm.add(0, m);
+	        uiModel.addAttribute("municipios", lm);*/
     }
 	
 }
diff --git a/src/main/webapp/WEB-INF/views/orgaoexecutores/create.jspx b/src/main/webapp/WEB-INF/views/orgaoexecutores/create.jspx
index 980cd2b..c461417 100644
--- a/src/main/webapp/WEB-INF/views/orgaoexecutores/create.jspx
+++ b/src/main/webapp/WEB-INF/views/orgaoexecutores/create.jspx
@@ -37,10 +37,14 @@
 					//ID of the chosen "estado"
  					uf=document.getElementsByName("uf")[0].value;
 					
+ 					if (!window.location.origin)
+  					   window.location.origin = window.location.protocol+"//"+window.location.host;
+ 					RequestBaseUrl = window.location.origin + "/participatorio" + "/orgaoexecutores";
+ 					
 					//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.open("GET", RequestBaseUrl+"?uf=" + uf ,false);
 					xmlhttp.send();
 
 					//Create a temporary html document to store the html code
diff --git a/src/main/webapp/WEB-INF/views/orgaoexecutores/update.jspx b/src/main/webapp/WEB-INF/views/orgaoexecutores/update.jspx
index 37f5ab8..9e6d653 100644
--- a/src/main/webapp/WEB-INF/views/orgaoexecutores/update.jspx
+++ b/src/main/webapp/WEB-INF/views/orgaoexecutores/update.jspx
@@ -10,10 +10,56 @@
         <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: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"/>
         <field:datetime dateTimePattern="${orgaoExecutor_ultimaalteracao_date_format}" field="ultimaAlteracao" id="c_br_ufpr_c3sl_estacaojuventude_OrgaoExecutor_ultimaAlteracao" render="false" z="user-managed"/>
     </form:update>
+    
+	<script type="text/javascript">
+		if("${estadoid}"!=""){
+			document.getElementById('_uf_id').value="${estadoid}";
+		}
+		
+		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;
+					
+ 					if (!window.location.origin)
+  					   window.location.origin = window.location.protocol+"//"+window.location.host;
+ 					RequestBaseUrl = window.location.origin + "/participatorio" + "/orgaoexecutores";
+ 					
+					//Create and send to server a request of 
+					//the list of "Municipios" that belongs to the "Estado" chosen 
+					xmlhttp = new XMLHttpRequest();
+					xmlhttp.open("GET", RequestBaseUrl+"?uf=" + 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>
+
-- 
GitLab