From: Roland Häder <roland@mxchange.org>
Date: Mon, 17 Jul 2017 14:37:31 +0000 (+0200)
Subject: Please cherry-pick:
X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=fb54b044640e494c10be2013cdc83991359f5eb6;p=addressbook-war.git

Please cherry-pick:
- internationalized "Administration" so it can be translated in many
  other languages
- put ui:insert for "metadata" into f:view, still broken!
- no need for "id-ing" h:body/head as they should occur once anyway
- moved f:metadata back into ui:component, still broken and expection

Signed-off-by: Roland Häder <roland@mxchange.org>
---

diff --git a/src/java/org/mxchange/localization/bundle_de_DE.properties b/src/java/org/mxchange/localization/bundle_de_DE.properties
index 0a819444..3a8239b4 100644
--- a/src/java/org/mxchange/localization/bundle_de_DE.properties
+++ b/src/java/org/mxchange/localization/bundle_de_DE.properties
@@ -841,3 +841,4 @@ GUEST_REGISTRATION_USER_PASSWORDS_EMPTY_NOT_ALLOWED=Sie muessen selbst ein Passw
 GUEST_REGISTRATION_PASSWORD_NOT_ENTERED=Bitte geben Sie ein Passwort ein. Dies muss den Sicherheitsregeln entsprechen.
 #@TODO Please fix German umlauts!
 GUEST_REGISTRATION_PASSWORD_REPEAT_NOT_ENTERED=Bitte wiederholen Sie das eingegebene Passwort. Dies wird zur Bestaetigung benoetigt.
+PAGE_TITLE_ADMIN_AREA=Administration
diff --git a/src/java/org/mxchange/localization/bundle_en_US.properties b/src/java/org/mxchange/localization/bundle_en_US.properties
index 12c91dd8..26470fea 100644
--- a/src/java/org/mxchange/localization/bundle_en_US.properties
+++ b/src/java/org/mxchange/localization/bundle_en_US.properties
@@ -833,3 +833,4 @@ GUEST_REGISTRATION_USER_PASSWORDS_EMPTY_ALLOWED=If you left both password fields
 GUEST_REGISTRATION_USER_PASSWORDS_EMPTY_NOT_ALLOWED=You have to enter an own password. Please enter it twice for confirmation.
 GUEST_REGISTRATION_PASSWORD_NOT_ENTERED=Please enter a password. This must match with security rules.
 GUEST_REGISTRATION_PASSWORD_REPEAT_NOT_ENTERED=Please repeat the entered password. This done to confirm the password.
+PAGE_TITLE_ADMIN_AREA=Administration
diff --git a/web/WEB-INF/templates/admin/admin_base.tpl b/web/WEB-INF/templates/admin/admin_base.tpl
index 92dc3d0a..ed355aec 100644
--- a/web/WEB-INF/templates/admin/admin_base.tpl
+++ b/web/WEB-INF/templates/admin/admin_base.tpl
@@ -5,9 +5,13 @@ TODO: Add something here that should be displayed on all admin pages
 <ui:composition
 	template="/WEB-INF/templates/base.tpl"
 	xmlns="http://www.w3.org/1999/xhtml"
-	xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
+	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
+	xmlns:h="http://xmlns.jcp.org/jsf/html">
 
-	<ui:define name="title">Administration - <ui:insert name="admin_title">Default admin title</ui:insert></ui:define>
+	<ui:define name="title">
+		<h:outputText value="#{msg.PAGE_TITLE_ADMIN_AREA}" /> -
+		<ui:insert name="admin_title">Default admin title</ui:insert>
+	</ui:define>
 
 	<ui:define name="menu">
 		<ui:include src="/WEB-INF/templates/admin/admin_menu.tpl" />
diff --git a/web/WEB-INF/templates/base.tpl b/web/WEB-INF/templates/base.tpl
index 2f0d303d..4775a386 100644
--- a/web/WEB-INF/templates/base.tpl
+++ b/web/WEB-INF/templates/base.tpl
@@ -5,11 +5,10 @@
 	xmlns:h="http://java.sun.com/jsf/html"
 	xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
 
-	<ui:insert name="metadata">
-	</ui:insert>
-
 	<f:view locale="#{localizationController.locale}" contentType="text/html">
