##// END OF EJS Templates
Prevents crash on some systems where chmod fails (e.g. sshfs on Windows)....
Prevents crash on some systems where chmod fails (e.g. sshfs on Windows). Also make ProfileDir a LoggingConfigurable, so it can log the new message closes gh-773

File last commit:

r5150:bbc4d01c
r5197:fbd82bdf
Show More
panelsection.js
289 lines | 10.9 KiB | application/javascript | JavascriptLexer
//----------------------------------------------------------------------------
// 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.
//----------------------------------------------------------------------------
//============================================================================
// PanelSection
//============================================================================
var IPython = (function (IPython) {
var utils = IPython.utils;
// Base PanelSection class
var PanelSection = function (selector) {
this.selector = selector;
if (this.selector !== undefined) {
this.element = $(selector);
this.header = this.element.find('div.section_header');
this.content = this.element.find('div.section_content');
this.style();
this.bind_events();
}
this.expanded = true;
};
PanelSection.prototype.style = function () {
this.header.addClass('ui-widget ui-state-default ui-helper-clearfix');
this.header.attr('title', "Click to Show/Hide Section");
this.content.addClass('ui-widget section_content');
};
PanelSection.prototype.bind_events = function () {
var that = this;
this.header.click(function () {
that.toggle();
});
this.header.hover(function () {
that.header.toggleClass('ui-state-hover');
});
};
PanelSection.prototype.expand = function () {
if (!this.expanded) {
this.content.slideDown('fast');
this.expanded = true;
};
};
PanelSection.prototype.collapse = function () {
if (this.expanded) {
this.content.slideUp('fast');
this.expanded = false;
};
};
PanelSection.prototype.toggle = function () {
if (this.expanded === true) {
this.collapse();
} else {
this.expand();
};
};
PanelSection.prototype.create_children = function () {};
// NotebookSection
var NotebookSection = function () {
PanelSection.apply(this, arguments);
};
NotebookSection.prototype = new PanelSection();
NotebookSection.prototype.style = function () {
PanelSection.prototype.style.apply(this);
this.content.addClass('ui-helper-clearfix');
this.content.find('div.section_row').addClass('ui-helper-clearfix');
this.content.find('#new_open').buttonset();
this.content.find('#new_notebook').attr('title', "Create a new notebook");
this.content.find('#open_notebook').attr('title', "Open an existing notebook");
this.content.find('#download_notebook').button();
this.content.find('#download_notebook').attr('title',
"Download the notebook in the specified format," +
" either full ipynb notebook or as a Python script." +
" Make sure to save before downloading, to ensure the file is up to date."
);
// upload notebook doesn't exist:
this.content.find('#upload_notebook').button();
this.content.find('#download_format').addClass('ui-widget ui-widget-content');
this.content.find('#download_format option').addClass('ui-widget ui-widget-content');
};
NotebookSection.prototype.bind_events = function () {
PanelSection.prototype.bind_events.apply(this);
var that = this;
this.content.find('#new_notebook').click(function () {
window.open($('body').data('baseProjectUrl')+'new');
});
this.content.find('#open_notebook').click(function () {
window.open($('body').data('baseProjectUrl'));
});
this.content.find('#download_notebook').click(function () {
var format = that.content.find('#download_format').val();
var notebook_id = IPython.save_widget.get_notebook_id();
var url = $('body').data('baseProjectUrl') + 'notebooks/' + notebook_id + '?format=' + format;
window.open(url,'_newtab');
});
};
// CellSection
var CellSection = function () {
PanelSection.apply(this, arguments);
};
CellSection.prototype = new PanelSection();
CellSection.prototype.style = function () {
PanelSection.prototype.style.apply(this);
this.content.addClass('ui-helper-clearfix');
this.content.find('div.section_row').addClass('ui-helper-clearfix');
this.content.find('#delete_cell').button();
this.content.find('#delete_cell').attr('title', "Delete the selected cell");
this.content.find('#insert').buttonset();
this.content.find('#insert_cell_above').attr('title', "Insert new cell above selected");
this.content.find('#insert_cell_below').attr('title', "Insert new cell below selected");
this.content.find('#move').buttonset();
this.content.find('#move_cell_up').attr('title', "Move selected cell up one in the Notebook");
this.content.find('#move_cell_down').attr('title', "Move selected cell down one in the Notebook");
this.content.find('#cell_type').buttonset();
this.content.find('#to_markdown').attr('title', 'Change selected cell to markdown (for text)')
this.content.find('#to_code').attr('title', 'Change selected cell to code (for execution)')
this.content.find('#cell_output').buttonset();
this.content.find('#toggle_output').attr('title', 'Toggle visibility of the output of code cells')
this.content.find('#clear_all_output').attr('title', 'Clear output of all code cells (actually removes the data, unlike toggle)')
this.content.find('#run_cells').buttonset();
this.content.find('#run_selected_cell').attr('title', 'Submit the selected cell for execution')
this.content.find('#run_all_cells').attr('title', 'Run *all* code cells in the notebook in order')
this.content.find('#autoindent').attr('title', 'Autoindent code as-you-type')
this.content.find('#autoindent_label').attr('title', 'Autoindent code as-you-type')
};
CellSection.prototype.bind_events = function () {
PanelSection.prototype.bind_events.apply(this);
this.content.find('#toggle_output').click(function () {
IPython.notebook.toggle_output();
});
this.content.find('#clear_all_output').click(function () {
IPython.notebook.clear_all_output();
});
this.content.find('#delete_cell').click(function () {
IPython.notebook.delete_cell();
});
this.content.find('#insert_cell_above').click(function () {
IPython.notebook.insert_code_cell_above();
});
this.content.find('#insert_cell_below').click(function () {
IPython.notebook.insert_code_cell_below();
});
this.content.find('#move_cell_up').click(function () {
IPython.notebook.move_cell_up();
});
this.content.find('#move_cell_down').click(function () {
IPython.notebook.move_cell_down();
});
this.content.find('#to_code').click(function () {
IPython.notebook.to_code();
});
this.content.find('#to_markdown').click(function () {
IPython.notebook.to_markdown();
});
this.content.find('#run_selected_cell').click(function () {
IPython.notebook.execute_selected_cell();
});
this.content.find('#run_all_cells').click(function () {
IPython.notebook.execute_all_cells();
});
this.content.find('#autoindent').change(function () {
var state = $('#autoindent').prop('checked');
IPython.notebook.set_autoindent(state);
});
};
// KernelSection
var KernelSection = function () {
PanelSection.apply(this, arguments);
};
KernelSection.prototype = new PanelSection();
KernelSection.prototype.style = function () {
PanelSection.prototype.style.apply(this);
this.content.addClass('ui-helper-clearfix');
this.content.find('div.section_row').addClass('ui-helper-clearfix');
this.content.find('#int_restart').buttonset();
this.content.find("#int_kernel").attr('title', "Interrupt the kernel with SIGINT/Ctrl-C");
this.content.find("#restart_kernel").attr('title',
"Restart the kernel. This will shutdown the current kernel," +
" and start a new, clean kernel in its place, connected to this Notebook." +
" This may break the connection of other clients connected to this kernel." );
var kill_tip = "Kill the kernel on exit. If unchecked, the kernel will remain" +
" active after closing the session, allowing you to reconnect and resume later.";
this.content.find('#kill_kernel').attr('title', kill_tip);
this.content.find('#kill_kernel_label').attr('title', kill_tip);
};
KernelSection.prototype.bind_events = function () {
PanelSection.prototype.bind_events.apply(this);
this.content.find('#restart_kernel').click(function () {
IPython.notebook.restart_kernel();
});
this.content.find('#int_kernel').click(function () {
IPython.notebook.kernel.interrupt();
});
};
// HelpSection
var HelpSection = function () {
PanelSection.apply(this, arguments);
};
HelpSection.prototype = new PanelSection();
HelpSection.prototype.style = function () {
PanelSection.prototype.style.apply(this);
PanelSection.prototype.style.apply(this);
this.content.addClass('ui-helper-clearfix');
this.content.find('div.section_row').addClass('ui-helper-clearfix');
this.content.find('#help_buttons0').buttonset();
this.content.find('#help_buttons1').buttonset();
this.content.find('#help_buttons2').buttonset();
this.content.find('#python_help').attr('title', "Open the online Python documentation in a new tab")
this.content.find('#ipython_help').attr('title', "Open the online IPython documentation in a new tab")
this.content.find('#numpy_help').attr('title', "Open the online NumPy documentation in a new tab")
this.content.find('#scipy_help').attr('title', "Open the online SciPy documentation in a new tab")
this.content.find('#matplotlib_help').attr('title', "Open the online Matplotlib documentation in a new tab")
this.content.find('#sympy_help').attr('title', "Open the online SymPy documentation in a new tab")
};
HelpSection.prototype.bind_events = function () {
PanelSection.prototype.bind_events.apply(this);
};
// Set module variables
IPython.PanelSection = PanelSection;
IPython.NotebookSection = NotebookSection;
IPython.CellSection = CellSection;
IPython.KernelSection = KernelSection;
IPython.HelpSection = HelpSection;
return IPython;
}(IPython));