Changing AJAX processing for Backbone from using _method (http method) to specifying...
authorChuck Scott <cscott@gaslightmedia.com>
Tue, 19 Sep 2017 17:30:39 +0000 (13:30 -0400)
committerChuck Scott <cscott@gaslightmedia.com>
Tue, 19 Sep 2017 17:30:39 +0000 (13:30 -0400)
js/adminRegApp.js
js/collections/admin/regClasses.js
js/views/admin/regClass.js
models/admin/ajax/regAdmin.php
models/admin/ajax/regAdmin/regClasses.php
models/admin/ajax/regFront.php
models/admin/ajax/regFront/regRequestEvent.php

index 599a16e..4692337 100644 (file)
@@ -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');
index 4e183ce..ccc963a 100644 (file)
@@ -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'
 });
index 133e987..e881dd9 100644 (file)
@@ -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');
index 38d3bd3..1f5b19e 100644 (file)
@@ -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);
         
         
     }
index f55521f..53b096b 100644 (file)
@@ -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:
index 0715e97..515c31e 100644 (file)
@@ -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);
         
         
     }
index f313a6e..fa6b802 100644 (file)
@@ -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: