From 30b2173fa3e43d905a5b84bd9495fd38f54b0077 Mon Sep 17 00:00:00 2001 From: Matt Huntington Date: Wed, 4 Nov 2015 12:24:50 -0500 Subject: [PATCH] create separate controller for confessions --- app/assets/javascripts/angular.js | 40 ++++++++++++++++------------- app/views/angular_partial.html.erb | 41 ++++++++++++++++-------------- 2 files changed, 44 insertions(+), 37 deletions(-) diff --git a/app/assets/javascripts/angular.js b/app/assets/javascripts/angular.js index 7a0b03c..3307c66 100644 --- a/app/assets/javascripts/angular.js +++ b/app/assets/javascripts/angular.js @@ -20,9 +20,8 @@ app.controller('TransgressionsController', ['$http', function($http){ // Sin Types for Select in HTML this.SIN_TYPES = [ 'Gluttony', 'Greed', 'Anger', 'Pride', 'Lust', 'Sloth', 'Envy' ]; this.newTransgressionSinType = 'Gluttony'; - //this fetches transgression data and adds it to controller - var getTransgressions = function(){ + this.getTransgressions = function(){ // get transgressions for current User $http.get('/transgressions').success(function(data){ //just add the transgressions to the controller, data comes back with sinner as well @@ -30,7 +29,7 @@ app.controller('TransgressionsController', ['$http', function($http){ }); } //fetch transgression data for current user as TransgressionsController initializes - getTransgressions(); + this.getTransgressions(); // create a transgression this.createTransgression = function(){ @@ -60,23 +59,28 @@ app.controller('TransgressionsController', ['$http', function($http){ controller.current_user_transgressions.pop(); controller.current_user_transgressions.push(data.transgression); //...and begin refreshing transgression data - getTransgressions(); + controller.getTransgressions(); }); } +}]); - // create a confession for a transgression identified by transgression_id - this.createConfession = function(transgression_id){ - //AJAX call using parameter that identifies transgression - $http.post('/transgressions/'+transgression_id+'/confessions', { - //include authenticity_token - authenticity_token: authenticity_token, - confession: { - description: this.newConfessionDescription, - occurred_at: this.newConfessionDate - } - }).success(function(data){ - //refresh transgression data once POST is complete - getTransgressions(); - }); +app.controller('ConfessionsController', ['$http', '$scope', function($http, $scope){ + //get authenticity_token from DOM (rails injects it on load) + var authenticity_token = document.querySelector('meta[name="csrf-token"]').getAttribute('content'); + + // create a confession.! + this.createConfession = function(){ + //AJAX call using parameter that identifies transgression + $http.post('/transgressions/'+$scope.$parent.transgression.id+'/confessions', { + //include authenticity_token + authenticity_token: authenticity_token, + confession: { + description: this.newConfessionDescription, + occurred_at: this.newConfessionDate + } + }).success(function(data){ + //refresh transgression data once POST is complete + $scope.$parent.transgressionsCtrl.getTransgressions(); + }); } }]); diff --git a/app/views/angular_partial.html.erb b/app/views/angular_partial.html.erb index 5679bba..6a5c7e7 100644 --- a/app/views/angular_partial.html.erb +++ b/app/views/angular_partial.html.erb @@ -9,25 +9,28 @@ Sin Type: {{transgression.sin_type}}
Description: {{transgression.description}} -

Show me what you got:

- - -

Add a confession (yum):

-
- -
- -
- -
-
-
+
+ {{confessionsCtrl.bar}} +

Show me what you got (confessions):

+ + +

Add a confession (yum):

+
+ +
+ +
+ +
+
+
+