From bc169efeb02b2c760a6e63dd201d993fe4cb345f Mon Sep 17 00:00:00 2001 From: Chuck Scott Date: Tue, 19 Sep 2017 13:30:39 -0400 Subject: [PATCH] Changing AJAX processing for Backbone from using _method (http method) to specifying an "option" along with the data array. --- js/adminRegApp.js | 23 ++++++++++++++----- js/collections/admin/regClasses.js | 3 +-- js/views/admin/regClass.js | 20 ++++++++++++---- models/admin/ajax/regAdmin.php | 12 +--------- models/admin/ajax/regAdmin/regClasses.php | 22 ++++++------------ models/admin/ajax/regFront.php | 10 +------- .../admin/ajax/regFront/regRequestEvent.php | 23 ++++++------------- 7 files changed, 50 insertions(+), 63 deletions(-) diff --git a/js/adminRegApp.js b/js/adminRegApp.js index 599a16e..4692337 100644 --- a/js/adminRegApp.js +++ b/js/adminRegApp.js @@ -78,8 +78,7 @@ app.Models.Admin.RegRate = Backbone.Model.extend({ // Classes Collection app.Collections.Admin.RegClasses = Backbone.Collection.extend({ model: app.Models.Admin.RegClass, - url: ajaxUrl+'&glm_action=regAdmin&collection=regClasses', - add: + url: ajaxUrl+'&glm_action=regAdmin&collection=regClasses' }); // js/collections/regRates.js @@ -139,15 +138,25 @@ app.Views.Admin.RegClass = Backbone.View.extend({ add: function(){ console.log('add called'); + + var cName = this.$('.class-name').val().trim(); + var cDescr = this.$('.class-descr').val().trim(); + + if (cName == '') { + alert('The Level Name is Required!'); + return; + } + this.$('.class-display-template').show(); this.$('.class-edit-template').hide(); this.$('.class-update').hide(); this.$('.class-add').hide(); - var cName = this.$('.class-name').val().trim(); - var cDescr = this.$('.class-descr').val().trim(); this.model.set({ name: cName, descr: cDescr }); - if (!this.model.save({ name: cName, descr: cDescr })) { + // Get parent for id to send to backend for new class + var parentEvent = this.model.get( 'parent' ); + + if (!this.model.save({ option: 'add', parent: parentEvent.id, name: cName, descr: cDescr })) { console.log('AJAX Save Error'); } else { console.log('AJAX Save Successful'); @@ -155,6 +164,8 @@ app.Views.Admin.RegClass = Backbone.View.extend({ // Add this new model to the collection. var parentEvent = this.model.get( 'parent' ); // ???????? // parentEvent.classes.create( this.model ); + + glmSubmitRequired -= 1; }, deleteLevel: function(){ @@ -183,7 +194,7 @@ app.Views.Admin.RegClass = Backbone.View.extend({ console.log('update called'); var cName = this.$('.class-name').val().trim(); var cDescr = this.$('.class-descr').val().trim(); - if (!this.model.save({ name: cName, descr: cDescr })) { + if (!this.model.save({ option: 'update', name: cName, descr: cDescr })) { console.log('AJAX Save Error'); } else { console.log('AJAX Save Successful'); diff --git a/js/collections/admin/regClasses.js b/js/collections/admin/regClasses.js index 4e183ce..ccc963a 100644 --- a/js/collections/admin/regClasses.js +++ b/js/collections/admin/regClasses.js @@ -3,6 +3,5 @@ // Classes Collection app.Collections.Admin.RegClasses = Backbone.Collection.extend({ model: app.Models.Admin.RegClass, - url: ajaxUrl+'&glm_action=regAdmin&collection=regClasses', - add: + url: ajaxUrl+'&glm_action=regAdmin&collection=regClasses' }); diff --git a/js/views/admin/regClass.js b/js/views/admin/regClass.js index 133e987..e881dd9 100644 --- a/js/views/admin/regClass.js +++ b/js/views/admin/regClass.js @@ -23,15 +23,25 @@ app.Views.Admin.RegClass = Backbone.View.extend({ add: function(){ console.log('add called'); + + var cName = this.$('.class-name').val().trim(); + var cDescr = this.$('.class-descr').val().trim(); + + if (cName == '') { + alert('The Level Name is Required!'); + return; + } + this.$('.class-display-template').show(); this.$('.class-edit-template').hide(); this.$('.class-update').hide(); this.$('.class-add').hide(); - var cName = this.$('.class-name').val().trim(); - var cDescr = this.$('.class-descr').val().trim(); this.model.set({ name: cName, descr: cDescr }); - if (!this.model.save({ name: cName, descr: cDescr })) { + // Get parent for id to send to backend for new class + var parentEvent = this.model.get( 'parent' ); + + if (!this.model.save({ option: 'add', parent: parentEvent.id, name: cName, descr: cDescr })) { console.log('AJAX Save Error'); } else { console.log('AJAX Save Successful'); @@ -39,6 +49,8 @@ app.Views.Admin.RegClass = Backbone.View.extend({ // Add this new model to the collection. var parentEvent = this.model.get( 'parent' ); // ???????? // parentEvent.classes.create( this.model ); + + glmSubmitRequired -= 1; }, deleteLevel: function(){ @@ -67,7 +79,7 @@ app.Views.Admin.RegClass = Backbone.View.extend({ console.log('update called'); var cName = this.$('.class-name').val().trim(); var cDescr = this.$('.class-descr').val().trim(); - if (!this.model.save({ name: cName, descr: cDescr })) { + if (!this.model.save({ option: 'update', name: cName, descr: cDescr })) { console.log('AJAX Save Error'); } else { console.log('AJAX Save Successful'); diff --git a/models/admin/ajax/regAdmin.php b/models/admin/ajax/regAdmin.php index 38d3bd3..1f5b19e 100644 --- a/models/admin/ajax/regAdmin.php +++ b/models/admin/ajax/regAdmin.php @@ -71,24 +71,14 @@ class GlmMembersAdmin_ajax_regAdmin public function modelAction( $actionData = false ) { -trigger_error(print_r($_REQUEST,1), E_USER_NOTICE); - // Get Backbone collection we're talking with $collection = filter_var( $_REQUEST['collection'], FILTER_SANITIZE_STRING ); - // Get the submission method - $method = filter_var( $_REQUEST['_method'], FILTER_SANITIZE_STRING ); - // If not a valid collection, die quietly if (!in_array($collection, array('regClasses', 'regRates'))) { wp_die(); } - // If not a valid method, die quietly - if (!in_array($method, array('POST', 'GET', 'PUT', 'PATCH', 'DELETE'))) { - wp_die(); - } - // Try to decode the JSON $modelData = json_decode(stripslashes($_REQUEST['model']), true); @@ -114,7 +104,7 @@ trigger_error(print_r($_REQUEST,1), E_USER_NOTICE); // Instantiate the model and ask it to perform the work $model = new $className($this->wpdb, $this->config); - $results = $model->modelAction($method, $modelData); + $results = $model->modelAction($modelData); } diff --git a/models/admin/ajax/regAdmin/regClasses.php b/models/admin/ajax/regAdmin/regClasses.php index f55521f..53b096b 100644 --- a/models/admin/ajax/regAdmin/regClasses.php +++ b/models/admin/ajax/regAdmin/regClasses.php @@ -78,24 +78,21 @@ class GlmMembersAdmin_registrations_ajax_regClasses extends GlmDataRegistrations } - public function modelAction($method, $modelData) + public function modelAction($modelData) { -//trigger_error(print_r($modelData,1)."Method = $method"); +trigger_error(print_r($modelData,1)); // Perform specified action - switch ($method) { + switch ($modelData['option']) { - // Create - case 'POST': + case 'add': break; - // Read - case 'GET': + case 'get': break; - // Update - case 'PUT': + case 'update': // If we have a numeric class (level) ID $classID = ($modelData['id'] - 0); @@ -120,12 +117,7 @@ class GlmMembersAdmin_registrations_ajax_regClasses extends GlmDataRegistrations break; - // Patch - case 'PATCH': - break; - - // Delete - case 'DELETE': + case 'delete': break; default: diff --git a/models/admin/ajax/regFront.php b/models/admin/ajax/regFront.php index 0715e97..515c31e 100644 --- a/models/admin/ajax/regFront.php +++ b/models/admin/ajax/regFront.php @@ -74,19 +74,11 @@ class GlmMembersAdmin_ajax_regFront // Get Backbone collection we're talking with $collection = filter_var( $_REQUEST['collection'], FILTER_SANITIZE_STRING ); - // Get the submission method - $method = filter_var( $_REQUEST['_method'], FILTER_SANITIZE_STRING ); - // If not a valid collection, die quietly if (!in_array($collection, array('regClasses', 'regRates'))) { wp_die(); } - // If not a valid method, die quietly - if (!in_array($method, array('POST', 'GET', 'PUT', 'PATCH', 'DELETE'))) { - wp_die(); - } - // Try to decode the JSON $modelData = json_decode(stripslashes($_REQUEST['model']), true); @@ -112,7 +104,7 @@ class GlmMembersAdmin_ajax_regFront // Instantiate the model and ask it to perform the work $model = new $className($this->wpdb, $this->config); - $results = $model->modelAction($method, $modelData); + $results = $model->modelAction($modelData); } diff --git a/models/admin/ajax/regFront/regRequestEvent.php b/models/admin/ajax/regFront/regRequestEvent.php index f313a6e..fa6b802 100644 --- a/models/admin/ajax/regFront/regRequestEvent.php +++ b/models/admin/ajax/regFront/regRequestEvent.php @@ -78,33 +78,24 @@ class GlmMembersAdmin_registrations_ajax_regClasses extends GlmDataRegistrations } - public function modelAction($method, $modelData) + public function modelAction($modelData) { -//trigger_error(print_r($modelData,1)."Method = $method"); +trigger_error(print_r($modelData,1)); // Perform specified action - switch ($method) { + switch ($modelData['option']) { - // Create - case 'POST': + case 'add': break; - // Read - case 'GET': + case 'get': break; - // Update - case 'PUT': - - break; - - // Patch - case 'PATCH': + case 'update': break; - // Delete - case 'DELETE': + case 'delete': break; default: -- 2.17.1