[Logo] Neo Framework Forum
  [Search] Busca   [Recent Topics] Tópicos Recentes   [Members]  Lista de Usuários   [Groups] De volta para a página principal 
[Register] Registrar / 
[Login] Entrar 
Esconder os campos de consulta do filtro da listagem.  XML
Índice dos Fóruns -> Sugestões
Autor Mensagem
guilherme.pimentel
Template
[Avatar]

Membro desde: 21/06/2007 15:52:28
Mensagens: 109
Localização: BELO HORIZONTE
Offline

Bom dia, eu fiz uma alteração aqui nos templates em que os campos do filtro da consulta ficam escondidos(como se não existisse filtro) e coloquei um link ao lado do "Criar" com o nome de "Filtro" que quando acionado o filtro aparece.
Tambem criei um outro botão ao lado do botão "Enviar" com o nome de "Limpar Filtro" com o codigo:

Code:
 function limparFiltro(){
 	list = document.getElementsByTagName('input');
 	for(i=0; i < list.length; i++){
 		if (list[i].type == 'text')
 		list[i].value = '';
 	}
 	list = document.getElementsByTagName('select');
 	for(i=0; i < list.length; i++){
 		list[i].value = '<null>';
 	}
 	document.getElementById('filtrar').click();
 }
 


em que limpa todos os campos do filtro sejam quantos for.
Essa ideia é boa????

GUILHERME A. MUNCK PIMENTEL
DESENVOLVEDOR JEE
BRASIL - MINAS GERAIS - BELO HORIZONTE
pedro.goncalves
Equipe
[Avatar]
Membro desde: 17/04/2007 16:12:20
Mensagens: 539
Localização: Belo Horizonte - MG
Offline

Eu nao entendi a finalidade disso guilherme, teria como explicar melhor, em que ganharia em uma pessoa colocar isso na app?

Pedro Gonçalves
http://pedrogoncalves.com.br
[Email] [WWW] [MSN]
guilherme.pimentel
Template
[Avatar]

Membro desde: 21/06/2007 15:52:28
Mensagens: 109
Localização: BELO HORIZONTE
Offline

Quando o usuario entrar na tela de listagem de dados e o foco dele não é fazer filtro, e sim criar um registro ou editar um registro que ja esta sendo exibido ele não precisaria ver o filtro de cara ... ele so iria ver o filtro caso ele queira filtrar.
Desta forma a tela fica mais limpa e mais direta.... é so uma sugestão ....

GUILHERME A. MUNCK PIMENTEL
DESENVOLVEDOR JEE
BRASIL - MINAS GERAIS - BELO HORIZONTE
pedro.goncalves
Equipe
[Avatar]
Membro desde: 17/04/2007 16:12:20
Mensagens: 539
Localização: Belo Horizonte - MG
Offline

Ah tah!!! entendi!!!

Cara.. legal.. mais isso é uma coisa que nao precisa estar no framework..

faz o seguinte.. faz um texto explicando como fazer isto que publico nos tutoriais do site.. pode ser?

Pedro Gonçalves
http://pedrogoncalves.com.br
[Email] [WWW] [MSN]
guilherme.pimentel
Template
[Avatar]

Membro desde: 21/06/2007 15:52:28
Mensagens: 109
Localização: BELO HORIZONTE
Offline

ok vou montar aqui e coloco nesse topico ... valeu pela atenção

GUILHERME A. MUNCK PIMENTEL
DESENVOLVEDOR JEE
BRASIL - MINAS GERAIS - BELO HORIZONTE
pedro.goncalves
Equipe
[Avatar]
Membro desde: 17/04/2007 16:12:20
Mensagens: 539
Localização: Belo Horizonte - MG
Offline

Blz!! eu que agradeço!

Pedro Gonçalves
http://pedrogoncalves.com.br
[Email] [WWW] [MSN]
guilherme.pimentel
Template
[Avatar]

Membro desde: 21/06/2007 15:52:28
Mensagens: 109
Localização: BELO HORIZONTE
Offline

Como colocar os campos do formulario de filtro não fique sempre sendo exibido, somente seram exibidos quando solicitado pelo usuario.


Criar o pacote:

br.com.linkcom.neo.view.template

Colocar os seguintes arquivos para serem alterados:

JanelaFiltroTag.jsp:

Colocar o style="display:none;" para que o table não seja exibido ao entrar entrar na tela e tambem colocar o nome no <table> para que ele seja gerenciado pelo JavaScript da outra JSP

Code:
 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 <%@ taglib prefix="n" uri="neo"%>
 <%@ taglib prefix="combo" uri="combo"%>
 <%@ taglib prefix="t" uri="template"%>
 
 <n:bean name="${tag.name}">
 <table id="filtro" style="display=none" width="100%" align="center" class="window inputWindow"  cellpadding="0" cellspacing="0">
 	<tr>
 		<td>
 			<n:doBody />
 		</td>
 	</tr>
 </table>
 </n:bean>
 


ListagemTag.jsp:

Criar uma função verFiltro() que irá gerenciar o table acima e tambem criar um link ao lado do "Criar" que vai exibir ou esconder o os campos do formulario de consulta.

