From 39b8490d2acc951d9608ca95148195c611133daf Mon Sep 17 00:00:00 2001
From: =?utf8?q?Roland=20H=C3=A4der?= <roland@mxchange.org>
Date: Fri, 15 Sep 2017 22:25:57 +0200
Subject: [PATCH] Please cherry-pick: - added "id" as required attribute for
 widgets:outputMessageBox - got rid of one template being "abused" as message
 box, still there are some   left to be ported - improved i18n strings by
 generalizing them, had: _DEACTIVATED, _NOT_ENABLED   and _DISABLED for the
 same thing, now only _DISABLED is used
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

Signed-off-by: Roland Häder <roland@mxchange.org>
---
 .../localization/bundle_de_DE.properties       | 14 +++++++-------
 .../localization/bundle_en_US.properties       | 14 +++++++-------
 .../resources/tags/messages/message_box.tpl    |  2 +-
 .../tags/profile/user/user_profile_link.tpl    |  2 +-
 .../templates/admin/fax/admin_fax_add_show.tpl |  2 +-
 .../admin/fax/admin_form_add_contact_fax.tpl   |  2 +-
 .../admin_form_add_contact_landline.tpl        |  2 +-
 .../admin/landline/admin_landline_add_show.tpl |  2 +-
 .../mobile/admin_form_add_contact_mobile.tpl   |  2 +-
 .../admin/mobile/admin_mobile_add_show.tpl     |  2 +-
 web/WEB-INF/templates/login/user/user_base.tpl |  2 +-
 web/WEB-INF/templates/user/userid_error.tpl    | 18 ------------------
 web/WEB-INF/web.xml                            |  2 +-
 web/WEB-INF/widgets.jsf.taglib.xml             |  2 +-
 web/admin/contact/admin_contact_delete.xhtml   |  2 +-
 web/admin/contact/admin_contact_edit.xhtml     |  2 +-
 web/admin/contact/admin_contact_show.xhtml     |  2 +-
 .../unlink/admin_contact_fax_unlink.xhtml      |  4 ++--
 .../unlink/admin_contact_landline_unlink.xhtml |  4 ++--
 .../unlink/admin_contact_mobile_unlink.xhtml   |  4 ++--
 web/admin/fax/admin_fax_delete.xhtml           |  2 +-
 web/admin/fax/admin_fax_edit.xhtml             |  2 +-
 web/admin/landline/admin_landline_delete.xhtml |  2 +-
 web/admin/landline/admin_landline_edit.xhtml   |  2 +-
 web/admin/mobile/admin_mobile_delete.xhtml     |  2 +-
 web/admin/mobile/admin_mobile_edit.xhtml       |  2 +-
 web/admin/user/admin_user_activity_log.xhtml   |  2 +-
 web/admin/user/admin_user_delete.xhtml         |  2 +-
 web/admin/user/admin_user_edit.xhtml           |  2 +-
 web/admin/user/admin_user_export.xhtml         |  2 +-
 web/admin/user/admin_user_list.xhtml           |  4 +---
 web/admin/user/admin_user_lock.xhtml           |  2 +-
 .../admin_user_resend_confirmation_link.xhtml  |  2 +-
 web/admin/user/admin_user_show.xhtml           |  2 +-
 web/admin/user/admin_user_unlock.xhtml         |  2 +-
 web/guest/user/user_confirm_account.xhtml      |  4 ++--
 web/guest/user/user_list.xhtml                 |  2 +-
 web/guest/user/user_login.xhtml                |  2 +-
 web/guest/user/user_lost_password.xhtml        |  2 +-
 web/guest/user/user_profile.xhtml              | 12 +++++-------
 web/guest/user/user_register.xhtml             |  4 ++--
 web/guest/user/user_register_done.xhtml        |  3 ++-
 web/guest/user/user_register_page2.xhtml       |  2 +-
 web/guest/user/user_resend_done.xhtml          |  2 +-
 web/guest/user/user_resend_link.xhtml          |  2 +-
 web/user/login_contact_data_saved.xhtml        |  4 ++--
 web/user/login_data_saved.xhtml                |  2 +-
 web/user/login_user_change_email_address.xhtml |  2 +-
 web/user/login_user_change_password.xhtml      |  4 ++--
 web/user/login_user_change_personal_data.xhtml |  2 +-
 web/user/login_user_contact_data_saved.xhtml   |  8 +++-----
 web/user/login_user_data_saved.xhtml           |  2 +-
 52 files changed, 77 insertions(+), 100 deletions(-)
 delete mode 100644 web/WEB-INF/templates/user/userid_error.tpl

diff --git a/src/java/org/mxchange/localization/bundle_de_DE.properties b/src/java/org/mxchange/localization/bundle_de_DE.properties
index da85dcb9..a5f3ec1f 100644
--- a/src/java/org/mxchange/localization/bundle_de_DE.properties
+++ b/src/java/org/mxchange/localization/bundle_de_DE.properties
@@ -390,7 +390,7 @@ ADMIN_LINK_SHOW_USER_TITLE=Administratives Benutzerprofil anzeigen
 PAGE_TITLE_ADMIN_SHOW_USER=Benutzerprofil anzeigen
 CONTENT_TITLE_ADMIN_SHOW_USER=Profil eines Benutzers anzeigen:
 ERROR_PARAMETER_USER_ID_NOT_SET=Fehler: Benutzer-Id nicht gesetzt (Parameter: userId).
-ERROR_USER_ID_NOT_FOUND=Fehler: Benutzereintrag nicht gefunden.
+ERROR_USER_NOT_FOUND=Fehler: Benutzereintrag nicht gefunden.
 ADMIN_TABLE_SUMMARY_SHOW_USER_DATA=Zeigt ein Benutzerprofil f\u00fcr administrative Zwecke an.
 ADMIN_HEADER_SHOW_USER=Benutzer {0} (Nummer {1}):
 ADMIN_USER_ID=Benutzer-Id:
@@ -499,13 +499,13 @@ ERROR_CONTACT_ID_NOT_FOUND=Fehler: Kontaktdaten nicht gefunden.
 GUEST_REGISTRATION_PAGE1_TITLE=Anmeldeseite 1
 GUEST_REGISTRATION_PAGE2_TITLE=Anmeldeseite 2
 BUTTON_CONTINUE_REGISTER_PAGE2=Weiter zur Anmeldeseite 2
-ERROR_GUEST_REGISTER_MULTIPLE_PAGE_NOT_ENABLED=Fehler: Mehrfach-Seite f\u00fcr Anmeldung nicht aktiv, bitte Link nicht aufrufen.
+ERROR_GUEST_REGISTER_MULTIPLE_PAGE_DISABLED=Fehler: Mehrfach-Seite f\u00fcr Anmeldung nicht aktiv, bitte Link nicht aufrufen.
 PAGE_TITLE_USER_REGISTER_PAGE2=Anmeldeseite 2
 CONTENT_TITLE_USER_REGISTER_PAGE2=Anmeldeseite 2:
-ERROR_GUEST_USER_LOGIN_DEACTIVATED=Fehler: Der Benutzerbereich wurde administrativ deaktiviert (keine Benutzernamen bei Anmeldung).
-ERROR_GUEST_USER_RECOVER_PASSWORD_DEACTIVATED=Fehler: Wiederherstellen des Passwortes wurde administrativ deaktiviert.
-ERROR_GUEST_USER_RESEND_CONFIRMATION_DEACTIVATED=Fehler: Erneutes Aussenden des Best\u00e4tigungslinked ist administrativ deaktiviert.
-ERROR_GUEST_USER_PROFILE_DEACTIVATED=Fehler: \u00d6ffentliche Benutzerprofile sind administrativ deaktiviert.
+ERROR_GUEST_USER_LOGIN_DISABLED=Fehler: Der Benutzerbereich wurde administrativ deaktiviert (keine Benutzernamen bei Anmeldung).
+ERROR_GUEST_USER_RECOVER_PASSWORD_DISABLED=Fehler: Wiederherstellen des Passwortes wurde administrativ deaktiviert.
+ERROR_GUEST_USER_RESEND_CONFIRMATION_DISABLED=Fehler: Erneutes Aussenden des Best\u00e4tigungslinked ist administrativ deaktiviert.
+ERROR_GUEST_USER_PROFILE_DISABLED=Fehler: \u00d6ffentliche Benutzerprofile sind administrativ deaktiviert.
 EMAIL_ADDRESS_NOT_ENTERED=Bitte geben Sie Ihre Email-Adresse ein.
 EMAIL_ADDRESS_REPEAT_NOT_ENTERED=Bitte wiederholen Sie Ihre Email-Adresse.
 BUTTON_RESEND_CONFIRMATION_LINK=Best\u00e4tigungslink erneut aussenden
