]> git.mxchange.org Git - jjobs-war.git/commitdiff
Continued with data export with PrimeFaces:
authorRoland Häder <roland@mxchange.org>
Fri, 20 May 2016 10:32:12 +0000 (12:32 +0200)
committerRoland Haeder <roland@mxchange.org>
Thu, 26 May 2016 15:17:02 +0000 (17:17 +0200)
- 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 <roland@mxchange.org>
16 files changed:
lib/cdi-api.jar [new file with mode: 0644]
lib/gf-client.jar [new file with mode: 0644]
lib/nblibraries.properties
lib/primefaces/primefaces-5.3.jar [new file with mode: 0644]
nbproject/build-impl.xml
nbproject/faces-config.NavData
nbproject/genfiles.properties
nbproject/project.properties
nbproject/project.xml
src/java/org/mxchange/jjobs/beans/contact/JobsAdminContactWebRequestBean.java
src/java/org/mxchange/jjobs/beans/contact/JobsAdminContactWebRequestController.java
src/java/org/mxchange/localization/bundle_de_DE.properties
src/java/org/mxchange/localization/bundle_en_US.properties
web/WEB-INF/faces-config.xml
web/WEB-INF/templates/admin/admin_menu.tpl
web/admin/contact/admin_contact_export.xhtml [new file with mode: 0644]

diff --git a/lib/cdi-api.jar b/lib/cdi-api.jar
new file mode 100644 (file)
index 0000000..1fa239e
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 (file)
index 0000000..2f369f3
Binary files /dev/null and b/lib/gf-client.jar differ
index 6d0afb59d64978f1c42b37eda93de4d6acaa674c..15ca34e36d020a5631209c7c8ec9d0486820c6cd 100644 (file)
@@ -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 (file)
index 0000000..6865631
Binary files /dev/null and b/lib/primefaces/primefaces-5.3.jar differ
index 9a446c290d1c3b67a19ee4c5a784b31659baf0ce..60f4db37c80d5f39f4aa4a96855ffa7dca6ee43a 100644 (file)
@@ -1036,41 +1036,10 @@ exists or setup the property manually. For example like this:
     </target>
     <target depends="init,compile,compile-jsps,-pre-dist,-do-dist-with-manifest,-do-dist-without-manifest" name="do-dist"/>
     <target depends="init" if="dist.ear.dir" name="library-inclusion-in-manifest">
-        <copyfiles files="${file.reference.jcontacts-core.jar}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
-        <copyfiles files="${file.reference.jcontacts-lib.jar}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
-        <copyfiles files="${file.reference.jcore-logger-lib.jar}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
-        <copyfiles files="${file.reference.jcoreee.jar}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
-        <copyfiles files="${file.reference.jcountry-core.jar}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
-        <copyfiles files="${file.reference.jcountry-lib.jar}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
-        <copyfiles files="${file.reference.jphone-core.jar}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
-        <copyfiles files="${file.reference.jphone-lib.jar}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
-        <copyfiles files="${file.reference.juser-core.jar}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
-        <copyfiles files="${file.reference.juser-lib.jar}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
-        <copyfiles files="${file.reference.jaddressbook-core.jar}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
-        <copyfiles files="${file.reference.jaddressbook-lib.jar}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
-        <copyfiles files="${file.reference.jjobs-core.jar}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
-        <copyfiles files="${reference.jjobs-lib.jar}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
-        <copyfiles files="${reference.jjobs-mailer.jar}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
         <mkdir dir="${build.web.dir}/META-INF"/>
         <manifest file="${build.web.dir}/META-INF/MANIFEST.MF" mode="update"/>
     </target>
