From: Roland Häder Date: Fri, 20 May 2016 10:32:12 +0000 (+0200) Subject: Continued with data export with PrimeFaces: X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=cee84cd0360fa3c82382d440902232f723b7d205;p=jjobs-war.git Continued with data export with PrimeFaces: - added prime faces 5.3 to project - added admin_contact_export.xhtml with navigation rule to export contact data (currently only CSV but e.g. Excel is easy to add) - added missing contact i18n and export string - added controller methods generatePhoneNumber() and generateCellphoneNumber(), if e.g. ui:fragment is used, an object id instead of the phone numbers is shown. Maybe a bug in PrimeFaces or wrong usage of ui:fragment? Sometimes a POJO property like contactFaxNumber can be null. Then this needs to be taken care of. Signed-off-by: Roland Häder --- diff --git a/lib/cdi-api.jar b/lib/cdi-api.jar new file mode 100644 index 00000000..1fa239e3 Binary files /dev/null and b/lib/cdi-api.jar differ diff --git a/lib/gf-client.jar b/lib/gf-client.jar new file mode 100644 index 00000000..2f369f3b Binary files /dev/null and b/lib/gf-client.jar differ diff --git a/lib/nblibraries.properties b/lib/nblibraries.properties index 6d0afb59..15ca34e3 100644 --- a/lib/nblibraries.properties +++ b/lib/nblibraries.properties @@ -2,3 +2,8 @@ libs.CopyLibs.classpath=\ ${base}/CopyLibs/org-netbeans-modules-java-j2seproject-copylibstask.jar libs.CopyLibs.displayName=CopyLibs Task libs.CopyLibs.prop-version=2.0 +libs.primefaces.classpath=\ + ${base}/primefaces/primefaces-5.3.jar +libs.primefaces.displayName=PrimeFaces 5.3 +libs.primefaces.prop-maven-dependencies=\n org.primefaces:primefaces:5.3:jar\n +libs.primefaces.prop-maven-repositories=default:http://repository.primefaces.org/ diff --git a/lib/primefaces/primefaces-5.3.jar b/lib/primefaces/primefaces-5.3.jar new file mode 100644 index 00000000..6865631f Binary files /dev/null and b/lib/primefaces/primefaces-5.3.jar differ diff --git a/nbproject/build-impl.xml b/nbproject/build-impl.xml index 9a446c29..60f4db37 100644 --- a/nbproject/build-impl.xml +++ b/nbproject/build-impl.xml @@ -1036,41 +1036,10 @@ exists or setup the property manually. For example like this: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/nbproject/faces-config.NavData b/nbproject/faces-config.NavData index d26c66c9..0da39fd7 100644 --- a/nbproject/faces-config.NavData +++ b/nbproject/faces-config.NavData @@ -2,66 +2,67 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/nbproject/genfiles.properties b/nbproject/genfiles.properties index 2c4c81f9..ed58d6bc 100644 --- a/nbproject/genfiles.properties +++ b/nbproject/genfiles.properties @@ -1,8 +1,8 @@ -build.xml.data.CRC32=ce3bfa11 +build.xml.data.CRC32=e1332a0e build.xml.script.CRC32=fae72669 build.xml.stylesheet.CRC32=651128d4@1.75.1.1 # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. -nbproject/build-impl.xml.data.CRC32=ce3bfa11 -nbproject/build-impl.xml.script.CRC32=ce4e9198 +nbproject/build-impl.xml.data.CRC32=e1332a0e +nbproject/build-impl.xml.script.CRC32=1856f498 nbproject/build-impl.xml.stylesheet.CRC32=99ea4b56@1.75.1.1 diff --git a/nbproject/project.properties b/nbproject/project.properties index 6d1acc88..e846c514 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -35,6 +35,8 @@ dist.javadoc.dir=${dist.dir}/javadoc dist.war=${dist.dir}/${war.name} endorsed.classpath= excludes= +file.reference.cdi-api.jar=lib/cdi-api.jar +file.reference.gf-client.jar=lib/gf-client.jar file.reference.jaddressbook-core.jar=lib/jaddressbook-core.jar file.reference.jaddressbook-lib.jar=lib/jaddressbook-lib.jar file.reference.jcontacts-business-core.jar=lib/jcontacts-business-core.jar @@ -77,7 +79,10 @@ javac.classpath=\ ${file.reference.jaddressbook-lib.jar}:\ ${file.reference.jjobs-core.jar}:\ ${reference.jjobs-lib.jar}:\ - ${reference.jjobs-mailer.jar} + ${reference.jjobs-mailer.jar}:\ + ${file.reference.cdi-api.jar}:\ + ${file.reference.gf-client.jar}:\ + ${libs.primefaces.classpath} # Space-separated list of extra javac options javac.compilerargs=-Xlint:unchecked -Xlint:deprecation javac.debug=true diff --git a/nbproject/project.xml b/nbproject/project.xml index 10781dfb..e71f0b0e 100644 --- a/nbproject/project.xml +++ b/nbproject/project.xml @@ -8,63 +8,57 @@ ${file.reference.jcontacts-core.jar} - WEB-INF/lib ${file.reference.jcontacts-lib.jar} - WEB-INF/lib ${file.reference.jcore-logger-lib.jar} - WEB-INF/lib ${file.reference.jcoreee.jar} - WEB-INF/lib ${file.reference.jcountry-core.jar} - WEB-INF/lib ${file.reference.jcountry-lib.jar} - WEB-INF/lib ${file.reference.jphone-core.jar} - WEB-INF/lib ${file.reference.jphone-lib.jar} - WEB-INF/lib ${file.reference.juser-core.jar} - WEB-INF/lib ${file.reference.juser-lib.jar} - WEB-INF/lib ${file.reference.jaddressbook-core.jar} - WEB-INF/lib ${file.reference.jaddressbook-lib.jar} - WEB-INF/lib ${file.reference.jjobs-core.jar} - WEB-INF/lib ${reference.jjobs-lib.jar} - WEB-INF/lib ${reference.jjobs-mailer.jar} - WEB-INF/lib + + + ${file.reference.cdi-api.jar} + + + ${file.reference.gf-client.jar} + + + ${libs.primefaces.classpath} diff --git a/src/java/org/mxchange/jjobs/beans/contact/JobsAdminContactWebRequestBean.java b/src/java/org/mxchange/jjobs/beans/contact/JobsAdminContactWebRequestBean.java index 2dcca6da..683b06dc 100644 --- a/src/java/org/mxchange/jjobs/beans/contact/JobsAdminContactWebRequestBean.java +++ b/src/java/org/mxchange/jjobs/beans/contact/JobsAdminContactWebRequestBean.java @@ -41,6 +41,7 @@ import org.mxchange.jcontacts.events.contact.update.AdminUpdatedContactEvent; import org.mxchange.jcontacts.exceptions.ContactAlreadyAddedException; import org.mxchange.jcountry.data.Country; import org.mxchange.jjobs.beans.BaseJobsController; +import org.mxchange.jphone.phonenumbers.DialableNumber; import org.mxchange.jphone.phonenumbers.cellphone.CellphoneNumber; import org.mxchange.jphone.phonenumbers.cellphone.DialableCellphoneNumber; import org.mxchange.jphone.phonenumbers.fax.DialableFaxNumber; @@ -410,6 +411,46 @@ public class JobsAdminContactWebRequestBean extends BaseJobsController implement return "admin_list_contact"; //NOI18N } + @Override + public String generateCellphoneNumber (final DialableCellphoneNumber cellphoneNumber) { + // Is it null? + if (null == cellphoneNumber) { + // Return null + return null; + } + + // Get all data + String number = String.format( + "%s%d%d", //NOI18N + cellphoneNumber.getCellphoneProvider().getProviderCountry().getCountryExternalDialPrefix(), + cellphoneNumber.getCellphoneProvider().getProviderDialPrefix(), + cellphoneNumber.getPhoneNumber() + ); + + // Return it + return number; + } + + @Override + public String generatePhoneNumber (final DialableNumber phoneNumber) { + // Is it null? + if (null == phoneNumber) { + // Return null + return null; + } + + // Generate it + String number = String.format( + "%s%d%d", //NOI18N + phoneNumber.getPhoneCountry().getCountryExternalDialPrefix(), + phoneNumber.getPhoneAreaCode(), + phoneNumber.getPhoneNumber() + ); + + // Return it + return number; + } + @Override @SuppressWarnings ("ReturnOfDateField") public Date getBirthday () { diff --git a/src/java/org/mxchange/jjobs/beans/contact/JobsAdminContactWebRequestController.java b/src/java/org/mxchange/jjobs/beans/contact/JobsAdminContactWebRequestController.java index eb7e0858..5959a700 100644 --- a/src/java/org/mxchange/jjobs/beans/contact/JobsAdminContactWebRequestController.java +++ b/src/java/org/mxchange/jjobs/beans/contact/JobsAdminContactWebRequestController.java @@ -21,6 +21,8 @@ import java.util.Date; import org.mxchange.jcontacts.contact.Contact; import org.mxchange.jcontacts.contact.gender.Gender; import org.mxchange.jcountry.data.Country; +import org.mxchange.jphone.phonenumbers.DialableNumber; +import org.mxchange.jphone.phonenumbers.cellphone.DialableCellphoneNumber; import org.mxchange.jphone.phonenumbers.mobileprovider.MobileProvider; /** @@ -381,4 +383,23 @@ public interface JobsAdminContactWebRequestController extends Serializable { */ void setZipCode (final Integer zipCode); + /** + * Returns a text respresentation of given phone number or null if not set. + *

