ONOS-1937, ONOS-1938 - CORD-GUI -- User view now can change the level of URL filtering per user. CSS WIP.

Change-Id: I65f494bca184a6337f703a0ecdb40ce09d166a42
diff --git a/apps/demo/cord-gui/src/main/webapp/app/view/user/user.js b/apps/demo/cord-gui/src/main/webapp/app/view/user/user.js
index f31e1d6..8e97c015b 100644
--- a/apps/demo/cord-gui/src/main/webapp/app/view/user/user.js
+++ b/apps/demo/cord-gui/src/main/webapp/app/view/user/user.js
@@ -25,11 +25,13 @@
     angular.module('cordUser', [])
         .controller('CordUserCtrl', ['$log', '$scope', '$resource',
             function ($log, $scope, $resource) {
-                var BundleData, bundleResource, UserData, userResource;
+                var BundleData, bundleResource;
                 $scope.page = 'user';
                 $scope.isFamily = false;
                 $scope.newLevels = {};
 
+                // === Get data functions ---
+
                 BundleData = $resource(bundleUrl);
                 bundleResource = BundleData.get({},
                     // success
@@ -52,26 +54,57 @@
                     }
                 );
 
-                UserData = $resource(userUrl);
-                userResource = UserData.get({},
-                    // success
-                    function () {
-                        $scope.users = userResource.users;
-                    },
-                    // error
-                    function () {
-                        $log.error('Problem with resource', userResource);
+                function getUsers(url) {
+                    var UserData, userResource;
+                    UserData = $resource(url);
+                    userResource = UserData.get({},
+                        // success
+                        function () {
+                            $scope.users = userResource.users;
+                        },
+                        // error
+                        function () {
+                            $log.error('Problem with resource', userResource);
+                        }
+                    );
+                }
+
+                getUsers(userUrl);
+
+                // === Form functions ---
+
+                function levelUrl(id, level) {
+                    return userUrl + '/' + id + '/apply/url_filter/level/' + level;
+                }
+
+                $scope.applyChanges = function () {
+                    var requests = [];
+
+                    if ($scope.users) {
+                        $.each($scope.users, function (index, user) {
+                            var id = user.id,
+                                level = user.profile.url_filter.level;
+                            if ($scope.newLevels[id] !== level) {
+                                requests.push(levelUrl(id, $scope.newLevels[id]));
+                            }
+                        });
+
+                        $.each(requests, function (index, req) {
+                            getUsers(req);
+                        });
                     }
-                );
+                };
+
+                $scope.cancelChanges = function (changeLevels) {
+                    if ($scope.users) {
+                        $.each($scope.users, function (index, user) {
+                            $scope.newLevels[user.id] = user.profile.url_filter.level;
+                        });
+                    }
+                    changeLevels.$setPristine();
+                };
 
             $log.debug('Cord User Ctrl has been created.');
-        }])
-        .directive('editUser', [function () {
-            return {
-                link: function (scope, elem) {
-
-                }
-            };
         }]);
 
 }());