@@ -590,7 +590,7 @@ ERROR_GUEST_REGISTRATION_DISABLED=Fehler: Die Anmeldung ist administrativ deakti
 ERROR_LOGIN_USER_EDIT_DATA_DISABLED=Fehler: Editieren von Benutzerdaten wurde administrativ deaktiviert.
 LINK_USER_LOGOUT=Ausloggen
 LINK_USER_LOGOUT_TITLE=Aus dem Mitgliedsbereich ausloggen.
-ERROR_GUEST_USER_RESEND_LINK_DEACTIVATED=Fehler: Erneutes Aussenden des Best\u00e4tigungslink wurde administrativ deaktiviert.
+ERROR_GUEST_USER_RESEND_LINK_DISABLED=Fehler: Erneutes Aussenden des Best\u00e4tigungslink wurde administrativ deaktiviert.
 PAGE_TITLE_LOGIN_USER_LOGOUT=Ausloggen aus dem Benutzerbereich
 CONTENT_TITLE_LOGIN_USER_LOGOUT=Aus dem Benutzerbereich ausloggen:
 LOGIN_USER_LOGOUT_TITLE=Aus Benutzerbereich ausloggen?
diff --git a/src/java/org/mxchange/localization/bundle_en_US.properties b/src/java/org/mxchange/localization/bundle_en_US.properties
index 47b3113d..4493449d 100644
--- a/src/java/org/mxchange/localization/bundle_en_US.properties
+++ b/src/java/org/mxchange/localization/bundle_en_US.properties
@@ -369,7 +369,7 @@ ADMIN_LINK_SHOW_USER_TITLE=Show administrative user profile
 PAGE_TITLE_ADMIN_SHOW_USER=Show user profile
 CONTENT_TITLE_ADMIN_SHOW_USER=Show profile of a user:
 ERROR_PARAMETER_USER_ID_NOT_SET=Error: User id not set (parameter userId).
-ERROR_USER_ID_NOT_FOUND=Error: User entry not found.
+ERROR_USER_NOT_FOUND=Error: User entry not found.
 ADMIN_TABLE_SUMMARY_SHOW_USER_DATA=Shows a single user profile for administrative purposes.
 ADMIN_HEADER_SHOW_USER=User {0} (id {1}):
 ADMIN_USER_ID=User id:
@@ -477,13 +477,13 @@ ERROR_CONTACT_ID_NOT_FOUND=Error: contact data not found
 GUEST_REGISTRATION_PAGE1_TITLE=Registration page 1
 GUEST_REGISTRATION_PAGE2_TITLE=Registration page 2
 BUTTON_CONTINUE_REGISTER_PAGE2=Continue to registration page 2
-ERROR_GUEST_REGISTER_MULTIPLE_PAGE_NOT_ENABLED=Error: Multiple registration page not active, please don't call this page.
+ERROR_GUEST_REGISTER_MULTIPLE_PAGE_DISABLED=Error: Multiple registration page not active, please don't call this page.
 PAGE_TITLE_USER_REGISTER_PAGE2=Register page 2
 CONTENT_TITLE_USER_REGISTER_PAGE2=Register page 2:
-ERROR_GUEST_USER_LOGIN_DEACTIVATED=Error: User area is deactivated by administrators, no user name while registration.
-ERROR_GUEST_USER_RECOVER_PASSWORD_DEACTIVATED=Error: password recovery is deactivated by administrators.
-ERROR_GUEST_USER_RESEND_CONFIRMATION_DEACTIVATED=Error: Resending confirmation link is deactivated by administrators.
-ERROR_GUEST_USER_PROFILE_DEACTIVATED=Error: Public user profiles are deactivated by administrators.
+ERROR_GUEST_USER_LOGIN_DISABLED=Error: User area is deactivated by administrators, no user name while registration.
+ERROR_GUEST_USER_RECOVER_PASSWORD_DISABLED=Error: password recovery is deactivated by administrators.
+ERROR_GUEST_USER_RESEND_CONFIRMATION_DISABLED=Error: Resending confirmation link is deactivated by administrators.
+ERROR_GUEST_USER_PROFILE_DISABLED=Error: Public user profiles are deactivated by administrators.
 EMAIL_ADDRESS_NOT_ENTERED=Please enter your email address.
 EMAIL_ADDRESS_REPEAT_NOT_ENTERED=Please repeat your email address.
 BUTTON_RESEND_CONFIRMATION_LINK=Resend confirmation link
@@ -581,7 +581,7 @@ ERROR_GUEST_REGISTRATION_DISABLED=Error: Registration has been administratively
 ERROR_LOGIN_USER_EDIT_DATA_DISABLED=Error: Editing of user data has been disabled by administrators.
 LINK_USER_LOGOUT=Logout
 LINK_USER_LOGOUT_TITLE=Logout from user area.
-ERROR_GUEST_USER_RESEND_LINK_DEACTIVATED=Error: Sending out confirmation link has been deactivated.
+ERROR_GUEST_USER_RESEND_LINK_DISABLED=Error: Sending out confirmation link has been deactivated.
 PAGE_TITLE_LOGIN_USER_LOGOUT=Logout from user area
 CONTENT_TITLE_LOGIN_USER_LOGOUT=Logout from user area:
 LOGIN_USER_LOGOUT_TITLE=Logout from user area?
diff --git a/web/WEB-INF/resources/tags/messages/message_box.tpl b/web/WEB-INF/resources/tags/messages/message_box.tpl
index 7d04f135..0450cf5c 100644
--- a/web/WEB-INF/resources/tags/messages/message_box.tpl
+++ b/web/WEB-INF/resources/tags/messages/message_box.tpl
@@ -5,7 +5,7 @@
 	xmlns:h="http://xmlns.jcp.org/jsf/html"
 	xmlns:f="http://xmlns.jcp.org/jsf/core">
 
-	<h:panelGroup id="#{empty id ? 'message' : id}" styleClass="message-container #{boxStyleClass}" layout="block" rendered="#{empty rendered or rendered == true}">
+	<h:panelGroup id="#{id}" styleClass="message-container #{boxStyleClass}" layout="block" rendered="#{empty rendered or rendered == true}">
 		<div class="message-header">
 			<h:outputText value="#{msg.MESSAGE_BOX_TITLE}" />
 		</div>
diff --git a/web/WEB-INF/resources/tags/profile/user/user_profile_link.tpl b/web/WEB-INF/resources/tags/profile/user/user_profile_link.tpl
index 90283cea..38a6f1bb 100644
--- a/web/WEB-INF/resources/tags/profile/user/user_profile_link.tpl
+++ b/web/WEB-INF/resources/tags/profile/user/user_profile_link.tpl
@@ -7,7 +7,7 @@
 	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
 	xmlns:p="http://primefaces.org/ui">
 
-	<widgets:outputMessageBox message="#{msg.USER_PROFILE_NOT_PUBLICLY_VISIBLE}" boxStyleClass="message-mini" messageStyleClass="notice" rendered="#{not empty user and not profileController.isProfileLinkVisibleByUser(user)}" />
+	<widgets:outputMessageBox id="nonpublic-user-profile" message="#{msg.USER_PROFILE_NOT_PUBLICLY_VISIBLE}" boxStyleClass="message-mini" messageStyleClass="notice" rendered="#{not empty user and not profileController.isProfileLinkVisibleByUser(user)}" />
 
 	<p:link outcome="user_profile" title="#{msg.LINK_USER_PROFILE_TITLE}" rendered="#{not empty user and profileController.isProfileLinkVisibleByUser(user)}">
 		<h:outputText value="#{user.userName}" />
