Adds messages to the users admin page.
Project: http://git-wip-us.apache.org/repos/asf/rave/repo Commit: http://git-wip-us.apache.org/repos/asf/rave/commit/c95138cf Tree: http://git-wip-us.apache.org/repos/asf/rave/tree/c95138cf Diff: http://git-wip-us.apache.org/repos/asf/rave/diff/c95138cf Branch: refs/heads/angular Commit: c95138cf741427359a94139ad1639a7b6ea2f418 Parents: 7e2cf54 Author: Jmeas <[email protected]> Authored: Wed Aug 20 13:54:35 2014 -0400 Committer: Jmeas <[email protected]> Committed: Wed Aug 20 13:54:35 2014 -0400 ---------------------------------------------------------------------- .../admin/users/controllers/search-form.js | 5 ++- .../src/subapps/admin/users/controllers/user.js | 13 ++++-- .../subapps/admin/users/controllers/users.js | 8 +++- .../src/subapps/admin/users/routes.js | 3 ++ .../admin/users/services/users-messages.js | 43 ++++++++++++++++++++ .../subapps/admin/users/templates/users.html | 1 + rave-portal-ng/src/subapps/admin/users/users.js | 20 +++------ 7 files changed, 71 insertions(+), 22 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/rave/blob/c95138cf/rave-portal-ng/src/subapps/admin/users/controllers/search-form.js ---------------------------------------------------------------------- diff --git a/rave-portal-ng/src/subapps/admin/users/controllers/search-form.js b/rave-portal-ng/src/subapps/admin/users/controllers/search-form.js index 8511477..3aa4e90 100644 --- a/rave-portal-ng/src/subapps/admin/users/controllers/search-form.js +++ b/rave-portal-ng/src/subapps/admin/users/controllers/search-form.js @@ -26,8 +26,9 @@ define(function(require) { return 'disabled'; } var maxPage = $scope.currentPage === $scope.usersMeta.pageCount; - var noPages = !$scope.usersMeta.pageCount; - return maxPage || noPages ? 'disabled' : ''; + var noPages = $scope.usersMeta.pageCount === 0; + var onePage = $scope.usersMeta.pageCount === 1; + return maxPage || noPages || onePage ? 'disabled' : ''; }; // Whether or not we show the table http://git-wip-us.apache.org/repos/asf/rave/blob/c95138cf/rave-portal-ng/src/subapps/admin/users/controllers/user.js ---------------------------------------------------------------------- diff --git a/rave-portal-ng/src/subapps/admin/users/controllers/user.js b/rave-portal-ng/src/subapps/admin/users/controllers/user.js index afa1e21..4ebb253 100644 --- a/rave-portal-ng/src/subapps/admin/users/controllers/user.js +++ b/rave-portal-ng/src/subapps/admin/users/controllers/user.js @@ -7,8 +7,8 @@ define(function(require) { var $ = require('jquery'); - return ['$scope', 'userResource', '$state', '$stateParams', 'user', - function($scope, userResource, $state, $stateParams, user) { + return ['$scope', 'userResource', '$state', '$stateParams', 'user', 'usersMessages', + function($scope, userResource, $state, $stateParams, user, usersMessages) { $scope.user = user; @@ -67,7 +67,11 @@ define(function(require) { var savedResource = userResource.update(data); savedResource.$promise - .then(ctrl.updateList) + .then(function(response) { + ctrl.updateList(response); + usersMessages.updateMessage(response.username); + $state.transitionTo('portal.admin.users'); + }) .catch(function(err) { }); }; @@ -81,7 +85,8 @@ define(function(require) { .then(function() { ctrl.removeFromList(); $('#confirm-modal').modal('hide'); - $state.transitionTo('portal.admin.users', {page:1}); + usersMessages.deleteMessage($scope.user.username); + $state.transitionTo('portal.admin.users'); }) .catch(function() { }); http://git-wip-us.apache.org/repos/asf/rave/blob/c95138cf/rave-portal-ng/src/subapps/admin/users/controllers/users.js ---------------------------------------------------------------------- diff --git a/rave-portal-ng/src/subapps/admin/users/controllers/users.js b/rave-portal-ng/src/subapps/admin/users/controllers/users.js index 0bcde03..5b629d7 100644 --- a/rave-portal-ng/src/subapps/admin/users/controllers/users.js +++ b/rave-portal-ng/src/subapps/admin/users/controllers/users.js @@ -5,8 +5,8 @@ */ define(function(require) { - return ['$scope', '$stateParams', 'pagination', 'usersList', 'usersResource', - function($scope, $stateParams, pagination, usersList, usersResource) { + return ['$scope', '$stateParams', 'pagination', 'usersList', 'usersResource', 'usersMessages', + function($scope, $stateParams, pagination, usersList, usersResource, usersMessages) { $scope.currentPage = +$stateParams.page || 0; usersList.$promise.then(function() { @@ -20,6 +20,10 @@ define(function(require) { }); $scope.usersMeta = usersMeta; + + $scope.showMessage = usersMessages.showMessage; + $scope.messageHtml = usersMessages.messageHtml; + $scope.messageClassName = usersMessages.messageClassName; }); }]; }); http://git-wip-us.apache.org/repos/asf/rave/blob/c95138cf/rave-portal-ng/src/subapps/admin/users/routes.js ---------------------------------------------------------------------- diff --git a/rave-portal-ng/src/subapps/admin/users/routes.js b/rave-portal-ng/src/subapps/admin/users/routes.js index ba04fac..d9e0f50 100644 --- a/rave-portal-ng/src/subapps/admin/users/routes.js +++ b/rave-portal-ng/src/subapps/admin/users/routes.js @@ -20,6 +20,9 @@ define(function(require) { templateUrl: '/subapps/admin/users/templates/users.html', authenticate: true, controller: usersCtrl, + onExit: ['usersMessages', function(usersMessages) { + usersMessages.clearMessage(); + }], resolve: { usersList: ['usersResource', '$stateParams', function(usersResource, $stateParams) { http://git-wip-us.apache.org/repos/asf/rave/blob/c95138cf/rave-portal-ng/src/subapps/admin/users/services/users-messages.js ---------------------------------------------------------------------- diff --git a/rave-portal-ng/src/subapps/admin/users/services/users-messages.js b/rave-portal-ng/src/subapps/admin/users/services/users-messages.js new file mode 100644 index 0000000..f5f8cef --- /dev/null +++ b/rave-portal-ng/src/subapps/admin/users/services/users-messages.js @@ -0,0 +1,43 @@ +/* + * usersMessages + * A service to show messages on the user page. Because other + * states can cause messages to display (namely the category state), + * we need a service that's shared between the two. + * + */ + +define(function() { + return function() { + var html = ''; + var className = ''; + + return { + updateMessage: function(username) { + html = 'Updated user "<b>' + username + '</b>"'; + className = 'alert-success'; + }, + + deleteMessage: function(username) { + html = 'Deleted user "<b>' + username + '</b>"'; + className = 'alert-success'; + }, + + clearMessage: function() { + html = null; + className = ''; + }, + + showMessage: function() { + return html ? true : false; + }, + + messageHtml: function() { + return html; + }, + + messageClassName: function() { + return className; + } + }; + }; +}); http://git-wip-us.apache.org/repos/asf/rave/blob/c95138cf/rave-portal-ng/src/subapps/admin/users/templates/users.html ---------------------------------------------------------------------- diff --git a/rave-portal-ng/src/subapps/admin/users/templates/users.html b/rave-portal-ng/src/subapps/admin/users/templates/users.html index 3cb0241..ea70910 100644 --- a/rave-portal-ng/src/subapps/admin/users/templates/users.html +++ b/rave-portal-ng/src/subapps/admin/users/templates/users.html @@ -1,5 +1,6 @@ <article ui-view> <form class="form-horizontal search-form" ng-controller="searchCtrl"> + <div class="alert" ng-class="messageClassName()" ng-bind-html="messageHtml()" ng-show="showMessage()"></div> <h2> Showing {{ usersMeta.start }} - {{ usersMeta.end }} of {{ usersMeta.totalUsers }} results </h2> http://git-wip-us.apache.org/repos/asf/rave/blob/c95138cf/rave-portal-ng/src/subapps/admin/users/users.js ---------------------------------------------------------------------- diff --git a/rave-portal-ng/src/subapps/admin/users/users.js b/rave-portal-ng/src/subapps/admin/users/users.js index ef10e2b..95e8a3c 100644 --- a/rave-portal-ng/src/subapps/admin/users/users.js +++ b/rave-portal-ng/src/subapps/admin/users/users.js @@ -19,20 +19,12 @@ define(function(require) { var users = ng.module('admin.users', usersDependencies); // Register our providers for the users - var usersResource = require('./resources/users'); - users.factory('usersResource', usersResource); - - var userResource = require('./resources/user'); - users.factory('userResource', userResource); - - var usersCtrl = require('./controllers/users'); - users.controller('usersCtrl', usersCtrl); - - var userCtrl = require('./controllers/user'); - users.controller('userCtrl', userCtrl); - - var searchCtrl = require('./controllers/search-form'); - users.controller('searchCtrl', searchCtrl); + users.factory('usersMessages', require('./services/users-messages')); + users.factory('usersResource', require('./resources/users')); + users.factory('userResource', require('./resources/user')); + users.controller('usersCtrl', require('./controllers/users')); + users.controller('userCtrl', require('./controllers/user')); + users.controller('searchCtrl', require('./controllers/search-form')); // Register the routes var routes = require('./routes');
