]> git.mxchange.org Git - jjobs-war.git/commitdiff
Continued with contact data editing (admin):
authorRoland Häder <roland@mxchange.org>
Thu, 21 Apr 2016 16:02:05 +0000 (18:02 +0200)
committerRoland Haeder <roland@mxchange.org>
Thu, 21 Apr 2016 19:59:02 +0000 (21:59 +0200)
- added instance to helper
- renamed editFooData() to changeFooData()
- added handling contactId
- added form (with include)
- added method copyContactToController()
- added admin helper injection

Signed-off-by: Roland Häder <roland@mxchange.org>
src/java/org/mxchange/jjobs/beans/contact/JobsAdminContactWebRequestBean.java
src/java/org/mxchange/jjobs/beans/contact/JobsAdminContactWebRequestController.java
src/java/org/mxchange/jjobs/beans/helper/JobsAdminWebRequestController.java
src/java/org/mxchange/jjobs/beans/helper/JobsAdminWebRequestHelper.java
src/java/org/mxchange/jjobs/beans/user/JobsAdminUserWebRequestBean.java
src/java/org/mxchange/jjobs/beans/user/JobsAdminUserWebRequestController.java
src/java/org/mxchange/localization/bundle_de_DE.properties
src/java/org/mxchange/localization/bundle_en_US.properties
web/admin/contact/admin_contact_edit.xhtml

index 1e389c793098e757c14cb9c4cb6ad773cd787024..fba6036282728d6c3b269f9c30d45d4edaae31ba 100644 (file)
@@ -31,9 +31,12 @@ import javax.naming.NamingException;
 import org.mxchange.jcontacts.contact.Contact;
 import org.mxchange.jcontacts.contact.ContactSessionBeanRemote;
 import org.mxchange.jcontacts.contact.gender.Gender;
+import org.mxchange.jcontacts.contact.utils.ContactUtils;
 import org.mxchange.jcountry.data.Country;
+import org.mxchange.jjobs.beans.helper.JobsAdminWebRequestController;
 import org.mxchange.jphone.phonenumbers.mobileprovider.MobileProvider;
-import org.mxchange.jusercore.events.user.AdminAddedUserEvent;
+import org.mxchange.jusercore.events.user.add.AdminAddedUserEvent;
+import org.mxchange.jusercore.events.user.update.AdminUserDataUpdatedEvent;
 
 /**
  * A user bean (controller)
@@ -56,6 +59,12 @@ public class JobsAdminContactWebRequestBean implements JobsAdminContactWebReques
        @Any
        private Event<AdminAddedUserEvent> addedUserEvent;
 
+       /**
+        * Admin helper instance
+        */
+       @Inject
+       private JobsAdminWebRequestController adminHelper;
+
        /**
         * Birth day
         */
@@ -196,15 +205,48 @@ public class JobsAdminContactWebRequestBean implements JobsAdminContactWebReques
                }
        }
 
