This commit is contained in:
dalvarezgon
2019-12-21 23:12:16 +01:00
35 changed files with 907 additions and 160 deletions

View File

@@ -9,26 +9,13 @@
<title>MyHealth Online Services</title>
<h:outputStylesheet name="primeicons/primeicons.css" library="primefaces" />
<h:outputStylesheet library="css" name="estilos.css" />
<h:outputScript library="js" name="common.js" />
</h:head>
<h:outputScript>
function handleLoginRequest(xhr, status, args) {
if(args.validationFailed || !args.loggedIn) {
PF('dlgLogin').jq.effect("shake", {times:5}, 100);
PF('btnLogin').enable();
}
else {
PF('btnLogin').enable();
PF('dlgLogin').hide();
}
}
function startLogin() {
PF('btnLogin').disable();
}
function onAjaxError() {
alert('Ajax error');
}
// Si hay un error AJAX, lo más probable es que la sesión expirase, vamos a la página de error
function onAjaxError() {
window.location.href = "#{request.contextPath}/error.xhtml?type=expired";
}
</h:outputScript>
<h:body>
<p:growl id="messages" globalOnly="true" sticky="false" showDetail="true" life="15000" />
@@ -39,10 +26,12 @@
<div id="menuDiv" style="margin-bottom: 10px;">
<p:ajaxStatus style="width:32px; height:32px; position:fixed; right:32px; bottom:32px" onerror="onAjaxError()">
<f:facet name="start">
<i id="loginSpin" class="pi pi-spin pi-spinner" style="font-size: 3em"></i>
<i id="loginSpin" class="pi pi-spin pi-spinner" style="font-size: 3em" />
</f:facet>
<f:facet name="error">Error!</f:facet>
<f:facet name="error">
<i class="pi pi-exclamation-triangle" style="font-size: 3em" />
</f:facet>
</p:ajaxStatus>
<h:form id="frmLogin">

View File

@@ -3,10 +3,6 @@
<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">
<f:metadata>
<f:viewParam name="refresh" value="#{home.refresh}" />
</f:metadata>
<ui:composition template="./header.xhtml">
<ui:define name="content">
<h:form>
@@ -16,20 +12,17 @@
<div class="ui-g-2 ui-md-2">
<p:outputLabel for="selectorTema" value="Cambio de tema" />
</div>
<div class="ui-g-6 ui-md-6">
<div class="ui-g-3 ui-md-3">
<p:themeSwitcher id="selectorTema" style="width:300px" value="#{sessionPreferences.currentTheme}">
<f:selectItem itemLabel="Seleccione un tema" itemValue="" noSelectionOption="true" />
<f:selectItems value="#{home.themes}" var="theme" itemLabel="#{theme.displayName}" itemValue="#{theme.name}" />
<p:ajax listener="#{sessionPreferences.updateCurrentTheme}" />
</p:themeSwitcher>
</div>
<div class="ui-g-4 ui-md-1" />
<div class="ui-g-4 ui-md-4" />
<div class="ui-g-4 ui-md-4 ">
<div class="ui-g-2 ui-md-2">
<p:commandButton value="Usar tema en este sesión" update="mesgs" action="#{sessionPreferences.updateCurrentTheme}" icon="pi pi-save" />
</div>
<div class="ui-g-4 ui-md-4" />
<div class="ui-g-5 ui-md-5" />
<div class="ui-g-2 ui-md-2">
<div class="ui-inputgroup">

View File

@@ -3,23 +3,6 @@
<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">
<h:head>
<title>login</title>
</h:head>
<h:outputScript>
<script type="text/javascript">
function handleLoginRequest(xhr, status, args) {
if(args.validationFailed || !args.loggedIn) {
PF('dlg').jq.effect("shake", {times:5}, 100);
}
else {
PF('dlg').hide();
$('#loginLink').fadeOut();
}
}
</script>
</h:outputScript>
<ui:composition template="./header.xhtml">
<ui:define name="content">
<h:form>

View File

@@ -70,7 +70,7 @@
<div class="ui-g-12 ui-g-nopad">
<div class="ui-g-4 ui-md-4" />
<div class="ui-g-2 ui-md-2 ">
<p:commandButton validateClient="true" value="Guardar" update="TestForm" action="#{BeanName.actionMethod}" icon="pi pi-check" />
<p:commandButton validateClient="true" value="Guardar" update="TestForm" action="#{PendingQuestions.saveData}" icon="pi pi-check" />
</div>
<div class="ui-g-2 ui-md-2">
<p:button value="Volver" outcome="/home" icon="pi pi-home" />

