From b738b6a6ea964b6c87b3270233ee4f2bb3cadd50 Mon Sep 17 00:00:00 2001 From: Steve Sutton Date: Tue, 11 Oct 2016 10:49:58 -0400 Subject: [PATCH] Update for admin dashboard Setting up the same model and view so it will work in both the member contact and client member manager dashboard areas. --- models/admin/dashboard/events.php | 37 +++++++++++++++++++++++++++---- setup/adminHooks.php | 9 ++++++++ views/admin/dashboard/events.html | 17 +++++++++----- 3 files changed, 53 insertions(+), 10 deletions(-) diff --git a/models/admin/dashboard/events.php b/models/admin/dashboard/events.php index 42b4e22..f1867d9 100644 --- a/models/admin/dashboard/events.php +++ b/models/admin/dashboard/events.php @@ -98,7 +98,8 @@ class GlmMembersAdmin_dashboard_events extends GlmDataEvents public function modelAction ( $actionData = false ) { - $success = true; + $success = true; + $memberID = false; // Get list of member events. if ( isset( $this->config['loggedInUser']['contactUser']['ref_dest'] ) @@ -111,9 +112,14 @@ class GlmMembersAdmin_dashboard_events extends GlmDataEvents FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "events E, " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times T1, " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times T2 - WHERE E.ref_dest = %d - AND T1.event = E.id AND T1.start_time IN (SELECT MIN(start_time) FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times WHERE event = E.id) - AND T2.event = E.id AND T2.end_time IN (SELECT MAX(end_time) FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times WHERE event = E.id) + WHERE E.status != " . $this->config['status_numb']['Archived'] . " + AND E.ref_dest = %d + AND T1.event = E.id AND T1.start_time IN (SELECT MIN(start_time) + FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times + WHERE event = E.id) + AND T2.event = E.id AND T2.end_time IN (SELECT MAX(end_time) + FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times + WHERE event = E.id) ORDER BY E.status DESC,end DESC,start DESC LIMIT 5 OFFSET 0", @@ -122,6 +128,29 @@ class GlmMembersAdmin_dashboard_events extends GlmDataEvents ARRAY_A ); + foreach ( $events as &$event ) { + // set the status + $event['status'] = $this->config['status'][$event['status']]; + } + } else { + $events = $this->wpdb->get_results( + "SELECT E.id,E.name,E.status,E.approved,T1.start_time as start,T2.end_time as end + FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "events E, + " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times T1, + " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times T2 + WHERE E.status = " . $this->config['status_numb']['Pending'] . " + AND T1.event = E.id AND T1.start_time IN (SELECT MIN(start_time) + FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times + WHERE event = E.id) + AND T2.event = E.id AND T2.end_time IN (SELECT MAX(end_time) + FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times + WHERE event = E.id) + ORDER BY E.status DESC,end DESC,start DESC + LIMIT 5 + OFFSET 0", + ARRAY_A + ); + foreach ( $events as &$event ) { // set the status $event['status'] = $this->config['status'][$event['status']]; diff --git a/setup/adminHooks.php b/setup/adminHooks.php index 0ab28e6..1992dd8 100644 --- a/setup/adminHooks.php +++ b/setup/adminHooks.php @@ -34,3 +34,12 @@ add_filter( 12, 1 ); +add_filter( + 'glm-member-db-dashboard-member-admin-widgets', + function ( $member = null ) { + $content = $this->controller( 'dashboard', 'events', $member ); + return $content; + }, + 12, + 1 +); diff --git a/views/admin/dashboard/events.html b/views/admin/dashboard/events.html index 76fca1b..4fd6a93 100644 --- a/views/admin/dashboard/events.html +++ b/views/admin/dashboard/events.html @@ -1,8 +1,13 @@

- Events (5 most recent) + Events {if $memberID}(5 most recent){else}(Pending){/if} + + {if $memberID} Add Event + {else} + Add Event + {/if}

{if $events} @@ -12,22 +17,22 @@ Name Start End - Status - Approved + {if $memberID}Status + Approved{/if} {foreach $events as $event} - + {$event.name} {$event.start|date_format:"%m/%d/%Y"} {$event.end|date_format:"%m/%d/%Y"} - {$event.status} - {$event.approved|date_format:"%m/%d/%Y"} + {if $memberID}{$event.status} + {$event.approved|date_format:"%m/%d/%Y"}{/if} {/foreach} -- 2.17.1