+       @Override
+       public String changeContactData () {
+               // Get contact instance
+               Contact contact = this.adminHelper.getContact();
+
+               // Check if contact instance is in helper and valid
+               if (null == contact) {
+                       // Throw NPE
+                       throw new NullPointerException("adminHelper.contact is null"); //NOI18N
+               } else if (contact.getContactId() == null) {
+                       // Throw NPE again
+                       throw new NullPointerException("adminHelper.contact.contactId is null"); //NOI18N //NOI18N
+               } else if (contact.getContactId() < 1) {
+                       // Invalid id
+                       throw new IllegalStateException(MessageFormat.format("adminHelper.contact.contactId={0} is invalid", contact.getContactId())); //NOI18N
+               }
+
+               // Update all data in contact
+               this.updateContactData(contact);
+
+               // Call EJB for updating contact data
+               Contact updatedContact = this.contactBean.updateContactData(contact);
+
+               // Update list
+               this.updateList(updatedContact);
+
+               // Fire event
+               this.updatedContactDataEvent.fire(new AdminUserDataUpdatedEvent(updatedContact));
+
+               // Return to contact list (for now)
+               return "admin_list_contact"; //NOI18N
+       }
+
        @Override
        public void copyContactToController (final Contact contact) {
                // The contact instance must be valid
                if (null == contact) {
                        // Throw NPE again
-                       throw new NullPointerException("this.user.userContact is null");
+                       throw new NullPointerException("contact is null"); //NOI18N
                } else if (contact.getContactId() < 1) {
                        // Not valid
-                       throw new IllegalStateException(MessageFormat.format("this.user.userContact.contactId={0} is not valid.", contact.getContactId()));
+                       throw new IllegalStateException(MessageFormat.format("contact.contactId={0} is not valid.", contact.getContactId())); //NOI18N
                }
 
                // Set all fields: contact
@@ -476,4 +518,56 @@ public class JobsAdminContactWebRequestBean implements JobsAdminContactWebReques
        public void init () {
        }
 
+       /**
+        * Updates all data in contact instance.
+        * <p>
+        * @param contact Contact instance
+        */
+       private void updateContactData (final Contact contact) {
+               // Contact instance should be valid
+               if (null == contact) {
+                       // Throw NPE
+                       throw new NullPointerException("contact is null"); //NOI18N
+               } else if (contact.getContactId() == null) {
+                       // Throw NPE again
+                       throw new NullPointerException("contact.contactId is null"); //NOI18N //NOI18N
+               } else if (contact.getContactId() < 1) {
+                       // Invalid id
+                       throw new IllegalStateException(MessageFormat.format("contact.contactId={0} is invalid", contact.getContactId())); //NOI18N
+               }
+
+               // Update all fields
+               contact.setContactGender(this.getGender());
+               contact.setContactFirstName(this.getFirstName());
+               contact.setContactFamilyName(this.getFamilyName());
+               contact.setContactStreet(this.getStreet());
+               contact.setContactHouseNumber(this.getHouseNumber());
+               contact.setContactZipCode(this.getZipCode());
+               contact.setContactCity(this.getCity());
+               contact.setContactCountry(this.getCountry());
+
+               // Update contact's cellphone number
+               ContactUtils.updateCellPhoneNumber(contact, this.getCellphoneCarrier(), this.getCellphoneNumber());
+
+               // Is there a phone number?
+               if (contact.getContactLandLineNumber() instanceof DialableLandLineNumber) {
+                       // Debug message
+                       System.out.println(MessageFormat.format("updateContactData: phoneId={0}", contact.getContactLandLineNumber().getPhoneId())); //NOI18N
+
+                       // Yes, then update as well
+                       contact.getContactLandLineNumber().setPhoneAreaCode(this.getPhoneAreaCode());
+                       contact.getContactLandLineNumber().setPhoneNumber(this.getPhoneNumber());
+               }
+
+               // Is there a fax number?
+               if (contact.getContactFaxNumber() instanceof DialableFaxNumber) {
+                       // Debug message
+                       System.out.println(MessageFormat.format("updateContactData: faxId={0}", contact.getContactFaxNumber().getPhoneId())); //NOI18N
+
+                       // Yes, then update as well
+                       contact.getContactFaxNumber().setPhoneAreaCode(this.getFaxAreaCode());
+                       contact.getContactFaxNumber().setPhoneNumber(this.getFaxNumber());
+               }
+       }
+
 }
index 4b7209681dce1b64cc1827fa84026aab3d471cd1..493aefbd4d49b07b37dea8cef59e665a252f9ee3 100644 (file)
@@ -37,6 +37,13 @@ public interface JobsAdminContactWebRequestController extends Serializable {
         */
        void copyContactToController (final Contact contact);
 
+       /**
+        * Edits cuirrently loaded contact's data in database.
+        * <p>
+        * @return Redirect outcome
+        */
+       String changeContactData ();
+
        /**
         * Getter for cellphone id
         * <p>
index 4275f20eceb9e67a5dedd57b6998221fe36c4aee..1cb8f2e75b70abb2ad82d95b07ff780c54fd120d 100644 (file)
@@ -17,6 +17,7 @@
 package org.mxchange.jjobs.beans.helper;
 
 import java.io.Serializable;
+import org.mxchange.jcontacts.contact.Contact;
 import org.mxchange.jusercore.model.user.User;
 
 /**
@@ -45,4 +46,23 @@ public interface JobsAdminWebRequestController extends Serializable {
         */
        void copyUserToController ();
 
+       /**
+        * Getter for contact instance
+        * <p>
+        * @return Contact instance
+        */
+       Contact getContact ();
+
+       /**
+        * Setter for contact instance
+        * <p>
+        * @param contact Contact instance
+        */
+       void setContact (final Contact contact);
+
+       /**
+        * Copies currently set contact instance's data to adminContactController
+        */
+       void copyContactToController ();
+
 }
index 37f91756241fbab1447dd5a04613acabfe38c208..2e796f804bc767d34e96e3e7a296200131a5b0ec 100644 (file)
@@ -51,6 +51,11 @@ public class JobsAdminWebRequestHelper implements JobsAdminWebRequestController
        @Inject
        private JobsAdminUserWebRequestController adminUserController;
 
+       /**
+        * Contact instance
+        */
+       private Contact contact;
+
        /**
         * User instance
         */
@@ -62,6 +67,30 @@ public class JobsAdminWebRequestHelper implements JobsAdminWebRequestController
        public JobsAdminWebRequestHelper () {
        }
 