diff --git a/web/WEB-INF/templates/admin/fax/admin_fax_add_show.tpl b/web/WEB-INF/templates/admin/fax/admin_fax_add_show.tpl
index 80250d12..2492f9da 100644
--- a/web/WEB-INF/templates/admin/fax/admin_fax_add_show.tpl
+++ b/web/WEB-INF/templates/admin/fax/admin_fax_add_show.tpl
@@ -6,7 +6,7 @@
 	xmlns:h="http://xmlns.jcp.org/jsf/html"
 	xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
 
-	<widgets:outputMessageBox message="#{msg.ERROR_BEAN_HELPER_CONTACT_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.contact}" />
+	<widgets:outputMessageBox id="error-helper-contact-fax" message="#{msg.ERROR_BEAN_HELPER_CONTACT_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.contact}" />
 
 	<ui:fragment rendered="#{empty beanHelper.contact.contactFaxNumber and not empty beanHelper.contact}">
 		<ui:include src="/WEB-INF/templates/admin/fax/admin_form_add_contact_fax.tpl" />
diff --git a/web/WEB-INF/templates/admin/fax/admin_form_add_contact_fax.tpl b/web/WEB-INF/templates/admin/fax/admin_form_add_contact_fax.tpl
index 859622a5..e8bfe048 100644
--- a/web/WEB-INF/templates/admin/fax/admin_form_add_contact_fax.tpl
+++ b/web/WEB-INF/templates/admin/fax/admin_form_add_contact_fax.tpl
@@ -7,7 +7,7 @@
 	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
 	xmlns:p="http://primefaces.org/ui">
 
-	<widgets:outputMessageBox message="#{msg.ERROR_BEAN_HELPER_CONTACT_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.contact}" />
+	<widgets:outputMessageBox id="error-helper-contact-add-fax" message="#{msg.ERROR_BEAN_HELPER_CONTACT_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.contact}" />
 
 	<h:form id="form_add_contact_fax" rendered="#{not empty beanHelper.contact}">
 		<h:panelGroup styleClass="table table-medium" layout="block">
diff --git a/web/WEB-INF/templates/admin/landline/admin_form_add_contact_landline.tpl b/web/WEB-INF/templates/admin/landline/admin_form_add_contact_landline.tpl
index e211f8c6..d2357275 100644
--- a/web/WEB-INF/templates/admin/landline/admin_form_add_contact_landline.tpl
+++ b/web/WEB-INF/templates/admin/landline/admin_form_add_contact_landline.tpl
@@ -7,7 +7,7 @@
 	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
 	xmlns:p="http://primefaces.org/ui">
 
-	<widgets:outputMessageBox message="#{msg.ERROR_BEAN_HELPER_CONTACT_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.contact}" />
+	<widgets:outputMessageBox id="error-helper-contact-add-landline" message="#{msg.ERROR_BEAN_HELPER_CONTACT_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.contact}" />
 
 	<h:form id="form_add_contact_landline" rendered="#{not empty beanHelper.contact}">
 		<h:panelGroup styleClass="table table-medium" layout="block">
diff --git a/web/WEB-INF/templates/admin/landline/admin_landline_add_show.tpl b/web/WEB-INF/templates/admin/landline/admin_landline_add_show.tpl
index bac827a8..4b0d7b40 100644
--- a/web/WEB-INF/templates/admin/landline/admin_landline_add_show.tpl
+++ b/web/WEB-INF/templates/admin/landline/admin_landline_add_show.tpl
@@ -6,7 +6,7 @@
 	xmlns:h="http://xmlns.jcp.org/jsf/html"
 	xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
 
-	<widgets:outputMessageBox message="#{msg.ERROR_BEAN_HELPER_CONTACT_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.contact}" />
+	<widgets:outputMessageBox id="error-handler-contact" message="#{msg.ERROR_BEAN_HELPER_CONTACT_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.contact}" />
 
 	<ui:fragment rendered="#{empty beanHelper.contact.contactLandLineNumber and not empty beanHelper.contact}">
 		<ui:include src="/WEB-INF/templates/admin/landline/admin_form_add_contact_landline.tpl" />
diff --git a/web/WEB-INF/templates/admin/mobile/admin_form_add_contact_mobile.tpl b/web/WEB-INF/templates/admin/mobile/admin_form_add_contact_mobile.tpl
index 6e72a273..0659db91 100644
--- a/web/WEB-INF/templates/admin/mobile/admin_form_add_contact_mobile.tpl
+++ b/web/WEB-INF/templates/admin/mobile/admin_form_add_contact_mobile.tpl
@@ -7,7 +7,7 @@
 	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
 	xmlns:p="http://primefaces.org/ui">
 
-	<widgets:outputMessageBox message="#{msg.ERROR_BEAN_HELPER_CONTACT_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.contact}" />
+	<widgets:outputMessageBox id="error-handler-contact" message="#{msg.ERROR_BEAN_HELPER_CONTACT_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.contact}" />
 
 	<h:form id="form_add_contact_mobile" rendered="#{not empty beanHelper.contact}">
 		<h:panelGroup styleClass="table table-medium" layout="block">
diff --git a/web/WEB-INF/templates/admin/mobile/admin_mobile_add_show.tpl b/web/WEB-INF/templates/admin/mobile/admin_mobile_add_show.tpl
index abe6b12d..14306965 100644
--- a/web/WEB-INF/templates/admin/mobile/admin_mobile_add_show.tpl
+++ b/web/WEB-INF/templates/admin/mobile/admin_mobile_add_show.tpl
@@ -6,7 +6,7 @@
 	xmlns:h="http://xmlns.jcp.org/jsf/html"
 	xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
 
-	<widgets:outputMessageBox message="#{msg.ERROR_BEAN_HELPER_CONTACT_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.contact}" />
+	<widgets:outputMessageBox id="error-handler-contact" message="#{msg.ERROR_BEAN_HELPER_CONTACT_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.contact}" />
 
 	<ui:fragment rendered="#{empty beanHelper.contact.contactMobileNumber and not empty beanHelper.contact}">
 		<ui:include src="/WEB-INF/templates/admin/mobile/admin_form_add_contact_mobile.tpl" />
diff --git a/web/WEB-INF/templates/login/user/user_base.tpl b/web/WEB-INF/templates/login/user/user_base.tpl
index 9732eb92..510d485e 100644
--- a/web/WEB-INF/templates/login/user/user_base.tpl
+++ b/web/WEB-INF/templates/login/user/user_base.tpl
@@ -15,7 +15,7 @@
 	</ui:define>
 
 	<ui:define name="menu">
-		<widgets:outputMessageBox message="#{msg.USER_NOT_LOGGED_IN}" boxStyleClass="message-full" messageStyleClass="alert-danger" rendered="#{not userLoginController.isUserLoggedIn()}" />
+		<widgets:outputMessageBox id="error-guest-forbidden" message="#{msg.USER_NOT_LOGGED_IN}" boxStyleClass="message-full" messageStyleClass="alert-danger" rendered="#{not userLoginController.isUserLoggedIn()}" />
 
 		<ui:fragment rendered="#{userLoginController.isUserLoggedIn()}">
 			<ui:include src="/WEB-INF/templates/login/user/user_menu.tpl" />