-		<h:head id="head">
+		<ui:insert name="metadata" />
+
+		<h:head>
 			<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 
 			<f:loadBundle var="msg" basename="org.mxchange.localization.bundle" />
@@ -20,7 +19,7 @@
 			<title>Addressbook - <ui:insert name="title">Default title</ui:insert></title>
 		</h:head>
 
-		<h:body id="body">
+		<h:body>
 			<div id="top">
 				<div id="page_header">
 					<div id="page_title">
diff --git a/web/admin/contact/admin_contact_delete.xhtml b/web/admin/contact/admin_contact_delete.xhtml
index 81e28bf0..535cac3f 100644
--- a/web/admin/contact/admin_contact_delete.xhtml
+++ b/web/admin/contact/admin_contact_delete.xhtml
@@ -8,12 +8,14 @@
 	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}" converterMessage="#{msg.PARAMETER_CONTACT_ID_INVALID}" />
-		<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}" converterMessage="#{msg.PARAMETER_CONTACT_ID_INVALID}" />
+				<f:viewAction onPostback="true" action="#{beanHelper.copyContactToController()}" />
+			</f:metadata>
+		</ui:define>
+
 		<ui:define name="admin_title">
 			<h:outputText value="#{msg.PAGE_TITLE_ADMIN_DELETE_CONTACT}" />
 		</ui:define>
diff --git a/web/admin/contact/admin_contact_edit.xhtml b/web/admin/contact/admin_contact_edit.xhtml
index e0ea8d77..e9314384 100644
--- a/web/admin/contact/admin_contact_edit.xhtml
+++ b/web/admin/contact/admin_contact_edit.xhtml
@@ -8,12 +8,14 @@
 	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}" converterMessage="#{msg.PARAMETER_CONTACT_ID_INVALID}" />
-		<f:viewAction 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}" converterMessage="#{msg.PARAMETER_CONTACT_ID_INVALID}" />
+				<f:viewAction action="#{beanHelper.copyContactToController()}" />
+			</f:metadata>
+		</ui:define>
+
 		<ui:define name="admin_title">
 			<h:outputText value="#{msg.PAGE_TITLE_ADMIN_EDIT_CONTACT}" />
 		</ui:define>
diff --git a/web/admin/contact/admin_contact_show.xhtml b/web/admin/contact/admin_contact_show.xhtml
index a01e615d..fefe5d66 100644
--- a/web/admin/contact/admin_contact_show.xhtml
+++ b/web/admin/contact/admin_contact_show.xhtml
@@ -7,12 +7,14 @@
 	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}" converterMessage="#{msg.PARAMETER_PHONE_ID_INVALID}" />
-		<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}" converterMessage="#{msg.PARAMETER_PHONE_ID_INVALID}" />
+				<f:viewAction onPostback="true" action="#{beanHelper.copyContactToController()}" />
+			</f:metadata>
+		</ui:define>
+
 		<ui:define name="admin_title">
 			<h:outputText value="#{msg.PAGE_TITLE_ADMIN_SHOW_CONTACT}" />
 		</ui:define>
diff --git a/web/admin/contact/unlink/admin_contact_fax_unlink.xhtml b/web/admin/contact/unlink/admin_contact_fax_unlink.xhtml
index 53dc21cb..b2bb1eb9 100644
--- a/web/admin/contact/unlink/admin_contact_fax_unlink.xhtml
+++ b/web/admin/contact/unlink/admin_contact_fax_unlink.xhtml
@@ -7,12 +7,14 @@
 	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}" converterMessage="#{msg.PARAMETER_PHONE_ID_INVALID}" />
-		<f:viewParam name="contactId" value="#{beanHelper.contact}" converter="ContactConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_CONTACT_ID_NOT_SET}" converterMessage="#{msg.PARAMETER_CONTACT_ID_INVALID}" />
-	</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}" converterMessage="#{msg.PARAMETER_PHONE_ID_INVALID}" />
+				<f:viewParam name="contactId" value="#{beanHelper.contact}" converter="ContactConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_CONTACT_ID_NOT_SET}" converterMessage="#{msg.PARAMETER_CONTACT_ID_INVALID}" />
+			</f:metadata>
+		</ui:define>
+
 		<ui:define name="admin_title">
 			<h:outputText value="#{msg.PAGE_TITLE_ADMIN_UNLINK_CONTACT_FAX_NUMBER}" />
 		</ui:define>
