]> git.mxchange.org Git - addressbook-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 18:37:05 +0000 (20:37 +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/addressbook/beans/contact/AddressbookAdminContactWebRequestBean.java
src/java/org/mxchange/addressbook/beans/contact/AddressbookAdminContactWebRequestController.java
src/java/org/mxchange/addressbook/beans/helper/AddressbookAdminWebRequestController.java
src/java/org/mxchange/addressbook/beans/helper/AddressbookAdminWebRequestHelper.java
src/java/org/mxchange/addressbook/beans/user/AddressbookAdminUserWebRequestBean.java
src/java/org/mxchange/addressbook/beans/user/AddressbookAdminUserWebRequestController.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 93c7f7e91b9dc3b72316f56b3f4ba125005e129c..af146c086e9b1adddda7de05198873272341f1c9 100644 (file)
@@ -28,12 +28,17 @@ import javax.inject.Named;
 import javax.naming.Context;
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
+import org.mxchange.addressbook.beans.helper.AddressbookAdminWebRequestController;
 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.jphone.phonenumbers.fax.DialableFaxNumber;
+import org.mxchange.jphone.phonenumbers.landline.DialableLandLineNumber;
 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 +61,12 @@ public class AddressbookAdminContactWebRequestBean implements AddressbookAdminCo
        @Any
        private Event<AdminAddedUserEvent> addedUserEvent;
 
+       /**
+        * Admin helper instance
+        */
+       @Inject
+       private AddressbookAdminWebRequestController adminHelper;
+
        /**
         * Birth day
         */
@@ -196,15 +207,48 @@ public class AddressbookAdminContactWebRequestBean implements AddressbookAdminCo
                }
        }
 
+       @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 +520,56 @@ public class AddressbookAdminContactWebRequestBean implements AddressbookAdminCo
        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 6de461bafc6dc97bd2f2584c205eac98000d3f9f..b737bea28acd2819fe30b56b5b583b05117dd4ec 100644 (file)
@@ -37,6 +37,13 @@ public interface AddressbookAdminContactWebRequestController extends Serializabl
         */
        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 24f2a10c19935f4ab4cfdae9725ade3f8f70f1f3..fb9cea974b2ccfcced452fb2707b3620460e1a24 100644 (file)
@@ -17,6 +17,7 @@
 package org.mxchange.addressbook.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 AddressbookAdminWebRequestController 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 9c599d1634cb6558615f8f1880b13cde858cb8d8..bf8080af90f750ef2d1681249fa09b2ad1a8acf5 100644 (file)
@@ -51,6 +51,11 @@ public class AddressbookAdminWebRequestHelper implements AddressbookAdminWebRequ
        @Inject
        private AddressbookAdminUserWebRequestController adminUserController;
 
+       /**
+        * Contact instance
+        */
+       private Contact contact;
+
        /**
         * User instance
         */
@@ -62,6 +67,30 @@ public class AddressbookAdminWebRequestHelper implements AddressbookAdminWebRequ
        public AddressbookAdminWebRequestHelper () {
        }
 
+       @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 AddressbookAdminWebRequestHelper implements AddressbookAdminWebRequ
                // 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 70860336aa87333e71000b5c0bbc577edafbce69..fbaad33689938ec7eb2e80f6a4f121c1d0ab988c 100644 (file)
@@ -237,7 +237,7 @@ public class AddressbookAdminUserWebRequestBean implements AddressbookAdminUserW
        }
 
        @Override
-       public String editUserData () {
+       public String changeUserData () {
                // Get user instance
                User user = this.adminHelper.getUser();
 
index 9433b920b1e0f53089612742de7f13d9eef21710..b26579cd05de04295509fc706d03210e69c5367b 100644 (file)
@@ -76,7 +76,7 @@ public interface AddressbookAdminUserWebRequestController extends Serializable {
         * <p>
         * @return Redirect outcome
         */
-       String editUserData();
+       String changeUserData ();
 
        /**
         * Getter for user name
index 304eb362487b136f46ffa3f9e06e23596fbc22af..3ed960a6bf6e153c693be4d1e74164998dc71add 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 d0342a28f788118ba4a3e509ea6ddbe66fc3aa13..f1c4b8aae7abe9996639c9b434046b50bc545225 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>