diff --git a/web/WEB-INF/templates/user/userid_error.tpl b/web/WEB-INF/templates/user/userid_error.tpl
deleted file mode 100644
index 9bd37bc6..00000000
--- a/web/WEB-INF/templates/user/userid_error.tpl
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<ui:composition
-	xmlns="http://www.w3.org/1999/xhtml"
-	xmlns:f="http://java.sun.com/jsf/core"
-	xmlns:h="http://java.sun.com/jsf/html"
-	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
-	xmlns:p="http://primefaces.org/ui">
-
-	<h:panelGroup styleClass="table" layout="block">
-		<div class="table-header">
-			<h:outputText value="#{msg.TABLE_HEADER_ERROR_HANDLING_USER_ID}" />
-		</div>
-
-		<div class="para">
-			<p:messages autoUpdate="true" redisplay="false" showDetail="true" />
-		</div>
-	</h:panelGroup>
-</ui:composition>
diff --git a/web/WEB-INF/web.xml b/web/WEB-INF/web.xml
index 28da4635..67fc9994 100644
--- a/web/WEB-INF/web.xml
+++ b/web/WEB-INF/web.xml
@@ -5,7 +5,7 @@
     <context-param>
         <description>Name of this project.</description>
         <param-name>project_title</param-name>
-        <param-value>JFinancials</param-value>
+        <param-value>Addressbook</param-value>
     </context-param>
     <context-param>
         <description>Primefaces theme</description>
diff --git a/web/WEB-INF/widgets.jsf.taglib.xml b/web/WEB-INF/widgets.jsf.taglib.xml
index 9982d9ce..bfc829d9 100644
--- a/web/WEB-INF/widgets.jsf.taglib.xml
+++ b/web/WEB-INF/widgets.jsf.taglib.xml
@@ -33,7 +33,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 		<attribute>
 			<name>id</name>
 			<description>Id of the JSF component.</description>
-			<required>false</required>
+			<required>true</required>
 			<type>java.lang.String</type>
 		</attribute>
 		<attribute>
diff --git a/web/admin/contact/admin_contact_delete.xhtml b/web/admin/contact/admin_contact_delete.xhtml
index e7da3c35..fef9073c 100644
--- a/web/admin/contact/admin_contact_delete.xhtml
+++ b/web/admin/contact/admin_contact_delete.xhtml
@@ -23,7 +23,7 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ERROR_CONTACT_ID_NOT_FOUND}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.contact}" />
+		<widgets:outputMessageBox id="error-handler-contact" message="#{msg.ERROR_CONTACT_ID_NOT_FOUND}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.contact}" />
 
 		<h:form id="form_admin_edit_user" rendered="#{not empty beanHelper.contact}">
 			<h:panelGroup styleClass="table" layout="block">
diff --git a/web/admin/contact/admin_contact_edit.xhtml b/web/admin/contact/admin_contact_edit.xhtml
index 5f21c730..1ed811d4 100644
--- a/web/admin/contact/admin_contact_edit.xhtml
+++ b/web/admin/contact/admin_contact_edit.xhtml
@@ -23,7 +23,7 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ERROR_CONTACT_ID_NOT_FOUND}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.contact}" />
+		<widgets:outputMessageBox id="error-handler-contact" message="#{msg.ERROR_CONTACT_ID_NOT_FOUND}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.contact}" />
 
 		<h:form id="form_admin_edit_user" rendered="#{not empty beanHelper.contact}">
 			<h:panelGroup styleClass="table table-medium" layout="block">
diff --git a/web/admin/contact/admin_contact_show.xhtml b/web/admin/contact/admin_contact_show.xhtml
index 6014cdc5..6e0efd04 100644
--- a/web/admin/contact/admin_contact_show.xhtml
+++ b/web/admin/contact/admin_contact_show.xhtml
@@ -23,7 +23,7 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ERROR_CONTACT_ID_NOT_FOUND}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.contact}" />
+		<widgets:outputMessageBox id="error-handler-contact" message="#{msg.ERROR_CONTACT_ID_NOT_FOUND}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.contact}" />
 
 		<ui:fragment rendered="#{not empty beanHelper.contact}">
 			<h:panelGroup styleClass="para" layout="block">
diff --git a/web/admin/contact/unlink/admin_contact_fax_unlink.xhtml b/web/admin/contact/unlink/admin_contact_fax_unlink.xhtml
index 491b59ba..b661ed8c 100644
--- a/web/admin/contact/unlink/admin_contact_fax_unlink.xhtml
+++ b/web/admin/contact/unlink/admin_contact_fax_unlink.xhtml
@@ -23,9 +23,9 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ERROR_BEAN_HELPER_FAX_NUMBER_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.faxNumber}" />
+		<widgets:outputMessageBox id="error-handler-fax-number" message="#{msg.ERROR_BEAN_HELPER_FAX_NUMBER_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.faxNumber}" />
 
-		<widgets:outputMessageBox message="#{msg.ERROR_BEAN_HELPER_CONTACT_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.contact}" />
+		<widgets:outputMessageBox id="error-handler-contact" message="#{msg.ERROR_BEAN_HELPER_CONTACT_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.contact}" />
 
 		<h:form id="form_unlink_contact_fax" rendered="#{not empty beanHelper.faxNumber and not empty beanHelper.contact and beanHelper.contact.contactFaxNumber == beanHelper.faxNumber}">
 			<h:panelGroup styleClass="table" layout="block">
diff --git a/web/admin/contact/unlink/admin_contact_landline_unlink.xhtml b/web/admin/contact/unlink/admin_contact_landline_unlink.xhtml
index 1c7b629f..9848232e 100644
--- a/web/admin/contact/unlink/admin_contact_landline_unlink.xhtml
+++ b/web/admin/contact/unlink/admin_contact_landline_unlink.xhtml
@@ -23,9 +23,9 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ERROR_BEAN_HELPER_LAND_LINE_NUMBER_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.landLineNumber}" />
+		<widgets:outputMessageBox id="error-handler-landline-number" message="#{msg.ERROR_BEAN_HELPER_LAND_LINE_NUMBER_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.landLineNumber}" />
 
-		<widgets:outputMessageBox message="#{msg.ERROR_BEAN_HELPER_CONTACT_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.contact}" />
+		<widgets:outputMessageBox id="error-handler-contact" message="#{msg.ERROR_BEAN_HELPER_CONTACT_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.contact}" />
 
 		<h:form id="form_unlink_contact_landline" rendered="#{not empty beanHelper.landLineNumber and not empty beanHelper.contact and beanHelper.contact.contactLandLineNumber == beanHelper.landLineNumber}">
 			<h:panelGroup styleClass="table" layout="block">
diff --git a/web/admin/contact/unlink/admin_contact_mobile_unlink.xhtml b/web/admin/contact/unlink/admin_contact_mobile_unlink.xhtml
index 1fe61ff9..a06815a0 100644
--- a/web/admin/contact/unlink/admin_contact_mobile_unlink.xhtml
+++ b/web/admin/contact/unlink/admin_contact_mobile_unlink.xhtml
@@ -23,9 +23,9 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ERROR_BEAN_HELPER_MOBILE_NUMBER_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.mobileNumber}" />
+		<widgets:outputMessageBox id="error-handler-mobile-number" message="#{msg.ERROR_BEAN_HELPER_MOBILE_NUMBER_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.mobileNumber}" />
 
-		<widgets:outputMessageBox message="#{msg.ERROR_BEAN_HELPER_CONTACT_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.contact}" />
+		<widgets:outputMessageBox id="error-handler-contact" message="#{msg.ERROR_BEAN_HELPER_CONTACT_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.contact}" />
 
 		<h:form id="form_unlink_contact_mobile" rendered="#{not empty beanHelper.mobileNumber and not empty beanHelper.contact and beanHelper.contact.contactMobileNumber == beanHelper.mobileNumber}">
 			<h:panelGroup styleClass="table" layout="block">
diff --git a/web/admin/fax/admin_fax_delete.xhtml b/web/admin/fax/admin_fax_delete.xhtml
index 76768ec8..bc93bad2 100644
--- a/web/admin/fax/admin_fax_delete.xhtml
+++ b/web/admin/fax/admin_fax_delete.xhtml
@@ -23,7 +23,7 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ERROR_BEAN_HELPER_FAX_NUMBER_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.faxNumber}" />
+		<widgets:outputMessageBox id="error-handler-fax-number" message="#{msg.ERROR_BEAN_HELPER_FAX_NUMBER_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.faxNumber}" />
 
 		<h:form id="form_delete_fax" rendered="#{not empty beanHelper.faxNumber}">
 			<h:panelGroup styleClass="table" layout="block">
