- renamed some admin_contact_cellphone_???.xhtml to admin_cellphone_???.xhtml as they are generic enough (not depending on contact)
- moved phone-contact stuff to adminContactController
- renamed i18n strings properly
- no need to have contact in adminPhoneController, better is the obvious one: beanHelper
- started with listing all cell phone numbers (similar JSF will follow for land-line and fax numbers)
- the contact stuff in adminPhoneHelper was deprecated anyway
Signed-off-by: Roland Häder <roland@haeder.net>
Signed-off-by: Roland Häder <roland@mxchange.org>
<Scene Scope="Project" version="2">
<Scope Scope="Faces Configuration Only"/>
<Scope Scope="Project">
- <Node id="admin/cellphone/admin_contact_cellphone_list.xhtml" x="650" y="1350" zoom="true"/>
- <Node id="user/login_logout.xhtml" x="2900" y="150" zoom="true"/>
- <Node id="admin/contact/admin_contact_show.xhtml" x="1150" y="1050" zoom="true"/>
- <Node id="privacy.xhtml" x="1900" y="450" zoom="true"/>
- <Node id="admin/mobile_provider/admin_mobile_provider_show.xhtml" x="400" y="600" zoom="true"/>
- <Node id="guest/user/show_addressbook.xhtml" x="2150" y="450" zoom="true"/>
- <Node id="admin/user/admin_user_show.xhtml" x="2150" y="300" zoom="true"/>
- <Node id="admin/index.xhtml" x="650" y="150" zoom="true"/>
- <Node id="user/login_own_addressbooks.xhtml" x="650" y="600" zoom="true"/>
- <Node id="user/login_user_data_saved.xhtml" x="650" y="900" zoom="true"/>
- <Node id="user/index.xhtml" x="400" y="300" zoom="true"/>
- <Node id="admin/admin_logout.xhtml" x="900" y="600" zoom="true"/>
+ <Node id="admin/cellphone/admin_contact_cellphone_list.xhtml" x="2150" y="150" zoom="true"/>
+ <Node id="user/login_logout.xhtml" x="1150" y="750" zoom="true"/>
+ <Node id="admin/cellphone/admin_cellphone_delete.xhtml" x="150" y="1650" zoom="true"/>
+ <Node id="admin/contact/admin_contact_show.xhtml" x="900" y="750" zoom="true"/>
+ <Node id="privacy.xhtml" x="650" y="300" zoom="true"/>
+ <Node id="admin/mobile_provider/admin_mobile_provider_show.xhtml" x="150" y="600" zoom="true"/>
+ <Node id="guest/user/show_addressbook.xhtml" x="1400" y="450" zoom="true"/>
+ <Node id="admin/user/admin_user_show.xhtml" x="1650" y="750" zoom="true"/>
+ <Node id="admin/index.xhtml" x="150" y="900" zoom="true"/>
+ <Node id="user/login_own_addressbooks.xhtml" x="2650" y="150" zoom="true"/>
+ <Node id="user/login_user_data_saved.xhtml" x="1650" y="600" zoom="true"/>
+ <Node id="admin/cellphone/admin_cellphone_show.xhtml" x="2400" y="150" zoom="true"/>
+ <Node id="user/index.xhtml" x="1400" y="300" zoom="true"/>
+ <Node id="admin/admin_logout.xhtml" x="150" y="450" zoom="true"/>
<Node id="user/login_data_saved.xhtml" x="1400" y="150" zoom="true"/>
- <Node id="admin/user/admin_user_unlock.xhtml" x="1400" y="450" zoom="true"/>
- <Node id="user/login_other_addressbooks.xhtml" x="1650" y="750" zoom="true"/>
- <Node id="user/login_start_sharing_addressbook.xhtml" x="150" y="1350" zoom="true"/>
- <Node id="guest/user/user_list.xhtml" x="150" y="1050" zoom="true"/>
- <Node id="index.xhtml" x="650" y="1200" zoom="true"/>
- <Node id="user/login_edit_user_data.xhtml" x="1150" y="750" zoom="true"/>
- <Node id="*" x="900" y="150" zoom="true"/>
- <Node id="admin/admin_category_delete.xhtml" x="400" y="1500" zoom="true"/>
- <Node id="user/login_index.xhtml" x="400" y="450" zoom="true"/>
- <Node id="admin/cellphone/admin_contact_cellphone_edit.xhtml" x="1650" y="300" zoom="true"/>
- <Node id="guest/user/lost_passwd.xhtml" x="1900" y="600" zoom="true"/>
- <Node id="guest/user/register_done.xhtml" x="400" y="750" zoom="true"/>
- <Node id="guest/user/show_addressbook_entries.xhtml" x="150" y="1650" zoom="true"/>
- <Node id="user/login.xhtml" x="900" y="450" zoom="true"/>
- <Node id="login/login_edit_user_data.xhtml" x="400" y="150" zoom="true"/>
- <Node id="admin/country/admin_country_list.xhtml" x="1150" y="150" zoom="true"/>
- <Node id="admin/cellphone/admin_contact_cellphone_unlink.xhtml" x="900" y="300" zoom="true"/>
- <Node id="guest/user/login_error.xhtml" x="400" y="1200" zoom="true"/>
- <Node id="admin/user/admin_user_export.xhtml" x="1900" y="300" zoom="true"/>
- <Node id="admin/mobile_provider/admin_mobile_provider_delete.xhtml" x="400" y="1050" zoom="true"/>
- <Node id="guest/user/resend_done.xhtml" x="650" y="300" zoom="true"/>
- <Node id="user/login_change_password.xhtml" x="650" y="450" zoom="true"/>
- <Node id="admin/mobile_provider/admin_mobile_provider_list.xhtml" x="900" y="900" zoom="true"/>
- <Node id="admin/contact/admin_contact_export.xhtml" x="150" y="600" zoom="true"/>
- <Node id="guest/user/user_profile.xhtml" x="900" y="750" zoom="true"/>
- <Node id="guest/user/confirm_account.xhtml" x="1400" y="900" zoom="true"/>
- <Node id="admin/user/admin_user_delete.xhtml" x="150" y="450" zoom="true"/>
- <Node id="exception.xhtml" x="150" y="1200" zoom="true"/>
- <Node id="admin/cellphone/admin_contact_cellphone_delete.xhtml" x="1150" y="900" zoom="true"/>
- <Node id="user/login_list_sharing_addressbooks.xhtml" x="150" y="1500" zoom="true"/>
- <Node id="login/login_index.xhtml" x="1650" y="150" zoom="true"/>
- <Node id="admin/user/admin_user_edit.xhtml" x="650" y="1050" zoom="true"/>
- <Node id="guest/user/register_page2.xhtml" x="2400" y="300" zoom="true"/>
- <Node id="terms.xhtml" x="150" y="900" zoom="true"/>
- <Node id="admin/contact/admin_contact_list.xhtml" x="650" y="750" zoom="true"/>
- <Node id="admin/contact/admin_contact_edit.xhtml" x="1400" y="750" zoom="true"/>
- <Node id="admin/user/admin_user_lock.xhtml" x="2650" y="300" zoom="true"/>
- <Node id="admin/user/admin_user_list.xhtml" x="150" y="750" zoom="true"/>
- <Node id="admin/country/admin_country_delete.xhtml" x="1150" y="300" zoom="true"/>
- <Node id="user/login_change_personal_data.xhtml" x="2650" y="150" zoom="true"/>
- <Node id="logout.xhtml" x="1650" y="600" zoom="true"/>
- <Node id="admin/country/admin_country_edit.xhtml" x="900" y="1050" zoom="true"/>
+ <Node id="admin/user/admin_user_unlock.xhtml" x="150" y="1050" zoom="true"/>
+ <Node id="user/login_other_addressbooks.xhtml" x="1900" y="750" zoom="true"/>
+ <Node id="admin/cellphone/admin_cellphone_edit.xhtml" x="650" y="600" zoom="true"/>
+ <Node id="user/login_start_sharing_addressbook.xhtml" x="400" y="450" zoom="true"/>
+ <Node id="guest/user/user_list.xhtml" x="2150" y="450" zoom="true"/>
+ <Node id="index.xhtml" x="1900" y="600" zoom="true"/>
+ <Node id="user/login_edit_user_data.xhtml" x="900" y="600" zoom="true"/>
+ <Node id="admin/admin_category_delete.xhtml" x="1900" y="450" zoom="true"/>
+ <Node id="*" x="2400" y="300" zoom="true"/>
+ <Node id="user/login_index.xhtml" x="1650" y="150" zoom="true"/>
+ <Node id="admin/cellphone/admin_contact_cellphone_edit.xhtml" x="1150" y="450" zoom="true"/>
+ <Node id="guest/user/lost_passwd.xhtml" x="1650" y="450" zoom="true"/>
+ <Node id="guest/user/register_done.xhtml" x="1150" y="600" zoom="true"/>
+ <Node id="guest/user/show_addressbook_entries.xhtml" x="150" y="300" zoom="true"/>
+ <Node id="user/login.xhtml" x="2150" y="600" zoom="true"/>
+ <Node id="admin/country/admin_country_list.xhtml" x="900" y="300" zoom="true"/>
+ <Node id="login/login_edit_user_data.xhtml" x="400" y="1050" zoom="true"/>
+ <Node id="admin/cellphone/admin_contact_cellphone_unlink.xhtml" x="1900" y="300" zoom="true"/>
+ <Node id="guest/user/login_error.xhtml" x="650" y="450" zoom="true"/>
+ <Node id="admin/user/admin_user_export.xhtml" x="400" y="1200" zoom="true"/>
+ <Node id="admin/mobile_provider/admin_mobile_provider_delete.xhtml" x="400" y="900" zoom="true"/>
+ <Node id="guest/user/resend_done.xhtml" x="1650" y="300" zoom="true"/>
+ <Node id="user/login_change_password.xhtml" x="650" y="1050" zoom="true"/>
+ <Node id="admin/mobile_provider/admin_mobile_provider_list.xhtml" x="150" y="750" zoom="true"/>
+ <Node id="admin/contact/admin_contact_export.xhtml" x="400" y="1500" zoom="true"/>
+ <Node id="guest/user/user_profile.xhtml" x="900" y="1050" zoom="true"/>
+ <Node id="guest/user/confirm_account.xhtml" x="900" y="1200" zoom="true"/>
+ <Node id="exception.xhtml" x="900" y="150" zoom="true"/>
+ <Node id="admin/user/admin_user_delete.xhtml" x="400" y="750" zoom="true"/>
+ <Node id="user/login_list_sharing_addressbooks.xhtml" x="1900" y="150" zoom="true"/>
+ <Node id="admin/cellphone/admin_contact_cellphone_delete.xhtml" x="1400" y="600" zoom="true"/>
+ <Node id="login/login_index.xhtml" x="2150" y="300" zoom="true"/>
+ <Node id="guest/user/register_page2.xhtml" x="1150" y="150" zoom="true"/>
+ <Node id="admin/user/admin_user_edit.xhtml" x="900" y="900" zoom="true"/>
+ <Node id="terms.xhtml" x="2900" y="150" zoom="true"/>
+ <Node id="admin/contact/admin_contact_list.xhtml" x="900" y="450" zoom="true"/>
+ <Node id="admin/contact/admin_contact_edit.xhtml" x="650" y="750" zoom="true"/>
+ <Node id="admin/user/admin_user_lock.xhtml" x="1150" y="1050" zoom="true"/>
+ <Node id="admin/user/admin_user_list.xhtml" x="400" y="300" zoom="true"/>
+ <Node id="admin/country/admin_country_delete.xhtml" x="1400" y="750" zoom="true"/>
+ <Node id="user/login_change_personal_data.xhtml" x="400" y="150" zoom="true"/>
+ <Node id="admin/country/admin_country_edit.xhtml" x="650" y="150" zoom="true"/>
+ <Node id="logout.xhtml" x="150" y="1350" zoom="true"/>
<Node id="user/login_add_addressbook.xhtml" x="150" y="150" zoom="true"/>
- <Node id="guest/user/resend_link.xhtml" x="2400" y="150" zoom="true"/>
- <Node id="user/login_contact_data_saved.xhtml" x="1400" y="300" zoom="true"/>
- <Node id="user/user_profile.xhtml" x="400" y="900" zoom="true"/>
- <Node id="admin/contact/admin_contact_delete.xhtml" x="1400" y="600" zoom="true"/>
- <Node id="imprint.xhtml" x="400" y="1350" zoom="true"/>
- <Node id="user/login_shared_addressbooks.xhtml" x="1650" y="450" zoom="true"/>
- <Node id="admin/mobile_provider/admin_mobile_provider_edit.xhtml" x="150" y="300" zoom="true"/>
- <Node id="admin/cellphone/admin_contact_cellphone_show.xhtml" x="2150" y="150" zoom="true"/>
- <Node id="guest/user/login.xhtml" x="1150" y="450" zoom="true"/>
- <Node id="admin/admin_product_delete.xhtml" x="1150" y="600" zoom="true"/>
- <Node id="guest/user/register.xhtml" x="900" y="1200" zoom="true"/>
- <Node id="user/login_change_email_address.xhtml" x="1900" y="150" zoom="true"/>
+ <Node id="guest/user/resend_link.xhtml" x="1150" y="300" zoom="true"/>
+ <Node id="user/login_contact_data_saved.xhtml" x="650" y="1350" zoom="true"/>
+ <Node id="user/user_profile.xhtml" x="400" y="1350" zoom="true"/>
+ <Node id="admin/contact/admin_contact_delete.xhtml" x="150" y="1500" zoom="true"/>
+ <Node id="imprint.xhtml" x="400" y="600" zoom="true"/>
+ <Node id="user/login_shared_addressbooks.xhtml" x="650" y="1200" zoom="true"/>
+ <Node id="admin/mobile_provider/admin_mobile_provider_edit.xhtml" x="1400" y="900" zoom="true"/>
+ <Node id="admin/cellphone/admin_contact_cellphone_show.xhtml" x="650" y="900" zoom="true"/>
+ <Node id="admin/admin_product_delete.xhtml" x="1150" y="900" zoom="true"/>
+ <Node id="guest/user/login.xhtml" x="2400" y="450" zoom="true"/>
+ <Node id="guest/user/register.xhtml" x="2650" y="300" zoom="true"/>
+ <Node id="user/login_change_email_address.xhtml" x="150" y="1200" zoom="true"/>
</Scope>
<Scope Scope="All Faces Configurations"/>
</Scene>
import java.text.MessageFormat;
import java.util.Collections;
import java.util.Date;
+import java.util.HashMap;
import java.util.Iterator;
+import java.util.LinkedList;
import java.util.List;
+import java.util.Map;
import java.util.Objects;
import javax.annotation.PostConstruct;
import javax.enterprise.context.SessionScoped;
import javax.naming.NamingException;
import org.mxchange.addressbook.beans.BaseAddressbookController;
import org.mxchange.addressbook.beans.login.AddressbookUserLoginWebSessionController;
+import org.mxchange.addressbook.beans.phone.AddressbookAdminPhoneWebRequestController;
import org.mxchange.addressbook.beans.user.AddressbookUserWebSessionController;
import org.mxchange.jcontacts.contact.Contact;
import org.mxchange.jcontacts.contact.ContactSessionBeanRemote;
import org.mxchange.jphone.phonenumbers.landline.DialableLandLineNumber;
import org.mxchange.jphone.phonenumbers.landline.LandLineNumber;
import org.mxchange.jphone.phonenumbers.mobileprovider.MobileProvider;
+import org.mxchange.jphone.phonenumbers.phone.AdminPhoneSessionBeanRemote;
import org.mxchange.jusercore.events.confirmation.UserConfirmedAccountEvent;
import org.mxchange.jusercore.events.login.UserLoggedInEvent;
import org.mxchange.jusercore.events.registration.UserRegisteredEvent;
*/
private static final long serialVersionUID = 542_145_347_916L;
+ /**
+ * Remote EJB for phone number (administrative)
+ */
+ private AdminPhoneSessionBeanRemote adminPhoneBean;
+
+ /**
+ * Administrative phone controller
+ */
+ @Inject
+ private AddressbookAdminPhoneWebRequestController adminPhoneController;
+
/**
* Birth day
*/
*/
private Long cellphoneNumber;
+ /**
+ * All cell phone numbers
+ */
+ private final List<DialableCellphoneNumber> cellphoneNumbers;
+
/**
* City
*/
/**
* Contact list
*/
- private List<Contact> contactList;
+ private final List<Contact> contactList;
+
+ /**
+ * "Cache" for contact lists, mostly only one is assigned. So this cache
+ * shouldn't grow beyond control.
+ */
+ private final Map<Long, List<Contact>> contacts;
/**
* Country instance
/**
* Email address list
*/
- private List<String> emailAddressList;
+ private final List<String> emailAddressList;
/**
* Email address repeated
// Try to lookup
this.contactBean = (ContactSessionBeanRemote) context.lookup("java:global/addressbook-ejb/contact!org.mxchange.jcontacts.contact.ContactSessionBeanRemote"); //NOI18N
+
+ // Try to lookup the beans
+ this.adminPhoneBean = (AdminPhoneSessionBeanRemote) context.lookup("java:global/addressbook-ejb/adminphone!org.mxchange.jphone.phonenumbers.phone.AdminPhoneSessionBeanRemote"); //NOI18N
} catch (final NamingException e) {
// Throw again
throw new FaceletException(e);
}
+
+ // Init lists/maps
+ this.cellphoneNumbers = new LinkedList<>();
+ this.contacts = new HashMap<>(10);
+ this.contactList = new LinkedList<>();
+ this.emailAddressList = new LinkedList<>();
}
@Override
this.copyContact(event.getLoggedInUser().getUserContact());
}
+ @Override
+ public List<Contact> allCellphoneContacts () {
+ // Get id
+ Long phoneId = this.adminPhoneController.getCellPhone().getPhoneId();
+
+ // Is cache there?
+ if (this.contacts.containsKey(phoneId)) {
+ // Return cached version
+ return this.contacts.get(phoneId);
+ } else {
+ // Ask bean
+ List<Contact> list = new LinkedList<>();
+
+ // "Walk" through all contacts
+ for (final Contact contact : this.contactList) {
+ // Is cellphone instance the same?
+ if (Objects.equals(contact.getContactCellphoneNumber(), this.adminPhoneController.getCellPhone())) {
+ // Found one
+ list.add(contact);
+ }
+ }
+
+ // Store result in cache
+ this.contacts.put(phoneId, list);
+
+ // Return now-cached list
+ return list;
+ }
+ }
+
@Override
public List<Contact> allContacts () {
// Debug message
@PostConstruct
public void init () {
// Get full email address list for reducing EJB calls
- this.emailAddressList = this.contactBean.getEmailAddressList();
+ this.emailAddressList.addAll(this.contactBean.getEmailAddressList());
// Get full contact list
- this.contactList = this.contactBean.getAllContacts();
+ this.contactList.addAll(this.contactBean.getAllContacts());
// Get all users
List<User> allUsers = this.userController.allUsers();
// Set contact list
this.selectableContacts = allContacts;
+
+ // All phone numbers
+ this.cellphoneNumbers.addAll(this.adminPhoneBean.allCellphoneNumbers());
}
@Override
import java.io.Serializable;
import java.util.Date;
import java.util.List;
+import javax.ejb.Local;
import org.mxchange.jcontacts.contact.Contact;
import org.mxchange.jcontacts.contact.gender.Gender;
import org.mxchange.jcontacts.events.contact.add.AdminAddedContactEvent;
* <p>
* @author Roland Haeder<roland@mxchange.org>
*/
+@Local
public interface AddressbookContactWebSessionController extends Serializable {
/**
*/
List<Contact> allContacts ();
+ /**
+ * Getter for all contacts having current cellphone instance linked
+ * <p>
+ * @return List of all linked contacts
+ */
+ List<Contact> allCellphoneContacts ();
+
/**
* Checks whether there are contacts.
* <p>
*/
package org.mxchange.addressbook.beans.phone;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
import javax.enterprise.context.RequestScoped;
import javax.faces.view.facelets.FaceletException;
import javax.inject.Named;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import org.mxchange.addressbook.beans.BaseAddressbookController;
-import org.mxchange.jcontacts.contact.Contact;
import org.mxchange.jcontacts.phone.AdminContactsPhoneSessionBeanRemote;
import org.mxchange.jphone.phonenumbers.cellphone.DialableCellphoneNumber;
import org.mxchange.jphone.phonenumbers.fax.DialableFaxNumber;
/**
* Remote EJB for phone number (administrative)
*/
- private AdminContactsPhoneSessionBeanRemote adminRemoteBean;
+ private AdminContactsPhoneSessionBeanRemote adminPhoneBean;
/**
* Cell phone number
*/
private DialableCellphoneNumber cellPhone;
- /**
- * Instance of linked contact account
- * <p>
- * @deprecated This is a generic phone controller, not just for contact data
- */
- @Deprecated
- private Contact contact;
-
- /**
- * "Cache" for contact lists, mostly only one is assigned. So this cache
- * shouldn't grow beyond control.
- * <p>
- * @deprecated This is a generic phone controller, not just for contact data
- */
- @Deprecated
- private final Map<Long, List<Contact>> contacts;
-
/**
* Fax number
*/
Context context = new InitialContext();
// Try to lookup the beans
- this.adminRemoteBean = (AdminContactsPhoneSessionBeanRemote) context.lookup("java:global/addressbook-ejb/admincontactphone!org.mxchange.jcontacts.phone.AdminContactsPhoneSessionBeanRemote"); //NOI18N
+ this.adminPhoneBean = (AdminContactsPhoneSessionBeanRemote) context.lookup("java:global/addressbook-ejb/admincontactphone!org.mxchange.jcontacts.phone.AdminContactsPhoneSessionBeanRemote"); //NOI18N
} catch (final NamingException e) {
// Throw it again
throw new FaceletException(e);
}
-
- // Init map
- this.contacts = new HashMap<>(10);
- }
-
- @Override
- @Deprecated
- public List<Contact> allCellphoneContacts () {
- // Get id
- Long phoneId = this.getCellPhone().getPhoneId();
-
- // Is cache there?
- if (this.contacts.containsKey(phoneId)) {
- // Return cached version
- return this.contacts.get(phoneId);
- } else {
- // Ask bean
- List<Contact> list = this.adminRemoteBean.allContacts(this.getCellPhone());
-
- // Store result in cache
- this.contacts.put(phoneId, list);
-
- // Return now-cached list
- return list;
- }
}
@Override
this.cellPhone = cellPhone;
}
- @Override
- @Deprecated
- public Contact getContact () {
- return this.contact;
- }
-
- @Override
- @Deprecated
- public void setContact (final Contact contact) {
- this.contact = contact;
- }
-
@Override
public DialableFaxNumber getFax () {
return this.fax;
package org.mxchange.addressbook.beans.phone;
import java.io.Serializable;
-import java.util.List;
-import org.mxchange.jcontacts.contact.Contact;
+import javax.ejb.Local;
import org.mxchange.jphone.phonenumbers.cellphone.DialableCellphoneNumber;
import org.mxchange.jphone.phonenumbers.fax.DialableFaxNumber;
import org.mxchange.jphone.phonenumbers.landline.DialableLandLineNumber;
* <p>
* @author Roland Haeder<roland@mxchange.org>
*/
+@Local
public interface AddressbookAdminPhoneWebRequestController extends Serializable {
- /**
- * Getter for all contacts having current cellphone instance linked
- * <p>
- * @return List of all linked contacts
- */
- @Deprecated
- List<Contact> allCellphoneContacts ();
-
/**
* Getter for dialable cellphone number instance
* <p>
*/
void setCellPhone (final DialableCellphoneNumber cellPhone);
- /**
- * Getter for linked contact account
- * <p>
- * @return Linked contact account
- */
- @Deprecated
- Contact getContact ();
-
- /**
- * Setter for linked contact account
- * <p>
- * @param contact Linked contact account
- */
- @Deprecated
- void setContact (final Contact contact);
-
}
ADMIN_LINK_UNLINK_SHORT=Abtrennen
ADMIN_LINK_UNLINK_SHORT_TITLE=Entfernt Verkn\u00fcpfung zum Eintrag.
PAGE_TITLE_ADMIN_DELETE_CELLPHONE=Mobiletelefoneintrag eines Kontaktes l\u00f6schen
-CONTENT_TITLE_ADMIN_DELETE_CONTACT_CELLPHONE=Mobiltelefoneintrag eines Kontaktes l\u00f6schen:
+CONTENT_TITLE_ADMIN_DELETE_CELLPHONE=Mobiltelefoneintrag eines Kontaktes l\u00f6schen:
PAGE_TITLE_ADMIN_EDIT_CELLPHONE=Mobiltelefoneintrag eines Kontaktes editieren
-CONTENT_TITLE_ADMIN_EDIT_CONTACT_CELLPHONE=Mobiltelefoneintrag eines Kontaktes editieren:
+CONTENT_TITLE_ADMIN_EDIT_CELLPHONE=Mobiltelefoneintrag eines Kontaktes editieren:
PAGE_TITLE_ADMIN_LIST_CONTACT_CELLPHONE=Eintr\u00e4ge von Mobiletelefonen auflisten
-PAGE_TITLE_ADMIN_SHOW_CONTACT_CELLPHONE=Mobiltelefoneintrag eines Kontaktes anzeigen
-CONTENT_TITLE_ADMIN_SHOW_CONTACT_CELLPHONE=Anzeigen eines Mobiltelefoneintrags eines Kontaktes:
+PAGE_TITLE_ADMIN_SHOW_CELLPHONE=Mobiltelefoneintrag eines Kontaktes anzeigen
+CONTENT_TITLE_ADMIN_SHOW_CELLPHONE=Anzeigen eines Mobiltelefoneintrags eines Kontaktes:
PAGE_TITLE_ADMIN_UNLINK_CONTACT_CELLPHONE=Verkn\u00fcpfung Kontakt-Mobiletelfon l\u00f6schen
CONTENT_TITLE_ADMIN_UNLINK_CONTACT_CELLPHONE=Entfernen einer Verkn\u00fcpfung Kontakt-Mobiltelefon:
ERROR_PARAMETER_PHONE_ID_NOT_SET=Fehler: Parameter 'phoneId' ist nicht gesetzt.
PAGE_TITLE_ADMIN_SHOW_MOBILE_PROVIDER=Mobilfunkbetreiber anzeigen
CONTENT_TITLE_ADMIN_SHOW_MOBILE_PROVIDER=Mobilfunkbetreiber anzeigen:
-TABLE_SUMMARY_ADMIN_SHOW_CONTACT_CELLPHONE=Ein einzelner Mobiltelefoneintrag eines Kontaktes.
-TABLE_SUMMARY_ADMIN_SHOW_CONTACT_CELLPHONE_LINKS=Diese Tabelle zeigt Verkn\u00fcpfungen von der Mobilfunknummern zu allen Kontaktdaten an.
-ADMIN_HEADER_SHOW_CONTACT_CELLPHONE_LINKS=Alle Kontakt-Mobiltelefon-Verkn\u00fcpfungen f\u00fcr Id-Nummer {0}:
+TABLE_SUMMARY_ADMIN_SHOW_CELLPHONE=Ein einzelner Mobiltelefoneintrag eines Kontaktes.
+TABLE_SUMMARY_ADMIN_SHOW_CELLPHONE_LINKS=Diese Tabelle zeigt Verkn\u00fcpfungen von der Mobilfunknummern zu allen Kontaktdaten an.
+ADMIN_HEADER_SHOW_CELLPHONE_LINKS=Alle Kontakt-Mobiltelefon-Verkn\u00fcpfungen f\u00fcr Id-Nummer {0}:
ERROR_PARAMETER_CONTACT_ID_NOT_SET=Fehler: Parameter 'contactId' ist nicht gesetzt.
ADMIN_SHOW_CELLPHONE_UNLINK=Trennen:
ADMIN_CONTACT_ID=Kontakt-Id:
ERROR_BEAN_HELPER_USER_NOT_SET=Fehler: Instanz 'user' im Bean-Helper nicht gesetzt.
ERROR_BEAN_HELPER_CONTACT_NOT_SET=Fehler: Instanz 'contact' im Bean-Helper nicht gesetzt.
ERROR_ADMIN_BEAN_CELLPHONE_NUMBER_NOT_SET=Fehler: Instanz 'cellPhone' in administrativer Bean nicht gesetzt.
+CONTENT_TITLE_ADMIN_LIST_CONTACT_CELLPHONE=Mobiltelefonnummern auflisten:
ADMIN_LINK_UNLINK_SHORT=Unlink
ADMIN_LINK_UNLINK_SHORT_TITLE=Removes link to entry.
PAGE_TITLE_ADMIN_DELETE_CELLPHONE=Delete contact's cellphone entry
-CONTENT_TITLE_ADMIN_DELETE_CONTACT_CELLPHONE=Delete contact's cellphone entry:
+CONTENT_TITLE_ADMIN_DELETE_CELLPHONE=Delete contact's cellphone entry:
PAGE_TITLE_ADMIN_EDIT_CELLPHONE=Edit contact's cellphone entry
-CONTENT_TITLE_ADMIN_EDIT_CONTACT_CELLPHONE=Edit contact's cellphone entry:
+CONTENT_TITLE_ADMIN_EDIT_CELLPHONE=Edit contact's cellphone entry:
PAGE_TITLE_ADMIN_LIST_CONTACT_CELLPHONE=List all cellphone entries
-PAGE_TITLE_ADMIN_SHOW_CONTACT_CELLPHONE=Show contact's cellphone entry
-CONTENT_TITLE_ADMIN_SHOW_CONTACT_CELLPHONE=Show contact's cellphone entry:
+PAGE_TITLE_ADMIN_SHOW_CELLPHONE=Show contact's cellphone entry
+CONTENT_TITLE_ADMIN_SHOW_CELLPHONE=Show contact's cellphone entry:
PAGE_TITLE_ADMIN_UNLINK_CONTACT_CELLPHONE=Remove link contact-cellphone
CONTENT_TITLE_ADMIN_UNLINK_CONTACT_CELLPHONE=Remove link between contact-cellphone:
ERROR_PARAMETER_PHONE_ID_NOT_SET=Error: Parameter 'phoneId' is not set.
PAGE_TITLE_ADMIN_SHOW_MOBILE_PROVIDER=Show mobile provider
CONTENT_TITLE_ADMIN_SHOW_MOBILE_PROVIDER=Show mobile provider:
-TABLE_SUMMARY_ADMIN_SHOW_CONTACT_CELLPHONE=A single contact's cellphone entry.
-TABLE_SUMMARY_ADMIN_SHOW_CONTACT_CELLPHONE_LINKS=This table shows links of of this cellphone number to all contacts.
-ADMIN_HEADER_SHOW_CONTACT_CELLPHONE_LINKS=All links between contact-cellphone for id {0}:
+TABLE_SUMMARY_ADMIN_SHOW_CELLPHONE=A single contact's cellphone entry.
+TABLE_SUMMARY_ADMIN_SHOW_CELLPHONE_LINKS=This table shows links of of this cellphone number to all contacts.
+ADMIN_HEADER_SHOW_CELLPHONE_LINKS=All links between contact-cellphone for id {0}:
ERROR_PARAMETER_CONTACT_ID_NOT_SET=Error: Parameter 'contactId' is not set.
ADMIN_SHOW_CELLPHONE_UNLINK=Unlink:
ADMIN_CONTACT_ID=Contact id:
ERROR_BEAN_HELPER_USER_NOT_SET=Error: Instance 'user' not set in bean helper.
ERROR_BEAN_HELPER_CONTACT_NOT_SET=Error: Instance 'contact' not set in bean helper.
ERROR_ADMIN_BEAN_CELLPHONE_NUMBER_NOT_SET=Error: Instance 'cellPhone' in administrative bean not set.
+CONTENT_TITLE_ADMIN_LIST_CONTACT_CELLPHONE=List mobile phone numbers:
</navigation-case>
<navigation-case>
<from-outcome>admin_show_cellphone</from-outcome>
- <to-view-id>/admin/cellphone/admin_contact_cellphone_show.xhtml</to-view-id>
+ <to-view-id>/admin/cellphone/admin_cellphone_show.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>admin_edit_cellphone</from-outcome>
- <to-view-id>/admin/cellphone/admin_contact_cellphone_edit.xhtml</to-view-id>
+ <to-view-id>/admin/cellphone/admin_cellphone_edit.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>admin_unlink_contact_cellphone</from-outcome>
</navigation-case>
<navigation-case>
<from-outcome>admin_delete_cellphone</from-outcome>
- <to-view-id>/admin/cellphone/admin_contact_cellphone_delete.xhtml</to-view-id>
+ <to-view-id>/admin/cellphone/admin_cellphone_delete.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>admin_edit_user</from-outcome>
--- /dev/null
+<!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"
+ >
+
+ <f:metadata>
+ <f:viewParam name="phoneId" value="#{adminPhoneController.cellPhone}" converter="CellphoneConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
+ </f:metadata>
+
+ <ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
+ <ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_DELETE_CELLPHONE}</ui:define>
+
+ <ui:define name="content_header">
+ #{msg.CONTENT_TITLE_ADMIN_DELETE_CELLPHONE}
+ </ui:define>
+
+ <ui:define name="content">
+ Here goes your content.
+ </ui:define>
+ </ui:composition>
+</html>
--- /dev/null
+<!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"
+ >
+
+ <f:metadata>
+ <f:viewParam name="phoneId" value="#{adminPhoneController.cellPhone}" converter="CellphoneConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
+ </f:metadata>
+
+ <ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
+ <ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_EDIT_CELLPHONE}</ui:define>
+
+ <ui:define name="content_header">
+ #{msg.CONTENT_TITLE_ADMIN_EDIT_CELLPHONE}
+ </ui:define>
+
+ <ui:define name="content">
+ Here goes your content.
+ </ui:define>
+ </ui:composition>
+</html>
--- /dev/null
+<!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"
+ >
+
+ <f:metadata>
+ <f:viewParam name="phoneId" value="#{adminPhoneController.cellPhone}" converter="CellphoneConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
+ </f:metadata>
+
+ <ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
+ <ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_SHOW_CELLPHONE}</ui:define>
+
+ <ui:define name="content_header">
+ #{msg.CONTENT_TITLE_ADMIN_SHOW_CELLPHONE}
+ </ui:define>
+
+ <ui:define name="content">
+ <ui:include src="/WEB-INF/templates/admin/cellphone/admin_cellphone_data.tpl">
+ <ui:param name="isShowPage" value="#{true}" />
+ </ui:include>
+
+ <h:dataTable id="contact_cellphone_link" var="contact" value="#{adminPhoneController.allCellphoneContacts()}" summary="#{msg.TABLE_SUMMARY_ADMIN_SHOW_CELLPHONE_LINKS}" headerClass="table_header_column" styleClass="table_medium">
+ <f:facet name="header">
+ <h:outputFormat value="#{msg.ADMIN_HEADER_SHOW_CELLPHONE_LINKS}">
+ <f:param value="#{adminPhoneController.cellPhone.phoneId}" />
+ </h:outputFormat>
+ </f:facet>
+
+ <h:column>
+ <h:outputLabel for="contactId" styleClass="data_label" value="#{msg.ADMIN_CONTACT_ID}" />
+
+ <h:link id="contactId" styleClass="data_field" outcome="admin_show_contact">
+ <h:outputText value="#{contact.contactId}" />
+ <f:param name="contactId" value="#{contact.contactId}" />
+ </h:link>
+ </h:column>
+
+ <h:column>
+ <h:outputLabel for="contactGender" styleClass="data_label" value="#{msg.ADMIN_CONTACT_GENDER}" />
+
+ <h:outputText id="contactGender" styleClass="data_field" value="#{msg[contact.contactGender.messageKey]}" />
+ </h:column>
+
+ <h:column>
+ <h:outputLabel for="contactTitle" styleClass="data_label" value="#{msg.ADMIN_CONTACT_TITLE}" />
+
+ <h:outputText id="contactTitle" styleClass="data_field" value="#{contact.contactTitle}" />
+ </h:column>
+
+ <h:column>
+ <h:outputLabel for="contactFirstName" styleClass="data_label" value="#{msg.ADMIN_CONTACT_FIRST_NAME}" />
+
+ <h:outputText id="contactFirstName" styleClass="data_field" value="#{contact.contactFirstName}" />
+ </h:column>
+
+ <h:column>
+ <h:outputLabel for="contactFamilyName" styleClass="data_label" value="#{msg.ADMIN_CONTACT_FAMILY_NAME}" />
+
+ <h:outputText id="contactFamilyName" styleClass="data_field" value="#{contact.contactFamilyName}" />
+ </h:column>
+
+ <h:column>
+ <h:outputLabel for="contactEmailAddress" styleClass="data_label" value="#{msg.ADMIN_CONTACT_EMAIL_ADDRESS}" />
+
+ <h:outputLink id="contactEmailAddress" styleClass="data_field" value="mailto:#{contact.contactEmailAddress}">
+ <h:outputText value="#{contact.contactEmailAddress}" />
+ </h:outputLink>
+ </h:column>
+
+ <h:column>
+ <h:outputLabel styleClass="data_label" value="#{msg.ADMIN_SHOW_CELLPHONE_UNLINK}" />
+
+ <div class="data_field">
+ <ul class="mini_nav">
+ <li class="mini_link">
+ <h:link outcome="admin_unlink_contact_cellphone">
+ <h:outputText styleClass="unlink_link" value="#{msg.ADMIN_LINK_UNLINK_SHORT}" title="#{msg.ADMIN_LINK_UNLINK_SHORT_TITLE}" />
+ <f:param name="phoneId" value="#{adminPhoneController.cellPhone.phoneId}" />
+ <f:param name="contactId" value="#{contact.contactId}" />
+ </h:link>
+ </li>
+ </ul>
+ </div>
+ </h:column>
+ </h:dataTable>
+ </ui:define>
+ </ui:composition>
+</html>
+++ /dev/null
-<!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"
- >
-
- <f:metadata>
- <f:viewParam name="phoneId" value="#{adminPhoneController.cellPhone}" converter="CellphoneConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
- </f:metadata>
-
- <ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
- <ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_DELETE_CELLPHONE}</ui:define>
-
- <ui:define name="content_header">
- #{msg.CONTENT_TITLE_ADMIN_DELETE_CONTACT_CELLPHONE}
- </ui:define>
-
- <ui:define name="content">
- Here goes your content.
- </ui:define>
- </ui:composition>
-</html>
+++ /dev/null
-<!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"
- >
-
- <f:metadata>
- <f:viewParam name="phoneId" value="#{adminPhoneController.cellPhone}" converter="CellphoneConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
- </f:metadata>
-
- <ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
- <ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_EDIT_CELLPHONE}</ui:define>
-
- <ui:define name="content_header">
- #{msg.CONTENT_TITLE_ADMIN_EDIT_CONTACT_CELLPHONE}
- </ui:define>
-
- <ui:define name="content">
- Here goes your content.
- </ui:define>
- </ui:composition>
-</html>
</ui:define>
<ui:define name="content">
- Here goes your content.
+ <h:dataTable id="table_list_cellphones" var="cellphone" value="#{phoneController.allCellphones()}" styleClass="table_big" headerClass="table_header_column" summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_CELLPHONES}" rendered="#{phoneController.hasCellphones()}">
+ <h:column>
+ <f:facet name="header">
+ <h:outputText value="#{msg.ADMIN_SHOW_CELLPHONE_ID}" />
+ </f:facet>
+ </h:column>
+ </h:dataTable>
</ui:define>
</ui:composition>
</html>
+++ /dev/null
-<!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"
- >
-
- <f:metadata>
- <f:viewParam name="phoneId" value="#{adminPhoneController.cellPhone}" converter="CellphoneConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
- </f:metadata>
-
- <ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">
- <ui:define name="admin_title">#{msg.PAGE_TITLE_ADMIN_SHOW_CONTACT_CELLPHONE}</ui:define>
-
- <ui:define name="content_header">
- #{msg.CONTENT_TITLE_ADMIN_SHOW_CONTACT_CELLPHONE}
- </ui:define>
-
- <ui:define name="content">
- <ui:include src="/WEB-INF/templates/admin/cellphone/admin_cellphone_data.tpl">
- <ui:param name="isShowPage" value="#{true}" />
- </ui:include>
-
- <h:dataTable id="contact_cellphone_link" var="contact" value="#{adminPhoneController.allCellphoneContacts()}" summary="#{msg.TABLE_SUMMARY_ADMIN_SHOW_CONTACT_CELLPHONE_LINKS}" headerClass="table_header_column" styleClass="table_medium">
- <f:facet name="header">
- <h:outputFormat value="#{msg.ADMIN_HEADER_SHOW_CONTACT_CELLPHONE_LINKS}">
- <f:param value="#{adminPhoneController.cellPhone.phoneId}" />
- </h:outputFormat>
- </f:facet>
-
- <h:column>
- <h:outputLabel for="contactId" styleClass="data_label" value="#{msg.ADMIN_CONTACT_ID}" />
-
- <h:link id="contactId" styleClass="data_field" outcome="admin_show_contact">
- <h:outputText value="#{contact.contactId}" />
- <f:param name="contactId" value="#{contact.contactId}" />
- </h:link>
- </h:column>
-
- <h:column>
- <h:outputLabel for="contactGender" styleClass="data_label" value="#{msg.ADMIN_CONTACT_GENDER}" />
-
- <h:outputText id="contactGender" styleClass="data_field" value="#{msg[contact.contactGender.messageKey]}" />
- </h:column>
-
- <h:column>
- <h:outputLabel for="contactTitle" styleClass="data_label" value="#{msg.ADMIN_CONTACT_TITLE}" />
-
- <h:outputText id="contactTitle" styleClass="data_field" value="#{contact.contactTitle}" />
- </h:column>
-
- <h:column>
- <h:outputLabel for="contactFirstName" styleClass="data_label" value="#{msg.ADMIN_CONTACT_FIRST_NAME}" />
-
- <h:outputText id="contactFirstName" styleClass="data_field" value="#{contact.contactFirstName}" />
- </h:column>
-
- <h:column>
- <h:outputLabel for="contactFamilyName" styleClass="data_label" value="#{msg.ADMIN_CONTACT_FAMILY_NAME}" />
-
- <h:outputText id="contactFamilyName" styleClass="data_field" value="#{contact.contactFamilyName}" />
- </h:column>
-
- <h:column>
- <h:outputLabel for="contactEmailAddress" styleClass="data_label" value="#{msg.ADMIN_CONTACT_EMAIL_ADDRESS}" />
-
- <h:outputLink id="contactEmailAddress" styleClass="data_field" value="mailto:#{contact.contactEmailAddress}">
- <h:outputText value="#{contact.contactEmailAddress}" />
- </h:outputLink>
- </h:column>
-
- <h:column>
- <h:outputLabel styleClass="data_label" value="#{msg.ADMIN_SHOW_CELLPHONE_UNLINK}" />
-
- <div class="data_field">
- <ul class="mini_nav">
- <li class="mini_link">
- <h:link outcome="admin_unlink_contact_cellphone">
- <h:outputText styleClass="unlink_link" value="#{msg.ADMIN_LINK_UNLINK_SHORT}" title="#{msg.ADMIN_LINK_UNLINK_SHORT_TITLE}" />
- <f:param name="phoneId" value="#{adminPhoneController.cellPhone.phoneId}" />
- <f:param name="contactId" value="#{contact.contactId}" />
- </h:link>
- </li>
- </ul>
- </div>
- </h:column>
- </h:dataTable>
- </ui:define>
- </ui:composition>
-</html>
<f:metadata>
<f:viewParam name="phoneId" value="#{adminPhoneController.cellPhone}" converter="CellphoneConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_PHONE_ID_NOT_SET}" />
- <f:viewParam name="contactId" value="#{adminPhoneController.contact}" converter="ContactConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_CONTACT_ID_NOT_SET}" />
+ <f:viewParam name="contactId" value="#{beanHelper.contact}" converter="ContactConverter" required="true" requiredMessage="#{msg.ERROR_PARAMETER_CONTACT_ID_NOT_SET}" />
</f:metadata>
<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl">