mirror of https://github.com/k3s-io/k3s
Add services and replica controllers to the ux.
parent
90800bdc43
commit
12e4ffe430
|
@ -63,11 +63,25 @@ GroupController.prototype.clearSelector = function() {
|
||||||
window.location.hash = "/groups/" + this.groupBy.join("/") + "/selector";
|
window.location.hash = "/groups/" + this.groupBy.join("/") + "/selector";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
GroupController.prototype.createBarrier = function(count, callback) {
|
||||||
|
var barrier = count;
|
||||||
|
var barrierFunction = angular.bind(this, function(data) {
|
||||||
|
// JavaScript is single threaded so this is safe.
|
||||||
|
barrier--;
|
||||||
|
if (barrier == 0) {
|
||||||
|
if (callback) {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return barrierFunction;
|
||||||
|
};
|
||||||
|
|
||||||
GroupController.prototype.handleGroups = function(parts, selector) {
|
GroupController.prototype.handleGroups = function(parts, selector) {
|
||||||
this.groupBy = parts;
|
this.groupBy = parts;
|
||||||
this.scope.loading = true;
|
this.scope.loading = true;
|
||||||
this.scope.selector = selector;
|
this.scope.selector = selector;
|
||||||
var url = apiBase + "pods";
|
var args = [];
|
||||||
if (selector && selector.length > 0) {
|
if (selector && selector.length > 0) {
|
||||||
this.scope.selectorPieces = selector.split(",");
|
this.scope.selectorPieces = selector.split(",");
|
||||||
var labels = [];
|
var labels = [];
|
||||||
|
@ -80,25 +94,57 @@ GroupController.prototype.handleGroups = function(parts, selector) {
|
||||||
labels.push(piece);
|
labels.push(piece);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
url = url + "?labels=" + encodeURI(labels.join(","));
|
if (labels.length > 0) {
|
||||||
|
args.push("labels=" + encodeURI(labels.join(",")));
|
||||||
|
}
|
||||||
if (fields.length > 0) {
|
if (fields.length > 0) {
|
||||||
url += "&fields=" + encodeURI(fields.join(","));
|
args.push("fields=" + encodeURI(fields.join(",")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.http.get(url)
|
var query = "?" + args.join("&");
|
||||||
|
var list = [];
|
||||||
|
var barrier = this.createBarrier(3, angular.bind(this, function() {
|
||||||
|
this.scope.groups = this.groupData(list, 0);
|
||||||
|
this.scope.loading = false;
|
||||||
|
}));
|
||||||
|
this.http.get(apiBase + "pods" + query)
|
||||||
.success(angular.bind(this, function(data) {
|
.success(angular.bind(this, function(data) {
|
||||||
this.addLabel("type", "pod", data.items);
|
this.addLabel("type", "pod", data.items);
|
||||||
for (var i = 0; i < data.items.length; ++i) {
|
for (var i = 0; data.items && i < data.items.length; ++i) {
|
||||||
data.items[i].labels["host"] = data.items[i].currentState.host;
|
data.items[i].labels["host"] = data.items[i].currentState.host;
|
||||||
}
|
list.push(data.items[i]);
|
||||||
this.scope.groups = this.groupData(data.items, 0);
|
}
|
||||||
this.scope.loading = false;
|
barrier();
|
||||||
|
}))
|
||||||
|
.error(angular.bind(this, this.handleError));
|
||||||
|
this.http.get(apiBase + "services" + query)
|
||||||
|
.success(angular.bind(this, function(data) {
|
||||||
|
this.addLabel("type", "service", data.items);
|
||||||
|
for (var i = 0; data.items && i < data.items.length; ++i) {
|
||||||
|
list.push(data.items[i]);
|
||||||
|
}
|
||||||
|
barrier();
|
||||||
|
}))
|
||||||
|
.error(angular.bind(this, this.handleError));
|
||||||
|
this.http.get(apiBase + "replicationControllers" + query)
|
||||||
|
.success(angular.bind(this, function(data) {
|
||||||
|
this.addLabel("type", "replicationController", data.items);
|
||||||
|
for (var i = 0; data.items && i < data.items.length; ++i) {
|
||||||
|
list.push(data.items[i]);
|
||||||
|
}
|
||||||
|
barrier();
|
||||||
}))
|
}))
|
||||||
.error(angular.bind(this, this.handleError));
|
.error(angular.bind(this, this.handleError));
|
||||||
};
|
};
|
||||||
|
|
||||||
GroupController.prototype.addLabel = function(key, value, items) {
|
GroupController.prototype.addLabel = function(key, value, items) {
|
||||||
|
if (!items) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
for (var i = 0; i < items.length; i++) {
|
for (var i = 0; i < items.length; i++) {
|
||||||
|
if (!items[i].labels) {
|
||||||
|
items[i].labels = []
|
||||||
|
}
|
||||||
items[i].labels[key] = value;
|
items[i].labels[key] = value;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -163,6 +209,6 @@ k8sApp.config(['$routeProvider',
|
||||||
controller: 'PodCtrl'
|
controller: 'PodCtrl'
|
||||||
}).
|
}).
|
||||||
otherwise({
|
otherwise({
|
||||||
redirectTo: '/error'
|
redirectTo: '/groups//selector'
|
||||||
});
|
});
|
||||||
}]);
|
}]);
|
Loading…
Reference in New Issue