mirror of https://github.com/portainer/portainer
feat(containers): add buttons disabling based on cluster selection (#985)
parent
b3f4c6f751
commit
472834ac42
|
@ -25,12 +25,12 @@
|
||||||
<rd-widget-taskbar classes="col-lg-12">
|
<rd-widget-taskbar classes="col-lg-12">
|
||||||
<div class="pull-left">
|
<div class="pull-left">
|
||||||
<div class="btn-group" role="group" aria-label="...">
|
<div class="btn-group" role="group" aria-label="...">
|
||||||
<button type="button" class="btn btn-success btn-responsive" ng-click="startAction()" ng-disabled="!state.selectedItemCount"><i class="fa fa-play space-right" aria-hidden="true"></i>Start</button>
|
<button type="button" class="btn btn-success btn-responsive" ng-click="startAction()" ng-disabled="!state.selectedItemCount || state.noStoppedItemsSelected"><i class="fa fa-play space-right" aria-hidden="true"></i>Start</button>
|
||||||
<button type="button" class="btn btn-danger btn-responsive" ng-click="stopAction()" ng-disabled="!state.selectedItemCount"><i class="fa fa-stop space-right" aria-hidden="true"></i>Stop</button>
|
<button type="button" class="btn btn-danger btn-responsive" ng-click="stopAction()" ng-disabled="!state.selectedItemCount || state.noRunningItemsSelected"><i class="fa fa-stop space-right" aria-hidden="true"></i>Stop</button>
|
||||||
<button type="button" class="btn btn-danger btn-responsive" ng-click="killAction()" ng-disabled="!state.selectedItemCount"><i class="fa fa-bomb space-right" aria-hidden="true"></i>Kill</button>
|
<button type="button" class="btn btn-danger btn-responsive" ng-click="killAction()" ng-disabled="!state.selectedItemCount"><i class="fa fa-bomb space-right" aria-hidden="true"></i>Kill</button>
|
||||||
<button type="button" class="btn btn-primary btn-responsive" ng-click="restartAction()" ng-disabled="!state.selectedItemCount"><i class="fa fa-refresh space-right" aria-hidden="true"></i>Restart</button>
|
<button type="button" class="btn btn-primary btn-responsive" ng-click="restartAction()" ng-disabled="!state.selectedItemCount"><i class="fa fa-refresh space-right" aria-hidden="true"></i>Restart</button>
|
||||||
<button type="button" class="btn btn-primary btn-responsive" ng-click="pauseAction()" ng-disabled="!state.selectedItemCount"><i class="fa fa-pause space-right" aria-hidden="true"></i>Pause</button>
|
<button type="button" class="btn btn-primary btn-responsive" ng-click="pauseAction()" ng-disabled="!state.selectedItemCount || state.noRunningItemsSelected"><i class="fa fa-pause space-right" aria-hidden="true"></i>Pause</button>
|
||||||
<button type="button" class="btn btn-primary btn-responsive" ng-click="unpauseAction()" ng-disabled="!state.selectedItemCount"><i class="fa fa-play space-right" aria-hidden="true"></i>Resume</button>
|
<button type="button" class="btn btn-primary btn-responsive" ng-click="unpauseAction()" ng-disabled="!state.selectedItemCount || state.noPausedItemsSelected"><i class="fa fa-play space-right" aria-hidden="true"></i>Resume</button>
|
||||||
<button type="button" class="btn btn-danger btn-responsive" ng-click="confirmRemoveAction()" ng-disabled="!state.selectedItemCount"><i class="fa fa-trash space-right" aria-hidden="true"></i>Remove</button>
|
<button type="button" class="btn btn-danger btn-responsive" ng-click="confirmRemoveAction()" ng-disabled="!state.selectedItemCount"><i class="fa fa-trash space-right" aria-hidden="true"></i>Remove</button>
|
||||||
</div>
|
</div>
|
||||||
<a class="btn btn-primary" type="button" ui-sref="actions.create.container"><i class="fa fa-plus space-right" aria-hidden="true"></i>Add container</a>
|
<a class="btn btn-primary" type="button" ui-sref="actions.create.container"><i class="fa fa-plus space-right" aria-hidden="true"></i>Add container</a>
|
||||||
|
|
|
@ -41,6 +41,7 @@ angular.module('containers', [])
|
||||||
}
|
}
|
||||||
return model;
|
return model;
|
||||||
});
|
});
|
||||||
|
updateSelectionFlags();
|
||||||
$('#loadContainersSpinner').hide();
|
$('#loadContainersSpinner').hide();
|
||||||
}, function (e) {
|
}, function (e) {
|
||||||
$('#loadContainersSpinner').hide();
|
$('#loadContainersSpinner').hide();
|
||||||
|
@ -117,17 +118,15 @@ angular.module('containers', [])
|
||||||
angular.forEach($scope.state.filteredContainers, function (container) {
|
angular.forEach($scope.state.filteredContainers, function (container) {
|
||||||
if (container.Checked !== allSelected) {
|
if (container.Checked !== allSelected) {
|
||||||
container.Checked = allSelected;
|
container.Checked = allSelected;
|
||||||
$scope.selectItem(container);
|
toggleItemSelection(container);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
updateSelectionFlags();
|
||||||
};
|
};
|
||||||
|
|
||||||
$scope.selectItem = function (item) {
|
$scope.selectItem = function (item) {
|
||||||
if (item.Checked) {
|
toggleItemSelection(item);
|
||||||
$scope.state.selectedItemCount++;
|
updateSelectionFlags();
|
||||||
} else {
|
|
||||||
$scope.state.selectedItemCount--;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
$scope.toggleGetAll = function () {
|
$scope.toggleGetAll = function () {
|
||||||
|
@ -187,6 +186,33 @@ angular.module('containers', [])
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function toggleItemSelection(item) {
|
||||||
|
if (item.Checked) {
|
||||||
|
$scope.state.selectedItemCount++;
|
||||||
|
} else {
|
||||||
|
$scope.state.selectedItemCount--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateSelectionFlags() {
|
||||||
|
$scope.state.noStoppedItemsSelected = true;
|
||||||
|
$scope.state.noRunningItemsSelected = true;
|
||||||
|
$scope.state.noPausedItemsSelected = true;
|
||||||
|
$scope.containers.forEach(function(container) {
|
||||||
|
if(!container.Checked) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(container.Status === 'paused') {
|
||||||
|
$scope.state.noPausedItemsSelected = false;
|
||||||
|
} else if(container.Status === 'stopped') {
|
||||||
|
$scope.state.noStoppedItemsSelected = false;
|
||||||
|
} else if(container.Status === 'running') {
|
||||||
|
$scope.state.noRunningItemsSelected = false;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
|
||||||
function retrieveSwarmHostsInfo(data) {
|
function retrieveSwarmHostsInfo(data) {
|
||||||
var swarm_hosts = {};
|
var swarm_hosts = {};
|
||||||
var systemStatus = data.SystemStatus;
|
var systemStatus = data.SystemStatus;
|
||||||
|
|
Loading…
Reference in New Issue