From: Chuck Scott Date: Mon, 20 Nov 2017 19:13:56 +0000 (-0500) Subject: Admin registration selected event dashboard improvements. X-Git-Tag: v1.0.0^2~249 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/?a=commitdiff_plain;h=7613970c508bc9ebb610ea5eb01105fad9fb15a1;p=WP-Plugins%2Fglm-member-db-registrations.git Admin registration selected event dashboard improvements. Started reformatting top of reg event dashboard eventDashboard.html Added total attendee counts to top of dashboard Added max attendees input field and AJAX submit button to non-date-specific dashboard Adeded option to some dataRegEvent functions to use new post-processing code to get registration totals for an event or events --- diff --git a/classes/data/dataRegEvent.php b/classes/data/dataRegEvent.php index 081a7bf..6955b14 100644 --- a/classes/data/dataRegEvent.php +++ b/classes/data/dataRegEvent.php @@ -410,7 +410,7 @@ class GlmDataRegistrationsRegEvent extends GlmDataAbstract FROM ".GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX."reg_time WHERE reg_event = ".$result_data['id'] , ARRAY_A); -echo "
".print_r($counts,1)."
"; + $result_data['total'] = $counts['total']; $result_data['registered'] = $counts['registered']; $result_data['cartHold'] = $counts['cartHold']; @@ -541,10 +541,11 @@ echo "
".print_r($counts,1)."
"; * @param boolean $extended Request added data from Event add-on if true * @param boolean $forEdit Ask for results to include arrays necessary for construction of input fields * @param boolean $withRecurData Ask for all recirrences and recurrence times for event if true + * @param boolean $counts Ask for attendee counts * * @return array All data related to the setup/configuration of a registration event */ - public function getEventConfig($id = false, $extended = false, $forEdit = false, $withRecurData = false) + public function getEventConfig($id = false, $extended = false, $forEdit = false, $withRecurData = false, $counts = false) { $regEventFirstTime = false; @@ -558,6 +559,9 @@ echo "
".print_r($counts,1)."
"; $this->postProcAddedEventData = true; } + // If counts are requested + $this->postProcAddRegistrantsCount = true; + // Try to get the base information - and extended data from the Event add-on if requested if ($id > 0) { $this->regEventData = $this->getEntry($id, 'id', ' TRUE ', $forEdit); @@ -566,6 +570,9 @@ echo "
".print_r($counts,1)."
"; } } + // Restore counts request flag + $this->postProcAddRegistrantsCount = false; + // Get all reg_time records for this event require_once GLM_MEMBERS_REGISTRATIONS_PLUGIN_CLASS_PATH.'/data/dataRegTime.php'; $RegTime = new GlmDataRegistrationsRegTime($this->wpdb, $this->config); @@ -965,11 +972,11 @@ echo "
".print_r($counts,1)."
"; } // each recurrence // If this is a time specific event + $deleteList = ''; + $deleteSep = ''; if ($this->regEventData['time_specific']['value']) { // Check all reg_times we had from before to make sure they were matched with a recur time - $deleteList = ''; - $deleteSep = ''; foreach($this->regEventData['reg_time'] as $regTimeKey=>$regTimeVal) { if (!isset($regTimeVal['OK'])) { diff --git a/models/front/registrations/index.php b/models/front/registrations/index.php index 51de79e..1a6cf98 100644 --- a/models/front/registrations/index.php +++ b/models/front/registrations/index.php @@ -105,10 +105,18 @@ class GlmMembersFront_registrations_index $page = 'list'; } + if (GLM_MEMBERS_PLUGIN_ADMIN_DEBUG) { + trigger_error("Registration Front-End Sub-Controller: Page = $page ", E_USER_NOTICE); + } + // Load the specified model $pageFile = GLM_MEMBERS_REGISTRATIONS_PLUGIN_PATH.'/models/front/registrations/'.$page.'.php'; require_once $pageFile; + if (GLM_MEMBERS_PLUGIN_ADMIN_DEBUG) { + trigger_error("Sub-Controller Calling: $pageFile", E_USER_NOTICE); + } + // load and run the model $regClass = 'GlmMembersFront_registrations_'.$page; $regModel = new $regClass($this->wpdb, $this->config); diff --git a/models/front/registrations/registration.php b/models/front/registrations/registration.php index 33c4bc8..e4deab2 100644 --- a/models/front/registrations/registration.php +++ b/models/front/registrations/registration.php @@ -340,7 +340,7 @@ } // - End loop through events. } - // echo '
$registrants: ' . print_r( $registrants, true ) . '
'; + // echo '
$registrants: ' . print_r( $regEvent, true ) . '
'; // Compile template data $templateData = array( diff --git a/setup/databaseScripts/create_database_V0.0.18.sql b/setup/databaseScripts/create_database_V0.0.18.sql index d5aca0a..270736d 100644 --- a/setup/databaseScripts/create_database_V0.0.18.sql +++ b/setup/databaseScripts/create_database_V0.0.18.sql @@ -240,6 +240,8 @@ CREATE TABLE {prefix}reg_event ( -- One or more for each event CREATE TABLE {prefix}reg_time ( id INT NOT NULL AUTO_INCREMENT, ++ active -- Flag. True if registrations is available for this time ++ non_time_specific -- Flag. True if this is a pseudo time for non-time-specific events - Other informational times for the event will have this flag off reg_event INT NULL, -- Pointer to reg_event table event_time INT NULL, -- ID of events times table entry in Events add-on - If false (0), then this is a pseudo entry to use for all registrations (non-date/time specific) start_datetime DATETIME NULL, -- Date and time when event instance starts diff --git a/views/admin/registrations/eventDashboard.html b/views/admin/registrations/eventDashboard.html index ae688e8..712587d 100644 --- a/views/admin/registrations/eventDashboard.html +++ b/views/admin/registrations/eventDashboard.html @@ -1,6 +1,6 @@ {include file='admin/registrations/eventHeader.html'} -