diff --git a/web/admin/fax/admin_fax_edit.xhtml b/web/admin/fax/admin_fax_edit.xhtml
index 80b5894a..0b677bae 100644
--- a/web/admin/fax/admin_fax_edit.xhtml
+++ b/web/admin/fax/admin_fax_edit.xhtml
@@ -23,7 +23,7 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ERROR_BEAN_HELPER_FAX_NUMBER_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.faxNumber}" />
+		<widgets:outputMessageBox id="error-handler-fax-number" message="#{msg.ERROR_BEAN_HELPER_FAX_NUMBER_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.faxNumber}" />
 
 		<h:form id="form_edit_fax" rendered="#{not empty beanHelper.faxNumber}">
 			<h:panelGroup styleClass="table table-medium" layout="block">
diff --git a/web/admin/landline/admin_landline_delete.xhtml b/web/admin/landline/admin_landline_delete.xhtml
index eaa968e0..32b8a8b5 100644
--- a/web/admin/landline/admin_landline_delete.xhtml
+++ b/web/admin/landline/admin_landline_delete.xhtml
@@ -23,7 +23,7 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ERROR_BEAN_HELPER_LAND_LINE_NUMBER_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.landLineNumber}" />
+		<widgets:outputMessageBox id="error-handler-landline-number" message="#{msg.ERROR_BEAN_HELPER_LAND_LINE_NUMBER_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.landLineNumber}" />
 
 		<h:form id="form_delete_landline" rendered="#{not empty beanHelper.landLineNumber}">
 			<h:panelGroup styleClass="table" layout="block">
diff --git a/web/admin/landline/admin_landline_edit.xhtml b/web/admin/landline/admin_landline_edit.xhtml
index 294d7884..2032670e 100644
--- a/web/admin/landline/admin_landline_edit.xhtml
+++ b/web/admin/landline/admin_landline_edit.xhtml
@@ -23,7 +23,7 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ERROR_BEAN_HELPER_LAND_LINE_NUMBER_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.landLineNumber}" />
+		<widgets:outputMessageBox id="error-handler-landline-number" message="#{msg.ERROR_BEAN_HELPER_LAND_LINE_NUMBER_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.landLineNumber}" />
 
 		<h:form id="form_edit_landline" rendered="#{not empty beanHelper.landLineNumber}">
 			<h:panelGroup styleClass="table table-medium" layout="block">
diff --git a/web/admin/mobile/admin_mobile_delete.xhtml b/web/admin/mobile/admin_mobile_delete.xhtml
index a06e7a10..958b5fac 100644
--- a/web/admin/mobile/admin_mobile_delete.xhtml
+++ b/web/admin/mobile/admin_mobile_delete.xhtml
@@ -23,7 +23,7 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ERROR_BEAN_HELPER_MOBILE_NUMBER_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.mobileNumber}" />
+		<widgets:outputMessageBox id="error-handler-mobile-number" message="#{msg.ERROR_BEAN_HELPER_MOBILE_NUMBER_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.mobileNumber}" />
 
 		<h:form id="form_delete_mobile" rendered="#{not empty beanHelper.mobileNumber}">
 			<h:panelGroup styleClass="table" layout="block">
diff --git a/web/admin/mobile/admin_mobile_edit.xhtml b/web/admin/mobile/admin_mobile_edit.xhtml
index 8be236f7..fbf2f156 100644
--- a/web/admin/mobile/admin_mobile_edit.xhtml
+++ b/web/admin/mobile/admin_mobile_edit.xhtml
@@ -23,7 +23,7 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ERROR_BEAN_HELPER_MOBILE_NUMBER_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.mobileNumber}" />
+		<widgets:outputMessageBox id="error-handler-mobile-number" message="#{msg.ERROR_BEAN_HELPER_MOBILE_NUMBER_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.mobileNumber}" />
 
 		<h:form id="form_edit_mobile" rendered="#{not empty beanHelper.mobileNumber}">
 			<h:panelGroup styleClass="table table-medium" layout="block">
diff --git a/web/admin/user/admin_user_activity_log.xhtml b/web/admin/user/admin_user_activity_log.xhtml
index 514583fd..877ab542 100644
--- a/web/admin/user/admin_user_activity_log.xhtml
+++ b/web/admin/user/admin_user_activity_log.xhtml
@@ -23,7 +23,7 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ERROR_USER_ID_NOT_FOUND}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.user}" />
+		<widgets:outputMessageBox id="error-helper-user" message="#{msg.ERROR_USER_NOT_FOUND}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.user}" />
 
 		<p:dataTable id="table_user_activity_log" var="userActivity" value="#{userActivityController.fetchCurrentUsersActivityLog()}" tableStyleClass="table table-full" paginator="true" rows="10" summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_USER_ACTIVITY_LOG}" rendered="#{not empty beanHelper.user}">
 			<p:column>
diff --git a/web/admin/user/admin_user_delete.xhtml b/web/admin/user/admin_user_delete.xhtml
index 6702250d..1438a2a9 100644
--- a/web/admin/user/admin_user_delete.xhtml
+++ b/web/admin/user/admin_user_delete.xhtml
@@ -23,7 +23,7 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ERROR_USER_ID_NOT_FOUND}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.user}" />
+		<widgets:outputMessageBox id="error-helper-user" message="#{msg.ERROR_USER_NOT_FOUND}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.user}" />
 
 		<h:form id="form_admin_delete_user" rendered="#{not empty beanHelper.user}">
 			<h:panelGroup styleClass="table table-medium" layout="block">
diff --git a/web/admin/user/admin_user_edit.xhtml b/web/admin/user/admin_user_edit.xhtml
index f0448afa..9d4f909f 100644
--- a/web/admin/user/admin_user_edit.xhtml
+++ b/web/admin/user/admin_user_edit.xhtml
@@ -23,7 +23,7 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ERROR_USER_ID_NOT_FOUND}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.user}" />
+		<widgets:outputMessageBox id="error-helper-user" message="#{msg.ERROR_USER_NOT_FOUND}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.user}" />
 
 		<h:form id="form_edit_user" rendered="#{not empty beanHelper.user}">
 			<h:panelGroup styleClass="table table-medium" layout="block">
diff --git a/web/admin/user/admin_user_export.xhtml b/web/admin/user/admin_user_export.xhtml
index a1ee9778..0921f74a 100644
--- a/web/admin/user/admin_user_export.xhtml
+++ b/web/admin/user/admin_user_export.xhtml
@@ -16,7 +16,7 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ADMIN_USER_LIST_EMPTY}" messageStyleClass="alert-danger" rendered="#{userController.allUsers().isEmpty()}" />
+		<widgets:outputMessageBox id="admin-user-list-empty" message="#{msg.ADMIN_USER_LIST_EMPTY}" messageStyleClass="alert-danger" rendered="#{userController.allUsers().isEmpty()}" />
 
 		<h:form id="form_export_users" rendered="#{not userController.allUsers().isEmpty()}">
 			<p:dataTable id="table_export_users" var="user" value="#{userController.allUsers()}" tableStyleClass="table table-full" paginator="true" rows="10" summary="#{msg.TABLE_SUMMARY_ADMIN_EXPORT_USER}">
diff --git a/web/admin/user/admin_user_list.xhtml b/web/admin/user/admin_user_list.xhtml
index 23db1d95..be6bf16e 100644
--- a/web/admin/user/admin_user_list.xhtml
+++ b/web/admin/user/admin_user_list.xhtml
@@ -17,9 +17,7 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ADMIN_USER_LIST_EMPTY}" messageStyleClass="alert-danger" rendered="#{userController.allUsers().isEmpty()}" />
-
-		<p:dataTable id="table_list_users" var="user" value="#{userController.allUsers()}" tableStyleClass="table table-full" paginator="true" rows="10" summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_USERS}" rendered="#{not userController.allUsers().isEmpty()}">
+		<p:dataTable id="table_list_users" var="user" value="#{userController.allUsers()}" tableStyleClass="table table-full" paginator="true" rows="10" summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_USERS}" emptyMessage="#{msg.ADMIN_USER_LIST_EMPTY}">
 			<p:column>
 				<f:facet name="header">
 					<h:outputText value="#{msg.ADMIN_USER_ID}" />
diff --git a/web/admin/user/admin_user_lock.xhtml b/web/admin/user/admin_user_lock.xhtml
index 6e9d3c68..b488e4f7 100644
--- a/web/admin/user/admin_user_lock.xhtml
+++ b/web/admin/user/admin_user_lock.xhtml
@@ -23,7 +23,7 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ERROR_USER_ID_NOT_FOUND}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.user}" />
+		<widgets:outputMessageBox id="error-helper-user" message="#{msg.ERROR_USER_NOT_FOUND}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.user}" />
 
 		<h:form id="form_admin_user_unlock" rendered="#{not empty beanHelper.user and beanHelper.user.userAccountStatus == 'CONFIRMED'}">
 			<h:panelGroup styleClass="table table-medium" layout="block">
diff --git a/web/admin/user/admin_user_resend_confirmation_link.xhtml b/web/admin/user/admin_user_resend_confirmation_link.xhtml
index aee86a01..5afc35d2 100644
--- a/web/admin/user/admin_user_resend_confirmation_link.xhtml
+++ b/web/admin/user/admin_user_resend_confirmation_link.xhtml
@@ -23,7 +23,7 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ERROR_USER_ID_NOT_FOUND}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.user}" />
+		<widgets:outputMessageBox id="error-helper-user" message="#{msg.ERROR_USER_NOT_FOUND}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.user}" />
 
 		<h:form id="form_admin_user_unlock" rendered="#{not empty beanHelper.user and beanHelper.user.userAccountStatus == 'UNCONFIRMED'}">
 			<h:panelGroup styleClass="table table-medium" layout="block">
diff --git a/web/admin/user/admin_user_show.xhtml b/web/admin/user/admin_user_show.xhtml
index f7bc6033..b29b1353 100644
--- a/web/admin/user/admin_user_show.xhtml
+++ b/web/admin/user/admin_user_show.xhtml
@@ -23,7 +23,7 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ERROR_USER_ID_NOT_FOUND}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.user}" />
+		<widgets:outputMessageBox id="error-helper-user" message="#{msg.ERROR_USER_NOT_FOUND}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.user}" />
 
 		<ui:include src="/WEB-INF/templates/admin/user/admin_show_user_data.tpl" />
 
diff --git a/web/admin/user/admin_user_unlock.xhtml b/web/admin/user/admin_user_unlock.xhtml
index e72a5b89..517db8c3 100644
--- a/web/admin/user/admin_user_unlock.xhtml
+++ b/web/admin/user/admin_user_unlock.xhtml
@@ -23,7 +23,7 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ERROR_USER_ID_NOT_FOUND}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.user}" />
+		<widgets:outputMessageBox id="error-helper-user" message="#{msg.ERROR_USER_NOT_FOUND}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.user}" />
 
 		<h:form id="form_admin_user_unlock" rendered="#{not empty beanHelper.user and beanHelper.user.userAccountStatus == 'LOCKED'}">
 			<h:panelGroup styleClass="table table-medium" layout="block">
diff --git a/web/guest/user/user_confirm_account.xhtml b/web/guest/user/user_confirm_account.xhtml
index cd128315..2582c349 100644
--- a/web/guest/user/user_confirm_account.xhtml
+++ b/web/guest/user/user_confirm_account.xhtml
@@ -37,9 +37,9 @@
 				</h:panelGroup>
 			</h:panelGroup>
 
-			<widgets:outputMessageBox message="#{msg.GUEST_CONFIRMATION_LINK_INVALID}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.user}" />
+			<widgets:outputMessageBox id="error-helper-user" message="#{msg.GUEST_CONFIRMATION_LINK_INVALID}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.user}" />
 		</ui:fragment>
 
-		<widgets:outputMessageBox message="#{msg.GUEST_CONFIRMATION_KEY_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty userConfirmationLinkController.confirmationKey}" />
+		<widgets:outputMessageBox id="error-confirmation-key" message="#{msg.GUEST_CONFIRMATION_KEY_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty userConfirmationLinkController.confirmationKey}" />
 	</ui:define>
 </ui:composition>
diff --git a/web/guest/user/user_list.xhtml b/web/guest/user/user_list.xhtml
index c2c81347..2848da62 100644
--- a/web/guest/user/user_list.xhtml
+++ b/web/guest/user/user_list.xhtml
@@ -17,7 +17,7 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ERROR_USER_LIST_DISABLED}" messageStyleClass="alert-danger" rendered="#{not featureController.isFeatureEnabled('user_list')}" />
+		<widgets:outputMessageBox id="error-user-list-disabled" message="#{msg.ERROR_USER_LIST_DISABLED}" messageStyleClass="alert-danger" rendered="#{not featureController.isFeatureEnabled('user_list')}" />
 
 		<h:panelGroup styleClass="table table-full" layout="block" rendered="#{featureController.isFeatureEnabled('user_list')}">
 			<div class="table-header">
diff --git a/web/guest/user/user_login.xhtml b/web/guest/user/user_login.xhtml
index 3191943d..dd47190d 100644
--- a/web/guest/user/user_login.xhtml
+++ b/web/guest/user/user_login.xhtml
@@ -16,7 +16,7 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ERROR_GUEST_USER_LOGIN_DEACTIVATED}" messageStyleClass="alert-danger" rendered="#{not featureController.isFeatureEnabled('user_login_require_user_name')}" />
+		<widgets:outputMessageBox id="error-user-login-disabled" message="#{msg.ERROR_GUEST_USER_LOGIN_DISABLED}" messageStyleClass="alert-danger" rendered="#{not featureController.isFeatureEnabled('user_login_require_user_name')}" />
 
 		<ui:fragment rendered="#{featureController.isFeatureEnabled('user_login_require_user_name')}">
 			<h:panelGroup styleClass="para" layout="block" rendered="#{featureController.isFeatureEnabled('user_registration')}">
diff --git a/web/guest/user/user_lost_password.xhtml b/web/guest/user/user_lost_password.xhtml
index 92c4fd4c..dc069457 100644
--- a/web/guest/user/user_lost_password.xhtml
+++ b/web/guest/user/user_lost_password.xhtml
@@ -16,7 +16,7 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ERROR_GUEST_USER_RECOVER_PASSWORD_DEACTIVATED}" messageStyleClass="alert-danger" rendered="#{not featureController.isFeatureEnabled('user_login_require_user_name') or not featureController.isFeatureEnabled('user_password_recovery')}" />
+		<widgets:outputMessageBox id="error-user-recovery-disabled" message="#{msg.ERROR_GUEST_USER_RECOVER_PASSWORD_DISABLED}" messageStyleClass="alert-danger" rendered="#{not featureController.isFeatureEnabled('user_login_require_user_name') or not featureController.isFeatureEnabled('user_password_recovery')}" />
 
 		<ui:fragment rendered="#{featureController.isFeatureEnabled('user_login_require_user_name') and featureController.isFeatureEnabled('user_password_recovery')}">
 			<div id="user_lost_password_content">
diff --git a/web/guest/user/user_profile.xhtml b/web/guest/user/user_profile.xhtml
index a021c3ea..d490c8ed 100644
--- a/web/guest/user/user_profile.xhtml
+++ b/web/guest/user/user_profile.xhtml
@@ -26,12 +26,12 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<ui:fragment rendered="#{userController.isPublicUserProfileEnabled()}">
-			<ui:fragment rendered="#{userController.isUserIdEmpty()}">
-				<ui:include src="/WEB-INF/templates/user/userid_error.tpl" />
-			</ui:fragment>
+		<widgets:outputMessageBox id="error-user-profile-disabled" message="#{msg.ERROR_GUEST_USER_PROFILE_DISABLED}" messageStyleClass="alert-danger" rendered="#{not userController.isPublicUserProfileEnabled()}" />
 
