From e97adceac80d8d71b2a59b0f7becfc9235fb6f2a Mon Sep 17 00:00:00 2001 From: Fabiano Sluzarski <fs09@inf.ufpr.br> Date: Fri, 14 Feb 2014 10:50:54 -0200 Subject: [PATCH] =?UTF-8?q?adicionado=20*=20nas=20labels=20dos=20campos=20?= =?UTF-8?q?obrigatorios,=20tooltips=20aparecem=20onmouseover=20e=20arrumad?= =?UTF-8?q?a=20convers=C3=A3o=20para=20string=20de=20org=C3=A3o=20executor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../estacaojuventude/OcorrenciaMunicipal.java | 8 ++++---- ...plicationConversionServiceFactoryBean.java | 6 ++++-- .../web/LocalizacaoController.java | 9 ++++++++- .../web/MunicipioController.java | 9 +++++++-- .../web/OcorrenciaMunicipalController.java | 17 ++++++++++++++-- .../web/UsuarioController.java | 2 +- .../WEB-INF/tags/form/fields/datetime.tagx | 12 +++++++++-- .../WEB-INF/tags/form/fields/editor.tagx | 3 +++ .../WEB-INF/tags/form/fields/input.tagx | 20 ++++++++++++++----- .../WEB-INF/tags/form/fields/reference.tagx | 3 +++ .../WEB-INF/tags/form/fields/select.tagx | 18 +++++++++++++---- .../WEB-INF/tags/form/fields/textarea.tagx | 17 ++++++++++++---- 12 files changed, 97 insertions(+), 27 deletions(-) diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/OcorrenciaMunicipal.java b/src/main/java/br/ufpr/c3sl/estacaojuventude/OcorrenciaMunicipal.java index 7591aef..dbe0b38 100644 --- a/src/main/java/br/ufpr/c3sl/estacaojuventude/OcorrenciaMunicipal.java +++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/OcorrenciaMunicipal.java @@ -65,19 +65,19 @@ public class OcorrenciaMunicipal { @DateTimeFormat(style = "S-") private Date ultimaAlteracao; - public static List<Programa> findAllOcorrenciasCandidatos() { + public static List<OcorrenciaMunicipal> findAllOcorrenciasCandidatos() { return entityManager().createNativeQuery("SELECT * FROM Ocorrencia_Municipal WHERE status = 'Candidato'", OcorrenciaMunicipal.class).getResultList(); } - public static List<Programa> findAllOcorrenciasEfetivos() { + public static List<OcorrenciaMunicipal> findAllOcorrenciasEfetivos() { return entityManager().createNativeQuery("SELECT * FROM Ocorrencia_Municipal WHERE status = 'Efetivo'", OcorrenciaMunicipal.class).getResultList(); } - public static List<Programa> findAllOcorrenciasRejeitados() { + public static List<OcorrenciaMunicipal> findAllOcorrenciasRejeitados() { return entityManager().createNativeQuery("SELECT * FROM Ocorrencia_Municipal WHERE status = 'Rejeitado'", OcorrenciaMunicipal.class).getResultList(); } - public static List<Programa> findMinhasOcorrencias() { + public static List<OcorrenciaMunicipal> findMinhasOcorrencias() { String login = SecurityContextHolder.getContext().getAuthentication().getName(); return entityManager().createNativeQuery("SELECT * FROM Ocorrencia_Municipal o, Usuario u WHERE o.usuario = u.id and o.status = 'Candidato' and u.login = '" + login + "'", OcorrenciaMunicipal.class).getResultList(); } diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/ApplicationConversionServiceFactoryBean.java b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/ApplicationConversionServiceFactoryBean.java index d25f119..770c5ed 100644 --- a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/ApplicationConversionServiceFactoryBean.java +++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/ApplicationConversionServiceFactoryBean.java @@ -41,7 +41,7 @@ public class ApplicationConversionServiceFactoryBean extends FormattingConversio return new org.springframework.core.convert.converter.Converter<br.ufpr.c3sl.estacaojuventude.OrgaoExecutor, java.lang.String>() { public String convert(OrgaoExecutor orgaoExecutor) { if (orgaoExecutor.getSigla() == null) - return new StringBuilder().append("").append(" - ").append(orgaoExecutor.getNome()).toString(); + return new StringBuilder().append(orgaoExecutor.getNome()).toString(); return new StringBuilder().append(orgaoExecutor.getSigla()).append(" - ").append(orgaoExecutor.getNome()).toString(); } }; @@ -76,7 +76,7 @@ public class ApplicationConversionServiceFactoryBean extends FormattingConversio public Converter<Localizacao, String> getLocalizacaoToStringConverter() { return new org.springframework.core.convert.converter.Converter<br.ufpr.c3sl.estacaojuventude.Localizacao, java.lang.String>() { public String convert(Localizacao localizacao) { - return new StringBuilder().append(localizacao.getOcorrencia().getProgramaVinculado().getNomeOficial()).append(" - ").append(localizacao.getOcorrencia().getMunicipio().getNome()).append(" - ").append(localizacao.getLocal()).toString(); + return new StringBuilder().append(localizacao.getOcorrencia().getProgramaVinculado().getNomeOficial()).append(" - ").append(localizacao.getOcorrencia().getMunicipio().getNome()).toString(); } }; } @@ -84,6 +84,8 @@ public class ApplicationConversionServiceFactoryBean extends FormattingConversio public Converter<OcorrenciaMunicipal, String> getOcorrenciaMunicipalToStringConverter() { return new org.springframework.core.convert.converter.Converter<br.ufpr.c3sl.estacaojuventude.OcorrenciaMunicipal, java.lang.String>() { public String convert(OcorrenciaMunicipal ocorrenciaMunicipal) { + if (ocorrenciaMunicipal.getProgramaVinculado() == null || ocorrenciaMunicipal.getMunicipio() == null) + return new StringBuilder().append("").toString(); return new StringBuilder().append(ocorrenciaMunicipal.getProgramaVinculado().getNomeOficial()).append(" - ").append(ocorrenciaMunicipal.getMunicipio().getNome()).toString(); } }; diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/LocalizacaoController.java b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/LocalizacaoController.java index 22eadcc..5a17796 100644 --- a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/LocalizacaoController.java +++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/LocalizacaoController.java @@ -2,6 +2,7 @@ package br.ufpr.c3sl.estacaojuventude.web; import java.util.Arrays; import java.util.Calendar; +import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; @@ -184,7 +185,13 @@ public class LocalizacaoController { void populateEditForm(Model uiModel, Localizacao localizacao) { uiModel.addAttribute("localizacao", localizacao); - uiModel.addAttribute("ocorrenciamunicipais", OcorrenciaMunicipal.findAllOcorrenciaMunicipals()); + + List<OcorrenciaMunicipal> lo = OcorrenciaMunicipal.findAllOcorrenciasEfetivos(); + OcorrenciaMunicipal o = new OcorrenciaMunicipal(); + o.setId((long) 0); + lo.add(0, o); + uiModel.addAttribute("ocorrenciamunicipais", lo); + uiModel.addAttribute("usuarios", Usuario.findAllUsuarios()); uiModel.addAttribute("tipostatuses", Arrays.asList(TipoStatus.values())); uiModel.addAttribute("situacaos", Arrays.asList(Situacao.values())); diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/MunicipioController.java b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/MunicipioController.java index 9aa60e4..c376988 100644 --- a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/MunicipioController.java +++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/MunicipioController.java @@ -66,9 +66,14 @@ public class MunicipioController { void populateEditForm(Model uiModel, Municipio municipio) { uiModel.addAttribute("municipio", municipio); addDateTimeFormatPatterns(uiModel); - uiModel.addAttribute("estadoes", Estado.findAllEstadoes()); - uiModel.addAttribute("municipios", Municipio.findAllMunicipios()); + List<Estado> le = Estado.findAllEstadoes(); + Estado e = new Estado(); + e.setNome(""); + le.add(0, e); + uiModel.addAttribute("estadoes", le); + + //uiModel.addAttribute("municipios", Municipio.findAllMunicipios()); List<Municipio> lm = Municipio.findAllMunicipios(); Municipio m = new Municipio(); m.setNome(""); diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/OcorrenciaMunicipalController.java b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/OcorrenciaMunicipalController.java index 32f446b..1260c82 100644 --- a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/OcorrenciaMunicipalController.java +++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/OcorrenciaMunicipalController.java @@ -188,9 +188,22 @@ public class OcorrenciaMunicipalController { void populateEditForm(Model uiModel, OcorrenciaMunicipal ocorrenciaMunicipal) { uiModel.addAttribute("ocorrenciaMunicipal", ocorrenciaMunicipal); uiModel.addAttribute("localizacaos", Localizacao.findAllLocalizacaos()); - uiModel.addAttribute("municipios", Municipio.findAllMunicipios()); + + List<Municipio> lm = Municipio.findAllMunicipios(); + Municipio m = new Municipio(); + m.setId((long) 0); + m.setNome(""); + lm.add(0, m); + uiModel.addAttribute("municipios", lm); + uiModel.addAttribute("orgaoexecutores", OrgaoExecutor.findAllOrgaoExecutors()); - uiModel.addAttribute("programas", Programa.findAllProgramasEfetivos()); + + List<Programa> lp = Programa.findAllProgramasEfetivos(); + Programa p = new Programa(); + p.setId((long) 0); + lp.add(0, p); + uiModel.addAttribute("programas", lp); + uiModel.addAttribute("tipostatuses", Arrays.asList(TipoStatus.values())); uiModel.addAttribute("situacaos", Arrays.asList(Situacao.values())); uiModel.addAttribute("usuarios", Usuario.findAllUsuarios()); diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/UsuarioController.java b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/UsuarioController.java index e782c77..af5872d 100644 --- a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/UsuarioController.java +++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/UsuarioController.java @@ -75,7 +75,7 @@ public class UsuarioController { void populateEditForm(Model uiModel, Usuario usuario) { uiModel.addAttribute("usuario", usuario); - uiModel.addAttribute("tipousuarios", Arrays.asList(TipoUsuario.Usuario, TipoUsuario.Administrador/*TipoUsuario.values()*/)); + uiModel.addAttribute("tipousuarios", Arrays.asList(" ", TipoUsuario.Usuario, TipoUsuario.Administrador/*TipoUsuario.values()*/)); } @RequestMapping(value = "changepassword", method = RequestMethod.GET) diff --git a/src/main/webapp/WEB-INF/tags/form/fields/datetime.tagx b/src/main/webapp/WEB-INF/tags/form/fields/datetime.tagx index 9346612..0f0efba 100644 --- a/src/main/webapp/WEB-INF/tags/form/fields/datetime.tagx +++ b/src/main/webapp/WEB-INF/tags/form/fields/datetime.tagx @@ -33,9 +33,12 @@ </c:if> <script type="text/javascript">dojo.require('dijit.form.DateTextBox')</script> - <div id="_${sec_id}_id"> + <div id="_${sec_id}_id" onmouseover="dijit.Tooltip.defaultPosition=['after']" style="margin-right: 25%;"> <label for="_${sec_field}_id"> <c:out value="${label}" /> + <c:if test="${required}"> + * + </c:if> : </label> <c:choose> @@ -68,7 +71,12 @@ <c:set var="sec_dateTimePattern"> <spring:escapeBody javaScriptEscape="true">${dateTimePattern}</spring:escapeBody> </c:set> - Spring.addDecoration(new Spring.ElementDecoration({elementId : '_${sec_field}_id', widgetType : 'dijit.form.DateTextBox', widgetAttrs : {promptMessage: '${sec_field_validation}', invalidMessage: '${sec_field_invalid}', required: ${required}, constraints: {datePattern : '${sec_dateTimePattern}', required : ${required}}, datePattern : '${sec_dateTimePattern}'}})); </script> + Spring.addDecoration(new Spring.ElementDecoration({elementId : '_${sec_field}_id', widgetType : 'dijit.form.DateTextBox', widgetAttrs : {invalidMessage: '${sec_field_invalid}', required: ${required}, constraints: {datePattern : '${sec_dateTimePattern}', required : ${required}}, datePattern : '${sec_dateTimePattern}'}})); + new dijit.Tooltip({ + connectId: ["_${sec_id}_id"], + label: "${sec_field_validation}", + }); + </script> </div> <br /> </c:if> diff --git a/src/main/webapp/WEB-INF/tags/form/fields/editor.tagx b/src/main/webapp/WEB-INF/tags/form/fields/editor.tagx index c4c6192..a9b3d0c 100644 --- a/src/main/webapp/WEB-INF/tags/form/fields/editor.tagx +++ b/src/main/webapp/WEB-INF/tags/form/fields/editor.tagx @@ -34,6 +34,9 @@ <div id="_${fn:escapeXml(id)}_id"> <label for="_${sec_field}_id"> <c:out value="${fn:escapeXml(label)}" /> + <c:if test="${required}"> + * + </c:if> : </label> <form:hidden id="_${sec_field}_id" path="${sec_field}" /> diff --git a/src/main/webapp/WEB-INF/tags/form/fields/input.tagx b/src/main/webapp/WEB-INF/tags/form/fields/input.tagx index b675439..bd0fa45 100644 --- a/src/main/webapp/WEB-INF/tags/form/fields/input.tagx +++ b/src/main/webapp/WEB-INF/tags/form/fields/input.tagx @@ -57,22 +57,26 @@ <spring:escapeBody javaScriptEscape="true" >${field}</spring:escapeBody> </c:set> - <div id="_${fn:escapeXml(id)}_id"> + <div id="_${fn:escapeXml(id)}_id" onmouseover="dijit.Tooltip.defaultPosition=['after']" style="margin-right: 25%;"> + <!-- style="margin-right: auto;" --> <label for="_${sec_field}_id"> <c:out value="${fn:escapeXml(label)}" /> + <c:if test="${required}"> + * + </c:if> : </label> <c:choose> <c:when test="${disableFormBinding}"> - <input id="_${sec_field}_id" name="${sec_field}" type="${fn:escapeXml(type)}" /> + <input id="_${sec_field}_id" name="${sec_field}" type="${fn:escapeXml(type)}"/> </c:when> <c:otherwise> <c:choose> <c:when test="${type eq 'password'}"> - <form:password id="_${sec_field}_id" path="${sec_field}" disabled="${disabled}" /> + <form:password id="_${sec_field}_id" path="${sec_field}" disabled="${disabled}"/> </c:when> <c:otherwise> - <form:input id="_${sec_field}_id" path="${sec_field}" disabled="${disabled}" /> + <form:input id="_${sec_field}_id" path="${sec_field}" disabled="${disabled}"/> </c:otherwise> </c:choose> <br /> @@ -108,8 +112,14 @@ <c:if test="${!empty validationRegex}"> <c:set var="sec_validation_regex" value="regExp : '${validationRegex}', " /> </c:if> + <script type="text/javascript"> - Spring.addDecoration(new Spring.ElementDecoration({elementId : '_${sec_field}_id', widgetType : 'dijit.form.ValidationTextBox', widgetAttrs : {promptMessage: '${sec_field_validation}', invalidMessage: '${sec_field_invalid}', required : ${required}, ${sec_validation_regex} missingMessage : '${sec_field_required}' }})); + //promptMessage: '${sec_field_validation}', + Spring.addDecoration(new Spring.ElementDecoration({elementId : '_${sec_field}_id', widgetType : 'dijit.form.ValidationTextBox', widgetAttrs : { invalidMessage: '${sec_field_invalid}', required : ${required}, ${sec_validation_regex} missingMessage : '${sec_field_required}'}})); + new dijit.Tooltip({ + connectId: ["_${fn:escapeXml(id)}_id"], + label: "${sec_field_validation}", + }); </script> </div> <br /> diff --git a/src/main/webapp/WEB-INF/tags/form/fields/reference.tagx b/src/main/webapp/WEB-INF/tags/form/fields/reference.tagx index a99eb1c..0a4e5b7 100644 --- a/src/main/webapp/WEB-INF/tags/form/fields/reference.tagx +++ b/src/main/webapp/WEB-INF/tags/form/fields/reference.tagx @@ -18,6 +18,9 @@ <div id="_${fn:escapeXml(id)}_id"> <label for="_${fn:escapeXml(field)}_id"> <c:out value="${fn:escapeXml(label)}" /> + <c:if test="${required}"> + * + </c:if> : </label> <spring:url value="${path}" var="create_url"> diff --git a/src/main/webapp/WEB-INF/tags/form/fields/select.tagx b/src/main/webapp/WEB-INF/tags/form/fields/select.tagx index e1f136e..ee30df0 100644 --- a/src/main/webapp/WEB-INF/tags/form/fields/select.tagx +++ b/src/main/webapp/WEB-INF/tags/form/fields/select.tagx @@ -56,11 +56,14 @@ <spring:escapeBody htmlEscape="true" >${itemLabel}</spring:escapeBody> </c:set> - <div id="_${fn:escapeXml(id)}_id"> + <div id="_${fn:escapeXml(id)}_id" onmouseover="dijit.Tooltip.defaultPosition=['after']" style="margin-right: 25%;"> <c:choose> <c:when test="${not empty items}"> <label for="_${sec_field}_id"> <c:out value="${fn:escapeXml(label)}" /> + <c:if test="${required}"> + * + </c:if> : </label> <c:choose> @@ -200,10 +203,10 @@ <c:choose> <c:when test="${empty hintValue}"> - <spring:message argumentSeparator="," arguments="${label}, " code="field_simple_validation" var="field_validation" htmlEscape="false" /> + <spring:message argumentSeparator="," arguments="${label}, " code="field_simple_validation" var="sec_field_validation" htmlEscape="false" /> </c:when> <c:otherwise> - <spring:message code="${hintValue}" var="field_validation" htmlEscape="false" /> + <spring:message code="${hintValue}" var="sec_field_validation" htmlEscape="false" /> </c:otherwise> </c:choose> @@ -220,7 +223,7 @@ </c:when> <c:when test="${multiple == false}"> - <script type="text/javascript">Spring.addDecoration(new Spring.ElementDecoration({elementId : '_${sec_field}_id', widgetType: 'dijit.form.FilteringSelect', widgetAttrs : {promptMessage: '${sec_field_validation}', hasDownArrow : true}})); </script> + <script type="text/javascript">Spring.addDecoration(new Spring.ElementDecoration({elementId : '_${sec_field}_id', widgetType: 'dijit.form.FilteringSelect', widgetAttrs : {hasDownArrow : true}})); </script> </c:when> <!-- disabled due to http://jira.springframework.org/browse/ROO-909 dijit.form.MultiSelect dojox.form.CheckedMultiSelect <c:otherwise> <script type="text/javascript">Spring.addDecoration(new Spring.ElementDecoration({elementId : '_${field}_id', widgetType: 'dojox.form.CheckedMultiSelect', widgetAttrs : {multiple: true}})); </script> </c:otherwise> --> @@ -260,6 +263,13 @@ <field:reference field="${label}" id="${id}" path="${path}" required="${required}" /> </c:otherwise> </c:choose> + + <script type="text/javascript"> + new dijit.Tooltip({ + connectId: ["_${fn:escapeXml(id)}_id"], + label: "${sec_field_validation}", + }); + </script> </div> <br /> </c:if> diff --git a/src/main/webapp/WEB-INF/tags/form/fields/textarea.tagx b/src/main/webapp/WEB-INF/tags/form/fields/textarea.tagx index c950714..aba57a8 100644 --- a/src/main/webapp/WEB-INF/tags/form/fields/textarea.tagx +++ b/src/main/webapp/WEB-INF/tags/form/fields/textarea.tagx @@ -34,23 +34,32 @@ <c:choose> <c:when test="${empty hintValue}"> - <spring:message argumentSeparator="," arguments="${label}, " code="field_simple_validation" var="field_validation" htmlEscape="false" /> + <spring:message argumentSeparator="," arguments="${label}, " code="field_simple_validation" var="sec_field_validation" htmlEscape="false" /> </c:when> <c:otherwise> - <spring:message code="${hintValue}" var="field_validation" htmlEscape="false" /> + <spring:message code="${hintValue}" var="sec_field_validation" htmlEscape="false" /> </c:otherwise> </c:choose> <script type="text/javascript">dojo.require("dijit.form.SimpleTextarea");</script> - <div id="_${fn:escapeXml(id)}_id"> + <div id="_${fn:escapeXml(id)}_id" onmouseover="dijit.Tooltip.defaultPosition=['after']" style="margin-right: 25%;"> <label for="_${sec_field}_id"> <c:out value="${fn:escapeXml(label)}" /> + <c:if test="${required}"> + * + </c:if> : </label> <form:textarea id="_${sec_field}_id" path="${sec_field}" disabled="${disabled}" /> <br /> <form:errors cssClass="errors" id="_${sec_field}_error_id" path="${sec_field}" /> - <script type="text/javascript">Spring.addDecoration(new Spring.ElementDecoration({elementId : '_${sec_field}_id', widgetType : 'dijit.form.SimpleTextarea', widgetAttrs : {promptMessage: '${sec_field_validation}', disabled : ${disabled}}})); </script> + <script type="text/javascript"> + Spring.addDecoration(new Spring.ElementDecoration({elementId : '_${sec_field}_id', widgetType : 'dijit.form.SimpleTextarea', widgetAttrs : {disabled : ${disabled}}})); + new dijit.Tooltip({ + connectId: ["_${fn:escapeXml(id)}_id"], + label: "${sec_field_validation}", + }); + </script> </div> <br /> -- GitLab