- added debugger class for making JSF life-cycles visible, thanks to BalusC for this free code
- registered above debugger
- rewrote all templates with f:metadata to, again, BalusC's recommendation to have "metadata" in a own ui:define block
- added NOISY debug lines (please comment out on productive systems!)
Signed-off-by: Roland Häder <roland@mxchange.org>
@Override
public Object getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) {
+ // Log message
+ this.loggerBeanLocal.logTrace(MessageFormat.format("{0}.getAsObject: context={1},component={2},submittedValue={3} - CALLED!", this.getClass().getSimpleName(), context, component, submittedValue)); //NOI18N
+
// Is the value null or empty?
if ((null == submittedValue) || (submittedValue.trim().isEmpty())) {
// Warning message
// Try to parse the value as long
Long faxNumberId = Long.valueOf(submittedValue);
+ // Log message
+ this.loggerBeanLocal.logDebug(MessageFormat.format("{0}.getAsObject: faxNumberId={1}", this.getClass().getSimpleName(), faxNumberId)); //NOI18N
+
// Try to get mobile instance from it
faxNumber = this.phoneBean.findFaxNumberById(faxNumberId);
} catch (final NumberFormatException ex) {
this.loggerBeanLocal.logDebug(MessageFormat.format("{0}.getAsObject(): Exception: {1} - Returning null ...", this.getClass().getSimpleName(), ex)); //NOI18N
}
+ // Log message
+ this.loggerBeanLocal.logTrace(MessageFormat.format("{0}.getAsObject: faxNumber={1} - EXIT!", this.getClass().getSimpleName(), faxNumber)); //NOI18N
+
// Return it
return faxNumber;
}
--- /dev/null
+/*
+ * Copyright (C) 2016 Roland Haeder<rhaeder@cho-time.de>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package de.chotime.landingpage.debug;
+
+import java.text.MessageFormat;
+import javax.faces.event.PhaseEvent;
+import javax.faces.event.PhaseId;
+import javax.faces.event.PhaseListener;
+
+/**
+ * A listener for debugging JSF lifecycle phases
+ * <p>
+ * @author Roland Haeder<rhaeder@cho-time.de>
+ */
+public class LandingDebugLifeCycleListener implements PhaseListener {
+
+ /**
+ * Serial number
+ */
+ private static final long serialVersionUID = 523_467_675_719_515L;
+
+ @Override
+ public void afterPhase (final PhaseEvent event) {
+ System.out.println(MessageFormat.format("<--- End phase {0}", event.getPhaseId())); //NOI18N
+ }
+
+ @Override
+ public void beforePhase (final PhaseEvent event) {
+ System.out.println(MessageFormat.format("---> Start phase {0}", event.getPhaseId())); //NOI18N
+ }
+
+ @Override
+ public PhaseId getPhaseId () {
+ return PhaseId.ANY_PHASE;
+ }
+
+}
@RequestScoped
public class JobsAdminContactPhoneWebRequestBean extends BaseJobsController implements JobsAdminContactPhoneWebRequestController {
+ /**
+ * Call-stack instance (5 may show BeanELResolver.getValue as caller)
+ */
+ private static final short THREAD_STACK = 5;
+
/**
* Serial number
*/
* Default constructor
*/
public JobsAdminContactPhoneWebRequestBean () {
+ String caller = MessageFormat.format("{0}.{1}", Thread.currentThread().getStackTrace()[3].getClassName(), Thread.currentThread().getStackTrace()[3].getMethodName());
+ System.out.println(MessageFormat.format("{0}: Constructed, caller: {1}", this.getClass().getSimpleName(), caller));
+
// Try it
try {
// Get initial context
/*
- * Copyright (C) 2016 Cho-Time GmbH
+ * Copyright (C) 2016 Roland Haeder
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
/**
* An administrative contact phone controller (bean)
* <p>
- * @author Roland Haeder<rhaeder@cho-time.de>
+ * @author Roland Haeder<roland@mxchange.org>
*/
@Named ("contactPhoneController")
@SessionScoped
/*
- * Copyright (C) 2016 Cho-Time GmbH
+ * Copyright (C) 2016 Roland Haeder
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
/**
* An interface for user beans
* <p>
- * @author Roland Haeder<rhaeder@cho-time.de>
+ * @author Roland Haeder<roland@mxchange.org>
*/
@Local
public interface JobsContactPhoneWebSessionController extends Serializable {
import javax.inject.Inject;
import javax.inject.Named;
import org.mxchange.jcontacts.contact.Contact;
+import org.mxchange.jjobs.beans.BaseJobsController;
import org.mxchange.jjobs.beans.contact.JobsAdminContactWebRequestController;
import org.mxchange.jjobs.beans.phone.JobsAdminPhoneWebRequestController;
import org.mxchange.jjobs.beans.user.JobsUserWebSessionController;
*/
@Named ("adminHelper")
@RequestScoped
-public class JobsWebRequestHelper implements JobsWebRequestController {
+public class JobsWebRequestHelper extends BaseJobsController implements JobsWebRequestController {
+
+ /**
+ * Call-stack instance (5 may show BeanELResolver.getValue as caller)
+ */
+ private static final short THREAD_STACK = 5;
/**
* Serial number
* Default constructor
*/
public JobsWebRequestHelper () {
+ String caller = MessageFormat.format("{0}.{1}", Thread.currentThread().getStackTrace()[3].getClassName(), Thread.currentThread().getStackTrace()[3].getMethodName());
+ System.out.println(MessageFormat.format("{0}: Constructed, caller: {1}", this.getClass().getSimpleName(), caller));
}
@Override
public void copyContactToController () {
+ String caller = MessageFormat.format("{0}.{1}", Thread.currentThread().getStackTrace()[THREAD_STACK].getClassName(), Thread.currentThread().getStackTrace()[THREAD_STACK].getMethodName());
+ System.out.println(MessageFormat.format("{0}.copyContactToController: CALLED, caller: {2}", this.getClass().getSimpleName(), this.contact, caller));
+
// Validate contact instance
if (this.getContact() == null) {
// Throw NPE
} else if (this.getFaxNumber().getPhoneId() < 1) {
// Invalid id number
throw new IllegalArgumentException(MessageFormat.format("this.faxNumber.phoneId={0} is not valid", this.getFaxNumber().getPhoneId()));
- } else if (this.getFaxNumber().getPhoneAreaCode()== null) {
+ } else if (this.getFaxNumber().getPhoneAreaCode() == null) {
// Throw again
throw new NullPointerException("this.faxNumber.phoneAreaCode is null");
} else if (this.getFaxNumber().getPhoneAreaCode() < 1) {
} else if (this.getLandLineNumber().getPhoneId() < 1) {
// Invalid id number
throw new IllegalArgumentException(MessageFormat.format("this.landLineNumber.phoneId={0} is not valid", this.getLandLineNumber().getPhoneId()));
- } else if (this.getLandLineNumber().getPhoneAreaCode()== null) {
+ } else if (this.getLandLineNumber().getPhoneAreaCode() == null) {
// Throw again
throw new NullPointerException("this.landLineNumber.phoneAreaCode is null");
} else if (this.getLandLineNumber().getPhoneAreaCode() < 1) {
@Override
public Contact getContact () {
+ String caller = MessageFormat.format("{0}.{1}", Thread.currentThread().getStackTrace()[THREAD_STACK].getClassName(), Thread.currentThread().getStackTrace()[THREAD_STACK].getMethodName());
+ System.out.println(MessageFormat.format("{0}: Returning this.contact={1}, caller: {2}", this.getClass().getSimpleName(), this.contact, caller));
return this.contact;
}
@Override
public void setContact (final Contact contact) {
+ String caller = MessageFormat.format("{0}.{1}", Thread.currentThread().getStackTrace()[THREAD_STACK].getClassName(), Thread.currentThread().getStackTrace()[THREAD_STACK].getMethodName());
+ System.out.println(MessageFormat.format("{0}: Setting contact={1}, previous: {2}, caller: {3}", this.getClass().getSimpleName(), contact, this.contact, caller));
this.contact = contact;
}
@RequestScoped
public class JobsAdminPhoneWebRequestBean extends BaseJobsController implements JobsAdminPhoneWebRequestController {
+ /**
+ * Call-stack position
+ */
+ private static final short THREAD_STACK = 5;
+
/**
* Serial number
*/
private Long phoneNumber;
/**
- * Event being fired when a list of all unsed fax numbers is being
- * created.
+ * Event being fired when a list of all unsed fax numbers is being created.
*/
@Inject
@Any
* Default constructor
*/
public JobsAdminPhoneWebRequestBean () {
+ String caller = MessageFormat.format("{0}.{1}", Thread.currentThread().getStackTrace()[3].getClassName(), Thread.currentThread().getStackTrace()[3].getMethodName());
+ System.out.println(MessageFormat.format("{0}: Constructed, caller: {1}", this.getClass().getSimpleName(), caller));
+
// Try it
try {
// Get initial context
@Override
public DialableFaxNumber getChoosenFaxNumber () {
+ String caller = MessageFormat.format("{0}.{1}", Thread.currentThread().getStackTrace()[THREAD_STACK].getClassName(), Thread.currentThread().getStackTrace()[THREAD_STACK].getMethodName());
+ System.out.println(MessageFormat.format("{0}: Returning this.choosenFaxNumber={1}, caller: {2}", this.getClass().getSimpleName(), this.choosenFaxNumber, caller));
return this.choosenFaxNumber;
}
@Override
public void setChoosenFaxNumber (final DialableFaxNumber choosenFaxNumber) {
+ String caller = MessageFormat.format("{0}.{1}", Thread.currentThread().getStackTrace()[THREAD_STACK].getClassName(), Thread.currentThread().getStackTrace()[THREAD_STACK].getMethodName());
+ System.out.println(MessageFormat.format("{0}: Settin choosenFaxNumber={1}, previous: this.choosenFaxNumber={2}, caller: {3}", this.getClass().getSimpleName(), choosenFaxNumber, this.choosenFaxNumber, caller));
this.choosenFaxNumber = choosenFaxNumber;
}
*/
package org.mxchange.jjobs.validator.booleans;
+import java.text.MessageFormat;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.FacesValidator;
@Override
public void validate (final FacesContext context, final UIComponent component, final Object value) throws ValidatorException {
+ // Log message
+ System.out.println(MessageFormat.format("{0}.validate: context={1},component={2},value={3} - CALLED!", this.getClass().getSimpleName(), context, component, value));
+
// The required field
String[] requiredFields = {"landLineAreaCode", "landLineNumber", "faxAreaCode", "faxNumber", "mobileNumber"}; //NOI18N
+ // Log message
+ System.out.println(MessageFormat.format("{0}.validate: component.clientId={1}", this.getClass().getSimpleName(), component.getClientId()));
+
// Pre-validation (example: not null, not a string, empty string ...)
- super.preValidate(context, component, value, requiredFields, false);
+ super.preValidate(context, component, value, requiredFields, true);
- // Trace message
- //* NOISY-DEBUG: */ System.out.println("validate: EXIT!"); //NOI18N
+ // Log message
+ System.out.println(MessageFormat.format("{0}.validate: EXIT!", this.getClass().getSimpleName()));
}
}
<supported-locale>en_US</supported-locale>
</locale-config>
</application>
+ <lifecycle>
+ <phase-listener>de.chotime.landingpage.debug.LandingDebugLifeCycleListener</phase-listener>
+ </lifecycle>
<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>
<div class="table_footer">
<h:commandButton styleClass="reset right_space" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
- <h:commandButton styleClass="submit" id="submit_add_link_contact_fax" type="submit" action="#{adminContactPhoneController.doLinkAddFaxNumber(beanHelper.contact)}" value="#{msg.BUTTON_ADMIN_LINK_ADD_CONTACT_FAX_NUMBER}" />
+
+ <h:commandButton styleClass="submit" id="submit_add_link_contact_fax" type="submit" action="#{adminContactPhoneController.doLinkAddFaxNumber(beanHelper.contact)}" value="#{msg.BUTTON_ADMIN_LINK_ADD_CONTACT_FAX_NUMBER}">
+ <f:param name="contactId" value="#{param.contactId}" />
+ </h:commandButton>
</div>
</h:panelGroup>
</h:form>
<div class="table_footer">
<h:commandButton styleClass="reset right_space" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
- <h:commandButton styleClass="submit" id="submit_add_link_contact_landline" type="submit" action="#{adminContactPhoneController.doLinkAddLandLineNumber(beanHelper.contact)}" value="#{msg.BUTTON_ADMIN_LINK_ADD_CONTACT_LAND_LINE_NUMBER}" />
+
+ <h:commandButton styleClass="submit" id="submit_add_link_contact_landline" type="submit" action="#{adminContactPhoneController.doLinkAddLandLineNumber(beanHelper.contact)}" value="#{msg.BUTTON_ADMIN_LINK_ADD_CONTACT_LAND_LINE_NUMBER}">
+ <f:param name="contactId" value="#{param.contactId}" />
+ </h:commandButton>
</div>
</h:panelGroup>
</h:form>
<div class="table_footer">
<h:commandButton styleClass="reset right_space" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
- <h:commandButton styleClass="submit" id="submit_add_link_contact_mobile" type="submit" action="#{adminContactPhoneController.doLinkAddMobileNumber(beanHelper.contact)}" value="#{msg.BUTTON_ADMIN_LINK_ADD_CONTACT_MOBILE_NUMBER}" />
+
+ <h:commandButton styleClass="submit" id="submit_add_link_contact_mobile" type="submit" action="#{adminContactPhoneController.doLinkAddMobileNumber(beanHelper.contact)}" value="#{msg.BUTTON_ADMIN_LINK_ADD_CONTACT_MOBILE_NUMBER}">
+ <f:param name="contactId" value="#{param.contactId}" />
+ </h:commandButton>
</div>
</h:panelGroup>
</h:form>
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core">
+ <ui:insert name="metadata">
+ </ui:insert>
+
<f:view locale="#{localizationController.locale}" contentType="text/html">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<description>An application for handling and sending out applications to companies.</description>
<display-name>JJobs v1.0</display-name>
+ <context-param>
+ <param-name>javax.faces.PROJECT_STAGE</param-name>
+ <param-value>Development</param-value>
+ </context-param>
<context-param>
<description>Whether the multi-page registration page or a single registration page is active</description>
<param-name>is_feature_user_register_multiple_page_enabled</param-name>
xmlns:f="http://xmlns.jcp.org/jsf/core"
>
- <f:metadata>
- <f:viewParam name="contactId" value="#{beanHelper.contact}" converter="ContactConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_CONTACT_ID_NOT_SET}" />
- <f:viewAction onPostback="true" action="#{beanHelper.copyContactToController()}" />
- </f:metadata>
-
<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
+ <ui:define name="metadata">
+ <f:metadata>
+ <f:viewParam name="contactId" value="#{beanHelper.contact}" converter="ContactConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_CONTACT_ID_NOT_SET}" />
+ <f:viewAction onPostback="true" action="#{beanHelper.copyContactToController()}" />
+ </f:metadata>
+ </ui:define>
+
<ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_DELETE_CONTACT}</ui:define>
<ui:define name="content_header">
xmlns:f="http://xmlns.jcp.org/jsf/core"
>
- <f:metadata>
- <f:viewParam name="contactId" value="#{beanHelper.contact}" converter="ContactConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_CONTACT_ID_NOT_SET}" />
- <f:viewAction onPostback="true" action="#{beanHelper.copyContactToController()}" />
- </f:metadata>
-
<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
+ <ui:define name="metadata">
+ <f:metadata>
+ <f:viewParam name="contactId" value="#{beanHelper.contact}" converter="ContactConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_CONTACT_ID_NOT_SET}" />
+ <f:viewAction onPostback="true" action="#{beanHelper.copyContactToController()}" />
+ </f:metadata>
+ </ui:define>
+
<ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_EDIT_CONTACT}</ui:define>
<ui:define name="content_header">
xmlns:f="http://xmlns.jcp.org/jsf/core"
>
- <f:metadata>
- <f:viewParam name="contactId" value="#{beanHelper.contact}" converter="ContactConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_CONTACT_ID_NOT_SET}" />
- <f:viewAction onPostback="true" action="#{beanHelper.copyContactToController()}" />
- </f:metadata>
-
<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
+ <ui:define name="metadata">
+ <f:metadata>
+ <f:viewParam name="contactId" value="#{beanHelper.contact}" converter="ContactConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_CONTACT_ID_NOT_SET}" />
+ <f:viewAction onPostback="true" action="#{beanHelper.copyContactToController()}" />
+ </f:metadata>
+ </ui:define>
+
<ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_SHOW_CONTACT}</ui:define>
<ui:define name="content_header">
xmlns:f="http://xmlns.jcp.org/jsf/core"
>
- <f:metadata>
- <f:viewParam name="phoneId" value="#{beanHelper.faxNumber}" converter="FaxNumberConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
- <f:viewParam name="contactId" value="#{beanHelper.contact}" converter="ContactConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_CONTACT_ID_NOT_SET}" />
- </f:metadata>
-
<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
+ <ui:define name="metadata">
+ <f:metadata>
+ <f:viewParam name="phoneId" value="#{beanHelper.faxNumber}" converter="FaxNumberConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
+ <f:viewParam name="contactId" value="#{beanHelper.contact}" converter="ContactConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_CONTACT_ID_NOT_SET}" />
+ </f:metadata>
+ </ui:define>
+
<ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_UNLINK_CONTACT_FAX_NUMBER}</ui:define>
<ui:define name="content_header">
xmlns:f="http://xmlns.jcp.org/jsf/core"
>
- <f:metadata>
- <f:viewParam name="phoneId" value="#{beanHelper.landLineNumber}" converter="LandLineNumberConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
- <f:viewParam name="contactId" value="#{beanHelper.contact}" converter="ContactConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_CONTACT_ID_NOT_SET}" />
- </f:metadata>
-
<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
+ <ui:define name="metadata">
+ <f:metadata>
+ <f:viewParam name="phoneId" value="#{beanHelper.landLineNumber}" converter="LandLineNumberConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
+ <f:viewParam name="contactId" value="#{beanHelper.contact}" converter="ContactConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_CONTACT_ID_NOT_SET}" />
+ </f:metadata>
+ </ui:define>
+
<ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_UNLINK_CONTACT_LAND_LINE_NUMBER}</ui:define>
<ui:define name="content_header">
xmlns:f="http://xmlns.jcp.org/jsf/core"
>
- <f:metadata>
- <f:viewParam name="phoneId" value="#{beanHelper.mobileNumber}" converter="MobileNumberConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
- <f:viewParam name="contactId" value="#{beanHelper.contact}" converter="ContactConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_CONTACT_ID_NOT_SET}" />
- </f:metadata>
+ <ui:define name="metadata">
+ <f:metadata>
+ <f:viewParam name="phoneId" value="#{beanHelper.mobileNumber}" converter="MobileNumberConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
+ <f:viewParam name="contactId" value="#{beanHelper.contact}" converter="ContactConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_CONTACT_ID_NOT_SET}" />
+ </f:metadata>
+ </ui:define>
<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
<ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_UNLINK_CONTACT_MOBILE_NUMBER}</ui:define>
xmlns:f="http://xmlns.jcp.org/jsf/core"
>
- <f:metadata>
- <f:viewParam name="phoneId" value="#{beanHelper.faxNumber}" converter="FaxNumberConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
- </f:metadata>
-
<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
+ <ui:define name="metadata">
+ <f:metadata>
+ <f:viewParam name="phoneId" value="#{beanHelper.faxNumber}" converter="FaxNumberConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
+ </f:metadata>
+ </ui:define>
+
<ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_DELETE_FAX}</ui:define>
<ui:define name="content_header">
xmlns:f="http://xmlns.jcp.org/jsf/core"
>
- <f:metadata>
- <f:viewParam name="phoneId" value="#{beanHelper.faxNumber}" converter="FaxNumberConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
- <f:viewAction onPostback="true" action="#{beanHelper.copyFaxNumberToController()}" />
- </f:metadata>
-
<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
+ <ui:define name="metadata">
+ <f:metadata>
+ <f:viewParam name="phoneId" value="#{beanHelper.faxNumber}" converter="FaxNumberConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
+ <f:viewAction onPostback="true" action="#{beanHelper.copyFaxNumberToController()}" />
+ </f:metadata>
+ </ui:define>
+
<ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_EDIT_FAX}</ui:define>
<ui:define name="content_header">
xmlns:f="http://xmlns.jcp.org/jsf/core"
>
- <f:metadata>
- <f:viewParam name="phoneId" value="#{beanHelper.faxNumber}" converter="FaxNumberConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
- </f:metadata>
-
<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
+ <ui:define name="metadata">
+ <f:metadata>
+ <f:viewParam name="phoneId" value="#{beanHelper.faxNumber}" converter="FaxNumberConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
+ </f:metadata>
+ </ui:define>
+
<ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_SHOW_FAX}</ui:define>
<ui:define name="content_header">
xmlns:f="http://xmlns.jcp.org/jsf/core"
>
- <f:metadata>
- <f:viewParam name="phoneId" value="#{beanHelper.landLineNumber}" converter="LandLineNumberConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
- </f:metadata>
-
<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
+ <ui:define name="metadata">
+ <f:metadata>
+ <f:viewParam name="phoneId" value="#{beanHelper.landLineNumber}" converter="LandLineNumberConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
+ </f:metadata>
+ </ui:define>
+
<ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_DELETE_LAND_LINE}</ui:define>
<ui:define name="content_header">
xmlns:f="http://xmlns.jcp.org/jsf/core"
>
- <f:metadata>
- <f:viewParam name="phoneId" value="#{beanHelper.landLineNumber}" converter="LandLineNumberConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
- <f:viewAction onPostback="true" action="#{beanHelper.copyLandLineNumberToController()}" />
- </f:metadata>
-
<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
+ <ui:define name="metadata">
+ <f:metadata>
+ <f:viewParam name="phoneId" value="#{beanHelper.landLineNumber}" converter="LandLineNumberConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
+ <f:viewAction onPostback="true" action="#{beanHelper.copyLandLineNumberToController()}" />
+ </f:metadata>
+ </ui:define>
+
<ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_EDIT_LAND_LINE_NUMBER}</ui:define>
<ui:define name="content_header">
xmlns:f="http://xmlns.jcp.org/jsf/core"
>
- <f:metadata>
- <f:viewParam name="phoneId" value="#{beanHelper.landLineNumber}" converter="LandLineNumberConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
- </f:metadata>
-
<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
+ <ui:define name="metadata">
+ <f:metadata>
+ <f:viewParam name="phoneId" value="#{beanHelper.landLineNumber}" converter="LandLineNumberConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
+ </f:metadata>
+ </ui:define>
+
<ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_SHOW_LAND_LINE}</ui:define>
<ui:define name="content_header">
xmlns:f="http://xmlns.jcp.org/jsf/core"
>
- <f:metadata>
- <f:viewParam name="phoneId" value="#{beanHelper.mobileNumber}" converter="MobileNumberConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
- </f:metadata>
+ <ui:define name="metadata">
+ <f:metadata>
+ <f:viewParam name="phoneId" value="#{beanHelper.mobileNumber}" converter="MobileNumberConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
+ </f:metadata>
+ </ui:define>
<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
<ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_DELETE_MOBILE_NUMBER}</ui:define>
xmlns:f="http://xmlns.jcp.org/jsf/core"
>
- <f:metadata>
- <f:viewParam name="phoneId" value="#{beanHelper.mobileNumber}" converter="MobileNumberConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
- <f:viewAction onPostback="true" action="#{beanHelper.copyMobileNumberToController()}" />
- </f:metadata>
+ <ui:define name="metadata">
+ <f:metadata>
+ <f:viewParam name="phoneId" value="#{beanHelper.mobileNumber}" converter="MobileNumberConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
+ <f:viewAction onPostback="true" action="#{beanHelper.copyMobileNumberToController()}" />
+ </f:metadata>
+ </ui:define>
<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
<ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_EDIT_MOBILE_NUMBER}</ui:define>
xmlns:f="http://xmlns.jcp.org/jsf/core"
>
- <f:metadata>
- <f:viewParam name="phoneId" value="#{beanHelper.mobileNumber}" converter="MobileNumberConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
- </f:metadata>
+ <ui:define name="metadata">
+ <f:metadata>
+ <f:viewParam name="phoneId" value="#{beanHelper.mobileNumber}" converter="MobileNumberConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
+ </f:metadata>
+ </ui:define>
<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
<ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_SHOW_MOBILE_NUMBER}</ui:define>
xmlns:f="http://xmlns.jcp.org/jsf/core"
>
- <f:metadata>
- <f:viewParam name="userId" value="#{beanHelper.user}" converter="UserConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_USER_ID_NOT_SET}" />
- <f:viewAction onPostback="true" action="#{beanHelper.copyUserToController()}" />
- </f:metadata>
-
<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
+ <ui:define name="metadata">
+ <f:metadata>
+ <f:viewParam name="userId" value="#{beanHelper.user}" converter="UserConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_USER_ID_NOT_SET}" />
+ <f:viewAction onPostback="true" action="#{beanHelper.copyUserToController()}" />
+ </f:metadata>
+ </ui:define>
+
<ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_DELETE_USER}</ui:define>
<ui:define name="content_header">
xmlns:f="http://xmlns.jcp.org/jsf/core"
>
- <f:metadata>
- <f:viewParam name="userId" value="#{beanHelper.user}" converter="UserConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_USER_ID_NOT_SET}" />
- <f:viewAction onPostback="true" action="#{beanHelper.copyUserToController()}" />
- </f:metadata>
-
<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
+ <ui:define name="metadata">
+ <f:metadata>
+ <f:viewParam name="userId" value="#{beanHelper.user}" converter="UserConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_USER_ID_NOT_SET}" />
+ <f:viewAction onPostback="true" action="#{beanHelper.copyUserToController()}" />
+ </f:metadata>
+ </ui:define>
+
<ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_EDIT_USER}</ui:define>
<ui:define name="content_header">
xmlns:f="http://xmlns.jcp.org/jsf/core"
>
- <f:metadata>
- <f:viewParam name="userId" value="#{beanHelper.user}" converter="UserConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_USER_ID_NOT_SET}" />
- <f:viewAction onPostback="true" action="#{beanHelper.copyUserToController()}" />
- </f:metadata>
-
<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
+ <ui:define name="metadata">
+ <f:metadata>
+ <f:viewParam name="userId" value="#{beanHelper.user}" converter="UserConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_USER_ID_NOT_SET}" />
+ <f:viewAction onPostback="true" action="#{beanHelper.copyUserToController()}" />
+ </f:metadata>
+ </ui:define>
+
<ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_LOCK_USER}</ui:define>
<ui:define name="content_header">
xmlns:f="http://xmlns.jcp.org/jsf/core"
>
- <f:metadata>
- <f:viewParam name="userId" value="#{beanHelper.user}" converter="UserConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_USER_ID_NOT_SET}" />
- <f:viewAction onPostback="true" action="#{beanHelper.copyUserToController()}" />
- </f:metadata>
-
<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
+ <ui:define name="metadata">
+ <f:metadata>
+ <f:viewParam name="userId" value="#{beanHelper.user}" converter="UserConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_USER_ID_NOT_SET}" />
+ <f:viewAction onPostback="true" action="#{beanHelper.copyUserToController()}" />
+ </f:metadata>
+ </ui:define>
+
<ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_SHOW_USER}</ui:define>
<ui:define name="content_header">
xmlns:f="http://xmlns.jcp.org/jsf/core"
>
- <f:metadata>
- <f:viewParam name="userId" value="#{beanHelper.user}" converter="UserConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_USER_ID_NOT_SET}" />
- <f:viewAction onPostback="true" action="#{beanHelper.copyUserToController()}" />
- </f:metadata>
+ <ui:define name="metadata">
+ <f:metadata>
+ <f:viewParam name="userId" value="#{beanHelper.user}" converter="UserConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_USER_ID_NOT_SET}" />
+ <f:viewAction onPostback="true" action="#{beanHelper.copyUserToController()}" />
+ </f:metadata>
+ </ui:define>
<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
<ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_UNLOCK_USER}</ui:define>
xmlns:f="http://xmlns.jcp.org/jsf/core"
>
- <f:metadata>
- <f:viewParam name="confirmKey" value="#{confirmationLinkController.confirmationKey}" />
- <f:viewAction onPostback="true" action="#{confirmationLinkController.maybeConfirmUserAccount()}" />
- </f:metadata>
-
<ui:composition template="/WEB-INF/templates/guest/guest_base.tpl">
+ <ui:define name="metadata">
+ <f:metadata>
+ <f:viewParam name="confirmKey" value="#{confirmationLinkController.confirmationKey}" />
+ <f:viewAction onPostback="true" action="#{confirmationLinkController.maybeConfirmUserAccount()}" />
+ </f:metadata>
+ </ui:define>
+
<ui:define name="guest_title">#{msg.PAGE_TITLE_INDEX_CONFIRM_ACCOUNT}</ui:define>
<ui:define name="content_header">
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core">
- <f:metadata>
- <f:viewParam id="userId" name="userId" value="#{userController.userId}" required="true" requiredMessage="#{msg.PARAMETER_USER_ID_MISSING}" converterMessage="#{msg.PARAMETER_USER_ID_INVALID}" validatorMessage="#{msg.PARAMETER_USER_ID_NOT_FOUND}">
- <f:convertNumber for="userId" type="number" minIntegerDigits="1" maxIntegerDigits="20" />
- <f:validator for="userId" validatorId="UserIdValidator" />
- </f:viewParam>
- </f:metadata>
-
<ui:composition template="/WEB-INF/templates/#{userLoginController.baseTemplatePathName}_base.tpl">
- <ui:define name="login_title">#{msg.PAGE_TITLE_LOGIN_USER_PROFILE}</ui:define>
+ <ui:define name="metadata">
+ <f:metadata>
+ <f:viewParam id="userId" name="userId" value="#{userController.userId}" required="true" requiredMessage="#{msg.PARAMETER_USER_ID_MISSING}" converterMessage="#{msg.PARAMETER_USER_ID_INVALID}" validatorMessage="#{msg.PARAMETER_USER_ID_NOT_FOUND}">
+ <f:convertNumber for="userId" type="number" minIntegerDigits="1" maxIntegerDigits="20" />
+ <f:validator for="userId" validatorId="UserIdValidator" />
+ </f:viewParam>
+ </f:metadata>
+ </ui:define>
+
+ <ui:define name="login_title">#{msg.PAGE_TITLE_USER_LOGIN_USER_PROFILE}</ui:define>
<ui:define name="guest_title">#{msg.PAGE_TITLE_INDEX_USER_PROFILE}</ui:define>
<ui:define name="content_header">