Adds categories admin section.
Project: http://git-wip-us.apache.org/repos/asf/rave/repo Commit: http://git-wip-us.apache.org/repos/asf/rave/commit/e1f69e1c Tree: http://git-wip-us.apache.org/repos/asf/rave/tree/e1f69e1c Diff: http://git-wip-us.apache.org/repos/asf/rave/diff/e1f69e1c Branch: refs/heads/angular Commit: e1f69e1c0361f7e5b2a5095fcf4ebbf649df39ba Parents: 4361034 Author: Jmeas <[email protected]> Authored: Thu Aug 7 10:05:44 2014 -0400 Committer: Jmeas <[email protected]> Committed: Thu Aug 7 10:10:09 2014 -0400 ---------------------------------------------------------------------- .../mock-api/database/import-data/categories.js | 20 ++-- .../mock-api/modules/categories/get.js | 2 +- .../mock-api/modules/categories/post.js | 21 ++-- .../mock-api/modules/category/delete.js | 2 +- rave-portal-ng/mock-api/modules/category/get.js | 2 +- rave-portal-ng/mock-api/modules/category/put.js | 4 +- rave-portal-ng/src/less/brand/brand.less | 4 - rave-portal-ng/src/subapps/admin/admin.js | 18 +++- .../subapps/admin/categories/categories.html | 104 ++++++++++--------- .../admin/categories/category/category.html | 34 +++--- .../admin/categories/controllers/categories.js | 20 ++++ .../admin/categories/controllers/category.js | 38 +++++++ .../admin/categories/resources/categories.js | 27 +++++ .../admin/categories/resources/category.js | 28 +++++ .../src/subapps/admin/categories/routes.js | 2 +- .../controllers/create-account.js | 1 - 16 files changed, 230 insertions(+), 97 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/rave/blob/e1f69e1c/rave-portal-ng/mock-api/database/import-data/categories.js ---------------------------------------------------------------------- diff --git a/rave-portal-ng/mock-api/database/import-data/categories.js b/rave-portal-ng/mock-api/database/import-data/categories.js index e05b013..712161f 100644 --- a/rave-portal-ng/mock-api/database/import-data/categories.js +++ b/rave-portal-ng/mock-api/database/import-data/categories.js @@ -5,23 +5,29 @@ define(function(require) { { 'text': 'Communications', 'createdUserId': 1, - 'createdDate': '2012-01-19 05:00:00', + 'createdDate': '2014-08-06T15:54:16-04:00', + 'lastModifiedUserName': 'Jmeas', + 'createdUserName': 'Jmeas', 'lastModifiedUserId': 1, - 'lastModifiedDate': '2012-01-19 05:00:00', + 'lastModifiedDate': '2014-08-06T15:54:16-04:00', }, { 'text': 'Test Category 1', + 'createdUserName': 'Jmeas', 'createdUserId': 2, - 'createdDate': '2012-01-19 05:00:00', + 'createdDate': '2014-08-06T15:54:16-04:00', + 'lastModifiedUserName': 'Jmeas', 'lastModifiedUserId': 2, - 'lastModifiedDate': '2012-01-19 05:00:00', + 'lastModifiedDate': '2014-08-06T15:54:16-04:00', }, { 'text': 'Test Category 2', + 'createdUserName': 'Jmeas', 'createdUserId': 3, - 'createdDate': '2012-01-19 05:00:00', + 'createdDate': '2014-08-06T15:54:16-04:00', 'lastModifiedUserId': 3, - 'lastModifiedDate': '2012-01-19 05:00:00', + 'lastModifiedUserName': 'Jmeas', + 'lastModifiedDate': '2014-08-06T15:54:16-04:00', } ]; -}); \ No newline at end of file +}); http://git-wip-us.apache.org/repos/asf/rave/blob/e1f69e1c/rave-portal-ng/mock-api/modules/categories/get.js ---------------------------------------------------------------------- diff --git a/rave-portal-ng/mock-api/modules/categories/get.js b/rave-portal-ng/mock-api/modules/categories/get.js index 2def619..ddde58e 100644 --- a/rave-portal-ng/mock-api/modules/categories/get.js +++ b/rave-portal-ng/mock-api/modules/categories/get.js @@ -18,4 +18,4 @@ define(function(require) { api.register('/categories', 'get', processRequest); -} ); \ No newline at end of file +} ); http://git-wip-us.apache.org/repos/asf/rave/blob/e1f69e1c/rave-portal-ng/mock-api/modules/categories/post.js ---------------------------------------------------------------------- diff --git a/rave-portal-ng/mock-api/modules/categories/post.js b/rave-portal-ng/mock-api/modules/categories/post.js index 556aec6..64be46b 100644 --- a/rave-portal-ng/mock-api/modules/categories/post.js +++ b/rave-portal-ng/mock-api/modules/categories/post.js @@ -16,17 +16,22 @@ define(function(require) { return false; } - function createCategory(text, userID) { + function createCategory(text, user) { var newData = { text: text, - createdUserId: userID, - createdDate: moment().format('YYYY-MM-DD hh:mm:ss'), - lastModifiedUserId: userID, - lastModifiedDate: moment().format('YYYY-MM-DD hh:mm:ss') + createdUserId: user.ID, + createdUserName: user.username, + createdDate: moment().format(), + lastModifiedUserId: user.ID, + lastModifiedUserName: user.username, + lastModifiedDate: moment().format() }; api.db.insert('categories', newData); api.db.commit(); - return newData; + var result = api.db.query('categories', { + text: text + }); + return result[0]; } function processRequest(method, url, data, headers) { @@ -50,9 +55,9 @@ define(function(require) { return [409, 'This category already exists']; } - return [200, createCategory(data.text, this.currentUser.ID)]; + return [200, createCategory(data.text, this.currentUser)]; } api.register('/categories', 'post', processRequest); -} ); \ No newline at end of file +} ); http://git-wip-us.apache.org/repos/asf/rave/blob/e1f69e1c/rave-portal-ng/mock-api/modules/category/delete.js ---------------------------------------------------------------------- diff --git a/rave-portal-ng/mock-api/modules/category/delete.js b/rave-portal-ng/mock-api/modules/category/delete.js index 6249143..48cb68c 100644 --- a/rave-portal-ng/mock-api/modules/category/delete.js +++ b/rave-portal-ng/mock-api/modules/category/delete.js @@ -47,4 +47,4 @@ define(function(require) { api.register('/category/:id', 'delete', processRequest); -} ); \ No newline at end of file +} ); http://git-wip-us.apache.org/repos/asf/rave/blob/e1f69e1c/rave-portal-ng/mock-api/modules/category/get.js ---------------------------------------------------------------------- diff --git a/rave-portal-ng/mock-api/modules/category/get.js b/rave-portal-ng/mock-api/modules/category/get.js index aa4c953..c575ed3 100644 --- a/rave-portal-ng/mock-api/modules/category/get.js +++ b/rave-portal-ng/mock-api/modules/category/get.js @@ -41,4 +41,4 @@ define(function(require) { api.register('/category/:id', 'get', processRequest); -} ); \ No newline at end of file +} ); http://git-wip-us.apache.org/repos/asf/rave/blob/e1f69e1c/rave-portal-ng/mock-api/modules/category/put.js ---------------------------------------------------------------------- diff --git a/rave-portal-ng/mock-api/modules/category/put.js b/rave-portal-ng/mock-api/modules/category/put.js index dcad6bd..5819e92 100644 --- a/rave-portal-ng/mock-api/modules/category/put.js +++ b/rave-portal-ng/mock-api/modules/category/put.js @@ -24,7 +24,7 @@ define(function(require) { api.db.update('categories', searchParams, function(row) { row.text = text; row.lastModifiedUserId = userID; - row.lastModifiedDate = moment().format('YYYY-MM-DD hh:mm:ss'); + row.lastModifiedDate = moment().format(); return row; }); api.db.commit(); @@ -74,4 +74,4 @@ define(function(require) { api.register('/category/:id', 'put', processRequest); -} ); \ No newline at end of file +} ); http://git-wip-us.apache.org/repos/asf/rave/blob/e1f69e1c/rave-portal-ng/src/less/brand/brand.less ---------------------------------------------------------------------- diff --git a/rave-portal-ng/src/less/brand/brand.less b/rave-portal-ng/src/less/brand/brand.less index c805e2d..d735679 100644 --- a/rave-portal-ng/src/less/brand/brand.less +++ b/rave-portal-ng/src/less/brand/brand.less @@ -37,7 +37,6 @@ @lightestGray: #EEEEEE; @lighterGray: #DDD; @lightGray: mix(@lighterGray, @gray, 50%); -@gray: #999; @darkGray: #777777; @darkerGray: #5c5c5c; @darkestGray: #363636; @@ -55,9 +54,6 @@ body{ background-color: @lightestGray; } -input, textarea, select, .uneditable-input{ - color: @darkerGray; -} .logo-wrapper{ width: 100%; height: 35px; http://git-wip-us.apache.org/repos/asf/rave/blob/e1f69e1c/rave-portal-ng/src/subapps/admin/admin.js ---------------------------------------------------------------------- diff --git a/rave-portal-ng/src/subapps/admin/admin.js b/rave-portal-ng/src/subapps/admin/admin.js index 58cb97e..11aa80d 100644 --- a/rave-portal-ng/src/subapps/admin/admin.js +++ b/rave-portal-ng/src/subapps/admin/admin.js @@ -1,3 +1,19 @@ define(function(require) { - return require('angular').module('admin', []); + var angular = require('angular'); + + var admin = angular.module('admin', ['ngResource']); + + var categoriesResource = require('./categories/resources/categories'); + admin.factory('categoriesResource', categoriesResource); + + var categoryResource = require('./categories/resources/category'); + admin.factory('categoryResource', categoryResource); + + var categoriesCtrl = require('./categories/controllers/categories'); + admin.controller('categoriesCtrl', categoriesCtrl); + + var categoryCtrl = require('./categories/controllers/category'); + admin.controller('categoryCtrl', categoryCtrl); + + return admin; }); http://git-wip-us.apache.org/repos/asf/rave/blob/e1f69e1c/rave-portal-ng/src/subapps/admin/categories/categories.html ---------------------------------------------------------------------- diff --git a/rave-portal-ng/src/subapps/admin/categories/categories.html b/rave-portal-ng/src/subapps/admin/categories/categories.html index fff43f0..5f82188 100644 --- a/rave-portal-ng/src/subapps/admin/categories/categories.html +++ b/rave-portal-ng/src/subapps/admin/categories/categories.html @@ -1,52 +1,56 @@ <article ui-view> - <h2>Categories</h2> - <table id="categoryList" class="table table-striped table-bordered table-condensed"> - <thead> - <tr> - <th>Text</th> - <th>Created By</th> - <th>Date Created</th> - <th>Modified By</th> - <th>Date Modified</th> - </tr> - </thead> - <tbody> - <tr> - <td> - <a ui-sref="portal.admin.categories.category"> - Communications - </a> - </td> - <td> - canonical - </td> - <td> - Thu Jan 19 05:00:00 UTC 2012 - </td> - <td> - canonical - </td> - <td> - Thu Jan 19 05:00:00 UTC 2012 - </td> - </tr> - </tbody> - </table> + <div ng-controller="categoriesCtrl"> + <h2>Categories</h2> + <table id="categoryList" class="table table-striped table-bordered table-condensed"> + <thead> + <tr> + <th>Text</th> + <th>Created By</th> + <th>Date Created</th> + <th>Modified By</th> + <th>Date Modified</th> + </tr> + </thead> + <tbody> + <tr ng-repeat="category in categories"> + <td> + <a ui-sref="portal.admin.categories.category({id: category.ID})"> + {{ category.text }} + </a> + </td> + <td> + {{ category.createdUserName }} + </td> + <td> + {{ category.createdDate | date:'short' }} + </td> + <td> + {{ category.lastModifiedUserName }} + </td> + <td> + {{ category.lastModifiedDate | date:'short' }} + </td> + </tr> + </tbody> + </table> + <div> + <form id="createCategory" class="form-inline"> + <fieldset> + <legend> + Create Category + </legend> + <div class="control-group"> + <label class="control-label" for="text"> + Text: + </label> + <div class="controls"> + <input id="text" name="text" autofocus="autofocus" required="required" type="text" value="" ng-model="newText"> + <button class="btn btn-primary" ng-click="onCreate()">Create Category</button> + </div> + </div> + </fieldset> + </form> + </div> + </div> </article> -<div> - <form id="createCategory" class="form-inline" action="category/create" method="POST"><fieldset> - <legend> - Create Category - </legend> - <div class="control-group"> - <label class="control-label" for="text"> - Text: - </label> - <div class="controls"> - <input id="text" name="text" autofocus="autofocus" required="required" type="text" value=""> - <button class="btn btn-primary" type="submit" value="Create Category">Create Category</button> - </div> - </div> - </fieldset> - </form> -</div> + http://git-wip-us.apache.org/repos/asf/rave/blob/e1f69e1c/rave-portal-ng/src/subapps/admin/categories/category/category.html ---------------------------------------------------------------------- diff --git a/rave-portal-ng/src/subapps/admin/categories/category/category.html b/rave-portal-ng/src/subapps/admin/categories/category/category.html index 0b382c0..ea4a829 100644 --- a/rave-portal-ng/src/subapps/admin/categories/category/category.html +++ b/rave-portal-ng/src/subapps/admin/categories/category/category.html @@ -1,20 +1,14 @@ -<a ui-sref="portal.admin.categories">« Back to Categories</a> -<h2>Communications</h2> -<div class="well"> - <section> - <form id="deleteCategory" action="delete" method="POST"> - <fieldset> - <legend>Delete Communications</legend> - <div> - <label class="checkbox"> - <input type="checkbox" name="confirmdelete" id="confirmdelete" value="true"> - Yes I want to delete this category - </label> - </div> - </fieldset> - <fieldset> - <button class="btn btn-danger" type="submit" value="Delete Category">Delete Category</button> - </fieldset> - </form> - </section> -</div> +<div ng-controller="categoryCtrl"> + <a ui-sref="portal.admin.categories">« Back to Categories</a> + <h2>Category â "{{ category.text }}"</h2> + <div class="well"> + <section> + <label for="text">Name: </label> + <input id="text" name="text" type="text" ng-model="text"> + <br><br> + <button class="btn" ng-click="onSave()">Save</button> + <button class="btn btn-danger" ng-click="onDelete()">Delete</button> + </section> + </div> +</div> + http://git-wip-us.apache.org/repos/asf/rave/blob/e1f69e1c/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 new file mode 100644 index 0000000..2b9028d --- /dev/null +++ b/rave-portal-ng/src/subapps/admin/categories/controllers/categories.js @@ -0,0 +1,20 @@ +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() { + }); + }; + }]; +}); http://git-wip-us.apache.org/repos/asf/rave/blob/e1f69e1c/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 new file mode 100644 index 0000000..552bff6 --- /dev/null +++ b/rave-portal-ng/src/subapps/admin/categories/controllers/category.js @@ -0,0 +1,38 @@ +define(function(require) { + return ['$scope', 'categoryResource', '$state', '$stateParams', + function($scope, categoryResource, $state, $stateParams) { + $scope.category = categoryResource.get({id: $stateParams.id}); + + $scope.category.$promise.then(function(res) { + $scope.text = res.text; + }).catch(function(err) { + }); + + $scope.onSave = function() { + var savedResource = categoryResource.update({ + id: $stateParams.id, + text: $scope.text + }); + + savedResource.$promise + .then(function() { + $scope.category = savedResource; + }) + .catch(function() { + }); + }; + + $scope.onDelete = function() { + var deletedResource = categoryResource.delete({ + id: $stateParams.id + }); + + deletedResource.$promise + .then(function() { + $state.transitionTo('portal.admin.categories'); + }) + .catch(function() { + }); + }; + }]; +}); http://git-wip-us.apache.org/repos/asf/rave/blob/e1f69e1c/rave-portal-ng/src/subapps/admin/categories/resources/categories.js ---------------------------------------------------------------------- diff --git a/rave-portal-ng/src/subapps/admin/categories/resources/categories.js b/rave-portal-ng/src/subapps/admin/categories/resources/categories.js new file mode 100644 index 0000000..c52305d --- /dev/null +++ b/rave-portal-ng/src/subapps/admin/categories/resources/categories.js @@ -0,0 +1,27 @@ +define(function(require) { + + // The API endpoint for categories + var URL = '/api/v1/categories'; + + // Return the categories resource + return ['$resource', 'authToken', + function($resource, authToken) { + var authHeader = { + Authorization: 'Basic ' + authToken.get() + }; + + return $resource(URL, {}, { + save: { + method: 'POST', + headers: authHeader + }, + + query: { + method: 'GET', + isArray: true, + headers: authHeader + }, + + }); + }]; +}); http://git-wip-us.apache.org/repos/asf/rave/blob/e1f69e1c/rave-portal-ng/src/subapps/admin/categories/resources/category.js ---------------------------------------------------------------------- diff --git a/rave-portal-ng/src/subapps/admin/categories/resources/category.js b/rave-portal-ng/src/subapps/admin/categories/resources/category.js new file mode 100644 index 0000000..e4001b5 --- /dev/null +++ b/rave-portal-ng/src/subapps/admin/categories/resources/category.js @@ -0,0 +1,28 @@ +define(function(require) { + + // The API endpoint for categories + var URL = '/api/v1/category/:id'; + + // Return the categories resource + return ['$resource', 'authToken', + function($resource, authToken) { + var authHeader = { + Authorization: 'Basic ' + authToken.get() + }; + + return $resource(URL, {id: '@id'}, { + get: { + method: 'GET', + headers: authHeader + }, + update: { + method: 'PUT', + headers: authHeader + }, + delete: { + method: 'DELETE', + headers: authHeader + } + }); + }]; +}); http://git-wip-us.apache.org/repos/asf/rave/blob/e1f69e1c/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 8c66452..cb1cf9f 100644 --- a/rave-portal-ng/src/subapps/admin/categories/routes.js +++ b/rave-portal-ng/src/subapps/admin/categories/routes.js @@ -12,7 +12,7 @@ define(function(require) { authenticate: true }) .state('portal.admin.categories.category', { - url: '/categories/category', + url: '/categories/category-:id', templateUrl: '/subapps/admin/categories/category/category.html', authenticate: true }); http://git-wip-us.apache.org/repos/asf/rave/blob/e1f69e1c/rave-portal-ng/src/subapps/auth/create-account/controllers/create-account.js ---------------------------------------------------------------------- diff --git a/rave-portal-ng/src/subapps/auth/create-account/controllers/create-account.js b/rave-portal-ng/src/subapps/auth/create-account/controllers/create-account.js index b34d401..44fcab5 100644 --- a/rave-portal-ng/src/subapps/auth/create-account/controllers/create-account.js +++ b/rave-portal-ng/src/subapps/auth/create-account/controllers/create-account.js @@ -12,7 +12,6 @@ define(function(require) { createAccountApi.createAccount(accountInfo) .then(function(res) { - console.log('success'); $scope.invalid = false; $scope.success = true; $scope.username = accountInfo.username;
