From: Roland Häder Date: Sat, 9 Sep 2017 10:54:16 +0000 (+0200) Subject: Please cherry-pick: X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=db9eff390ce8ecd54f61f41d3b23936dac0ffb3c;p=pizzaservice-war.git Please cherry-pick: - renamed companyDataId -> basicDataId (already done in underlaying entity) - implemented addBranchOffice() which will call newly added private methods to create a BranchOffice instance and validate if the address is already found in an other bean's cache - for this, allBranchOffices() needs to be published in interface - implemented afterBranchOfficeAddedEvent() event observer which will add the newly added branch office to the backing bean's cache - now displaying link to company's website correctly or, if not provided, a replacement message - same with email link, maybe one day I move this out to a custom JSF tag? - added missing i18n strings - generalized duplicate i18n strings - added missing navigation cases Signed-off-by: Roland Häder --- diff --git a/src/java/org/mxchange/localization/bundle_de_DE.properties b/src/java/org/mxchange/localization/bundle_de_DE.properties index 8e0fe3d5..67b48249 100644 --- a/src/java/org/mxchange/localization/bundle_de_DE.properties +++ b/src/java/org/mxchange/localization/bundle_de_DE.properties @@ -282,7 +282,7 @@ ADMIN_ENTER_COUNTRY_EXTERNAL_DIAL_PREFIX=Vorwahl f\u00fcr Gespr\u00e4che ausserh ADMIN_ENTER_COUNTRY_PHONE_CODE=Vorwahl f\u00fcr das Land: ADMIN_ENTER_COUNTRY_PHONE_CODE_EXAMPLE=(Beispiel: 49 f\u00fcr Deutschland) BUTTON_ADMIN_ADD_COUNTRY=L\u00e4nderdaten hinzuf\u00fcgen -ADMIN_LIST_COUNTRY_DATA_COUNTRY_ID=Id-Nummer: +ADMIN_ID_NUMBER=Id-Nummer: ADMIN_LIST_COUNTRY_DATA_COUNTRY_CODE=L\u00e4ndercode: ADMIN_LIST_COUNTRY_DATA_COUNTRY_EXTERNAL_DIAL_PREFIX=Vorwahl ausserorts: ADMIN_LIST_COUNTRY_DATA_COUNTRY_NAME=Land: @@ -311,11 +311,10 @@ BUTTON_ADMIN_ADD_MOBILE_PROVIDER=Handyanbieter hinzuf\u00fcgen ADMIN_ADD_MOBILE_PROVIDER_NOTICES=Hinweise zum Hinzuf\u00fcgen von Handyanbietern: ADMIN_ADD_MOBILE_PROVIDER_PATTERN=Das Textmuster darf nur ein %s enthalten und dies muss die komplette Handynummer sein. Z.B. %s@smsmail.anbieter.example ADMIN_ENTER_MOBILE_PROVIDER_PATTERN_EXAMPLE=(Beispiel: %s@smsmail.anbieter.example) -ADMIN_LIST_MOBILE_PROVIDER_ID=Id-Nummer: ADMIN_LIST_MOBILE_PROVIDER_NAME=Name: ADMIN_LIST_MOBILE_PROVIDER_DIAL_PREFIX=Vorwahl: ADMIN_LIST_MOBILE_PROVIDER_COUNTRY=Land: -ADMIN_LIST_MOBILE_PROVIDER_ENTRY_CREATED=Erstellt: +ADMIN_LIST_ENTRY_CREATED=Erstellt: ADMIN_LINK_EDIT_DELETE_MOBILE_PROVIDER_TITLE=Editieren oder l\u00f6schen des Handyanbieters ADMIN_USER_DATA_ENTER_PASSWORD=Passwort eingeben: ADMIN_USER_DATA_ENTER_PASSWORD_REPEAT=Passwort wiederholen: @@ -348,8 +347,6 @@ ADMIN_USER_ACCOUNT_STATUS=Account-Status: ADMIN_USER_PROFILE_MODE=Profilmodus: ADMIN_USER_LAST_LOCKED=Zuletzt gesperrt: ADMIN_USER_LAST_LOCKED_REASON=Letzter Sperrgrund: -ADMIN_USER_CONTACT_CREATED=Wann Kontaktdaten erstellt: -ADMIN_USER_CONTACT_UPDATED=Wann Kontaktdaten ge\u00e4ndert: ADMIN_CONTACT_IS_OWN_CONTACT=Eigenes Account: ADMIN_CONTACT_PERSONAL_TITLE=Anrede: ADMIN_CONTACT_ACADEMIC_TITLE=Titel: @@ -359,7 +356,7 @@ ADMIN_CONTACT_STREET=Strasse: ADMIN_CONTACT_HOUSE_NUMBER=Hausnummer: ADMIN_CONTACT_ZIP_CODE=Postleitzahl: ADMIN_CONTACT_CITY=Stadt: -ADMIN_CONTACT_EMAIL_ADDRESS=Email-Adresse: +DATA_EMAIL_ADDRESS=Email-Adresse: ADMIN_CONTACT_BIRTHDAY=Geburtstag: ADMIN_LINKS_HEADER=Administrative Links: ADMIN_LINK_EDIT_USER=Benutzerdaten editieren @@ -371,7 +368,6 @@ ADMIN_LINK_DELETE_USER_TITLE=L\u00f6scht das Benutzeraccount (nach Best\u00e4tig CONTENT_TITLE_ADMIN_DELETE_USER=Benutzeraccount l\u00f6schen: PAGE_TITLE_ADMIN_DELETE_USER=Benutzeraccount l\u00f6schen ADMIN_HEADER_SHOW_MOBILE_NUMBER_DATA=Daten des Mobiltelefons: -ADMIN_SHOW_PHONE_ID=Id-Nummer: ADMIN_SHOW_MOBILE_PROVIDER_NAME=Mobilanbieter: ADMIN_SHOW_MOBILE_NUMBER_COMPLETE=Komplette Nummer: ADMIN_SHOW_ADMINISTRATIVE_LINKS=Administrative Links: @@ -450,9 +446,7 @@ LINK_GUEST_TERMS_CONDITIONS=Allgemeine Gesch\u00e4ftsbestimmungen LINK_GUEST_PRIVACY_STATEMENTS=Datenschutzbestimmungen ADMIN_ADD_OR_ENTER_CONTACT_DATA=... oder geben Sie die Kontaktdaten des Recruiters ein: ADMIN_PERSONAL_DATA_EMAIL_ADDRESS=Email-Adresse: -MENU_RECRUIITER_TITLE=F\u00fcr Recruiter -LINK_RERUITER_LOGIN=Einloggen -LINK_RERUITER_LOGIN_TITLE=Zum Recruiter-Bereich einloggen +ADMIN_ADD_OR_ENTER_CONTACT_DATA=... oder geben Sie die Kontaktdaten des Benutzers ein: ERROR_CONTACT_ID_NOT_FOUND=Fehler: Kontaktdaten nicht gefunden. GUEST_REGISTRATION_PAGE1_TITLE=Anmeldeseite 1 GUEST_REGISTRATION_PAGE2_TITLE=Anmeldeseite 2 @@ -801,22 +795,22 @@ ADMIN_BASIC_COMPANY_DATA_LIST_EMPTY=Es befinden sich keine Stammdaten in der Dat 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_BUSINESS_CONTACT_DATA_TITLE=Details des Stammdatens anzeigen. -ADMIN_BASIC_COMPANY_DATA_OWNER_ID=Zugew. Benutzer: +ADMIN_LINK_SHOW_BASIC_COMAPNY_DATA_TITLE=Stammdaten des Unternehmens anzeigen. +ADMIN_ASSIGNED_USER_ID=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! ADMIN_LINK_ASSIGN_BASIC_COMPANY_DATA_OWNER_USER_TITLE=Stammdaten einen Benutzeraccount zuweisen. ADMIN_BASIC_COMPANY_DATA_COMPANY_NAME=Firmenname: -ADMIN_BASIC_COMPANY_DATA_CONTACT_PERSON=Ansprechpartner: +ADMIN_CONTACT_PERSON=Ansprechpartner: ADMIN_LINK_SHOW_BASIC_COMPANY_DATA_CONTACT_PERSON_TITLE=Zeigt einen Mitarbeiter an, der als Ansprechpartner eingetragen ist. ADMIN_LINK_ASSIGN_BASIC_COMPANY_DATA_CONTACT_PERSON=Zuweisen #@TODO Please fix German umlauts! ADMIN_LINK_ASSIGN_BASIC_COMPANY_DATA_CONTACT_PERSON_TITLE=Weisst einen Mitarbeiter als Ansprechpartner des geschaftlichen Kontaktes zu. ADMIN_SHOW_FULL_CONTACT_DATA_TITLE=Zeigt das komplette Kontaktprofil an. -ADMIN_BUSINESS_DATA_COMPANY_COMMENTS=Anmerkungen: -ADMIN_BUSINESS_DATA_PHONE_NUMBER=Haupttelefonnummer: -ADMIN_BUSINESS_DATA_FAX_NUMBER=Hauptfaxnummer: +ADMIN_BASIC_COMPANY_DATA_COMPANY_COMMENTS=Anmerkungen: +ADMIN_BASIC_COMPANY_DATA_PHONE_NUMBER=Haupttelefonnummer: +ADMIN_BASIC_COMPANY_DATA_FAX_NUMBER=Hauptfaxnummer: #@TODO Please fix German umlauts! ADMIN_ADD_BASIC_COMPANY_DATA_TITLE=Neuen geschaeftlichen Kontakt hinzufuegen ADMIN_ADD_BASIC_COMPANY_DATA_MINIMUM_DATA=Bitte mindestens Firmennamen inklusive Rechtsform ein. @@ -826,10 +820,10 @@ ENTERED_EMAIL_ADDRESS_IS_INVALID=Die eingegebene Email-Addresse entspricht nicht ADMIN_BASIC_COMPANY_DATA_LEGEND=Basisdaten fuer geschaeftlichen Kontakt: #@TODO Please fix German umlauts! ADMIN_BASIC_COMPANY_DATA_LEGEND_TITLE=Geben Sie die Basisdaten fuer einen geschaeftlichen Kontakt ein. -ADMIN_BUSINESS_DATA_COMPANY_NAME=Firmenname: -ADMIN_BUSINESS_DATA_COMPANY_NAME_REQUIRED=Bitte geben Sie den Firmennamen inklusive Rechtsform ein. -ADMIN_BUSINESS_DATA_COMPANY_LEGAL_STATUS=Rechtsform (z.B. GmbH): -ADMIN_BUSINESS_DATA_COMPANY_EMAIL_ADDRESS=Haupt-Email-Adresse: +ADMIN_BASIC_COMPANY_DATA_COMPANY_NAME=Firmenname: +ADMIN_BASIC_COMPANY_DATA_COMPANY_NAME_REQUIRED=Bitte geben Sie den Firmennamen inklusive Rechtsform ein. +ADMIN_BASIC_COMPANY_DATA_COMPANY_LEGAL_STATUS=Rechtsform (z.B. GmbH): +ADMIN_BASIC_COMPANY_DATA_COMPANY_EMAIL_ADDRESS=Haupt-Email-Adresse: #@TODO Please fix German umlauts! BUTTON_ADMIN_CONTINUE_BUSINESS_CONTACT_PERSON=Basisdaten hinzufuegen ERROR_GUEST_REGISTRATION_IN_INDEX_ENABLED=Fehler: Falscher Aufruf der Anmeldeseite, da die Eingangsseite als Anmeldeseite fungiert. @@ -838,20 +832,20 @@ BUTTON_CHANGE_LOCALE=Aendern #@TODO Please fix German umlauts! BUTTON_CHANGE_LOCALE_TITLE=Aendern Sie hier in der aktuellen Sitzung die angezeigte Sprache. #@TODO Please fix German umlauts! -ADMIN_SELECT_BUSINESS_DATA_COMPANY_FOUNDER=Firmengruender auswaehlen: +ADMIN_SELECT_BASIC_COMPANY_DATA_COMPANY_FOUNDER=Firmengruender auswaehlen: ADMIN_FEATURE_UNFINISHED_WARNING=Diese Funktion ist noch nicht fertiggestellt. -ADMIN_BUSINESS_DATA_COMPANY_TAX_NUMBER=Steuernummer: -ADMIN_BUSINESS_DATA_COMPANY_WEBSITE_URL=Webseiten-URL: -ADMIN_SELECT_BUSINESS_DATA_COMPANY_USER_OWNER=Unternehmen einem Benutzer zuweisen: +ADMIN_BASIC_COMPANY_DATA_COMPANY_TAX_NUMBER=Steuernummer: +ADMIN_BASIC_COMPANY_DATA_COMPANY_WEBSITE_URL=Webseiten-URL: +ADMIN_SELECT_BASIC_COMPANY_DATA_COMPANY_USER_OWNER=Unternehmen einem Benutzer zuweisen: #@TODO Please fix German umlauts! -ADMIN_SELECT_BUSINESS_DATA_COMPANY_LOGO=Firmenlogo auswaehlen: +ADMIN_SELECT_BASIC_COMPANY_DATA_COMPANY_LOGO=Firmenlogo auswaehlen: #@TODO Please fix German umlauts! URL_NOT_MATCHING_REGULAR_EXPRESSION=Die eingegebene URL entspricht nicht der ueblichen Form. #@TODO Please fix German umlauts! -ADMIN_SELECT_BUSINESS_DATA_COMPANY_CONTACT_EMPLOYEE=Mitarbeiter als Kontaktperson auswaehlen: +ADMIN_SELECT_BASIC_COMPANY_DATA_COMPANY_CONTACT_EMPLOYEE=Mitarbeiter als Kontaktperson auswaehlen: #@TODO Please fix German umlauts! -ADMIN_SELECT_BUSINESS_DATA_COMPANY_HEADQUARTERS=Daten des Hauptsitzesz auswaehlen: -LINK_COMPANY_WEBSITE_URL_TITLE=Zur Unternehmenswebseite (neues Fenster) surfen +ADMIN_SELECT_BASIC_COMPANY_DATA_COMPANY_HEADQUARTERS=Daten des Hauptsitzesz auswaehlen: +LINK_COMPANY_WEBSITE_URL_TITLE=Link zur Unternehmenswebseite (neues Fenster) #@TODO Please fix German umlauts! ADMIN_BASIC_COMPANY_DATA_COMPANY_FOUNDER=Gruender #@TODO Please fix German umlauts! @@ -862,8 +856,8 @@ ADMIN_BASIC_COMPANY_DATA_CREATED=Eintrag erstellt ADMIN_USER_NAME_IS_REQUIRED=Bitte vergeben Sie einen Benutzernamen. Dieser muss unique sein. NO_WEBSITE_URL_ENTERED=Keine URL eingegeben LINK_ADMIN_LIST_BRANCH_OFFICES=Filialen auflisten -ADMIN_DATA_STORE=Etage: -ADMIN_DATA_SUITE_NUMBER=Appartmentnummer: +ADMIN_ENTER_DATA_STORE=Etage eingeben: +ADMIN_ENTER_DATA_SUITE_NUMBER=Appartmentnummer eingeben: ADMIN_SELECT_BRANCH_OFFICE_USER_OWNER=Filiale einem Benutzer zuweisen: ADMIN_SELECT_BRANCH_OFFICE_CONTACT_EMPLOYEE=Kontaktperson der Filiale zuweisen: ADMIN_BRANCH_OFFICE_LEGEND=Grunddaten der Filiale: @@ -890,3 +884,17 @@ ENTERED_STORE_INVALID=Die eingegebene Etage ist nicht gueltig. ENTERED_SUITE_NUMBER_INVALID=Die eingegebene Appartmentnummer ist ungueltig. ADMIN_BRANCH_OFFICE_ADDRESS_LEGEND=Adressdaten der Filiale: ADMIN_BRANCH_OFFICE_ADDRESS_LEGEND_TITLE=Geben Sie hier die Adresse der Filiale ein. +ADMIN_BRANCH_OFFICE_ZIP_CODE_REQUIRED=Bitte geben Sie die Postleitzahl zur Filiale ein. +ADMIN_BRANCH_OFFICE_CITY_REQUIRED=Bitte geben Sie die Stadt der Filiale ein. +ADMIN_BRANCH_OFFICE_ALREADY_CREATED=Eine Filiale existiert bereits mit den angegebenen Daten. +ADMIN_LINK_SHOW_BRANCH_OFFICE_TITLE=Zeige Details dieser Filiale an. +ADMIN_LINK_SHOW_BRANCH_OFFICES_OWNER_USER_TITLE=Zeit das Benutzerprofil des Besitzers des Filialeintrages an. +ADMIN_LINK_ASSIGN_BRANCH_OFFICES_OWNER_USER_TITLE=Dieser Filiale einen Benutzer als Besitzer zuweisen. +ADMIN_LINK_SHOW_BRANCH_OFFICES_CONTACT_PERSON_TITLE=Zeit die Daten der Kontaktperson dieser Filiale an. +ADMIN_LINK_ASSIGN_BRANCH_OFFICES_CONTACT_PERSON_TITLE=Einen Mitarbeiter als Kontaktperson dieser Filiale zuweisen. +NO_EMAIL_ADDRESS_ENTERED=Keine Email-Adresse eingegeben. +DATA_ADDRESS=Adresse +DATA_STORE=Etage: +DATA_SUITE_NUMBER=Appartmentnummer: +#@TODO Please fix German umlauts! +PARAMETER_ADDRESSBOOK_ID_NOT_FOUND=Der angeklickte Link ist nicht mehr gueltig: Addressbook mit der eingegebenen Id-Nummer existiert nicht mehr. diff --git a/src/java/org/mxchange/localization/bundle_en_US.properties b/src/java/org/mxchange/localization/bundle_en_US.properties index a62c4c37..4da1b875 100644 --- a/src/java/org/mxchange/localization/bundle_en_US.properties +++ b/src/java/org/mxchange/localization/bundle_en_US.properties @@ -265,7 +265,7 @@ ADMIN_ENTER_COUNTRY_EXTERNAL_DIAL_PREFIX=Prefix for calls outside local city: (m ADMIN_ENTER_COUNTRY_PHONE_CODE=Dial prefix for this country: ADMIN_ENTER_COUNTRY_PHONE_CODE_EXAMPLE=(Example: 1 for U.S.A.) BUTTON_ADMIN_ADD_COUNTRY=Add country data -ADMIN_LIST_COUNTRY_DATA_COUNTRY_ID=Id number: +ADMIN_ID_NUMBER=Id number: ADMIN_LIST_COUNTRY_DATA_COUNTRY_CODE=Country code: ADMIN_LIST_COUNTRY_DATA_COUNTRY_EXTERNAL_DIAL_PREFIX=Dial prefix outside: ADMIN_LIST_COUNTRY_DATA_COUNTRY_NAME=Country: @@ -294,11 +294,10 @@ BUTTON_ADMIN_ADD_MOBILE_PROVIDER=Add mobile provider ADMIN_ADD_MOBILE_PROVIDER_NOTICES=Notices for adding mobile provider: ADMIN_ADD_MOBILE_PROVIDER_PATTERN=The pattern should only contain one %s which must be the full mobile number. Example: %s@smsmail.provider.example ADMIN_ENTER_MOBILE_PROVIDER_PATTERN_EXAMPLE=(Example: %s@smsmail.provider.example) -ADMIN_LIST_MOBILE_PROVIDER_ID=Id number: ADMIN_LIST_MOBILE_PROVIDER_NAME=Name: ADMIN_LIST_MOBILE_PROVIDER_DIAL_PREFIX=Dial prefix: ADMIN_LIST_MOBILE_PROVIDER_COUNTRY=Country: -ADMIN_LIST_MOBILE_PROVIDER_ENTRY_CREATED=Created: +ADMIN_LIST_ENTRY_CREATED=Created: ADMIN_LINK_EDIT_DELETE_MOBILE_PROVIDER_TITLE=Edit or delete mobile provider ADMIN_USER_DATA_ENTER_PASSWORD=Enter password: ADMIN_USER_DATA_ENTER_PASSWORD_REPEAT=Repeat password: @@ -328,8 +327,6 @@ ADMIN_USER_ACCOUNT_STATUS=Account status: ADMIN_USER_PROFILE_MODE=Profile mode: ADMIN_USER_LAST_LOCKED=Last locked: ADMIN_USER_LAST_LOCKED_REASON=Last lock reason: -ADMIN_USER_CONTACT_CREATED=When contact data created: -ADMIN_USER_CONTACT_UPDATED=When contact data updated: ADMIN_CONTACT_IS_OWN_CONTACT=Own account: ADMIN_CONTACT_PERSONAL_TITLE=Gender: ADMIN_CONTACT_ACADEMIC_TITLE=Title: @@ -339,7 +336,7 @@ ADMIN_CONTACT_STREET=Street: ADMIN_CONTACT_HOUSE_NUMBER=House number: ADMIN_CONTACT_ZIP_CODE=ZIP code: ADMIN_CONTACT_CITY=City: -ADMIN_CONTACT_EMAIL_ADDRESS=Email address: +DATA_EMAIL_ADDRESS=Email address: ADMIN_CONTACT_BIRTHDAY=Birthday: ADMIN_LINKS_HEADER=Administrative links: ADMIN_LINK_EDIT_USER=Edit user data @@ -351,7 +348,6 @@ ADMIN_LINK_DELETE_USER_TITLE=Deletes user account (after confirmation). CONTENT_TITLE_ADMIN_DELETE_USER=Delete user account: PAGE_TITLE_ADMIN_DELETE_USER=Delete user account ADMIN_HEADER_SHOW_MOBILE_NUMBER_DATA=Data of mobile phone: -ADMIN_SHOW_PHONE_ID=Id number: ADMIN_SHOW_MOBILE_PROVIDER_NAME=Mobile provider: ADMIN_SHOW_MOBILE_NUMBER_COMPLETE=Complete number: ADMIN_SHOW_ADMINISTRATIVE_LINKS=Administrative links: @@ -429,9 +425,6 @@ LINK_GUEST_TERMS_CONDITIONS=Terms & Conditions LINK_GUEST_PRIVACY_STATEMENTS=privacy statements ADMIN_ADD_OR_ENTER_CONTACT_DATA=... or enter the user's contact data: ADMIN_PERSONAL_DATA_EMAIL_ADDRESS=Email address: -MENU_RECRUIITER_TITLE=For recruiter -LINK_RERUITER_LOGIN=Login -LINK_RERUITER_LOGIN_TITLE=Login to recruiter area ERROR_CONTACT_ID_NOT_FOUND=Error: contact data not found GUEST_REGISTRATION_PAGE1_TITLE=Registration page 1 GUEST_REGISTRATION_PAGE2_TITLE=Registration page 2 @@ -789,45 +782,45 @@ CONTENT_TITLE_ADMIN_LIST_BASIC_COMPANY_DATA=Lists basic company data ADMIN_BASIC_COMPANY_DATA_LIST_EMPTY=There are currently no basic company data in database. TABLE_SUMMARY_ADMIN_LIST_BASIC_COMPANY_DATA=This table lists basic company data. ADMIN_BASIC_COMPANY_DATA_ID=Id Number: -ADMIN_LINK_SHOW_BUSINESS_CONTACT_DATA_TITLE=Show details of this business contact. -ADMIN_BASIC_COMPANY_DATA_OWNER_ID=Assigned user: +ADMIN_LINK_SHOW_BASIC_COMAPNY_DATA_TITLE=Show details of this business contact. +ADMIN_ASSIGNED_USER_ID=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. ADMIN_BASIC_COMPANY_DATA_COMPANY_NAME=Company name: -ADMIN_BASIC_COMPANY_DATA_CONTACT_PERSON=Contact person: +ADMIN_CONTACT_PERSON=Contact person: ADMIN_LINK_SHOW_BASIC_COMPANY_DATA_CONTACT_PERSON_TITLE=Shows a single employee entry who has been assigned as contact person. ADMIN_LINK_ASSIGN_BASIC_COMPANY_DATA_CONTACT_PERSON=Assign ADMIN_LINK_ASSIGN_BASIC_COMPANY_DATA_CONTACT_PERSON_TITLE=Assigns an employee as a contact person for given business contact. ADMIN_SHOW_FULL_CONTACT_DATA_TITLE=Shows complete contact profile. -ADMIN_BUSINESS_DATA_COMPANY_COMMENTS=Comments: -ADMIN_BUSINESS_DATA_PHONE_NUMBER=Main phone number: -ADMIN_BUSINESS_DATA_FAX_NUMBER=Main fax number: +ADMIN_BASIC_COMPANY_DATA_COMPANY_COMMENTS=Comments: +ADMIN_BASIC_COMPANY_DATA_PHONE_NUMBER=Main phone number: +ADMIN_BASIC_COMPANY_DATA_FAX_NUMBER=Main fax number: ADMIN_ADD_BASIC_COMPANY_DATA_TITLE=Add new business contact ADMIN_ADD_BASIC_COMPANY_DATA_MINIMUM_DATA=Please enter at least company name including legal status. ENTERED_EMAIL_ADDRESS_IS_INVALID=Your entered email address is not valid. ADMIN_BASIC_COMPANY_DATA_LEGEND=Basic data for business contact: #Geben Sie die Basisdaten fuer einen geschaeftlichen Kontakt ein. ADMIN_BASIC_COMPANY_DATA_LEGEND_TITLE=Enter basic data for a business contact. -ADMIN_BUSINESS_DATA_COMPANY_NAME=Company name: -ADMIN_BUSINESS_DATA_COMPANY_NAME_REQUIRED=Please enter the company's name including legal status. -ADMIN_BUSINESS_DATA_COMPANY_LEGAL_STATUS=Legal status (e.g. Inc.): -ADMIN_BUSINESS_DATA_COMPANY_EMAIL_ADDRESS=Main email address: +ADMIN_BASIC_COMPANY_DATA_COMPANY_NAME=Company name: +ADMIN_BASIC_COMPANY_DATA_COMPANY_NAME_REQUIRED=Please enter the company's name including legal status. +ADMIN_BASIC_COMPANY_DATA_COMPANY_LEGAL_STATUS=Legal status (e.g. Inc.): +ADMIN_BASIC_COMPANY_DATA_COMPANY_EMAIL_ADDRESS=Main email address: BUTTON_ADMIN_CONTINUE_BUSINESS_CONTACT_PERSON=Add basic data #Fehler: Falscher Aufruf der Anmeldeseite, da die Eingangsseite als Anmeldeseite fungiert. ERROR_GUEST_REGISTRATION_IN_INDEX_ENABLED=Error: Wrong request on registration page as the index page serves as registration page. BUTTON_CHANGE_LOCALE=Change BUTTON_CHANGE_LOCALE_TITLE=Change here in your current session the used language for text output. -ADMIN_SELECT_BUSINESS_DATA_COMPANY_FOUNDER=Choose company founder: +ADMIN_SELECT_BASIC_COMPANY_DATA_COMPANY_FOUNDER=Choose company founder: ADMIN_FEATURE_UNFINISHED_WARNING=This feature is not yet finished. -ADMIN_BUSINESS_DATA_COMPANY_TAX_NUMBER=Tax number: -ADMIN_BUSINESS_DATA_COMPANY_WEBSITE_URL=Website URL: -ADMIN_SELECT_BUSINESS_DATA_COMPANY_USER_OWNER=Select user to assign with company: -ADMIN_SELECT_BUSINESS_DATA_COMPANY_LOGO=Choose company logo: +ADMIN_BASIC_COMPANY_DATA_COMPANY_TAX_NUMBER=Tax number: +ADMIN_BASIC_COMPANY_DATA_COMPANY_WEBSITE_URL=Website URL: +ADMIN_SELECT_BASIC_COMPANY_DATA_COMPANY_USER_OWNER=Select user to assign with company: +ADMIN_SELECT_BASIC_COMPANY_DATA_COMPANY_LOGO=Choose company logo: URL_NOT_MATCHING_REGULAR_EXPRESSION=The entered URL does not match the common form. -ADMIN_SELECT_BUSINESS_DATA_COMPANY_CONTACT_EMPLOYEE=Choose employee as contact person: -ADMIN_SELECT_BUSINESS_DATA_COMPANY_HEADQUARTERS=Choose headquarters: -LINK_COMPANY_WEBSITE_URL_TITLE=Surf to company's web site (new window) +ADMIN_SELECT_BASIC_COMPANY_DATA_COMPANY_CONTACT_EMPLOYEE=Choose employee as contact person: +ADMIN_SELECT_BASIC_COMPANY_DATA_COMPANY_HEADQUARTERS=Choose headquarters: +LINK_COMPANY_WEBSITE_URL_TITLE=Link to company's web site (new window) ADMIN_BASIC_COMPANY_DATA_COMPANY_FOUNDER=Founder ADMIN_LINK_SHOW_BASIC_COMPANY_DATA_COMPANY_FOUNDER_TITLE=Show data of company founder. ADMIN_LINK_ASSIGN_BASIC_COMPANY_DATA_COMPANY_FOUNDER_TITLE=Assigns a company founder to this company entry. @@ -835,8 +828,8 @@ ADMIN_BASIC_COMPANY_DATA_CREATED=Entry created ADMIN_USER_NAME_IS_REQUIRED=Please enter a user name. This must be unique. NO_WEBSITE_URL_ENTERED=No URL entered LINK_ADMIN_LIST_BRANCH_OFFICES=List branch offices -ADMIN_DATA_STORE=Store: -ADMIN_DATA_SUITE_NUMBER=Suite number: +ADMIN_ENTER_DATA_STORE=Enter store: +ADMIN_ENTER_DATA_SUITE_NUMBER=Enter suite number: ADMIN_SELECT_BRANCH_OFFICE_USER_OWNER=Assign branch office to user: ADMIN_SELECT_BRANCH_OFFICE_CONTACT_EMPLOYEE=Select contact person to branch office: ADMIN_BRANCH_OFFICE_LEGEND=Branch office basic data: @@ -858,3 +851,15 @@ ENTERED_STORE_INVALID=The entered store is not valid. ENTERED_SUITE_NUMBER_INVALID=The entered suite number is not valid. ADMIN_BRANCH_OFFICE_ADDRESS_LEGEND=Address data of branch office: ADMIN_BRANCH_OFFICE_ADDRESS_LEGEND_TITLE=Enter here the address of the branch office. +ADMIN_BRANCH_OFFICE_ZIP_CODE_REQUIRED=Please enter ZIP code for the branch office. +ADMIN_BRANCH_OFFICE_CITY_REQUIRED=Please enter city for the branch office. +ADMIN_BRANCH_OFFICE_ALREADY_CREATED=A branch office with same data already exists. +ADMIN_LINK_SHOW_BRANCH_OFFICE_TITLE=Show details of this branch office. +ADMIN_LINK_SHOW_BRANCH_OFFICES_OWNER_USER_TITLE=Show the profile of the branch office entry owning user. +ADMIN_LINK_ASSIGN_BRANCH_OFFICES_OWNER_USER_TITLE=Assign a user as owner to this branch office. +ADMIN_LINK_SHOW_BRANCH_OFFICES_CONTACT_PERSON_TITLE=Shows contact data of this branch office's contact person. +ADMIN_LINK_ASSIGN_BRANCH_OFFICES_CONTACT_PERSON_TITLE=Assign a company employee as contact person for this branch office. +NO_EMAIL_ADDRESS_ENTERED=No email address entered. +DATA_ADDRESS=Address +DATA_STORE=Store: +DATA_SUITE_NUMBER=Suite number: diff --git a/src/java/org/mxchange/pizzaapplication/beans/business/basicdata/PizzaBusinessDataWebRequestBean.java b/src/java/org/mxchange/pizzaapplication/beans/business/basicdata/PizzaBusinessDataWebRequestBean.java index 568c4699..bd2c640f 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/business/basicdata/PizzaBusinessDataWebRequestBean.java +++ b/src/java/org/mxchange/pizzaapplication/beans/business/basicdata/PizzaBusinessDataWebRequestBean.java @@ -140,12 +140,12 @@ public class PizzaBusinessDataWebRequestBean extends BasePizzaController impleme } else if (event.getBasicData() == null) { // Throw NPE again throw new NullPointerException("event.basicData is null"); - } else if (event.getBasicData().getCompanyDataId() == null) { + } else if (event.getBasicData().getBasicDataId() == null) { // Throw NPE again - throw new NullPointerException("event.basicData.companyDataId is null"); - } else if (event.getBasicData().getCompanyDataId() < 1) { + throw new NullPointerException("event.basicData.basicDataId is null"); + } else if (event.getBasicData().getBasicDataId() < 1) { // Throw IAE - throw new IllegalArgumentException(MessageFormat.format("event.basicData.companyDataId={0} is invalid", event.getBasicData().getCompanyDataId())); + throw new IllegalArgumentException(MessageFormat.format("event.basicData.basicDataId={0} is invalid", event.getBasicData().getBasicDataId())); } else if (event.getBasicData().getCompanyName() == null) { // Throw NPE again throw new NullPointerException("event.basicData.companyName is null"); @@ -155,7 +155,7 @@ public class PizzaBusinessDataWebRequestBean extends BasePizzaController impleme } // Add it to list - this.basicDataCache.put(event.getBasicData().getCompanyDataId(), event.getBasicData()); + this.basicDataCache.put(event.getBasicData().getBasicDataId(), event.getBasicData()); } /** @@ -362,7 +362,7 @@ public class PizzaBusinessDataWebRequestBean extends BasePizzaController impleme final BusinessBasicData next = iterator.next(); // Add it to cache - this.basicDataCache.put(next.getCompanyDataId(), next); + this.basicDataCache.put(next.getBasicDataId(), next); } } } diff --git a/src/java/org/mxchange/pizzaapplication/beans/business/branchoffice/PizzaAdminBranchOfficeWebRequestBean.java b/src/java/org/mxchange/pizzaapplication/beans/business/branchoffice/PizzaAdminBranchOfficeWebRequestBean.java index 4bf0fc32..aed64dc7 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/business/branchoffice/PizzaAdminBranchOfficeWebRequestBean.java +++ b/src/java/org/mxchange/pizzaapplication/beans/business/branchoffice/PizzaAdminBranchOfficeWebRequestBean.java @@ -16,15 +16,29 @@ */ package org.mxchange.pizzaapplication.beans.business.branchoffice; +import java.util.List; import javax.ejb.EJB; import javax.enterprise.context.RequestScoped; +import javax.enterprise.event.Event; +import javax.enterprise.inject.Any; +import javax.inject.Inject; import javax.inject.Named; -import org.mxchange.jcontactsbusiness.basicdata.BusinessBasicData; -import org.mxchange.jcontactsbusiness.branchoffice.AdminBranchOfficeSessionBeanRemote; -import org.mxchange.jcontactsbusiness.employee.Employee; -import org.mxchange.jcountry.data.Country; -import org.mxchange.jfinancials.beans.BasePizzaController; +import org.mxchange.jcontactsbusiness.events.branchoffice.added.BranchOfficeAddedEvent; +import org.mxchange.jcontactsbusiness.events.branchoffice.added.ObservableBranchOfficeAddedEvent; +import org.mxchange.jcontactsbusiness.exceptions.branchoffice.BranchOfficeAlreadyAddedException; +import org.mxchange.jcontactsbusiness.model.basicdata.BusinessBasicData; +import org.mxchange.jcontactsbusiness.model.branchoffice.AdminBranchOfficeSessionBeanRemote; +import org.mxchange.jcontactsbusiness.model.branchoffice.BranchOffice; +import org.mxchange.jcontactsbusiness.model.branchoffice.BranchOffices; +import org.mxchange.jcontactsbusiness.model.branchoffice.CompanyBranchOffice; +import org.mxchange.jcontactsbusiness.model.employee.Employee; +import org.mxchange.jcountry.model.data.Country; +import org.mxchange.jphone.model.phonenumbers.fax.DialableFaxNumber; +import org.mxchange.jphone.model.phonenumbers.fax.FaxNumber; +import org.mxchange.jphone.model.phonenumbers.landline.DialableLandLineNumber; +import org.mxchange.jphone.model.phonenumbers.landline.LandLineNumber; import org.mxchange.jusercore.model.user.User; +import org.mxchange.pizzaapplication.beans.BasePizzaController; /** * An administrative bean for branch offices @@ -76,6 +90,19 @@ public class PizzaAdminBranchOfficeWebRequestBean extends BasePizzaController im */ private Short branchHouseNumber; + /** + * An event being fired when a branch office has been successfully added + */ + @Inject + @Any + private Event branchOfficeAddedEvent; + + /** + * A general branch office controller (backing bean) + */ + @Inject + private PizzaBranchOfficeWebRequestController branchOfficeController; + /** * Store */ @@ -139,6 +166,43 @@ public class PizzaAdminBranchOfficeWebRequestBean extends BasePizzaController im super(); } + /** + * Adds branch office with all data from this backing bean. First this + * action method will validate if the branch office's address is already + * registered and if found, it will output a proper faces message. + *