diff --git a/web/admin/contact/unlink/admin_contact_landline_unlink.xhtml b/web/admin/contact/unlink/admin_contact_landline_unlink.xhtml
index cc02f580..28d1ed27 100644
--- a/web/admin/contact/unlink/admin_contact_landline_unlink.xhtml
+++ b/web/admin/contact/unlink/admin_contact_landline_unlink.xhtml
@@ -7,12 +7,14 @@
 	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}" converterMessage="#{msg.PARAMETER_PHONE_ID_INVALID}" />
-		<f:viewParam name="contactId" value="#{beanHelper.contact}" converter="ContactConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_CONTACT_ID_NOT_SET}" converterMessage="#{msg.PARAMETER_CONTACT_ID_INVALID}" />
-	</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}" converterMessage="#{msg.PARAMETER_PHONE_ID_INVALID}" />
+				<f:viewParam name="contactId" value="#{beanHelper.contact}" converter="ContactConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_CONTACT_ID_NOT_SET}" converterMessage="#{msg.PARAMETER_CONTACT_ID_INVALID}" />
+			</f:metadata>
+		</ui:define>
+
 		<ui:define name="admin_title">
 			<h:outputText value="#{msg.PAGE_TITLE_ADMIN_UNLINK_CONTACT_LAND_LINE_NUMBER}" />
 		</ui:define>
diff --git a/web/admin/contact/unlink/admin_contact_mobile_unlink.xhtml b/web/admin/contact/unlink/admin_contact_mobile_unlink.xhtml
index 90ab08c2..eb4c5c5c 100644
--- a/web/admin/contact/unlink/admin_contact_mobile_unlink.xhtml
+++ b/web/admin/contact/unlink/admin_contact_mobile_unlink.xhtml
@@ -7,12 +7,14 @@
 	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}" converterMessage="#{msg.PARAMETER_PHONE_ID_INVALID}" />
-		<f:viewParam name="contactId" value="#{beanHelper.contact}" converter="ContactConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_CONTACT_ID_NOT_SET}" converterMessage="#{msg.PARAMETER_CONTACT_ID_INVALID}" />
-	</f:metadata>
-
 	<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
+		<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}" converterMessage="#{msg.PARAMETER_PHONE_ID_INVALID}" />
+				<f:viewParam name="contactId" value="#{beanHelper.contact}" converter="ContactConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_CONTACT_ID_NOT_SET}" converterMessage="#{msg.PARAMETER_CONTACT_ID_INVALID}" />
+			</f:metadata>
+		</ui:define>
+
 		<ui:define name="admin_title">
 			<h:outputText value="#{msg.PAGE_TITLE_ADMIN_UNLINK_CONTACT_MOBILE_NUMBER}" />
 		</ui:define>
diff --git a/web/admin/fax/admin_fax_delete.xhtml b/web/admin/fax/admin_fax_delete.xhtml
index af152042..e02e874e 100644
--- a/web/admin/fax/admin_fax_delete.xhtml
+++ b/web/admin/fax/admin_fax_delete.xhtml
@@ -7,12 +7,14 @@
 	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}" converterMessage="#{msg.PARAMETER_PHONE_ID_INVALID}" />
-		<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}" converterMessage="#{msg.PARAMETER_PHONE_ID_INVALID}" />
+				<f:viewAction onPostback="true" action="#{beanHelper.copyFaxNumberToController()}" />
+			</f:metadata>
+		</ui:define>
+
 		<ui:define name="admin_title">
 			<h:outputText value="#{msg.PAGE_TITLE_ADMIN_DELETE_FAX}" />
 		</ui:define>
diff --git a/web/admin/fax/admin_fax_edit.xhtml b/web/admin/fax/admin_fax_edit.xhtml
index c7067b07..ac08ee46 100644
--- a/web/admin/fax/admin_fax_edit.xhtml
+++ b/web/admin/fax/admin_fax_edit.xhtml
@@ -7,12 +7,14 @@
 	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}" converterMessage="#{msg.PARAMETER_PHONE_ID_INVALID}" />
