From: Chuck Scott Date: Wed, 20 Apr 2016 21:14:37 +0000 (-0400) Subject: Events nearly ready, menu restructure X-Git-Tag: v1.0.0^2~94 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/index.cgi?a=commitdiff_plain;h=5da81d2fcb78d46f65efd8038bd79201e9324815;p=WP-Plugins%2Fglm-member-db-events.git Events nearly ready, menu restructure --- diff --git a/classes/data/dataRecurrences.php b/classes/data/dataRecurrences.php index 37a0138..b190c6f 100644 --- a/classes/data/dataRecurrences.php +++ b/classes/data/dataRecurrences.php @@ -142,6 +142,7 @@ class GlmDataEventsRecurrences extends GlmDataAbstract 'field' => 'start_time', 'type' => 'time', 'time_format' => 'h:i a', + 'default' => '09:00', 'required' => true, 'use' => 'a' ), @@ -167,6 +168,7 @@ class GlmDataEventsRecurrences extends GlmDataAbstract 'field' => 'end_time', 'type' => 'time', 'time_format' => 'h:i a', + 'default' => '17:00', 'use' => 'a' ), @@ -216,7 +218,7 @@ class GlmDataEventsRecurrences extends GlmDataAbstract 'field' => 'week_of_month', 'type' => 'bitmap', 'bitmap' => $this->config['week'], - 'default' => 0, // no weeks selected + 'default' => 4095, // no weeks selected 'use' => 'a' ), @@ -225,7 +227,7 @@ class GlmDataEventsRecurrences extends GlmDataAbstract 'field' => 'day_of_week', 'type' => 'bitmap', 'bitmap' => $this->config['day'], - 'default' => 0, // no days selected + 'default' => 4095, // no days selected 'use' => 'a' ), diff --git a/index.php b/index.php index b474015..f283da3 100644 --- a/index.php +++ b/index.php @@ -102,7 +102,7 @@ function glmMembersEventsPluginRequired() { * Check installation, activation, and version of main Member DB plugin */ include_once( ABSPATH . 'wp-admin/includes/plugin.php' ); -$plugin_name = 'glm-member-db/glm-member-db.php'; +$plugin_name = 'glm-member-db/index.php'; $is_active = is_plugin_active($plugin_name); // If it's not active, then warn user and deactivate this add-on plugin diff --git a/models/admin/events/index.php b/models/admin/events/index.php index ddd64ce..edd80ec 100644 --- a/models/admin/events/index.php +++ b/models/admin/events/index.php @@ -90,6 +90,7 @@ class GlmMembersAdmin_events_index extends GlmDataEvents $numbEvents = 0; $numbPending = 0; + $namesList = false; $haveCategories = false; // Check for required Event Categories @@ -100,17 +101,18 @@ class GlmMembersAdmin_events_index extends GlmDataEvents $haveCategories = true; } - // Get list of events - $events = $this->getList(); - if ($events) { - $numbEvents = count($events); - } + // Get full list of names matching this where clause for search box + $namesList = $this->getIdName(); + + // Get number of events + $numbEvents = $this->getStats(); + + // Get number of events pending + $numbPending = $this->getStats('status = '.$this->config['status_numb']['Pending']); // Get list of Pending Events - $pending = $this->getList('T.status = '.$this->config['status_numb']['Pending']); - if ($pending) { - $numbPending = count($pending); - } +// $pending = $this->getList('T.status = '.$this->config['status_numb']['Pending'], 'name', true, 'id', 1, 20); + $pending = $this->getIdName('T.status = '.$this->config['status_numb']['Pending']); // Compile template data @@ -118,6 +120,7 @@ class GlmMembersAdmin_events_index extends GlmDataEvents 'events' => $events, 'numbEvents' => $numbEvents, 'pending' => $pending, + 'namesList' => $namesList, 'numbPending' => $numbPending, 'haveCategories' => $haveCategories ); diff --git a/models/admin/events/list.php b/models/admin/events/list.php index 07dbc43..db351f7 100644 --- a/models/admin/events/list.php +++ b/models/admin/events/list.php @@ -123,6 +123,14 @@ class GlmMembersAdmin_events_list extends GlmDataEvents $haveMember = false; $memberName = false; $memberData = 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; // Check for Member Menu Use if (defined('GLM_EVENTS_MEMBER_MENU')) { @@ -471,6 +479,18 @@ class GlmMembersAdmin_events_list extends GlmDataEvents $where = 'true'; + // Check for Archived filter + if (isset($_REQUEST['filterArchived']) && $_REQUEST['filterArchived'] == 'on') { + $filterArchived = true; + $where .= " AND status = " . $this->config['status_numb']['Archived']; + } + + // Check for Pending filter + if (isset($_REQUEST['filterPending']) && $_REQUEST['filterPending'] == 'on') { + $filterPending = true; + $where .= " AND status = " . $this->config['status_numb']['Pending']; + } + // Add "selected" element default false; reset($categories); while (list($k, $v) = each($categories)) { @@ -490,7 +510,7 @@ class GlmMembersAdmin_events_list extends GlmDataEvents $categories[$c]['selected'] = true; } - $where .= " AND T.id in ( + $where .= " AND id in ( SELECT DISTINCT(EC.event) FROM ".GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX."event_categories EC, ".GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX."categories C @@ -501,35 +521,52 @@ class GlmMembersAdmin_events_list extends GlmDataEvents )"; } + // Check if we have a Text Search string + if (isset($_REQUEST['textSearch']) && trim($_REQUEST['textSearch']) != '') { + $textSearch = trim($_REQUEST['textSearch']); + $where .= " AND name LIKE '%$textSearch%'"; + } + + // If we have a From date + $dateWhere = ''; if (isset($_REQUEST['fromDate']) && trim($_REQUEST['fromDate']) != '') { $fromDate = date('m/d/Y', strtotime($_REQUEST['fromDate'])); $fromMYSQL = date('Y-m-d', strtotime($fromDate)); + $dateWhere = " end_time >= '$fromMYSQL' "; } // If we have a to Date if (isset($_REQUEST['toDate']) && trim($_REQUEST['toDate']) != '') { + $toDate = date('m/d/Y', strtotime($_REQUEST['toDate'])); $toMYSQL = date('Y-m-d', strtotime($toDate." +1 day")); + // If we have a from date then we need Parens and AND + if ($dateWhere != '') { + $dateWhere = "( ".$dateWhere." AND start_time <= '$toMYSQL' )"; + + // Otherwise we don't + } else { + $dateWhere = " start_time <= '$toMYSQL' "; + } + } +/* // If we have a from but not a to date, use from as the to but don't populate the to field } elseif ($fromDate) { $toDate = date('m/d/Y', strtotime($_REQUEST['fromDate'])); $toMYSQL = date('Y-m-d', strtotime($toDate." +1 day")); $toDate = false; } +*/ // If we have from and to dates, do search for those inclusive - if ($fromDate) { + if ($dateWhere != '') { $where .= " - AND T.id in ( + AND id in ( SELECT DISTINCT(event) FROM ".GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX."times - WHERE ( - start_time BETWEEN '$fromMYSQL' AND '$toMYSQL' - OR - end_time BETWEEN '$fromMYSQL' AND '$toMYSQL' - ) + WHERE $dateWhere AND active ) "; @@ -537,15 +574,62 @@ class GlmMembersAdmin_events_list extends GlmDataEvents // Check if the list is for a specific member if (defined('GLM_EVENTS_MEMBER_MENU') && $memberID) { - $where .= "T.ref_dest = $memberID"; + $where .= " AND ref_dest = $memberID"; } - // Determine number of events in list - $events = $this->getList($where); - if ($events) { - $numbEvents = count($events); + // Get the total number of events listed + $numbEvents = $this->getStats($where); + + // If the number of events is less than a page, don't do paging + if ($numbEvents <= $limit) { + $paging = false; } + // Get full list of names matching this where clause for search box + $namesList = $this->getIdName($where); + + // Check if we're doing paging + if (isset($_REQUEST['pageSelect'])) { + + // If request is for Next + if ($_REQUEST['pageSelect'][0] == 'N') { + $newStart = $_REQUEST['nextStart'] - 0; + + // Otherwise it must be Previous + } else { + $newStart = $_REQUEST['prevStart'] - 0; + } + + if ($newStart > 0) { + $start = $newStart; + } + } + + // Get the list of events and determine number of events in list + $saveFLT = $this->postFirstAndLastTimes; + $this->postFirstAndLastTimes = true; + $eventsResult = $this->getList($where, 'name', true, 'id', $start, $limit); + $this->postFirstAndLastTimes = $saveFLT; + + // Get paging results + $numbDisplayed = $eventsResult['returned']; + $lastDisplayed = $eventsResult['last']; + if ($start == 1) { + $prevStart = false; + } else { + $prevStart = $start - $limit; + if ($start < 1) { + $start = 1; + } + } + if ($eventsResult['returned'] == $limit) { + $nextStart = $start + $limit; + } + + // since we're doing paging, we have to break out just the events data + $events = $eventsResult['list']; + unset($eventsResult); + break; } @@ -620,7 +704,15 @@ class GlmMembersAdmin_events_list extends GlmDataEvents 'memberID' => $memberID, 'haveMember' => $haveMember, 'memberName' => $memberName, - 'memberData' => $memberData + 'memberData' => $memberData, + 'numbDisplayed' => $numbDisplayed, + 'lastDisplayed' => $lastDisplayed, + 'paging' => $paging, + 'prevStart' => $prevStart, + 'nextStart' => $nextStart, + 'start' => $start = 1, + 'limit' => $limit, + 'namesList' => $namesList ); // Return status, any suggested view, and any data to controller diff --git a/models/admin/management/events.php b/models/admin/management/events.php index 4436c82..20035c0 100644 --- a/models/admin/management/events.php +++ b/models/admin/management/events.php @@ -801,6 +801,7 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement $allDay = ( $event['all_day'] || !$event['btime'] ); $recurData =array( 'event' => $eventId, + 'name' => 'Imported Event Schedule', 'start_time' => $btime, 'end_time' => $etime, 'from_date' => $event['bdate'], @@ -824,6 +825,7 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement '%s', '%s', '%s', + '%s', '%d', '%d', '%d', diff --git a/views/admin/events/edit.html b/views/admin/events/edit.html index 7cdf87e..63217b9 100644 --- a/views/admin/events/edit.html +++ b/views/admin/events/edit.html @@ -164,12 +164,16 @@ // No member selected - Clear checkbox, Dissable checkbox, Show location $('#useMemberLocationCheckbox').prop('checked', false); $('#useMemberLocationCheckbox').prop('disabled', true); + $('#useMemberMessage').addClass('glm-hidden'); + $('#notUseMemberMessage').removeClass('glm-hidden'); $('#locationContainer').removeClass('glm-hidden'); } else { // Member set - Enable checkbox $('#useMemberLocationCheckbox').prop('disabled', false); + $('#useMemberMessage').removeClass('glm-hidden'); + $('#notUseMemberMessage').addClass('glm-hidden'); } } @@ -376,7 +380,7 @@ } // Make sure there's at least one recurrence - {if !$locations} + {if !$recurrences} addNewRecurrenceForm(); {/if} @@ -438,10 +442,8 @@ } else { $(".not-all-day-" + recurID).removeClass('glm-hidden'); $(".all-day-" + recurID).addClass('glm-hidden'); - if (!$("#startTimeOnly_" + recurID)[0].checked) { - $(".start-time-only-" + recurID).removeClass('glm-hidden'); - startTimeOnlyInit(); - } + startTimeOnlyInit(); + startTimeOnlySetup(); } }); @@ -450,7 +452,7 @@ // Start Time only selection $('.start-time-only-checkbox').each( function() { recurID = $(this).attr('data-id'); - if ($(this)[0].checked) { + if ($(this)[0].checked || $('#allDayEvent_' + recurID)[0].checked) { $("#endTimeRow_" + recurID).addClass('glm-hidden'); } else { $("#endTimeRow_" + recurID).removeClass('glm-hidden'); @@ -462,7 +464,7 @@ $('.start-time-only-checkbox').click( function() { startTimeOnlySetup(); }); - startTimeOnlySetup(); +// startTimeOnlySetup(); } startTimeOnlyInit(); diff --git a/views/admin/events/editLocation.html b/views/admin/events/editLocation.html index efd3ef8..d7d97b0 100644 --- a/views/admin/events/editLocation.html +++ b/views/admin/events/editLocation.html @@ -40,7 +40,7 @@ Uses location data from the selected member rather than location data from here. - To use member information select a member for the event in the "Status & Desription" tab. + (To use member information instead of this location data, select a member for the event in the "Event Desription" tab.) diff --git a/views/admin/events/editSchedule.html b/views/admin/events/editSchedule.html index 7e2b496..7491331 100644 --- a/views/admin/events/editSchedule.html +++ b/views/admin/events/editSchedule.html @@ -37,10 +37,10 @@ Start Time: - Start time only + Start time only - + End Time: diff --git a/views/admin/events/editStatus.html b/views/admin/events/editStatus.html index fbc99fb..a7ca88d 100644 --- a/views/admin/events/editStatus.html +++ b/views/admin/events/editStatus.html @@ -5,7 +5,7 @@ Event Name: - + {if $event.fieldFail.name}

{$event.fieldFail.name}

{/if}
diff --git a/views/admin/events/index.html b/views/admin/events/index.html index 303b398..929efb4 100644 --- a/views/admin/events/index.html +++ b/views/admin/events/index.html @@ -33,6 +33,7 @@ +
Number of Events Listed: {$numbEvents}
Number Pending: {$numbPending}
{if $pending} @@ -42,7 +43,6 @@ Event Name - Last Updated @@ -56,16 +56,13 @@ {$p.name} - - {$p.updated.datetime} - {/foreach} {/if} -{if $events} +{if $namesList}