80 lines
1.8 KiB
JavaScript
80 lines
1.8 KiB
JavaScript
|
|
window.App = Ember.Application.createWithMixins({
|
|
start: function(){
|
|
MessageBus.start();
|
|
}
|
|
});
|
|
|
|
window.App.start();
|
|
|
|
App.IndexRoute = Ember.Route.extend({
|
|
setupController: function(controller) {
|
|
model = App.IndexModel.create();
|
|
model.ensureSubscribed();
|
|
controller.set('content', model);
|
|
}
|
|
});
|
|
|
|
App.IndexView = Ember.View.extend({});
|
|
|
|
App.Process = Ember.View.extend({
|
|
uniqueId: function(){
|
|
return this.get('hostname') + this.get('pid');
|
|
}.property('hostname', 'pid'),
|
|
|
|
hup: function(){
|
|
$.post("/message-bus/_diagnostics/hup/" + this.get('hostname') + "/" + this.get('pid'));
|
|
}
|
|
});
|
|
|
|
App.IndexModel = Ember.Object.extend({
|
|
disabled: function(){
|
|
return this.get("discovering") ? "disabled" : null;
|
|
}.property("discovering"),
|
|
|
|
ensureSubscribed: function() {
|
|
var processes;
|
|
var _this = this;
|
|
if(this.get("subscribed")) { return; }
|
|
|
|
MessageBus.callbackInterval = 500;
|
|
MessageBus.subscribe("/_diagnostics/process-discovery", function(data){
|
|
processes = _this.get('processes');
|
|
processes.pushObject(App.Process.create(data));
|
|
processes = processes.sort(function(a,b){
|
|
return a.get('uniqueId') < b.get('uniqueId') ? -1 : 1;
|
|
});
|
|
// somewhat odd ...
|
|
_this.set('processes', null);
|
|
_this.set('processes', processes);
|
|
});
|
|
|
|
this.set("subscribed", true);
|
|
},
|
|
|
|
discover: function(){
|
|
var _this = this;
|
|
this.set('processes', Em.A());
|
|
|
|
this.ensureSubscribed();
|
|
|
|
this.set("discovering", true);
|
|
Ember.run.later(function(){
|
|
_this.set("discovering", false);
|
|
}, 1 * 1000);
|
|
|
|
$.post("/message-bus/_diagnostics/discover");
|
|
}
|
|
});
|
|
|
|
|
|
App.IndexController = Ember.ObjectController.extend({
|
|
discover: function(){
|
|
this.get("content").discover();
|
|
},
|
|
|
|
hup: function(process) {
|
|
process.hup();
|
|
}
|
|
});
|