Pessoal,
Tenho um dialog para cadastro de usuario. Dentro desse dialog, criei um link, que chama outro dialog. Para possibilitar a inserção de um novo setor, sem a necessidade de fechar tudo só pra cadastrar, ou seja, um atalho.
O problema é que quando eu clico no link do atalho (que está dentro de um dialog e chama outro), aparece as mensagens de erro no dialog inicial, como se eu estivesse dando um submit e ele encontrado alguns erros de validação. E quando eu dou o submit no dialog secundário (do atalho) as mensagens de erro aparecem no dialog inicial, até consigo fazer com que as mensagens de erro apareçam no dialog secundário (do atalho), mas elas continuam aparecendo no dialog inicial também e quando não tem erro, ele não salva (não dá submit).
O que será que pode ser?
Já alterei oncomplete, onsuccess, onerror, etc. Estava funcionando, sem problemas, de repente começou a acontecer isso.
Se alguém puder me ajudar.
Chamando o primeiro dialog:
<p:commandButton value="Incluir Novo" image="ui-icon-disk"
alt="Incluir um novo usu´rio"
title="Incluir um novo usuário"
actionListener="#{usuarioController.prepararParaIncluir}"
oncomplete="manterUsuarioDialog.show()"
update=":formManterUsuario"/>
Dialog 1:
<p:dialog header="Gerenciar usuário" widgetVar="manterUsuarioDialog"
minWidth="480" minHeight="200" resizable="true" closable="true"
showEffect="slide" hideEffect="slide">
<h:outputText value="Campos com (*) são de preenchimento obrigatório!"
style="font-style: italic;"/>
<p:separator/>
<h:form id="formManterUsuario">
<p:focus for="nome"/>
<table>
<tr>
<td>
<h:outputLabel for="codigo" value="Código:" styleClass="labelNegrito"
rendered="#{usuarioController.usuario.id != null}"/>
</td>
<td>
<h:inputText id="codigo" value="#{usuarioController.usuario.id}"
disabled="true" size="10" rendered="#{usuarioController.usuario.id != null}"/>
</td>
</tr>
<tr>
<td>
<h:outputLabel for="nome" value="Nome (*):" styleClass="labelNegrito"/>
</td>
<td>
<p:inputMask id="nome" value="#{usuarioController.usuario.nome}"
mask="" size="55" maxlength="70"
required="true"
requiredMessage="Por favor, digite o nome do usuário."/>
</td>
</tr>
<tr>
<td>
<h:outputLabel for="email" value="E-mail:" styleClass="labelNegrito"/>
</td>
<td>
<p:inputMask id="email" value="#{usuarioController.usuario.email}"
mask="" size="32" maxlength="70"/>
</td>
</tr>
<tr>
<td>
<h:outputLabel for="login" value="Login (*):" styleClass="labelNegrito"/>
</td>
<td>
<p:inputMask id="login" value="#{usuarioController.usuario.login}"
mask="" size="32" maxlength="30"
required="true"
requiredMessage="Por favor, informe o login."
disabled="#{usuarioController.usuario.id != null}"/>
</td>
</tr>
<tr>
<td>
<h:outputLabel for="senha" value="Senha (*):" styleClass="labelNegrito"/>
</td>
<td>
<p:password id="senha" value="#{usuarioController.usuario.senha}"
size="32" maxlength="30"
required="#{usuarioController.usuario.id == null}"
requiredMessage="Por favor, informe a senha."
redisplay="false"
feedback="false"/>
<p:watermark for="senha" value="Preencher somente se quiser alterar"
rendered="#{usuarioController.usuario.id != null}"/>
</td>
</tr>
<tr>
<td>
<h:outputLabel for="tipo" value="Tipo de usuário (*):" styleClass="labelNegrito"/>
</td>
<td>
<p:selectOneMenu id="autorizacao" value="#{usuarioController.usuario.autorizacao}"
required="true"
requiredMessage="Por favor, informe o tipo de usuário.">
<f:selectItem itemLabel="Selecione..."/>
<f:selectItem itemValue="ROLE_ADMIN" itemLabel="Admin"/>
<f:selectItem itemValue="ROLE_REQ" itemLabel="Requisitante"/>
</p:selectOneMenu>
</td>
</tr>
<tr>
<td>
<h:outputLabel for="setor" value="Setor (*):" styleClass="labelNegrito"/>
</td>
<td>
<p:selectOneMenu id="listaSetores"
value="#{usuarioController.usuario.setor}"
converter="setorConverter"
required="true"
requiredMessage="Por favor, informe o setor do usuário.">
<f:selectItem itemLabel="Selecione..."/>
<f:selectItems value="#{setorController.listaSetoresParaCombobox}"/>
</p:selectOneMenu>
<p:spacer width="10"/>
<p:commandLink value="[+] Novo Setor"
title="Inlcuir um novo setor"
actionListener="#{setorController.prepararParaIncluir}"
onstart="incluirSetorDialog.show();"
update=":formNovoSetor"
immediate="true"/>
</td>
</tr>
<tr>
<td>
<h:outputLabel for="ativo" value="Ativo (*):" styleClass="labelNegrito"/>
</td>
<td>
<p:selectOneMenu id="ativo" value="#{usuarioController.usuario.ativo}"
required="true"
requiredMessage="Por favor, informe se o usuário está ativo.">
<f:selectItem itemLabel="Selecione..."/>
<f:selectItem itemValue="true" itemLabel="Sim"/>
<f:selectItem itemValue="false" itemLabel="Não"/>
</p:selectOneMenu>
</td>
</tr>
</table>
<p:messages id="ss" autoUpdate="true" redisplay="true"/>
<p:commandButton image="ui-icon-disk" value="Salvar"
id="salvarUsuario"
actionListener="#{usuarioController.salvar}"
update=":formManterUsuario"/>
<p:commandButton image="ui-icon-close" value="Cancelar"
onclick="manterUsuarioDialog.hide()"
update=":formPrincipal"
immediate="true"/>
</h:form>
</p:dialog>
Chamando o dialog 2 (atalho):
<p:commandLink value="[+] Novo Setor"
title="Inlcuir um novo setor"
actionListener="#{setorController.prepararParaIncluir}"
onstart="incluirSetorDialog.show();"
update=":formNovoSetor"
immediate="true"/>
Dialog 2:
<p:dialog header="Incluir um novo setor" widgetVar="incluirSetorDialog"
minWidth="450" minHeight="100" resizable="true" closable="true"
showEffect="slide" hideEffect="slide">
<h:form id="formNovoSetor">
<p:focus for="nome"/>
<h:outputText value="Campos com (*) são de preenchimento obrigatório!"
style="font-style: italic;"/>
<p:separator/>
<h:panelGrid id="dadosSetor" columns="3">
<h:outputLabel for="nome" value="Setor (*):"
styleClass="labelNegrito"/>
<p:inputMask id="nome" value="#{setorController.setor.nome}"
mask="" maxlength="50" size="50"
required="true"
requiredMessage="Por favor, digite um nome para o setor."/>
<p:column/>
<h:outputLabel for="ramal" value="Ramal:"
styleClass="labelNegrito"/>
<p:inputMask id="ramal" value="#{setorController.setor.ramal}"
mask="" maxlength="5" size="10"/>
<p:column/>
<h:outputLabel for="ativo" value="Ativo (*):"
styleClass="labelNegrito"/>
<p:selectOneMenu id="ativo" value="#{setorController.setor.ativo}"
required="true"
requiredMessage="Por favor, informe se o setor está ativo.">
<f:selectItem itemLabel="Selecione..."/>
<f:selectItem itemValue="true" itemLabel="Sim"/>
<f:selectItem itemValue="false" itemLabel="Não"/>
</p:selectOneMenu>
<p:column/>
<h:outputLabel for="obs" value="Observações:"
styleClass="labelNegrito"/>
<p:inputMask id="obs" value="#{setorController.setor.obs}"
mask="" maxlength="100" size="50"/>
<p:column/>
</h:panelGrid>
<p:messages id="teste" autoUpdate="true" redisplay="true"/>
<br/>
<p:commandButton image="ui-icon-disk" value="Salvar"
id="salvarSetor"
update=":formManterUsuario"
actionListener="#{setorController.salvarDoDialog}"
oncomplete="incluirSetorDialog.hide();"/>
<p:commandButton image="ui-icon-close" value="Cancelar"
onclick="incluirSetorDialog.hide()"
update=":formManterUsuario"
immediate="true"/>
</h:form>
</p:dialog>