From 31b54d2122393708c88e2a4d9c828871b956f106 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Sat, 26 Aug 2017 22:42:41 +0200 Subject: [PATCH] Please cherry-pick: - rewrote message-box tag to have 2 CSS classes, one for the whole (alert) box, one for the message itself - renamed a lot CSS classes/ids to more common naming covention: foo-bar and not foo_bar - renamed i18n string to ADMIN_FEATURE_UNFINISHED_WARNING as this can be generic - other small CSS rewrites MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Roland Häder --- ...ncialsAdminBusinessDataWebRequestBean.java | 8 +- .../FinancialsBusinessDataWebSessionBean.java | 34 +++ .../FinancialsBusinessContactConverter.java | 20 +- .../FinancialsCompanyEmployeeConverter.java | 13 +- ...inancialsCompanyHeadquartersConverter.java | 11 +- .../contact/FinancialsContactConverter.java | 11 +- .../country/FinancialsCountryConverter.java | 11 +- .../fax/FinancialsFaxNumberConverter.java | 12 +- .../FinancialsLandLineNumberConverter.java | 12 +- .../FinancialsMobileNumberConverter.java | 12 +- .../FinancialsMobileProviderConverter.java | 11 +- .../user/FinancialsUserConverter.java | 12 +- .../birthday/FinancialsBirthdayValidator.java | 17 +- .../FinancialsCompanyNameValidator.java | 114 ++++++++++ .../FinancialsEmailAddressValidator.java | 5 +- .../names/FinancialsNameValidator.java | 3 +- .../FinancialsUserPasswordValidator.java | 5 +- .../abroad/FinancialsAbroadDialValidator.java | 9 +- .../FinancialsPhoneNumberValidator.java | 3 +- ...nancialsPrivacyTermsCheckboxValidator.java | 3 +- .../validator/url/FinancialsUrlValidator.java | 5 +- .../user/FinancialsUserIdValidator.java | 3 +- .../localization/bundle_de_DE.properties | 27 +-- .../localization/bundle_en_US.properties | 18 +- .../columns/admin_contact_data_columns.tpl | 68 +++--- .../admin_contact_data_columns_mini.tpl | 20 +- .../resources/tags/messages/message_box.tpl | 16 +- .../tags/messages/message_box_mini.tpl | 33 --- .../table_rows/mobile_selection_table_row.tpl | 14 +- .../user_personal_title_table_row.tpl | 12 +- .../user_profile_mode_table_row.tpl | 12 +- web/WEB-INF/templates/admin/admin_footer.tpl | 2 +- web/WEB-INF/templates/admin/admin_menu.tpl | 16 +- .../admin_form_business_basic_data.tpl | 118 +++++----- .../admin/contact/admin_contact_data_mini.tpl | 14 +- .../admin/contact/admin_contact_links.tpl | 8 +- .../admin/contact/admin_form_contact_data.tpl | 120 +++++----- .../admin/contact/admin_show_contact_data.tpl | 2 +- .../admin/country/admin_form_country_data.tpl | 48 ++-- .../admin/fax/admin_fax_add_show.tpl | 2 +- .../templates/admin/fax/admin_fax_data.tpl | 26 +-- .../templates/admin/fax/admin_fax_links.tpl | 16 +- .../admin/fax/admin_form_add_contact_fax.tpl | 30 +-- .../admin/fax/admin_form_fax_data.tpl | 18 +- .../admin_form_add_contact_landline.tpl | 30 +-- .../landline/admin_form_landline_data.tpl | 18 +- .../landline/admin_landline_add_show.tpl | 2 +- .../admin/landline/admin_landline_data.tpl | 26 +-- .../admin/landline/admin_landline_links.tpl | 16 +- .../mobile/admin_form_add_contact_mobile.tpl | 20 +- .../mobile/admin_form_contact_mobile.tpl | 2 +- .../admin/mobile/admin_form_mobile_data.tpl | 26 +-- .../admin/mobile/admin_mobile_add_show.tpl | 2 +- .../admin/mobile/admin_mobile_data.tpl | 30 +-- .../admin/mobile/admin_mobile_links.tpl | 16 +- .../admin_form_mobile_provider.tpl | 26 +-- .../admin/user/admin_form_user_data.tpl | 26 +-- .../admin/user/admin_show_user_data.tpl | 34 +-- .../admin/user/admin_show_user_data_mini.tpl | 18 +- .../templates/admin/user/admin_user_links.tpl | 8 +- web/WEB-INF/templates/base.tpl | 34 ++- .../templates/contact/form_contact_data.tpl | 108 ++++----- .../guest_email_address_repeat_fields.tpl | 16 +- web/WEB-INF/templates/guest/guest_footer.tpl | 12 +- web/WEB-INF/templates/guest/guest_menu.tpl | 4 +- .../templates/guest/guest_privacy_terms.tpl | 16 +- .../templates/guest/user/guest_login_form.tpl | 24 +- .../register/guest_form_register_page1.tpl | 32 +-- .../register/guest_form_register_page2.tpl | 8 +- .../register/guest_form_register_single.tpl | 32 +-- .../input_fields/fax_input_fields.tpl | 8 +- .../input_fields/landline_input_fields.tpl | 8 +- .../templates/login/user/user_base.tpl | 5 +- ...ser_change_email_address_repeat_fields.tpl | 16 +- .../user/user_enter_current_password.tpl | 8 +- .../templates/login/user/user_footer.tpl | 10 +- .../templates/login/user/user_menu.tpl | 8 +- .../templates/user/user_not_logged_in.tpl | 4 +- .../templates/user/user_profile_link.tpl | 2 +- web/WEB-INF/templates/user/userid_error.tpl | 4 +- web/WEB-INF/widgets.jsf.taglib.xml | 23 +- web/admin/admin_logout.xhtml | 4 +- .../admin_business_contacts_list.xhtml | 12 +- web/admin/contact/admin_contact_delete.xhtml | 10 +- web/admin/contact/admin_contact_edit.xhtml | 10 +- web/admin/contact/admin_contact_export.xhtml | 10 +- web/admin/contact/admin_contact_list.xhtml | 12 +- web/admin/contact/admin_contact_show.xhtml | 2 +- .../unlink/admin_contact_fax_unlink.xhtml | 12 +- .../admin_contact_landline_unlink.xhtml | 12 +- .../unlink/admin_contact_mobile_unlink.xhtml | 12 +- web/admin/country/admin_country_list.xhtml | 10 +- web/admin/fax/admin_fax_delete.xhtml | 8 +- web/admin/fax/admin_fax_edit.xhtml | 10 +- web/admin/fax/admin_fax_list.xhtml | 4 +- web/admin/fax/admin_fax_show.xhtml | 36 +-- .../landline/admin_landline_delete.xhtml | 8 +- web/admin/landline/admin_landline_edit.xhtml | 10 +- web/admin/landline/admin_landline_list.xhtml | 4 +- web/admin/landline/admin_landline_show.xhtml | 36 +-- .../mobile/admin_contact_mobile_list.xhtml | 2 +- web/admin/mobile/admin_mobile_delete.xhtml | 8 +- web/admin/mobile/admin_mobile_edit.xhtml | 10 +- web/admin/mobile/admin_mobile_list.xhtml | 4 +- web/admin/mobile/admin_mobile_show.xhtml | 36 +-- .../admin_mobile_provider_list.xhtml | 10 +- web/admin/user/admin_user_activity_log.xhtml | 4 +- web/admin/user/admin_user_delete.xhtml | 18 +- web/admin/user/admin_user_edit.xhtml | 10 +- web/admin/user/admin_user_export.xhtml | 10 +- web/admin/user/admin_user_list.xhtml | 20 +- web/admin/user/admin_user_lock.xhtml | 38 ++-- .../admin_user_resend_confirmation_link.xhtml | 14 +- web/admin/user/admin_user_show.xhtml | 2 +- web/admin/user/admin_user_unlock.xhtml | 38 ++-- web/guest/user/user_confirm_account.xhtml | 8 +- web/guest/user/user_list.xhtml | 8 +- web/guest/user/user_login.xhtml | 2 +- web/guest/user/user_lost_password.xhtml | 22 +- web/guest/user/user_profile.xhtml | 6 +- web/guest/user/user_register.xhtml | 4 +- web/guest/user/user_register_page2.xhtml | 2 +- web/guest/user/user_resend_link.xhtml | 18 +- web/resources/css/default.css | 5 +- web/resources/css/layout.css | 207 +++++++++--------- web/user/login_contact_data_saved.xhtml | 2 +- web/user/login_edit_user_data.xhtml | 2 +- web/user/login_logout.xhtml | 4 +- .../login_user_change_email_address.xhtml | 14 +- web/user/login_user_change_password.xhtml | 24 +- .../login_user_change_personal_data.xhtml | 10 +- web/user/login_user_contact_data_saved.xhtml | 2 +- 132 files changed, 1238 insertions(+), 1204 deletions(-) create mode 100644 src/java/org/mxchange/jfinancials/validator/business/basicdata/FinancialsCompanyNameValidator.java delete mode 100644 web/WEB-INF/resources/tags/messages/message_box_mini.tpl diff --git a/src/java/org/mxchange/jfinancials/beans/business/basicdata/FinancialsAdminBusinessDataWebRequestBean.java b/src/java/org/mxchange/jfinancials/beans/business/basicdata/FinancialsAdminBusinessDataWebRequestBean.java index 78826580..42441a61 100644 --- a/src/java/org/mxchange/jfinancials/beans/business/basicdata/FinancialsAdminBusinessDataWebRequestBean.java +++ b/src/java/org/mxchange/jfinancials/beans/business/basicdata/FinancialsAdminBusinessDataWebRequestBean.java @@ -31,8 +31,7 @@ import org.mxchange.jcontactsbusiness.basicdata.AdminBusinessDataSessionBeanRemo import org.mxchange.jcontactsbusiness.basicdata.BusinessBasicData; import org.mxchange.jcontactsbusiness.basicdata.CompanyBasicData; import org.mxchange.jcontactsbusiness.employee.Employee; -import org.mxchange.jcontactsbusiness.events.basicdata.added.BusinessBasicDataAddedEvent; -import org.mxchange.jcontactsbusiness.events.basicdata.added.ObservableBusinessBasicDataAddedEvent; +import org.mxchange.jcontactsbusiness.events.basicdata.added.AdminAddedBusinessBasicDataEvent; import org.mxchange.jcontactsbusiness.exceptions.basicdata.BusinessDataAlreadyAddedException; import org.mxchange.jcontactsbusiness.headquarters.HeadquartersData; import org.mxchange.jcountry.data.Country; @@ -42,6 +41,7 @@ import org.mxchange.jphone.phonenumbers.fax.FaxNumber; import org.mxchange.jphone.phonenumbers.landline.DialableLandLineNumber; import org.mxchange.jphone.phonenumbers.landline.LandLineNumber; import org.mxchange.jusercore.model.user.User; +import org.mxchange.jcontactsbusiness.events.basicdata.added.ObservableAdminAddedBusinessBasicDataEvent; /** * An administrative business contact bean (controller) @@ -67,7 +67,7 @@ public class FinancialsAdminBusinessDataWebRequestBean extends BaseFinancialsCon */ @Inject @Any - private Event businessDataAddedEvent; + private Event businessDataAddedEvent; /** * Comments for this company @@ -234,7 +234,7 @@ public class FinancialsAdminBusinessDataWebRequestBean extends BaseFinancialsCon BusinessBasicData updatedBasicData = this.adminBusinessDataBean.addCompanyBasicData(basicData); // Fire event - this.businessDataAddedEvent.fire(new BusinessBasicDataAddedEvent(updatedBasicData)); + this.businessDataAddedEvent.fire(new AdminAddedBusinessBasicDataEvent(updatedBasicData)); } catch (final BusinessDataAlreadyAddedException e) { // Does already exist throw new FacesException(e); diff --git a/src/java/org/mxchange/jfinancials/beans/business/basicdata/FinancialsBusinessDataWebSessionBean.java b/src/java/org/mxchange/jfinancials/beans/business/basicdata/FinancialsBusinessDataWebSessionBean.java index 1e416c53..f13a4bd2 100644 --- a/src/java/org/mxchange/jfinancials/beans/business/basicdata/FinancialsBusinessDataWebSessionBean.java +++ b/src/java/org/mxchange/jfinancials/beans/business/basicdata/FinancialsBusinessDataWebSessionBean.java @@ -16,9 +16,11 @@ */ package org.mxchange.jfinancials.beans.business.basicdata; +import java.text.MessageFormat; import java.util.List; import javax.annotation.PostConstruct; import javax.enterprise.context.SessionScoped; +import javax.enterprise.event.Observes; import javax.faces.view.facelets.FaceletException; import javax.inject.Inject; import javax.inject.Named; @@ -28,6 +30,7 @@ import javax.naming.NamingException; import org.mxchange.jcontactsbusiness.basicdata.AdminBusinessDataSessionBeanRemote; import org.mxchange.jcontactsbusiness.basicdata.BusinessBasicData; import org.mxchange.jcontactsbusiness.basicdata.BusinessDataSessionBeanRemote; +import org.mxchange.jcontactsbusiness.events.basicdata.added.ObservableAdminAddedBusinessBasicDataEvent; import org.mxchange.jcountry.data.Country; import org.mxchange.jfinancials.beans.BaseFinancialsController; import org.mxchange.jfinancials.beans.user.login.FinancialsUserLoginWebSessionController; @@ -120,6 +123,37 @@ public class FinancialsBusinessDataWebSessionBean extends BaseFinancialsControll super(); } + /** + * Observers events being fired when an administrator has added company + * basic data. + *

+ * @param event Event being fired + */ + public void afterAdminAddedBasicCompanyDataEvent (@Observes final ObservableAdminAddedBusinessBasicDataEvent event) { + // Is the parameter valid? + if (null == event) { + // Throw NPE + throw new NullPointerException("event is null"); + } else if (event.getBasicData() == null) { + // Throw NPE again + throw new NullPointerException("event.basicData is null"); + } else if (event.getBasicData().getCompanyDataId() == null) { + // Throw NPE again + throw new NullPointerException("event.basicData.companyDataId is null"); + } else if (event.getBasicData().getCompanyDataId() < 1) { + // Throw IAE + throw new IllegalArgumentException(MessageFormat.format("event.basicData.companyDataId={0} is invalid", event.getBasicData().getCompanyDataId())); + } else if (event.getBasicData().getCompanyName() == null) { + // Throw NPE again + throw new NullPointerException("event.basicData.companyName is null"); + } else if (event.getBasicData().getCompanyName().isEmpty()) { + // Throw IAE again + throw new IllegalArgumentException("event.basicData.companyName is empty"); + } + + // Add it to list + this.businessContacts.add(event.getBasicData()); + } /** * Returns a list of all business contacts diff --git a/src/java/org/mxchange/jfinancials/converter/business/basicdata/FinancialsBusinessContactConverter.java b/src/java/org/mxchange/jfinancials/converter/business/basicdata/FinancialsBusinessContactConverter.java index 27f973d4..1a9ecaee 100644 --- a/src/java/org/mxchange/jfinancials/converter/business/basicdata/FinancialsBusinessContactConverter.java +++ b/src/java/org/mxchange/jfinancials/converter/business/basicdata/FinancialsBusinessContactConverter.java @@ -25,7 +25,6 @@ import javax.faces.convert.FacesConverter; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; -import org.mxchange.jcontacts.contact.Contact; import org.mxchange.jcontactsbusiness.basicdata.BusinessBasicData; import org.mxchange.jcontactsbusiness.basicdata.BusinessDataSessionBeanRemote; import org.mxchange.jcontactsbusiness.exceptions.basicdata.BusinessDataNotFoundException; @@ -36,12 +35,12 @@ import org.mxchange.jcontactsbusiness.exceptions.basicdata.BusinessDataNotFoundE * @author Roland Häder */ @FacesConverter (value = "BusinessContactConverter") -public class FinancialsBusinessContactConverter implements Converter { +public class FinancialsBusinessContactConverter implements Converter { /** * Business contact EJB */ - private static BusinessDataSessionBeanRemote BUSINESS_CONTACT_BEAN; + private static BusinessDataSessionBeanRemote BASIC_DATA_BEAN; /** * Default constructor @@ -50,7 +49,7 @@ public class FinancialsBusinessContactConverter implements Converter { } @Override - public Object getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) { + public BusinessBasicData getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) { // Is the value null or empty? if ((null == submittedValue) || (submittedValue.trim().isEmpty())) { // Warning message @@ -62,14 +61,14 @@ public class FinancialsBusinessContactConverter implements Converter { // Is the bean there? // @TODO Requires this synchronization or is it (sync) confusing the container? - if (null == FinancialsBusinessContactConverter.BUSINESS_CONTACT_BEAN) { + if (null == FinancialsBusinessContactConverter.BASIC_DATA_BEAN) { // Try to get it try { // Get initial context Context initialContext = new InitialContext(); // ... and user controller - FinancialsBusinessContactConverter.BUSINESS_CONTACT_BEAN = (BusinessDataSessionBeanRemote) initialContext.lookup("java:global/jfinancials-ejb/businessData!org.mxchange.jcontactsbusiness.basicdata.BusinessDataSessionBeanRemote"); //NOI18N + FinancialsBusinessContactConverter.BASIC_DATA_BEAN = (BusinessDataSessionBeanRemote) initialContext.lookup("java:global/jfinancials-ejb/businessData!org.mxchange.jcontactsbusiness.basicdata.BusinessDataSessionBeanRemote"); //NOI18N } catch (final NamingException ex) { // Continue to throw it throw new ConverterException(MessageFormat.format("initialContext.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N @@ -84,7 +83,7 @@ public class FinancialsBusinessContactConverter implements Converter { Long contactId = Long.valueOf(submittedValue); // Try to get user instance from it - businessContact = FinancialsBusinessContactConverter.BUSINESS_CONTACT_BEAN.findBasicDataById(contactId); + businessContact = FinancialsBusinessContactConverter.BASIC_DATA_BEAN.findBasicDataById(contactId); } catch (final NumberFormatException ex) { // Throw again throw new ConverterException(ex); @@ -98,18 +97,15 @@ public class FinancialsBusinessContactConverter implements Converter { } @Override - public String getAsString (final FacesContext context, final UIComponent component, final Object value) { + public String getAsString (final FacesContext context, final UIComponent component, final BusinessBasicData value) { // Is the object null? if ((null == value) || (String.valueOf(value).isEmpty())) { // Is null return ""; //NOI18N - } else if (!(value instanceof Contact)) { - // Not same interface - throw new IllegalArgumentException(MessageFormat.format("value[]={0} does not implement Contact.", value.getClass().getSimpleName())); //NOI18N } // Return id number - return String.valueOf(((BusinessBasicData) value).getCompanyDataId()); + return String.valueOf(value.getCompanyDataId()); } } diff --git a/src/java/org/mxchange/jfinancials/converter/business/company_employee/FinancialsCompanyEmployeeConverter.java b/src/java/org/mxchange/jfinancials/converter/business/company_employee/FinancialsCompanyEmployeeConverter.java index e2126984..3698e94f 100644 --- a/src/java/org/mxchange/jfinancials/converter/business/company_employee/FinancialsCompanyEmployeeConverter.java +++ b/src/java/org/mxchange/jfinancials/converter/business/company_employee/FinancialsCompanyEmployeeConverter.java @@ -35,7 +35,7 @@ import org.mxchange.jcontactsbusiness.exceptions.employee.CompanyEmployeeNotFoun * @author Roland Häder */ @FacesConverter (value = "CompanyEmployeeConverter") -public class FinancialsCompanyEmployeeConverter implements Converter { +public class FinancialsCompanyEmployeeConverter implements Converter { /** * CompanyEmployee EJB @@ -49,7 +49,7 @@ public class FinancialsCompanyEmployeeConverter implements Converter { } @Override - public Object getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) { + public Employee getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) { // Is the value null or empty? if ((null == submittedValue) || (submittedValue.trim().isEmpty())) { // Warning message @@ -68,7 +68,7 @@ public class FinancialsCompanyEmployeeConverter implements Converter { Context initialContext = new InitialContext(); // ... and user controller - FinancialsCompanyEmployeeConverter.COMPANY_EMPLOYEE_BEAN = (CompanyEmployeeSessionBeanRemote) initialContext.lookup("java:global/jfinancials-ejb/companyEmployee!org.mxchange.jcontactsbusiness.company_employee.CompanyEmployeeSessionBeanRemote"); //NOI18N + FinancialsCompanyEmployeeConverter.COMPANY_EMPLOYEE_BEAN = (CompanyEmployeeSessionBeanRemote) initialContext.lookup("java:global/jfinancials-ejb/companyEmployee!org.mxchange.jcontactsbusiness.employee.CompanyEmployeeSessionBeanRemote"); //NOI18N } catch (final NamingException ex) { // Continue to throw it throw new ConverterException(MessageFormat.format("initialContext.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N @@ -97,18 +97,15 @@ public class FinancialsCompanyEmployeeConverter implements Converter { } @Override - public String getAsString (final FacesContext context, final UIComponent component, final Object value) { + public String getAsString (final FacesContext context, final UIComponent component, final Employee value) { // Is the object null? if ((null == value) || (String.valueOf(value).isEmpty())) { // Is null return ""; //NOI18N - } else if (!(value instanceof Employee)) { - // Not same interface - throw new IllegalArgumentException(MessageFormat.format("value[]={0} does not implement Employee.", value.getClass().getSimpleName())); //NOI18N } // Return id number - return String.valueOf(((Employee) value).getEmployeeId()); + return String.valueOf(value.getEmployeeId()); } } diff --git a/src/java/org/mxchange/jfinancials/converter/business/headquarters/FinancialsCompanyHeadquartersConverter.java b/src/java/org/mxchange/jfinancials/converter/business/headquarters/FinancialsCompanyHeadquartersConverter.java index 927584ce..a596dbc7 100644 --- a/src/java/org/mxchange/jfinancials/converter/business/headquarters/FinancialsCompanyHeadquartersConverter.java +++ b/src/java/org/mxchange/jfinancials/converter/business/headquarters/FinancialsCompanyHeadquartersConverter.java @@ -35,7 +35,7 @@ import org.mxchange.jcontactsbusiness.headquarters.HeadquartersData; * @author Roland Häder */ @FacesConverter (value = "CompanyHeadquartersConverter") -public class FinancialsCompanyHeadquartersConverter implements Converter { +public class FinancialsCompanyHeadquartersConverter implements Converter { /** * CompanyEmployee EJB @@ -49,7 +49,7 @@ public class FinancialsCompanyHeadquartersConverter implements Converter { } @Override - public Object getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) { + public HeadquartersData getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) { // Is the value null or empty? if ((null == submittedValue) || (submittedValue.trim().isEmpty())) { // Warning message @@ -97,18 +97,15 @@ public class FinancialsCompanyHeadquartersConverter implements Converter { } @Override - public String getAsString (final FacesContext context, final UIComponent component, final Object value) { + public String getAsString (final FacesContext context, final UIComponent component, final HeadquartersData value) { // Is the object null? if ((null == value) || (String.valueOf(value).isEmpty())) { // Is null return ""; //NOI18N - } else if (!(value instanceof HeadquartersData)) { - // Not same interface - throw new IllegalArgumentException(MessageFormat.format("value[]={0} does not implement HeadquartersData.", value.getClass().getSimpleName())); //NOI18N } // Return id number - return String.valueOf(((HeadquartersData) value).getHeadquartersId()); + return String.valueOf(value.getHeadquartersId()); } } diff --git a/src/java/org/mxchange/jfinancials/converter/contact/FinancialsContactConverter.java b/src/java/org/mxchange/jfinancials/converter/contact/FinancialsContactConverter.java index 3516acd8..6d3f2fae 100644 --- a/src/java/org/mxchange/jfinancials/converter/contact/FinancialsContactConverter.java +++ b/src/java/org/mxchange/jfinancials/converter/contact/FinancialsContactConverter.java @@ -35,7 +35,7 @@ import org.mxchange.jcontacts.exceptions.ContactNotFoundException; * @author Roland Häder */ @FacesConverter (value = "ContactConverter") -public class FinancialsContactConverter implements Converter { +public class FinancialsContactConverter implements Converter { /** * Contact EJB @@ -49,7 +49,7 @@ public class FinancialsContactConverter implements Converter { } @Override - public Object getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) { + public Contact getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) { // Is the value null or empty? if ((null == submittedValue) || (submittedValue.trim().isEmpty())) { // Warning message @@ -97,18 +97,15 @@ public class FinancialsContactConverter implements Converter { } @Override - public String getAsString (final FacesContext context, final UIComponent component, final Object value) { + public String getAsString (final FacesContext context, final UIComponent component, final Contact value) { // Is the object null? if ((null == value) || (String.valueOf(value).isEmpty())) { // Is null return ""; //NOI18N - } else if (!(value instanceof Contact)) { - // Not same interface - throw new IllegalArgumentException(MessageFormat.format("value[]={0} does not implement Contact.", value.getClass().getSimpleName())); //NOI18N } // Return id number - return String.valueOf(((Contact) value).getContactId()); + return String.valueOf(value.getContactId()); } } diff --git a/src/java/org/mxchange/jfinancials/converter/country/FinancialsCountryConverter.java b/src/java/org/mxchange/jfinancials/converter/country/FinancialsCountryConverter.java index 51796b69..f7d56830 100644 --- a/src/java/org/mxchange/jfinancials/converter/country/FinancialsCountryConverter.java +++ b/src/java/org/mxchange/jfinancials/converter/country/FinancialsCountryConverter.java @@ -36,7 +36,7 @@ import org.mxchange.jcountry.data.CountrySingletonBeanRemote; * @author Roland Häder */ @FacesConverter (value = "CountryConverter") -public class FinancialsCountryConverter implements Converter { +public class FinancialsCountryConverter implements Converter { /** * Country bean @@ -50,7 +50,7 @@ public class FinancialsCountryConverter implements Converter { } @Override - public Object getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) { + public Country getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) { // Is the value null or empty? if ((null == submittedValue) || (submittedValue.trim().isEmpty())) { // Warning message @@ -109,18 +109,15 @@ public class FinancialsCountryConverter implements Converter { } @Override - public String getAsString (final FacesContext context, final UIComponent component, final Object value) { + public String getAsString (final FacesContext context, final UIComponent component, final Country value) { // Is the object null? if ((null == value) || (String.valueOf(value).isEmpty())) { // Is null return ""; //NOI18N - } else if (!(value instanceof Country)) { - // Not same interface - throw new IllegalArgumentException(MessageFormat.format("value[]={0} does not implement Country.", value.getClass().getSimpleName())); //NOI18N } // Return id number - return String.valueOf(((Country) value).getCountryId()); + return String.valueOf(value.getCountryId()); } } diff --git a/src/java/org/mxchange/jfinancials/converter/fax/FinancialsFaxNumberConverter.java b/src/java/org/mxchange/jfinancials/converter/fax/FinancialsFaxNumberConverter.java index 075887d8..b2c21469 100644 --- a/src/java/org/mxchange/jfinancials/converter/fax/FinancialsFaxNumberConverter.java +++ b/src/java/org/mxchange/jfinancials/converter/fax/FinancialsFaxNumberConverter.java @@ -26,7 +26,6 @@ import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import org.mxchange.jphone.exceptions.PhoneEntityNotFoundException; -import org.mxchange.jphone.phonenumbers.DialableNumber; import org.mxchange.jphone.phonenumbers.fax.DialableFaxNumber; import org.mxchange.jphone.phonenumbers.phone.PhoneSessionBeanRemote; @@ -36,7 +35,7 @@ import org.mxchange.jphone.phonenumbers.phone.PhoneSessionBeanRemote; * @author Roland Häder */ @FacesConverter (value = "FaxNumberConverter") -public class FinancialsFaxNumberConverter implements Converter { +public class FinancialsFaxNumberConverter implements Converter { /** * Phone EJB @@ -50,7 +49,7 @@ public class FinancialsFaxNumberConverter implements Converter { } @Override - public Object getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) { + public DialableFaxNumber getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) { // Log message // @TODO Not possible here: this.loggerBeanLocal.logTrace(MessageFormat.format("{0}.getAsObject: context={1},component={2},submittedValue={3} - CALLED!", this.getClass().getSimpleName(), context, component, submittedValue)); //NOI18N @@ -105,18 +104,15 @@ public class FinancialsFaxNumberConverter implements Converter { } @Override - public String getAsString (final FacesContext context, final UIComponent component, final Object value) { + public String getAsString (final FacesContext context, final UIComponent component, final DialableFaxNumber value) { // Is the object null? if ((null == value) || (String.valueOf(value).isEmpty())) { // Is null return ""; //NOI18N - } else if (!(value instanceof DialableNumber)) { - // Not same interface - throw new IllegalArgumentException(MessageFormat.format("value[]={0} does not implement DialableNumber.", value.getClass().getSimpleName())); //NOI18N } // Return id number - return String.valueOf(((DialableNumber) value).getPhoneId()); + return String.valueOf(value.getPhoneId()); } } diff --git a/src/java/org/mxchange/jfinancials/converter/landline/FinancialsLandLineNumberConverter.java b/src/java/org/mxchange/jfinancials/converter/landline/FinancialsLandLineNumberConverter.java index 60b88700..f0f8faf5 100644 --- a/src/java/org/mxchange/jfinancials/converter/landline/FinancialsLandLineNumberConverter.java +++ b/src/java/org/mxchange/jfinancials/converter/landline/FinancialsLandLineNumberConverter.java @@ -26,7 +26,6 @@ import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import org.mxchange.jphone.exceptions.PhoneEntityNotFoundException; -import org.mxchange.jphone.phonenumbers.DialableNumber; import org.mxchange.jphone.phonenumbers.landline.DialableLandLineNumber; import org.mxchange.jphone.phonenumbers.phone.PhoneSessionBeanRemote; @@ -36,7 +35,7 @@ import org.mxchange.jphone.phonenumbers.phone.PhoneSessionBeanRemote; * @author Roland Häder */ @FacesConverter (value = "LandLineNumberConverter") -public class FinancialsLandLineNumberConverter implements Converter { +public class FinancialsLandLineNumberConverter implements Converter { /** * Phone EJB @@ -50,7 +49,7 @@ public class FinancialsLandLineNumberConverter implements Converter { } @Override - public Object getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) { + public DialableLandLineNumber getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) { // Is the value null or empty? if ((null == submittedValue) || (submittedValue.trim().isEmpty())) { // Warning message @@ -98,18 +97,15 @@ public class FinancialsLandLineNumberConverter implements Converter { } @Override - public String getAsString (final FacesContext context, final UIComponent component, final Object value) { + public String getAsString (final FacesContext context, final UIComponent component, final DialableLandLineNumber value) { // Is the object null? if ((null == value) || (String.valueOf(value).isEmpty())) { // Is null return ""; //NOI18N - } else if (!(value instanceof DialableNumber)) { - // Not same interface - throw new IllegalArgumentException(MessageFormat.format("value[]={0} does not implement DialableNumber.", value.getClass().getSimpleName())); //NOI18N } // Return id number - return String.valueOf(((DialableNumber) value).getPhoneId()); + return String.valueOf(value.getPhoneId()); } } diff --git a/src/java/org/mxchange/jfinancials/converter/mobile/FinancialsMobileNumberConverter.java b/src/java/org/mxchange/jfinancials/converter/mobile/FinancialsMobileNumberConverter.java index 737c6acb..6091eec5 100644 --- a/src/java/org/mxchange/jfinancials/converter/mobile/FinancialsMobileNumberConverter.java +++ b/src/java/org/mxchange/jfinancials/converter/mobile/FinancialsMobileNumberConverter.java @@ -26,7 +26,6 @@ import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import org.mxchange.jphone.exceptions.PhoneEntityNotFoundException; -import org.mxchange.jphone.phonenumbers.DialableNumber; import org.mxchange.jphone.phonenumbers.mobile.DialableMobileNumber; import org.mxchange.jphone.phonenumbers.phone.PhoneSessionBeanRemote; @@ -36,7 +35,7 @@ import org.mxchange.jphone.phonenumbers.phone.PhoneSessionBeanRemote; * @author Roland Häder */ @FacesConverter (value = "MobileNumberConverter") -public class FinancialsMobileNumberConverter implements Converter { +public class FinancialsMobileNumberConverter implements Converter { /** * Phone EJB @@ -50,7 +49,7 @@ public class FinancialsMobileNumberConverter implements Converter { } @Override - public Object getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) { + public DialableMobileNumber getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) { // Is the value null or empty? if ((null == submittedValue) || (submittedValue.trim().isEmpty())) { // Warning message @@ -98,18 +97,15 @@ public class FinancialsMobileNumberConverter implements Converter { } @Override - public String getAsString (final FacesContext context, final UIComponent component, final Object value) { + public String getAsString (final FacesContext context, final UIComponent component, final DialableMobileNumber value) { // Is the object null? if ((null == value) || (String.valueOf(value).isEmpty())) { // Is null return ""; //NOI18N - } else if (!(value instanceof DialableNumber)) { - // Not same interface - throw new IllegalArgumentException(MessageFormat.format("value[]={0} does not implement DialableNumber.", value.getClass().getSimpleName())); //NOI18N } // Return id number - return String.valueOf(((DialableNumber) value).getPhoneId()); + return String.valueOf(value.getPhoneId()); } } diff --git a/src/java/org/mxchange/jfinancials/converter/mobileprovider/FinancialsMobileProviderConverter.java b/src/java/org/mxchange/jfinancials/converter/mobileprovider/FinancialsMobileProviderConverter.java index 4d104a42..d99ae480 100644 --- a/src/java/org/mxchange/jfinancials/converter/mobileprovider/FinancialsMobileProviderConverter.java +++ b/src/java/org/mxchange/jfinancials/converter/mobileprovider/FinancialsMobileProviderConverter.java @@ -36,7 +36,7 @@ import org.mxchange.jphone.phonenumbers.mobileprovider.MobileProviderSingletonBe * @author Roland Häder */ @FacesConverter (value = "MobileProviderConverter") -public class FinancialsMobileProviderConverter implements Converter { +public class FinancialsMobileProviderConverter implements Converter { /** * Mobile provider bean @@ -50,7 +50,7 @@ public class FinancialsMobileProviderConverter implements Converter { } @Override - public Object getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) { + public MobileProvider getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) { // Is the value null or empty? if ((null == submittedValue) || (submittedValue.trim().isEmpty())) { // Warning message @@ -109,18 +109,15 @@ public class FinancialsMobileProviderConverter implements Converter { } @Override - public String getAsString (final FacesContext context, final UIComponent component, final Object value) { + public String getAsString (final FacesContext context, final UIComponent component, final MobileProvider value) { // Is the object null? if ((null == value) || (String.valueOf(value).isEmpty())) { // Is null return ""; //NOI18N - } else if (!(value instanceof MobileProvider)) { - // Not same interface - throw new IllegalArgumentException(MessageFormat.format("value[]={0} does not implement MobileProvider.", value.getClass().getSimpleName())); //NOI18N } // Return id number - return String.valueOf(((MobileProvider) value).getProviderId()); + return String.valueOf(value.getProviderId()); } } diff --git a/src/java/org/mxchange/jfinancials/converter/user/FinancialsUserConverter.java b/src/java/org/mxchange/jfinancials/converter/user/FinancialsUserConverter.java index 1db850b9..a4cdd0a2 100644 --- a/src/java/org/mxchange/jfinancials/converter/user/FinancialsUserConverter.java +++ b/src/java/org/mxchange/jfinancials/converter/user/FinancialsUserConverter.java @@ -35,7 +35,7 @@ import org.mxchange.jusercore.model.user.UserSessionBeanRemote; * @author Roland Häder */ @FacesConverter (value = "UserConverter") -public class FinancialsUserConverter implements Converter { +public class FinancialsUserConverter implements Converter { /** * User EJB @@ -49,7 +49,7 @@ public class FinancialsUserConverter implements Converter { } @Override - public Object getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) { + public User getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) { // Is the value null or empty? if ((null == submittedValue) || (submittedValue.trim().isEmpty())) { // Warning message @@ -97,17 +97,15 @@ public class FinancialsUserConverter implements Converter { } @Override - public String getAsString (final FacesContext context, final UIComponent component, final Object value) { + public String getAsString (final FacesContext context, final UIComponent component, final User value) { // Is the object null? if ((null == value) || (String.valueOf(value).isEmpty())) { // Is null return ""; //NOI18N - } else if (!(value instanceof User)) { - // Not same interface - throw new IllegalArgumentException(MessageFormat.format("value[]={0} does not implement User.", value.getClass().getSimpleName())); //NOI18N } // Return id number - return String.valueOf(((User) value).getUserId()); + return String.valueOf(value.getUserId()); } + } diff --git a/src/java/org/mxchange/jfinancials/validator/birthday/FinancialsBirthdayValidator.java b/src/java/org/mxchange/jfinancials/validator/birthday/FinancialsBirthdayValidator.java index cc663cbe..14b69664 100644 --- a/src/java/org/mxchange/jfinancials/validator/birthday/FinancialsBirthdayValidator.java +++ b/src/java/org/mxchange/jfinancials/validator/birthday/FinancialsBirthdayValidator.java @@ -16,17 +16,11 @@ */ package org.mxchange.jfinancials.validator.birthday; -import java.text.MessageFormat; import java.util.Date; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; -import javax.faces.convert.ConverterException; import javax.faces.validator.FacesValidator; -import javax.faces.validator.Validator; import javax.faces.validator.ValidatorException; -import javax.naming.Context; -import javax.naming.InitialContext; -import javax.naming.NamingException; import org.mxchange.jcoreee.validator.date.BaseDateValidator; /** @@ -35,7 +29,7 @@ import org.mxchange.jcoreee.validator.date.BaseDateValidator; * @author Roland Häder */ @FacesValidator ("BirthdayValidator") -public class FinancialsBirthdayValidator extends BaseDateValidator implements Validator { +public class FinancialsBirthdayValidator extends BaseDateValidator { /** * Serial number @@ -44,17 +38,8 @@ public class FinancialsBirthdayValidator extends BaseDateValidator implements Va /** * Default constructor - * @TODO Get rid of this */ public FinancialsBirthdayValidator () { - // Try to get it - try { - // Get initial context - Context initialContext = new InitialContext(); - } catch (final NamingException ex) { - // Continue to throw it - throw new ConverterException(MessageFormat.format("initialContext.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N - } } @Override diff --git a/src/java/org/mxchange/jfinancials/validator/business/basicdata/FinancialsCompanyNameValidator.java b/src/java/org/mxchange/jfinancials/validator/business/basicdata/FinancialsCompanyNameValidator.java new file mode 100644 index 00000000..b67bc4d9 --- /dev/null +++ b/src/java/org/mxchange/jfinancials/validator/business/basicdata/FinancialsCompanyNameValidator.java @@ -0,0 +1,114 @@ +/* + * Copyright (C) 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 . + */ +package org.mxchange.jfinancials.validator.business.basicdata; + +import java.text.MessageFormat; +import javax.faces.application.FacesMessage; +import javax.faces.component.UIComponent; +import javax.faces.context.FacesContext; +import javax.faces.convert.ConverterException; +import javax.faces.validator.FacesValidator; +import javax.faces.validator.ValidatorException; +import javax.naming.Context; +import javax.naming.InitialContext; +import javax.naming.NamingException; +import org.mxchange.jcontactsbusiness.basicdata.BusinessDataSessionBeanRemote; +import org.mxchange.jcoreee.validator.string.BaseStringValidator; + +/** + * A validator for company names + *

+ * @author Roland Häder + */ +@FacesValidator ("CompanyNameValidator") +public class FinancialsCompanyNameValidator extends BaseStringValidator { + + /** + * Business contact EJB + */ + private static BusinessDataSessionBeanRemote BASIC_DATA_BEAN; + + /** + * Serial number + */ + private static final long serialVersionUID = 57_283_657_476_561L; + + @Override + public void validate (final FacesContext context, final UIComponent component, final Object value) throws ValidatorException { + // All accepted, required fields + String[] requiredFields = {"companyName"}; //NOI18N + + // Pre-validation (example: not null, not a string, empty string ...) + super.preValidate(context, component, value, requiredFields, false); + + // Convert name to string (now securely checked in BaseStringValidator) + String companyName = (String) value; + + // Default is to check on existing names + Boolean checkExisting = Boolean.TRUE; + + // Is attribute "allowEmptyValue" set? + if (component.getAttributes().containsKey("checkExisting")) { //NOI18N + // Get attribute + Object attribute = component.getAttributes().get("checkExisting"); //NOI18N + + // Make sure, it is Boolean as no String is accepted anymore + if (!(attribute instanceof String)) { + // Not valid attribute, please use "true" or "false" (default) + throw new IllegalArgumentException("checkExisting must be of type String. Please use \"true\" or \"false\" for f:attribute value."); //NOI18N + } + + // Securely cast it + checkExisting = Boolean.parseBoolean((String) attribute); + } + + // Is the bean not yet set? + // @TODO Requires this synchronization or is it (sync) confusing the container? + if (null == FinancialsCompanyNameValidator.BASIC_DATA_BEAN) { + // Try to get it + try { + // Get initial context + Context initialContext = new InitialContext(); + + // ... and user controller + FinancialsCompanyNameValidator.BASIC_DATA_BEAN = (BusinessDataSessionBeanRemote) initialContext.lookup("java:global/jfinancials-ejb/businessData!org.mxchange.jcontactsbusiness.basicdata.BusinessDataSessionBeanRemote"); //NOI18N + } catch (final NamingException ex) { + // Continue to throw it + throw new ConverterException(MessageFormat.format("initialContext.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N + } + } + + // Check if name is already used + Boolean nameExists = FinancialsCompanyNameValidator.BASIC_DATA_BEAN.isCompanyNameUsed(companyName); + + // Is the user id valid? + if ((!nameExists) && (checkExisting)) { + // Format message + String message = MessageFormat.format("No basic data found with comany name {0}.", companyName); + + // Name does not exist + throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_WARN, message, message)); //NOI18N + } else if ((nameExists) && (!checkExisting)) { + // Format message + String message = MessageFormat.format("Found basic data with comany name {0}.", companyName); + + // Name already exists + throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_WARN, message, message)); //NOI18N + } + } + +} diff --git a/src/java/org/mxchange/jfinancials/validator/emailaddress/FinancialsEmailAddressValidator.java b/src/java/org/mxchange/jfinancials/validator/emailaddress/FinancialsEmailAddressValidator.java index 5fc6056b..92ff97c6 100644 --- a/src/java/org/mxchange/jfinancials/validator/emailaddress/FinancialsEmailAddressValidator.java +++ b/src/java/org/mxchange/jfinancials/validator/emailaddress/FinancialsEmailAddressValidator.java @@ -22,7 +22,6 @@ import javax.faces.application.FacesMessage; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.validator.FacesValidator; -import javax.faces.validator.Validator; import javax.faces.validator.ValidatorException; import javax.naming.Context; import javax.naming.InitialContext; @@ -36,7 +35,7 @@ import org.mxchange.jcoreee.validator.string.BaseStringValidator; * @author Roland Häder */ @FacesValidator ("EmailAddressValidator") -public class FinancialsEmailAddressValidator extends BaseStringValidator implements Validator { +public class FinancialsEmailAddressValidator extends BaseStringValidator { /** * Contact session-scoped bean @@ -113,7 +112,7 @@ public class FinancialsEmailAddressValidator extends BaseStringValidator impleme String message = MessageFormat.format("Email address {0} does not match regular expression.", emailAddress); //NOI18N // Not matching - throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, message, message)); + throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_WARN, message, message)); } // Is the bean not yet set? diff --git a/src/java/org/mxchange/jfinancials/validator/names/FinancialsNameValidator.java b/src/java/org/mxchange/jfinancials/validator/names/FinancialsNameValidator.java index 786c5f29..8d88c254 100644 --- a/src/java/org/mxchange/jfinancials/validator/names/FinancialsNameValidator.java +++ b/src/java/org/mxchange/jfinancials/validator/names/FinancialsNameValidator.java @@ -19,7 +19,6 @@ package org.mxchange.jfinancials.validator.names; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.validator.FacesValidator; -import javax.faces.validator.Validator; import javax.faces.validator.ValidatorException; import org.mxchange.jcoreee.validator.string.BaseStringValidator; @@ -29,7 +28,7 @@ import org.mxchange.jcoreee.validator.string.BaseStringValidator; * @author Roland Häder */ @FacesValidator ("NameValidator") -public class FinancialsNameValidator extends BaseStringValidator implements Validator { +public class FinancialsNameValidator extends BaseStringValidator { /** * Serial number diff --git a/src/java/org/mxchange/jfinancials/validator/password/FinancialsUserPasswordValidator.java b/src/java/org/mxchange/jfinancials/validator/password/FinancialsUserPasswordValidator.java index 29c04248..2fbb0b21 100644 --- a/src/java/org/mxchange/jfinancials/validator/password/FinancialsUserPasswordValidator.java +++ b/src/java/org/mxchange/jfinancials/validator/password/FinancialsUserPasswordValidator.java @@ -19,7 +19,6 @@ package org.mxchange.jfinancials.validator.password; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.validator.FacesValidator; -import javax.faces.validator.Validator; import javax.faces.validator.ValidatorException; import org.mxchange.jcoreee.validator.string.BaseStringValidator; @@ -29,7 +28,7 @@ import org.mxchange.jcoreee.validator.string.BaseStringValidator; * @author Roland Häder */ @FacesValidator ("UserPasswordValidator") -public class FinancialsUserPasswordValidator extends BaseStringValidator implements Validator { +public class FinancialsUserPasswordValidator extends BaseStringValidator { /** * Serial number @@ -52,7 +51,7 @@ public class FinancialsUserPasswordValidator extends BaseStringValidator impleme // Test it here if (!UserUtils.ifPasswordMatches(container, this.userLoginController.getLoggedInUser())) { // Password mismatches - throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Password mismatching.", "The password the user has entered does not match the stored password.")); //NOI18N + throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_WARN, "Password mismatching.", "The password the user has entered does not match the stored password.")); //NOI18N } */ } diff --git a/src/java/org/mxchange/jfinancials/validator/phone/abroad/FinancialsAbroadDialValidator.java b/src/java/org/mxchange/jfinancials/validator/phone/abroad/FinancialsAbroadDialValidator.java index 616640dd..a810d316 100644 --- a/src/java/org/mxchange/jfinancials/validator/phone/abroad/FinancialsAbroadDialValidator.java +++ b/src/java/org/mxchange/jfinancials/validator/phone/abroad/FinancialsAbroadDialValidator.java @@ -21,9 +21,8 @@ import javax.faces.application.FacesMessage; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.validator.FacesValidator; -import javax.faces.validator.Validator; import javax.faces.validator.ValidatorException; -import org.mxchange.jcoreee.validator.BaseObjectValidator; +import org.mxchange.jcoreee.validator.string.BaseStringValidator; /** * A validator for phone, fax and mobile numbers @@ -31,7 +30,7 @@ import org.mxchange.jcoreee.validator.BaseObjectValidator; * @author Roland Häder */ @FacesValidator ("AbroadDialValidator") -public class FinancialsAbroadDialValidator extends BaseObjectValidator implements Validator { +public class FinancialsAbroadDialValidator extends BaseStringValidator { /** * Serial number @@ -59,11 +58,11 @@ public class FinancialsAbroadDialValidator extends BaseObjectValidator implement // Not valid range? (1 - 99, very rude) if (number < 1 || number > 99) { // Not allowed - throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, MessageFormat.format("Number {0} is not between 1 and 99 inclusive.", number), MessageFormat.format("The entered number {0} is not in the range of 1 and 99 inclusive. This cannot be used as abroad dial prefix. Alternatively enter international '+' sign.", number))); //NOI18N + throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_WARN, MessageFormat.format("Number {0} is not between 1 and 99 inclusive.", number), MessageFormat.format("The entered number {0} is not in the range of 1 and 99 inclusive. This cannot be used as abroad dial prefix. Alternatively enter international '+' sign.", number))); //NOI18N } } catch (final NumberFormatException ex) { // Didn't work - throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "No number or + entered", "No number or + sign has been entered."), ex); //NOI18N + throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_WARN, "No number or + entered", "No number or + sign has been entered."), ex); //NOI18N } } } diff --git a/src/java/org/mxchange/jfinancials/validator/phone/number/FinancialsPhoneNumberValidator.java b/src/java/org/mxchange/jfinancials/validator/phone/number/FinancialsPhoneNumberValidator.java index 3f9096b8..502609c1 100644 --- a/src/java/org/mxchange/jfinancials/validator/phone/number/FinancialsPhoneNumberValidator.java +++ b/src/java/org/mxchange/jfinancials/validator/phone/number/FinancialsPhoneNumberValidator.java @@ -19,7 +19,6 @@ package org.mxchange.jfinancials.validator.phone.number; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.validator.FacesValidator; -import javax.faces.validator.Validator; import javax.faces.validator.ValidatorException; import org.mxchange.jcoreee.validator.number.BaseNumberValidator; @@ -29,7 +28,7 @@ import org.mxchange.jcoreee.validator.number.BaseNumberValidator; * @author Roland Häder */ @FacesValidator ("PhoneNumberValidator") -public class FinancialsPhoneNumberValidator extends BaseNumberValidator implements Validator { +public class FinancialsPhoneNumberValidator extends BaseNumberValidator { /** * Serial number diff --git a/src/java/org/mxchange/jfinancials/validator/privacy_terms/FinancialsPrivacyTermsCheckboxValidator.java b/src/java/org/mxchange/jfinancials/validator/privacy_terms/FinancialsPrivacyTermsCheckboxValidator.java index 93c7d232..f97b3b19 100644 --- a/src/java/org/mxchange/jfinancials/validator/privacy_terms/FinancialsPrivacyTermsCheckboxValidator.java +++ b/src/java/org/mxchange/jfinancials/validator/privacy_terms/FinancialsPrivacyTermsCheckboxValidator.java @@ -19,7 +19,6 @@ package org.mxchange.jfinancials.validator.privacy_terms; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.validator.FacesValidator; -import javax.faces.validator.Validator; import javax.faces.validator.ValidatorException; import org.mxchange.jcoreee.validator.bool.BaseBooleanValidator; @@ -29,7 +28,7 @@ import org.mxchange.jcoreee.validator.bool.BaseBooleanValidator; * @author Roland Häder */ @FacesValidator ("PrivacyTermsCheckboxValidator") -public class FinancialsPrivacyTermsCheckboxValidator extends BaseBooleanValidator implements Validator { +public class FinancialsPrivacyTermsCheckboxValidator extends BaseBooleanValidator { /** * Serial number diff --git a/src/java/org/mxchange/jfinancials/validator/url/FinancialsUrlValidator.java b/src/java/org/mxchange/jfinancials/validator/url/FinancialsUrlValidator.java index 9ec2b059..8e367ff1 100644 --- a/src/java/org/mxchange/jfinancials/validator/url/FinancialsUrlValidator.java +++ b/src/java/org/mxchange/jfinancials/validator/url/FinancialsUrlValidator.java @@ -22,7 +22,6 @@ import javax.faces.application.FacesMessage; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.validator.FacesValidator; -import javax.faces.validator.Validator; import javax.faces.validator.ValidatorException; import org.mxchange.jcoreee.validator.string.BaseStringValidator; @@ -33,7 +32,7 @@ import org.mxchange.jcoreee.validator.string.BaseStringValidator; * @author Roland Häder */ @FacesValidator ("UrlValidator") -public class FinancialsUrlValidator extends BaseStringValidator implements Validator { +public class FinancialsUrlValidator extends BaseStringValidator { /** * Pattern matcher @@ -104,7 +103,7 @@ public class FinancialsUrlValidator extends BaseStringValidator implements Valid String message = MessageFormat.format("URL {0} does not match regular expression.", url); //NOI18N // Not matching - throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, message, message)); + throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_WARN, message, message)); } } diff --git a/src/java/org/mxchange/jfinancials/validator/user/FinancialsUserIdValidator.java b/src/java/org/mxchange/jfinancials/validator/user/FinancialsUserIdValidator.java index f43f7d0d..0f32f99e 100644 --- a/src/java/org/mxchange/jfinancials/validator/user/FinancialsUserIdValidator.java +++ b/src/java/org/mxchange/jfinancials/validator/user/FinancialsUserIdValidator.java @@ -22,7 +22,6 @@ import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.convert.ConverterException; import javax.faces.validator.FacesValidator; -import javax.faces.validator.Validator; import javax.faces.validator.ValidatorException; import javax.naming.Context; import javax.naming.InitialContext; @@ -36,7 +35,7 @@ import org.mxchange.jusercore.model.user.UserSessionBeanRemote; * @author Roland Häder */ @FacesValidator ("UserIdValidator") -public class FinancialsUserIdValidator extends BaseNumberValidator implements Validator { +public class FinancialsUserIdValidator extends BaseNumberValidator { /** * Remote bean diff --git a/src/java/org/mxchange/localization/bundle_de_DE.properties b/src/java/org/mxchange/localization/bundle_de_DE.properties index 0a390ec5..58205dad 100644 --- a/src/java/org/mxchange/localization/bundle_de_DE.properties +++ b/src/java/org/mxchange/localization/bundle_de_DE.properties @@ -814,30 +814,25 @@ GUEST_REGISTRATION_PASSWORD_REPEAT_NOT_ENTERED=Bitte wiederholen Sie das eingege PAGE_TITLE_ADMIN_AREA=Administration #@TODO Please fix German umlauts! ADMIN_MENU_BUSINESS_BASIC_DATA_TITLE=Geschaeftliche Kontakte +LINK_ADMIN_LIST_BUSINESS_BASIC_DATA=Stammdaten auflisten +LINK_ADMIN_LIST_BUSINESS_BASIC_DATA_TITLE=Listet Stammdaten auf +LINK_ADMIN_EXPORT_BUSINESS_BASIC_DATA=Stammdaten exportieren +LINK_ADMIN_EXPORT_BUSINESS_BASIC_DATA_TITLE=Exportiert Stammdaten +PAGE_TITLE_ADMIN_LIST_BUSINESS_BASIC_DATA=Stammdaten auflisten #@TODO Please fix German umlauts! -LINK_ADMIN_LIST_BUSINESS_BASIC_DATA=Geschaeftskontakte auflisten +CONTENT_TITLE_ADMIN_LIST_BUSINESS_BASIC_DATA=Auflisten von Stammdaten #@TODO Please fix German umlauts! -LINK_ADMIN_LIST_BUSINESS_BASIC_DATA_TITLE=Listet geschaeftliche Kontakte auf +ADMIN_BUSINESS_BASIC_DATA_LIST_EMPTY=Es befinden sich keine Stammdaten in der Datenbank. #@TODO Please fix German umlauts! -LINK_ADMIN_EXPORT_BUSINESS_BASIC_DATA=Geschaeftliche Kontakte exportieren -#@TODO Please fix German umlauts! -LINK_ADMIN_EXPORT_BUSINESS_BASIC_DATA_TITLE=Exportiert geschaeftliche Kontakte -#@TODO Please fix German umlauts! -PAGE_TITLE_ADMIN_LIST_BUSINESS_BASIC_DATA=Geschaeftliche Kontakte auflisten -#@TODO Please fix German umlauts! -CONTENT_TITLE_ADMIN_LIST_BUSINESS_BASIC_DATA=Auflisten von geschaeftlichen Kontakt -#@TODO Please fix German umlauts! -ADMIN_BUSINESS_BASIC_DATA_LIST_EMPTY=Es befinden sich keine geschaeftlichen Kontakte in der Datenbank. -#@TODO Please fix German umlauts! -TABLE_SUMMARY_ADMIN_LIST_BUSINESS_BASIC_DATA=Tabelle listet geschaeftliche Kontakte auf. +TABLE_SUMMARY_ADMIN_LIST_BUSINESS_BASIC_DATA=Tabelle listet Stammdaten auf. ADMIN_BUSINESS_BASIC_DATA_ID=Id-Nummer: #@TODO Please fix German umlauts! -ADMIN_LINK_SHOW_BUSINESS_CONTACT_DATA_TITLE=Details des geschaeftlichen Kontaktes anzeigen. +ADMIN_LINK_SHOW_BUSINESS_CONTACT_DATA_TITLE=Details des Stammdatens anzeigen. ADMIN_BUSINESS_BASIC_DATA_OWNER_ID=Zugew. Benutzer: ADMIN_LINK_SHOW_BUSINESS_BASIC_DATA_OWNER_USER_TITLE=Benutzerprofil des zugewiesenen Benutzers anzeigen. ADMIN_LINK_ASSIGN=Zuweisen #@TODO Please fix German umlauts! -ADMIN_LINK_ASSIGN_BUSINESS_BASIC_DATA_OWNER_USER_TITLE=Geschaeftlichen Kontakt einen Benutzeraccount zuweisen. +ADMIN_LINK_ASSIGN_BUSINESS_BASIC_DATA_OWNER_USER_TITLE=Stammdaten einen Benutzeraccount zuweisen. ADMIN_BUSINESS_BASIC_DATA_COMPANY_NAME=Firmenname: ADMIN_BUSINESS_BASIC_DATA_CONTACT_PERSON=Ansprechpartner: ADMIN_LINK_SHOW_BUSINESS_BASIC_DATA_CONTACT_PERSON_TITLE=Zeigt einen Mitarbeiter an, der als Ansprechpartner eingetragen ist. @@ -871,7 +866,7 @@ BUTTON_CHANGE_LOCALE_TITLE=Aendern Sie hier in der aktuellen Sitzung die angezei ERROR_PARAMETER_LABEL_MESSAGE_NOT_SET=Fehler: Parameter "labelMessage" nicht gesetzt. #@TODO Please fix German umlauts! ADMIN_SELECT_BUSINESS_DATA_COMPANY_FOUNDER=Firmengruender auswaehlen: -ADMIN_BUSINESS_DATA_UPLOAD_LOGO_UNFINISHED=Das Hochladen des Firmenlogos ist noch nicht fertig gestellt. +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: diff --git a/src/java/org/mxchange/localization/bundle_en_US.properties b/src/java/org/mxchange/localization/bundle_en_US.properties index 024324fc..3863838b 100644 --- a/src/java/org/mxchange/localization/bundle_en_US.properties +++ b/src/java/org/mxchange/localization/bundle_en_US.properties @@ -795,14 +795,14 @@ GUEST_REGISTRATION_PASSWORD_NOT_ENTERED=Please enter a password. This must match GUEST_REGISTRATION_PASSWORD_REPEAT_NOT_ENTERED=Please repeat the entered password. This done to confirm the password. PAGE_TITLE_ADMIN_AREA=Administration ADMIN_MENU_BUSINESS_BASIC_DATA_TITLE=Business contacts -LINK_ADMIN_LIST_BUSINESS_BASIC_DATA=List business contacts -LINK_ADMIN_LIST_BUSINESS_BASIC_DATA_TITLE=Lists business contacts -LINK_ADMIN_EXPORT_BUSINESS_BASIC_DATA=Export business contacts -LINK_ADMIN_EXPORT_BUSINESS_BASIC_DATA_TITLE=Exports business contacts -PAGE_TITLE_ADMIN_LIST_BUSINESS_BASIC_DATA=List business contacts -CONTENT_TITLE_ADMIN_LIST_BUSINESS_BASIC_DATA=Lists business contacts -ADMIN_BUSINESS_BASIC_DATA_LIST_EMPTY=There are currently no business contacts in database. -TABLE_SUMMARY_ADMIN_LIST_BUSINESS_BASIC_DATA=This table lists business contacts. +LINK_ADMIN_LIST_BUSINESS_BASIC_DATA=List basic company data +LINK_ADMIN_LIST_BUSINESS_BASIC_DATA_TITLE=Lists basic company data +LINK_ADMIN_EXPORT_BUSINESS_BASIC_DATA=Export basic company data +LINK_ADMIN_EXPORT_BUSINESS_BASIC_DATA_TITLE=Exports basic company data +PAGE_TITLE_ADMIN_LIST_BUSINESS_BASIC_DATA=List basic company data +CONTENT_TITLE_ADMIN_LIST_BUSINESS_BASIC_DATA=Lists basic company data +ADMIN_BUSINESS_BASIC_DATA_LIST_EMPTY=There are currently no basic company data in database. +TABLE_SUMMARY_ADMIN_LIST_BUSINESS_BASIC_DATA=This table lists basic company data. ADMIN_BUSINESS_BASIC_DATA_ID=Id Number: ADMIN_LINK_SHOW_BUSINESS_CONTACT_DATA_TITLE=Show details of this business contact. ADMIN_BUSINESS_BASIC_DATA_OWNER_ID=Assigned user: @@ -835,7 +835,7 @@ BUTTON_CHANGE_LOCALE=Change BUTTON_CHANGE_LOCALE_TITLE=Change here in your current session the used language for text output. ERROR_PARAMETER_LABEL_MESSAGE_NOT_SET=Error: Parameter "labelMessage" not set. ADMIN_SELECT_BUSINESS_DATA_COMPANY_FOUNDER=Choose company founder: -ADMIN_BUSINESS_DATA_UPLOAD_LOGO_UNFINISHED=The upload of the company logo is currently unfinished. +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: diff --git a/web/WEB-INF/resources/tags/admin/columns/admin_contact_data_columns.tpl b/web/WEB-INF/resources/tags/admin/columns/admin_contact_data_columns.tpl index 1bfcb98a..963e838f 100644 --- a/web/WEB-INF/resources/tags/admin/columns/admin_contact_data_columns.tpl +++ b/web/WEB-INF/resources/tags/admin/columns/admin_contact_data_columns.tpl @@ -7,112 +7,112 @@ xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/web/WEB-INF/resources/tags/admin/columns/admin_contact_data_columns_mini.tpl b/web/WEB-INF/resources/tags/admin/columns/admin_contact_data_columns_mini.tpl index f510a317..10ced2d5 100644 --- a/web/WEB-INF/resources/tags/admin/columns/admin_contact_data_columns_mini.tpl +++ b/web/WEB-INF/resources/tags/admin/columns/admin_contact_data_columns_mini.tpl @@ -7,33 +7,33 @@ xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> - + - + - + - + - + - + - + - + - + - + diff --git a/web/WEB-INF/resources/tags/messages/message_box.tpl b/web/WEB-INF/resources/tags/messages/message_box.tpl index 6eb85ec1..95b819ab 100644 --- a/web/WEB-INF/resources/tags/messages/message_box.tpl +++ b/web/WEB-INF/resources/tags/messages/message_box.tpl @@ -5,28 +5,28 @@ xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:f="http://xmlns.jcp.org/jsf/core"> - -

+ +
- +
- +
- +
- +
-
- +
+
diff --git a/web/WEB-INF/resources/tags/messages/message_box_mini.tpl b/web/WEB-INF/resources/tags/messages/message_box_mini.tpl deleted file mode 100644 index 893620e2..00000000 --- a/web/WEB-INF/resources/tags/messages/message_box_mini.tpl +++ /dev/null @@ -1,33 +0,0 @@ - - - - -
- -
- - - -
- -
-
- - -
- -
-
-
- - -
- -
-
-
-
diff --git a/web/WEB-INF/resources/tags/table_rows/mobile_selection_table_row.tpl b/web/WEB-INF/resources/tags/table_rows/mobile_selection_table_row.tpl index 3b0981e0..f4cbe83a 100644 --- a/web/WEB-INF/resources/tags/table_rows/mobile_selection_table_row.tpl +++ b/web/WEB-INF/resources/tags/table_rows/mobile_selection_table_row.tpl @@ -6,20 +6,20 @@ xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> - + - + - -
+ +
-
+
- + @@ -30,7 +30,7 @@ - + diff --git a/web/WEB-INF/resources/tags/table_rows/user_personal_title_table_row.tpl b/web/WEB-INF/resources/tags/table_rows/user_personal_title_table_row.tpl index 3609e807..c28166e7 100644 --- a/web/WEB-INF/resources/tags/table_rows/user_personal_title_table_row.tpl +++ b/web/WEB-INF/resources/tags/table_rows/user_personal_title_table_row.tpl @@ -6,24 +6,24 @@ xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> - + - -
+ +
-
+
- +
- + diff --git a/web/WEB-INF/resources/tags/table_rows/user_profile_mode_table_row.tpl b/web/WEB-INF/resources/tags/table_rows/user_profile_mode_table_row.tpl index c94a6087..086ad4fe 100644 --- a/web/WEB-INF/resources/tags/table_rows/user_profile_mode_table_row.tpl +++ b/web/WEB-INF/resources/tags/table_rows/user_profile_mode_table_row.tpl @@ -6,17 +6,17 @@ xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> - + - + - -
+ +
-
+
@@ -24,7 +24,7 @@ - + diff --git a/web/WEB-INF/templates/admin/admin_footer.tpl b/web/WEB-INF/templates/admin/admin_footer.tpl index b569c98d..eeeb4add 100644 --- a/web/WEB-INF/templates/admin/admin_footer.tpl +++ b/web/WEB-INF/templates/admin/admin_footer.tpl @@ -5,7 +5,7 @@ xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> diff --git a/web/WEB-INF/templates/admin/admin_menu.tpl b/web/WEB-INF/templates/admin/admin_menu.tpl index 92bf06fb..d4e83b00 100644 --- a/web/WEB-INF/templates/admin/admin_menu.tpl +++ b/web/WEB-INF/templates/admin/admin_menu.tpl @@ -7,7 +7,7 @@