From c617681e38bddee8be682a238c529848bd7ffba2 Mon Sep 17 00:00:00 2001 From: Anthony Talarico Date: Thu, 25 Oct 2018 09:45:17 -0400 Subject: [PATCH] adding test styles for the members list and filters for the search data in the admin hooks --- setup/adminHooks.php | 167 ++++++++++++++++++++++++++ views/admin/manageMembers/manage.html | 14 ++- 2 files changed, 177 insertions(+), 4 deletions(-) diff --git a/setup/adminHooks.php b/setup/adminHooks.php index 089f1a49..bda960a5 100644 --- a/setup/adminHooks.php +++ b/setup/adminHooks.php @@ -571,4 +571,171 @@ add_filter( }, 13, 1 +); +add_filter( + GLM_MEMBERS_PLUGIN_SLUG .'-dashboard-search', + function ( $member = null ) { + $membersIndexPage = GLM_MEMBERS_PLUGIN_ADMIN_URL . '?page=glm-members-admin-menu-members'; + $memberIndexPage = GLM_MEMBERS_PLUGIN_ADMIN_URL . '?page=glm-members-admin-menu-member'; + $membersTable = GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_info"; + $membersTextTable = GLM_MEMBERS_PLUGIN_DB_PREFIX . "members"; + $membersEditPage = GLM_MEMBERS_PLUGIN_ADMIN_MENU_URL_BASE.'member&glm_action=memberInfo'; + $membersSettingsPage = GLM_MEMBERS_PLUGIN_ADMIN_URL.'?page=glm-members-admin-menu-settings&settingsPage=members'; + $membersRefLink = GLM_MEMBERS_PLUGIN_ADMIN_URL . '?page=glm-members-admin-menu-member&glm_action=index'; + + $MemberInfo = new GlmDataMemberInfo($this->wpdb, $this->config); + + // Set default values for using getList() later, where the custom set of fields below will be used. + $where = ''; + $order = ''; + $fieldVals = true; + $idField = 'id'; + $start = false; + $limit = false; + + // Save the current fields array and make a copy. Will be restored before the return. + $fSave = $MemberInfo->fields; + + // echo "
fsave: " . var_dump($fSave) . "

"; + + // Remove what we don't want from the copy and get the list + $MemberInfo->fields = array( + 'id' => $fSave['id'], + 'reference_name'=> $fSave['reference_name'], + 'status' => $fSave['status'], + 'member_pointer'=> $fSave['member_pointer'], + 'member' => $fSave['member'], + //'ref_type' => 'ref_type', // membersInfo has no ref_type field yet + ); + + // echo "
MemberInfo: " . var_dump($MemberInfo->fields) . "

"; + + // $widgetResult = $MemberInfo->getList('status='.$MemberInfo->config['status_numb']['Pending'], $order, $fieldVals, $idField, $start, $limit); + + // echo "
Widgetresult: " . var_dump($widgetResult) . "

"; + + /* + * For list components: pass ref_type and ref_dest as part of the 'fields' string if you want to + * make these options part of the href of each
  • link + * + */ + + $content = [ + 'title' => 'Members', + 'widgetButtons' => [ + [ + 'id' => 'add-member', + 'content' => 'Add', + 'url' => $memberIndexPage . "&glm_action=memberEdit&option=add", + 'classes' => '', + 'styles' => '', + 'data' => '' + ], + [ + 'id' => 'export-button', + 'content' => 'Export', + 'url' => '#', + 'classes' => 'btn-small widget-export-btn waves-effect waves-light btn modal-trigger', + 'styles' => '', + 'data' => 'membersExportModal' + ], + ], + 'components' => [ + [ + 'id' => 'quickLinks', + 'order' => -1, + 'template' => 'quickLinks', + 'quickLinks' => [ + 'dashboard' => [ + 'content' => 'Dashboard', + 'url' => $membersIndexPage . "&option=dashboard", + ], + 'search' => [ + 'content' => 'Advanced Search', + 'url' => $membersIndexPage . "&option=search", + ], + 'settings' => [ + 'content' => 'Settings', + 'url' => $membersSettingsPage, + ] + ], + ], + [ + 'id' => 'entityAmount', + 'title' => 'Number of ' . $this->config['terms']['term_member_plur_cap'], + 'order' => 1, + 'template' => 'entityAmount', + 'url' => $membersIndexPage . "&option=search", + 'result' => $MemberInfo->getStats(), + ], + [ + 'id' => 'membersExportModal', + 'template' => 'modal', + 'order' => 99, + 'form' => ''//$this->controller('export', 'index', false, true) + ], + [ + 'id' => 'textSearch', + 'order' => 2, + 'template' => 'textSearch', + 'entityID' => 'id', + 'table' => $membersTextTable, + 'fields' => "id, name", + 'where' => 'name', + 'resultUrl' => $memberIndexPage . "&glm_action=index&member=", + ], + [ + 'id' => 'pending-' . $this->config['terms']['term_member_cap'] . '-profiles', + 'title' => 'Pending ' . $this->config['terms']['term_member_cap'] . ' Profiles', + 'slug' => 'pending-' . $this->config['terms']['term_member'] . '-profiles', + 'order' => 3, + 'template' => 'list', + 'entityID' => 'memberInfo', + 'defaultRefType'=> 'member', + 'refLink' => $membersRefLink, + 'url' => $membersEditPage, + 'countUrl' => $membersIndexPage . '&glm_action=list&filterPending=true', + 'result' => $MemberInfo->getList('status='.$MemberInfo->config['status_numb']['Pending'], $order, $fieldVals, $idField, $start, $limit), + 'count' => $MemberInfo->getStats('status='.$MemberInfo->config['status_numb']['Pending']), + 'fieldMap' => [ + 'ID' => 'id', + 'name' => 'reference_name', + 'status' => 'status', + 'refDestID' => 'member_pointer', + 'refDestName' => 'member', + //'ref_type' => 'ref_type', // membersInfo has no ref_type field yet + ], + ], + [ + 'id' => 'bad-location-data', + 'title' => "Bad Location Data", + 'slug' => "bad-location-data", + 'order' => 4, + 'template' => 'list', + 'entityID' => 'memberInfo', + 'defaultRefType'=> 'member', + 'refLink' => $membersRefLink, + 'url' => $membersEditPage, + 'countUrl' => $membersIndexPage . '&glm_action=list&filterBadLocation=true', + 'result' => $MemberInfo->getList("has_no_map_data='1'", $order, $fieldVals, $idField, $start, $limit), + 'count' => $MemberInfo->getStats("has_no_map_data='1'"), + 'fieldMap' => [ + 'ID' => 'id', + 'name' => 'reference_name', + 'status' => 'status', + 'refDestID' => 'member_pointer', + 'refDestName' => 'member', + //'ref_type' => 'ref_type', // membersInfo has no ref_type field yet + ], + ], + ] + ]; + + // Restore the fields list + $MemberInfo->fields = $fSave; + + return $content; + }, + 13, + 1 ); \ No newline at end of file diff --git a/views/admin/manageMembers/manage.html b/views/admin/manageMembers/manage.html index 51bdfdae..bdb1890b 100644 --- a/views/admin/manageMembers/manage.html +++ b/views/admin/manageMembers/manage.html @@ -7,12 +7,16 @@ #glm-admin-member-list{ position: relative; height: 100%; + padding: 15px 0; } .glm-list-result{ background-color: #FFFFFF; - padding: 5px; + padding: 10px; border-bottom: 1px solid #DEE2E2; } + .glm-list-result:nth-child(odd){ + background: #F9FCFD; + } #glm-admin-search-overlay{ position: absolute; width: 100%; @@ -23,9 +27,11 @@ }
    - +
    -
    Overlay
    +
    Loading ...