-		<f:viewAction 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}" converterMessage="#{msg.PARAMETER_PHONE_ID_INVALID}" />
+				<f:viewAction action="#{beanHelper.copyFaxNumberToController()}" />
+			</f:metadata>
+		</ui:define>
+
 		<ui:define name="admin_title">
 			<h:outputText value="#{msg.PAGE_TITLE_ADMIN_EDIT_FAX_NUMBER}" />
 		</ui:define>
diff --git a/web/admin/fax/admin_fax_show.xhtml b/web/admin/fax/admin_fax_show.xhtml
index 7d3579bc..f091d402 100644
--- a/web/admin/fax/admin_fax_show.xhtml
+++ b/web/admin/fax/admin_fax_show.xhtml
@@ -7,12 +7,14 @@
 	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}" converterMessage="#{msg.PARAMETER_CONTACT_ID_INVALID}" />
-		<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}" converterMessage="#{msg.PARAMETER_CONTACT_ID_INVALID}" />
+				<f:viewAction onPostback="true" action="#{beanHelper.copyFaxNumberToController()}" />
+			</f:metadata>
+		</ui:define>
+
 		<ui:define name="admin_title">
 			<h:outputText value="#{msg.PAGE_TITLE_ADMIN_SHOW_FAX_NUMBER}" />
 		</ui:define>
diff --git a/web/admin/landline/admin_landline_delete.xhtml b/web/admin/landline/admin_landline_delete.xhtml
index 2d899f74..2fe57c42 100644
--- a/web/admin/landline/admin_landline_delete.xhtml
+++ b/web/admin/landline/admin_landline_delete.xhtml
@@ -7,12 +7,14 @@
 	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}" converterMessage="#{msg.PARAMETER_PHONE_ID_INVALID}" />
-		<f:viewAction 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}" converterMessage="#{msg.PARAMETER_PHONE_ID_INVALID}" />
+				<f:viewAction action="#{beanHelper.copyLandLineNumberToController()}" />
+			</f:metadata>
+		</ui:define>
+
 		<ui:define name="admin_title">
 			<h:outputText value="#{msg.PAGE_TITLE_ADMIN_DELETE_LAND_LINE}" />
 		</ui:define>
diff --git a/web/admin/landline/admin_landline_edit.xhtml b/web/admin/landline/admin_landline_edit.xhtml
index e524a72f..f24cf7d9 100644
--- a/web/admin/landline/admin_landline_edit.xhtml
+++ b/web/admin/landline/admin_landline_edit.xhtml
@@ -7,12 +7,14 @@
 	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}" converterMessage="#{msg.PARAMETER_PHONE_ID_INVALID}" />
-		<f:viewAction 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}" converterMessage="#{msg.PARAMETER_PHONE_ID_INVALID}" />
+				<f:viewAction action="#{beanHelper.copyLandLineNumberToController()}" />
+			</f:metadata>
+		</ui:define>
+
 		<ui:define name="admin_title">
 			<h:outputText value="#{msg.PAGE_TITLE_ADMIN_EDIT_LAND_LINE_NUMBER}" />
 		</ui:define>
diff --git a/web/admin/landline/admin_landline_show.xhtml b/web/admin/landline/admin_landline_show.xhtml
index 12f321ff..7259c587 100644
--- a/web/admin/landline/admin_landline_show.xhtml
+++ b/web/admin/landline/admin_landline_show.xhtml
@@ -7,10 +7,12 @@
 	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 action="#{beanHelper.copyLandLineNumberToController()}" />
-	</f:metadata>
+	<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 action="#{beanHelper.copyLandLineNumberToController()}" />
+		</f:metadata>
+	</ui:define>
 
 	<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
 		<ui:define name="admin_title">
diff --git a/web/admin/mobile/admin_contact_mobile_unlink.xhtml b/web/admin/mobile/admin_contact_mobile_unlink.xhtml
index d61c26b4..f78c5262 100644
--- a/web/admin/mobile/admin_contact_mobile_unlink.xhtml
+++ b/web/admin/mobile/admin_contact_mobile_unlink.xhtml
@@ -7,12 +7,14 @@
 	xmlns:f="http://xmlns.jcp.org/jsf/core"
 	>
 