-    <target depends="init" name="library-inclusion-in-archive" unless="dist.ear.dir">
-        <copyfiles files="${file.reference.jcontacts-core.jar}" todir="${build.web.dir}/WEB-INF/lib"/>
-        <copyfiles files="${file.reference.jcontacts-lib.jar}" todir="${build.web.dir}/WEB-INF/lib"/>
-        <copyfiles files="${file.reference.jcore-logger-lib.jar}" todir="${build.web.dir}/WEB-INF/lib"/>
-        <copyfiles files="${file.reference.jcoreee.jar}" todir="${build.web.dir}/WEB-INF/lib"/>
-        <copyfiles files="${file.reference.jcountry-core.jar}" todir="${build.web.dir}/WEB-INF/lib"/>
-        <copyfiles files="${file.reference.jcountry-lib.jar}" todir="${build.web.dir}/WEB-INF/lib"/>
-        <copyfiles files="${file.reference.jphone-core.jar}" todir="${build.web.dir}/WEB-INF/lib"/>
-        <copyfiles files="${file.reference.jphone-lib.jar}" todir="${build.web.dir}/WEB-INF/lib"/>
-        <copyfiles files="${file.reference.juser-core.jar}" todir="${build.web.dir}/WEB-INF/lib"/>
-        <copyfiles files="${file.reference.juser-lib.jar}" todir="${build.web.dir}/WEB-INF/lib"/>
-        <copyfiles files="${file.reference.jaddressbook-core.jar}" todir="${build.web.dir}/WEB-INF/lib"/>
-        <copyfiles files="${file.reference.jaddressbook-lib.jar}" todir="${build.web.dir}/WEB-INF/lib"/>
-        <copyfiles files="${file.reference.jjobs-core.jar}" todir="${build.web.dir}/WEB-INF/lib"/>
-        <copyfiles files="${reference.jjobs-lib.jar}" todir="${build.web.dir}/WEB-INF/lib"/>
-        <copyfiles files="${reference.jjobs-mailer.jar}" todir="${build.web.dir}/WEB-INF/lib"/>
-    </target>
+    <target depends="init" name="library-inclusion-in-archive" unless="dist.ear.dir"/>
     <target depends="init" if="dist.ear.dir" name="-clean-webinf-lib">
         <delete dir="${build.web.dir}/WEB-INF/lib"/>
     </target>
index d26c66c95dc9e0dc0e4caace23f456d7df89daec..0da39fd7aee1ed3af93661a495081282489f5175 100644 (file)
@@ -2,66 +2,67 @@
 <Scene Scope="Project" version="2">
     <Scope Scope="Faces Configuration Only"/>
     <Scope Scope="Project">
