--- /dev/null
+<?php
+/**
+ * Gaslight Media Members Database
+ * Admin Registrations AJAX processing for Rates
+ *
+ * PHP version 5.5
+ *
+ * @category glmWordPressPlugin
+ * @package glmMembersDatabase
+ * @author Chuck Scott <cscott@gaslightmedia.com>
+ * @license http://www.gaslightmedia.com Gaslightmedia
+ * @release regRates.php,v 1.0 2014/10/31 19:31:47 cscott Exp $
+ * @link http://dev.gaslightmedia.com/
+ */
+
+// Load Registrations data abstract
+require_once GLM_MEMBERS_REGISTRATIONS_PLUGIN_CLASS_PATH.'/data/dataRegRate.php';
+
+class GlmMembersAdmin_registrations_ajax_attendee // extends GlmDataRegistrationsRequestRegistrant
+{
+
+ /**
+ * WordPress Database Object
+ *
+ * @var $wpdb
+ * @access public
+ */
+ public $wpdb;
+ /**
+ * Plugin Configuration Data
+ *
+ * @var $config
+ * @access public
+ */
+ public $config;
+
+ /**
+ * Constructor
+ *
+ * This contructor performs the work for this model. This model returns
+ * an array containing the following.
+ *
+ * 'status'
+ *
+ * True if successfull and false if there was a fatal failure.
+ *
+ * 'view'
+ *
+ * A suggested view name that the contoller 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.
+ *
+ * @wpdb object WordPress database object
+ *
+ * @return array Array containing status, suggested view, and any data
+ */
+ public function __construct ($wpdb, $config)
+ {
+
+ // Save WordPress Database object
+ $this->wpdb = $wpdb;
+
+ // Save plugin configuration object
+ $this->config = $config;
+
+ /*
+ * Run constructor for the Registrations data class
+ *
+ * Note, the third parameter is a flag that indicates to the Contacts
+ * data class that it should flag a group of fields as 'view_only'.
+ */
+ // parent::__construct(false, false, true);
+
+ }
+
+ public function modelAction($modelData)
+ {
+
+ trigger_error( print_r( $modelData, true ) );
+
+
+ // Perform specified action
+ switch ($modelData['option']) {
+
+ case 'update':
+
+ $this->wpdb->update(
+ GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'reg_request_registrant',
+ array(
+ 'fname' => $modelData['fname'],
+ 'lname' => $modelData['lname'],
+ ),
+ array( 'id' => $modelData['reg_id'] ),
+ '%s',
+ array( '%d' )
+ );
+
+ $registrant = array(
+ 'id' => $modelData['reg_id'],
+ 'fname' => $modelData['fname'],
+ 'lname' => $modelData['lname'],
+ );
+
+ parse_str( $modelData['formData'], $queryParams );
+ // Store the custom field data
+ $_REQUEST = $queryParams;
+
+ // Save the custom field data if custom fields plugin is on
+ apply_filters(
+ 'glm-members-customfields-form-submit',
+ '',
+ 'glm_reg_customfields_reg_event_attendee_' . $modelData['reg_event_id'],
+ $modelData['reg_id'],
+ true
+ );
+
+ echo json_encode( $registrant, JSON_NUMERIC_CHECK );
+ wp_die();
+
+ break;
+
+ default:
+ die(); // should never get here
+ break;
+
+ }
+
+ wp_die();
+
+
+
+ }
+
+
+}
</span>
</p>
</div>
+</form>
- <div class="glm-admin-table-inner glm-admin-table">
+<div class="glm-admin-table-inner glm-admin-table">
- <p><b>Total found:</b> {$registrantCount} </p>
+ <p><b>Total found:</b> {$registrantCount} </p>
- {if $paging}
- <input type="Submit" name="pageSelect" value="Previous {$limit} {$terms.reg_term_attendee_plur_cap}" class="button button-secondary glm-button"{if !$prevStart} disabled{/if}>
- <input type="Submit" name="pageSelect" value="Next {$limit} {$terms.reg_term_attendee_plur_cap}" class="button button-secondary glm-button"{if !$nextStart} disabled{/if}>
- {/if}
+ {if $paging}
+ <form method="post" action="{$thisUrl}?page={$thisPage}">
+ <input type="hidden" name="page" value="{$thisPage}">
+ <input type="hidden" name="option" value="registrants">
+ <input type="hidden" name="regEventID" value="{$regEvent.id}">
+ <input type="hidden" name="prevStart" value="{$prevStart}">
+ <input type="hidden" name="nextStart" value="{$nextStart}">
+ <input type="hidden" name="limit" value="{$limit}">
+ <input type="Submit" name="pageSelect" value="Previous {$limit} {$terms.reg_term_attendee_plur_cap}" class="button button-secondary glm-button"{if !$prevStart} disabled{/if}>
+ <input type="Submit" name="pageSelect" value="Next {$limit} {$terms.reg_term_attendee_plur_cap}" class="button button-secondary glm-button"{if !$nextStart} disabled{/if}>
+ </form>
+ {/if}
- <table class="wp-list-table striped glm-admin-table" style="width: 100%;">
- <thead>
- <tr>
-
- <th>Name</th>
- <th>Level</th>
- <th>Date/Time</th>
- <th>Rate</th>
- <th>Status</th>
-
- </tr>
- </thead>
- <tbody>
- {if $haveRegistrants}
- {foreach $registrants as $r}
- <tr class="glm-edit-form glm-attendee-{$r.id}">
-
- <td>
- <span style="clear:right;float:left;display:block;width:100%;">
- {$r.fname} {$r.lname}
- </span>
- <span class="attendee-edit-link">
- <a class="glm-edit" href="#" data-registrant="{$r.id}">Edit {$terms.reg_term_attendee_cap}</a> |
- </span>
- <span class="attendee-edit-link">
- <a href="{$thisUrl}?page=glm-members-admin-menu-registrations-requests&option=requestDashboard&requestID={$r.reg_request}">View Request</a> |
- </span>
- <span class="attendee-edit-link">
- <a href="{$thisUrl}?page=glm-members-admin-menu-registrations-accounts&glm_action=accounts&option=accountDashboard&accountID={$r.account.id}">View Account</a> |
- </span>
- <span class="attendee-edit-link">
- <a href="#">View Full Details</a>
- </span>
- </td>
- <td>{$r.class_name}</td>
- <td>{$r.event_time_reformatted}</td>
- <td>{$r.rate_name}</td>
- <td>{$r.request_status_name}</td>
-
- </tr>
- <tr class="glm-edit-form glm-edit-form-{$r.id}" style="display:none;">
- <td colspan="5">
- <form action="#">
- <div class="glm-row">
- <div class="glm-columns glm-small-12">
- <label>Email</label>
- <input type="text" name="email" value="{$r.account.email}">
- <label>First Name</label>
- <input type="text" name="fname" value="{$r.account.fname}">
- <label>Last Name</label>
- <input type="text" name="lname" value="{$r.account.lname}">
- </div>
+ {* Attendee Listing Table *}
+ {* Showing the results from reg_request_registrant table *}
+ <table class="wp-list-table striped glm-admin-table-single" style="width: 100%;">
+ <thead>
+ <tr>
+ <th>Name</th>
+ <th>Level</th>
+ <th>Date/Time</th>
+ <th>Rate</th>
+ <th>Status</th>
+ </tr>
+ </thead>
+ <tbody>
+ {if $haveRegistrants}
+ {foreach $registrants as $r}
+ <tr class="glm-edit-form glm-attendee-{$r.id}{if $r@iteration is div by 2} alternate{/if}">
+ <td>
+ <span style="clear:right;float:left;display:block;width:100%;">
+ <span class="glm-attendee-fullname-{$r.id}">{$r.fname} {$r.lname}</span>
+ </span>
+ <span class="attendee-edit-link">
+ <a class="glm-edit" href="#" data-registrant="{$r.id}">Edit {$terms.reg_term_attendee_cap}</a> |
+ </span>
+ <span class="attendee-edit-link">
+ <a href="{$thisUrl}?page=glm-members-admin-menu-registrations-requests&option=requestDashboard&requestID={$r.reg_request}">View Request</a> |
+ </span>
+ <span class="attendee-edit-link">
+ <a href="{$thisUrl}?page=glm-members-admin-menu-registrations-accounts&glm_action=accounts&option=accountDashboard&accountID={$r.account.id}">View Account</a>
+ </span>
+ </td>
+ <td>{$r.class_name}</td>
+ <td>{$r.event_time_reformatted}</td>
+ <td>{$r.rate_name}</td>
+ <td>{$r.request_status_name}</td>
+ </tr>
+ <tr class="glm-edit-form glm-edit-form-{$r.id}{if $r@iteration is div by 2} alternate{/if}" style="display:none;">
+ <td colspan="5">
+ <h4>Edit Attendee</h4>
+ <div class="glm-row">
+ <div id="glm-attendee-{$r.id}" class="glm-columns glm-small-{if apply_filters('glm-members-customfields-plugin-active', false)}6{else}12{/if}">
+ <b>{$r.account.email}</b>
+ <label>First Name</label>
+ <input class="glm-form-text-input-medium" type="text" name="fname" value="{$r.fname}">
+ <label>Last Name</label>
+ <input class="glm-form-text-input-medium" type="text" name="lname" value="{$r.lname}">
</div>
- <div class="glm-row">
- <div class="glm-columns glm-small-12">
- <button class="glm-cancel" data-registrant="{$r.id}">Cancel</button>
- <button class="glm-update button button-primary" data-registrant="{$r.id}">Update</button>
+ {if apply_filters('glm-members-customfields-plugin-active', false)}
+ <form action="#" id="glm-attendee-form-{$r.id}">
+ <div class="glm-columns glm-small-5">
+ Additional Info
+ <div class="customfields-attendee-{$r.id}">
+ </div>
</div>
+ </form>
+ {/if}
+ </div>
+ <div class="glm-row">
+ <div class="glm-columns glm-small-7">
+ <button class="glm-cancel" data-registrant="{$r.id}">Cancel</button>
+ <button class="glm-update button button-primary" data-registrant="{$r.id}">Update</button>
</div>
- </form>
- </td>
- </tr>
- {/foreach}
- {else}
- <tr class="alternate"><td colspan="2">(no registrants listed)</td></tr>
- {/if}
+ </div>
+ </td>
+ </tr>
+ {/foreach}
+ {else}
+ <tr class="alternate"><td colspan="2">(no registrants listed)</td></tr>
+ {/if}
</tbody>
</table>
- {if $paging}
- <input type="Submit" name="pageSelect" value="Previous {$limit} {$terms.reg_term_attendee_plur_cap}" class="button button-secondary glm-button"{if !$prevStart} disabled{/if}>
- <input type="Submit" name="pageSelect" value="Next {$limit} {$terms.reg_term_attendee_plur_cap}" class="button button-secondary glm-button"{if !$nextStart} disabled{/if}>
- {/if}
-
- </div>
+ {if $paging}
+ <form method="post" action="{$thisUrl}?page={$thisPage}">
+ <input type="hidden" name="page" value="{$thisPage}">
+ <input type="hidden" name="option" value="registrants">
+ <input type="hidden" name="regEventID" value="{$regEvent.id}">
+ <input type="hidden" name="prevStart" value="{$prevStart}">
+ <input type="hidden" name="nextStart" value="{$nextStart}">
+ <input type="hidden" name="limit" value="{$limit}">
+ <input type="Submit" name="pageSelect" value="Previous {$limit} {$terms.reg_term_attendee_plur_cap}" class="button button-secondary glm-button"{if !$prevStart} disabled{/if}>
+ <input type="Submit" name="pageSelect" value="Next {$limit} {$terms.reg_term_attendee_plur_cap}" class="button button-secondary glm-button"{if !$nextStart} disabled{/if}>
+ </form>
+ {/if}
-</form>
+</div>
+{* Export and Print popup form *}
<div id="exportRegistrantsDialog" title="Export {$terms.reg_term_attendee_plur}">
<form id="exportForm" action="{$ajaxUrl}" method="post" enctype="multipart/form-data">
<input type="hidden" name="action" value="glm_members_admin_ajax">
</tr>
<tr>
<td class="exportFieldsTd">
- <input type="checkbox" name="exportId"> {$terms.reg_term_attendee_cap} ID<br>
+ <input class="" type="checkbox" name="exportId"> {$terms.reg_term_attendee_cap} ID<br>
<input type="checkbox" name="exportRegistrant" checked> {$terms.reg_term_attendee_cap} Name<br>
<input type="checkbox" name="exportAddr1" checked> Address Line #1<br>
<input type="checkbox" name="exportAddr2" checked> Address Line #2<br>
{if apply_filters('glm-members-customfields-plugin-active', false)}
<input type="checkbox" name="exportCustom" checked> Custom Fields <br>
{/if}
-
</td>
</tr>
</table>
e.preventDefault();
$('.glm-edit-form-' + $(this).data('registrant')).show();
$('.glm-attendee-' + $(this).data('registrant')).hide();
+ var refId = $(this).data('registrant');
+ {if apply_filters('glm-members-customfields-plugin-active', false)}
+ $.ajax({
+ cache: false,
+ type: 'POST',
+ url: '{$ajaxUrl}?action=glm_members_admin_ajax',
+ data: {
+ 'action': 'glm_members_admin_ajax',
+ 'glm_action': 'customFieldsFront',
+ 'option': 'displayForm',
+ 'fid': 'glm_reg_customfields_reg_event_attendee_' + {$regEvent.id},
+ 'recordId': refId,
+ 'parentFormId': '',
+ 'formData': false,
+ },
+ }).done(function( formHtml ){
+ $('.customfields-attendee-' + refId).html( formHtml );
+ }).fail();
+ {/if}
});
$('.glm-cancel').click(function(e){
e.preventDefault();
$('.glm-detail').click(function(e){
e.preventDefault();
});
+ $('.glm-update').click(function(e){
+ e.preventDefault();
+ var refId = $(this).data('registrant');
+
+ // Get possible custom field data
+ var attendeeFormData = $('#glm-attendee-form-' + refId).serialize();
+ console.log(attendeeFormData);
+
+ var accountFname = $('#glm-attendee-' + refId + ' input[name=fname]').val().trim();
+ var accountLname = $('#glm-attendee-' + refId + ' input[name=lname]').val().trim();
+ $.ajax({
+ context: this,
+ url: '{$ajaxUrl}?action=glm_members_admin_ajax',
+ dataType: 'json',
+ data: {
+ glm_action: 'regAdmin',
+ collection: 'attendee',
+ option: 'update',
+ reg_id: refId,
+ fname: accountFname,
+ lname: accountLname,
+ reg_event_id: {$regEvent.id},
+ formData: attendeeFormData,
+ }
+ }).done(function(account){
+ // Have to change the actual td display too.
+ $('.glm-attendee-fullname-' + account.id ).html( account.fname + ' ' + account.lname );
+ // And update the edit form also
+ $('#glm-attendee-form-' + account.id + ' input[name=fname]').val( account.fname );
+ $('#glm-attendee-form-' + account.id + ' input[name=lname]').val( account.lname );
+ $('.glm-edit-form-' + $(this).data('registrant')).hide();
+ $('.glm-attendee-' + $(this).data('registrant')).show();
+ }).fail(function(msg){
+ });
+ });
});
</script>