-	<f:metadata>
-		<f:viewParam name="phoneId" value="#{adminPhoneController.mobileNumber}" converter="MobileNumberConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" converterMessage="#{msg.PARAMETER_PHONE_ID_INVALID}" />
-		<f:viewParam name="contactId" value="#{beanHelper.contact}" converter="ContactConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_CONTACT_ID_NOT_SET}" converterMessage="#{msg.PARAMETER_CONTACT_ID_INVALID}" />
-	</f:metadata>
-
 	<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
+		<ui:define name="metadata">
+			<f:metadata>
+				<f:viewParam name="phoneId" value="#{adminPhoneController.mobileNumber}" converter="CellphoneConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" converterMessage="#{msg.PARAMETER_PHONE_ID_INVALID}" />
+				<f:viewParam name="contactId" value="#{beanHelper.contact}" converter="ContactConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_CONTACT_ID_NOT_SET}" converterMessage="#{msg.PARAMETER_CONTACT_ID_INVALID}" />
+			</f:metadata>
+		</ui:define>
+
 		<ui:define name="admin_title">
 			<h:outputText value="#{msg.PAGE_TITLE_ADMIN_UNLINK_CONTACT_MOBILE_NUMBER}" />
 		</ui:define>
diff --git a/web/admin/mobile/admin_mobile_delete.xhtml b/web/admin/mobile/admin_mobile_delete.xhtml
index 61b20191..c7ad3823 100644
--- a/web/admin/mobile/admin_mobile_delete.xhtml
+++ b/web/admin/mobile/admin_mobile_delete.xhtml
@@ -7,12 +7,14 @@
 	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}" converterMessage="#{msg.PARAMETER_PHONE_ID_INVALID}" />
-		<f:viewAction action="#{beanHelper.copyMobileNumberToController()}" />
-	</f:metadata>
-
 	<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
+		<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}" converterMessage="#{msg.PARAMETER_PHONE_ID_INVALID}" />
+				<f:viewAction action="#{beanHelper.copyMobileNumberToController()}" />
+			</f:metadata>
+		</ui:define>
+
 		<ui:define name="admin_title">
 			<h:outputText value="#{msg.PAGE_TITLE_ADMIN_DELETE_MOBILE_NUMBER}" />
 		</ui:define>
diff --git a/web/admin/mobile/admin_mobile_edit.xhtml b/web/admin/mobile/admin_mobile_edit.xhtml
index 67982d91..fc9381cf 100644
--- a/web/admin/mobile/admin_mobile_edit.xhtml
+++ b/web/admin/mobile/admin_mobile_edit.xhtml
@@ -7,12 +7,14 @@
 	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}" converterMessage="#{msg.PARAMETER_PHONE_ID_INVALID}" />
-		<f:viewAction action="#{beanHelper.copyMobileNumberToController()}" />
-	</f:metadata>
-
 	<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
+		<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}" converterMessage="#{msg.PARAMETER_PHONE_ID_INVALID}" />
+				<f:viewAction action="#{beanHelper.copyMobileNumberToController()}" />
+			</f:metadata>
+		</ui:define>
+
 		<ui:define name="admin_title">
 			<h:outputText value="#{msg.PAGE_TITLE_ADMIN_EDIT_MOBILE_NUMBER}" />
 		</ui:define>
diff --git a/web/admin/mobile/admin_mobile_show.xhtml b/web/admin/mobile/admin_mobile_show.xhtml
index 465a77cc..887adbec 100644
--- a/web/admin/mobile/admin_mobile_show.xhtml
+++ b/web/admin/mobile/admin_mobile_show.xhtml
@@ -8,10 +8,12 @@
 	>
 
 	<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
-		<f:metadata>
-			<f:viewParam name="phoneId" value="#{beanHelper.mobileNumber}" converter="MobileNumberConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" converterMessage="#{msg.PARAMETER_PHONE_ID_INVALID}" />
-			<f:viewAction 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}" converterMessage="#{msg.PARAMETER_PHONE_ID_INVALID}" />
+				<f:viewAction action="#{beanHelper.copyMobileNumberToController()}" />
+			</f:metadata>
+		</ui:define>
 
 		<ui:define name="admin_title">
 			<h:outputText value="#{msg.PAGE_TITLE_ADMIN_SHOW_MOBILE_NUMBER}" />
