Adds resolve to the router.
Project: http://git-wip-us.apache.org/repos/asf/rave/repo Commit: http://git-wip-us.apache.org/repos/asf/rave/commit/80ecabf4 Tree: http://git-wip-us.apache.org/repos/asf/rave/tree/80ecabf4 Diff: http://git-wip-us.apache.org/repos/asf/rave/diff/80ecabf4 Branch: refs/heads/angular Commit: 80ecabf42a98220e5bb1216399b4ed3a17ac2bac Parents: 2cfbb8e Author: Jmeas <[email protected]> Authored: Tue Aug 12 10:47:30 2014 -0400 Committer: Jmeas <[email protected]> Committed: Tue Aug 12 10:47:30 2014 -0400 ---------------------------------------------------------------------- .../src/subapps/admin/categories/categories.js | 3 +++ .../admin/categories/controllers/categories.js | 22 +++------------ .../admin/categories/controllers/category.js | 28 +++++++++++++++----- .../admin/categories/controllers/create.js | 23 ++++++++++++++++ .../src/subapps/admin/categories/routes.js | 16 +++++++++-- .../admin/categories/templates/categories.html | 2 +- .../preferences/controllers/preferences.js | 10 +++---- .../src/subapps/admin/preferences/routes.js | 7 ++++- 8 files changed, 78 insertions(+), 33 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/rave/blob/80ecabf4/rave-portal-ng/src/subapps/admin/categories/categories.js ---------------------------------------------------------------------- diff --git a/rave-portal-ng/src/subapps/admin/categories/categories.js b/rave-portal-ng/src/subapps/admin/categories/categories.js index c1d5c86..a63af3b 100644 --- a/rave-portal-ng/src/subapps/admin/categories/categories.js +++ b/rave-portal-ng/src/subapps/admin/categories/categories.js @@ -31,6 +31,9 @@ define(function(require) { var categoryCtrl = require('./controllers/category'); categories.controller('categoryCtrl', categoryCtrl); + var createCtrl = require('./controllers/create'); + categories.controller('createCtrl', createCtrl); + // Register the routes var routes = require('./routes'); categories.config(routes); http://git-wip-us.apache.org/repos/asf/rave/blob/80ecabf4/rave-portal-ng/src/subapps/admin/categories/controllers/categories.js ---------------------------------------------------------------------- diff --git a/rave-portal-ng/src/subapps/admin/categories/controllers/categories.js b/rave-portal-ng/src/subapps/admin/categories/controllers/categories.js index be1c3eb..a0b1281 100644 --- a/rave-portal-ng/src/subapps/admin/categories/controllers/categories.js +++ b/rave-portal-ng/src/subapps/admin/categories/controllers/categories.js @@ -1,26 +1,12 @@ /* * categories - * Handles submission of our form + * Attaches our resolved resources to the scope * */ define(function(require) { - return ['$scope', 'categoriesResource', '$stateParams', '$rootScope', - function($scope, categoriesResource, $stateParams, $rootScope) { - - $scope.categories = categoriesResource.query(); - - $scope.onCreate = function() { - var newResource = categoriesResource.save({ - text: $scope.newText - }); - - newResource.$promise - .then(function() { - $scope.categories.push(newResource); - }) - .catch(function() { - }); - }; + return ['$scope', 'categoriesResource', '$stateParams', '$rootScope', 'categoriesList', + function($scope, categoriesResource, $stateParams, $rootScope, categoriesList) { + $scope.categories = categoriesList; }]; }); http://git-wip-us.apache.org/repos/asf/rave/blob/80ecabf4/rave-portal-ng/src/subapps/admin/categories/controllers/category.js ---------------------------------------------------------------------- diff --git a/rave-portal-ng/src/subapps/admin/categories/controllers/category.js b/rave-portal-ng/src/subapps/admin/categories/controllers/category.js index de72013..e8d3e92 100644 --- a/rave-portal-ng/src/subapps/admin/categories/controllers/category.js +++ b/rave-portal-ng/src/subapps/admin/categories/controllers/category.js @@ -5,15 +5,32 @@ */ define(function(require) { - return ['$scope', 'categoryResource', '$state', '$stateParams', - function($scope, categoryResource, $state, $stateParams) { - $scope.category = categoryResource.get({id: $stateParams.id}); + return ['$scope', 'categoryResource', '$state', '$stateParams', 'category', + function($scope, categoryResource, $state, $stateParams, category) { + $scope.category = category; $scope.category.$promise.then(function(res) { $scope.text = res.text; }).catch(function(err) { }); + // Remove the category from the list of categories in the scope + this.removeFromList = function() { + var oldCategory = _.findWhere($scope.categories, {ID:+$stateParams.id}); + var oldIndex = _.indexOf($scope.categories, oldCategory); + $scope.categories.splice(oldIndex, 1); + }; + + // Replace the old item in the list with the new + this.updateList = function(newResource) { + var oldCategory = _.findWhere($scope.categories, {ID:+$stateParams.id}); + var oldIndex = _.indexOf($scope.categories, oldCategory); + $scope.categories[oldIndex] = newResource; + $scope.category = newResource; + }; + + var ctrl = this; + $scope.onSave = function() { var savedResource = categoryResource.update({ id: $stateParams.id, @@ -21,9 +38,7 @@ define(function(require) { }); savedResource.$promise - .then(function() { - $scope.category = savedResource; - }) + .then(ctrl.updateList) .catch(function() { }); }; @@ -35,6 +50,7 @@ define(function(require) { deletedResource.$promise .then(function() { + ctrl.removeFromList(); $state.transitionTo('portal.admin.categories'); }) .catch(function() { http://git-wip-us.apache.org/repos/asf/rave/blob/80ecabf4/rave-portal-ng/src/subapps/admin/categories/controllers/create.js ---------------------------------------------------------------------- diff --git a/rave-portal-ng/src/subapps/admin/categories/controllers/create.js b/rave-portal-ng/src/subapps/admin/categories/controllers/create.js new file mode 100644 index 0000000..cfb1c7d --- /dev/null +++ b/rave-portal-ng/src/subapps/admin/categories/controllers/create.js @@ -0,0 +1,23 @@ +/* + * createCtrl + * Handles submission of our form + * + */ + +define(function(require) { + return ['$scope', 'categoriesResource', + function($scope, categoriesResource) { + $scope.onCreate = function() { + var newResource = categoriesResource.save({ + text: $scope.newText + }); + + newResource.$promise + .then(function() { + $scope.categories.push(newResource); + }) + .catch(function() { + }); + }; + }]; +}); http://git-wip-us.apache.org/repos/asf/rave/blob/80ecabf4/rave-portal-ng/src/subapps/admin/categories/routes.js ---------------------------------------------------------------------- diff --git a/rave-portal-ng/src/subapps/admin/categories/routes.js b/rave-portal-ng/src/subapps/admin/categories/routes.js index 8e51a51..a716076 100644 --- a/rave-portal-ng/src/subapps/admin/categories/routes.js +++ b/rave-portal-ng/src/subapps/admin/categories/routes.js @@ -19,7 +19,13 @@ define(function(require) { url: '/categories', templateUrl: '/subapps/admin/categories/templates/categories.html', authenticate: true, - controller: categoriesCtrl + controller: categoriesCtrl, + resolve: { + categoriesList: ['categoriesResource', + function(categoriesResource) { + return categoriesResource.query(); + }] + } }) // The detail page for a single category @@ -27,7 +33,13 @@ define(function(require) { url: '/categories/category-:id', templateUrl: '/subapps/admin/categories/templates/category.html', authenticate: true, - controller: categoryCtrl + controller: categoryCtrl, + resolve: { + category: ['categoryResource', '$stateParams', + function(categoryResource, $stateParams) { + return categoryResource.get({id: $stateParams.id}); + }] + } }); } ]; http://git-wip-us.apache.org/repos/asf/rave/blob/80ecabf4/rave-portal-ng/src/subapps/admin/categories/templates/categories.html ---------------------------------------------------------------------- diff --git a/rave-portal-ng/src/subapps/admin/categories/templates/categories.html b/rave-portal-ng/src/subapps/admin/categories/templates/categories.html index 7b47c21..40f5bad 100644 --- a/rave-portal-ng/src/subapps/admin/categories/templates/categories.html +++ b/rave-portal-ng/src/subapps/admin/categories/templates/categories.html @@ -33,7 +33,7 @@ </tbody> </table> <div> - <form id="createCategory" class="form-inline"> + <form id="createCategory" class="form-inline" ng-controller="createCtrl"> <fieldset> <legend> Create Category http://git-wip-us.apache.org/repos/asf/rave/blob/80ecabf4/rave-portal-ng/src/subapps/admin/preferences/controllers/preferences.js ---------------------------------------------------------------------- diff --git a/rave-portal-ng/src/subapps/admin/preferences/controllers/preferences.js b/rave-portal-ng/src/subapps/admin/preferences/controllers/preferences.js index 950da46..9b8cd11 100644 --- a/rave-portal-ng/src/subapps/admin/preferences/controllers/preferences.js +++ b/rave-portal-ng/src/subapps/admin/preferences/controllers/preferences.js @@ -10,7 +10,7 @@ define(function(require) { // Our list of preferences. You must put any // new preferences here for Angular to auto-update // the ng-model. - var preferences = [ + var preferencesKeys = [ 'titleSuffix', 'pageSize', 'defaultWidgetHeight', @@ -20,17 +20,17 @@ define(function(require) { 'javascriptDebugMode' ]; - return ['$scope', 'preferencesResource', - function($scope, preferencesResource) { + return ['$scope', 'preferencesResource', 'preferences', + function($scope, preferencesResource, preferences) { // Create our preferences object on the scope. $scope.preferences = {}; // Try to get the current preferences to show the user - $scope.currentPreferences = preferencesResource.get(); + $scope.currentPreferences = preferences; $scope.currentPreferences.$promise .then(function(res) { - var currentPrefs = _.pick(res, preferences); + var currentPrefs = _.pick(res, preferencesKeys); _.each(currentPrefs, function(value, key) { $scope.preferences[key] = value; }); http://git-wip-us.apache.org/repos/asf/rave/blob/80ecabf4/rave-portal-ng/src/subapps/admin/preferences/routes.js ---------------------------------------------------------------------- diff --git a/rave-portal-ng/src/subapps/admin/preferences/routes.js b/rave-portal-ng/src/subapps/admin/preferences/routes.js index 7e68e26..fd6495f 100644 --- a/rave-portal-ng/src/subapps/admin/preferences/routes.js +++ b/rave-portal-ng/src/subapps/admin/preferences/routes.js @@ -18,7 +18,12 @@ define(function(require) { url: '/preferences', templateUrl: '/subapps/admin/preferences/templates/preferences.html', authenticate: true, - controller: preferencesCtrl + controller: preferencesCtrl, + resolve: { + preferences: ['preferencesResource', function(preferencesResource) { + return preferencesResource.get(); + }] + } }); } ];
