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">&nbsp;
+              <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="">&nbsp;
-          <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;

Reply via email to