diff --git a/web/admin/user/admin_user_activity_log.xhtml b/web/admin/user/admin_user_activity_log.xhtml
index 88ff48a3..9e714dc0 100644
--- a/web/admin/user/admin_user_activity_log.xhtml
+++ b/web/admin/user/admin_user_activity_log.xhtml
@@ -7,12 +7,14 @@
 	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}" converterMessage="#{msg.PARAMETER_USER_ID_INVALID}" />
-		<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}" converterMessage="#{msg.PARAMETER_USER_ID_INVALID}" />
+				<f:viewAction onPostback="true" action="#{beanHelper.copyUserToController()}" />
+			</f:metadata>
+		</ui:define>
+
 		<ui:define name="admin_title">
 			<h:outputText value="#{msg.PAGE_TITLE_ADMIN_USER_ACTIVITY_LOG}" />
 		</ui:define>
diff --git a/web/admin/user/admin_user_delete.xhtml b/web/admin/user/admin_user_delete.xhtml
index 7a2802b8..c3740b3c 100644
--- a/web/admin/user/admin_user_delete.xhtml
+++ b/web/admin/user/admin_user_delete.xhtml
@@ -8,12 +8,14 @@
 	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}" converterMessage="#{msg.PARAMETER_USER_ID_INVALID}" />
-		<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}" converterMessage="#{msg.PARAMETER_USER_ID_INVALID}" />
+				<f:viewAction onPostback="true" action="#{beanHelper.copyUserToController()}" />
+			</f:metadata>
+		</ui:define>
+
 		<ui:define name="admin_title">
 			<h:outputText value="#{msg.PAGE_TITLE_ADMIN_DELETE_USER}" />
 		</ui:define>
diff --git a/web/admin/user/admin_user_edit.xhtml b/web/admin/user/admin_user_edit.xhtml
index 174b1a98..86dd72c1 100644
--- a/web/admin/user/admin_user_edit.xhtml
+++ b/web/admin/user/admin_user_edit.xhtml
@@ -7,12 +7,14 @@
 	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}" converterMessage="#{msg.PARAMETER_USER_ID_INVALID}" />
-		<f:viewAction 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}" converterMessage="#{msg.PARAMETER_USER_ID_INVALID}" />
+				<f:viewAction action="#{beanHelper.copyUserToController()}" />
+			</f:metadata>
+		</ui:define>
+
 		<ui:define name="admin_title">
 			<h:outputText value="#{msg.PAGE_TITLE_ADMIN_EDIT_USER}" />
 		</ui:define>
diff --git a/web/admin/user/admin_user_lock.xhtml b/web/admin/user/admin_user_lock.xhtml
index 3923130f..f967ea64 100644
--- a/web/admin/user/admin_user_lock.xhtml
+++ b/web/admin/user/admin_user_lock.xhtml
@@ -7,12 +7,14 @@
 	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}" converterMessage="#{msg.PARAMETER_USER_ID_INVALID}" />
-		<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}" converterMessage="#{msg.PARAMETER_USER_ID_INVALID}" />
+				<f:viewAction onPostback="true" action="#{beanHelper.copyUserToController()}" />
+			</f:metadata>
+		</ui:define>
+
 		<ui:define name="admin_title">
 			<h:outputText value="#{msg.PAGE_TITLE_ADMIN_LOCK_USER}" />
 		</ui:define>
diff --git a/web/admin/user/admin_user_resend_confirmation_link.xhtml b/web/admin/user/admin_user_resend_confirmation_link.xhtml
index 7544cb04..a79e8dda 100644
--- a/web/admin/user/admin_user_resend_confirmation_link.xhtml
+++ b/web/admin/user/admin_user_resend_confirmation_link.xhtml
@@ -7,12 +7,14 @@
 	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}" converterMessage="#{msg.PARAMETER_USER_ID_INVALID}" />
-		<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}" converterMessage="#{msg.PARAMETER_USER_ID_INVALID}" />
+				<f:viewAction onPostback="true" action="#{beanHelper.copyUserToController()}" />
+			</f:metadata>
+		</ui:define>
+
 		<ui:define name="admin_title">
 			<h:outputText value="#{msg.PAGE_TITLE_ADMIN_RESEND_USER_CONFIRMATION_LINK}" />
 		</ui:define>