+       @Override
+       public void copyContactToController () {
+               // Log message
+               System.out.println("AdminHelper::copyContactToController - CALLED!"); //NOI18N
+
+               // Validate user instance
+               if (this.getContact() == null) {
+                       // Throw NPE
+                       throw new NullPointerException("this.contact is null"); //NOI18N
+               } else if (this.getContact().getContactId() == null) {
+                       // Throw NPE again
+                       throw new NullPointerException("this.contact.contactId is null"); //NOI18N
+               } else if (this.getContact().getContactId() < 1) {
+                       // Not valid
+                       throw new IllegalStateException(MessageFormat.format("this.contact.contactId={0} is not valid.", this.getContact().getContactId())); //NOI18N
+               }
+
+               // Set all fields: user
+               this.adminContactController.copyContactToController(this.getContact());
+
+               // Log message
+               System.out.println("AdminHelper::copyContactToController - EXIT!"); //NOI18N
+       }
+
        @Override
        public void copyUserToController () {
                // Validate user instance
@@ -79,11 +108,18 @@ public class JobsAdminWebRequestHelper implements JobsAdminWebRequestController
                // Set all fields: user
                this.adminUserController.setUserName(this.getUser().getUserName());
 
-               // Get contact instance (shortens stuff)
-               Contact contact = this.getUser().getUserContact();
+               // Log message
+               System.out.println("AdminHelper::copyUserToController - EXIT!"); //NOI18N
+       }
 
-               // Call contact controller
-               this.adminContactController.copyContactToController(contact);
+       @Override
+       public Contact getContact () {
+               return this.contact;
+       }
+
+       @Override
+       public void setContact (final Contact contact) {
+               this.contact = contact;
        }
 
        @Override
index 9eedb0b999b1c1babe4083de9d78753e6cea225a..877ef69a0f015b4c96ec603501033978df53d3f7 100644 (file)
@@ -238,7 +238,7 @@ public class JobsAdminUserWebRequestBean implements JobsAdminUserWebRequestContr
        }
 
        @Override
-       public String editUserData () {
+       public String changeUserData () {
                // Get user instance
                User user = this.adminHelper.getUser();
 
index a38935615fba3ca6902f9c7deaa55d47bf747c53..a59d9af98f7981745354c38aca1713084f835745 100644 (file)
@@ -76,7 +76,7 @@ public interface JobsAdminUserWebRequestController extends Serializable {
         * <p>
         * @return Redirect outcome
         */
-       String editUserData();
+       String changeUserData ();
 
        /**
         * Getter for user name
index 372f0a5d695e088fdbebf12fcf14a3ca21eeb939..35f542a1c8bb40af0366460771b199123b1c31aa 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016 Cho-Time GmbH
+# Copyright (C) 2016 Roland Haeder
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU Affero General Public License as
index 0c7c699f2f434f7bdaafae07922fc3bab0d1c5e7..1b90fabba5a5286d2fd9367a37f24f1d200cd240 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016 Cho-Time GmbH
+# Copyright (C) 2016 Roland Haeder
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU Affero General Public License as
index 9397ecfd73e9a1892e450d5c499a3e468acc77e9..1df661ecc4d9664bd7db15933883a771e840fb18 100644 (file)
@@ -8,6 +8,11 @@
        xmlns:f="http://xmlns.jcp.org/jsf/core"
        >
 
+       <f:metadata>
+               <f:viewParam name="contactId" value="#{adminHelper.contact}" converter="UserConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_CONTACT_ID_NOT_SET}" />
+               <f:viewAction action="#{adminHelper.copyContactToController()}" />
+       </f:metadata>
+
        <ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
                <ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_EDIT_CONTACT}</ui:define>
 
                </ui:define>
 
                <ui:define name="content">
-                       Here goes your content.
+                       <h:outputText styleClass="errors" value="#{msg.ERROR_CONTACT_ID_NOT_FOUND}" rendered="#{empty adminHelper.contact}" />
+
+                       <h:form id="admin_edit_user" rendered="#{not empty adminHelper.user}">
+                               <div class="table">
+                                       <div class="table_header">
+                                               #{msg.ADMIN_EDIT_CONTACT_TITLE}
+                                       </div>
+
+                                       <div class="para notice">
+                                               #{msg.ADMIN_PERSONAL_DATA_MINIMUM_NOTICE}
+                                       </div>
+
+                                       <ui:include src="/WEB-INF/templates/admin/contact/admin_form_contact_data.tpl">
+                                               <ui:param name="mode" value="edit" />
+                                       </ui:include>
+
+                                       <div class="table_footer">
+                                               <h:commandButton class="reset" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
+                                               <h:commandButton class="submit" type="submit" id="register" value="#{msg.BUTTON_ADMIN_EDIT_CONTACT}" action="#{adminUserController.changeContactData()}" />
+                                       </div>
+                               </div>
+                       </h:form>
                </ui:define>
        </ui:composition>
 </html>