-        <Node id="admin/cellphone/admin_contact_cellphone_list.xhtml" x="400" y="1200" zoom="true"/>
-        <Node id="admin/contact/admin_contact_show.xhtml" x="400" y="150" zoom="true"/>
-        <Node id="privacy.xhtml" x="900" y="750" zoom="true"/>
-        <Node id="admin/mobile_provider/admin_mobile_provider_show.xhtml" x="150" y="300" zoom="true"/>
-        <Node id="guest/user/show_addressbook.xhtml" x="900" y="600" zoom="true"/>
-        <Node id="admin/user/admin_user_show.xhtml" x="1650" y="750" zoom="true"/>
-        <Node id="admin/index.xhtml" x="2150" y="150" zoom="true"/>
-        <Node id="user/login_own_addressbooks.xhtml" x="1650" y="300" zoom="true"/>
-        <Node id="user/login_user_data_saved.xhtml" x="650" y="300" zoom="true"/>
-        <Node id="admin/admin_logout.xhtml" x="150" y="750" zoom="true"/>
-        <Node id="user/login_data_saved.xhtml" x="400" y="600" zoom="true"/>
-        <Node id="admin/user/admin_user_unlock.xhtml" x="400" y="1350" zoom="true"/>
-        <Node id="index.xhtml" x="150" y="600" zoom="true"/>
-        <Node id="guest/user/user_list.xhtml" x="1150" y="750" zoom="true"/>
-        <Node id="user/login_edit_user_data.xhtml" x="1150" y="150" zoom="true"/>
-        <Node id="*" x="400" y="450" zoom="true"/>
-        <Node id="admin/admin_category_delete.xhtml" x="900" y="450" zoom="true"/>
-        <Node id="admin/cellphone/admin_contact_cellphone_edit.xhtml" x="900" y="150" zoom="true"/>
-        <Node id="user/login_index.xhtml" x="1150" y="300" zoom="true"/>
-        <Node id="guest/user/lost_passwd.xhtml" x="2150" y="300" zoom="true"/>
-        <Node id="guest/user/register_done.xhtml" x="1400" y="150" zoom="true"/>
-        <Node id="guest/user/show_addressbook_entries.xhtml" x="2150" y="450" zoom="true"/>
-        <Node id="user/login.xhtml" x="400" y="900" zoom="true"/>
-        <Node id="admin/cellphone/admin_contact_cellphone_unlink.xhtml" x="150" y="900" zoom="true"/>
-        <Node id="admin/country/admin_country_list.xhtml" x="650" y="750" zoom="true"/>
-        <Node id="login/login_edit_user_data.xhtml" x="1400" y="600" zoom="true"/>
-        <Node id="guest/user/login_error.xhtml" x="1150" y="600" zoom="true"/>
-        <Node id="admin/mobile_provider/admin_mobile_provider_delete.xhtml" x="150" y="1500" zoom="true"/>
-        <Node id="user/login_change_password.xhtml" x="150" y="1200" zoom="true"/>
-        <Node id="admin/mobile_provider/admin_mobile_provider_list.xhtml" x="650" y="900" zoom="true"/>
-        <Node id="guest/user/user_profile.xhtml" x="1400" y="300" zoom="true"/>
-        <Node id="guest/user/confirm_account.xhtml" x="1400" y="450" zoom="true"/>
-        <Node id="admin/cellphone/admin_contact_cellphone_delete.xhtml" x="650" y="150" zoom="true"/>
-        <Node id="admin/user/admin_user_delete.xhtml" x="1900" y="300" zoom="true"/>
-        <Node id="exception.xhtml" x="1900" y="600" zoom="true"/>
-        <Node id="login/login_index.xhtml" x="150" y="1050" zoom="true"/>
-        <Node id="guest/user/register_page2.xhtml" x="150" y="450" zoom="true"/>
-        <Node id="admin/user/admin_user_edit.xhtml" x="900" y="900" zoom="true"/>
-        <Node id="terms.xhtml" x="1650" y="450" zoom="true"/>
-        <Node id="admin/contact/admin_contact_list.xhtml" x="150" y="150" zoom="true"/>
-        <Node id="admin/contact/admin_contact_edit.xhtml" x="2400" y="300" zoom="true"/>
-        <Node id="admin/admin_user_add.xhtml" x="1900" y="150" zoom="true"/>
-        <Node id="admin/user/admin_user_list.xhtml" x="900" y="1050" zoom="true"/>
-        <Node id="admin/country/admin_country_delete.xhtml" x="150" y="1350" zoom="true"/>
-        <Node id="user/login_change_personal_data.xhtml" x="400" y="300" zoom="true"/>
+        <Node id="admin/cellphone/admin_contact_cellphone_list.xhtml" x="400" y="900" zoom="true"/>
+        <Node id="admin/contact/admin_contact_show.xhtml" x="900" y="900" zoom="true"/>
+        <Node id="privacy.xhtml" x="2150" y="300" zoom="true"/>
+        <Node id="admin/mobile_provider/admin_mobile_provider_show.xhtml" x="2150" y="150" zoom="true"/>
+        <Node id="guest/user/show_addressbook.xhtml" x="1900" y="600" zoom="true"/>
+        <Node id="admin/user/admin_user_show.xhtml" x="150" y="150" zoom="true"/>
+        <Node id="admin/index.xhtml" x="1900" y="150" zoom="true"/>
+        <Node id="user/login_own_addressbooks.xhtml" x="900" y="150" zoom="true"/>
+        <Node id="user/login_user_data_saved.xhtml" x="900" y="750" zoom="true"/>
+        <Node id="admin/admin_logout.xhtml" x="650" y="450" zoom="true"/>
+        <Node id="user/login_data_saved.xhtml" x="900" y="450" zoom="true"/>
+        <Node id="admin/user/admin_user_unlock.xhtml" x="1400" y="600" zoom="true"/>
+        <Node id="index.xhtml" x="400" y="150" zoom="true"/>
+        <Node id="guest/user/user_list.xhtml" x="900" y="1050" zoom="true"/>
+        <Node id="user/login_edit_user_data.xhtml" x="400" y="1200" zoom="true"/>
+        <Node id="admin/admin_category_delete.xhtml" x="150" y="300" zoom="true"/>
+        <Node id="*" x="1650" y="600" zoom="true"/>
+        <Node id="user/login_index.xhtml" x="1150" y="600" zoom="true"/>
+        <Node id="admin/cellphone/admin_contact_cellphone_edit.xhtml" x="650" y="900" zoom="true"/>
+        <Node id="guest/user/lost_passwd.xhtml" x="400" y="1350" zoom="true"/>
+        <Node id="guest/user/register_done.xhtml" x="1150" y="900" zoom="true"/>
+        <Node id="guest/user/show_addressbook_entries.xhtml" x="1150" y="300" zoom="true"/>
+        <Node id="user/login.xhtml" x="400" y="450" zoom="true"/>
+        <Node id="admin/cellphone/admin_contact_cellphone_unlink.xhtml" x="650" y="300" zoom="true"/>
+        <Node id="admin/country/admin_country_list.xhtml" x="150" y="1500" zoom="true"/>
+        <Node id="login/login_edit_user_data.xhtml" x="1650" y="750" zoom="true"/>
+        <Node id="guest/user/login_error.xhtml" x="150" y="600" zoom="true"/>
+        <Node id="admin/mobile_provider/admin_mobile_provider_delete.xhtml" x="1400" y="750" zoom="true"/>
+        <Node id="user/login_change_password.xhtml" x="900" y="600" zoom="true"/>
+        <Node id="admin/mobile_provider/admin_mobile_provider_list.xhtml" x="1150" y="750" zoom="true"/>
+        <Node id="admin/contact/admin_contact_export.xhtml" x="2150" y="450" zoom="true"/>
+        <Node id="guest/user/user_profile.xhtml" x="2650" y="150" zoom="true"/>
+        <Node id="guest/user/confirm_account.xhtml" x="150" y="750" zoom="true"/>
+        <Node id="exception.xhtml" x="1650" y="150" zoom="true"/>
+        <Node id="admin/cellphone/admin_contact_cellphone_delete.xhtml" x="150" y="1050" zoom="true"/>
+        <Node id="admin/user/admin_user_delete.xhtml" x="650" y="1050" zoom="true"/>
+        <Node id="login/login_index.xhtml" x="2400" y="150" zoom="true"/>
+        <Node id="admin/user/admin_user_edit.xhtml" x="1150" y="150" zoom="true"/>
+        <Node id="guest/user/register_page2.xhtml" x="1150" y="450" zoom="true"/>
+        <Node id="terms.xhtml" x="150" y="450" zoom="true"/>
+        <Node id="admin/contact/admin_contact_edit.xhtml" x="1400" y="450" zoom="true"/>
+        <Node id="admin/contact/admin_contact_list.xhtml" x="2400" y="300" zoom="true"/>
+        <Node id="admin/admin_user_add.xhtml" x="1900" y="300" zoom="true"/>
+        <Node id="admin/user/admin_user_list.xhtml" x="650" y="1200" zoom="true"/>
+        <Node id="admin/country/admin_country_delete.xhtml" x="400" y="600" zoom="true"/>
+        <Node id="user/login_change_personal_data.xhtml" x="900" y="300" zoom="true"/>
         <Node id="logout.xhtml" x="650" y="600" zoom="true"/>
