mirror of
https://github.com/portainer/portainer.git
synced 2025-07-19 13:29:41 +02:00
* Adding latest build to dist. * Adding latest build to dist. * Bump other app version. * Build latest changes. * Bump version to 0.7.0. * Version bump to 0.9.0-beta and remote API 1.20. * Whoah there, back down to 0.8.0-beta. * Merge branch 'crosbymichael-master' into crosbymichael-dist * Add volume options in volume creation form * display swarm cluster information in Swarm tab * update LICENSE * update repository URL in status bar * remove console logs * do not display Swarm containers anywhere in the UI * update position for add/remove option on Volumes page * compliant with swarm == 1.2.0 API support * update nginx-basic-auth examples with latest nginx and swarm example * Updated .gitignore * update .gitignore * reverted entry for dist/uifordocker in .gitignore * WIP * fix linter issues * added logo * update repository URL * update .gitignore (ignore dist/*) * add lodash * add containers actions binding (start, stop...) * replace image icon * bind remove image action * bind network remove action * bind volume remove action * update logo * wip on container details * update logo scaling, favicon and page title * wip container view * add containers actions in container view * add image view * add network view * remove useless data in tables * add pull image, create network modals * add create volume modal * update style for createVolume options * add start container modal * create volume modal now use a select to display drivers * add container stats * add containerTop view in stats view * fix trimcontainername filter * add container logs view * updated .gitignore * remove useless files/modules * remove useless chart in image view * replace $location usage with $state.go * remove useless swarm example
62 lines
2 KiB
JavaScript
62 lines
2 KiB
JavaScript
angular.module('swarm', [])
|
|
.controller('SwarmController', ['$scope', 'Info', 'Version', 'Settings',
|
|
function ($scope, Info, Version, Settings) {
|
|
|
|
$scope.sortType = 'Name';
|
|
$scope.sortReverse = true;
|
|
$scope.info = {};
|
|
$scope.docker = {};
|
|
$scope.swarm = {};
|
|
|
|
$scope.order = function(sortType) {
|
|
$scope.sortReverse = ($scope.sortType === sortType) ? !$scope.sortReverse : false;
|
|
$scope.sortType = sortType;
|
|
};
|
|
|
|
Version.get({}, function (d) {
|
|
$scope.docker = d;
|
|
});
|
|
Info.get({}, function (d) {
|
|
$scope.info = d;
|
|
extractSwarmInfo(d);
|
|
});
|
|
|
|
function extractSwarmInfo(info) {
|
|
// Swarm info is available in SystemStatus object
|
|
var systemStatus = info.SystemStatus;
|
|
// Swarm strategy
|
|
$scope.swarm[systemStatus[1][0]] = systemStatus[1][1];
|
|
// Swarm filters
|
|
$scope.swarm[systemStatus[2][0]] = systemStatus[2][1];
|
|
// Swarm node count
|
|
var node_count = parseInt(systemStatus[3][1], 10);
|
|
$scope.swarm[systemStatus[3][0]] = node_count;
|
|
|
|
$scope.swarm.Status = [];
|
|
extractNodesInfo(systemStatus, node_count);
|
|
}
|
|
|
|
function extractNodesInfo(info, node_count) {
|
|
// First information for node1 available at element #4 of SystemStatus
|
|
// The next 10 elements are information related to the node
|
|
var node_offset = 4;
|
|
for (i = 0; i < node_count; i++) {
|
|
extractNodeInfo(info, node_offset);
|
|
node_offset += 9;
|
|
}
|
|
}
|
|
|
|
function extractNodeInfo(info, offset) {
|
|
var node = {};
|
|
node.name = info[offset][0];
|
|
node.ip = info[offset][1];
|
|
node.status = info[offset + 1][1];
|
|
node.containers = info[offset + 2][1];
|
|
node.cpu = info[offset + 3][1];
|
|
node.memory = info[offset + 4][1];
|
|
node.labels = info[offset + 5][1];
|
|
node.error = info[offset + 6][1];
|
|
node.version = info[offset + 8][1];
|
|
$scope.swarm.Status.push(node);
|
|
}
|
|
}]);
|