hooks up cache group server update queue/dequeue

Project: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/commit/4f058cb9
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/tree/4f058cb9
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/diff/4f058cb9

Branch: refs/heads/master
Commit: 4f058cb92d32c0c18fba5fdcb0d7b156c9d7de10
Parents: a06c203
Author: Jeremy Mitchell <mitchell...@gmail.com>
Authored: Thu Feb 16 20:09:23 2017 -0700
Committer: Dewayne Richardson <dewr...@apache.org>
Committed: Fri Feb 17 08:33:17 2017 -0700

----------------------------------------------------------------------
 .../ui/app/src/common/api/CacheGroupService.js  | 25 +++++++
 .../form/cacheGroup/FormCacheGroupController.js |  8 ---
 .../edit/FormEditCacheGroupController.js        | 66 +++++++++++++++--
 .../form/cacheGroup/form.cacheGroup.tpl.html    |  6 +-
 .../TableCacheGroupServersController.js         | 76 +++++++++++++++++---
 .../table.cacheGroupServers.tpl.html            |  8 +--
 .../cacheGroups/table.cacheGroups.tpl.html      |  4 +-
 7 files changed, 164 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/4f058cb9/traffic_ops/experimental/ui/app/src/common/api/CacheGroupService.js
----------------------------------------------------------------------
diff --git 
a/traffic_ops/experimental/ui/app/src/common/api/CacheGroupService.js 
b/traffic_ops/experimental/ui/app/src/common/api/CacheGroupService.js
index 5f5f725..5f996e7 100644
--- a/traffic_ops/experimental/ui/app/src/common/api/CacheGroupService.js
+++ b/traffic_ops/experimental/ui/app/src/common/api/CacheGroupService.js
@@ -64,6 +64,31 @@ var CacheGroupService = function(Restangular, locationUtils, 
messageModel) {
             );
     };
 
+    this.queueServerUpdates = function(cgId, cdnId) {
+        return Restangular.one("cachegroups", cgId).customPOST( { action: 
"queue", cdnId: cdnId }, "queue_update" )
+            .then(
+                function() {
+                    messageModel.setMessages([ { level: 'success', text: 
'Queued cache group server updates' } ], false);
+                },
+                function(fault) {
+                    messageModel.setMessages(fault.data.alerts, false);
+                }
+            );
+    };
+
+    this.clearServerUpdates = function(cgId, cdnId) {
+        return Restangular.one("cachegroups", cgId).customPOST( { action: 
"dequeue", cdnId: cdnId}, "queue_update" )
+            .then(
+                function() {
+                    messageModel.setMessages([ { level: 'success', text: 
'Cleared cache group server updates' } ], false);
+                },
+                function(fault) {
+                    messageModel.setMessages(fault.data.alerts, false);
+                }
+            );
+    };
+
+
 };
 
 CacheGroupService.$inject = ['Restangular', 'locationUtils', 'messageModel'];

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/4f058cb9/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/FormCacheGroupController.js
----------------------------------------------------------------------
diff --git 
a/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/FormCacheGroupController.js
 
