From 73875432c56566819149beb15a7a34759f8eda79 Mon Sep 17 00:00:00 2001 From: Anthony Talarico Date: Fri, 26 Oct 2018 08:15:47 -0400 Subject: [PATCH] adding admin search template and model files to manage the header search --- models/admin/adminSearch/index.php | 184 ------------------ .../manageMembers/{manage.php => index.php} | 6 +- models/admin/manageMembers/search.php | 92 +++++++++ setup/adminHooks.php | 138 ------------- setup/adminMenus.php | 4 +- setup/validActions.php | 2 +- .../adminSearch/searchHeader.html | 3 + .../manageMembers/{manage.html => index.html} | 69 +++---- 8 files changed, 137 insertions(+), 361 deletions(-) delete mode 100644 models/admin/adminSearch/index.php rename models/admin/manageMembers/{manage.php => index.php} (98%) create mode 100644 models/admin/manageMembers/search.php create mode 100644 views/admin/manageMembers/adminSearch/searchHeader.html rename views/admin/manageMembers/{manage.html => index.html} (90%) diff --git a/models/admin/adminSearch/index.php b/models/admin/adminSearch/index.php deleted file mode 100644 index ba4b501d..00000000 --- a/models/admin/adminSearch/index.php +++ /dev/null @@ -1,184 +0,0 @@ -wpdb = $wpdb; - - // Save plugin configuration object - $this->config = $config; - - // Run constructor for members data class - parent::__construct(false, false); - - } - - /** - * Perform Model Action - * - * This method does the work for this model and returns any resulting data - * - * @return array Status and data array - * - * 'status' - * - * True if successful and false if there was a fatal failure. - * - * 'menuItemRedirect' - * - * If not false, provides a menu item the controller should - * execute after this one. Normally if this is used, there would also be a - * modelRedirect value supplied as well. - * - * 'modelRedirect' - * - * If not false, provides an action the controller should execute after - * this one. - * - * 'view' - * - * A suggested view name that the controller should use instead of the - * default view for this model or false to indicate that the default view - * should be used. - * - * 'data' - * - * Data that the model is returning for use in merging with the view to - * produce output. - * - */ - public function modelAction ( $actionData = false ) - { - - $success = true; - $text = 'text'; - $haveInfoRecords = false; - $memberInfoRecords = false; - $noActive = false; - $showArchived = false; - $memberID = 0; - $clickThroughCounts = array('day' => 0, 'week' => 0, 'month' => 0); - $detailViewCounts = array('day' => 0, 'week' => 0, 'month' => 0); - - // Enqueue Materialize - wp_register_script( - 'materialize', - GLM_MEMBERS_PLUGIN_URL . 'js/materialize/materialize.min.js', - array( - 'jquery' - ), - GLM_MEMBERS_PLUGIN_VERSION - ); - wp_register_script( - 'autoComplete', - GLM_MEMBERS_PLUGIN_URL . 'js/materialize/autoComplete.min.js', - array( - 'jquery' - ), - GLM_MEMBERS_PLUGIN_VERSION - ); - wp_enqueue_script('materialize', false, array('jquery'), false, true); - wp_enqueue_script('autoComplete', false, array('jquery'), false, true); - wp_enqueue_style('materialize-css', GLM_MEMBERS_PLUGIN_URL . 'css/materialize.min.css'); - wp_enqueue_style('autoComplete', GLM_MEMBERS_PLUGIN_URL . 'css/autoComplete.css'); - wp_enqueue_style('admin-css', GLM_MEMBERS_PLUGIN_URL . 'css/glma-admin-sass.css'); - wp_enqueue_style('css-icons', "https://fonts.googleapis.com/icon?family=Material+Icons"); - - // Check if there's a logged in user who is locked to their own entity. - $lockedToMember = apply_filters( 'glm_members_locked_to_member_id', false ); - $memberID = $lockedToMember; - - // Get the current date, first date of this week, and first date of this month - $today = date('Y-m-d'); - $thisWeek = date('Y-m-d', strtotime('-'.date('w').' days')); - $thisMonth = date('Y-m-d', strtotime('-'.(date('j')-1).' days')); - - - // Create a set of useful data for each registered plugin that has a filter - // Use that filter to retrieve table information, then run query for each 'list' field. - foreach ( $this->config[ 'addOns' ] as $a ) { - if ( has_filter( $a['slug'] . "-dashboard-widget") ) { - $addons[$a['slug']]['name'] = $a['short_name']; - $addons[$a['slug']]['slug'] = $a['slug']; - $addons[$a['slug']]['widgetData'] = apply_filters($a['slug'] . "-dashboard-search", ""); - // Sort the component list based on the 'order' - uasort($addons[$a['slug']]['widgetData']['components'], array($this, 'orderSort') ) ; - - } - } - - // Compile template data. - $templateData = array( - 'lockedToMember' => $lockedToMember, - 'member' => $actionData, - 'showArchived' => $showArchived, - 'statusTypeNumbers' => $this->config['status_numb'], - 'memberID' => $memberID, - 'haveInfoRecords' => $haveInfoRecords, - 'memberInfoRecords' => $memberInfoRecords, - 'statusPending' => $this->config['status_numb']['Pending'], - 'addons' => $addons, - 'baseUrl' => GLM_MEMBERS_PLUGIN_URL - ); - - // Return status, suggested view, and data to controller. - return array( - 'status' => $success, - 'menuItemRedirect' => false, - 'modelRedirect' => false, - 'view' => 'admin/newDashboard/index.html', - 'data' => $templateData - ); - - } - - public function orderSort ($a, $b) { return (strcmp ($a['order'],$b['order'])); } -} diff --git a/models/admin/manageMembers/manage.php b/models/admin/manageMembers/index.php similarity index 98% rename from models/admin/manageMembers/manage.php rename to models/admin/manageMembers/index.php index 25dc34a2..c5014470 100644 --- a/models/admin/manageMembers/manage.php +++ b/models/admin/manageMembers/index.php @@ -21,7 +21,7 @@ require_once GLM_MEMBERS_PLUGIN_CLASS_PATH.'/data/dataMembers.php'; * option, which is to display the members dashboard. * */ -class GlmMembersAdmin_manageMembers_manage extends GlmDataMembers +class GlmMembersAdmin_manageMembers_index extends GlmDataMembers { /** @@ -103,7 +103,7 @@ class GlmMembersAdmin_manageMembers_manage extends GlmDataMembers */ public function modelAction ($actionData = false) { - + require_once GLM_MEMBERS_PLUGIN_PATH . '/models/admin/manageMembers/search.php'; $where = ' true '; $alphaWhere = ' true '; $catSearchSelected = false; @@ -402,7 +402,7 @@ class GlmMembersAdmin_manageMembers_manage extends GlmDataMembers 'status' => $success, 'menuItemRedirect' => false, 'modelRedirect' => false, - 'view' => 'admin/manageMembers/manage.html', + 'view' => 'admin/manageMembers/index.html', 'data' => $templateData ); diff --git a/models/admin/manageMembers/search.php b/models/admin/manageMembers/search.php new file mode 100644 index 00000000..69de6bb8 --- /dev/null +++ b/models/admin/manageMembers/search.php @@ -0,0 +1,92 @@ + link + * + */ + + $glmMemberSearch = [ + 'title' => 'Members', + 'listButtons' => [ + [ + 'id' => 'add-member', + 'content' => 'Add', + 'classes' => '', + 'styles' => '', + 'data' => '' + ], + [ + 'id' => 'export-button', + 'content' => 'Export', + 'url' => '#', + 'classes' => 'btn-small waves-effect waves-light btn modal-trigger', + 'styles' => '', + 'data' => 'membersExportModal' + ], + ], + 'components' => [ + [ + 'id' => 'membersExportModal', + 'template' => 'modal', + 'order' => 99, + 'form' => ''//$this->controller('export', 'index', false, true) + ], + [ + 'id' => 'textSearch', + 'order' => 2, + 'template' => 'textSearch', + 'entityID' => 'id', + 'fields' => "id, name", + 'where' => 'name', + ], + [ + 'id' => 'dateSearch', + 'order' => 3, + 'fromDate' => 'fromDate', + 'toDate' => 'toDate', + 'template' => 'dateSearch', + 'entityID' => 'members', + 'defaultFromDate' => date('m/d/Y'), + ], + [ + 'id' => 'categorySearch', + 'order' => 4, + 'categories' => ['cat 1', 'cat 2', 'cat 3'], + 'template' => 'category', + 'entityID' => 'members', + 'defaultFromDate' => date('m/d/Y'), + ], + [ + 'id' => 'memberTypeSearch', + 'order' => 5, + 'template' => 'dropdown', + 'entityID' => 'members', + 'defaultFromDate' => date('m/d/Y'), + ], + [ + 'id' => 'archiveSearch', + 'order' => 6, + 'template' => 'checkbox', + 'entityID' => 'members', + 'defaultFromDate' => date('m/d/Y'), + ], + [ + 'id' => 'featuredSearch', + 'order' => 7, + 'template' => 'checkbox', + 'entityID' => 'event', + 'defaultFromDate' => date('m/d/Y'), + ], + ] + ]; diff --git a/setup/adminHooks.php b/setup/adminHooks.php index 1183b9ed..f53d57fe 100644 --- a/setup/adminHooks.php +++ b/setup/adminHooks.php @@ -574,141 +574,3 @@ 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', - 'listButtons' => [ - [ - 'id' => 'add-member', - 'content' => 'Add', - 'url' => $memberIndexPage . "&glm_action=memberEdit&option=add", - 'classes' => '', - 'styles' => '', - 'data' => '' - ], - [ - 'id' => 'export-button', - 'content' => 'Export', - 'url' => '#', - 'classes' => 'btn-small waves-effect waves-light btn modal-trigger', - 'styles' => '', - 'data' => 'membersExportModal' - ], - ], - 'components' => [ - [ - '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' => 'dateSearch', - 'order' => 3, - 'fromDate' => 'fromDate', - 'toDate' => 'toDate', - 'template' => 'dateSearch', - 'entityID' => 'members', - 'defaultFromDate' => date('m/d/Y'), - 'resultUrl' => $eventsListPage.'&event=', - ], - [ - 'id' => 'categorySearch', - 'order' => 4, - 'categories' => ['cat 1', 'cat 2', 'cat 3'], - 'template' => 'category', - 'entityID' => 'members', - 'defaultFromDate' => date('m/d/Y'), - ], - [ - 'id' => 'memberTypeSearch', - 'order' => 5, - 'template' => 'dropdown', - 'entityID' => 'members', - 'defaultFromDate' => date('m/d/Y'), - 'resultUrl' => $eventsListPage.'&event=', - ], - [ - 'id' => 'archiveSearch', - 'order' => 6, - 'template' => 'checkbox', - 'entityID' => 'members', - 'defaultFromDate' => date('m/d/Y'), - 'resultUrl' => $eventsListPage.'&event=', - ], - [ - 'id' => 'featuredSearch', - 'order' => 7, - 'template' => 'checkbox', - 'entityID' => 'event', - 'defaultFromDate' => date('m/d/Y'), - 'resultUrl' => $eventsListPage.'&event=', - ], - ] - ]; - - // Restore the fields list - $MemberInfo->fields = $fSave; - - return $content; - }, - 13, - 1 -); \ No newline at end of file diff --git a/setup/adminMenus.php b/setup/adminMenus.php index a0ca7e4d..7c75ac9b 100644 --- a/setup/adminMenus.php +++ b/setup/adminMenus.php @@ -86,8 +86,8 @@ if (current_user_can('glm_members_members')) { $this->config['terms']['term_admin_menu_members'].'New Members', 'Manage Members', 'glm_members_member', - 'glm-members-admin-menu-members-manage', - function() {$this->controller('manageMembers', 'manage');} + 'glm-members-admin-menu-members-index', + function() {$this->controller('manageMembers', 'index');} ); // Add a submenu for the "Member" section diff --git a/setup/validActions.php b/setup/validActions.php index 5df37f1e..a9af9678 100644 --- a/setup/validActions.php +++ b/setup/validActions.php @@ -49,7 +49,7 @@ $glmMembersValidActions = array( 'adminSearch' => 'glm-member-db', ), 'manageMembers' => array( - 'manage' => 'glm-member-db' + 'index' => 'glm-member-db' ), 'dashboard' => array( 'index' => 'glm-member-db', diff --git a/views/admin/manageMembers/adminSearch/searchHeader.html b/views/admin/manageMembers/adminSearch/searchHeader.html new file mode 100644 index 00000000..7873714d --- /dev/null +++ b/views/admin/manageMembers/adminSearch/searchHeader.html @@ -0,0 +1,3 @@ +
    + Search Fields pulled from file +
    \ No newline at end of file diff --git a/views/admin/manageMembers/manage.html b/views/admin/manageMembers/index.html similarity index 90% rename from views/admin/manageMembers/manage.html rename to views/admin/manageMembers/index.html index bdb1890b..7dd8949a 100644 --- a/views/admin/manageMembers/manage.html +++ b/views/admin/manageMembers/index.html @@ -1,35 +1,6 @@ - +
    - + {include file='admin/manageMembers/adminSearch/searchHeader.html'}
    Loading ...
    @@ -38,7 +9,7 @@ jQuery(function($){ let searchResults = {}; let imageUrl = `{$glmPluginMediaUrl}/images` - let data = { + let data = { action : 'glm_members_admin_ajax', glm_action : 'adminSearch', // table : textSearchData.table, @@ -62,4 +33,36 @@ } }); }); - \ No newline at end of file + + \ No newline at end of file -- 2.17.1