-			<widgets:outputMessageBox message="#{msg.ERROR_PROFILE_NOT_VISIBLE}" messageStyleClass="alert-danger" rendered="#{not profileController.isProfileLinkVisibleById(userController.userId)}" />
+		<widgets:outputMessageBox id="error-user-id-empty" message="#{msg.TABLE_HEADER_ERROR_HANDLING_USER_ID}" rendered="#{userController.isUserIdEmpty()}" />
+
+		<ui:fragment rendered="#{userController.isPublicUserProfileEnabled()}">
+			<widgets:outputMessageBox id="error-user-profile-hidden" message="#{msg.ERROR_PROFILE_NOT_VISIBLE}" messageStyleClass="alert-danger" rendered="#{not profileController.isProfileLinkVisibleById(userController.userId)}" />
 
 			<ui:fragment rendered="#{profileController.isProfileLinkVisibleById(userController.userId)}">
 				<div align="center">
@@ -44,7 +44,5 @@
 				</div>
 			</ui:fragment>
 		</ui:fragment>
-
-		<widgets:outputMessageBox message="#{msg.ERROR_GUEST_USER_PROFILE_DEACTIVATED}" messageStyleClass="alert-danger" rendered="#{not userController.isPublicUserProfileEnabled()}" />
 	</ui:define>
 </ui:composition>
diff --git a/web/guest/user/user_register.xhtml b/web/guest/user/user_register.xhtml
index e285b365..7364c6ab 100644
--- a/web/guest/user/user_register.xhtml
+++ b/web/guest/user/user_register.xhtml
@@ -16,9 +16,9 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ERROR_GUEST_REGISTRATION_DISABLED}" messageStyleClass="alert-danger" rendered="#{not featureController.isFeatureEnabled('user_registration')}" />
+		<widgets:outputMessageBox id="error-user-registration-disabled" message="#{msg.ERROR_GUEST_REGISTRATION_DISABLED}" messageStyleClass="alert-danger" rendered="#{not featureController.isFeatureEnabled('user_registration')}" />
 
-		<widgets:outputMessageBox message="#{msg.ERROR_GUEST_REGISTRATION_IN_INDEX_ENABLED}" messageStyleClass="alert-danger" rendered="#{featureController.isFeatureEnabled('user_registration_in_index')}" />
+		<widgets:outputMessageBox id="error-user-registration-index" message="#{msg.ERROR_GUEST_REGISTRATION_IN_INDEX_ENABLED}" messageStyleClass="alert-danger" rendered="#{featureController.isFeatureEnabled('user_registration_in_index')}" />
 
 		<ui:fragment rendered="#{not featureController.isFeatureEnabled('user_registration_in_index') and featureController.isFeatureEnabled('user_registration')}">
 			<ui:fragment rendered="#{featureController.isFeatureEnabled('user_login_require_user_name')}">
diff --git a/web/guest/user/user_register_done.xhtml b/web/guest/user/user_register_done.xhtml
index f26df549..c34301d4 100644
--- a/web/guest/user/user_register_done.xhtml
+++ b/web/guest/user/user_register_done.xhtml
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <ui:composition template="/WEB-INF/templates/guest/guest_base.tpl"
 				xmlns="http://www.w3.org/1999/xhtml"
+				xmlns:widgets="http://mxchange.org/jsf/core/widgets"
 				xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
 				xmlns:h="http://xmlns.jcp.org/jsf/html"
 				xmlns:f="http://xmlns.jcp.org/jsf/core"
@@ -11,7 +12,7 @@
 	</ui:define>
 
 	<ui:define name="content_header">
-		<h:outputText value="#{msg.CONTENT_TITLE_USER_REGISTER_DONE}" />
+		<widgets:outputMessageBox id="user-registration-completed" message="#{msg.CONTENT_TITLE_USER_REGISTER_DONE}" />
 	</ui:define>
 
 	<ui:define name="content">
diff --git a/web/guest/user/user_register_page2.xhtml b/web/guest/user/user_register_page2.xhtml
index 394b73e2..f8bf7a6b 100644
--- a/web/guest/user/user_register_page2.xhtml
+++ b/web/guest/user/user_register_page2.xhtml
@@ -16,7 +16,7 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ERROR_GUEST_REGISTER_MULTIPLE_PAGE_NOT_ENABLED}" messageStyleClass="alert-danger" rendered="#{not featureController.isFeatureEnabled('user_register_multiple_page')}" />
+		<widgets:outputMessageBox id="error-user-registration-multi-disabled" message="#{msg.ERROR_GUEST_REGISTER_MULTIPLE_PAGE_DISABLED}" messageStyleClass="alert-danger" rendered="#{not featureController.isFeatureEnabled('user_register_multiple_page')}" />
 
 		<ui:fragment rendered="#{featureController.isFeatureEnabled('user_register_multiple_page')}">
 			<ui:fragment rendered="#{featureController.isFeatureEnabled('user_login_require_user_name')}">
diff --git a/web/guest/user/user_resend_done.xhtml b/web/guest/user/user_resend_done.xhtml
index 005bddb5..a0f18d0f 100644
--- a/web/guest/user/user_resend_done.xhtml
+++ b/web/guest/user/user_resend_done.xhtml
@@ -15,6 +15,6 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.GUEST_USER_RESEND_LINK_COMPLETED}" />
+		<widgets:outputMessageBox id="guest-user-resend-link-completed" message="#{msg.GUEST_USER_RESEND_LINK_COMPLETED}" />
 	</ui:define>
 </ui:composition>
diff --git a/web/guest/user/user_resend_link.xhtml b/web/guest/user/user_resend_link.xhtml
index 76d7b1e2..faf4f2b7 100644
--- a/web/guest/user/user_resend_link.xhtml
+++ b/web/guest/user/user_resend_link.xhtml
@@ -16,7 +16,7 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ERROR_GUEST_USER_RESEND_LINK_DEACTIVATED}" messageStyleClass="alert-danger" rendered="#{not featureController.isFeatureEnabled('user_resend_confirmation_link')}" />
+		<widgets:outputMessageBox id="error-user-resend-link-disabled" message="#{msg.ERROR_GUEST_USER_RESEND_LINK_DISABLED}" messageStyleClass="alert-danger" rendered="#{not featureController.isFeatureEnabled('user_resend_confirmation_link')}" />
 
 		<h:form id="form_resend_link" rendered="#{featureController.isFeatureEnabled('user_resend_confirmation_link')}">
 			<h:panelGroup styleClass="table" layout="block">
diff --git a/web/user/login_contact_data_saved.xhtml b/web/user/login_contact_data_saved.xhtml
index 300c586d..0ce16dad 100644
--- a/web/user/login_contact_data_saved.xhtml
+++ b/web/user/login_contact_data_saved.xhtml
@@ -16,9 +16,9 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.LOGIN_MESSAGE_DATA_SAVED}" rendered="#{userLoginController.isUserLoggedIn() and featureController.isFeatureEnabled('edit_user_data') and (not userLoginController.ifUserMustChangePassword() or not featureController.isFeatureEnabled('user_must_change_password'))}" />
+		<widgets:outputMessageBox id="login-user-data-saved" message="#{msg.LOGIN_MESSAGE_DATA_SAVED}" rendered="#{userLoginController.isUserLoggedIn() and featureController.isFeatureEnabled('edit_user_data') and (not userLoginController.ifUserMustChangePassword() or not featureController.isFeatureEnabled('user_must_change_password'))}" />
 