b/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/FormCacheGroupController.js
index ff377eb..5eb334d 100644
--- 
a/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/FormCacheGroupController.js
+++ 
b/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/FormCacheGroupController.js
@@ -35,14 +35,6 @@ var FormCacheGroupController = function(cacheGroup, $scope, 
$location, formUtils
 
     $scope.cacheGroup = cacheGroup;
 
-    $scope.queueUpdates = function() {
-        alert('not hooked up yet: queuing updates for all cachegroup servers');
-    };
-
-    $scope.dequeueUpdates = function() {
-        alert('not hooked up yet: dequeuing updates for all cachegroup 
servers');
-    };
-
     $scope.viewAsns = function() {
         $location.path($location.path() + '/asns');
     };

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/4f058cb9/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/edit/FormEditCacheGroupController.js
----------------------------------------------------------------------
diff --git 
a/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/edit/FormEditCacheGroupController.js
 
b/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/edit/FormEditCacheGroupController.js
index 4f4e707..aab9dfc 100644
--- 
a/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/edit/FormEditCacheGroupController.js
+++ 
b/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/edit/FormEditCacheGroupController.js
@@ -22,6 +22,13 @@ var FormEditCacheGroupController = function(cacheGroup, 
$scope, $controller, $ui
     // extends the FormCacheGroupController to inherit common methods
     angular.extend(this, $controller('FormCacheGroupController', { cacheGroup: 
cacheGroup, $scope: $scope }));
 
+    $scope.cacheGroupName = angular.copy(cacheGroup.name);
+
+    $scope.settings = {
+        isNew: false,
+        saveLabel: 'Update'
+    };
+
     var deleteCacheGroup = function(cacheGroup) {
         cacheGroupService.deleteCacheGroup(cacheGroup.id)
             .then(function() {
@@ -29,11 +36,12 @@ var FormEditCacheGroupController = function(cacheGroup, 
$scope, $controller, $ui
             });
     };
 
-    $scope.cacheGroupName = angular.copy(cacheGroup.name);
+    var queueServerUpdates = function(cacheGroup, cdnId) {
+        cacheGroupService.queueServerUpdates(cacheGroup.id, cdnId);
+    };
 
-    $scope.settings = {
-        isNew: false,
-        saveLabel: 'Update'
+    var clearServerUpdates = function(cacheGroup, cdnId) {
+        cacheGroupService.clearServerUpdates(cacheGroup.id, cdnId);
     };
 
     $scope.save = function(cacheGroup) {
@@ -66,6 +74,56 @@ var FormEditCacheGroupController = function(cacheGroup, 
$scope, $controller, $ui
         });
     };
 
+    $scope.confirmQueueServerUpdates = function(cacheGroup) {
+        var params = {
+            title: 'Queue Server Updates: ' + cacheGroup.name,
+            message: "Please select a CDN"
+        };
+        var modalInstance = $uibModal.open({
+            templateUrl: 'common/modules/dialog/select/dialog.select.tpl.html',
+            controller: 'DialogSelectController',
+            size: 'md',
+            resolve: {
+                params: function () {
+                    return params;
+                },
+                collection: function(cdnService) {
+                    return cdnService.getCDNs();
+                }
+            }
+        });
+        modalInstance.result.then(function(cdnId) {
+            queueServerUpdates(cacheGroup, cdnId);
+        }, function () {
+            // do nothing
+        });
+    };
+
+    $scope.confirmClearServerUpdates = function(cacheGroup) {
+        var params = {
+            title: 'Clear Server Updates: ' + cacheGroup.name,
+            message: "Please select a CDN"
+        };
+        var modalInstance = $uibModal.open({
+            templateUrl: 'common/modules/dialog/select/dialog.select.tpl.html',
+            controller: 'DialogSelectController',
+            size: 'md',
+            resolve: {
+                params: function () {
+                    return params;
+                },
+                collection: function(cdnService) {
+                    return cdnService.getCDNs();
+                }
+            }
+        });
+        modalInstance.result.then(function(cdnId) {
+            clearServerUpdates(cacheGroup, cdnId);
+        }, function () {
+            // do nothing
+        });
+    };
+
 };
 
 FormEditCacheGroupController.$inject = ['cacheGroup', '$scope', '$controller', 
'$uibModal', '$anchorScroll', 'locationUtils', 'cacheGroupService'];

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/4f058cb9/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/form.cacheGroup.tpl.html
----------------------------------------------------------------------
diff --git 
a/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/form.cacheGroup.tpl.html
 
b/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/form.cacheGroup.tpl.html
index 7338fa1..5275808 100644
--- 
a/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/form.cacheGroup.tpl.html
+++ 
b/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/form.cacheGroup.tpl.html
@@ -24,9 +24,8 @@ under the License.
             <li class="active">{{cacheGroupName}}</li>
         </ol>
         <div class="pull-right" ng-show="!settings.isNew">
-            <button class="btn btn-success" ng-click="queueUpdates()">Queue 
Server Updates &nbsp;&nbsp;<i class="fa fa-flag"></i></button>
-            <button class="btn btn-danger" ng-click="dequeueUpdates()">Dequeue 
Server Updates &nbsp;&nbsp;<i class="fa fa-times"></i></button>
-            <button class="btn btn-primary" ng-click="viewServers()">View 
Servers &nbsp;&nbsp;<i class="fa fa-server"></i></button>
+            <button class="btn btn-primary" title="Queue {{cacheGroup.name}} 
server updates" ng-click="confirmQueueServerUpdates(cacheGroup)"><i class="fa 
fa-flag"></i></button>
+            <button class="btn btn-primary" title="Clear {{cacheGroup.name}} 
server updates" ng-click="confirmClearServerUpdates(cacheGroup)"><i class="fa 
fa-ban"></i></button>
             <div class="btn-group" role="group" uib-dropdown 
is-open="more.isopen">
                 <button type="button" class="btn btn-default dropdown-toggle" 
uib-dropdown-toggle aria-haspopup="true" aria-expanded="false">
                     More
@@ -35,6 +34,7 @@ under the License.
                 <ul class="dropdown-menu-right dropdown-menu" 
uib-dropdown-menu>
                     <li role="menuitem"><a ng-click="viewAsns()">View 
ASNs</a></li>
                     <li role="menuitem"><a ng-click="viewParams()">View 
Parameters</a></li>
+                    <li role="menuitem"><a ng-click="viewServers()">View 
Servers</a></li>
                     <li role="menuitem"><a 
ng-click="viewStaticDnsEntries()">View Static DNS Entries</a></li>
                 </ul>
             </div>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/4f058cb9/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupServers/TableCacheGroupServersController.js
----------------------------------------------------------------------
diff --git 
a/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupServers/TableCacheGroupServersController.js
 
b/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupServers/TableCacheGroupServersController.js
index 3883d30..18740a3 100644
--- 
a/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupServers/TableCacheGroupServersController.js
+++ 
b/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupServers/TableCacheGroupServersController.js
@@ -17,28 +17,88 @@
  * under the License.
  */
 
-var TableCacheGroupsServersController = function(cacheGroup, servers, $scope, 
$state, locationUtils) {
+var TableCacheGroupsServersController = function(cacheGroup, servers, $scope, 
$state, $uibModal, cacheGroupService, locationUtils) {
 
        $scope.cacheGroup = cacheGroup;
 
        $scope.servers = servers;
 
-       $scope.editServer = function(id) {
-               locationUtils.navigateToPath('/configure/servers/' + id);
+       var queueServerUpdates = function(cacheGroup, cdnId) {
+               cacheGroupService.queueServerUpdates(cacheGroup.id, cdnId)
+                       .then(
+                               function() {
+                                       $scope.refresh();
+                               }
+                       );
        };
 
-       $scope.queueUpdates = function() {
-               alert('not hooked up yet: queuing updates for all cachegroup 
servers');
+       var clearServerUpdates = function(cacheGroup, cdnId) {
+               cacheGroupService.clearServerUpdates(cacheGroup.id, cdnId)
+                       .then(
+                               function() {
+                                       $scope.refresh();
+                               }
+                       );
        };
 
-       $scope.dequeueUpdates = function() {
-               alert('not hooked up yet: dequeuing updates for all cachegroup 
servers');
+       $scope.editServer = function(id) {
+               locationUtils.navigateToPath('/configure/servers/' + id);
        };
 
        $scope.refresh = function() {
                $state.reload(); // reloads all the resolves for the view
        };
 
+       $scope.confirmQueueServerUpdates = function(cacheGroup) {
+               var params = {
+                       title: 'Queue Server Updates: ' + cacheGroup.name,
+                       message: "Please select a CDN"
+               };
+               var modalInstance = $uibModal.open({
+                       templateUrl: 
'common/modules/dialog/select/dialog.select.tpl.html',
+                       controller: 'DialogSelectController',
+                       size: 'md',
+                       resolve: {
+                               params: function () {
+                                       return params;
+                               },
+                               collection: function(cdnService) {
+                                       return cdnService.getCDNs();
+                               }
+                       }
+               });
+               modalInstance.result.then(function(cdnId) {
+                       queueServerUpdates(cacheGroup, cdnId);
+               }, function () {
+                       // do nothing
+               });
+       };
+
+       $scope.confirmClearServerUpdates = function(cacheGroup) {
+               var params = {
+                       title: 'Clear Server Updates: ' + cacheGroup.name,
+                       message: "Please select a CDN"
+               };
+               var modalInstance = $uibModal.open({
+                       templateUrl: 
'common/modules/dialog/select/dialog.select.tpl.html',
+                       controller: 'DialogSelectController',
+                       size: 'md',
+                       resolve: {
+                               params: function () {
+                                       return params;
+                               },
+                               collection: function(cdnService) {
+                                       return cdnService.getCDNs();
+                               }
+                       }
+               });
+               modalInstance.result.then(function(cdnId) {
+                       clearServerUpdates(cacheGroup, cdnId);
+               }, function () {
+                       // do nothing
+               });
+       };
+
        $scope.navigateToPath = locationUtils.navigateToPath;
 
        angular.element(document).ready(function () {
@@ -50,5 +110,5 @@ var TableCacheGroupsServersController = function(cacheGroup, 
servers, $scope, $s
 
 };
 
-TableCacheGroupsServersController.$inject = ['cacheGroup', 'servers', 
'$scope', '$state', 'locationUtils'];
+TableCacheGroupsServersController.$inject = ['cacheGroup', 'servers', 
'$scope', '$state', '$uibModal', 'cacheGroupService', 'locationUtils'];
 module.exports = TableCacheGroupsServersController;

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/4f058cb9/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupServers/table.cacheGroupServers.tpl.html
----------------------------------------------------------------------
diff --git 
a/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupServers/table.cacheGroupServers.tpl.html
 
b/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupServers/table.cacheGroupServers.tpl.html
index 9085987..004ab39 100644
--- 
a/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupServers/table.cacheGroupServers.tpl.html
+++ 
b/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupServers/table.cacheGroupServers.tpl.html
@@ -25,9 +25,9 @@ under the License.
             <li class="active">Servers</li>
         </ol>
         <div class="pull-right">
+            <button class="btn btn-primary" title="Queue {{cacheGroup.name}} 
server updates" ng-click="confirmQueueServerUpdates(cacheGroup)"><i class="fa 
fa-flag"></i></button>
+            <button class="btn btn-primary" title="Clear {{cacheGroup.name}} 
server updates" ng-click="confirmClearServerUpdates(cacheGroup)"><i class="fa 
fa-ban"></i></button>
             <button class="btn btn-default" ng-click="refresh()"><i class="fa 
fa-refresh"></i></button>
-            <button class="btn btn-success" ng-click="queueUpdates()">Queue 
Server Updates &nbsp;&nbsp;<i class="fa fa-flag"></i></button>
-            <button class="btn btn-danger" ng-click="dequeueUpdates()">Dequeue 
Server Updates &nbsp;&nbsp;<i class="fa fa-times"></i></button>
         </div>
         <div class="clearfix"></div>
     </div>
@@ -36,7 +36,7 @@ under the License.
         <table id="serversTable" class="table responsive-utilities 
jambo_table">
             <thead>
             <tr class="headings">
-                <th>Update?</th>
+                <th></th>
                 <th>hostName</th>
                 <th>domainName</th>
                 <th>cdn</th>
@@ -53,7 +53,7 @@ under the License.
             </thead>
             <tbody>
             <tr ng-click="editServer(server.id)" ng-repeat="server in servers" 
ng-class="{'active': server.updPending}">
-                <td>{{server.updPending}}</td>
+                <td><i class="fa fa-flag" ng-show="server.updPending"></i></td>
                 <td>{{server.hostName}}</td>
                 <td>{{server.domainName}}</td>
                 <td>{{server.cdnName}}</td>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/4f058cb9/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroups/table.cacheGroups.tpl.html
----------------------------------------------------------------------
diff --git 
a/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroups/table.cacheGroups.tpl.html
 
b/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroups/table.cacheGroups.tpl.html
index 44ee253..327c505 100644
--- 
a/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroups/table.cacheGroups.tpl.html
+++ 
b/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroups/table.cacheGroups.tpl.html
@@ -23,8 +23,8 @@ under the License.
             <li class="active">Cache Groups</li>
         </ol>
         <div class="pull-right" role="group" ng-show="!settings.isNew">
-            <button class="btn btn-default" ng-click="refresh()"><i class="fa 
fa-refresh"></i></button>
-            <button class="btn btn-primary" ng-click="createCacheGroup()"><i 
class="fa fa-plus"></i>&nbsp;&nbsp; Create Cache Group</button>
+            <button class="btn btn-primary" title="Create Cache Group" 
ng-click="createCacheGroup()"><i class="fa fa-plus"></i></button>
+            <button class="btn btn-default" title="Refresh" 
ng-click="refresh()"><i class="fa fa-refresh"></i></button>
         </div>
         <div class="clearfix"></div>
     </div>

Reply via email to