]> git.mxchange.org Git - jfinancials-war.git/commitdiff
Please cherry-pick:
authorRoland Häder <roland@mxchange.org>
Tue, 19 Sep 2017 20:57:36 +0000 (22:57 +0200)
committerRoland Häder <roland@mxchange.org>
Tue, 19 Sep 2017 21:04:56 +0000 (23:04 +0200)
- let's split project-own and generic i18n strings into separate files so they
  don't interfer anymore with each other, having lesser cherry-pick conflicts
- converted some p:inputText again but into p:calendar for an upgraded way of
  entering some dates (like birthday date)
- nearly (?) all p:selectXxxMenu are now have each attribute in a separate line
  making them better readable
- also they can be filtered
- this whole PrimeFaces thing seem to have one big disadvantage: no more
  NoScript is possible with e.g. pagination, also "select" boxes are no longer
  rendered as <select> HTML tags, but now div, ul and li tags
- also mother PF tags with long list of attributes are now have each attribute
  in separate line. This makes changes lesser intrusive as not the whole line is
  considered as changed (by GIT) but only a line or 2 are just added.
- rewrote branchOffice controller to be fully compatible with sorting and
  filtering as the *same* list must be returned for making this fully working
- added converter of branch office entities for making above fully work (plus
  for many more purpose)
- ignored some text for i18n

Signed-off-by: Roland Häder <roland@mxchange.org>
22 files changed:
src/java/org/mxchange/jfinancials/beans/business/branchoffice/FinancialsBranchOfficeWebRequestBean.java
src/java/org/mxchange/jfinancials/converter/business/basicdata/FinancialsBasicCompanyDataConverter.java
src/java/org/mxchange/jfinancials/converter/business/branchoffice/FinancialsBranchOfficeConverter.java [new file with mode: 0644]
src/java/org/mxchange/jfinancials/converter/business/company_employee/FinancialsCompanyEmployeeConverter.java
src/java/org/mxchange/jfinancials/converter/business/headquarters/FinancialsCompanyHeadquartersConverter.java
src/java/org/mxchange/localization/bundle_de_DE.properties
src/java/org/mxchange/localization/bundle_en_US.properties
web/WEB-INF/resources/tags/admin/form_data/contact/admin_form_contact_data.tpl
web/WEB-INF/resources/tags/admin/form_data/mobile/admin_form_mobile_data.tpl
web/WEB-INF/resources/tags/country/form_data/form_country_selector.tpl
web/WEB-INF/resources/tags/table_rows/mobile_selection_table_row.tpl
web/WEB-INF/resources/tags/table_rows/user_personal_title_table_row.tpl
web/WEB-INF/resources/tags/table_rows/user_profile_mode_table_row.tpl
web/WEB-INF/templates/admin/basic_company_data/admin_form_basic_company_data.tpl
web/WEB-INF/templates/admin/branch_offices/admin_form_branch_offices_data.tpl
web/WEB-INF/templates/base.tpl
web/WEB-INF/templates/contact/form_contact_data.tpl
web/admin/basic_company_data/admin_basic_company_data_list.xhtml
web/admin/branch_offices/admin_branch_offices_list.xhtml
web/admin/mobile_provider/admin_mobile_provider_list.xhtml
web/admin/user/admin_user_list.xhtml
web/user/financials/login_financials_add_receipt.xhtml

index 18ae8e69f20c2f89736de2fa48453453a4f96512..335d161a4bd6c17ca955c25e2cbad9658e6ee08c 100644 (file)
@@ -18,6 +18,7 @@ package org.mxchange.jfinancials.beans.business.branchoffice;
 
 import fish.payara.cdi.jsr107.impl.NamedCache;
 import java.text.MessageFormat;
+import java.util.Comparator;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
@@ -47,6 +48,11 @@ public class FinancialsBranchOfficeWebRequestBean extends BaseFinancialsControll
         */
        private static final long serialVersionUID = 5_028_697_360_461L;
 
+       /**
+        * A list of all branch offices
+        */
+       private final List<BranchOffice> allBranchOffices;
+
        /**
         * EJB for administrative purposes
         */
@@ -60,12 +66,20 @@ public class FinancialsBranchOfficeWebRequestBean extends BaseFinancialsControll
        @NamedCache (cacheName = "branchOfficeCache")
        private Cache<Long, BranchOffice> branchOfficeCache;
 
+       /**
+        * A list of filtered branch offices
+        */
+       private List<BranchOffice> filteredBranchOffices;
+
        /**
         * Default constructor
         */
        public FinancialsBranchOfficeWebRequestBean () {
                // Call super constructor
                super();
+
+               // Init list
+               this.allBranchOffices = new LinkedList<>();
        }
 
        /**
@@ -73,7 +87,8 @@ public class FinancialsBranchOfficeWebRequestBean extends BaseFinancialsControll
         * <p>
         * @param event Event being fired
         * <p>
-        * @throws NullPointerException If the parameter or it's carried instance is null
+        * @throws NullPointerException If the parameter or it's carried instance is
+        * null
         * @throws IllegalArgumentException If the branchId is zero or lower
         */
        public void afterBranchOfficeAddedEvent (@Observes final ObservableBranchOfficeAddedEvent event) {
@@ -94,27 +109,33 @@ public class FinancialsBranchOfficeWebRequestBean extends BaseFinancialsControll
 
                // Add instance to cache
                this.branchOfficeCache.put(event.getBranchOffice().getBranchId(), event.getBranchOffice());
+               this.allBranchOffices.add(event.getBranchOffice());
        }
 
        @Override
+       @SuppressWarnings ("ReturnOfCollectionOrArrayField")
        public List<BranchOffice> allBranchOffices () {
-               // Init list
-               final List<BranchOffice> list = new LinkedList<>();
-
-               // Get iterator
-               final Iterator<Cache.Entry<Long, BranchOffice>> iterator = this.branchOfficeCache.iterator();
-
-               // Loop over all
-               while (iterator.hasNext()) {
-                       // Get next entry
-                       final Cache.Entry<Long, BranchOffice> next = iterator.next();
+               return this.allBranchOffices;
+       }
 
-                       // Add value to list
-                       list.add(next.getValue());
-               }
+       /**
+        * Getter for a list of filtered branch offices
+        * <p>
+        * @return Filtered branch offices
+        */
+       @SuppressWarnings ("ReturnOfCollectionOrArrayField")
+       public List<BranchOffice> getFilteredBranchOffices () {
+               return this.filteredBranchOffices;
+       }
 
-               // Return it
-               return list;
+       /**
+        * Setter for a list of filtered branch offices
+        * <p>
+        * @param filteredBranchOffices Filtered branch offices
+        */
+       @SuppressWarnings ("AssignmentToCollectionOrArrayFieldFromParameter")
+       public void setFilteredBranchOffices (final List<BranchOffice> filteredBranchOffices) {
+               this.filteredBranchOffices = filteredBranchOffices;
        }
 
        /**
@@ -136,6 +157,30 @@ public class FinancialsBranchOfficeWebRequestBean extends BaseFinancialsControll
                                this.branchOfficeCache.put(next.getBranchId(), next);
                        }
                }
+
+               // Is the list empty, but filled cache?
+               if (this.allBranchOffices.isEmpty() && this.branchOfficeCache.iterator().hasNext()) {
+                       // Get iterator
+                       final Iterator<Cache.Entry<Long, BranchOffice>> iterator = this.branchOfficeCache.iterator();
+
+                       // Build up list
+                       while (iterator.hasNext()) {
+                               // GEt next element
+                               final Cache.Entry<Long, BranchOffice> next = iterator.next();
+
+                               // Add to list
+                               this.allBranchOffices.add(next.getValue());
+                       }
+
+                       // Sort list
+                       this.allBranchOffices.sort(new Comparator<BranchOffice>() {
+                               @Override
+                               public int compare (final BranchOffice o1, final BranchOffice o2) {
+                                       return o1.getBranchId() > o2.getBranchId() ? 1 : o1.getBranchId() < o2.getBranchId() ? -1 : 0;
+                               }
+                       }
+                       );
+               }
        }
 
 }
index 9dba03fd2754fa19f4e9b14df633561b780ec9ef..63bf0064487a159d67bf285d8b753a1b0b0db966 100644 (file)
@@ -26,12 +26,12 @@ import javax.faces.validator.ValidatorException;
 import javax.naming.Context;
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
-import org.mxchange.jcontactsbusiness.model.basicdata.BusinessBasicData;
-import org.mxchange.jcontactsbusiness.model.basicdata.BasicCompanyDataSessionBeanRemote;
 import org.mxchange.jcontactsbusiness.exceptions.basicdata.BasicCompanyDataNotFoundException;
+import org.mxchange.jcontactsbusiness.model.basicdata.BasicCompanyDataSessionBeanRemote;
+import org.mxchange.jcontactsbusiness.model.basicdata.BusinessBasicData;
 
 /**
- * Converter for contact id <-> valid basic company data instance
+ * Converter for basic company data id <-> valid basic company data instance
  * <p>
  * @author Roland Häder<roland@mxchange.org>
  */
@@ -52,10 +52,10 @@ public class FinancialsBasicCompanyDataConverter implements Converter<BusinessBa
                                final Context initial = new InitialContext();
 
                                // Lookup EJB
-                               BASIC_DATA_BEAN = (BasicCompanyDataSessionBeanRemote) initial.lookup("java:global/jfinancials-ejb/basicCompanyData!org.mxchange.jcontactsbusiness.model.basicdata.BasicCompanyDataSessionBeanRemote");
+                               BASIC_DATA_BEAN = (BasicCompanyDataSessionBeanRemote) initial.lookup("java:global/jfinancials-ejb/basicCompanyData!org.mxchange.jcontactsbusiness.model.basicdata.BasicCompanyDataSessionBeanRemote"); //NOI18N
                        } catch (final NamingException ex) {
                                // Throw it again
-                               throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Cannot lookup EJB", ex.getMessage()), ex);
+                               throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Cannot lookup EJB", ex.getMessage()), ex); //NOI18N
                        }
                }
 
diff --git a/src/java/org/mxchange/jfinancials/converter/business/branchoffice/FinancialsBranchOfficeConverter.java b/src/java/org/mxchange/jfinancials/converter/business/branchoffice/FinancialsBranchOfficeConverter.java
new file mode 100644 (file)
index 0000000..a231f86
--- /dev/null
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2016, 2017 Roland Häder
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jfinancials.converter.business.branchoffice;
+
+import javax.faces.application.FacesMessage;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.convert.Converter;
+import javax.faces.convert.ConverterException;
+import javax.faces.convert.FacesConverter;
+import javax.faces.validator.ValidatorException;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import org.mxchange.jcontactsbusiness.exceptions.branchoffice.BranchOfficeNotFoundException;
+import org.mxchange.jcontactsbusiness.model.branchoffice.BranchOffice;
+import org.mxchange.jcontactsbusiness.model.branchoffice.BranchOfficeSessionBeanRemote;
+
+/**
+ * Converter for branch office id <-> valid basic company data instance
+ * <p>
+ * @author Roland Häder<roland@mxchange.org>
+ */
+@FacesConverter ("BranchOfficeConverter")
+public class FinancialsBranchOfficeConverter implements Converter<BranchOffice> {
+
+       /**
+        * Branch office EJB
+        */
+       private static BranchOfficeSessionBeanRemote BRANCH_OFFICE_BEAN;
+
+       @Override
+       public BranchOffice getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) {
+               // Is the instance there?
+               if (BRANCH_OFFICE_BEAN == null) {
+                       try {
+                               // Not yet, attempt lookup
+                               final Context initial = new InitialContext();
+
+                               // Lookup EJB
+                               BRANCH_OFFICE_BEAN = (BranchOfficeSessionBeanRemote) initial.lookup("java:global/jfinancials-ejb/branchOffice!org.mxchange.jcontactsbusiness.model.branchoffice.BranchOfficeSessionBeanRemote");
+                       } catch (final NamingException ex) {
+                               // Throw it again
+                               throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Cannot lookup EJB", ex.getMessage()), ex);
+                       }
+               }
+
+               // Is the value null or empty?
+               if ((null == submittedValue) || (submittedValue.trim().isEmpty())) {
+                       // Warning message
+                       // @TODO Not working with JNDI (no remote interface) this.loggerBeanLocal.logWarning(MessageFormat.format("{0}.getAsObject(): submittedValue is null or empty - EXIT!", this.getClass().getSimpleName())); //NOI18N
+
+                       // Return null
+                       return null;
+               }
+
+               // Init instance
+               BranchOffice branchOffice = null;
+
+               try {
+                       // Try to parse the value as long
+                       final Long branchOfficeId = Long.valueOf(submittedValue);
+
+                       // Try to get user instance from it
+                       branchOffice = BRANCH_OFFICE_BEAN.findBranchOfficeById(branchOfficeId);
+               } catch (final NumberFormatException ex) {
+                       // Throw again
+                       throw new ConverterException(ex);
+               } catch (final BranchOfficeNotFoundException ex) {
+                       // Debug message
+                       // @TODO Not working with JNDI (no remote interface) this.loggerBeanLocal.logDebug(MessageFormat.format("{0}.getAsObject(): Exception: {1} - Returning null ...", this.getClass().getSimpleName(), ex)); //NOI18N
+               }
+
+               // Return it
+               return branchOffice;
+       }
+
+       @Override
+       public String getAsString (final FacesContext context, final UIComponent component, final BranchOffice value) {
+               // Is the object null?
+               if ((null == value) || (String.valueOf(value).isEmpty())) {
+                       // Is null
+                       return ""; //NOI18N
+               }
+
+               // Return id number
+               return String.valueOf(value.getBranchId());
+       }
+
+}
index 3003534ef9bcec4e8cd17911ffd0a321e89fb16b..f0dee830afa690a524b1fb74112d0dc0c3bb4895 100644 (file)
@@ -26,9 +26,9 @@ import javax.faces.validator.ValidatorException;
 import javax.naming.Context;
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
+import org.mxchange.jcontactsbusiness.exceptions.employee.CompanyEmployeeNotFoundException;
 import org.mxchange.jcontactsbusiness.model.employee.CompanyEmployeeSessionBeanRemote;
 import org.mxchange.jcontactsbusiness.model.employee.Employee;
