201 lines
9.7 KiB
HTML
201 lines
9.7 KiB
HTML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"
|
|
xmlns:p="http://primefaces.org/ui" xmlns:o="http://omnifaces.org/ui">
|
|
|
|
<ui:composition template="../header.xhtml">
|
|
<ui:define name="content">
|
|
<h:form id="frmUpdateProfile">
|
|
<p:growl id="mesgs" showDetail="true" closable="true" autoupdate="true" />
|
|
|
|
<p:panel id="tipoUsuario" header="Tipo de usuario registrado">
|
|
<div class="ui-g ui-fluid">
|
|
<div class="ui-g-2 ui-md-2">
|
|
<p:outputLabel value="Tipo de usuario:" for="selUsertype" />
|
|
</div>
|
|
<div class="ui-g-10 ui-md-10">
|
|
<p:selectOneButton id="selUsertype" value="#{UpdateProfile.userType}" disabled="true" required="true" unselectable="false"
|
|
requiredMessage="Debe especificar un tipo de usuario">
|
|
<f:selectItems value="#{UpdateProfile.userTypes}" var="item" itemLabel="#{item.userTypename}" itemValue="#{item.name}" />
|
|
</p:selectOneButton>
|
|
</div>
|
|
</div>
|
|
</p:panel>
|
|
<br />
|
|
<p:panel id="DatosPersonales" header="Actualizar datos personales">
|
|
<div class="ui-g ui-fluid">
|
|
<div class="ui-g-2 ui-md-2">
|
|
<p:outputLabel value="Código de Identificación Personal (CIP):" rendered="#{UpdateProfile.userTypePatient}" for="cipCode" />
|
|
<p:outputLabel value="Número de Profesional:" rendered="#{UpdateProfile.userTypeDoctor}" for="cipCode" />
|
|
</div>
|
|
<div class="ui-g-4 ui-md-4">
|
|
<p:inputText id="cipCode" value="#{UpdateProfile.cipCode}" readonly="true" required="true" requiredMessage="Es necesario un código de identificación" />
|
|
</div>
|
|
<div class="ui-g-6 ui-md-6">
|
|
<p:message for="cipCode" display="text" />
|
|
</div>
|
|
|
|
<div class="ui-g-2 ui-md-2">
|
|
<p:outputLabel value="NIF:" for="nif" />
|
|
</div>
|
|
<div class="ui-g-4 ui-md-4">
|
|
<div class="ui-inputgroup">
|
|
<p:inputText id="nif" value="#{UpdateProfile.nif}" validator="nifValidator" maxlength="20" required="true" requiredMessage="Por favor, indque su NIF">
|
|
<p:ajax event="blur" update="nifmsg" listener="#{UpdateProfile.handleNIFValueChange}" oncomplete="handleNIFResponse(xhr, status, args)" />
|
|
</p:inputText>
|
|
<p:commandButton widgetVar="nifButton" icon="pi pi-check" styleClass="green-button" />
|
|
</div>
|
|
</div>
|
|
<div class="ui-g-6 ui-md-6">
|
|
<p:message id="nifmsg" for="nif" display="text" />
|
|
</div>
|
|
|
|
<div class="ui-g-2 ui-md-2">
|
|
<p:outputLabel value="Nombre:" for="name" />
|
|
</div>
|
|
<div class="ui-g-4 ui-md-4">
|
|
<p:inputText id="name" value="#{UpdateProfile.name}" required="true" maxlength="100" requiredMessage="Por favor, indique su nombre" />
|
|
</div>
|
|
<div class="ui-g-6 ui-md-6">
|
|
<p:message for="name" />
|
|
</div>
|
|
|
|
<div class="ui-g-2 ui-md-2">
|
|
<p:outputLabel value="Apellidos:" for="surname" />
|
|
</div>
|
|
<div class="ui-g-4 ui-md-4">
|
|
<p:inputText id="surname" value="#{UpdateProfile.surname}" required="true" maxlength="100" requiredMessage="Por favor, indique sus apellidos" />
|
|
</div>
|
|
<div class="ui-g-6 ui-md-6">
|
|
<p:message for="surname" />
|
|
</div>
|
|
|
|
<div class="ui-g-2 ui-md-2">
|
|
<p:outputLabel value="Correo electrónico:" for="email" />
|
|
</div>
|
|
<div class="ui-g-4 ui-md-4">
|
|
<p:inputText id="email" value="#{UpdateProfile.email}" required="true" maxlength="120" validator="emailValidator"
|
|
validatorMessage="La dirección #{RegisterUser.email} no es válida" requiredMessage="Por favor, especifique su correo electrónico">
|
|
<f:validateRegex pattern="[\w\.-]*[a-zA-Z0-9_]@[\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]" />
|
|
</p:inputText>
|
|
</div>
|
|
<div class="ui-g-6 ui-md-6">
|
|
<p:message for="email" display="text" showDetail="true" showSummary="true" />
|
|
</div>
|
|
<div class="ui-g-2 ui-md-2">
|
|
<p:outputLabel value="Contraseña anterior" for="oldpassword" />
|
|
</div>
|
|
<div class="ui-g-4 ui-md-4">
|
|
<p:password id="oldpassword" value="#{UpdateProfile.oldPassword}" required="false" maxlength="100" requiredMessage="Por favor, especifique su contraseña actual" />
|
|
</div>
|
|
<div class="ui-g-6 ui-md-6">
|
|
<p:message for="oldpassword" />
|
|
</div>
|
|
<div class="ui-g-2 ui-md-2">
|
|
<p:outputLabel value="Nueva contraseña" for="password" />
|
|
</div>
|
|
<div class="ui-g-4 ui-md-4">
|
|
<p:password id="password" value="#{UpdateProfile.password}" match="passwordRepeat" required="false" maxlength="100" requiredMessage="Por favor, especifique una contraseña"
|
|
feedback="true" promptLabel="Especifique una contraseña segura" weakLabel="La contraseña es débil" goodLabel="La contraseña es buena" strongLabel="La contraseña es segura"
|
|
validatorMessage="La contraseña y su verificación deben ser iguales" />
|
|
</div>
|
|
<div class="ui-g-6 ui-md-6">
|
|
<p:message for="password" />
|
|
</div>
|
|
<div class="ui-g-2">
|
|
<p:outputLabel value="Verificación de contraseña:" for="passwordRepeat" />
|
|
</div>
|
|
<div class="ui-g-4">
|
|
<p:password id="passwordRepeat" value="#{UpdateProfile.password}" required="false" maxlength="100" requiredMessage="Por favor, escriba la verificación de su contraseña" />
|
|
</div>
|
|
<div class="ui-g-6">
|
|
<p:message for="passwordRepeat" />
|
|
</div>
|
|
|
|
<h:panelGroup id="panCentros" layout="block" styleClass="ui-g-12 nopadding" rendered="#{UpdateProfile.userTypeFamilyDoctor}">
|
|
<div class="ui-g-2 ui-md-2">
|
|
<p:outputLabel value="Centro de atención (CAP):" for="selPHC" />
|
|
</div>
|
|
<div class="ui-g-4 ui-md-4">
|
|
<p:autoComplete id="selPHC" dropdown="true" value="#{UpdateProfile.primaryHealthCareCenter}" completeMethod="#{UpdateProfile.completePrimaryHealCareCenter}" var="phc"
|
|
itemLabel="#{phc.displayName}" itemValue="#{phc}" forceSelection="true" required="true" requiredMessage="Por favor, selecciona un nuevo centro de antención primaria">
|
|
<o:converter converterId="omnifaces.ListConverter" list="#{UpdateProfile.phcList}" />
|
|
<p:column headerText="Nombre">
|
|
<h:outputText value="#{phc.name}" />
|
|
</p:column>
|
|
<p:column headerText="Localización">
|
|
<h:outputText value="#{phc.location}" />
|
|
</p:column>
|
|
</p:autoComplete>
|
|
</div>
|
|
<div class="ui-g-6 ui-md-6">
|
|
<p:message for="selPHC" />
|
|
</div>
|
|
</h:panelGroup>
|
|
|
|
<h:panelGroup id="panEspecialidades" layout="block" styleClass="ui-g-12 nopadding" rendered="#{UpdateProfile.userTypeSpecialistDoctor}">
|
|
<div class="ui-g-2 ui-md-2">
|
|
<p:outputLabel value="Especialidad médica:" for="selMS" />
|
|
</div>
|
|
<div class="ui-g-4 ui-md-4">
|
|
<p:autoComplete id="selMS" dropdown="true" value="#{UpdateProfile.medicalSpecialty}" completeMethod="#{UpdateProfile.completeMedicalSpecialty}" var="ms"
|
|
itemLabel="#{ms.displayName}" itemValue="#{ms}" forceSelection="true" required="true" requiredMessage="Por favor, selecciona una especialidad médica">
|
|
<o:converter converterId="omnifaces.ListConverter" list="#{UpdateProfile.medicalSpecialtiesList}" />
|
|
<p:column headerText="Nombre">
|
|
<h:outputText value="#{ms.name}" />
|
|
</p:column>
|
|
<p:column headerText="Descripción">
|
|
<h:outputText value="#{ms.description}" />
|
|
</p:column>
|
|
</p:autoComplete>
|
|
</div>
|
|
<div class="ui-g-6 ui-md-6">
|
|
<p:message for="selMS" />
|
|
</div>
|
|
</h:panelGroup>
|
|
|
|
<h:panelGroup id="panMedicosFamilia" layout="block" styleClass="ui-g-12 nopadding" rendered="#{UpdateProfile.userTypePatient}">
|
|
<div class="ui-g-2 ui-md-2">
|
|
<p:outputLabel value="Médico de familia:" for="FamilyDoc" />
|
|
</div>
|
|
<div class="ui-g-4 ui-md-4">
|
|
<p:autoComplete id="FamilyDoc" readonly="true" dropdown="true" required="true" value="#{UpdateProfile.familyDoctor}" completeMethod="#{UpdateProfile.completeFamilyDoctor}"
|
|
var="fd" itemLabel="#{fd.displayName}" itemValue="#{fd}" forceSelection="true" requiredMessage="Por favor, selecciona un médico de familia"
|
|
placeholder="Seleccione su médico de familia a través de la opción de cambiar médico de familia...">
|
|
<o:converter converterId="omnifaces.ListConverter" list="#{UpdateProfile.familyDoctorList}" />
|
|
<p:column headerText="Num. Prof.">
|
|
<h:outputText value="#{fd.professionalNumber}" />
|
|
</p:column>
|
|
<p:column headerText="Nombre">
|
|
<h:outputText value="#{fd.name}" />
|
|
</p:column>
|
|
<p:column headerText="Apellidos">
|
|
<h:outputText value="#{fd.surname}" />
|
|
</p:column>
|
|
</p:autoComplete>
|
|
</div>
|
|
<div class="ui-g-6 ui-md-6">
|
|
<p:button icon="fa fa-edit" outcome="ChangeFamilyDoctor" alt="Modificar médico de familia" />
|
|
<p:message for="FamilyDoc" />
|
|
</div>
|
|
</h:panelGroup>
|
|
|
|
<div class="ui-g-12 ui-g-nopad">
|
|
<div class="ui-g-4 ui-md-4"></div>
|
|
<div class="ui-g-2 ui-md-2 ">
|
|
<p:commandButton validateClient="true" value="Guardar" update="frmUpdateProfile,frmMenu" action="#{UpdateProfile.saveData}" icon="pi pi-check" />
|
|
</div>
|
|
<div class="ui-g-2 ui-md-2">
|
|
<p:button value="Volver" outcome="/home" icon="pi pi-home" />
|
|
</div>
|
|
<div class="ui-g-4 ui-md-4"></div>
|
|
</div>
|
|
</div>
|
|
|
|
</p:panel>
|
|
</h:form>
|
|
</ui:define>
|
|
</ui:composition>
|
|
</html>
|