##// END OF EJS Templates
bootstrap tree
bootstrap tree

File last commit:

r10891:cd4af664
r10891:cd4af664
Show More
clusterlist.js
198 lines | 6.7 KiB | application/javascript | JavascriptLexer
Brian Granger
Draft of the cluster list UI....
r6195 //----------------------------------------------------------------------------
// Copyright (C) 2008-2011 The IPython Development Team
//
// Distributed under the terms of the BSD License. The full license is in
// the file COPYING, distributed as part of this software.
//----------------------------------------------------------------------------
//============================================================================
// NotebookList
//============================================================================
var IPython = (function (IPython) {
var ClusterList = function (selector) {
this.selector = selector;
if (this.selector !== undefined) {
this.element = $(selector);
this.style();
this.bind_events();
}
};
Bussonnier Matthias
change more baseurl
r9503 ClusterList.prototype.baseProjectUrl = function(){
return this._baseProjectUrl || $('body').data('baseProjectUrl');
};
Brian Granger
Draft of the cluster list UI....
r6195 ClusterList.prototype.style = function () {
$('#cluster_toolbar').addClass('list_toolbar');
$('#cluster_list_info').addClass('toolbar_info');
$('#cluster_buttons').addClass('toolbar_buttons');
MinRK
bootstrap tree
r10891 var children = $('li#cluster_header').addClass('list_header').children();
children.eq(0).addClass('profile_col');
children.eq(1).addClass('action_col');
children.eq(2).addClass('engines_col');
children.eq(3).addClass('status_col');
// $('div#cluster_header').children().eq(2).addClass('engines_col');
// $('div#cluster_header').children().eq(3).addClass('status_col');
// $('#refresh_cluster_list').button({
// icons : {primary: 'ui-icon-arrowrefresh-1-s'},
// text : false
// });
Brian Granger
Draft of the cluster list UI....
r6195 };
ClusterList.prototype.bind_events = function () {
var that = this;
$('#refresh_cluster_list').click(function () {
that.load_list();
});
};
ClusterList.prototype.load_list = function () {
var settings = {
processData : false,
cache : false,
type : "GET",
dataType : "json",
success : $.proxy(this.load_list_success, this)
};
Bussonnier Matthias
change more baseurl
r9503 var url = this.baseProjectUrl() + 'clusters';
Brian Granger
Draft of the cluster list UI....
r6195 $.ajax(url, settings);
};
ClusterList.prototype.clear_list = function () {
this.element.children('.list_item').remove();
}
ClusterList.prototype.load_list_success = function (data, status, xhr) {
this.clear_list();
var len = data.length;
for (var i=0; i<len; i++) {
var item_div = $('<div/>');
var item = new ClusterItem(item_div);
item.update_state(data[i]);
item_div.data('item', item);
this.element.append(item_div);
};
};
var ClusterItem = function (element) {
this.element = $(element);
this.data = null;
Brian Granger
Cluster management is now working....
r6197 this.style();
Brian Granger
Draft of the cluster list UI....
r6195 };
Matthias BUSSONNIER
fix baseUrl
r9699 ClusterItem.prototype.baseProjectUrl = function(){
return this._baseProjectUrl || $('body').data('baseProjectUrl');
};
Brian Granger
Draft of the cluster list UI....
r6195
Brian Granger
Cluster management is now working....
r6197 ClusterItem.prototype.style = function () {
MinRK
bootstrap tree
r10891 this.element.addClass('list_item');
Brian Granger
Cluster management is now working....
r6197 }
Brian Granger
Draft of the cluster list UI....
r6195 ClusterItem.prototype.update_state = function (data) {
this.data = data;
if (data.status === 'running') {
this.state_running();
} else if (data.status === 'stopped') {
this.state_stopped();
};
}
ClusterItem.prototype.state_stopped = function () {
Brian Granger
Cluster management is now working....
r6197 var that = this;
this.element.empty();
var profile_col = $('<span/>').addClass('profile_col').text(this.data.profile);
var status_col = $('<span/>').addClass('status_col').html('stopped');
var engines_col = $('<span/>').addClass('engines_col');
Matthias BUSSONNIER
min and default for engine number
r9289 var input = $('<input/>').attr('type','number')
.attr('min',1)
.attr('size',3)
.addClass('engine_num_input');
Brian Granger
Chaging # of engines format in cluster list.
r6201 engines_col.append(input);
MinRK
bootstrap tree
r10891 var start_button = $('<button/>').addClass("btn btn-mini").text("Start");
var action_col = $('<span/>').addClass('action_col').append(
$("<span/>").addClass("btn-group pull-right").append(
start_button
)
);
Brian Granger
Cluster management is now working....
r6197 this.element.append(profile_col).
append(action_col).
append(engines_col).
append(status_col);
Brian Granger
Draft of the cluster list UI....
r6195 start_button.click(function (e) {
Brian Granger
Cluster management is now working....
r6197 var n = that.element.find('.engine_num_input').val();
Brian Granger
Notebook cluster manager now uses proper launchers.
r6199 if (!/^\d+$/.test(n) && n.length>0) {
Brian Granger
Cluster management is now working....
r6197 status_col.html('invalid engine #');
} else {
var settings = {
cache : false,
data : {n:n},
type : "POST",
dataType : "json",
success : function (data, status, xhr) {
that.update_state(data);
},
error : function (data, status, xhr) {
status_col.html("error starting cluster")
}
};
status_col.html('starting');
Matthias BUSSONNIER
fix baseUrl
r9699 var url = that.baseProjectUrl() + 'clusters/' + that.data.profile + '/start';
Brian Granger
Cluster management is now working....
r6197 $.ajax(url, settings);
};
Brian Granger
Draft of the cluster list UI....
r6195 });
};
Brian Granger
Cluster management is now working....
r6197
Brian Granger
Draft of the cluster list UI....
r6195 ClusterItem.prototype.state_running = function () {
Brian Granger
Cluster management is now working....
r6197 this.element.empty();
var that = this;
var profile_col = $('<span/>').addClass('profile_col').text(this.data.profile);
var status_col = $('<span/>').addClass('status_col').html('running');
var engines_col = $('<span/>').addClass('engines_col').html(this.data.n);
MinRK
bootstrap tree
r10891 var stop_button = $('<button/>').addClass("btn btn-mini").text("Stop");
var action_col = $('<span/>').addClass('action_col').append(
$("<span/>").addClass("btn-group pull-right").append(
stop_button
)
);
Brian Granger
Cluster management is now working....
r6197 this.element.append(profile_col).
append(action_col).
append(engines_col).
append(status_col);
stop_button.click(function (e) {
var settings = {
cache : false,
type : "POST",
dataType : "json",
success : function (data, status, xhr) {
that.update_state(data);
},
error : function (data, status, xhr) {
console.log('error',data);
status_col.html("error stopping cluster")
}
};
status_col.html('stopping')
Matthias BUSSONNIER
fix baseUrl
r9699 var url = that.baseProjectUrl() + 'clusters/' + that.data.profile + '/stop';
Brian Granger
Cluster management is now working....
r6197 $.ajax(url, settings);
Brian Granger
Draft of the cluster list UI....
r6195 });
};
IPython.ClusterList = ClusterList;
IPython.ClusterItem = ClusterItem;
return IPython;
}(IPython));