/** * This function is called when action is browse * * return null * @access public */ function browse() { $links =& CRM_Contact_Page_View_Relationship::links(); $mask = CRM_Core_Action::mask($this->_permission); $currentRelationships = CRM_Contact_BAO_Relationship::getRelationship($this->_contactId, CRM_CONTACT_BAO_RELATIONSHIP_CURRENT, 0, 0, 0, $links, $mask); $pastRelationships = CRM_Contact_BAO_Relationship::getRelationship($this->_contactId, CRM_CONTACT_BAO_RELATIONSHIP_PAST, 0, 0, 0, $links, $mask); $disableRelationships = CRM_Contact_BAO_Relationship::getRelationship($this->_contactId, CRM_CONTACT_BAO_RELATIONSHIP_DISABLED, 0, 0, 0, $links, $mask); $this->assign('currentRelationships', $currentRelationships); $this->assign('pastRelationships', $pastRelationships); $this->assign('disableRelationships', $disableRelationships); }
/** * Get action links. * * @return array * (reference) of action links */ public static function &links() { if (!self::$_links) { self::$_links = array(CRM_Core_Action::VIEW => array('name' => ts('View'), 'url' => 'civicrm/contact/view/rel', 'qs' => 'action=view&reset=1&cid=%%cid%%&id=%%id%%&rtype=%%rtype%%&selectedChild=rel', 'title' => ts('View Relationship')), CRM_Core_Action::UPDATE => array('name' => ts('Edit'), 'url' => 'civicrm/contact/view/rel', 'qs' => 'action=update&reset=1&cid=%%cid%%&id=%%id%%&rtype=%%rtype%%', 'title' => ts('Edit Relationship')), CRM_Core_Action::ENABLE => array('name' => ts('Enable'), 'ref' => 'crm-enable-disable', 'title' => ts('Enable Relationship')), CRM_Core_Action::DISABLE => array('name' => ts('Disable'), 'ref' => 'crm-enable-disable', 'title' => ts('Disable Relationship')), CRM_Core_Action::DELETE => array('name' => ts('Delete'), 'url' => 'civicrm/contact/view/rel', 'qs' => 'action=delete&reset=1&cid=%%cid%%&id=%%id%%&rtype=%%rtype%%', 'title' => ts('Delete Relationship')), CRM_Core_Action::NONE => array('name' => ts('Manage Case'), 'url' => 'civicrm/contact/view/case', 'qs' => 'action=view&reset=1&cid=%%clientid%%&id=%%caseid%%', 'title' => ts('Manage Case'))); } return self::$_links; }
/** * Wrapper for contact relationship selector. * * @param array $params * Associated array for params record id. * * @return array * associated array of contact relationships */ public static function getContactRelationshipSelector(&$params) { // format the params $params['offset'] = ($params['page'] - 1) * $params['rp']; $params['sort'] = CRM_Utils_Array::value('sortBy', $params); if ($params['context'] == 'past') { $relationshipStatus = CRM_Contact_BAO_Relationship::INACTIVE; } elseif ($params['context'] == 'all') { $relationshipStatus = CRM_Contact_BAO_Relationship::ALL; } else { $relationshipStatus = CRM_Contact_BAO_Relationship::CURRENT; } // check logged in user for permission $page = new CRM_Core_Page(); CRM_Contact_Page_View::checkUserPermission($page, $params['contact_id']); $permissions = array($page->_permission); if ($page->_permission == CRM_Core_Permission::EDIT) { $permissions[] = CRM_Core_Permission::DELETE; } $mask = CRM_Core_Action::mask($permissions); $permissionedContacts = TRUE; if ($params['context'] != 'user') { $links = CRM_Contact_Page_View_Relationship::links(); } else { $links = CRM_Contact_Page_View_UserDashBoard::links(); $mask = NULL; } // get contact relationships $relationships = CRM_Contact_BAO_Relationship::getRelationship($params['contact_id'], $relationshipStatus, $params['rp'], 0, 0, $links, $mask, $permissionedContacts, $params); $contactRelationships = array(); $params['total'] = 0; if (!empty($relationships)) { // FIXME: we cannot directly determine total permissioned relationship, hence re-fire query $permissionedRelationships = CRM_Contact_BAO_Relationship::getRelationship($params['contact_id'], $relationshipStatus, 0, 0, 0, NULL, NULL, $permissionedContacts); $params['total'] = count($permissionedRelationships); // format params foreach ($relationships as $relationshipId => $values) { $relationship = array(); $relationship['DT_RowId'] = $values['id']; $relationship['DT_RowClass'] = 'crm-entity'; if ($values['is_active'] == 0) { $relationship['DT_RowClass'] .= ' disabled'; } $relationship['DT_RowAttr'] = array(); $relationship['DT_RowAttr']['data-entity'] = 'relationship'; $relationship['DT_RowAttr']['data-id'] = $values['id']; //Add image icon for related contacts: CRM-14919 $icon = CRM_Contact_BAO_Contact_Utils::getImage($values['contact_type'], FALSE, $values['cid']); $relationship['sort_name'] = $icon . ' ' . CRM_Utils_System::href($values['name'], 'civicrm/contact/view', "reset=1&cid={$values['cid']}"); $relationship['relation'] = CRM_Utils_System::href($values['relation'], 'civicrm/contact/view/rel', "action=view&reset=1&cid={$values['cid']}&id={$values['id']}&rtype={$values['rtype']}"); if ($params['context'] == 'current') { if ($params['contact_id'] == $values['contact_id_a'] and $values['is_permission_a_b'] == 1 or $params['contact_id'] == $values['contact_id_b'] and $values['is_permission_b_a'] == 1) { $relationship['sort_name'] .= '<span id="permission-a-b" class="crm-marker permission-relationship"> *</span>'; } if ($values['cid'] == $values['contact_id_a'] and $values['is_permission_a_b'] == 1 or $values['cid'] == $values['contact_id_b'] and $values['is_permission_b_a'] == 1) { $relationship['relation'] .= '<span id="permission-b-a" class="crm-marker permission-relationship"> *</span>'; } } if (!empty($values['description'])) { $relationship['relation'] .= "<p class='description'>{$values['description']}</p>"; } $relationship['start_date'] = CRM_Utils_Date::customFormat($values['start_date']); $relationship['end_date'] = CRM_Utils_Date::customFormat($values['end_date']); $relationship['city'] = $values['city']; $relationship['state'] = $values['state']; $relationship['email'] = $values['email']; $relationship['phone'] = $values['phone']; $relationship['links'] = $values['action']; array_push($contactRelationships, $relationship); } } $relationshipsDT = array(); $relationshipsDT['data'] = $contactRelationships; $relationshipsDT['recordsTotal'] = $params['total']; $relationshipsDT['recordsFiltered'] = $params['total']; return $relationshipsDT; }
/** * Get action links * * @return array (reference) of action links * @static */ static function &links() { if (!self::$_links) { $deleteExtra = ts('Are you sure you want to delete this relationship?'); $disableExtra = ts('Are you sure you want to disable this relationship?'); $enableExtra = ts('Are you sure you want to re-enable this relationship?'); self::$_links = array(CRM_Core_Action::VIEW => array('name' => ts('View'), 'url' => 'civicrm/contact/view/rel', 'qs' => 'action=view&reset=1&cid=%%cid%%&id=%%id%%&rtype=%%rtype%%&selectedChild=rel', 'title' => ts('View Relationship')), CRM_Core_Action::UPDATE => array('name' => ts('Edit'), 'url' => 'civicrm/contact/view/rel', 'qs' => 'action=update&reset=1&cid=%%cid%%&id=%%id%%&rtype=%%rtype%%', 'title' => ts('Edit Relationship')), CRM_Core_Action::ENABLE => array('name' => ts('Enable'), 'url' => 'civicrm/contact/view/rel', 'qs' => 'action=enable&reset=1&cid=%%cid%%&id=%%id%%&rtype=%%rtype%%&selectedChild=rel', 'extra' => 'onclick = "return confirm(\'' . $enableExtra . '\');"', 'title' => ts('Enable Relationship')), CRM_Core_Action::DISABLE => array('name' => ts('Disable'), 'url' => 'civicrm/contact/view/rel', 'qs' => 'action=disable&reset=1&cid=%%cid%%&id=%%id%%&rtype=%%rtype%%&selectedChild=rel', 'extra' => 'onclick = "return confirm(\'' . $disableExtra . '\');"', 'title' => ts('Disable Relationship')), CRM_Core_Action::DELETE => array('name' => ts('Delete'), 'url' => 'civicrm/contact/view/rel', 'qs' => 'action=delete&reset=1&cid=%%cid%%&id=%%id%%&rtype=%%rtype%%', 'extra' => 'onclick = "if (confirm(\'' . $deleteExtra . '\') ) this.href+=\'&confirmed=1\'; else return false;"', 'title' => ts('Delete Relationship'))); } return self::$_links; }