-import org.mxchange.jcontactsbusiness.exceptions.employee.CompanyEmployeeNotFoundException;
 
 /**
  * Converter for converting company employee to and from id number
@@ -52,10 +52,10 @@ public class FinancialsCompanyEmployeeConverter implements Converter<Employee> {
                                final Context initial = new InitialContext();
 
                                // Lookup EJB
-                               COMPANY_EMPLOYEE_BEAN = (CompanyEmployeeSessionBeanRemote) initial.lookup("java:global/jfinancials-ejb/companyEmployee!org.mxchange.jcontactsbusiness.model.employee.CompanyEmployeeSessionBeanRemote");
+                               COMPANY_EMPLOYEE_BEAN = (CompanyEmployeeSessionBeanRemote) initial.lookup("java:global/jfinancials-ejb/companyEmployee!org.mxchange.jcontactsbusiness.model.employee.CompanyEmployeeSessionBeanRemote"); //NOI18N
                        } catch (final NamingException ex) {
                                // Throw it again
-                               throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Cannot lookup EJB", ex.getMessage()), ex);
+                               throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Cannot lookup EJB", ex.getMessage()), ex); //NOI18N
                        }
                }
 
index 6222e61a4ffcb2a04f0c63c18dc9fb35111244a9..9548747328b5dd7a081dc988611fef1ec08aa468 100644 (file)
@@ -52,10 +52,10 @@ public class FinancialsCompanyHeadquartersConverter implements Converter<Headqua
                                final Context initial = new InitialContext();
 
                                // Lookup EJB
-                               COMPANY_HEADQUARTERS_BEAN = (CompanyHeadquartersSessionBeanRemote) initial.lookup("java:global/jfinancials-ejb/companyEmployee!org.mxchange.jcontactsbusiness.model.headquarters.CompanyHeadquartersSessionBeanRemote");
+                               COMPANY_HEADQUARTERS_BEAN = (CompanyHeadquartersSessionBeanRemote) initial.lookup("java:global/jfinancials-ejb/companyEmployee!org.mxchange.jcontactsbusiness.model.headquarters.CompanyHeadquartersSessionBeanRemote"); //NOI18N
                        } catch (final NamingException ex) {
                                // Throw it again
-                               throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Cannot lookup EJB", ex.getMessage()), ex);
+                               throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Cannot lookup EJB", ex.getMessage()), ex); //NOI18N
                        }
                }
 
index 4f2f5c0d393c6da71e5f747e6f87b261b7b43953..7d5d2658e69e86a163d42633fdc23a472fbce464 100644 (file)
@@ -483,8 +483,7 @@ BUTTON_ADMIN_EXPORT_CONTACTS_XLS=Alle Daten als Excel-Datei exportieren
 LINK_ADMIN_EXPORT_CONTACT=Kontaktdaten exportieren
 LINK_ADMIN_EXPORT_CONTACT_TITLE=Kontaktdaten exportieren
 PERSONAL_DATA_BIRTHDAY=Geburtsdatum (tt.mm.jjjj):
-BIRTHDAY_PATTERN=dd.MM.yyyy
-INVALID_BIRTHDAY=Ung\u00fcltiges Geburtsdatum eingegeben.
+DATE_PATTERN=dd.MM.yyyy
 ADMIN_EXPORT_CONTACT_ID=Kontaktdaten-Id
 ADMIN_EXPORT_CONTACT_PERSONAL_TITLE=Anrede
 ADMIN_EXPORT_CONTACT_ACADEMIC_TITLE=Titel
@@ -766,36 +765,12 @@ ERROR_USER_PASSWORD_TO_WEAK=Das eingegebene Passwort ist zu schwach. Bitte geben
 #@TODO Please fix German umlauts!
 GUEST_REGISTRATION_USER_NAME_NOT_ENTERED=Bitte geben Sie einen Benutzernamen ein. Dieser wird auf Verfuegbarkeit hin getestet.
 #@TODO Please fix German umlauts!
-PAGE_TITLE_LOGIN_FINANCIAL_OVERVIEW=Finanzen-Uebersicht
-#@TODO Please fix German umlauts!
-SUB_TITLE_LOGIN_FINANCIAL_OVERVIEW=Uebersicht Ihrer Finanzen:
-#@TODO Please fix German umlauts!
-PAGE_TITLE_LOGIN_FINANCIAL_ADD_RECEIPT=Rechnung hinzufuegen/erfassen
-SUB_TITLE_LOGIN_FINANCIAL_ADD_RECEIPT=Weitere Rechnung erfassen:
-#@TODO Please fix German umlauts!
-PAGE_TITLE_LOGIN_FINANCIAL_ADD_INCOME=Neue Einkommensart hinzufuegen
-#@TODO Please fix German umlauts!
-SUB_TITLE_LOGIN_FINANCIAL_ADD_INCOME=Weitere Einkommensart hinzufuegen:
-LOGIN_FINANCIAL_ADD_INCOME_FORM_TITLE=Daten einer Einkommensart erfassen:
-LOGIN_FINANCIAL_INCOME_INTERVAL=Einkommensinterval:
-#@TODO Please fix German umlauts!
-FIELD_FINANCIAL_INCOME_REQUIRED=Feld "Einkommensinterval" muss ausgewaehlt werden.
-#@TODO Please fix German umlauts!
-BUTTON_LOGIN_FINCIAL_ADD_INCOME=Einkommensart hinzufuegen
-LOGIN_FINANCIAL_INCOME_SINGLE_VALUE=Einkommensbetrag:
-#@TODO Please fix German umlauts!
-FIELD_FINANCIAL_INCOME_SINGLE_VALUE_REQUIRED=Feld "Einkommensbetrag" bitte ausfuellen.
-LOGIN_FINANCIAL_INCOME_TITLE=Bezeichnung der Einkommensart:
-#@TODO Please fix German umlauts!
-FIELD_FINANCIAL_INCOME_TITLE_REQUIRED=Feld "Title" muss ausgefuellt werden.
-#@TODO Please fix German umlauts!
 ERROR_USER_PASSWORD_EMPTY=Sie muessen ein Passwort eingeben.
 #@TODO Please fix German umlauts!
 ERROR_USER_PASSWORD_REPEAT_EMPTY=Sie muessen das eingegebene Passwort wiederholen.
 GUEST_REGISTRATION_USER_PASSWORDS_EMPTY_ALLOWED=Lassen Sie beide Passwortfelder leer, wird Ihnen ein Passwort per Zufall generiert.
 #@TODO Please fix German umlauts!
 GUEST_REGISTRATION_USER_PASSWORDS_EMPTY_NOT_ALLOWED=Sie muessen selbst ein Passwort vergeben. Bitte geben Sie dies zur Bestaetigung zweimal ein.
-LOGIN_FINANCIAL_ENTER_RECEIPT_ISSUED_TITLE=Geben oder suchen Sie hier das genaue Datum aus, wann die Rechnung/der Kassenbon erstellt wurde. Dadurch kann ein genauer Zeitverlauf generiert werden.
 GUEST_REGISTRATION_PASSWORD_NOT_ENTERED=Bitte geben Sie ein Passwort ein. Dies muss den Sicherheitsregeln entsprechen.
 #@TODO Please fix German umlauts!
 GUEST_REGISTRATION_PASSWORD_REPEAT_NOT_ENTERED=Bitte wiederholen Sie das eingegebene Passwort. Dies wird zur Bestaetigung benoetigt.
@@ -814,7 +789,7 @@ TABLE_SUMMARY_ADMIN_LIST_BASIC_COMPANY_DATA=Tabelle listet Stammdaten auf.
 ADMIN_BASIC_COMPANY_DATA_ID=Id-Nummer:
 #@TODO Please fix German umlauts!
 ADMIN_LINK_SHOW_BASIC_COMAPNY_DATA_TITLE=Stammdaten des Unternehmens anzeigen.
-ADMIN_ASSIGNED_USER_ID=Zugew. Benutzer:
+ADMIN_ASSIGNED_USER=Zugew. Benutzer:
 ADMIN_LINK_SHOW_BASIC_COMPANY_DATA_OWNER_USER_TITLE=Benutzerprofil des zugewiesenen Benutzers anzeigen.
 ADMIN_LINK_ASSIGN=Zuweisen
 #@TODO Please fix German umlauts!
@@ -962,8 +937,15 @@ ADMIN_CONTACT_MOBILE_LIST_EMPTY=Es befinden sich keine Mobilfunknummern von Kont
 #@TODO Please fix German umlauts!
 ADMIN_MOBILE_PROVIDER_COUNTRY_REQUIRED=Bitte waehlen Sie ein Land fuer den Mobilfunkanbieter aus.
 #@TODO Please fix German umlauts!
-COUNTRIES=Laender
+LABEL_COUNTRIES=Laender
 #@TODO Please fix German umlauts!
 FILTER_BY_MULTIPLE_COUNTRY_TITLE=Liste durch Auswahl von ein oder mehr Laendern durchsuchen.
 ADMIN_LIST_MOBILE_PROVIDERS_HEADER=Liste aller Mobilfunkanbieter
 SELECT_SHOWN_COLUMNS=Angezeigte Spalten
+ADMIN_LIST_BRANCH_OFFICES_HEADER=Alle Filialen auflisten
+LABEL_USERS=Benutzer
+FILTER_BY_MULTIPLE_USER_TITLE=Liste durch Auswahl von ein oder mehr Benutzern durchsuchen.
+LABEL_COMPANIES=Firmen
+FILTER_BY_MULTIPLE_COMPANIES_TITLE=Liste durch Auswahl von ein oder mehr Unternehmen durchsuchen.
+LABEL_COMPANY_EMPLOYEES=Mitarbeiter
+FILTER_BY_MULTIPLE_COMPANY_EMPLOYEES_TITLE=Liste durch Auswahl von ein oder mehr Mitarbeiter durchsuchen.
index c73002f74365c9de801affb8633f5f45e7bb9ca0..d6dc029fd47939fd24584391dd61f6fd63b44e7e 100644 (file)
@@ -476,8 +476,7 @@ BUTTON_ADMIN_EXPORT_CONTACTS_XLS=Export all data as Excel file
 LINK_ADMIN_EXPORT_CONTACT=Export data
 LINK_ADMIN_EXPORT_CONTACT_TITLE=Export contact data
 PERSONAL_DATA_BIRTHDAY=Birthday (mm-dd-yyyy):
-BIRTHDAY_PATTERN=MM-dd-yyyy
-INVALID_BIRTHDAY=Wrong birthday entered.
+DATE_PATTERN=MM-dd-yyyy
 ADMIN_EXPORT_CONTACT_ID=Contact data id
 ADMIN_EXPORT_CONTACT_PERSONAL_TITLE=Gender
 ADMIN_EXPORT_CONTACT_ACADEMIC_TITLE=Title
@@ -758,25 +757,10 @@ BUTTON_USER_CHANGE_PASSWORD=Change password
 ADMIN_LINK_SHOW_CONTACT_DATA=Show contact data
 ERROR_USER_PASSWORD_TO_WEAK=Your entered password is to weak. Please enter letters, numbers and special characters to create a secure password.
 GUEST_REGISTRATION_USER_NAME_NOT_ENTERED=Please enter a user name. The entered name is being checked for availability.
-PAGE_TITLE_LOGIN_FINANCIAL_OVERVIEW=Financials Overview
-SUB_TITLE_LOGIN_FINANCIAL_OVERVIEW=Overview of your financials:
-PAGE_TITLE_LOGIN_FINANCIAL_ADD_RECEIPT=Add receipt
-SUB_TITLE_LOGIN_FINANCIAL_ADD_RECEIPT=Add new receipt:
-PAGE_TITLE_LOGIN_FINANCIAL_ADD_INCOME=Add new income type
-SUB_TITLE_LOGIN_FINANCIAL_ADD_INCOME=Add new income type:
-LOGIN_FINANCIAL_ADD_INCOME_FORM_TITLE=Enter all data of one income type:
-LOGIN_FINANCIAL_INCOME_INTERVAL=Income interval:
-FIELD_FINANCIAL_INCOME_REQUIRED=Field "Income interval" must be selected.
-BUTTON_LOGIN_FINCIAL_ADD_INCOME=Add income type
-LOGIN_FINANCIAL_INCOME_SINGLE_VALUE=Income value:
-FIELD_FINANCIAL_INCOME_SINGLE_VALUE_REQUIRED=Field "Income value" must be filled out.
-LOGIN_FINANCIAL_INCOME_TITLE=Title of income type:
-FIELD_FINANCIAL_INCOME_TITLE_REQUIRED=Field "Title" must be filled out.
 ERROR_USER_PASSWORD_EMPTY=You have to enter a password.
 ERROR_USER_PASSWORD_REPEAT_EMPTY=You have to repeat the entered password.
 GUEST_REGISTRATION_USER_PASSWORDS_EMPTY_ALLOWED=If you left both password fields empty, a random password will generated for you.
 GUEST_REGISTRATION_USER_PASSWORDS_EMPTY_NOT_ALLOWED=You have to enter an own password. Please enter it twice for confirmation.
-LOGIN_FINANCIAL_ENTER_RECEIPT_ISSUED_TITLE=Please enter or select here the exact date when the receipt has been issue. Then an exact time-line can be generated.
 GUEST_REGISTRATION_PASSWORD_NOT_ENTERED=Please enter a password. This must match with security rules.
 GUEST_REGISTRATION_PASSWORD_REPEAT_NOT_ENTERED=Please repeat the entered password. This done to confirm the password.
 PAGE_TITLE_ADMIN_AREA=Administration
@@ -789,7 +773,7 @@ ADMIN_BASIC_COMPANY_DATA_LIST_EMPTY=There are currently no basic company data in
 TABLE_SUMMARY_ADMIN_LIST_BASIC_COMPANY_DATA=This table lists basic company data.
 ADMIN_BASIC_COMPANY_DATA_ID=Id Number:
 ADMIN_LINK_SHOW_BASIC_COMAPNY_DATA_TITLE=Show details of this business contact.
-ADMIN_ASSIGNED_USER_ID=Assigned user:
+ADMIN_ASSIGNED_USER=Assigned user:
 ADMIN_LINK_SHOW_BASIC_COMPANY_DATA_OWNER_USER_TITLE=Shows assigned user profile.
 ADMIN_LINK_ASSIGN=Assign
 ADMIN_LINK_ASSIGN_BASIC_COMPANY_DATA_OWNER_USER_TITLE=Assigns this business contact to a user account.
@@ -900,7 +884,15 @@ ADMIN_LANDLINE_NUMBER_LIST_EMPTY=There are no land-line numbers in database. Or
 ADMIN_MOBILE_NUMBER_LIST_EMPTY=There are no mobile numbers in database. Or your search criteria doesn't match anything.
 ADMIN_CONTACT_MOBILE_LIST_EMPTY=There are no mobile numbers of contacts in database. Or your search criteria doesn't match anything.
 ADMIN_MOBILE_PROVIDER_COUNTRY_REQUIRED=Please select a country for mobile provider.
-COUNTRIES=Countries
+LABEL_COUNTRIES=Countries
+#Filter list by selecting one or more users.
 FILTER_BY_MULTIPLE_COUNTRY_TITLE=Filter list by selecting one or more countries.
 ADMIN_LIST_MOBILE_PROVIDERS_HEADER=List of all mobile providers
 SELECT_SHOWN_COLUMNS=Shown columns
+ADMIN_LIST_BRANCH_OFFICES_HEADER=List all branch offices
+LABEL_USERS=Users
+FILTER_BY_MULTIPLE_USER_TITLE=Filter list by selecting one or more users.
+LABEL_COMPANIES=Companies
+FILTER_BY_MULTIPLE_COMPANIES_TITLE=Filter list by selecting one or more companies.
+LABEL_COMPANY_EMPLOYEES=Employees
+FILTER_BY_MULTIPLE_COMPANY_EMPLOYEES_TITLE=Filter list by selecting one or more employees.
index 91ff24dee8d954af6905cd010c00e3d17956813a..91554a84bba05029356a249b7aee605c6a36bc2c 100644 (file)
                                </div>
 
                                <div class="table-right-medium">
-                                       <widgets:outputCountrySelector id="country" value="#{adminContactController.contactCountry}"
+                                       <widgets:outputCountrySelector id="country" value="#{adminContactController.contactCountry}" />
                                </div>
                        </h:panelGroup>
 
                                </div>
 
                                <div class="table-right-medium">
-                                       <p:inputText styleClass="input" id="contactBirthday" value="#{adminContactController.birthday}" size="10" converterMessage="#{msg.INVALID_BIRTHDAY}">
-                                               <f:convertDateTime pattern="#{msg.BIRTHDAY_PATTERN}" />
-                                       </p:inputText>
+                                       <p:calendar id="contactBirthday" value="#{contactController.birthday}" />
                                </div>
                        </h:panelGroup>
 
index 25ddc379e823752a202bced617e29b28f746ba3f..6589d2cb50ad70fc7b0d3228250aab579fd04c45 100644 (file)
                                </div>
 
                                <div class="table-right-medium">
-                                       <p:selectOneMenu id="mobileProvider" value="#{adminPhoneController.mobileProvider}" required="true" requiredMessage="#{msg.ADMIN_MOBILE_PROVIDER_REQUIRED}">
+                                       <p:selectOneMenu
+                                               id="mobileProvider"
+                                               value="#{adminPhoneController.mobileProvider}"
+                                               filter="true"
+                                               filterMatchMode="contains"
+                                               required="true"
+                                               requiredMessage="#{msg.ADMIN_MOBILE_PROVIDER_REQUIRED}"
+                                               >
                                                <f:converter converterId="MobileProviderConverter" />
                                                <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
                                                <f:selectItems value="#{mobileProviderController.allMobileProviders()}" var="mobileProvider" itemValue="#{mobileProvider}" itemLabel="#{mobileProvider.providerCountry.countryExternalDialPrefix}#{mobileProvider.providerDialPrefix} (#{mobileProvider.providerName})" />
index aa2227aa4d20513d662bdb279103f8e7bf49d3b8..720312274eb738b5d8a451d21e98f02c41b4950e 100644 (file)
@@ -6,7 +6,16 @@
        xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
        xmlns:p="http://primefaces.org/ui">
 
-       <p:selectOneMenu id="#{id}" value="#{value}" styleClass="#{empty styleClass ? 'select' : styleClass}" rendered="#{empty rendered or rendered}" required="#{empty required ? false : required}" requiredMessage="#{requiredMessage}">
+       <p:selectOneMenu
+               id="#{id}"
+               value="#{value}"
+               styleClass="#{empty styleClass ? 'select' : styleClass}"
+               filter="true"
+               filterMatchMode="contains"
+               rendered="#{empty rendered or rendered}"
+               required="#{empty required ? false : required}"
+               requiredMessage="#{requiredMessage}"
+               >
                <f:converter converterId="CountryConverter" />
                <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" rendered="#{empty allowNull or allowNull}" />
                <f:selectItems value="#{countryController.allCountries()}" var="country" itemValue="#{country}" itemLabel="#{country.countryCode} (#{msg[country.countryI18nKey]})" />
index a9445346cb4ed0c83cdaafd74287a838dd85e9fb..f289866d04210790e8558de928528d00d221ce5e 100644 (file)
                        </div>
 
                        <div class="table-right-medium">
-                               <p:selectOneMenu id="mobileProvider" value="#{targetController.mobileProvider}">
+                               <p:selectOneMenu
+                                       id="mobileProvider"
+                                       value="#{targetController.mobileProvider}"
+                                       filter="true"
+                                       filterMatchMode="contains"
+                                       >
                                        <f:converter converterId="MobileProviderConverter" />
                                        <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
                                        <f:selectItems value="#{mobileProviderController.allMobileProviders()}" var="mobileProvider" itemValue="#{mobileProvider}" itemLabel="#{mobileProvider.providerCountry.countryExternalDialPrefix}#{mobileProvider.providerDialPrefix} (#{mobileProvider.providerName})" />
index 9bb9ea5bdf12143864a8f409ffaa4fe8031c39ee..1e0bbf59568f789c1bbb9191747b5a2266c0254b 100644 (file)
                        </div>
 
                        <div class="table-right-medium">
-                               <p:selectOneMenu id="userPersonalTitle" value="#{targetController.personalTitle}" required="#{(empty allowEmptyRequiredData or not allowEmptyRequiredData) and featureController.isFeatureEnabled(targetController.controllerType.concat('_personal_title'))}" requiredMessage="#{msg.FIELD_PERSONAL_TITLE_REQUIRED}">
+                               <p:selectOneMenu
+                                       id="userPersonalTitle"
+                                       value="#{targetController.personalTitle}"
+                                       filter="true"
+                                       filterMatchMode="contains"
+                                       required="#{(empty allowEmptyRequiredData or not allowEmptyRequiredData) and featureController.isFeatureEnabled(targetController.controllerType.concat('_personal_title'))}"
+                                       requiredMessage="#{msg.FIELD_PERSONAL_TITLE_REQUIRED}">
                                        <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" noSelectionOption="true" />
                                        <f:selectItems value="#{genderController.selectableGenders}" var="personalTitle" itemValue="#{personalTitle}" itemLabel="#{msg[personalTitle.messageKey]}" />
                                </p:selectOneMenu>
index 56a3987b2a352872da8cc2e4d08a1616012e0fa1..d4872e66e37796a6a74bcc8dfdf4f30cb107f334 100644 (file)
                        </div>
 
                        <div class="table-right-medium">
-                               <p:selectOneMenu id="profileMode" value="#{targetController.userProfileMode}">
+                               <p:selectOneMenu
+                                       id="profileMode"
+                                       value="#{targetController.userProfileMode}"
+                                       filter="true"
+                                       filterMatchMode="contains"
+                                       >
                                        <f:selectItems value="#{profileModeController.allProfileModes()}" var="mode" itemValue="#{mode}" itemLabel="#{msg[mode.messageKey]}" />
                                </p:selectOneMenu>
                        </div>
index 42911da2363340895f6cb1119e95631b75994dca..2c486d5fc1398201b3273c3c708ea99428d82885 100644 (file)
                                </div>
 
                                <div class="table-right-medium">
-                                       <p:selectOneMenu id="companyUserOwner" value="#{adminCompanyDataController.companyUserOwner}">
+                                       <p:selectOneMenu
+                                               id="companyUserOwner"
+                                               value="#{adminCompanyDataController.companyUserOwner}"
+                                               filter="true"
+                                               filterMatchMode="contains"
+                                               >
                                                <f:converter converterId="UserConverter" />
                                                <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
                                                <f:selectItems value="#{userController.allUsers()}" var="companyUserOwner" itemValue="#{companyUserOwner}" itemLabel="#{companyUserOwner.userContact.contactFirstName} #{companyUserOwner.userContact.contactFamilyName} (#{companyUserOwner.userName})" />
                                </div>
 
                                <div class="table-right-medium">
-                                       <p:selectOneMenu id="companyContactEmployee" value="#{adminCompanyDataController.companyContactEmployee}">
+                                       <p:selectOneMenu
+                                               id="companyContactEmployee"
+                                               value="#{adminCompanyDataController.companyContactEmployee}"
+                                               filter="true"
+                                               filterMatchMode="contains"
+                                               >
                                                <f:converter converterId="CompanyEmployeeConverter" />
                                                <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
                                                <f:selectItems value="#{companyEmployeeController.allCompanyEmployees()}" var="companyHeadQuarters" itemValue="#{companyEmployee}" itemLabel="#{companyEmployee.foo}" />
                                </div>
 
                                <div class="table-right-medium">
-                                       <p:selectOneMenu id="companyFounder" value="#{adminCompanyDataController.companyFounder}">
+                                       <p:selectOneMenu
+                                               id="companyFounder"
+                                               value="#{adminCompanyDataController.companyFounder}"
+                                               filter="true"
+                                               filterMatchMode="contains"
+                                               >
                                                <f:converter converterId="CompanyEmployeeConverter" />
                                                <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
                                                <f:selectItems value="#{companyEmployeeController.allCompanyEmployees()}" var="companyHeadQuarters" itemValue="#{companyEmployee}" itemLabel="#{companyEmployee.foo}" />
                                </div>
 
                                <div class="table-right-medium">
-                                       <p:selectOneMenu id="companyHeadQuarters" value="#{adminCompanyDataController.companyHeadQuarters}">
+                                       <p:selectOneMenu
+                                               id="companyHeadQuarters"
+                                               value="#{adminCompanyDataController.companyHeadQuarters}"
+                                               filter="true"
+                                               filterMatchMode="contains"
+                                               >
                                                <f:converter converterId="CompanyHeadquartersConverter" />
                                                <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
                                                <f:selectItems value="#{companyHeadquartersController.allCompanyHeadquarters()}" var="companyHeadQuarters" itemValue="#{companyHeadQuarters}" itemLabel="#{companyHeadQuarters.foo}" />
                                </div>
 
                                <div class="table-right-medium">
-                                       <p:inputTextarea styleClass="input" id="companyComments" rows="7" cols="25" value="#{adminCompanyDataController.companyComments}" />
+                                       <p:inputTextarea
+                                               styleClass="input"
+                                               id="companyComments"
+                                               rows="7"
+                                               cols="25"
+                                               value="#{adminCompanyDataController.companyComments}"
+                                               />
                                </div>
                        </h:panelGroup>
                </fieldset>
index f0d990dde295c73f39cd63c81866c7f95bab2357..48f7352ec04ecdb347cb4b8de49c6033ddd9ac4b 100644 (file)
                                </div>
 
                                <div class="table-right-medium">
-                                       <p:selectOneMenu id="branchCompany" value="#{adminBranchOfficeController.branchCompany}" required="true" requiredMessage="#{msg.ADMIN_BRANCH_OFFICE_COMPANY_REQUIRED}">
+                                       <p:selectOneMenu
+                                               id="branchCompany"
+                                               value="#{adminBranchOfficeController.branchCompany}"
+                                               filter="true"
+                                               filterMatchMode="contains"
+                                               required="true"
+                                               requiredMessage="#{msg.ADMIN_BRANCH_OFFICE_COMPANY_REQUIRED}"
+                                               >
                                                <f:converter converterId="BasicCompanyDataConverter" />
                                                <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" noSelectionOption="true" itemDisabled="true" />
                                                <f:selectItems value="#{basicDataController.allCompanyBasicData()}" var="basicData" itemValue="#{basicData}" itemLabel="#{basicData.companyName}" />
                                </div>
 
                                <div class="table-right-medium">
-                                       <p:selectOneMenu id="branchContactEmployee" value="#{adminBranchOfficeController.branchContactEmployee}">
+                                       <p:selectOneMenu
+                                               id="branchContactEmployee"
+                                               value="#{adminBranchOfficeController.branchContactEmployee}"
+                                               filter="true"
+                                               filterMatchMode="contains"
+                                               >
                                                <f:converter converterId="CompanyEmployeeConverter" />
                                                <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
                                                <f:selectItems value="#{companyEmployeeController.allCompanyEmployees()}" var="companyHeadQuarters" itemValue="#{companyEmployee}" itemLabel="#{companyEmployee.foo}" />
                                </div>
 
                                <div class="table-right-medium">
-                                       <p:selectOneMenu id="branchUserOwner" value="#{adminBranchOfficeController.branchUserOwner}">
+                                       <p:selectOneMenu
+                                               id="branchUserOwner"
+                                               value="#{adminBranchOfficeController.branchUserOwner}"
+                                               filter="true"
+                                               filterMatchMode="contains"
+                                               >
                                                <f:converter converterId="UserConverter" />
                                                <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
                                                <f:selectItems value="#{userController.allUsers()}" var="branchUserOwner" itemValue="#{branchUserOwner}" itemLabel="#{branchUserOwner.userContact.contactFirstName} #{branchUserOwner.userContact.contactFamilyName} (#{branchUserOwner.userName})" />
index 83ab95de02fda9842907259aab2685433b19b73a..c5342ccadb264016c3c7b85ef9aa4225975a370b 100644 (file)
@@ -22,6 +22,7 @@
                        </f:facet>
 
                        <f:loadBundle var="msg" basename="org.mxchange.localization.bundle" />
+                       <f:loadBundle var="project" basename="org.mxchange.localization.project" />
 
                        <h:outputStylesheet name="/css/default.css" />
                        <h:outputStylesheet name="/css/layout.css" />
index 0619039dff25897dc7ff36f9a3f04e6464be20e8..b945d350791d0e38c0a4e17960c00eb85574cf25 100644 (file)
                                </div>
 
                                <div class="table-right-medium">
-                                       <p:inputText styleClass="input" id="birthday" value="#{contactController.birthday}" required="true" size="10" requiredMessage="#{msg.GUEST_CONTACT_DATA_BIRTHDAY_REQUIRED}" converterMessage="#{msg.INVALID_BIRTHDAY}">
-                                               <f:convertDateTime pattern="#{msg.BIRTHDAY_PATTERN}" />
-                                       </p:inputText>
+                                       <p:calendar id="birthday" value="#{contactController.birthday}" required="true" requiredMessage="#{msg.GUEST_CONTACT_DATA_BIRTHDAY_REQUIRED}" />
                                </div>
                        </h:panelGroup>
 
index 4c703de993a2a98c52d96f6bbedd287211dbc987..82ea659d41ff698b11d8af64594e80122fa432a3 100644 (file)
@@ -30,7 +30,7 @@
 
                        <p:column>
                                <f:facet name="header">
-                                       <h:outputText value="#{msg.ADMIN_ASSIGNED_USER_ID}" />
+                                       <h:outputText value="#{msg.ADMIN_ASSIGNED_USER}" />
                                </f:facet>
 
                                <p:link outcome="admin_show_user" title="#{msg.ADMIN_LINK_SHOW_BASIC_COMPANY_DATA_OWNER_USER_TITLE}" value="#{basicData.companyUserOwner.userId}" rendered="#{not empty basicData.companyUserOwner}">
index d28485350b1acd20ff6651823e7fdd54cb64558b..83d55047e33fad9dd986e18defed7c65cd235c49 100644 (file)
        </ui:define>
 
        <ui:define name="content">
-               <p:dataTable id="table_list_branch_offices" var="branchOffice" value="#{branchOfficeController.allBranchOffices()}" tableStyleClass="table table-full" paginator="true" rows="10" summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_BRANCH_OFFICES}" emptyMessage="#{msg.ADMIN_BRANCH_OFFICES_LIST_EMPTY}">
-                       <p:column>
-                               <f:facet name="header">
-                                       <h:outputText value="#{msg.ADMIN_ID_NUMBER}" />
-                               </f:facet>
-
-                               <p:link outcome="admin_show_branch_office" title="#{msg.ADMIN_LINK_SHOW_BRANCH_OFFICE_TITLE}" value="#{branchOffice.branchId}">
-                                       <f:param name="branchId" value="#{branchOffice.branchId}" />
-                               </p:link>
-                       </p:column>
-
-                       <p:column>
-                               <f:facet name="header">
-                                       <h:outputText value="#{msg.ADMIN_ASSIGNED_USER_ID}" />
-                               </f:facet>
-
-                               <p:link outcome="admin_show_user" title="#{msg.ADMIN_LINK_SHOW_BRANCH_OFFICES_OWNER_USER_TITLE}" value="#{branchOffice.branchUserOwner.userId}" rendered="#{not empty branchOffice.branchUserOwner}">
-                                       <f:param name="userId" value="#{branchOffice.branchUserOwner.userId}" />
-                               </p:link>
-
-                               <p:link outcome="admin_assign_branch_office_owner" title="#{msg.ADMIN_LINK_ASSIGN_BRANCH_OFFICES_OWNER_USER_TITLE}" value="#{msg.ADMIN_LINK_ASSIGN}" rendered="#{empty branchOffice.branchUserOwner}">
-                                       <f:param name="branchId" value="#{branchOffice.branchId}" />
-                               </p:link>
-                       </p:column>
-
-                       <p:column>
-                               <f:facet name="header">
-                                       <h:outputText value="#{msg.ADMIN_BASIC_COMPANY_DATA_COMPANY_NAME}" />
-                               </f:facet>
-
-                               <h:outputLink value="#{branchOffice.branchCompany.companyWebsiteUrl}" target="_blank" title="#{msg.LINK_COMPANY_WEBSITE_URL_TITLE}" rel="external" rendered="#{not empty branchOffice.branchCompany.companyWebsiteUrl}">
-                                       <h:outputText value="#{branchOffice.branchCompany.companyName}" />
-                               </h:outputLink>
-
-                               <h:outputText value="#{branchOffice.branchCompany.companyName}" title="#{msg.NO_WEBSITE_URL_ENTERED}" rendered="#{empty branchOffice.branchCompany.companyWebsiteUrl}" />
-                       </p:column>
-
-                       <p:column>
-                               <f:facet name="header">
-                                       <h:outputText value="#{msg.DATA_EMAIL_ADDRESS}" />
-                               </f:facet>
+               <h:form id="form-list-branch-offices">
+                       <p:dataTable
+                               id="table-list-branch-offices"
+                               var="branchOffice"
+                               value="#{branchOfficeController.allBranchOffices()}"
+                               tableStyleClass="table table-full"
+                               paginator="true"
+                               paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
+                               widgetVar="branchOfficeTable"
+                               filteredValue="#{branchOfficeController.filteredBranchOffices}"
+                               rows="10"
+                               reflow="true"
+                               resizableColumns="true"
+                               rowsPerPageTemplate="5,10,20,50,100"
+                               sortMode="multiple"
+                               summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_BRANCH_OFFICES}"
+                               emptyMessage="#{msg.ADMIN_BRANCH_OFFICES_LIST_EMPTY}"
+                               >
 
-                               <h:outputLink value="mailto:#{branchOffice.branchEmailAddress}" rendered="#{not empty branchOffice.branchEmailAddress}" />
-
-                               <h:outputText value="#{msg.NO_EMAIL_ADDRESS_ENTERED}" rendered="#{empty branchOffice.branchEmailAddress}" />
-                       </p:column>
-
-                       <p:column>
-                               <f:facet name="header">
-                                       <h:outputText value="#{msg.DATA_ADDRESS}" />
-                               </f:facet>
-
-                               <h:outputText value="#{branchOffice.branchZipCode} #{branchOffice.branchCity}" title="#{branchOffice.branchStreet} #{branchOffice.branchHouseNumber} (#{msg.DATA_STORE} #{branchOffice.branchStore}, #{msg.DATA_SUITE_NUMBER} #{branchOffice.branchSuiteNumber})" />
-                       </p:column>
-
-                       <p:column>
-                               <f:facet name="header">
-                                       <h:outputText value="#{msg.ADMIN_CONTACT_PERSON}" />
-                               </f:facet>
-
-                               <p:link outcome="admin_show_business_employee" title="#{msg.ADMIN_LINK_SHOW_BRANCH_OFFICES_CONTACT_PERSON_TITLE}" value="#{branchOffice.branchContactEmployee.employeeId}" rendered="#{not empty branchOffice.branchContactEmployee}">
-                                       <f:param name="employeeId" value="#{branchOffice.branchContactEmployee.employeeId}" />
-                               </p:link>
-
-                               <p:link outcome="admin_assign_branch_office_employee" title="#{msg.ADMIN_LINK_ASSIGN_BRANCH_OFFICES_CONTACT_PERSON_TITLE}" value="#{msg.ADMIN_LINK_ASSIGN}" rendered="#{empty branchOffice.branchContactEmployee}">
-                                       <f:param name="branchId" value="#{branchOffice.branchId}" />
-                               </p:link>
-                       </p:column>
-
-                       <p:column>
-                               <f:facet name="header">
-                                       <h:outputText value="#{msg.ADMIN_LIST_ENTRY_CREATED}" />
-                               </f:facet>
-
-                               <h:outputText id="branchCreated" value="#{branchOffice.branchCreated.time}">
-                                       <f:convertDateTime for="branchCreated" type="both" timeStyle="short" dateStyle="short" />
-                               </h:outputText>
-                       </p:column>
-
-                       <p:column>
                                <f:facet name="header">
-                                       <h:outputText value="#{msg.ADMIN_ACTION_LINKS}" />
+                                       <h:outputText value="#{msg.ADMIN_LIST_BRANCH_OFFICES_HEADER}" />
+                                       <p:commandButton id="toggler" type="button" value="#{msg.SELECT_SHOWN_COLUMNS}" styleClass="column-selector" />
+                                       <p:columnToggler datasource="table-list-branch-offices" trigger="toggler" />
                                </f:facet>
 
-                               <links:outputBranchOfficeAdminMiniLinks branchOffice="#{branchOffice}" />
-                       </p:column>
-               </p:dataTable>
+                               <p:column headerText="#{msg.ADMIN_ID_NUMBER}" sortBy="#{branchOffice.branchId}" filterBy="#{branchOffice.branchId}">
+                                       <p:link outcome="admin_show_branch_office" title="#{msg.ADMIN_LINK_SHOW_BRANCH_OFFICE_TITLE}" value="#{branchOffice.branchId}">
+                                               <f:param name="branchId" value="#{branchOffice.branchId}" />
+                                       </p:link>
+                               </p:column>
+
+                               <p:column headerText="#{msg.ADMIN_ASSIGNED_USER}" sortBy="#{branchOffice.branchUserOwner.userName}" filterBy="#{branchOffice.branchUserOwner}" filterMatchMode="in">
+                                       <f:facet name="filter">
+                                               <p:selectCheckboxMenu filter="true" filterMatchMode="contains" label="#{msg.LABEL_USERS}" onchange="PF('branchOfficeTable').filter()" updateLabel="true" title="#{msg.FILTER_BY_MULTIPLE_USER_TITLE}">
+                                                       <f:converter converterId="UserConverter" />
+                                                       <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
+                                                       <f:selectItems value="#{userController.allUsers()}" var="user" itemValue="#{user}" itemLabel="#{user.userName}" />
+                                               </p:selectCheckboxMenu>
+                                       </f:facet>
+
+                                       <p:link outcome="admin_show_user" title="#{msg.ADMIN_LINK_SHOW_BRANCH_OFFICES_OWNER_USER_TITLE}" value="#{branchOffice.branchUserOwner.userId}" rendered="#{not empty branchOffice.branchUserOwner}">
+                                               <f:param name="userId" value="#{branchOffice.branchUserOwner.userId}" />
+                                       </p:link>
+
+                                       <p:link outcome="admin_assign_branch_office_owner" title="#{msg.ADMIN_LINK_ASSIGN_BRANCH_OFFICES_OWNER_USER_TITLE}" value="#{msg.ADMIN_LINK_ASSIGN}" rendered="#{empty branchOffice.branchUserOwner}">
+                                               <f:param name="branchId" value="#{branchOffice.branchId}" />
+                                       </p:link>
+                               </p:column>
+
+                               <p:column headerText="#{msg.ADMIN_BASIC_COMPANY_DATA_COMPANY_NAME}" sortBy="#{branchOffice.branchCompany.companyName}" filterBy="#{branchOffice.branchCompany}" filterMatchMode="in">
+                                       <f:facet name="filter">
+                                               <p:selectCheckboxMenu filter="true" filterMatchMode="contains" label="#{msg.LABEL_COMPANIES}" onchange="PF('branchOfficeTable').filter()" updateLabel="true" title="#{msg.FILTER_BY_MULTIPLE_COMPANIES_TITLE}">
+                                                       <f:converter converterId="BasicCompanyDataConverter" />
+                                                       <f:selectItems value="#{basicDataController.allCompanyBasicData()}" var="basicData" itemValue="#{basicData}" itemLabel="#{basicData.companyName}" />
+                                               </p:selectCheckboxMenu>
+                                       </f:facet>
+
+                                       <h:outputLink value="#{branchOffice.branchCompany.companyWebsiteUrl}" target="_blank" title="#{msg.LINK_COMPANY_WEBSITE_URL_TITLE}" rel="external" rendered="#{not empty branchOffice.branchCompany.companyWebsiteUrl}">
+                                               <h:outputText value="#{branchOffice.branchCompany.companyName}" />
+                                       </h:outputLink>
+
+                                       <h:outputText value="#{branchOffice.branchCompany.companyName}" title="#{msg.NO_WEBSITE_URL_ENTERED}" rendered="#{empty branchOffice.branchCompany.companyWebsiteUrl}" />
+                               </p:column>
+
+                               <p:column headerText="#{msg.DATA_EMAIL_ADDRESS}" sortBy="#{branchOffice.branchEmailAddress}" filterBy="#{branchOffice.branchEmailAddress}" filterMatchMode="contains">
+                                       <h:outputLink value="mailto:#{branchOffice.branchEmailAddress}" rendered="#{not empty branchOffice.branchEmailAddress}" />
+
+                                       <h:outputText value="#{msg.NO_EMAIL_ADDRESS_ENTERED}" rendered="#{empty branchOffice.branchEmailAddress}" />
+                               </p:column>
+
+                               <p:column headerText="#{msg.DATA_ADDRESS}" sortBy="#{branchOffice.branchCity}" filterBy="#{branchOffice.branchCity}" filterMatchMode="contains">
+                                       <h:outputText value="#{branchOffice.branchZipCode} #{branchOffice.branchCity}" title="#{branchOffice.branchStreet} #{branchOffice.branchHouseNumber} (#{msg.DATA_STORE} #{branchOffice.branchStore}, #{msg.DATA_SUITE_NUMBER} #{branchOffice.branchSuiteNumber})" />
+                               </p:column>
+
+                               <p:column headerText="#{msg.ADMIN_CONTACT_PERSON}" sortBy="#{branchOffice.branchContactEmployee.employeePersonalData.contactFamilyName}" filterBy="#{branchOffice.branchContactEmployee}" filterMatchMode="in">
+                                       <f:facet name="filter">
+                                               <p:selectCheckboxMenu filter="true" filterMatchMode="contains" label="#{msg.LABEL_COMPANY_EMPLOYEES}" onchange="PF('branchOfficeTable').filter()" updateLabel="true" title="#{msg.FILTER_BY_MULTIPLE_COMPANY_EMPLOYEES_TITLE}">
+                                                       <f:converter converterId="CompanyEmployeeConverter" />
+                                                       <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
+                                                       <f:selectItems value="#{companyEmployeeController.allCompanyEmployees()}" var="employee" itemValue="#{employee}" itemLabel="#{employee.employeePersonalData.contactFirstName} #{employee.employeePersonalData.contactFamilyName}" />
+                                               </p:selectCheckboxMenu>
+                                       </f:facet>
+
+                                       <p:link outcome="admin_show_business_employee" title="#{msg.ADMIN_LINK_SHOW_BRANCH_OFFICES_CONTACT_PERSON_TITLE}" value="#{branchOffice.branchContactEmployee.employeeId}" rendered="#{not empty branchOffice.branchContactEmployee}">
+                                               <f:param name="employeeId" value="#{branchOffice.branchContactEmployee.employeeId}" />
+                                       </p:link>
+
+                                       <p:link outcome="admin_assign_branch_office_employee" title="#{msg.ADMIN_LINK_ASSIGN_BRANCH_OFFICES_CONTACT_PERSON_TITLE}" value="#{msg.ADMIN_LINK_ASSIGN}" rendered="#{empty branchOffice.branchContactEmployee}">
+                                               <f:param name="branchId" value="#{branchOffice.branchId}" />
+                                       </p:link>
+                               </p:column>
+
+                               <p:column headerText="#{msg.ADMIN_LIST_ENTRY_CREATED}" sortBy="#{branchOffice.branchCreated}">
+                                       <h:outputText id="branchCreated" value="#{branchOffice.branchCreated.time}">
+                                               <f:convertDateTime for="branchCreated" type="both" timeStyle="short" dateStyle="short" />
+                                       </h:outputText>
+                               </p:column>
+
+                               <p:column headerText="#{msg.ADMIN_ACTION_LINKS}" sortable="false">
+                                       <links:outputBranchOfficeAdminMiniLinks branchOffice="#{branchOffice}" />
+                               </p:column>
+                       </p:dataTable>
+               </h:form>
 
                <h:form id="form_admin_add_branch_office">
                        <h:panelGroup styleClass="table table-medium" layout="block">
index a45e6972ea350fecc6efb854a69220e8136fbfb6..fc4a0a063cba2a296c84ad6bca59bf014e1fad86 100644 (file)
                                id="table-list-mobile-provider"
                                var="mobileProvider"
                                value="#{mobileProviderController.allMobileProviders()}"
-                               widgetVar="mobileProviderTable"
-                               filteredValue="#{mobileProviderController.filteredMobileProviders}"
                                tableStyleClass="table table-medium"
-                               rows="10"
                                paginator="true"
                                paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
+                               widgetVar="mobileProviderTable"
+                               filteredValue="#{mobileProviderController.filteredMobileProviders}"
+                               rows="10"
                                reflow="true"
                                resizableColumns="true"
                                rowsPerPageTemplate="5,10,20,50,100"
                                sortMode="multiple"
                                summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_MOBILE_PROVIDERS}"
-                               emptyMessage="#{msg.ADMIN_MOBILE_PROVIDER_LIST_EMPTY}">
+                               emptyMessage="#{msg.ADMIN_MOBILE_PROVIDER_LIST_EMPTY}"
+                               >
 
                                <f:facet name="header">
                                        <h:outputText value="#{msg.ADMIN_LIST_MOBILE_PROVIDERS_HEADER}" />
                                        <p:columnToggler datasource="table-list-mobile-provider" trigger="toggler" />
                                </f:facet>
 
-                               <p:column filterBy="#{mobileProvider.providerId}" sortBy="#{mobileProvider.providerId}" headerText="#{msg.ADMIN_ID_NUMBER}">
+                               <p:column headerText="#{msg.ADMIN_ID_NUMBER}" sortBy="#{mobileProvider.providerId}" filterBy="#{mobileProvider.providerId}">
                                        <p:link outcome="admin_show_mobile_provider" title="#{msg.ADMIN_LINK_SHOW_MOBILE_PROVIDER_TITLE}" value="#{mobileProvider.providerId}">
                                                <f:param name="providerId" value="#{mobileProvider.providerId}" />
                                        </p:link>
                                </p:column>
 
-                               <p:column filterBy="#{mobileProvider.providerName}" sortBy="#{mobileProvider.providerName}" headerText="#{msg.ADMIN_LIST_MOBILE_PROVIDER_NAME}" filterMatchMode="contains">
+                               <p:column headerText="#{msg.ADMIN_LIST_MOBILE_PROVIDER_NAME}" sortBy="#{mobileProvider.providerName}" filterBy="#{mobileProvider.providerName}" filterMatchMode="contains">
                                        <h:outputText value="#{mobileProvider.providerName}" />
                                </p:column>
 
-                               <p:column filterBy="#{mobileProvider.providerDialPrefix}" sortBy="#{mobileProvider.providerDialPrefix}" headerText="#{msg.ADMIN_LIST_MOBILE_PROVIDER_DIAL_PREFIX}" filterMatchMode="contains">
+                               <p:column headerText="#{msg.ADMIN_LIST_MOBILE_PROVIDER_DIAL_PREFIX}" sortBy="#{mobileProvider.providerDialPrefix}" filterBy="#{mobileProvider.providerDialPrefix}" filterMatchMode="contains">
                                        <h:outputText value="#{mobileProvider.providerDialPrefix}" />
                                </p:column>
 
-                               <p:column filterBy="#{mobileProvider.providerCountry}" sortBy="#{mobileProvider.providerCountry.countryPhoneCode}" headerText="#{msg.ADMIN_LIST_MOBILE_PROVIDER_COUNTRY}" filterMatchMode="in">
+                               <p:column headerText="#{msg.ADMIN_LIST_MOBILE_PROVIDER_COUNTRY}" sortBy="#{mobileProvider.providerCountry.countryPhoneCode}" filterBy="#{mobileProvider.providerCountry}" filterMatchMode="in">
                                        <f:facet name="filter">
-                                               <p:selectCheckboxMenu filter="true" label="#{msg.COUNTRIES}" onchange="PF('mobileProviderTable').filter()" updateLabel="true" title="#{msg.FILTER_BY_MULTIPLE_COUNTRY_TITLE}">
+                                               <p:selectCheckboxMenu filter="true" filterMatchMode="contains" label="#{msg.LABEL_COUNTRIES}" onchange="PF('mobileProviderTable').filter()" updateLabel="true" title="#{msg.FILTER_BY_MULTIPLE_COUNTRY_TITLE}">
                                                        <f:converter converterId="CountryConverter" />
                                                        <f:selectItems value="#{countryController.allCountries()}" var="country" itemValue="#{country}" itemLabel="#{msg[country.countryI18nKey]}" />
                                                </p:selectCheckboxMenu>
                                        <h:outputText value="#{msg[mobileProvider.providerCountry.countryI18nKey]}" />
                                </p:column>
 
-                               <p:column sortBy="#{mobileProvider.providerEntryCreated}" headerText="#{msg.ADMIN_LIST_ENTRY_CREATED}">
+                               <p:column headerText="#{msg.ADMIN_LIST_ENTRY_CREATED}" sortBy="#{mobileProvider.providerEntryCreated}">
                                        <h:outputText id="providerEntryCreated" value="#{mobileProvider.providerEntryCreated.time}">
                                                <f:convertDateTime for="providerEntryCreated" type="both" timeStyle="short" dateStyle="short" />
                                        </h:outputText>
                                </p:column>
 
-                               <p:column sortable="false" headerText="#{msg.ADMIN_ACTION_LINKS}">
+                               <p:column headerText="#{msg.ADMIN_ACTION_LINKS}" sortable="false">
                                        <links:outputMobileProviderAdminMiniLinks mobileProvider="#{mobileProvider}" />
                                </p:column>
                        </p:dataTable>
index 9ebed061c278c6ce2272613fb20a528c9f8dd998..a47b8986e5e3f1a585a2e61e69e665ccd9d5acf6 100644 (file)
                                                        </div>
 
                                                        <div class="table-right-medium">
-                                                               <p:selectOneMenu id="userContact" value="#{adminUserController.contact}" converter="ContactConverter">
+                                                               <p:selectOneMenu
+                                                                       id="userContact"
+                                                                       value="#{adminUserController.contact}"
+                                                                       filter="true"
+                                                                       filterMatchMode="contains"
+                                                                       >
                                                                        <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
                                                                        <f:selectItems value="#{contactController.selectableContacts()}" var="contact" itemValue="#{contact}" itemLabel="#{contact.contactId}: #{msg[contact.contactPersonalTitle.messageKey]} #{contact.contactFirstName} #{contact.contactFamilyName}" />
                                                                </p:selectOneMenu>
index f00b2026a00b0a9c5d13bcf782fd95330e9859b9..1dc91df5592f816c04515cace622caa18fdf1d46 100644 (file)
@@ -7,46 +7,67 @@
                                xmlns:p="http://primefaces.org/ui">
 
        <ui:define name="login_title">
-               <h:outputText value="#{msg.PAGE_TITLE_LOGIN_FINANCIAL_ADD_RECEIPT}" />
+               <h:outputText value="#{project.PAGE_TITLE_LOGIN_FINANCIAL_ADD_RECEIPT}" />
        </ui:define>
 
        <ui:define name="content_header">
-               <h:outputText value="#{msg.SUB_TITLE_LOGIN_FINANCIAL_ADD_RECEIPT}" />
+               <h:outputText value="#{project.CONTENT_TITLE_LOGIN_FINANCIAL_ADD_RECEIPT}" />
        </ui:define>
 
        <ui:define name="content">
                <h:form id="form_add_financials_receipt">
                        <h:panelGroup styleClass="table table-medium" layout="block">
                                <div class="table-header">
-                                       <h:outputText value="#{msg.LOGIN_FINANCIAL_ADD_RECEIPT_FORM_TITLE}" />
+                                       <h:outputText value="#{project.LOGIN_FINANCIAL_ADD_RECEIPT_FORM_TITLE}" />
                                </div>
 
                                <h:panelGroup styleClass="table-row" layout="block">
                                        <div class="table-left-medium">
-                                               <p:outputLabel for="receiptBranchOffice" value="#{msg.LOGIN_FINANCIAL_SELECT_RECEIPT_BRANCH_OFFICE}" />
+                                               <p:outputLabel for="receiptBranchOffice" value="#{project.LOGIN_FINANCIAL_SELECT_RECEIPT_BRANCH_OFFICE}" />
                                        </div>
 
                                        <div class="table-right-medium">
-                                               <p:selectOneMenu id="receiptBranchOffice" value="#{receiptController.receiptBranchOffice}" required="true" requiredMessage="#{msg.FIELD_FINANCIAL_RECEIPT_BRANCH_OFFICE_REQUIRED}" converter="BasicCompanyDataConverter">
+                                               <p:selectOneMenu
+                                                       id="receiptBranchOffice"
+                                                       value="#{receiptController.receiptBranchOffice}"
+                                                       filter="true"
+                                                       filterMatchMode="contains"
+                                                       required="true"
+                                                       requiredMessage="#{project.FIELD_FINANCIAL_RECEIPT_BRANCH_OFFICE_REQUIRED}"
+                                                       >
+                                                       <f:converter converterId="BasicCompanyDataConverter" />
                                                        <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" noSelectionOption="true" />
-                                                       <f:selectItems value="#{branchOfficeController.allBranchOffices()}" var="receiptBranchOffice" itemValue="#{receiptBranchOffice}" itemLabel="#{receiptBranchOffice.companyName}" />
+                                                       <f:selectItems value="#{branchOfficeController.allBranchOffices()}" var="branchOffice" itemValue="#{branchOffice}" itemLabel="#{branchOffice.branchCompany.companyName}" />
                                                </p:selectOneMenu>
                                        </div>
                                </h:panelGroup>
 
                                <h:panelGroup styleClass="table-row" layout="block">
                                        <div class="table-left-medium">
-                                               <p:outputLabel for="receiptIssued" value="#{msg.LOGIN_FINANCIAL_ENTER_RECEIPT_CREATED}" />
+                                               <p:outputLabel for="receiptIssued" value="#{project.ENTER_FINANCIAL_RECEIPT_ISSUE_DATE}" />
                                        </div>
 
                                        <div class="table-right-medium">
-                                               <p:calendar id="receiptIssued" title="#{msg.LOGIN_FINANCIAL_ENTER_RECEIPT_ISSUED_TITLE}" locale="#{localizationController.locale.displayCountry}" value="#{receiptController.receiptIssued}" />
+                                               <p:calendar
+                                                       id="receiptIssued"
+                                                       value="#{adminReceiptController.receiptIssued}"
+                                                       required="true"
+                                                       requiredMessage="#{msg.LOGIN_FINANCIAL_RECEIPT_ISSUE_DATE_REQUIRED}"
+                                                       pattern="#{msg.DATE_PATTERN}"
+                                                       navigator="true"
+                                                       maskAutoClear="true"
+                                                       title="#{msg.LOGIN_FINANCIAL_ENTER_RECEIPT_ISSUE_DATE_TITLE}"
+                                                       />
                                        </div>
                                </h:panelGroup>
 
+                               <h:panelGroup styleClass="error-container" layout="block">
+                                       <p:message for="receiptIssued" />
+                               </h:panelGroup>
+
                                <h:panelGroup styleClass="table-row" layout="block">
                                        <div class="table-left-medium">
-                                               <p:outputLabel for="receiptNumber" value="#{msg.LOGIN_FINANCIAL_RECEIPT_NUMBER}" />
+                                               <p:outputLabel for="receiptNumber" value="#{project.LOGIN_FINANCIAL_RECEIPT_NUMBER}" />
                                        </div>
 
                                        <div class="table-right-medium">
                                        </div>
                                </h:panelGroup>
 
+                               <h:panelGroup styleClass="error-container" layout="block">
+                                       <p:message for="receiptNumber" />
+                               </h:panelGroup>
+
                                <h:panelGroup styleClass="table-row" layout="block">
-                                       <h:outputText value="#{msg.LOGIN_FINANCIAL_COMPANY_NOT_FOUND} " />
-                                       <p:link title="#{msg.LINK_LOGIN_FINANCIAL_ADD_COMPANY_TITLE}" outcome="login_add_receipt_company" value="#{msg.LINK_LOGIN_FINANCIAL_ADD_COMPANY}" />
+                                       <h:outputText value="#{project.LOGIN_FINANCIAL_COMPANY_NOT_FOUND} " />
+                                       <p:link title="#{project.LINK_LOGIN_FINANCIAL_ADD_COMPANY_TITLE}" outcome="login_add_receipt_company" value="#{project.LINK_LOGIN_FINANCIAL_ADD_COMPANY}" />
                                </h:panelGroup>
 
                                <h:panelGroup styleClass="table-row" layout="block">
                                        <div class="table-left-medium">
-                                               <p:outputLabel for="paymentType" value="#{msg.LOGIN_FINANCIAL_INCOME_INTERVAL}" />
+                                               <p:outputLabel for="paymentType" value="#{project.LOGIN_FINANCIAL_INCOME_INTERVAL}" />
                                        </div>
 
                                        <div class="table-right-medium">
-                                               <p:selectOneMenu id="paymentType" value="#{receiptController.paymentType}" required="true" requiredMessage="#{msg.FIELD_FINANCIAL_INCOME_REQUIRED}">
+                                               <p:selectOneMenu
+                                                       id="paymentType"
+                                                       value="#{receiptController.paymentType}"
+                                                       required="true"
+                                                       requiredMessage="#{project.FIELD_FINANCIAL_RECEIPT_PAYMENT_TYPE_REQUIRED}"
+                                                       >
                                                        <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" noSelectionOption="true" />
                                                        <f:selectItems value="#{receiptController.allPaymentTypes()}" var="paymentType" itemValue="#{paymentType}" itemLabel="#{msg[paymentType]}" />
                                                </p:selectOneMenu>
                                <div class="table-footer">
                                        <p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
 
-                                       <p:commandButton styleClass="submit" id="submit_add_income" type="submit" action="#{receiptController.addReceipt()}" value="#{msg.BUTTON_LOGIN_FINCIAL_ADD_INCOME}" />
+                                       <p:commandButton styleClass="submit" id="submit_add_receipt" type="submit" action="#{receiptController.addReceipt()}" value="#{project.BUTTON_LOGIN_FINANCIAL_ADD_RECEIPT}" />
                                </div>
                        </h:panelGroup>
                </h:form>