public function modelAction($actionData = false)
{
- $view = 'index.html';
- $option = 'list';
- $fromMemberMenu = false;
- $loggedInMember = false;
- $refType = false;
- $refTypeName = false;
- $haveMember = false;
- $this->memberID = false;
- $memberData = false;
- $memberName = false;
- $membersList = false;
- $contactsList = false;
- $haveContacts = false;
- $contactID = false;
- $contactInfo = false;
- $newContactEmailExists = false;
+ $view = 'index.html';
+ $option = 'list';
+ $fromMemberMenu = false;
+ $loggedInMember = false;
+ $refType = false;
+ $refTypeName = false;
+ $haveMember = false;
+ $this->memberID = false;
+ $memberData = false;
+ $memberName = false;
+ $membersList = false;
+ $contactsList = false;
+ $haveContacts = false;
+ $contactID = false;
+ $contactInfo = false;
+ $newContactEmailExists = false;
$newContactUsernameExists = false;
- $misMatchedWpUsers = false;
- $newContactCreated = false;
- $usingExistingWPContact = false;
- $usernameChangedToWP = false;
- $contactUpdated = false;
- $filterArchived = false;
- $filterText = false;
- $haveFilter = false;
- $userDeleted = false;
- $wpUserDeleted = false;
- $contactMembers = array();
-
- $numbContacts = false;
- $numbDisplayed = false;
- $lastDisplayed = false;
- $paging = true;
- $prevStart = false;
- $nextStart = false;
- $start = 1;
- $limit = 20; // Set to the number of listings per page
- $namesList = false;
+ $misMatchedWpUsers = false;
+ $newContactCreated = false;
+ $usingExistingWPContact = false;
+ $usernameChangedToWP = false;
+ $contactUpdated = false;
+ $filterArchived = false;
+ $filterText = false;
+ $haveFilter = false;
+ $userDeleted = false;
+ $wpUserDeleted = false;
+ $contactMembers = array();
+ $numbContacts = false;
+ $numbDisplayed = false;
+ $lastDisplayed = false;
+ $paging = true;
+ $prevStart = false;
+ $nextStart = false;
+ $start = 1;
+ $limit = 20; // Set to the number of listings per page
+ $namesList = false;
$where = '';
// Only list member contacts for the selected member
if ($haveMember) {
- $where .= " AND ref_type = ".$this->config['ref_type_numb']['Member'].' AND ref_dest = '.$this->memberID;
+ // Have to query the meta data before sending it back into
+ // db query. Would work but it's getting back a string
+ // instead of an array of ints.
+ $other_members_refs = $this->wpdb->get_var(
+ "SELECT meta_value
+ FROM " . $this->wpdb->prefix . "usermeta
+ WHERE meta_key = 'glmMembersContactMembers'
+ AND meta_value LIKE '%" . $this->memberID . "%'"
+ );
+ $where .= " AND ref_type = " . $this->config['ref_type_numb']['Member'];
+ if ( $other_members_refs ) {
+ // Make sure the $other_members_refs is correct
+ $exploded_refs = explode( ',', $other_members_refs );
+ // Clean array of empties
+ $clean_refs = array_filter( $exploded_refs );
+ $where .= " AND ( ref_dest = " . $this->memberID . "
+ OR ref_dest IN ( " . implode( ',', $clean_refs ) . " ) )";
+ } else {
+ $where .= " AND ref_dest = " . $this->memberID;
+ }
}
// Filter by text string supplied
}
// Get the total number of contacts listed
+ // echo '<pre>$where: ' . print_r( $where, true ) . '</pre>';
$numbContacts = $this->getStats($where);
// Compile template data
$templateData = array(
- 'option' => $option,
- 'loggedInMember' => $loggedInMember,
- 'fromMemberMenu' => $fromMemberMenu,
- 'haveMember' => $haveMember,
- 'memberID' => $this->memberID,
- 'memberData' => $memberData,
- 'memberName' => $memberName,
- 'membersList' => $membersList,
- 'refType' => $refType,
- 'refTypeName' => $refTypeName,
- 'haveContacts' => $haveContacts,
- 'contactsList' => $contactsList['list'],
- 'numbContacts' => $numbContacts,
- 'contactID' => $contactID,
- 'contactInfo' => $contactInfo,
- 'newContactEmailExists' => $newContactEmailExists,
+ 'option' => $option,
+ 'loggedInMember' => $loggedInMember,
+ 'fromMemberMenu' => $fromMemberMenu,
+ 'haveMember' => $haveMember,
+ 'memberID' => $this->memberID,
+ 'memberData' => $memberData,
+ 'memberName' => $memberName,
+ 'membersList' => $membersList,
+ 'refType' => $refType,
+ 'refTypeName' => $refTypeName,
+ 'haveContacts' => $haveContacts,
+ 'contactsList' => $contactsList['list'],
+ 'numbContacts' => $numbContacts,
+ 'contactID' => $contactID,
+ 'contactInfo' => $contactInfo,
+ 'newContactEmailExists' => $newContactEmailExists,
'newContactUsernameExists' => $newContactUsernameExists,
- 'misMatchedWpUsers' => $misMatchedWpUsers,
- 'usernameChangedToWP' => $usernameChangedToWP,
- 'newContactCreated' => $newContactCreated,
- 'usingExistingWPContact' => $usingExistingWPContact,
- 'contactUpdated' => $contactUpdated,
- 'filterArchived' => $filterArchived,
- 'filterText' => $filterText,
- 'haveFilter' => $haveFilter,
- 'userDeleted' => $userDeleted,
- 'wpUserDeleted' => $wpUserDeleted,
- 'contactMembers' => $contactMembers,
-
- 'numbDisplayed' => $numbDisplayed,
- 'lastDisplayed' => $lastDisplayed,
- 'paging' => $paging,
- 'prevStart' => $prevStart,
- 'nextStart' => $nextStart,
- 'start' => $start = 1,
- 'limit' => $limit,
- 'namesList' => $namesList,
- 'EntityManagerRole' => $this->config['contact_role_numb']['EntityManager']
+ 'misMatchedWpUsers' => $misMatchedWpUsers,
+ 'usernameChangedToWP' => $usernameChangedToWP,
+ 'newContactCreated' => $newContactCreated,
+ 'usingExistingWPContact' => $usingExistingWPContact,
+ 'contactUpdated' => $contactUpdated,
+ 'filterArchived' => $filterArchived,
+ 'filterText' => $filterText,
+ 'haveFilter' => $haveFilter,
+ 'userDeleted' => $userDeleted,
+ 'wpUserDeleted' => $wpUserDeleted,
+ 'contactMembers' => $contactMembers,
+ 'numbDisplayed' => $numbDisplayed,
+ 'lastDisplayed' => $lastDisplayed,
+ 'paging' => $paging,
+ 'prevStart' => $prevStart,
+ 'nextStart' => $nextStart,
+ 'start' => $start = 1,
+ 'limit' => $limit,
+ 'namesList' => $namesList,
+ 'EntityManagerRole' => $this->config['contact_role_numb']['EntityManager']
);
// Return status, any suggested view, and any data to controller
return array(
- 'status' => true,
+ 'status' => true,
'modelRedirect' => false,
- 'view' => 'admin/contacts/'.$view,
- 'data' => $templateData
+ 'view' => 'admin/contacts/'.$view,
+ 'data' => $templateData
);
}
}
}
-?>
\ No newline at end of file
+?>
<input type="hidden" name="limit" value="{$limit}">
<div class="">
- <span{if $haveFilter} class="glm-notice"{/if}><b>List Filters:</b> </span>
+ <span{if $haveFilter} class="glm-notice"{/if}><b>List Filters:</b> </span>
<span class="glm-nowrap">
<b>Text Search: </b><input id="glmContactsSearch" name="filterText" type="text" id="autoTest" value="{$filterText}">
<input type="submit" value="Submit">
</div>
-
+
<br clear="all">
<p><b>Total found:</b> {$numbContacts} </p>
-
+
{if $paging}
<input type="Submit" name="pageSelect" value="Previous {$limit} Contacts" class="button button-secondary glm-button"{if !$prevStart} disabled{/if}>
<input type="Submit" name="pageSelect" value="Next {$limit} Contacts" class="button button-secondary glm-button"{if !$nextStart} disabled{/if}>
- {/if}
-
+ {/if}
+
<table class="wp-list-table striped glm-admin-table">
<thead>
<tr>
{foreach $contactsList as $c}
<tr>
<td class="glm-shrink">
- {if $fromMemberMenu}
+ {if $fromMemberMenu}
<a href="{$thisUrl}?page=glm-members-admin-menu-member&glm_action=contacts&option=edit&member={$c.ref_dest}&contact={$c.id}">{$c.lname}, {$c.fname}</a>
{else}
<a href="{$thisUrl}?page=glm-members-admin-menu-contacts&glm_action=index&option=edit&member={$c.ref_dest}&contact={$c.id}">{$c.lname}, {$c.fname}</a>
<td class="glm-shrink">{$c.access.name}</td>
<td class="glm-nowrap">{$c.username}</td>
<td class="glm-nowrap">
- {$c.ref_type.name}:
+ {$c.ref_type.name}:
<a href="{$thisUrl}?page=glm-members-admin-menu-member&glm_action=index&member={$c.ref_dest}">{$c.ref_dest_name}</a>
</td>
</tr>
{/if}
</tbody>
</table>
-
+
{if $paging}
<input type="Submit" name="pageSelect" value="Previous {$limit} Contacts" class="button button-secondary glm-button"{if !$prevStart} disabled{/if}>
<input type="Submit" name="pageSelect" value="Next {$limit} Contacts" class="button button-secondary glm-button"{if !$nextStart} disabled{/if}>
- {/if}
+ {/if}
+
+ </form>
- </form>
-
<script type="text/javascript">
jQuery(document).ready(function($) {
-
-/*
+
+/*
// Filter triggers
$(".listFilter" ).change( function() {
-
+
var filter = '';
-
+
// Check for archived filter
if ($("#filterArchived").attr('checked')) {
filter += '&filterArchived=true';
}
-
+
// Check for text filter
var filterText = $("#filterText").val();
if (filterText != '') {
filter += '&filterText=' + encodeURIComponent(filterText).replace(/%20/g,'+');
}
-
+
window.location.href = "{$thisUrl}?page={$thisPage}&glm_action=index" + filter;
-
+
return false;
});
*/
{ label: "{$e.fname|replace:'"':"'"} {$e.lname|replace:'"':"'"} {$e.ref_dest_name|replace:'"':"'"} ( username: {$e.username})", value: "{$e.fname|replace:'"':"'"} {$e.lname|replace:'"':"'"}, {$e.ref_dest_name|replace:'"':"'"}, {$e.username}", id: '{$e.id}', member: '{$e.ref_dest}' },
{/foreach}
];
-
+
$( "#glmContactsSearch" ).autocomplete({
source: availableTags,
html: true,
- position: { my : "right top", at: "right bottom" },
+ position: { my : "left top", at: "left bottom" },
select: function( event, ui ) {
var contactID = ui.item.id;
var memberID = ui.item.member;
});
</script>
-
+
{include file='admin/footer.html'}