Code:
 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 <%@ taglib prefix="n" uri="neo"%>
 <%@ taglib prefix="combo" uri="combo"%>
 <%@ taglib prefix="t" uri="template"%>
 <script>
 	function verFiltro(){
 		if (document.getElementById('filtro')){
 			if (document.getElementById('filtro').style.display == ''){
 				document.getElementById('filtro').style.display = 'none';
 			}else document.getElementById('filtro').style.display = '';
 		}
 	}
 </script>
 <n:form validate="false">
 	<n:validation>
 		<input type="hidden" name="notFirstTime" value="true"/>
 		<table class="outterTable" cellspacing="0" cellpadding="0" align="center">
 			<tr style="background: url('${pageContext.request.contextPath}/resource/img/titulo.gif')" class="outterTableHeader">
 				<td>
 					<span class="outterTableHeaderLeft">
 						${listagemTag.titulo}						
 					</span>
 					<span class="outterTableHeaderRight">
 						<c:if test="${listagemTag.showNewLink || !empty listagemTag.linkArea}">
 							${listagemTag.invokeLinkArea}
 							<c:if test="${listagemTag.showNewLink}">						
 								<n:link action="criar" class="outterTableHeaderLink">Criar</n:link>
 							</c:if>						
 						</c:if>					
 					</span>
 					<span class="outterTableHeaderRight">
 						<a href="#" onclick="verFiltro()" class="outterTableHeaderLink">Filtro</a>
 					</span>
 				</td>
 			</tr>
 			<tr>
 				<td>
 					<n:doBody />
 				</td>
 			</tr>
 		</table>
 	</n:validation>
 </n:form>
 
 



TabelaFiltroTag.jsp:

Foi criada a função limparFiltro() que limpa todos os inputs e combos pois não posso colocar fixo será utilizado por qualquer formulario de consulta caso exista outro tipo de componente de entrada é so criar um outro loop que irá limpar esse outro componente como:
Code:
 		list = document.getElementsByTagName('select');
 		for(i=0; i < list.length; i++){
 			list[i].value = '<null>';
 		}


e outro botão "Limpar Filtro" para executar essa função.

Code:
 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 <%@ taglib prefix="n" uri="neo"%>
 <%@ taglib prefix="combo" uri="combo"%>
 <%@ taglib prefix="t" uri="template"%>
 
 <c:set var="panelGridColumns" value="${n:default(2, TabelaFiltroTag.columns)}" />
 <c:set var="panelGridStyleClass" value="${n:default('inputTable', TabelaFiltroTag.styleClass)}" />
 <c:set var="panelGridColumnStylesClasses" value="${n:default('labelColumn, propertyColumn', TabelaFiltroTag.columnStyleClasses)}" />
 
 <script type="text/javascript">
 	function limparFiltro(){
 		list = document.getElementsByTagName('input');
 		for(i=0; i < list.length; i++){
 			if (list[i].type == 'text')
 			list[i].value = '';
 		}
 		list = document.getElementsByTagName('select');
 		for(i=0; i < list.length; i++){
 			list[i].value = '<null>';
 		}
 		document.getElementById('filtrar').click();
 		return false;
 	}
 </script>
 
 <n:panelGrid columns="${panelGridColumns}"
 	 style="${tag.style}"
 	 colspan="${tag.colspan}"
 	 columnStyleClasses="${panelGridColumnStylesClasses}"
 	 columnStyles="${tag.columnStyles}"
 	 dynamicAttributesMap="${tag.dynamicAttributesMap}"
 	 rowStyles="${tag.rowStyles}"
 	 styleClass="${panelGridStyleClass}"
 	 propertyRenderAsDouble="${tag.propertyRenderAsDouble}" width="${tag.width}" rowStyleClasses="${tag.rowStyleClasses}" cellpadding="1">
 		
 		<t:propertyConfig mode="input" showLabel="${tag.propertyShowLabel}" renderAs="double">
 			<n:doBody />
 		</t:propertyConfig>
 
 </n:panelGrid>
 
 <c:if test="${tag.showSubmit}">
 	<table>
 		<tr>
 			<td>
 				<div class="actionBar">
 					<n:submit id="filtrar" action="${TabelaFiltroTag.submitAction}" validate="${TabelaFiltroTag.validateForm}" url="${TabelaFiltroTag.submitUrl}">Filtrar</n:submit>
 				</div>
 			</td>
 			<td>
 				<div class="actionBar">
 					<button onclick="limparFiltro()" >Limpar Filtro</button>
 				</div>
 			</td>
 		</tr>
 	</table>
 </c:if>
 


Se der algum problema ou se estiver dando problema é so falar....

GUILHERME A. MUNCK PIMENTEL
DESENVOLVEDOR JEE
BRASIL - MINAS GERAIS - BELO HORIZONTE
pedro.goncalves
Equipe
[Avatar]
Membro desde: 17/04/2007 16:12:20
Mensagens: 539
Localização: Belo Horizonte - MG
Offline

Vou testar e publicar!

Obrigado pelo tutorial

Pedro Gonçalves
http://pedrogoncalves.com.br
[Email] [WWW] [MSN]
 
Índice dos Fóruns -> Sugestões
Ir para:   
Powered by JForum 2.1.7 © JForum Team