panelsection.js
333 lines
| 13.0 KiB
| application/javascript
|
JavascriptLexer
Brian E. Granger
|
r4609 | //---------------------------------------------------------------------------- | ||
// 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. | ||||
//---------------------------------------------------------------------------- | ||||
Brian E. Granger
|
r4365 | |||
//============================================================================ | ||||
Brian E. Granger
|
r4609 | // PanelSection | ||
Brian E. Granger
|
r4365 | //============================================================================ | ||
var IPython = (function (IPython) { | ||||
var utils = IPython.utils; | ||||
// Base PanelSection class | ||||
Brian E. Granger
|
r4372 | var PanelSection = function (selector) { | ||
this.selector = selector; | ||||
if (this.selector !== undefined) { | ||||
this.element = $(selector); | ||||
MinRK
|
r5116 | this.header = this.element.find('div.section_header'); | ||
Brian E. Granger
|
r4372 | this.content = this.element.find('div.section_content'); | ||
this.style(); | ||||
Brian E. Granger
|
r4365 | this.bind_events(); | ||
} | ||||
this.expanded = true; | ||||
}; | ||||
Brian E. Granger
|
r4372 | PanelSection.prototype.style = function () { | ||
MinRK
|
r5116 | this.header.addClass('ui-widget ui-state-default ui-helper-clearfix'); | ||
MinRK
|
r5097 | this.header.attr('title', "Click to Show/Hide Section"); | ||
Brian E. Granger
|
r4372 | this.content.addClass('ui-widget section_content'); | ||
}; | ||||
Brian E. Granger
|
r4365 | 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(); | ||||
Brian E. Granger
|
r4372 | 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(); | ||||
MinRK
|
r5097 | this.content.find('#new_notebook').attr('title', "Create a new notebook"); | ||
this.content.find('#open_notebook').attr('title', "Open an existing notebook"); | ||||
Brian E. Granger
|
r4484 | this.content.find('#download_notebook').button(); | ||
MinRK
|
r5097 | this.content.find('#download_notebook').attr('title', | ||
"Download the notebook in the specified format," + | ||||
MinRK
|
r5150 | " either full ipynb notebook or as a Python script." + | ||
" Make sure to save before downloading, to ensure the file is up to date." | ||||
); | ||||
MinRK
|
r5097 | // upload notebook doesn't exist: | ||
Brian E. Granger
|
r4484 | 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'); | ||||
Brian E. Granger
|
r4372 | }; | ||
NotebookSection.prototype.bind_events = function () { | ||||
PanelSection.prototype.bind_events.apply(this); | ||||
Brian E. Granger
|
r4484 | var that = this; | ||
Brian E. Granger
|
r4372 | this.content.find('#new_notebook').click(function () { | ||
Brian E. Granger
|
r5108 | window.open($('body').data('baseProjectUrl')+'new'); | ||
Brian E. Granger
|
r4372 | }); | ||
this.content.find('#open_notebook').click(function () { | ||||
Brian E. Granger
|
r5108 | window.open($('body').data('baseProjectUrl')); | ||
Brian E. Granger
|
r4372 | }); | ||
Brian E. Granger
|
r4484 | this.content.find('#download_notebook').click(function () { | ||
var format = that.content.find('#download_format').val(); | ||||
var notebook_id = IPython.save_widget.get_notebook_id(); | ||||
Brian E. Granger
|
r5108 | var url = $('body').data('baseProjectUrl') + 'notebooks/' + notebook_id + '?format=' + format; | ||
Brian E. Granger
|
r4484 | window.open(url,'_newtab'); | ||
}); | ||||
Brian E. Granger
|
r4372 | }; | ||
Matthias BUSSONNIER
|
r5399 | // ConfigSection | ||
var ConfigSection = function () { | ||||
PanelSection.apply(this, arguments); | ||||
}; | ||||
ConfigSection.prototype = new PanelSection(); | ||||
ConfigSection.prototype.style = function () { | ||||
PanelSection.prototype.style.apply(this); | ||||
this.content.addClass('ui-helper-clearfix'); | ||||
this.content.find('div.section_row').addClass('ui-helper-clearfix'); | ||||
Matthias BUSSONNIER
|
r5412 | this.content.find('#tooltipontab').attr('title', 'Show tooltip if you press <Tab> after "(" or a white space'); | ||
Matthias BUSSONNIER
|
r5399 | this.content.find('#tooltipontab_label').attr('title', 'Show Tooltip when pressing Tab'); | ||
Matthias BUSSONNIER
|
r5400 | this.content.find('#timebeforetooltip').attr('title', 'Time before a tooltip auto-appear when "(" is pressed (negative value supress tooltip)'); | ||
this.content.find('#timebeforetooltip_label').attr('title', 'Time before a tooltip auto-appear when "(" is pressed (negative value supress tooltip)'); | ||||
Matthias BUSSONNIER
|
r5401 | this.content.find('#smartcompleter').attr('title', 'When inside function call, completer try to propose kwargs first'); | ||
this.content.find('#smartcompleter_label').attr('title', 'When inside function call, completer try to propose kwargs first'); | ||||
Matthias BUSSONNIER
|
r5399 | }; | ||
ConfigSection.prototype.bind_events = function () { | ||||
PanelSection.prototype.bind_events.apply(this); | ||||
this.content.find('#tooltipontab').change(function () { | ||||
var state = $('#tooltipontab').prop('checked'); | ||||
IPython.notebook.set_tooltipontab(state); | ||||
}); | ||||
Matthias BUSSONNIER
|
r5400 | this.content.find('#timebeforetooltip').change(function () { | ||
var state = $('#timebeforetooltip').prop('value'); | ||||
IPython.notebook.set_timebeforetooltip(state); | ||||
}); | ||||
Matthias BUSSONNIER
|
r5401 | this.content.find('#smartcompleter').change(function () { | ||
var state = $('#smartcompleter').prop('checked'); | ||||
IPython.notebook.set_smartcompleter(state); | ||||
}); | ||||
Matthias BUSSONNIER
|
r5399 | }; | ||
Brian E. Granger
|
r4365 | // CellSection | ||
var CellSection = function () { | ||||
PanelSection.apply(this, arguments); | ||||
}; | ||||
CellSection.prototype = new PanelSection(); | ||||
Brian E. Granger
|
r4372 | 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(); | ||||
MinRK
|
r5097 | this.content.find('#delete_cell').attr('title', "Delete the selected cell"); | ||
Brian E. Granger
|
r4372 | this.content.find('#insert').buttonset(); | ||
MinRK
|
r5097 | 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"); | ||||
Brian E. Granger
|
r4372 | this.content.find('#move').buttonset(); | ||
MinRK
|
r5097 | 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"); | ||||
Brian E. Granger
|
r4372 | this.content.find('#cell_type').buttonset(); | ||
Stefan van der Walt
|
r5479 | 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)'); | ||||
MinRK
|
r5097 | |||
Brian E. Granger
|
r4639 | this.content.find('#cell_output').buttonset(); | ||
Stefan van der Walt
|
r5479 | 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)'); | ||||
MinRK
|
r5097 | |||
Brian E. Granger
|
r4372 | this.content.find('#run_cells').buttonset(); | ||
Stefan van der Walt
|
r5479 | 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'); | ||||
Brian E. Granger
|
r4372 | }; | ||
Brian E. Granger
|
r4365 | CellSection.prototype.bind_events = function () { | ||
PanelSection.prototype.bind_events.apply(this); | ||||
Brian E. Granger
|
r4639 | this.content.find('#toggle_output').click(function () { | ||
IPython.notebook.toggle_output(); | ||||
Brian E. Granger
|
r4365 | }); | ||
Brian E. Granger
|
r4543 | this.content.find('#clear_all_output').click(function () { | ||
IPython.notebook.clear_all_output(); | ||||
}); | ||||
Brian E. Granger
|
r4365 | this.content.find('#delete_cell').click(function () { | ||
IPython.notebook.delete_cell(); | ||||
}); | ||||
this.content.find('#insert_cell_above').click(function () { | ||||
Fernando Perez
|
r4659 | IPython.notebook.insert_code_cell_above(); | ||
Brian E. Granger
|
r4365 | }); | ||
this.content.find('#insert_cell_below').click(function () { | ||||
Fernando Perez
|
r4659 | IPython.notebook.insert_code_cell_below(); | ||
Brian E. Granger
|
r4365 | }); | ||
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 () { | ||||
Brian E. Granger
|
r4507 | IPython.notebook.to_code(); | ||
Brian E. Granger
|
r4365 | }); | ||
Brian Granger
|
r4508 | this.content.find('#to_markdown').click(function () { | ||
IPython.notebook.to_markdown(); | ||||
Brian E. Granger
|
r4365 | }); | ||
Brian E. Granger
|
r4367 | this.content.find('#run_selected_cell').click(function () { | ||
Brian E. Granger
|
r4378 | IPython.notebook.execute_selected_cell(); | ||
Brian E. Granger
|
r4367 | }); | ||
this.content.find('#run_all_cells').click(function () { | ||||
Brian E. Granger
|
r4378 | IPython.notebook.execute_all_cells(); | ||
Brian E. Granger
|
r4367 | }); | ||
Brian E. Granger
|
r4512 | this.content.find('#autoindent').change(function () { | ||
var state = $('#autoindent').prop('checked'); | ||||
IPython.notebook.set_autoindent(state); | ||||
}); | ||||
Matthias BUSSONNIER
|
r5399 | this.content.find('#tooltipontab').change(function () { | ||
var state = $('#tooltipontab').prop('checked'); | ||||
IPython.notebook.set_tooltipontab(state); | ||||
}); | ||||
Brian E. Granger
|
r4365 | }; | ||
// KernelSection | ||||
var KernelSection = function () { | ||||
PanelSection.apply(this, arguments); | ||||
}; | ||||
KernelSection.prototype = new PanelSection(); | ||||
Brian E. Granger
|
r4372 | 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(); | ||||
MinRK
|
r5097 | 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); | ||||
Brian E. Granger
|
r4372 | }; | ||
Brian E. Granger
|
r4368 | KernelSection.prototype.bind_events = function () { | ||
PanelSection.prototype.bind_events.apply(this); | ||||
this.content.find('#restart_kernel').click(function () { | ||||
Brian E. Granger
|
r4545 | IPython.notebook.restart_kernel(); | ||
Brian E. Granger
|
r4368 | }); | ||
this.content.find('#int_kernel').click(function () { | ||||
IPython.notebook.kernel.interrupt(); | ||||
}); | ||||
}; | ||||
// HelpSection | ||||
var HelpSection = function () { | ||||
PanelSection.apply(this, arguments); | ||||
}; | ||||
HelpSection.prototype = new PanelSection(); | ||||
Brian E. Granger
|
r4372 | 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(); | ||||
Brian E. Granger
|
r4640 | this.content.find('#help_buttons2').buttonset(); | ||
Stefan van der Walt
|
r5479 | 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"); | ||||
Brian E. Granger
|
r4368 | }; | ||
Brian E. Granger
|
r4372 | HelpSection.prototype.bind_events = function () { | ||
PanelSection.prototype.bind_events.apply(this); | ||||
}; | ||||
Brian E. Granger
|
r4368 | |||
Brian E. Granger
|
r4372 | // Set module variables | ||
Brian E. Granger
|
r4368 | |||
Brian E. Granger
|
r4365 | IPython.PanelSection = PanelSection; | ||
IPython.NotebookSection = NotebookSection; | ||||
IPython.CellSection = CellSection; | ||||
Matthias BUSSONNIER
|
r5399 | IPython.ConfigSection = ConfigSection; | ||
Brian E. Granger
|
r4365 | IPython.KernelSection = KernelSection; | ||
Brian E. Granger
|
r4368 | IPython.HelpSection = HelpSection; | ||
Brian E. Granger
|
r4365 | |||
return IPython; | ||||
}(IPython)); | ||||