Selected Event Dashboard

+

{$regEvent.event_name}

{if $haveMessages}
@@ -14,67 +14,98 @@ {/if} -
+
-

Event

-
+
{if $haveRegEvent}
-
-
-
-
- {$regEvent.event_name} -
+
+
+
+

Event Code:

+
+
+ {$regEvent.event_code}
-
-
-
-

First Event Time:

-
-
- {$regEventFirstTime.start_time.datetime} -
+
+
+

First Event Time:

+
+
+ {$regEventFirstTime.start_time.datetime}
-
-
-
-

Last Event Time:

-
-
- {$regEventLastTime.end_time.datetime} -
+
+
+

Last Event Time:

+
+
+ {$regEventLastTime.end_time.datetime}
-
-
-
-
-

Event Code:

-
-
- {$regEvent.event_code} -
+
+
+
+

Maximum Attendees:

+
+
+ {$regEvent.total} +
+
+
+
+

Registered:

+
+
+ {$regEvent.registered} +
+
+
+
+

Cart Hold:

+
+
+ {$regEvent.cartHold} +
+
+
+
+

Currently Available:

+
+
+ {$regEvent.curAvail} +
+
+
+
+

Total Available:

+
+
+ {$regEvent.totalAvail}
- {if apply_filters('glm_members_menu_members', true)} -
- {$r_link = apply_filters('glm_members_add_link_to_registrations_event_list_entry', $regEvent.event)} - {if is_array($r_link)} - Edit {$r_link.title} - {/if} - Edit Registration Event + + {if apply_filters('glm_members_menu_members', true)} +
+
+
+ Edit Registration Event + {$r_link = apply_filters('glm_members_add_link_to_registrations_event_list_entry', $regEvent.event)} + {if is_array($r_link)} + Edit {$r_link.title} + {/if} +
+
- {/if} + {/if}
- {else} + {else}

Did not find selected event.

- {/if} + {/if}
@@ -104,13 +135,15 @@ Unlimited registration - Not maintaining available inventory. {else}   - Limited availability for this event - the below numbers are for all days. -
*** NEED TO ADD EDITING OF MAX ATTENDEES *** + Limited availability for this event - the below numbers are for all days. + Maximum Attendees: + +
Upate
+ - Maximum attendees: {$rt.attendee_max} - Registered: {$rt.attendee_count} - Attendees pending in carts: {$rt.attendees_pending} - Currently available: {$rt.attendees_available} + Registered Attendees:{$rt.attendee_count} + Pending in Carts:{$rt.attendees_pending} + Available for Registration:{$rt.attendees_available} {/if} {/foreach} @@ -127,7 +160,7 @@ Pending in Carts: Available for Registration: -
Upate
+
Upate
@@ -195,7 +228,7 @@ $('#dialogRegAtt').html(calEvent.count); $('#dialogPendAtt').html(calEvent.pending); $('#dialogAvailAtt').html(calEvent.available); - $('#availabilitySubmit').attr('data-timeid', calEvent.timeid); + $('#dialogAvailSubmit').attr('data-timeid', calEvent.timeid); // Re-calculate total available when entering $('#dialogMaxAtt').on('change', function() { @@ -212,14 +245,14 @@ $('#dialogMaxAtt').off('change'); }); - $('#availabilitySubmit').on('click', function() { + $('#dialogAvailSubmit').on('click', function() { var max = $('#dialogMaxAtt').val(); - var timeid = $('#availabilitySubmit').attr('data-timeid'); + var timeid = $('#dialogAvailSubmit').attr('data-timeid'); $.ajax({ url: "{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=updateAvailability&max=" + max + "®_time=" + timeid }); $('#availabilityEditDialog').dialog('close'); - $('#availabilitySubmit').off('click'); + $('#dialogAvailSubmit').off('click'); calEvent.title = max + '-' + calEvent.count + '-' + calEvent.pending + '-' + calEvent.available; $('#eventCalendar').fullCalendar('updateEvent', calEvent); @@ -233,6 +266,34 @@ initFullCalendar(); + } else { + + // Not date specific so do one counts update form + $('#maxAtt').on('change', function() { + var max = $('#maxAtt').val(); + var count = $('#regAtt').html(); + var pending = $('#pendAtt').html(); + var available = max - count - pending; + if (available < 0) { + max = max - available; + $('#maxAtt').val(max); + available = 0; + } + $('#availAtt').html(available); + }); + + $('#availSubmit').on('click', function() { + var max = $('#maxAtt').val(); + var time = $('#availSubmit').attr('data-timeid'); + + $.ajax({ + url: "{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=updateAvailability&max=" + max + "®_time=" + time + }); + $("#submit-flash").fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500); + }); + + + } // Flash certain elements for a short time after display