View File

@@ -31,18 +31,18 @@
<p:panel id="PanelPHC" header="Cambiar médico de familia asignado" rendered="#{home.patient}">
<div class="ui-g ui-fluid">
<div class="ui-g-4 ui-md-4">
<div class="ui-g-2">
<p:outputLabel value="Médico de familia actualmente asignado:" />
</div>
<div class="ui-g-4 ui-md-4">
<div class="ui-g-4">
<p:outputLabel id="lblCurrentCenter" style="font-weight: bold;" value="#{ChangeFD.currentFamilyDoctor.displayName}" />
</div>
<div class="ui-g-4 ui-md-4" />
<div class="ui-g-6" />
<div class="ui-g-4 ui-md-4">
<div class="ui-g-2">
<p:outputLabel value="Nuevo médico de familia:" for="newFamilyDocAC" />
</div>
<div class="ui-g-4 ui-md-4">
<div class="ui-g-4">
<p:autoComplete id="newFamilyDocAC" dropdown="true" required="true" value="#{ChangeFD.newFamilyDoctor}" completeMethod="#{ChangeFD.completeFamilyDoctor}" var="fd"
itemLabel="#{fd.displayName}" itemValue="#{fd}" forceSelection="true" requiredMessage="Por favor, selecciona un médico de familia"
placeholder="Seleccione su nuevo médico de familia o teclee para buscar...">
@@ -58,7 +58,7 @@
</p:column>
</p:autoComplete>
</div>
<div class="ui-g-4 ui-md-4">
<div class="ui-g-6">
<p:message for="newFamilyDocAC" />
</div>
@@ -73,7 +73,6 @@
<div class="ui-g-4 ui-md-4" />
</div>
</div>
</p:panel>
</h:form>
</ui:define>

View File

@@ -31,18 +31,18 @@
<p:panel id="PanelPHC" header="Cambiar centro de antención primaria asignado" rendered="#{home.familyDoctor}">
<div class="ui-g ui-fluid">
<div class="ui-g-4 ui-md-4">
<p:outputLabel value="Centro de antención primaria actualmente asignado:" />
<div class="ui-g-2">
<p:outputLabel value="Centro de antención primaria actual:" />
</div>
<div class="ui-g-4 ui-md-4">
<div class="ui-g-4">
<p:outputLabel id="lblCurrentCenter" style="font-weight: bold;" value="#{ChangeCAP.currentCenter.displayName}" />
</div>
<div class="ui-g-4 ui-md-4" />
<div class="ui-g-6" />
<div class="ui-g-4 ui-md-4">
<div class="ui-g-2">
<p:outputLabel value="Nuevo centro de atención primaria:" for="newCenter" />
</div>
<div class="ui-g-4 ui-md-4">
<div class="ui-g-4">
<p:autoComplete id="newCenter" dropdown="true" required="true" value="#{ChangeCAP.newCenter}" completeMethod="#{ChangeCAP.completePrimaryHealCareCenter}" var="phc"
itemLabel="#{phc.displayName}" itemValue="#{phc}" forceSelection="true" requiredMessage="Por favor, selecciona un nuevo centro de antención primaria"
placeholder="Seleccione una CAP o teclee para buscar...">
@@ -55,7 +55,7 @@
</p:column>
</p:autoComplete>
</div>
<div class="ui-g-4 ui-md-4">
<div class="ui-g-6">
<p:message for="newCenter" />
</div>

View File