-        <Node id="admin/country/admin_country_edit.xhtml" x="2650" y="150" zoom="true"/>
-        <Node id="guest/user/resend_link.xhtml" x="650" y="450" zoom="true"/>
-        <Node id="user/login_add_addressbook.xhtml" x="1400" y="750" zoom="true"/>
-        <Node id="user/login_contact_data_saved.xhtml" x="400" y="1050" zoom="true"/>
-        <Node id="admin/contact/admin_contact_delete.xhtml" x="400" y="750" zoom="true"/>
-        <Node id="user/user_profile.xhtml" x="1650" y="600" zoom="true"/>
-        <Node id="imprint.xhtml" x="2400" y="150" zoom="true"/>
-        <Node id="admin/mobile_provider/admin_mobile_provider_edit.xhtml" x="900" y="300" zoom="true"/>
-        <Node id="admin/cellphone/admin_contact_cellphone_show.xhtml" x="1650" y="150" zoom="true"/>
-        <Node id="admin/admin_product_delete.xhtml" x="1150" y="450" zoom="true"/>
-        <Node id="guest/user/login.xhtml" x="1900" y="450" zoom="true"/>
-        <Node id="guest/user/register.xhtml" x="650" y="1050" zoom="true"/>
-        <Node id="user/login_change_email_address.xhtml" x="650" y="1200" zoom="true"/>
-        <Node id="user/login/login_data_saved.xhtml" x="1150" y="900" zoom="true"/>
+        <Node id="admin/country/admin_country_edit.xhtml" x="150" y="1350" zoom="true"/>
+        <Node id="guest/user/resend_link.xhtml" x="650" y="150" zoom="true"/>
+        <Node id="user/login_add_addressbook.xhtml" x="150" y="900" zoom="true"/>
+        <Node id="user/login_contact_data_saved.xhtml" x="1650" y="450" zoom="true"/>
+        <Node id="user/user_profile.xhtml" x="650" y="750" zoom="true"/>
+        <Node id="admin/contact/admin_contact_delete.xhtml" x="1900" y="450" zoom="true"/>
+        <Node id="imprint.xhtml" x="1400" y="300" zoom="true"/>
+        <Node id="admin/mobile_provider/admin_mobile_provider_edit.xhtml" x="400" y="300" zoom="true"/>
+        <Node id="admin/cellphone/admin_contact_cellphone_show.xhtml" x="400" y="1050" zoom="true"/>
+        <Node id="guest/user/login.xhtml" x="150" y="1200" zoom="true"/>
+        <Node id="admin/admin_product_delete.xhtml" x="1400" y="900" zoom="true"/>
+        <Node id="guest/user/register.xhtml" x="1400" y="150" zoom="true"/>
+        <Node id="user/login_change_email_address.xhtml" x="1650" y="300" zoom="true"/>
+        <Node id="user/login/login_data_saved.xhtml" x="400" y="750" zoom="true"/>
     </Scope>
     <Scope Scope="All Faces Configurations"/>
 </Scene>
