--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ >
+
+ <ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
+ <ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_WELCOME}</ui:define>
+
+ <ui:define name="content_header">
+ #{msg.CONTENT_TITLE_ADMIN_WELCOME}
+ </ui:define>
+
+ <ui:define name="content">
+ <!--
+ TODO: Replace this dummy
+ //-->
+ Einiges kann hier eingestellt werden.
+ </ui:define>
+ </ui:composition>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ >
+
+ <ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
+ <ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_LOGOUT}</ui:define>
+
+ <ui:define name="content_header">
+ #{msg.CONTENT_TITLE_ADMIN_LOGOUT}
+ </ui:define>
+
+ <ui:define name="content">
+ Offenes TODO.
+ </ui:define>
+ </ui:composition>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ >
+
+ <ui:composition template="/WEB-INF/templates/guest/guest_base.tpl">
+ <ui:define name="guest_title">#{msg.PAGE_TITLE_INDEX_FOO}</ui:define>
+
+ <ui:define name="content_header">
+ #{msg.CONTENT_TITLE_INDEX_FOO}
+ </ui:define>
+
+ <ui:define name="content">
+ Here goes your content.
+ </ui:define>
+ </ui:composition>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ >
+
+ <ui:composition template="/WEB-INF/templates/guest/guest_base.tpl">
+ <ui:define name="guest_title">#{msg.PAGE_TITLE_INDEX_IMPRINT}</ui:define>
+
+ <ui:define name="content_header">
+ #{msg.CONTENT_TITLE_INDEX_IMPRINT}
+ </ui:define>
+
+ <ui:define name="content">
+ TODO: Hier kommt das Impressum hin!
+ </ui:define>
+ </ui:composition>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ >
+
+ <ui:composition template="/WEB-INF/templates/login/login_base.tpl">
+ <ui:define name="login_title">#{msg.PAGE_TITLE_LOGIN_ADD_ADDRESSBOOK}</ui:define>
+
+ <ui:define name="content_header">
+ #{msg.CONTENT_TITLE_LOGIN_ADD_ADDRESSBOOK}
+ </ui:define>
+
+ <ui:define name="content">
+ <h:form id="add_addressbook" acceptcharset="utf-8">
+ <div class="table">
+ <div class="table_header">
+ #{msg.FORM_LOGIN_ADD_ADDRESSBOOK_TITLE}
+ </div>
+
+ <div class="table_row">
+ <div class="table_left">
+ <h:outputLabel for="addressbookName" value="#{msg.LOGIN_ENTER_ADDRESSBOOK_NAME}"/>
+ </div>
+
+ <div class="table_right">
+ <h:inputText class="input" id="addressbookName" value="#{addressbookController.addressbookName}" maxlength="50" size="20" title="#{msg.LOGIN_ENTER_ADDRESSBOOK_NAME_TITLE}" required="true" requiredMessage="#{msg.LOGIN_ADDRESSBOOK_NAME_REQUIRED_MESSAGE}">
+ <f:validator for="addressbookName" validatorId="AddressbookNameValidator" />
+ </h:inputText>
+ </div>
+ </div>
+
+ <div class="table_footer">
+ <h:commandButton class="reset" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
+ <h:commandButton class="submit" type="submit" id="register" value="#{msg.BUTTON_LOGIN_ADD_ADDRESSBOOK}" action="#{addressbookController.addAddressbook()}" />
+ </div>
+ </div>
+ </h:form>
+ </ui:define>
+ </ui:composition>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ >
+
+ <ui:composition template="/WEB-INF/templates/login/login_base.tpl">
+ <ui:define name="login_title">#{msg.PAGE_TITLE_LOGIN_EDIT_ADDRESS}</ui:define>
+
+ <ui:define name="content_header">
+ #{msg.CONTENT_TITLE_LOGIN_EDIT_ADDRESS}
+ </ui:define>
+
+ <ui:define name="content">
+ Here goes your content.
+ </ui:define>
+ </ui:composition>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ >
+
+ <ui:composition template="/WEB-INF/templates/login/login_base.tpl">
+ <ui:define name="login_title">#{msg.PAGE_TITLE_LOGIN_EDIT_USER_DATA}</ui:define>
+
+ <ui:define name="content_header">
+ #{msg.CONTENT_TITLE_LOGIN_EDIT_USER_DATA}
+ </ui:define>
+
+ <ui:define name="content">
+ Here goes your content.
+ </ui:define>
+ </ui:composition>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ >
+
+ <ui:composition template="/WEB-INF/templates/login/login_base.tpl">
+ <ui:define name="login_title">#{msg.PAGE_TITLE_LOGIN_HOME}</ui:define>
+
+ <ui:define name="content_header">
+ #{msg.CONTENT_TITLE_LOGIN_HOME}
+ </ui:define>
+
+ <ui:define name="content">
+ Here goes your content.
+ </ui:define>
+ </ui:composition>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ >
+
+ <f:metadata>
+ <f:viewParam id="userId" name="userId" value="#{shareController.shareeUserId}" required="true" requiredMessage="#{msg.PARAMETER_USER_ID_MISSING}" converterMessage="#{msg.PARAMETER_USER_ID_INVALID}" validatorMessage="#{msg.PARAMETER_USER_ID_NOT_FOUND}">
+ <f:convertNumber for="userId" type="number" minIntegerDigits="1" maxIntegerDigits="20" />
+ <f:validator for="userId" validatorId="UserIdValidator" />
+ </f:viewParam>
+ </f:metadata>
+
+ <ui:composition template="/WEB-INF/templates/login/login_base.tpl">
+ <ui:define name="login_title">#{msg.PAGE_TITLE_LOGIN_LIST_SHARING_ADDRESSBOOKS}</ui:define>
+
+ <ui:define name="content_header">
+ #{msg.CONTENT_TITLE_LOGIN_LIST_SHARING_ADDRESSBOOKS}
+ </ui:define>
+
+ <ui:define name="content">
+ <ui:fragment rendered="#{shareController.isShareeUserIdSet()}">
+ Here goes your content.
+ </ui:fragment>
+
+ <ui:fragment rendered="#{shareController.isShareeUserIdEmpty()}">
+ <ui:include src="/WEB-INF/templates/generic/userid_error.tpl" />
+ </ui:fragment>
+ </ui:define>
+ </ui:composition>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ >
+
+ <ui:composition template="/WEB-INF/templates/login/login_base.tpl">
+ <ui:define name="login_title">#{msg.PAGE_TITLE_LOGIN_OTHER_ADDRESSBOOKS}</ui:define>
+
+ <ui:define name="content_header">
+ #{msg.CONTENT_TITLE_LOGIN_OTHER_ADDRESSBOOKS}
+ </ui:define>
+
+ <ui:define name="content">
+ Here goes your content.
+ </ui:define>
+ </ui:composition>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ >
+
+ <ui:composition template="/WEB-INF/templates/login/login_base.tpl">
+ <ui:define name="login_title">#{msg.PAGE_TITLE_LOGIN_OWN_ADDRESSBOOKS}</ui:define>
+
+ <ui:define name="content_header">
+ #{msg.CONTENT_TITLE_LOGIN_OWN_ADDRESSBOOKS}
+ </ui:define>
+
+ <ui:define name="content">
+ <div class="table">
+ <div class="table_header">
+ #{msg.TABLE_HEADER_LIST_OWN_ADDRESSBOOKS}
+ </div>
+
+ <div class="para">
+ <h:dataTable id="table_own_addressbooks" var="addressbook" value="#{addressbookController.allAddressbooks()}" styleClass="table" headerClass="table_data_column" summary="#{msg.TABLE_SUMMARY_LOGIN_LIST_OWN_ADDRESSBOOKS}" rendered="#{addressbookController.hasCreatedAddressbooks()}">
+ <h:column>
+ <f:facet name="header">#{msg.ADDRESSBOOK_ID}</f:facet>
+
+ <h:outputText id="addressbookId" value="#{addressbook.addressbookId}" title="#{msg.ADDRESSBOOK_ID_TITLE}" />
+ </h:column>
+
+ <h:column>
+ <f:facet name="header">#{msg.ADDRESSBOOK_NAME}</f:facet>
+
+ <h:link outcome="user_show_addressbook" title="#{msg.LINK_SHOW_ADDRESSBOOK_TITLE}">
+ <f:param name="addressbookId" value="#{addressbook.addressbookId}" />
+ <h:outputText id="addressbookName" value="#{addressbook.addressbookName}" title="#{msg.ADDRESSBOOK_NAME_TITLE}" />
+ </h:link>
+ </h:column>
+
+ <h:column>
+ <f:facet name="header">#{msg.ADDRESSBOOK_TOTAL_ENTRIES}</f:facet>
+
+ <h:link outcome="show_addressbook_entries" title="#{msg.LINK_SHOW_ADDRESSBOOK_ENTRIES_TITLE}">
+ <f:param name="addressbookId" value="#{addressbook.addressbookId}" />
+ <h:outputText id="addressbookEntries" value="#{addressbookController.allEntriesSize(addressbook)}" title="#{msg.ADDRESSBOOK_TOTAL_ENTRIES_TITLE}" />
+ </h:link>
+ </h:column>
+
+ <h:column>
+ <f:facet name="header">#{msg.ADDRESSBOOK_CREATED}</f:facet>
+
+ <h:outputFormat id="addressbookCreated" value="#{addressbook.addressbookCreated.time}" title="#{msg.ADDRESSBOOK_CREATED_TITLE}">
+ <f:convertDateTime for="addressbookCreated" type="both" timeStyle="short" dateStyle="medium" />
+ </h:outputFormat>
+ </h:column>
+ </h:dataTable>
+ </div>
+
+ <div class="table_footer">
+ <h:link id="add_first_addressbook" outcome="login_add_addressbook" value="#{msg.LINK_LOGIN_ADD_FIRST_ADDRESSBOOK}" title="#{msg.LINK_LOGIN_ADD_FIRST_ADDRESSBOOK_TITLE}" rendered="#{addressbookController.hasCreatedAddressbooks() == false}" />
+ <h:link id="add_additional_addressbook" outcome="login_add_addressbook" value="#{msg.LINK_LOGIN_ADD_ADDITIONAL_ADDRESSBOOK}" title="#{msg.LINK_LOGIN_ADD_ADDITIONAL_ADDRESSBOOK_TITLE}" rendered="#{addressbookController.hasCreatedAddressbooks()}" />
+ </div>
+ </div>
+ </ui:define>
+ </ui:composition>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
+
+ <ui:composition template="/WEB-INF/templates/login/login_base.tpl">
+ <ui:define name="login_title">#{msg.PAGE_TITLE_LOGIN_SHARED_ADDRESSBOOKS}</ui:define>
+
+ <ui:define name="content_header">
+ #{msg.CONTENT_TITLE_LOGIN_SHARED_ADDRESSBOOKS}
+ </ui:define>
+
+ <ui:define name="content">
+ <div class="table">
+ <div class="table_header">
+ #{msg.LOGIN_TABLE_HEADER_SHARED_ADDRESSBOOKS}
+ </div>
+
+ <div class="para">
+ <h:dataTable id="sharedAddressbooks" var="share" value="#{shareController.allShares()}" headerClass="table_data_column" summary="#{msg.TABLE_SUMMARY_LOGIN_SHARED_ADDRESSBOOKS}" rendered="#{shareController.isSharingAddressbooks()}">
+ <c:set value="#{share.shareUserSharee}" target="#{profileController}" property="user" />
+
+ <h:column>
+ <f:facet name="header">#{msg.SHARED_ADDRESSBOOK}</f:facet>
+
+ <h:link outcome="user_show_addressbook" title="#{msg.LINK_SHOW_ADDRESSBOOK_TITLE}">
+ <f:param name="addressbookId" value="#{share.shareAddressbook.addressbookId}" />
+ <h:outputText id="addressbookName" value="#{share.shareAddressbook.addressbookName}" title="#{msg.SHARED_ADDRESSBOOK_TITLE}" />
+ </h:link>
+ </h:column>
+
+ <h:column>
+ <f:facet name="header">#{msg.SHAREE_USER_NAME}</f:facet>
+ <ui:include src="/WEB-INF/templates/generic/user_profile_link.tpl" />
+ </h:column>
+
+ <h:column>
+ <f:facet name="header">#{msg.SHARE_CREATED}</f:facet>
+ <h:outputText id="shareCreated" value="#{share.shareCreated.time}" title="#{msg.SHARE_CREATED_TITLE}">
+ <f:convertDateTime for="shareCreated" type="both" timeStyle="short" dateStyle="medium" />
+ </h:outputText>
+ </h:column>
+ </h:dataTable>
+ </div>
+
+ <div class="para">
+ <h:outputText class="notice" value="#{msg.LOGIN_USER_HAS_NOT_SHARED_ADDRESSBOOKS}" rendered="#{not shareController.isSharingAddressbooks()}" />
+ </div>
+
+ <div class="table_footer">
+ <h:link id="shareAddressbook" outcome="user_list" title="#{msg.LINK_LOGIN_START_SHARING_ADDRESSBOOKS_TITLE}" value="#{msg.LINK_LOGIN_START_SHARING_ADDRESSBOOKS}" />
+ </div>
+ </div>
+ </ui:define>
+ </ui:composition>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
+
+ <ui:composition template="/WEB-INF/templates/#{loginController.templateType}/#{loginController.templateType}_base.tpl">
+ <ui:define name="login_title">#{msg.PAGE_TITLE_LOGIN_START_SHARING_ADDRESSBOOK}</ui:define>
+
+ <ui:define name="content_header">
+ #{msg.CONTENT_TITLE_LOGIN_START_SHARING_ADDRESSBOOK}
+ </ui:define>
+
+ <ui:define name="content">
+ <div class="table_big">
+
+ <div class="table_header">
+ #{msg.TABLE_HEADER_CHOOSE_USER_FOR_SHARING}
+ </div>
+
+ <div class="para">
+ <h:outputText id="userNotLoggedIn" class="notice" value="#{msg.USER_NOT_LOGGED_IN}" rendered="#{not loginController.isUserLoggedIn()}" />
+
+ <h:dataTable id="userList" headerClass="table_header_column" var="user" value="#{addressbookController.allUsersNotSharing()}" rendered="#{loginController.isUserLoggedIn() and not empty addressbookController.addressbook and not loginController.isInvisible()}">
+
+ <h:column>
+ <f:facet name="header">#{msg.USER_ID}</f:facet>
+ <h:outputText value="#{user.userId}" />
+ </h:column>
+
+ <h:column>
+ <f:facet name="header">#{msg.USER_NAME}</f:facet>
+ <ui:include src="/WEB-INF/templates/generic/user_profile_link.tpl" />
+ </h:column>
+
+ <h:column>
+ <f:facet name="header">#{msg.LOGIN_START_SHARING_TITLE}</f:facet>
+ <h:form acceptcharset="utf-8" id="startSharing" rendered="#{profileController.isProfileLinkVisibleByUser(user)}">
+ <h:commandButton class="submit" id="submit" value="#{msg.LOGIN_START_SHARING_BUTTON}" action="#{shareController.startSharing(user, addressbookController.addressbook)}" title="#{msg.LOGIN_START_SHARING_BUTTON_TITLE}" />
+ </h:form>
+ </h:column>
+ </h:dataTable>
+
+ <h:outputText id="addressbokUnset" class="notice" value="#{msg.LOGIN_ADDRESSBOOK_NOT_SET}" rendered="#{empty addressbookController.addressbook}" />
+
+ <h:outputText id="ownProfileInvisible" class="notice" value="#{msg.LOGIN_OWN_PROFILE_INVISIBLE}" rendered="#{loginController.isUserLoggedIn() and not empty addressbookController.addressbook and not loginController.isInvisible()}" />
+ </div>
+
+ <div class="table_footer">
+ <ul>
+ <li>#{msg.LOGIN_START_SHARING_NOTICE1}</li>
+ <li>#{msg.LOGIN_START_SHARING_NOTICE2}</li>
+ </ul>
+ </div>
+ </div>
+ </ui:define>
+ </ui:composition>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ >
+
+ <ui:composition template="/WEB-INF/templates/guest/guest_base.tpl">
+ <ui:define name="guest_title">#{msg.PAGE_TITLE_INDEX_PRIVACY}</ui:define>
+
+ <ui:define name="content_header">
+ #{msg.CONTENT_TITLE_INDEX_PRIVACY}
+ </ui:define>
+
+ <ui:define name="content">
+ Hier kommen die Datenschutzbestimmungen hin.
+ </ui:define>
+ </ui:composition>
+</html>
--- /dev/null
+/**
+div, table {
+ border: 1px solid #ff0000;
+}
+/**/
+
+#top {
+ position: relative;
+ background-color: #036fab;
+ color: #ffffff;
+ padding: 5px;
+ margin: 0px 0px 10px 0px;
+}
+
+#footer {
+ position: relative;
+ background-color: #c2dfef;
+ padding: 5px;
+ margin: 10px 0px 0px 0px;
+}
+
+#left {
+ float: left;
+ background-color: #ece3a5;
+ padding: 5px;
+ width: 150px;
+}
+
+#right {
+ float: right;
+ background-color: #ece3a5;
+ padding: 5px;
+ width: 150px;
+}
+
+.center_content {
+ position: relative;
+ background-color: #dddddd;
+ padding: 5px;
+}
+
+.left_content {
+ padding: 5px;
+ margin-left: 170px;
+}
+
+#top a:link, #top a:visited {
+ color: #ffffff;
+ font-weight : bold;
+ text-decoration: none;
+}
+
+#top a:link:hover, #top a:visited:hover {
+ color: #000000;
+ font-weight : bold;
+ text-decoration : underline;
+}
+
+table, .table {
+ margin: 0px;
+ padding: 0px;
+}
+
+.table {
+ width: 500px;
+}
+
+.table_big {
+ width: 100%;
+}
+
+.table_row {
+ width: 100%;
+ min-height: 20px;
+}
+
+.table_left {
+ width: 250px;
+ min-height: 20px;
+ float: left;
+}
+
+.table_right {
+ width: 200px;
+ min-height: 20px;
+ float: right;
+}
+
+.table_left25 {
+ width: 20px;
+ min-height: 20px;
+ float: left;
+}
+
+.table_right75 {
+ width: 430px;
+ min-height: 20px;
+ float: right;
+}
+
+.para {
+ padding: 5px 5px 5px 5px;
+}
+
+.clear {
+ clear: both;
+}
+
+ul.footer_nav {
+ text-align: center;
+ /*width : 95%;*/
+ list-style: none;
+ margin: 0px;
+}
+
+ul.footer_nav li.footer_link {
+ float: left;
+ width: 100px;
+}
+
+ul.footer_nav li.footer_copyright {
+ float: right;
+ width: 300px;
+ margin-right: 10px;
+}
+
+.menu ul {
+ list-style: none;
+ padding-left: 5px;
+}
+
+.table_header, .table_label {
+ text-align: center;
+ font-weight: bold;
+}
+
+#content_header {
+ background-color: #dddddd;
+ font-weight: bold;
+ font-size: 18px;
+ margin-bottom: 20px;
+}
+
+.table_header_column {
+ width: 100px;
+}
+
+.table_header_column25 {
+ width: 25%;
+}
+
+.table_data_column {
+ width: 100px;
+}
+
+.item_price, .item_total_price {
+ text-align: right;
+}
+
+.errors {
+ color: red;
+}
+
+.fatals {
+ color: red;
+ font-weight: bold;
+}
+
+.infos {
+ color: cornflowerblue;
+}
+
+.warnings {
+ color: gold;
+}
--- /dev/null
+body {
+ background-color: #ffffff;
+ font-size: 12px;
+ font-family: sans-serif;
+ color: #000000;
+ margin: 10px;
+}
+
+h1 {
+ border-bottom: 1px solid #AFAFAF;
+ font-size: 16px;
+ font-weight: bold;
+ margin: 0px;
+ padding: 0px;
+}
+
+a:link, a:visited {
+ color: #045491;
+ font-weight : bold;
+ text-decoration: none;
+}
+
+a:link:hover, a:visited:hover {
+ color: #045491;
+ font-weight : bold;
+ text-decoration : underline;
+}
+
+label {
+ vertical-align: middle;
+}
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ >
+
+ <ui:composition template="/WEB-INF/templates/guest/guest_base.tpl">
+ <ui:define name="guest_title">#{msg.PAGE_TITLE_INDEX_TERMS}</ui:define>
+
+ <ui:define name="content_header">
+ #{msg.CONTENT_TITLE_INDEX_TERMS}
+ </ui:define>
+
+ <ui:define name="content">
+ Hier kommen die allgemeinen Geschäftsbedingungen hin.
+ </ui:define>
+ </ui:composition>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ >
+
+ <ui:composition template="/WEB-INF/templates/guest/guest_base.tpl" id="user_login">
+ <ui:define name="guest_title">#{msg.PAGE_TITLE_USER_LOGIN}</ui:define>
+
+ <ui:define name="content_header">
+ #{msg.CONTENT_TITLE_USER_LOGIN}
+ </ui:define>
+
+ <ui:define name="content">
+ <div class="para">
+ <!-- TODO Internatialize this somehow //-->
+ Noch kein Benutzerkonto? Einfach <h:link id="user_register" outcome="user_register" title="Als Benutzer anmelden">hier</h:link> anmelden.
+ </div>
+
+ <div class="para">
+ <ui:include id="login_form" class="login_form" src="/WEB-INF/templates/guest/guest_login_form.tpl" />
+ </div>
+
+ <div class="para">
+ <h:link id="user_lost_password" outcome="user_lost_passwd" title="Passwort wiederherstellen" value="Passwort vergessen?" />
+ </div>
+ </ui:define>
+ </ui:composition>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ >
+
+ <ui:composition template="/WEB-INF/templates/guest/guest_base.tpl" id="login_error">
+ <ui:define name="guest_title">#{msg.PAGE_TITLE_USER_LOGIN_ERROR}</ui:define>
+
+ <ui:define name="content_header">
+ #{msg.CONTENT_TITLE_USER_LOGIN_ERROR}
+ </ui:define>
+
+ <ui:define name="content">
+ Hier kommt die Fehlermeldung hin.
+ </ui:define>
+ </ui:composition>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ >
+
+ <ui:composition template="/WEB-INF/templates/guest/guest_base.tpl">
+ <ui:define name="guest_title">#{msg.PAGE_TITLE_USER_LOST_PASSWORD}</ui:define>
+
+ <ui:define name="content_header">
+ #{msg.CONTENT_TITLE_USER_LOST_PASSWORD}
+ </ui:define>
+
+ <ui:define name="content">
+ <div class="para" id="user_lost_password_content">
+ <h:form id="lost_password_form">
+ <div class="table">
+ <div class="table_header">
+ #{msg.GUEST_LOST_PASSWORD_TITLE}
+ </div>
+
+ <fieldset id="login_data">
+ <legend title="#{msg.GUEST_LOST_PASSWORD_LEGEND_TITLE}">#{msg.GUEST_LOST_PASSWORD_LEGEND}</legend>
+
+ <div class="table_row">
+ <div class="table_left">
+ <h:outputLabel for="id" value="#{msg.ENTER_USER_NAME}" />
+ </div>
+
+ <div class="table_right">
+ <h:inputText class="input" id="id" size="10" maxlength="20" />
+ </div>
+
+ <div class="clear"></div>
+ </div>
+
+ <div class="table_header">
+ #{msg.GUEST_LOST_PASSWORD_NUMBER_OR_EMAIL}
+ </div>
+
+ <div class="table_row">
+ <div class="table_left">
+ <h:outputLabel for="email" value="#{msg.ENTER_EMAIL_ADDRESS}" />
+ </div>
+
+ <div class="table_right">
+ <h:inputText class="input" id="email" size="20" maxlength="255" />
+ </div>
+
+ <div class="clear"></div>
+ </div>
+
+ </fieldset>
+
+ <div class="table_footer">
+ <h:commandButton class="reset" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
+ <h:commandButton class="submit" type="submit" value="#{msg.BUTTON_CONTINUE_STEP_2}" action="#{passwdRecoverController.doLostPasswordStep2()}" />
+ </div>
+ </div>
+ </h:form>
+ </div>
+ </ui:define>
+ </ui:composition>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ >
+
+ <ui:composition template="/WEB-INF/templates/guest/guest_base.tpl">
+ <ui:define name="guest_title">#{msg.PAGE_TITLE_USER_REGISTER}</ui:define>
+
+ <ui:define name="content_header">
+ #{msg.CONTENT_TITLE_USER_REGISTER}
+ </ui:define>
+
+ <ui:define name="content">
+ <div class="para">
+ #{msg.GUEST_ALREADY_USER_CONTINUE_LOGIN_1}
+ <h:link outcome="user_login" value="#{msg.CLICK_HERE}" />
+ #{msg.GUEST_ALREADY_USER_CONTINUE_LOGIN_2}
+ </div>
+
+ <div class="registration_form">
+ <ui:include src="/WEB-INF/templates/guest/guest_registration_form.tpl" />
+ </div>
+ </ui:define>
+ </ui:composition>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ >
+
+ <ui:composition template="/WEB-INF/templates/guest/guest_base.tpl">
+ <ui:define name="guest_title">#{msg.PAGE_TITLE_USER_REGISTER_DONE}</ui:define>
+
+ <ui:define name="content_header">
+ #{msg.CONTENT_TITLE_USER_REGISTER_DONE}
+ </ui:define>
+
+ <ui:define name="content">
+ <div class="para">
+ #{msg.GUEST_USER_REGISTRATION_COMPLETED}
+ </div>
+
+ <div class="registration_form">
+ <h:link id="resend_link" class="resend_link" value="#{msg.LINK_GUEST_RESENT_CONFIRMATION_LINK}" outcome="user_resend_link">
+ <f:param name="user_id" value="#{userController.userId}" />
+ </h:link>
+ </div>
+ </ui:define>
+ </ui:composition>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ >
+
+ <ui:composition template="/WEB-INF/templates/guest/guest_base.tpl">
+ <ui:define name="guest_title">#{msg.PAGE_TITLE_INDEX_RESEND_LINK}</ui:define>
+
+ <ui:define name="content_header">
+ #{msg.CONTENT_TITLE_INDEX_RESEND_LINK}
+ </ui:define>
+
+ <ui:define name="content">
+ Here goes your content.
+ </ui:define>
+ </ui:composition>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
+
+ <f:metadata>
+ <f:viewParam id="addressbookId" name="addressbookId" value="#{addressbookController.addressbookId}" required="true" requiredMessage="#{msg.PARAMETER_ADDRESSBOOK_ID_MISSING}" converterMessage="#{msg.PARAMETER_ADDRESSBOOK_ID_INVALID}" validatorMessage="#{msg.PARAMETER_ADDRESSBOOK_ID_NOT_FOUND}">
+ <f:convertNumber for="addressbookId" type="number" minIntegerDigits="1" maxIntegerDigits="20" />
+ <f:validator for="addressbookId" validatorId="AddressbookIdValidator" />
+ </f:viewParam>
+ </f:metadata>
+
+ <ui:composition template="/WEB-INF/templates/#{loginController.templateType}/#{loginController.templateType}_base.tpl">
+ <ui:define name="login_title">#{msg.PAGE_TITLE_USER_SHOW_ADDRESSBOOK}</ui:define>
+ <ui:define name="guest_title">#{msg.PAGE_TITLE_INDEX_SHOW_ADDRESSBOOK}</ui:define>
+
+ <ui:define name="content_header">
+ #{msg.CONTENT_TITLE_USER_SHOW_ADDRESSBOOK}
+ </ui:define>
+
+ <ui:define name="content">
+ <h:panelGrid headerClass="table_header" styleClass="table" columns="2" rendered="#{addressbookController.isAddressbookLoaded()}">
+ <c:set value="#{addressbookController.addressbookUser}" target="#{profileController}" property="user" />
+
+ <f:facet name="header">#{msg.TABLE_HEADER_SHOW_ADDRESSBOOK}</f:facet>
+
+ <h:outputLabel for="addressbookId" class="table_label">#{msg.ADDRESSBOOK_ID}</h:outputLabel>
+ <h:outputText id="addressbookId" value="#{addressbookController.addressbookId}" />
+
+ <h:outputLabel for="addressbookName" class="table_label">#{msg.ADDRESSBOOK_NAME}</h:outputLabel>
+ <h:outputText id="addressbookName" value="#{addressbookController.addressbookName}" />
+
+ <h:outputLabel for="userProfileLink" class="table_label">#{msg.ADDRESSBOOK_OWNER}</h:outputLabel>
+ <ui:include src="/WEB-INF/templates/generic/user_profile_link.tpl" />
+
+ <h:outputLabel for="addressbookCreated" class="table_label">#{msg.ADDRESSBOOK_CREATED}</h:outputLabel>
+ <h:outputFormat id="addressbookCreated" value="#{addressbookController.addressbook.addressbookCreated.time}" title="#{msg.ADDRESSBOOK_CREATED_TITLE}">
+ <f:convertDateTime for="addressbookCreated" type="both" timeStyle="short" dateStyle="medium" />
+ </h:outputFormat>
+
+ <h:outputLabel for="addressbookStatus" class="table_label">#{msg.ADDRESSBOOK_STATUS}</h:outputLabel>
+ <h:outputText id="addressbookStatus" value="#{msg[addressbookController.addressbook.addressbookStatus.messageKey]}" title="#{msg.ADDRESSBOOK_STATUS_TITLE}" />
+
+ <f:facet name="footer">
+ <h:outputText id="ownProfileInvible" class="notice" value="#{msg.USER_NOT_LOGGED_IN}" rendered="#{not loginController.isUserLoggedIn()}" />
+ <h:outputText id="ownProfileInvible" class="notice" value="#{msg.LOGIN_OWN_PROFILE_INVISIBLE}" rendered="#{loginController.isUserLoggedIn() and loginController.isInvisible()}" />
+
+ <ui:fragment rendered="#{loginController.isUserLoggedIn() and not loginController.isInvisible()}">
+ <h:link id="startSharing" outcome="login_start_sharing_addressbook" value="#{msg.LINK_LOGIN_START_SHARING_ADDRESSBOOK}" title="#{msg.LINK_LOGIN_START_SHARING_ADDRESSBOOK_TITLE}" rendered="#{addressbookController.isOwnAddressbook()}" />
+
+ <h:outputText value="Bla bla" rendered="#{addressbookController.isOtherAddressbook()}" />
+ </ui:fragment>
+ </f:facet>
+ </h:panelGrid>
+ </ui:define>
+ </ui:composition>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ >
+
+ <ui:composition template="/WEB-INF/templates/login/login_base.tpl">
+ <ui:define name="login_title">#{msg.PAGE_TITLE_USER_SHOW_ADDRESSBOOK_ENTRIES}</ui:define>
+
+ <ui:define name="content_header">
+ #{msg.CONTENT_TITLE_USER_SHOW_ADDRESSBOOK_ENTRIES}
+ </ui:define>
+
+ <ui:define name="content">
+ Here goes your content.
+ </ui:define>
+ </ui:composition>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
+
+ <ui:composition template="/WEB-INF/templates/#{loginController.templateType}/#{loginController.templateType}_base.tpl">
+ <ui:define name="login_title">#{msg.PAGE_TITLE_USER_LIST}</ui:define>
+
+ <ui:define name="content_header">
+ #{msg.CONTENT_TITLE_USER_LIST}
+ </ui:define>
+
+ <ui:define name="content">
+ <div class="table_big">
+ <div class="table_header">
+ #{msg.TABLE_HEADER_USER_LIST}
+ </div>
+
+ <h:dataTable id="userList" var="user" value="#{userController.allVisibleUsers()}" headerClass="table_header_column25" summary="#{msg.TABLE_SUMMARY_USER_LIST}" rendered="#{userController.isVisibleUserFound()}">
+ <c:set value="#{share.shareUserSharee}" target="#{profileController}" property="user" />
+ <h:column>
+ <f:facet name="header">#{msg.USER_ID}</f:facet>
+ <ui:include src="/WEB-INF/templates/generic/user_profile_link.tpl" />
+ </h:column>
+
+ <h:column>
+ <f:facet name="header">#{msg.USER_NAME}</f:facet>
+ <ui:include src="/WEB-INF/templates/generic/user_profile_link.tpl" />
+ </h:column>
+
+ <h:column>
+ <f:facet name="header">#{msg.USER_CREATED}</f:facet>
+ <h:outputFormat id="userCreated" value="#{user.userCreated.time}" title="#{msg.USER_CREATED_TITLE}" />
+ </h:column>
+
+ <h:column>
+ <f:facet name="header">#{msg.USER_LIST_SHARING_ADDRESSBOOKS}</f:facet>
+ <ui:fragment rendered="#{loginController.isUserLoggedIn()}">
+ <h:link outcome="login_list_sharing_addressbooks" value="#{msg.LINK_LOGIN_LIST_SHARING_ADDRESSBOOKS}" title="#{msg.LINK_LOGIN_LIST_SHARING_ADDRESSBOOKS_TITLE}">
+ <f:param name="userId" value="#{user.userId}" />
+ </h:link>
+ </ui:fragment>
+ <ui:fragment rendered="#{loginController.isGuest()}">
+ <h:outputText id="userShared" value="#{addressbookController.countAllUserSharedAddressbooks(user)}" />
+ </ui:fragment>
+ </h:column>
+ </h:dataTable>
+ </div>
+ </ui:define>
+ </ui:composition>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
+
+ <f:metadata>
+ <f:viewParam id="userId" name="userId" value="#{userController.userId}" required="true" requiredMessage="#{msg.PARAMETER_USER_ID_MISSING}" converterMessage="#{msg.PARAMETER_USER_ID_INVALID}" validatorMessage="#{msg.PARAMETER_USER_ID_NOT_FOUND}">
+ <f:convertNumber for="userId" type="number" minIntegerDigits="1" maxIntegerDigits="20" />
+ <f:validator for="userId" validatorId="UserIdValidator" />
+ </f:viewParam>
+ </f:metadata>
+
+ <ui:composition template="/WEB-INF/templates/#{loginController.templateType}/#{loginController.templateType}_base.tpl">
+ <ui:define name="login_title">#{msg.PAGE_TITLE_LOGIN_USER_PROFILE}</ui:define>
+ <ui:define name="guest_title">#{msg.PAGE_TITLE_INDEX_USER_PROFILE}</ui:define>
+
+ <ui:define name="content_header">
+ #{msg.CONTENT_TITLE_INDEX_USER_PROFILE}
+ </ui:define>
+
+ <ui:define name="content">
+ <c:choose>
+ <c:when test="#{userController.isUserIdEmpty()}">
+ <ui:include src="/WEB-INF/templates/generic/userid_error.tpl" />
+ </c:when>
+
+ <c:when test="#{profileController.isProfileLinkVisibleById(userController.userId)}">
+ <div align="center">
+ <h:panelGrid styleClass="table" headerClass="table_header" footerClass="table_footer">
+ <f:facet name="header">
+ #{msg.PUBLIC_USER_PROFILE}
+ </f:facet>
+ </h:panelGrid>
+ </div>
+ </c:when>
+
+ <c:otherwise>
+ #{msg.ERROR_PROFILE_NOT_VISIBLE}
+ </c:otherwise>
+ </c:choose>
+ </ui:define>
+ </ui:composition>
+</html>