##// END OF EJS Templates
book icon for notebooks, color folders differently...
book icon for notebooks, color folders differently This allows us to use the generic file icon for text files, etc, down the line.

File last commit:

r15240:9da7d058
r16259:1351e6e1
Show More
clusterlist.js
196 lines | 6.6 KiB | application/javascript | JavascriptLexer
Brian Granger
Draft of the cluster list UI....
r6195 //----------------------------------------------------------------------------
MinRK
add utils.url_path_join...
r13063 // Copyright (C) 2011 The IPython Development Team
Brian Granger
Draft of the cluster list UI....
r6195 //
// 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) {
MinRK
add utils.url_path_join...
r13063 "use strict";
var utils = IPython.utils;
Brian Granger
Draft of the cluster list UI....
r6195
MinRK
various unicode fixes...
r15234 var ClusterList = function (selector, options) {
Brian Granger
Draft of the cluster list UI....
r6195 this.selector = selector;
if (this.selector !== undefined) {
this.element = $(selector);
this.style();
this.bind_events();
}
MinRK
various unicode fixes...
r15234 options = options || {};
this.options = options;
MinRK
s/get_data/get_body_data/
r15240 this.base_url = options.base_url || utils.get_body_data("baseUrl");
this.notebook_path = options.notebook_path || utils.get_body_data("notebookPath");
Bussonnier Matthias
change more baseurl
r9503 };
Brian Granger
Draft of the cluster list UI....
r6195 ClusterList.prototype.style = function () {
MinRK
use row-fluid for cluster list
r10920 $('#cluster_list').addClass('list_container');
Brian Granger
Draft of the cluster list UI....
r6195 $('#cluster_toolbar').addClass('list_toolbar');
$('#cluster_list_info').addClass('toolbar_info');
$('#cluster_buttons').addClass('toolbar_buttons');
};
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)
};
MinRK
s/base_project_url/base_url/...
r15238 var url = utils.url_join_encode(this.base_url, 'clusters');
Brian Granger
Draft of the cluster list UI....
r6195 $.ajax(url, settings);
};
ClusterList.prototype.clear_list = function () {
MinRK
use row-fluid for cluster list
r10920 this.element.children('.list_item').remove();
MinRK
add utils.url_path_join...
r13063 };
Brian Granger
Draft of the cluster list UI....
r6195
ClusterList.prototype.load_list_success = function (data, status, xhr) {
this.clear_list();
var len = data.length;
for (var i=0; i<len; i++) {
MinRK
use row-fluid for cluster list
r10920 var element = $('<div/>');
MinRK
various unicode fixes...
r15234 var item = new ClusterItem(element, this.options);
Brian Granger
Draft of the cluster list UI....
r6195 item.update_state(data[i]);
MinRK
fight with bootstrap a little less in tree view
r10911 element.data('item', item);
this.element.append(element);
MinRK
add utils.url_path_join...
r13063 }
Brian Granger
Draft of the cluster list UI....
r6195 };
MinRK
various unicode fixes...
r15234 var ClusterItem = function (element, options) {
Brian Granger
Draft of the cluster list UI....
r6195 this.element = $(element);
MinRK
s/get_data/get_body_data/
r15240 this.base_url = options.base_url || utils.get_body_data("baseUrl");
this.notebook_path = options.notebook_path || utils.get_body_data("notebookPath");
Brian Granger
Draft of the cluster list UI....
r6195 this.data = null;
Brian Granger
Cluster management is now working....
r6197 this.style();
Brian Granger
Draft of the cluster list UI....
r6195 };
Brian Granger
Cluster management is now working....
r6197 ClusterItem.prototype.style = function () {
MinRK
use row-fluid for cluster list
r10920 this.element.addClass('list_item').addClass("row-fluid");
MinRK
add utils.url_path_join...
r13063 };
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();
MinRK
add utils.url_path_join...
r13063 }
};
Brian Granger
Draft of the cluster list UI....
r6195
ClusterItem.prototype.state_stopped = function () {
Brian Granger
Cluster management is now working....
r6197 var that = this;
Brian E. Granger
Tighten spacing of dashboard.
r15077 var profile_col = $('<div/>').addClass('profile_col span4').text(this.data.profile);
var status_col = $('<div/>').addClass('status_col span3').text('stopped');
var engines_col = $('<div/>').addClass('engine_col span3');
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");
Brian E. Granger
Tighten spacing of dashboard.
r15077 var action_col = $('<div/>').addClass('action_col span2').append(
MinRK
use row-fluid for cluster list
r10920 $("<span/>").addClass("item_buttons btn-group").append(
MinRK
bootstrap tree
r10891 start_button
)
);
MinRK
use row-fluid for cluster list
r10920 this.element.empty()
MinRK
fight with bootstrap a little less in tree view
r10911 .append(profile_col)
MinRK
use row-fluid for cluster list
r10920 .append(status_col)
MinRK
fight with bootstrap a little less in tree view
r10911 .append(engines_col)
MinRK
use row-fluid for cluster list
r10920 .append(action_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) {
Matthias BUSSONNIER
some $.html( -> $.text(...
r14634 status_col.text('invalid engine #');
Brian Granger
Cluster management is now working....
r6197 } 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) {
Matthias BUSSONNIER
some $.html( -> $.text(...
r14634 status_col.text("error starting cluster");
Brian Granger
Cluster management is now working....
r6197 }
};
Matthias BUSSONNIER
some $.html( -> $.text(...
r14634 status_col.text('starting');
MinRK
make sure to encode URL components for API requests...
r13693 var url = utils.url_join_encode(
MinRK
s/base_project_url/base_url/...
r15238 that.base_url,
MinRK
add utils.url_path_join...
r13063 'clusters',
that.data.profile,
'start'
);
Brian Granger
Cluster management is now working....
r6197 $.ajax(url, settings);
MinRK
add utils.url_path_join...
r13063 }
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 var that = this;
Brian E. Granger
Tighten spacing of dashboard.
r15077 var profile_col = $('<div/>').addClass('profile_col span4').text(this.data.profile);
var status_col = $('<div/>').addClass('status_col span3').text('running');
var engines_col = $('<div/>').addClass('engines_col span3').text(this.data.n);
MinRK
bootstrap tree
r10891 var stop_button = $('<button/>').addClass("btn btn-mini").text("Stop");
Brian E. Granger
Tighten spacing of dashboard.
r15077 var action_col = $('<div/>').addClass('action_col span2').append(
MinRK
use row-fluid for cluster list
r10920 $("<span/>").addClass("item_buttons btn-group").append(
MinRK
bootstrap tree
r10891 stop_button
)
);
MinRK
use row-fluid for cluster list
r10920 this.element.empty()
MinRK
fight with bootstrap a little less in tree view
r10911 .append(profile_col)
MinRK
use row-fluid for cluster list
r10920 .append(status_col)
MinRK
fight with bootstrap a little less in tree view
r10911 .append(engines_col)
MinRK
use row-fluid for cluster list
r10920 .append(action_col);
Brian Granger
Cluster management is now working....
r6197 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);
Matthias BUSSONNIER
some $.html( -> $.text(...
r14634 status_col.text("error stopping cluster");
Brian Granger
Cluster management is now working....
r6197 }
};
Matthias BUSSONNIER
some $.html( -> $.text(...
r14634 status_col.text('stopping');
MinRK
make sure to encode URL components for API requests...
r13693 var url = utils.url_join_encode(
MinRK
s/base_project_url/base_url/...
r15238 that.base_url,
MinRK
add utils.url_path_join...
r13063 '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));