+ * @param phoneNumber Phone number + *

+ * @return Text respresentation or null + */ + String generatePhoneNumber (final DialableNumber phoneNumber); + + /** + * Returns a text representation of given cellphone number or null if not + * set. + *

+ * @param cellphoneNumber Cellphone number + *

+ * @return Text respresentation or null + */ + String generateCellphoneNumber (final DialableCellphoneNumber cellphoneNumber); + } diff --git a/src/java/org/mxchange/localization/bundle_de_DE.properties b/src/java/org/mxchange/localization/bundle_de_DE.properties index 097e7734..78e601d2 100644 --- a/src/java/org/mxchange/localization/bundle_de_DE.properties +++ b/src/java/org/mxchange/localization/bundle_de_DE.properties @@ -506,3 +506,14 @@ BUTTON_GUEST_CONFIRM_USER_ACCOUNT=Account best\u00e4tigen ADMIN_MENU_CONTACT_TITLE=Manage contact data LINK_ADMIN_LIST_CONTACT=Kontaktdaten auflisten LINK_ADMIN_LIST_CONTACT_TITLE=Listet alle Kontaktdaten auf, egal wo her sie angelegt wurden. +ADMIN_CONTACT_COUNTRY_CODE=L\u00e4ndercode: +ADMIN_CONTACT_CELLPHONE_NUMBER=Handynummer: +ADMIN_CONTACT_LANDLINE_NUMBER=Telefonnummer: +ADMIN_CONTACT_FAX_NUMBER=Faxnummer: +PAGE_TITLE_ADMIN_EXPORT_CONTACT=Kontaktdaten exportieren +CONTENT_TITLE_ADMIN_EXPORT_CONTACT=Kontaktdaten exportieren: +ADMIN_EXPORT_CONTACTS_TITLE=Datenexport starten +ADMIN_EXPORT_CONTACTS_TIMEOUT_WARNING=Bei sehr gro\u00dfen Datenmengen kann es eventuell zu Zeit\u00fcberschreitungen kommen. Daher sollten Sie besser seitenweise exportieren. +BUTTON_ADMIN_EXPORT_CONTACTS_CSV=Alle Daten als CSV-Datei exportieren +LINK_ADMIN_EXPORT_CONTACT=Daten exportieren +LINK_ADMIN_EXPORT_CONTACT_TITLE=Kontaktdaten exportieren diff --git a/src/java/org/mxchange/localization/bundle_en_US.properties b/src/java/org/mxchange/localization/bundle_en_US.properties index 45308654..c075cd77 100644 --- a/src/java/org/mxchange/localization/bundle_en_US.properties +++ b/src/java/org/mxchange/localization/bundle_en_US.properties @@ -506,3 +506,15 @@ BUTTON_GUEST_CONFIRM_USER_ACCOUNT=Confirm account ADMIN_MENU_CONTACT_TITLE=Manage contact data LINK_ADMIN_LIST_CONTACT=List contact data LINK_ADMIN_LIST_CONTACT_TITLE=Lists all contact data regardless where they was created. +ADMIN_CONTACT_COUNTRY_CODE=Country code: +ADMIN_CONTACT_CELLPHONE_NUMBER=Cellphone number: +ADMIN_CONTACT_LANDLINE_NUMBER=Phone number: +ADMIN_CONTACT_FAX_NUMBER=Fax number: +PAGE_TITLE_ADMIN_EXPORT_CONTACT=Export contact data +CONTENT_TITLE_ADMIN_EXPORT_CONTACT=Export contact data: +ADMIN_EXPORT_CONTACTS_TITLE=Start data export +#Bei sehr gro\u00dfen Datenmengen kann es eventuell zu Zeit\u00fcberschreitungen kommen. Daher sollten Sie besser seitenweise exportieren. +ADMIN_EXPORT_CONTACTS_TIMEOUT_WARNING=Big data amount may lead to timeouts. You should then try to export each page separately. +BUTTON_ADMIN_EXPORT_CONTACTS_CSV=Export all data as CSV file +LINK_ADMIN_EXPORT_CONTACT=Export data +LINK_ADMIN_EXPORT_CONTACT_TITLE=Export contact data diff --git a/web/WEB-INF/faces-config.xml b/web/WEB-INF/faces-config.xml index 67efe72b..130ec8c4 100644 --- a/web/WEB-INF/faces-config.xml +++ b/web/WEB-INF/faces-config.xml @@ -79,6 +79,10 @@ admin_list_contact /admin/contact/admin_contact_list.xhtml + + admin_export_contact + /admin/contact/admin_contact_export.xhtml + admin_list_user /admin/user/admin_user_list.xhtml diff --git a/web/WEB-INF/templates/admin/admin_menu.tpl b/web/WEB-INF/templates/admin/admin_menu.tpl index d9baac8c..c9de554d 100644 --- a/web/WEB-INF/templates/admin/admin_menu.tpl +++ b/web/WEB-INF/templates/admin/admin_menu.tpl @@ -28,6 +28,7 @@

  • +