index 2c4c81f991cac8274ea410f5b1f6ccb4f729402e..ed58d6bc78e1cf18390768451ae0609409145779 100644 (file)
@@ -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
index 6d1acc88dfb718fd113490bbdd00d192a561a44a..e846c514b12a3dd88031582d9fa397734e410c52 100644 (file)
@@ -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
index 10781dfb0889a71ad0a8e0d60a38a81a84b5afab..e71f0b0ece9208e168b0d3da8e22f81b7862f2da 100644 (file)
@@ -8,63 +8,57 @@
             <web-module-libraries>
                 <library dirs="200">
                     <file>${file.reference.jcontacts-core.jar}</file>
-                    <path-in-war>WEB-INF/lib</path-in-war>
                 </library>
                 <library dirs="200">
                     <file>${file.reference.jcontacts-lib.jar}</file>
-                    <path-in-war>WEB-INF/lib</path-in-war>
                 </library>
                 <library dirs="200">
                     <file>${file.reference.jcore-logger-lib.jar}</file>
-                    <path-in-war>WEB-INF/lib</path-in-war>
                 </library>
                 <library dirs="200">
                     <file>${file.reference.jcoreee.jar}</file>
-                    <path-in-war>WEB-INF/lib</path-in-war>
                 </library>
                 <library dirs="200">
                     <file>${file.reference.jcountry-core.jar}</file>
