From d0592c3d38c59d5a263a5fb70be8af6dc97f1692 Mon Sep 17 00:00:00 2001 From: kurund Date: Sun, 2 Mar 2014 04:27:36 +0530 Subject: [PATCH] added relationship selector on user dashboard CRM-14201 ---------------------------------------- * CRM-14201: Contact Relationships tab needs pagination http://issues.civicrm.org/jira/browse/CRM-14201 --- CRM/Contact/BAO/Relationship.php | 34 ++++++++++++++++++++----- CRM/Contact/Page/View/UserDashBoard.php | 9 +------ 2 files changed, 28 insertions(+), 15 deletions(-) diff --git a/CRM/Contact/BAO/Relationship.php b/CRM/Contact/BAO/Relationship.php index ba4fb7a13e..fc8f192a0a 100644 --- a/CRM/Contact/BAO/Relationship.php +++ b/CRM/Contact/BAO/Relationship.php @@ -1639,21 +1639,41 @@ AND cc.sort_name LIKE '%$name%'"; } $mask = CRM_Core_Action::mask($permissions); + if ($params['context'] != 'user') { + $links = CRM_Contact_Page_View_Relationship::links(); + $permissionedContacts = FALSE; + } + else { + $links = CRM_Contact_Page_View_UserDashBoard::links(); + $permissionedContacts = TRUE; + $mask = NULL; + } // get contact relationships $relationships = CRM_Contact_BAO_Relationship::getRelationship($params['contact_id'], $relationshipStatus, $params['rp'], 0, 0, - CRM_Contact_Page_View_Relationship::links(), $mask, - FALSE, + $links, $mask, + $permissionedContacts, $params ); $contactRelationships = array(); + $params['total'] = 0; if (!empty($relationships)) { - // add total - $params['total'] = CRM_Contact_BAO_Relationship::getRelationship($params['contact_id'], - $relationshipStatus, - 0, 1); + // get the total relationships + if ($params['context'] != 'user') { + $params['total'] = CRM_Contact_BAO_Relationship::getRelationship($params['contact_id'], + $relationshipStatus, 0, 1, 0, NULL, NULL, $permissionedContacts); + } + else { + // FIX ME: 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, TRUE + ); + $params['total'] = count($permissionedRelationships); + } // format params foreach ($relationships as $relationshipId => $values) { @@ -1667,7 +1687,7 @@ AND cc.sort_name LIKE '%$name%'"; 'civicrm/contact/view/rel', "action=view&reset=1&cid={$values['contact_id_a']}&id={$values['id']}&rtype={$values['rtype']}"); - if ($params['context'] != 'past') { + 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) ) { diff --git a/CRM/Contact/Page/View/UserDashBoard.php b/CRM/Contact/Page/View/UserDashBoard.php index e10a01829c..43ffbe9423 100644 --- a/CRM/Contact/Page/View/UserDashBoard.php +++ b/CRM/Contact/Page/View/UserDashBoard.php @@ -151,18 +151,11 @@ class CRM_Contact_Page_View_UserDashBoard extends CRM_Core_Page { if (!empty($this->_userOptions['Permissioned Orgs'])) { $dashboardElements[] = array( 'class' => 'crm-dashboard-permissionedOrgs', - 'templatePath' => 'CRM/Contact/Page/View/Relationship.tpl', + 'templatePath' => 'CRM/Contact/Page/View/RelationshipSelector.tpl', 'sectionTitle' => ts('Your Contacts / Organizations'), 'weight' => 40, ); - $links = self::links(); - $currentRelationships = CRM_Contact_BAO_Relationship::getRelationship($this->_contactId, - CRM_Contact_BAO_Relationship::CURRENT, - 0, 0, 0, - $links, NULL, TRUE - ); - $this->assign('currentRelationships', $currentRelationships); } if (!empty($this->_userOptions['PCP'])) { -- 2.25.1