diff --git a/web/admin/user/admin_user_show.xhtml b/web/admin/user/admin_user_show.xhtml
index 9a5f1b20..fd81fc0a 100644
--- a/web/admin/user/admin_user_show.xhtml
+++ b/web/admin/user/admin_user_show.xhtml
@@ -7,12 +7,14 @@
 	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}" converterMessage="#{msg.PARAMETER_USER_ID_INVALID}" />
-		<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}" converterMessage="#{msg.PARAMETER_USER_ID_INVALID}" />
+				<f:viewAction onPostback="true" action="#{beanHelper.copyUserToController()}" />
+			</f:metadata>
+		</ui:define>
+
 		<ui:define name="admin_title">
 			<h:outputText value="#{msg.PAGE_TITLE_ADMIN_SHOW_USER}" />
 		</ui:define>
diff --git a/web/admin/user/admin_user_unlock.xhtml b/web/admin/user/admin_user_unlock.xhtml
index 8988b3bb..89779819 100644
--- a/web/admin/user/admin_user_unlock.xhtml
+++ b/web/admin/user/admin_user_unlock.xhtml
@@ -8,12 +8,14 @@
 	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}" converterMessage="#{msg.PARAMETER_USER_ID_INVALID}" />
-		<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}" converterMessage="#{msg.PARAMETER_USER_ID_INVALID}" />
+				<f:viewAction onPostback="true" action="#{beanHelper.copyUserToController()}" />
+			</f:metadata>
+		</ui:define>
+
 		<ui:define name="admin_title">
 			<h:outputText value="#{msg.PAGE_TITLE_ADMIN_UNLOCK_USER}" />
 		</ui:define>
diff --git a/web/guest/user/user_confirm_account.xhtml b/web/guest/user/user_confirm_account.xhtml
index 81dea8eb..a49b6eaa 100644
--- a/web/guest/user/user_confirm_account.xhtml
+++ b/web/guest/user/user_confirm_account.xhtml
@@ -7,12 +7,14 @@
 	xmlns:f="http://xmlns.jcp.org/jsf/core"
 	>
 
-	<f:metadata>
-		<f:viewParam name="confirmKey" value="#{userConfirmationLinkController.confirmationKey}" />
-		<f:viewAction onPostback="true" action="#{userConfirmationLinkController.maybeConfirmUserAccount()}" />
-	</f:metadata>
-
 	<ui:composition template="/WEB-INF/templates/guest/guest_base.tpl">
+		<ui:define name="metadata">
+			<f:metadata>
+				<f:viewParam name="confirmKey" value="#{userConfirmationLinkController.confirmationKey}" />
+				<f:viewAction onPostback="true" action="#{userConfirmationLinkController.maybeConfirmUserAccount()}" />
+			</f:metadata>
+		</ui:define>
+
 		<ui:define name="guest_title">
 			<h:outputText value="#{msg.PAGE_TITLE_INDEX_CONFIRM_ACCOUNT}" />
 		</ui:define>
diff --git a/web/guest/user/user_profile.xhtml b/web/guest/user/user_profile.xhtml
index dd7a61e9..fd6ac461 100644
--- a/web/guest/user/user_profile.xhtml
+++ b/web/guest/user/user_profile.xhtml
@@ -7,12 +7,14 @@
 	xmlns:h="http://xmlns.jcp.org/jsf/html"
 	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}" converterMessage="#{msg.PARAMETER_USER_ID_INVALID}" />
-		<f:viewAction action="#{beanHelper.copyUserToController()}" />
-	</f:metadata>
-
 	<ui:composition template="/WEB-INF/templates/#{userLoginController.baseTemplatePathName}_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}" converterMessage="#{msg.PARAMETER_USER_ID_INVALID}" />
+				<f:viewAction action="#{beanHelper.copyUserToController()}" />
+			</f:metadata>
+		</ui:define>
+
 		<ui:define name="login_title">
 			<h:outputText value="#{msg.PAGE_TITLE_USER_LOGIN_USER_PROFILE}" />
 		</ui:define>