+ * @return Redirect outcome + */ + public String addBranchOffice () { + // Get instance + final BranchOffice branchOffice = this.createBranchOffice(); + + // Is the branch office not created yet? + if (this.isBranchOfficeCreatedByRequiredData(branchOffice)) { + // Then show proper faces message + this.showFacesMessage("form_admin_add_branch_office:branchStreet", "ADMIN_BRANCH_OFFICE_ALREADY_CREATED"); //NOI18N + return ""; //NOI18N + } + + // Delcare updated instance + final BranchOffice updatedOffice; + + try { + // Try to call EJB + updatedOffice = this.adminBranchOfficeBean.addBranchOffice(branchOffice); + } catch (final BranchOfficeAlreadyAddedException ex) { + // Output message + this.showFacesMessage("form_admin_add_branch_office:branchStreet", "ADMIN_BRANCH_OFFICE_ALREADY_CREATED"); //NOI18N + return ""; //NOI18N + } + + // Fire event + this.branchOfficeAddedEvent.fire(new BranchOfficeAddedEvent(updatedOffice)); + + // Redirect to list + return "admin_list_branch_offices"; //NOI18N + } + /** * Getter for city *

@@ -445,4 +509,103 @@ public class PizzaAdminBranchOfficeWebRequestBean extends BasePizzaController im this.landLineNumber = landLineNumber; } + /** + * Prepares an instance of a BranchOffice object (entity) with all data from + * this bean. If a complete fax number or land-line number was provided, it + * will be set in the instance as well. + *

+ * @return An instance of a BranchOffice class (entity) + */ + private BranchOffice createBranchOffice () { + // Create new branch office instance + final BranchOffice branchOffice = new CompanyBranchOffice(this.getBranchCity(), this.getBranchCompany(), this.getBranchCountry(), this.getBranchStreet(), this.getBranchZipCode(), this.getBranchHouseNumber()); + + // Add all other fields, too + branchOffice.setBranchContactEmployee(this.getBranchContactEmployee()); + branchOffice.setBranchEmailAddress(this.getBranchEmailAddress()); + branchOffice.setBranchStore(this.getBranchStore()); + branchOffice.setBranchSuiteNumber(this.getBranchSuiteNumber()); + branchOffice.setBranchUserOwner(this.getBranchUserOwner()); + + // Generate phone number + final DialableLandLineNumber landLine = new LandLineNumber(this.getLandLineCountry(), this.getLandLineAreaCode(), this.getLandLineNumber()); + final DialableFaxNumber fax = new FaxNumber(this.getFaxCountry(), this.getFaxAreaCode(), this.getFaxNumber()); + + // Don't set null or wrong references + if ((landLine instanceof DialableLandLineNumber) && (landLine.getPhoneCountry() instanceof Country) && (this.getLandLineAreaCode() != null) && (this.getLandLineNumber() != null) && (this.getLandLineAreaCode() > 0) && (this.getLandLineNumber() > 0)) { + // Now the number must be given + if (landLine.getPhoneAreaCode() == null) { + // Is null + throw new NullPointerException("phone.phoneAreaCode is null"); //NOI18N + } else if (landLine.getPhoneAreaCode() < 1) { + // Abort here + throw new IllegalArgumentException("phone.phoneAreaCode is zero or below."); //NOI18N + } else if (landLine.getPhoneNumber() == null) { + // Is null + throw new NullPointerException("phone.phoneNumber is null"); //NOI18N + } else if (landLine.getPhoneNumber() < 1) { + // Abort here + throw new IllegalArgumentException("phone.phoneNumber is zero or below."); //NOI18N + } + + // Set phone number + branchOffice.setBranchLandLineNumber(landLine); + } + + // Don't set null or wrong references + if ((fax instanceof DialableFaxNumber) && (fax.getPhoneCountry() instanceof Country) && (this.getFaxAreaCode() != null) && (this.getFaxNumber() != null) && (this.getFaxAreaCode() > 0) && (this.getFaxNumber() > 0)) { + // Now the number must be given + if (fax.getPhoneAreaCode() == null) { + // Is null + throw new NullPointerException("fax.phoneAreaCode is null"); //NOI18N + } else if (fax.getPhoneAreaCode() < 1) { + // Abort here + throw new IllegalArgumentException("fax.phoneAreaCode is zero or below."); //NOI18N + } else if (fax.getPhoneNumber() == null) { + // Is null + throw new NullPointerException("fax.phoneNumber is null"); //NOI18N + } else if (fax.getPhoneNumber() < 1) { + // Abort here + throw new IllegalArgumentException("fax.phoneNumber is zero or below."); //NOI18N + } + + // Set fax number + branchOffice.setBranchFaxNumber(fax); + } + + // Return fully prepared instance + return branchOffice; + } + + /** + * Checks whether the given branch office's address is already found in + * local cache. Please note that this method fully relies on the cache, so + * you must always fire proper events that add/update/delete entries in + * cache. + *

+ * @param branchOffice Branch office to check it's address + *

+ * @return Whether the address has been found + */ + private boolean isBranchOfficeCreatedByRequiredData (final BranchOffice branchOffice) { + // Get full list from other bean + final List branchOffices = this.branchOfficeController.allBranchOffices(); + + // Default is not found + boolean isFound = false; + + // Now check each entry + for (final BranchOffice bo : branchOffices) { + // Is same address? + if (BranchOffices.isSameAddress(bo, branchOffice)) { + // Found one + isFound = true; + break; + } + } + + // Return flag + return isFound; + } + } diff --git a/src/java/org/mxchange/pizzaapplication/beans/business/branchoffice/PizzaBranchOfficeWebRequestBean.java b/src/java/org/mxchange/pizzaapplication/beans/business/branchoffice/PizzaBranchOfficeWebRequestBean.java index 05564793..c420da75 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/business/branchoffice/PizzaBranchOfficeWebRequestBean.java +++ b/src/java/org/mxchange/pizzaapplication/beans/business/branchoffice/PizzaBranchOfficeWebRequestBean.java @@ -17,6 +17,7 @@ package org.mxchange.pizzaapplication.beans.business.branchoffice; import fish.payara.cdi.jsr107.impl.NamedCache; +import java.text.MessageFormat; import java.util.Iterator; import java.util.LinkedList; import java.util.List; @@ -24,8 +25,10 @@ import javax.annotation.PostConstruct; import javax.cache.Cache; import javax.ejb.EJB; import javax.enterprise.context.RequestScoped; +import javax.enterprise.event.Observes; import javax.inject.Inject; import javax.inject.Named; +import org.mxchange.jcontactsbusiness.events.branchoffice.added.ObservableBranchOfficeAddedEvent; import org.mxchange.jcontactsbusiness.model.branchoffice.BranchOffice; import org.mxchange.jcontactsbusiness.model.branchoffice.BranchOfficeSessionBeanRemote; import org.mxchange.pizzaapplication.beans.BasePizzaController; @@ -66,11 +69,34 @@ public class PizzaBranchOfficeWebRequestBean extends BasePizzaController impleme } /** - * Returns a list of all branch offices + * Observes events being fired when a branch office has been added. *

- * @return A list of all branch offices + * @param event Event being fired + *

+ * @throws NullPointerException If the parameter or it's carried instance is null + * @throws IllegalArgumentException If the branchId is zero or lower */ - @SuppressWarnings ("ReturnOfCollectionOrArrayField") + public void afterBranchOfficeAddedEvent (@Observes final ObservableBranchOfficeAddedEvent event) { + // Validate parameter + if (null == event) { + // Throw NPE + throw new NullPointerException("event is null"); //NOI18N + } else if (event.getBranchOffice() == null) { + // Throw NPE again + throw new NullPointerException("event.branchOffice is null"); //NOI18N + } else if (event.getBranchOffice().getBranchId() == null) { + // Throw it again + throw new NullPointerException("event.branchOffice.branchId is null"); //NOI18N + } else if (event.getBranchOffice().getBranchId() < 1) { + // Throw IAE + throw new IllegalArgumentException(MessageFormat.format("event.branchOffice.branchId={0} is not valid", event.getBranchOffice().getBranchId())); //NOI18N + } + + // Add instance to cache + this.branchOfficeCache.put(event.getBranchOffice().getBranchId(), event.getBranchOffice()); + } + + @Override public List allBranchOffices () { // Init list final List list = new LinkedList<>(); diff --git a/src/java/org/mxchange/pizzaapplication/beans/business/branchoffice/PizzaBranchOfficeWebRequestController.java b/src/java/org/mxchange/pizzaapplication/beans/business/branchoffice/PizzaBranchOfficeWebRequestController.java index 6a10272f..407497fa 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/business/branchoffice/PizzaBranchOfficeWebRequestController.java +++ b/src/java/org/mxchange/pizzaapplication/beans/business/branchoffice/PizzaBranchOfficeWebRequestController.java @@ -17,6 +17,8 @@ package org.mxchange.pizzaapplication.beans.business.branchoffice; import java.io.Serializable; +import java.util.List; +import org.mxchange.jcontactsbusiness.model.branchoffice.BranchOffice; /** * An interface for general branch office controller @@ -25,4 +27,11 @@ import java.io.Serializable; */ public interface PizzaBranchOfficeWebRequestController extends Serializable { + /** + * Returns a list of all branch offices + *

+ * @return A list of all branch offices + */ + List allBranchOffices (); + } diff --git a/web/WEB-INF/faces-config.xml b/web/WEB-INF/faces-config.xml index fc3eadc9..132b9be4 100644 --- a/web/WEB-INF/faces-config.xml +++ b/web/WEB-INF/faces-config.xml @@ -713,8 +713,8 @@ /admin/basic_company_data/admin_basic_company_data_list.xhtml - admin_show_basic_company_data - /admin/basic_company_data/admin_basic_company_data_assign.xhtml + admin_show_basic_data + /admin/basic_company_data/admin_basic_company_data_show.xhtml admin_assign_basic_company_data_contact @@ -728,9 +728,41 @@ admin_assign_basic_company_data_owner /admin/basic_company_data/admin_basic_company_data_assign_owner.xhtml + + admin_show_business_employee + /admin/company_employee/admin_company_employee_show.xhtml + + + admin_assign_basic_company_data_employee + /admin/basic_company_data/admin_basic_company_data_assign_employee.xhtml + /admin/branch_offices/admin_branch_offices_list.xhtml + + admin_show_branch_office + /admin/branch_offices/admin_branch_office_show.xhtml + + + admin_show_user + /admin/user/admin_user_show.xhtml + + + admin_assign_branch_office_owner + /admin/branch_offices/admin_branch_office_assign_owner.xhtml + + + admin_show_basic_data + /admin/basic_company_data/admin_basic_company_data_show.xhtml + + + admin_show_business_employee + /admin/company_employee/admin_company_employee_show.xhtml + + + admin_assign_branch_office_employee + /admin/branch_offices/admin_branch_office_assign_employee.xhtml +