@@ -44,25 +44,6 @@
</h:form>
<h:form id="frmRegisterUser" rendered="#{not RegisterUser.registered}">
<h:outputScript>
function handleRequest(xhr, status, args) {
var nif = PF('nifButton');
if ( args.NIFisDupe == false ) {
nif.jq.children(".ui-icon").removeClass("pi pi-times");
nif.jq.removeClass('red-button');
nif.jq.children(".ui-icon").addClass("pi pi-check");
nif.jq.addClass('green-button');
}
else if (nif.jq.hasClass('red-button') == false) {
nif.jq.children(".ui-icon").removeClass("pi pi-check");
nif.jq.removeClass('green-button');
nif.jq.children(".ui-icon").addClass("pi pi-times");
nif.jq.addClass('red-button');
}
}
</h:outputScript>
<p:growl id="mesgs" globalOnly="true" showDetail="true" closable="true" autoupdate="true" />
<p:panel id="tipoUsuario" header="Especifique el tipo de usuario que desea registrarse">
<div class="ui-g ui-fluid">
@@ -86,7 +67,7 @@
<div class="ui-g-4 ui-md-4">
<div class="ui-inputgroup">
<p:inputText id="nif" value="#{RegisterUser.nif}" validator="nifValidator" maxlength="20" required="true" requiredMessage="Por favor, indque su NIF">
<p:ajax event="blur" update="nifmsg" listener="#{RegisterUser.hadleNIFValueChange}" oncomplete="handleRequest(xhr, status, args)" />
<p:ajax event="blur" update="nifmsg" listener="#{RegisterUser.hadleNIFValueChange}" oncomplete="handleNIFResponse(xhr, status, args)" />
</p:inputText>
<p:commandButton widgetVar="nifButton" icon="pi pi-times" styleClass="red-button" />
</div>

View File

@@ -7,25 +7,6 @@
<ui:composition template="../header.xhtml">
<ui:define name="content">
<h:form id="frmUpdateProfile">
<h:outputScript>
function handleRequest(xhr, status, args) {
var nif = PF('nifButton');
if ( args.NIFisDupe == false ) {
nif.jq.children(".ui-icon").removeClass("pi pi-times");
nif.jq.removeClass('red-button');
nif.jq.children(".ui-icon").addClass("pi pi-check");
nif.jq.addClass('green-button');
}
else if (nif.jq.hasClass('red-button') == false) {
nif.jq.children(".ui-icon").removeClass("pi pi-check");
nif.jq.removeClass('green-button');
nif.jq.children(".ui-icon").addClass("pi pi-times");
nif.jq.addClass('red-button');
}
}
</h:outputScript>
<p:growl id="mesgs" showDetail="true" closable="true" autoupdate="true" />
<p:panel id="tipoUsuario" header="Tipo de usuario registrado">
@@ -61,7 +42,7 @@
<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.hadleNIFValueChange}" oncomplete="handleRequest(xhr, status, args)" />
<p:ajax event="blur" update="nifmsg" listener="#{UpdateProfile.hadleNIFValueChange}" oncomplete="handleNIFResponse(xhr, status, args)" />
</p:inputText>
<p:commandButton widgetVar="nifButton" icon="pi pi-check" styleClass="green-button" />
</div>
@@ -138,7 +119,7 @@
</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" requiredMessage="Por favor, selecciona un nuevo centro de antención primaria">
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}" />
@@ -159,7 +140,7 @@
</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" requiredMessage="Por favor, selecciona una especialidad médica">
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}" />

View File

@@ -11,7 +11,7 @@ BODY {
margin: 0 !important;
}
ul.ui-menu-child {
ul.ui-menu-list {
white-space: nowrap;
width: auto !important;
}

View File

@@ -0,0 +1,41 @@
/**
* Funciones comunes JavaScript para el proyecto MyHealth
*
*
*/
// Gestiona la ventana de login
function handleLoginRequest(xhr, status, args) {
if (args.validationFailed || !args.loggedIn) {
PF('dlgLogin').jq.effect("shake", {
times : 5
}, 100);
PF('btnLogin').enable();
} else {
PF('btnLogin').enable();
PF('dlgLogin').hide();
}
}
// Tras empezar la petición AJAX de login desabilita el botón para evitar doble login
function startLogin() {
PF('btnLogin').disable();
}
// Valida si un NIF está duplicado.
function handleNIFResponse(xhr, status, args) {
var nif = PF('nifButton');
if (args.NIFisDupe == false) {
nif.jq.children(".ui-icon").removeClass("pi pi-times");
nif.jq.removeClass('red-button');
nif.jq.children(".ui-icon").addClass("pi pi-check");
nif.jq.addClass('green-button');
} else if (nif.jq.hasClass('red-button') == false) {
nif.jq.children(".ui-icon").removeClass("pi pi-check");
nif.jq.removeClass('green-button');
nif.jq.children(".ui-icon").addClass("pi pi-times");
nif.jq.addClass('red-button');
}
}