-		<widgets:outputMessageBox message="#{msg.ERROR_LOGIN_USER_EDIT_DATA_DISABLED}" messageStyleClass="alert-danger" rendered="#{not featureController.isFeatureEnabled('edit_user_data')}" />
+		<widgets:outputMessageBox id="error-user-edit-data-disabled" message="#{msg.ERROR_LOGIN_USER_EDIT_DATA_DISABLED}" messageStyleClass="alert-danger" rendered="#{not featureController.isFeatureEnabled('edit_user_data')}" />
 
 		<ui:fragment rendered="#{userLoginController.ifUserMustChangePassword()}">
 			<p:link outcome="user_change_password" value="#{msg.USER_LOGIN_MUST_CHANGE_PASSWORD}" />
diff --git a/web/user/login_data_saved.xhtml b/web/user/login_data_saved.xhtml
index 511e0e89..7af8f136 100644
--- a/web/user/login_data_saved.xhtml
+++ b/web/user/login_data_saved.xhtml
@@ -15,7 +15,7 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.LOGIN_MESSAGE_DATA_SAVED}" rendered="#{userLoginController.isUserLoggedIn()}" />
+		<widgets:outputMessageBox id="login-user-data-saved" message="#{msg.LOGIN_MESSAGE_DATA_SAVED}" rendered="#{userLoginController.isUserLoggedIn()}" />
 
 		<ui:fragment rendered="#{not userLoginController.isUserLoggedIn()}">
 			<ui:include src="/WEB-INF/templates/user/user_not_logged_in.tpl" />
diff --git a/web/user/login_user_change_email_address.xhtml b/web/user/login_user_change_email_address.xhtml
index a019ba7d..8f0a3bbb 100644
--- a/web/user/login_user_change_email_address.xhtml
+++ b/web/user/login_user_change_email_address.xhtml
@@ -16,7 +16,7 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ERROR_LOGIN_USER_CHANGE_EMAIL_ADDRESS_DISABLED}" messageStyleClass="alert-danger" rendered="#{not featureController.isFeatureEnabled('user_change_email_address')}" />
+		<widgets:outputMessageBox id="error-user-change-email-disabled" message="#{msg.ERROR_LOGIN_USER_CHANGE_EMAIL_ADDRESS_DISABLED}" messageStyleClass="alert-danger" rendered="#{not featureController.isFeatureEnabled('user_change_email_address')}" />
 
 		<h:panelGroup styleClass="table" layout="block" rendered="#{userLoginController.isUserLoggedIn() and featureController.isFeatureEnabled('user_change_email_address')}">
 			<div class="table-header">
diff --git a/web/user/login_user_change_password.xhtml b/web/user/login_user_change_password.xhtml
index ab920063..caa79212 100644
--- a/web/user/login_user_change_password.xhtml
+++ b/web/user/login_user_change_password.xhtml
@@ -16,9 +16,9 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.USER_MUST_CHANGE_PASSWORD_NOTICE}" rendered="#{userLoginController.loggedInUser.userMustChangePassword == true}" />
+		<widgets:outputMessageBox id="login-user-must-change-password" message="#{msg.USER_MUST_CHANGE_PASSWORD_NOTICE}" rendered="#{userLoginController.loggedInUser.userMustChangePassword == true}" />
 
-		<widgets:outputMessageBox message="#{msg.ERROR_LOGIN_USER_EDIT_DATA_DISABLED}" messageStyleClass="alert-danger" rendered="#{not featureController.isFeatureEnabled('change_user_password')}" />
+		<widgets:outputMessageBox id="error-user-edit-data-disabled" message="#{msg.ERROR_LOGIN_USER_EDIT_DATA_DISABLED}" messageStyleClass="alert-danger" rendered="#{not featureController.isFeatureEnabled('change_user_password')}" />
 
 		<ui:fragment rendered="#{not userLoginController.isUserLoggedIn()}">
 			<ui:include src="/WEB-INF/templates/user/user_not_logged_in.tpl" />
diff --git a/web/user/login_user_change_personal_data.xhtml b/web/user/login_user_change_personal_data.xhtml
index 252a3486..b5c1a72e 100644
--- a/web/user/login_user_change_personal_data.xhtml
+++ b/web/user/login_user_change_personal_data.xhtml
@@ -16,7 +16,7 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.ERROR_LOGIN_USER_EDIT_DATA_DISABLED}" messageStyleClass="alert-danger" rendered="#{not featureController.isFeatureEnabled('change_user_personal_data')}" />
+		<widgets:outputMessageBox id="error-user-edit-data-disabled" message="#{msg.ERROR_LOGIN_USER_EDIT_DATA_DISABLED}" messageStyleClass="alert-danger" rendered="#{not featureController.isFeatureEnabled('change_user_personal_data')}" />
 
 		<ui:fragment rendered="#{userLoginController.ifUserMustChangePassword()}">
 			<p:link outcome="user_change_password" value="#{msg.USER_LOGIN_MUST_CHANGE_PASSWORD}" />
diff --git a/web/user/login_user_contact_data_saved.xhtml b/web/user/login_user_contact_data_saved.xhtml
index a5fda2ee..ab88c830 100644
--- a/web/user/login_user_contact_data_saved.xhtml
+++ b/web/user/login_user_contact_data_saved.xhtml
@@ -16,13 +16,11 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.LOGIN_MESSAGE_DATA_SAVED}" rendered="#{userLoginController.isUserLoggedIn() and featureController.isFeatureEnabled('change_user_personal_data') and (not userLoginController.ifUserMustChangePassword() or not featureController.isFeatureEnabled('user_must_change_password'))}" />
+		<widgets:outputMessageBox id="login-user-data-saved" message="#{msg.LOGIN_MESSAGE_DATA_SAVED}" rendered="#{userLoginController.isUserLoggedIn() and featureController.isFeatureEnabled('change_user_personal_data') and (not userLoginController.ifUserMustChangePassword() or not featureController.isFeatureEnabled('user_must_change_password'))}" />
 
-		<widgets:outputMessageBox message="#{msg.ERROR_LOGIN_USER_EDIT_DATA_DISABLED}" messageStyleClass="alert-danger" rendered="#{not featureController.isFeatureEnabled('change_user_personal_data')}" />
+		<widgets:outputMessageBox id="error-user-edit-data-disabled" message="#{msg.ERROR_LOGIN_USER_EDIT_DATA_DISABLED}" messageStyleClass="alert-danger" rendered="#{not featureController.isFeatureEnabled('change_user_personal_data')}" />
 
-		<ui:fragment rendered="#{userLoginController.ifUserMustChangePassword()}">
-			<p:link outcome="user_change_password" value="#{msg.USER_LOGIN_MUST_CHANGE_PASSWORD}" />
-		</ui:fragment>
+		<p:link outcome="user_change_password" value="#{msg.USER_LOGIN_MUST_CHANGE_PASSWORD}" rendered="#{userLoginController.ifUserMustChangePassword()}" />
 
 		<ui:fragment rendered="#{not userLoginController.isUserLoggedIn()}">
 			<ui:include src="/WEB-INF/templates/user/user_not_logged_in.tpl" />
diff --git a/web/user/login_user_data_saved.xhtml b/web/user/login_user_data_saved.xhtml
index 014da48a..531068f4 100644
--- a/web/user/login_user_data_saved.xhtml
+++ b/web/user/login_user_data_saved.xhtml
@@ -16,7 +16,7 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<widgets:outputMessageBox message="#{msg.LOGIN_MESSAGE_DATA_SAVED}" rendered="#{userLoginController.isUserLoggedIn() and (not userLoginController.ifUserMustChangePassword() or not featureController.isFeatureEnabled('user_must_change_password'))}" />
+		<widgets:outputMessageBox id="login-user-data-saved" message="#{msg.LOGIN_MESSAGE_DATA_SAVED}" rendered="#{userLoginController.isUserLoggedIn() and (not userLoginController.ifUserMustChangePassword() or not featureController.isFeatureEnabled('user_must_change_password'))}" />
 
 		<ui:fragment rendered="#{userLoginController.ifUserMustChangePassword()}">
 			<p:link outcome="user_change_password" value="#{msg.USER_LOGIN_MUST_CHANGE_PASSWORD}" />
-- 
2.39.5