-                    <path-in-war>WEB-INF/lib</path-in-war>
                 </library>
                 <library dirs="200">
                     <file>${file.reference.jcountry-lib.jar}</file>
-                    <path-in-war>WEB-INF/lib</path-in-war>
                 </library>
                 <library dirs="200">
                     <file>${file.reference.jphone-core.jar}</file>
-                    <path-in-war>WEB-INF/lib</path-in-war>
                 </library>
                 <library dirs="200">
                     <file>${file.reference.jphone-lib.jar}</file>
-                    <path-in-war>WEB-INF/lib</path-in-war>
                 </library>
                 <library dirs="200">
                     <file>${file.reference.juser-core.jar}</file>
-                    <path-in-war>WEB-INF/lib</path-in-war>
                 </library>
                 <library dirs="200">
                     <file>${file.reference.juser-lib.jar}</file>
-                    <path-in-war>WEB-INF/lib</path-in-war>
                 </library>
                 <library dirs="200">
                     <file>${file.reference.jaddressbook-core.jar}</file>
-                    <path-in-war>WEB-INF/lib</path-in-war>
                 </library>
                 <library dirs="200">
                     <file>${file.reference.jaddressbook-lib.jar}</file>
-                    <path-in-war>WEB-INF/lib</path-in-war>
                 </library>
                 <library dirs="200">
                     <file>${file.reference.jjobs-core.jar}</file>
-                    <path-in-war>WEB-INF/lib</path-in-war>
                 </library>
                 <library dirs="200">
                     <file>${reference.jjobs-lib.jar}</file>
-                    <path-in-war>WEB-INF/lib</path-in-war>
                 </library>
                 <library dirs="200">
                     <file>${reference.jjobs-mailer.jar}</file>
-                    <path-in-war>WEB-INF/lib</path-in-war>
+                </library>
+                <library dirs="200">
+                    <file>${file.reference.cdi-api.jar}</file>
+                </library>
+                <library dirs="200">
+                    <file>${file.reference.gf-client.jar}</file>
+                </library>
+                <library dirs="200">
+                    <file>${libs.primefaces.classpath}</file>
                 </library>
             </web-module-libraries>
             <web-module-additional-libraries/>
index 2dcca6da55cd17695790a0448d7902621f1c35ff..683b06dcdc7bded354eafdb813538002bceb3039 100644 (file)
@@ -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 () {
index eb7e085895af13a64077509df050dc2bd3cfdc0e..5959a70047928a000691cbbdcc21c01072b9e41b 100644 (file)
@@ -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.
+        * <p>
+        * @param phoneNumber Phone number
+        * <p>
+        * @return Text respresentation or null
+        */
+       String generatePhoneNumber (final DialableNumber phoneNumber);
+
+       /**
+        * Returns a text representation of given cellphone number or null if not
+        * set.
+        * <p>
+        * @param cellphoneNumber Cellphone number
+        * <p>
+        * @return Text respresentation or null
+        */
+       String generateCellphoneNumber (final DialableCellphoneNumber cellphoneNumber);
+
 }
index 097e77341329dcf457b96e7d8f88c145c5c42703..78e601d2b8ada6fee0e96ace4caa062832e46660 100644 (file)
@@ -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
index 45308654220738ef41c5d0b826f0f7a13c0ad840..c075cd777fccce7efad8754eb2aab06140e62ec1 100644 (file)
@@ -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
index 67efe72baa5df5e9784b66470cf66cf8dcf6bbeb..130ec8c4d4b49643b155fda006733af552a84c9f 100644 (file)
                        <from-outcome>admin_list_contact</from-outcome>
                        <to-view-id>/admin/contact/admin_contact_list.xhtml</to-view-id>
                </navigation-case>
