/**
* TNTConcept Easy Enterprise Management by Autentia Real Bussiness Solution S.L.
* Copyright (C) 2007 Autentia Real Bussiness Solution S.L.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.autentia.tnt.bean.contacts;
import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import javax.faces.component.UIComponent;
import javax.faces.component.UIData;
import javax.faces.component.html.HtmlDataTable;
import javax.faces.event.PhaseId;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;
import org.acegisecurity.acls.domain.BasePermission;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.autentia.tnt.bean.BaseBean;
import com.autentia.tnt.bean.NavigationResults;
import com.autentia.tnt.bean.util.SendMailBean;
import com.autentia.tnt.bean.util.SendMailBeanEvent;
import com.autentia.tnt.bean.util.SendMailBeanListener;
import com.autentia.tnt.businessobject.Contact;
import com.autentia.tnt.businessobject.ContactInfo;
import com.autentia.tnt.businessobject.Department;
import com.autentia.tnt.businessobject.Organization;
import com.autentia.tnt.businessobject.Position;
import com.autentia.tnt.businessobject.Province;
import com.autentia.tnt.businessobject.Tag;
import com.autentia.tnt.businessobject.User;
import com.autentia.tnt.dao.SortCriteria;
import com.autentia.tnt.dao.search.ContactSearch;
import com.autentia.tnt.dao.search.DepartmentSearch;
import com.autentia.tnt.dao.search.PositionSearch;
import com.autentia.tnt.manager.admin.DepartmentManager;
import com.autentia.tnt.manager.admin.ProvinceManager;
import com.autentia.tnt.manager.admin.UserManager;
import com.autentia.tnt.manager.contacts.ContactManager;
import com.autentia.tnt.manager.contacts.OrganizationManager;
import com.autentia.tnt.manager.contacts.PositionManager;
import com.autentia.tnt.manager.security.AuthenticationManager;
import com.autentia.tnt.manager.security.Permission;
import com.autentia.tnt.manager.security.impl.fixed.DefaultSecurityConfiguration;
import com.autentia.tnt.manager.tags.TagManager;
import com.autentia.tnt.tracking.EntityChange;
import com.autentia.tnt.upload.Uploader;
import com.autentia.tnt.upload.UploaderFactory;
import com.autentia.tnt.util.FacesUtils;
import com.autentia.tnt.util.SpringUtils;
/**
* UI bean for Contact objects.
*
* @author stajanov code generator
*/
public class ContactBean extends BaseBean implements SendMailBeanListener {
/** Serial version field */
private static final long serialVersionUID = -1L;
private static final String OUTCOME_NOTIFY = "notify";
private static AuthenticationManager authManager = AuthenticationManager
.getDefault();
private static DefaultSecurityConfiguration securityConfiguration = (DefaultSecurityConfiguration)SpringUtils
.getSpringBean("securityConfiguration");
/**
* Send e-mail message to contact to notify him about his inclussion in our
* archive of contacts
*
* @return
*/
public String sendMail() {
User actualUser = authManager.getCurrentPrincipal().getUser();
List<String> to = new ArrayList<String>();
to.add(contact.getName() + " <" + contact.getEmail() + ">");
SendMailBean sendMail = (SendMailBean) FacesUtils
.getBean("sendMailBean");
sendMail.setFrom(actualUser.getName() + " <" + actualUser.getEmail()
+ ">");
sendMail.setTo(to);
sendMail.setSubject(FacesUtils
.formatMessage("editContact.sendMailSubject"));
sendMail.setMessage(FacesUtils.formatMessage(
"editContact.sendMailMessage", contact.getName(), actualUser
.getName()));
sendMail.addSendMailBeanListener(this);
return OUTCOME_NOTIFY;
}
public void mailSent(SendMailBeanEvent e) {
contact.setNotified(true);
if (contact.getId() == null) {
manager.insertEntity(contact);
} else {
manager.updateEntity(contact);
}
}
public void mailDiscarded(SendMailBeanEvent e) {
}
/* contact - generated by stajanov (do not edit/delete) */
/** Logger */
private static final Log log = LogFactory.getLog(ContactBean.class);
/** Active search object */
private ContactSearch search = new ContactSearch();
/** Manager */
private static ContactManager manager = ContactManager.getDefault();
/** Upload service */
private static final Uploader uploader = UploaderFactory
.getInstance("contact");
/** Active Contact object */
private Contact contact;
/** Default sort column */
private String sortColumn = "name";
/** Default sort order */
private boolean sortAscending = true;
/** Quick search letter for ABC pager control */
private Character letter;
/**
* List contacts. Order depends on Faces parameter sort.
*
* @return the list of all contacts sorted by requested criterion
*/
public List<Contact> getAll() {
return manager.getAllEntities(search, new SortCriteria(sortColumn,
sortAscending));
}
// Getters to list possible values of related entities
/**
* Get the list of all organizations
*
* @return the list of all organizations
*/
public List<SelectItem> getOrganizations() {
List<Organization> refs = OrganizationManager.getDefault()
.getAllEntities(null, new SortCriteria("name"));
ArrayList<SelectItem> ret = new ArrayList<SelectItem>();
for (Organization ref : refs) {
ret.add(new SelectItem(ref, ref.getName()));
}
return ret;
}
// Getters to list possible values of enum fields
// Methods to create/remove instances of one-to-many entities (slave
// entities)
/**
* Whether or not create button is available for user
*
* @return true if user can create objects of type Contact
*/
public boolean isCreateAvailable() {
return SpringUtils.isRolePermissionGranted(Permission
.Entity_Create(Contact.class));
}
/**
* Whether or not edit button is available for user
*
* @return true if user can edit current object
*/
public boolean isEditAvailable() {
return SpringUtils
.isAclPermissionGranted(contact, BasePermission.WRITE);
}
/**
* Whether or not user is with ADmin role
*
* @return true if user is with Admin role
*/
public boolean isAdminUser() {
return securityConfiguration.isUserInAdminRole(authManager.getCurrentPrincipal());
}
/**
* Whether or not delete button is available for user
*
* @return true if user can delete current object
*/
public boolean isDeleteAvailable() {
if (contact == null)
return false;
return (contact.getId() != null)
&& SpringUtils.isAclPermissionGranted(contact,
BasePermission.DELETE);
}
/**
* Go to create page
*
* @return forward to CREATE page
*/
public String create() {
contact = new Contact();
contact.addOwner(authManager.getCurrentPrincipal().getUser());
return NavigationResults.CREATE;
}
/**
* Go to detail page
*
* @return forward to DETAIL page
*/
public String detail() {
Integer id = Integer.parseInt(FacesUtils.getRequestParameter(ROW_ID));
contact = manager.getEntityById(id);
contact.getChangesHistory().isEmpty();
return SpringUtils
.isAclPermissionGranted(contact, BasePermission.WRITE) ? NavigationResults.EDIT
: NavigationResults.DETAIL;
}
/**
* Save bean and stay on it
*
* @return forward to list page
*/
public String save() {
if (contact.getId() == null) {
manager.insertEntity(contact);
} else {
manager.updateEntity(contact);
}
contact = manager.addOrganizationDepartmentOrPositionByDefault(contact, selectedOrganization, selectedDepartment, selectedPosition);
// Calls an after save action
String result = doAfterSave(NavigationResults.LIST);
// Unselect object
contact = null;
selectedOrganization = null;
selectedDepartment = null;
selectedPosition = null;
return result;
}
/**
* Delete bean and go back to beans list
*
* @return forward to LIST page
*/
public String delete() {
manager.deleteEntity(contact);
contact = null;
return NavigationResults.LIST;
}
/**
* Go back to beans list
*
* @return forward to LIST page
*/
public String list() {
return NavigationResults.LIST;
}
/**
* Reset search criteria
*
* @return forward to LIST page
*/
public String reset() {
search.reset();
return list();
}
/**
* Go to search page
*
* @return forward to SEARCH page
*/
public String search() {
return NavigationResults.SEARCH;
}
public String advancedSearch() {
return NavigationResults.ADVANCED_SEARCH;
}
/**
* Check if we have an active object.
*
* @return true is an object is selected
*/
public boolean isContactSelected() {
return contact != null;
}
// Getters and setters to manipulate sorting
public boolean isSortAscending() {
return sortAscending;
}
public void setSortAscending(boolean sortAscending) {
this.sortAscending = sortAscending;
}
public String getSortColumn() {
return sortColumn;
}
public void setSortColumn(String sortColumn) {
this.sortColumn = sortColumn;
}
// Getters and setters to handle search
public ContactSearch getSearch() {
return search;
}
public String getSearchName() {
return search.getName();
}
public void setSearchName(String val) {
if (search.isNameSet()) {
search.setName(val);
}
}
public boolean isSearchNameValid() {
return search.isNameSet();
}
public void setSearchNameValid(boolean val) {
if (val) {
search.setName(search.getName());
} else {
search.unsetName();
}
}
public String getSearchEmail() {
return search.getEmail();
}
public void setSearchEmail(String val) {
if (search.isEmailSet()) {
search.setEmail(val);
}
}
public boolean isSearchEmailValid() {
return search.isEmailSet();
}
public void setSearchEmailValid(boolean val) {
if (val) {
search.setEmail(search.getEmail());
} else {
search.unsetEmail();
}
}
public String getSearchEmail2() {
return search.getEmail2();
}
public void setSearchEmail2(String val) {
if (search.isEmail2Set()) {
search.setEmail2(val);
}
}
public boolean isSearchEmail2Valid() {
return search.isEmail2Set();
}
public void setSearchEmail2Valid(boolean val) {
if (val) {
search.setEmail2(search.getEmail2());
} else {
search.unsetEmail2();
}
}
public String getSearchPhone() {
return search.getPhone();
}
public void setSearchPhone(String val) {
if (search.isPhoneSet()) {
search.setPhone(val);
}
}
public boolean isSearchPhoneValid() {
return search.isPhoneSet();
}
public void setSearchPhoneValid(boolean val) {
if (val) {
search.setPhone(search.getPhone());
} else {
search.unsetPhone();
}
}
public String getSearchPhone2() {
return search.getPhone2();
}
public void setSearchPhone2(String val) {
if (search.isPhone2Set()) {
search.setPhone2(val);
}
}
public boolean isSearchPhone2Valid() {
return search.isPhone2Set();
}
public void setSearchPhone2Valid(boolean val) {
if (val) {
search.setPhone2(search.getPhone2());
} else {
search.unsetPhone2();
}
}
public String getSearchMobile() {
return search.getMobile();
}
public void setSearchMobile(String val) {
if (search.isMobileSet()) {
search.setMobile(val);
}
}
public boolean isSearchMobileValid() {
return search.isMobileSet();
}
public void setSearchMobileValid(boolean val) {
if (val) {
search.setMobile(search.getMobile());
} else {
search.unsetMobile();
}
}
public String getSearchFax() {
return search.getFax();
}
public void setSearchFax(String val) {
if (search.isFaxSet()) {
search.setFax(val);
}
}
public boolean isSearchFaxValid() {
return search.isFaxSet();
}
public void setSearchFaxValid(boolean val) {
if (val) {
search.setFax(search.getFax());
} else {
search.unsetFax();
}
}
public String getSearchCountry() {
return search.getCountry();
}
public void setSearchCountry(String val) {
if (search.isCountrySet()) {
search.setCountry(val);
}
}
public boolean isSearchCountryValid() {
return search.isCountrySet();
}
public void setSearchCountryValid(boolean val) {
if (val) {
search.setCountry(search.getCountry());
} else {
search.unsetCountry();
}
}
public Province getSearchProvince() {
return search.getProvince();
}
public void setSearchProvince(Province val) {
if (search.isProvinceSet()) {
search.setProvince(val);
}
}
public boolean isSearchProvinceValid() {
return search.isProvinceSet();
}
public void setSearchProvinceValid(boolean val) {
if (val) {
search.setProvince(search.getProvince());
} else {
search.unsetProvince();
}
}
public String getSearchCity() {
return search.getCity();
}
public void setSearchCity(String val) {
if (search.isCitySet()) {
search.setCity(val);
}
}
public boolean isSearchCityValid() {
return search.isCitySet();
}
public void setSearchCityValid(boolean val) {
if (val) {
search.setCity(search.getCity());
} else {
search.unsetCity();
}
}
public String getSearchPostalCode() {
return search.getPostalCode();
}
public void setSearchPostalCode(String val) {
if (search.isPostalCodeSet()) {
search.setPostalCode(val);
}
}
public boolean isSearchPostalCodeValid() {
return search.isPostalCodeSet();
}
public void setSearchPostalCodeValid(boolean val) {
if (val) {
search.setPostalCode(search.getPostalCode());
} else {
search.unsetPostalCode();
}
}
public String getSearchAddress() {
return search.getAddress();
}
public void setSearchAddress(String val) {
if (search.isAddressSet()) {
search.setAddress(val);
}
}
public boolean isSearchAddressValid() {
return search.isAddressSet();
}
public void setSearchAddressValid(boolean val) {
if (val) {
search.setAddress(search.getAddress());
} else {
search.unsetAddress();
}
}
public java.lang.Boolean getSearchNotified() {
return search.getNotified();
}
public void setSearchNotified(java.lang.Boolean val) {
if (search.isNotifiedSet()) {
search.setNotified(val);
}
}
public boolean isSearchNotifiedValid() {
return search.isNotifiedSet();
}
public void setSearchNotifiedValid(boolean val) {
if (val) {
search.setNotified(search.getNotified());
} else {
search.unsetNotified();
}
}
public Organization getSearchOrganization(){
return search.getOrganization();
}
public void setSearchOrganization( Organization val ){
if( search.isOrganizationSet() ) {
search.setOrganization( val );
}
}
public boolean isSearchOrganizationValid(){
return search.isOrganizationSet();
}
public void setSearchOrganizationValid( boolean val ){
if( val ){
search.setOrganization( search.getOrganization() );
} else {
search.unsetOrganization();
}
}
/**
* Handle an ABC pager letter click: filter objects by specified starting
* letter
*/
public void letterClicked() {
if (letter != null) {
UIComponent comp = FacesUtils.getComponent("contacts:list");
HtmlDataTable tabla = (HtmlDataTable) comp;
tabla.setFirst(0);
search.setName(letter + "%");
} else {
search.unsetName();
}
}
public Character getLetter() {
return letter;
}
public void setLetter(Character letter) {
this.letter = letter;
}
public List<SelectItem> getProvinces() {
List<Province> refs = ProvinceManager.getDefault().getAllEntities(null,
new SortCriteria("name"));
ArrayList<SelectItem> ret = new ArrayList<SelectItem>();
for (Province ref : refs) {
ret.add(new SelectItem(ref, ref.getName()));
}
return ret;
}
// Getters and setters to handle uploads
// Getters and setters to manipulate active Contact object
public java.lang.Integer getId() {
return contact.getId();
}
public String getName() {
return contact.getName();
}
public void setName(String name) {
contact.setName(name);
}
public String getEmail() {
return contact.getEmail();
}
public void setEmail(String email) {
contact.setEmail(email);
}
public String getEmail2() {
return contact.getEmail2();
}
public void setEmail2(String email2) {
contact.setEmail2(email2);
}
public String getPhone() {
return contact.getPhone();
}
public void setPhone(String phone) {
contact.setPhone(phone);
}
public String getPhone2() {
return contact.getPhone2();
}
public void setPhone2(String phone2) {
contact.setPhone2(phone2);
}
public String getFax() {
return contact.getFax();
}
public void setFax(String fax) {
contact.setFax(fax);
}
public String getCountry() {
return contact.getCountry();
}
public void setCountry(String country) {
contact.setCountry(country);
}
public String getCity() {
return contact.getCity();
}
public void setCity(String city) {
contact.setCity(city);
}
public String getMobile() {
return contact.getMobile();
}
public void setMobile(String mobile) {
contact.setMobile(mobile);
}
public void setPostalCode(String postalCode) {
contact.setPostalCode(postalCode);
}
public String getPostalCode() {
return contact.getPostalCode();
}
public void setAddress(String address) {
contact.setAddress(address);
}
public String getAddress() {
return contact.getAddress();
}
public Province getProvince() {
return contact.getProvince();
}
public void setProvince(Province province) {
contact.setProvince(province);
}
public boolean isNotified() {
return contact.isNotified();
}
public void setNotified(boolean notified) {
contact.setNotified(notified);
}
public Integer getOwnerId() {
return contact.getOwnerId();
}
public void setOwnerId(Integer ownerId) {
contact.setOwnerId(ownerId);
}
public Integer getDepartmentId() {
return contact.getDepartmentId();
}
public void setDepartmentId(Integer departmentId) {
contact.setDepartmentId(departmentId);
}
public Date getInsertDate() {
return contact.getInsertDate();
}
public void setInsertDate(Date insertDate) {
contact.setInsertDate(insertDate);
}
public Date getUpdateDate() {
return contact.getUpdateDate();
}
public void setUpdateDate(Date updateDate) {
contact.setUpdateDate(updateDate);
}
/* contact - generated by stajanov (do not edit/delete) */
private Organization selectedOrganization;
private Department selectedDepartment;
private Position selectedPosition;
public Organization getSelectedOrganization() {
return selectedOrganization;
}
public void setSelectedOrganization(Organization selectedOrganization) {
this.selectedOrganization = selectedOrganization;
}
public Department getSelectedDepartment() {
return selectedDepartment;
}
public void setSelectedDepartment(Department selectedDepartment) {
this.selectedDepartment = selectedDepartment;
}
public Position getSelectedPosition() {
return selectedPosition;
}
public void setSelectedPosition(Position selectedPosition) {
this.selectedPosition = selectedPosition;
}
public List<SelectItem> getAllOrganizations() {
final List<Organization> refs = OrganizationManager.getDefault()
.getAllEntities(null, new SortCriteria("name"));
final List<SelectItem> ret = new ArrayList<SelectItem>();
ret.add(new SelectItem(null, FacesUtils
.getMessage("contact.selectOneOrganization")));
for (Organization ref : refs) {
String name = ref.getName();
if (name.length() > 97) {
name = name.substring(0, 97) + "...";
}
ret.add(new SelectItem(ref, name));
}
return ret;
}
public List<SelectItem> getAllDepartmentsOfCompany() {
final Set<Organization> organizations = new LinkedHashSet<Organization>();
organizations.add(this.getSelectedOrganization());
final DepartmentSearch departmentSearch = new DepartmentSearch();
departmentSearch.setOrganization(this.getSelectedOrganization());
final List<Department> refs = DepartmentManager.getDefault()
.getAllEntities(departmentSearch, new SortCriteria("name"));
final List<SelectItem> ret = new ArrayList<SelectItem>();
ret.add(new SelectItem(null, FacesUtils
.getMessage("contact.selectOneDepartment")));
for (Department ref : refs) {
ret.add(new SelectItem(ref, ref.getName()));
}
return ret;
}
public List<SelectItem> getAllPositionsOfDepartment() {
final PositionSearch positionSearch = new PositionSearch();
positionSearch.setDepartmentId(this.getSelectedDepartment().getId());
positionSearch.setDeleted(false);
final List<Position> refs = PositionManager.getDefault()
.getAllEntities(positionSearch, new SortCriteria("name"));
final List<SelectItem> ret = new ArrayList<SelectItem>();
ret.add(new SelectItem(null, FacesUtils
.getMessage("contact.selectOnePosition")));
for (Position ref : refs) {
ret.add(new SelectItem(ref, ref.getName()));
}
return ret;
}
public void changeOrganizationValue(ValueChangeEvent event) {
if (event.getPhaseId() == PhaseId.INVOKE_APPLICATION) {
this.selectedDepartment=null;
this.selectedPosition=null;
FacesUtils.renderResponse();
} else {
event.setPhaseId(PhaseId.INVOKE_APPLICATION);
event.queue();
}
}
public void changeDepartmentValue(ValueChangeEvent event) {
if (event.getPhaseId() == PhaseId.INVOKE_APPLICATION) {
this.selectedPosition=null;
FacesUtils.renderResponse();
} else {
event.setPhaseId(PhaseId.INVOKE_APPLICATION);
event.queue();
}
}
public void changeValue(ValueChangeEvent event) {
if (event.getPhaseId() == PhaseId.INVOKE_APPLICATION) {
FacesUtils.renderResponse();
} else {
event.setPhaseId(PhaseId.INVOKE_APPLICATION);
event.queue();
}
}
public String addPosition() {
final ContactInfo contactInfo = new ContactInfo();
contactInfo.setContact(contact);
contactInfo.setDepartment(selectedDepartment);
contactInfo.setOrganization(selectedOrganization);
contactInfo.setPosition(selectedPosition);
// if (contact.getContactInfos() == null) {
// contact.setContactInfos(new LinkedHashSet<ContactInfo>());
// }
contact.addContactInfo(contactInfo);
selectedOrganization = null;
selectedDepartment = null;
selectedPosition = null;
for (ContactInfo contactInf : contact.getContactInfos()) {
final ContactInfo c = new ContactInfo();
c.setContact(contactInf.getContact());
c.setDepartment(contactInf.getDepartment());
c.setOrganization(contactInf.getOrganization());
c.setPosition(contactInf.getPosition());
}
return NavigationResults.EDIT;
}
public boolean isShowDepartmentSelection() {
return selectedOrganization != null
&& selectedOrganization.getDepartments() != null
&& !selectedOrganization.getDepartments().isEmpty();
}
public boolean isShowPositionSelection() {
return selectedDepartment != null
&& selectedDepartment.getPositions() != null
&& !selectedDepartment.getPositions().isEmpty();
}
public boolean isShowAddPosition() {
return selectedPosition != null;
}
public Set<ContactInfo> getContactInfos() {
return contact.getContactInfos();
}
public String deleteContactInfo() {
UIData table = (UIData) FacesUtils.getComponent("contact:contactInfos");
ContactInfo toDelete = (ContactInfo) table.getRowData();
contact.removeContactInfo(toDelete);
return NavigationResults.EDIT;
}
private Tag selectedTag;
public Tag getSelectedTag() {
return selectedTag;
}
public void setSelectedTag(Tag selectedTag) {
this.selectedTag = selectedTag;
}
public List<SelectItem> getAllTags() {
final List<Tag> refs = TagManager.getDefault().getAllEntities(
null, new SortCriteria("id"));
final List<SelectItem> ret = new ArrayList<SelectItem>();
for (Tag ref : refs) {
ret.add(new SelectItem(ref, ref.getName()));
}
return ret;
}
public String addTag() {
contact.addTag(getSelectedTag());
return NavigationResults.EDIT;
}
public Set<Tag> getDepartmentTags() {
return contact.getTags();
}
// public void setTags(Set<Tag> tags) {
// contact.setTags(tags);
// }
public String deleteTag() {
final UIData table = (UIData) FacesUtils.getComponent("contact:tags");
final Tag toDelete = (Tag) table.getRowData();
contact.removeTag(toDelete);
return NavigationResults.EDIT;
}
public boolean isAreTagsToSelect() {
return !getAllTags().isEmpty();
}
public boolean isAreTagsSelected() {
return !contact.getTags().isEmpty();
}
public boolean isArePositionsSelected() {
return !contact.getContactInfos().isEmpty();
}
private User selectedOwner;
public User getSelectedOwner() {
return selectedOwner;
}
public void setSelectedOwner(User selectedOwner) {
this.selectedOwner = selectedOwner;
}
public List<SelectItem> getAllUsers() {
final List<User> refs= UserManager.getDefault().getAllEntities(null, new SortCriteria("name"));
final List<SelectItem> ret = new ArrayList<SelectItem>();
for (User ref : refs) {
ret.add(new SelectItem(ref, ref.getName()));
}
return ret;
}
public String addOwner() {
contact.addOwner(selectedOwner);
return NavigationResults.EDIT;
}
public boolean isAreOwnersSelected() {
return !contact.getOwners().isEmpty();
}
public Set<User> getOwners() {
return contact.getOwners();
}
public String deleteOwner() {
final UIData table = (UIData)FacesUtils.getComponent("contact:owners");
final User toDelete = (User)table.getRowData();
contact.removeOwner(toDelete);
if (contact.getOwners().isEmpty()) {
FacesUtils.addWarningMessage("contact:ownersList",
"editContact.emptyOwners", null);
}
return NavigationResults.EDIT;
}
/**
* Devuelve el histórico del puesto
*/
public Set<EntityChange> getHistory() {
return contact.getChangesHistory();
}
/**
* Navega hacia la página de histórico
*/
public String showHistory() {
final Integer id = Integer.parseInt(FacesUtils.getRequestParameter(ROW_ID));
contact = manager.getEntityById(id);
return "changes";
}
/** Changes Datatable only for showing texts purposes **/
private UIData changesDataTable;
public UIData getChangesDataTable() {
return changesDataTable;
}
public void setChangesDataTable(UIData changesDataTable) {
this.changesDataTable = changesDataTable;
}
/**
* Returns the current change in changes data table "old value"
*
* @return
*/
public String getChangeOldValue() {
String oldValue = ((EntityChange)changesDataTable.getRowData()).getOldValue();
return getChangeValue(oldValue);
}
/**
* Returns the current change in changes data table "new value"
*
* @return
*/
public String getChangeNewValue() {
String newValue = ((EntityChange)changesDataTable.getRowData()).getNewValue();
return getChangeValue(newValue);
}
private String getChangeValue(String changeValue) {
String strReturn = changeValue;
if (changeValue != null) {
if (changeValue.equals("true")) {
strReturn = FacesUtils.formatMessage("msg.yes");
} else if (changeValue.equals("false")) {
strReturn = FacesUtils.formatMessage("msg.no");
}
}
return strReturn;
}
public boolean isRenderName() {
User user = authManager.getCurrentPrincipal().getUser();
return securityConfiguration.allowFieldAccess(Contact.class, user.getRole().getId(), "name");
}
public boolean isRenderEmail() {
User user = authManager.getCurrentPrincipal().getUser();
return securityConfiguration.allowFieldAccess(Contact.class, user.getRole().getId(), "email");
}
public boolean isRenderPhone() {
User user = authManager.getCurrentPrincipal().getUser();
return securityConfiguration.allowFieldAccess(Contact.class, user.getRole().getId(), "phone");
}
public boolean isRenderMobile() {
User user = authManager.getCurrentPrincipal().getUser();
return securityConfiguration.allowFieldAccess(Contact.class, user.getRole().getId(), "mobile");
}
public boolean isRenderNotified() {
User user = authManager.getCurrentPrincipal().getUser();
return securityConfiguration.allowFieldAccess(Contact.class, user.getRole().getId(), "notified");
}
public boolean isRenderContactInfos() {
User user = authManager.getCurrentPrincipal().getUser();
return securityConfiguration.allowFieldAccess(Contact.class, user.getRole().getId(), "contactInfos");
}
public boolean isRenderEmail2() {
User user = authManager.getCurrentPrincipal().getUser();
return securityConfiguration.allowFieldAccess(Contact.class, user.getRole().getId(), "email2");
}
public boolean isRenderPhone2() {
User user = authManager.getCurrentPrincipal().getUser();
return securityConfiguration.allowFieldAccess(Contact.class, user.getRole().getId(), "phone2");
}
public boolean isRenderFax() {
User user = authManager.getCurrentPrincipal().getUser();
return securityConfiguration.allowFieldAccess(Contact.class, user.getRole().getId(), "fax");
}
public boolean isRenderAddress() {
User user = authManager.getCurrentPrincipal().getUser();
return securityConfiguration.allowFieldAccess(Contact.class, user.getRole().getId(), "address");
}
public boolean isRenderPostalCode() {
User user = authManager.getCurrentPrincipal().getUser();
return securityConfiguration.allowFieldAccess(Contact.class, user.getRole().getId(), "postalCode");
}
public boolean isRenderCity() {
User user = authManager.getCurrentPrincipal().getUser();
return securityConfiguration.allowFieldAccess(Contact.class, user.getRole().getId(), "city");
}
public boolean isRenderCountry() {
User user = authManager.getCurrentPrincipal().getUser();
return securityConfiguration.allowFieldAccess(Contact.class, user.getRole().getId(), "country");
}
public boolean isRenderProvince() {
User user = authManager.getCurrentPrincipal().getUser();
return securityConfiguration.allowFieldAccess(Contact.class, user.getRole().getId(), "province");
}
public boolean isRenderTags() {
User user = authManager.getCurrentPrincipal().getUser();
return securityConfiguration.allowFieldAccess(Contact.class, user.getRole().getId(), "tags");
}
public boolean isRenderHistory() {
User user = authManager.getCurrentPrincipal().getUser();
return securityConfiguration.allowFieldAccess(Contact.class, user.getRole().getId(), "history");
}
public boolean isRenderOwners() {
User user = authManager.getCurrentPrincipal().getUser();
return securityConfiguration.allowFieldAccess(Contact.class, user.getRole().getId(), "owners");
}
public boolean isRenderAdvancedSearch() {
User user = authManager.getCurrentPrincipal().getUser();
return securityConfiguration.allowFieldAccess(Contact.class, user.getRole().getId(), "advancedSearch");
}
}