+               <navigation-case>
+                       <from-outcome>admin_export_contact</from-outcome>
+                       <to-view-id>/admin/contact/admin_contact_export.xhtml</to-view-id>
+               </navigation-case>
                <navigation-case>
                        <from-outcome>admin_list_user</from-outcome>
                        <to-view-id>/admin/user/admin_user_list.xhtml</to-view-id>
index d9baac8c444ea34b3131c3b7ab7a116c399f4e11..c9de554d5e9dda2df976b66178965a94ac7b2771 100644 (file)
@@ -28,6 +28,7 @@
 
                        <ul>
                                <li><h:link title="#{msg.LINK_ADMIN_LIST_CONTACT_TITLE}" outcome="admin_list_contact" value="#{msg.LINK_ADMIN_LIST_CONTACT}" /></li>
+                               <li><h:link title="#{msg.LINK_ADMIN_EXPORT_CONTACT_TITLE}" outcome="admin_export_contact" value="#{msg.LINK_ADMIN_EXPORT_CONTACT}" /></li>
                        </ul>
 
                        <div class="menu_header">
diff --git a/web/admin/contact/admin_contact_export.xhtml b/web/admin/contact/admin_contact_export.xhtml
new file mode 100644 (file)
index 0000000..91b6c58
--- /dev/null
@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html
+       lang="#{localizationController.language}" xml:lang="#{localizationController.language}"
+       xmlns="http://www.w3.org/1999/xhtml"
+       xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
+       xmlns:h="http://xmlns.jcp.org/jsf/html"
+       xmlns:f="http://xmlns.jcp.org/jsf/core"
+
+       xmlns:p="http://primefaces.org/ui">
+
+       <ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
+               <ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_EXPORT_CONTACT}</ui:define>
+
+               <ui:define name="content_header">
+                       #{msg.CONTENT_TITLE_ADMIN_EXPORT_CONTACT}
+               </ui:define>
+
+               <ui:define name="content">
+                       <h:form id="form_export_contacts">
+                               <p:dataTable id="table_export_contacts" var="contact" value="#{contactController.allContacts()}" tableStyleClass="table_big" paginator="true" rows="10" summary="#{msg.TABLE_SUMMARY_ADMIN_EXPORT_CONTACT}" rendered="#{contactController.hasContacts()}">
+                                       <p:column exportable="false">
+                                               <f:facet name="header">
+                                                       <h:outputText value="#{msg.ADMIN_CONTACT_ID}" />
+                                               </f:facet>
+
+                                               <h:link outcome="admin_show_contact" title="#{msg.ADMIN_LINK_SHOW_CONTACT_TITLE}" value="#{contact.contactId}">
+                                                       <f:param name="contactId" value="#{contact.contactId}" />
+                                               </h:link>
+                                       </p:column>
+
+                                       <p:column>
+                                               <f:facet name="header">
+                                                       <h:outputText value="#{msg.ADMIN_CONTACT_GENDER}" />
+                                               </f:facet>
+
+                                               <h:outputText value="#{msg[contact.contactGender.messageKey]}" />
+                                       </p:column>
+
+                                       <p:column>
+                                               <f:facet name="header">
+                                                       <h:outputText value="#{msg.ADMIN_CONTACT_TITLE}" />
+                                               </f:facet>
+
+                                               <h:outputText value="#{contact.contactTitle}" />
+                                       </p:column>
+
+                                       <p:column>
+                                               <f:facet name="header">
+                                                       <h:outputText value="#{msg.ADMIN_CONTACT_FIRST_NAME}" />
+                                               </f:facet>
+
+                                               <h:outputText value="#{contact.contactFirstName}" />
+                                       </p:column>
+
+                                       <p:column>
+                                               <f:facet name="header">
+                                                       <h:outputText value="#{msg.ADMIN_CONTACT_FAMILY_NAME}" />
+                                               </f:facet>
+
+                                               <h:outputText value="#{contact.contactFamilyName}" />
+                                       </p:column>
+
+                                       <p:column>
+                                               <f:facet name="header">
+                                                       <h:outputText value="#{msg.ADMIN_CONTACT_STREET}" />
+                                               </f:facet>
+
+                                               <h:outputText value="#{contact.contactStreet}" />
+                                       </p:column>
+
+                                       <p:column>
+                                               <f:facet name="header">
+                                                       <h:outputText value="#{msg.ADMIN_CONTACT_HOUSE_NUMBER}" />
+                                               </f:facet>
+
+                                               <h:outputText value="#{contact.contactHouseNumber}" />
+                                       </p:column>
+
+                                       <p:column>
+                                               <f:facet name="header">
+                                                       <h:outputText value="#{msg.ADMIN_CONTACT_COUNTRY_CODE}" />
+                                               </f:facet>
+
+                                               <h:outputText value="#{contact.contactCountry.countryCode}" />
+                                       </p:column>
+
+                                       <p:column>
+                                               <f:facet name="header">
+                                                       <h:outputText value="#{msg.ADMIN_CONTACT_ZIP_CODE}" />
+                                               </f:facet>
+
+                                               <h:outputText value="#{contact.contactZipCode}" />
+                                       </p:column>
+
+                                       <p:column>
+                                               <f:facet name="header">
+                                                       <h:outputText value="#{msg.ADMIN_CONTACT_CITY}" />
+                                               </f:facet>
+
+                                               <h:outputText value="#{contact.contactCity}" />
+                                       </p:column>
+
+                                       <p:column>
+                                               <f:facet name="header">
+                                                       <h:outputText value="#{msg.ADMIN_CONTACT_EMAIL_ADDRESS}" />
+                                               </f:facet>
+
+                                               <h:outputText value="#{contact.contactEmailAddress}" />
+                                       </p:column>
+
+                                       <p:column>
+                                               <f:facet name="header">
+                                                       <h:outputText value="#{msg.ADMIN_CONTACT_CELLPHONE_NUMBER}" />
+                                               </f:facet>
+
+                                               <h:outputText value="#{adminContactController.generateCellphoneNumber(contact.contactCellphoneNumber)}" />
+                                       </p:column>
+
+                                       <p:column>
+                                               <f:facet name="header">
+                                                       <h:outputText value="#{msg.ADMIN_CONTACT_LANDLINE_NUMBER}" />
+                                               </f:facet>
+
+                                               <h:outputText value="#{adminContactController.generatePhoneNumber(contact.contactLandLineNumber)}" />
+                                       </p:column>
+
+                                       <p:column>
+                                               <f:facet name="header">
+                                                       <h:outputText value="#{msg.ADMIN_CONTACT_FAX_NUMBER}" />
+                                               </f:facet>
+
+                                               <h:outputText value="#{adminContactController.generatePhoneNumber(contact.contactFaxNumber)}" />
+                                       </p:column>
+
+                                       <p:column>
+                                               <f:facet name="header">
+                                                       <h:outputText value="#{msg.ADMIN_CONTACT_CREATED}" />
+                                               </f:facet>
+
+                                               <h:outputText id="contactCreated" value="#{contact.contactCreated.time}">
+                                                       <f:convertDateTime for="contactCreated" type="both" timeStyle="short" dateStyle="short" />
+                                               </h:outputText>
+                                       </p:column>
+                               </p:dataTable>
+
+                               <div class="table_medium">
+                                       <div class="table_header">
+                                               #{msg.ADMIN_EXPORT_CONTACTS_TITLE}
+                                       </div>
+
+                                       <div class="para">
+                                               <h:outputText value="#{msg.ADMIN_EXPORT_CONTACTS_TIMEOUT_WARNING}" />
+                                       </div>
+
+                                       <div class="table_footer">
+                                               <h:commandButton styleClass="submit" type="submit" id="export_contacts" value="#{msg.BUTTON_ADMIN_EXPORT_CONTACTS_CSV}">
+                                                       <p:dataExporter type="csv" target="table_export_contacts" fileName="all_contacts" />
+                                               </h:commandButton>
+                                       </div>
+                               </div>
+                       </h:form>
+               </ui:define>
+       </ui:composition>
+</html>