##// END OF EJS Templates
Base of an as you type conpleter....
Base of an as you type conpleter. when invoking the completer, instead of having to chose/dismiss, you can continue typing, it will filter the result "as you type" and dismiss itself if ther is no match left. As it is now, it's only works with lowercase letters, I need to find a workaroud for this. for example if you type : * P-y-<tab>-S-o-m-e-t-h-i-n-g * it will propose PySide, but will dismiss when 'o' is pressed and pasting Pyso with a lower case 's'

File last commit:

r5479:0168dc21
r5507:6b2d9cce
Show More
panelsection.js
333 lines | 13.0 KiB | application/javascript | JavascriptLexer
Brian E. Granger
More review changes....
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
Initial draft of panel section and the cell section working.
r4365
//============================================================================
Brian E. Granger
More review changes....
r4609 // PanelSection
Brian E. Granger
Initial draft of panel section and the cell section working.
r4365 //============================================================================
var IPython = (function (IPython) {
var utils = IPython.utils;
// Base PanelSection class
Brian E. Granger
Work on save widget, kernel status widget and notebook section.
r4372 var PanelSection = function (selector) {
this.selector = selector;
if (this.selector !== undefined) {
this.element = $(selector);
MinRK
Moving status widget to Kernel section of L panel.
r5116 this.header = this.element.find('div.section_header');
Brian E. Granger
Work on save widget, kernel status widget and notebook section.
r4372 this.content = this.element.find('div.section_content');
this.style();
Brian E. Granger
Initial draft of panel section and the cell section working.
r4365 this.bind_events();
}
this.expanded = true;
};
Brian E. Granger
Work on save widget, kernel status widget and notebook section.
r4372 PanelSection.prototype.style = function () {
MinRK
Moving status widget to Kernel section of L panel.
r5116 this.header.addClass('ui-widget ui-state-default ui-helper-clearfix');
MinRK
Add tooltips to the notebook via 'title' attr....
r5097 this.header.attr('title', "Click to Show/Hide Section");
Brian E. Granger
Work on save widget, kernel status widget and notebook section.
r4372 this.content.addClass('ui-widget section_content');
};
Brian E. Granger
Initial draft of panel section and the cell section working.
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
Work on save widget, kernel status widget and notebook section.
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
Add tooltips to the notebook via 'title' attr....
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
Massive work on the notebook document format....
r4484 this.content.find('#download_notebook').button();
MinRK
Add tooltips to the notebook via 'title' attr....
r5097 this.content.find('#download_notebook').attr('title',
"Download the notebook in the specified format," +
MinRK
Add tooltip to Download/Print indicating need to save first...
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
Add tooltips to the notebook via 'title' attr....
r5097 // upload notebook doesn't exist:
Brian E. Granger
Massive work on the notebook document format....
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
Work on save widget, kernel status widget and notebook section.
r4372 };
NotebookSection.prototype.bind_events = function () {
PanelSection.prototype.bind_events.apply(this);
Brian E. Granger
Massive work on the notebook document format....
r4484 var that = this;
Brian E. Granger
Work on save widget, kernel status widget and notebook section.
r4372 this.content.find('#new_notebook').click(function () {
Brian E. Granger
Further work updating JS URL scheme to use data-base-project-url.
r5108 window.open($('body').data('baseProjectUrl')+'new');
Brian E. Granger
Work on save widget, kernel status widget and notebook section.
r4372 });
this.content.find('#open_notebook').click(function () {
Brian E. Granger
Further work updating JS URL scheme to use data-base-project-url.
r5108 window.open($('body').data('baseProjectUrl'));
Brian E. Granger
Work on save widget, kernel status widget and notebook section.
r4372 });
Brian E. Granger
Massive work on the notebook document format....
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
Further work updating JS URL scheme to use data-base-project-url.
r5108 var url = $('body').data('baseProjectUrl') + 'notebooks/' + notebook_id + '?format=' + format;
Brian E. Granger
Massive work on the notebook document format....
r4484 window.open(url,'_newtab');
});
Brian E. Granger
Work on save widget, kernel status widget and notebook section.
r4372 };
Matthias BUSSONNIER
Improve tooltip tringgering,make it configurable...
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
fix 2 typos
r5412 this.content.find('#tooltipontab').attr('title', 'Show tooltip if you press <Tab> after "(" or a white space');
Matthias BUSSONNIER
Improve tooltip tringgering,make it configurable...
r5399 this.content.find('#tooltipontab_label').attr('title', 'Show Tooltip when pressing Tab');
Matthias BUSSONNIER
Make the time before activating a tooltip configurable...
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
smart kwarg completion...
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
Improve tooltip tringgering,make it configurable...
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
Make the time before activating a tooltip configurable...
r5400 this.content.find('#timebeforetooltip').change(function () {
var state = $('#timebeforetooltip').prop('value');
IPython.notebook.set_timebeforetooltip(state);
});
Matthias BUSSONNIER
smart kwarg completion...
r5401 this.content.find('#smartcompleter').change(function () {
var state = $('#smartcompleter').prop('checked');
IPython.notebook.set_smartcompleter(state);
});
Matthias BUSSONNIER
Improve tooltip tringgering,make it configurable...
r5399 };
Brian E. Granger
Initial draft of panel section and the cell section working.
r4365 // CellSection
var CellSection = function () {
PanelSection.apply(this, arguments);
};
CellSection.prototype = new PanelSection();
Brian E. Granger
Work on save widget, kernel status widget and notebook section.
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
Add tooltips to the notebook via 'title' attr....
r5097 this.content.find('#delete_cell').attr('title', "Delete the selected cell");
Brian E. Granger
Work on save widget, kernel status widget and notebook section.
r4372 this.content.find('#insert').buttonset();
MinRK
Add tooltips to the notebook via 'title' attr....
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
Work on save widget, kernel status widget and notebook section.
r4372 this.content.find('#move').buttonset();
MinRK
Add tooltips to the notebook via 'title' attr....
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
Work on save widget, kernel status widget and notebook section.
r4372 this.content.find('#cell_type').buttonset();
Stefan van der Walt
Clean up javascript based on js2-mode feedback.
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
Add tooltips to the notebook via 'title' attr....
r5097
Brian E. Granger
Cell collapse/expand is not called "Toggle".
r4639 this.content.find('#cell_output').buttonset();
Stefan van der Walt
Clean up javascript based on js2-mode feedback.
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
Add tooltips to the notebook via 'title' attr....
r5097
Brian E. Granger
Work on save widget, kernel status widget and notebook section.
r4372 this.content.find('#run_cells').buttonset();
Stefan van der Walt
Clean up javascript based on js2-mode feedback.
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
Work on save widget, kernel status widget and notebook section.
r4372 };
Brian E. Granger
Initial draft of panel section and the cell section working.
r4365 CellSection.prototype.bind_events = function () {
PanelSection.prototype.bind_events.apply(this);
Brian E. Granger
Cell collapse/expand is not called "Toggle".
r4639 this.content.find('#toggle_output').click(function () {
IPython.notebook.toggle_output();
Brian E. Granger
Initial draft of panel section and the cell section working.
r4365 });
Brian E. Granger
Clear all output is implemented.
r4543 this.content.find('#clear_all_output').click(function () {
IPython.notebook.clear_all_output();
});
Brian E. Granger
Initial draft of panel section and the cell section working.
r4365 this.content.find('#delete_cell').click(function () {
IPython.notebook.delete_cell();
});
this.content.find('#insert_cell_above').click(function () {
Fernando Perez
Fix above/below keybinding mismatch and rename api to use above/below
r4659 IPython.notebook.insert_code_cell_above();
Brian E. Granger
Initial draft of panel section and the cell section working.
r4365 });
this.content.find('#insert_cell_below').click(function () {
Fernando Perez
Fix above/below keybinding mismatch and rename api to use above/below
r4659 IPython.notebook.insert_code_cell_below();
Brian E. Granger
Initial draft of panel section and the cell section working.
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
Starting work on a Markdown cell.
r4507 IPython.notebook.to_code();
Brian E. Granger
Initial draft of panel section and the cell section working.
r4365 });
Brian Granger
Refactoring of text/markdown/rst/html cells.
r4508 this.content.find('#to_markdown').click(function () {
IPython.notebook.to_markdown();
Brian E. Granger
Initial draft of panel section and the cell section working.
r4365 });
Brian E. Granger
Controls in cell section have a solid layout.
r4367 this.content.find('#run_selected_cell').click(function () {
Brian E. Granger
Fixing execution related things....
r4378 IPython.notebook.execute_selected_cell();
Brian E. Granger
Controls in cell section have a solid layout.
r4367 });
this.content.find('#run_all_cells').click(function () {
Brian E. Granger
Fixing execution related things....
r4378 IPython.notebook.execute_all_cells();
Brian E. Granger
Controls in cell section have a solid layout.
r4367 });
Brian E. Granger
Implemented smart autoindenting.
r4512 this.content.find('#autoindent').change(function () {
var state = $('#autoindent').prop('checked');
IPython.notebook.set_autoindent(state);
});
Matthias BUSSONNIER
Improve tooltip tringgering,make it configurable...
r5399 this.content.find('#tooltipontab').change(function () {
var state = $('#tooltipontab').prop('checked');
IPython.notebook.set_tooltipontab(state);
});
Brian E. Granger
Initial draft of panel section and the cell section working.
r4365 };
// KernelSection
var KernelSection = function () {
PanelSection.apply(this, arguments);
};
KernelSection.prototype = new PanelSection();
Brian E. Granger
Work on save widget, kernel status widget and notebook section.
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
Add tooltips to the notebook via 'title' attr....
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
Work on save widget, kernel status widget and notebook section.
r4372 };
Brian E. Granger
Help section implemented and working.
r4368 KernelSection.prototype.bind_events = function () {
PanelSection.prototype.bind_events.apply(this);
this.content.find('#restart_kernel').click(function () {
Brian E. Granger
Major refactor of kernel connection management in the notebook....
r4545 IPython.notebook.restart_kernel();
Brian E. Granger
Help section implemented and working.
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
Work on save widget, kernel status widget and notebook section.
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
Reorganize the L panel buttons.
r4640 this.content.find('#help_buttons2').buttonset();
Stefan van der Walt
Clean up javascript based on js2-mode feedback.
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
Help section implemented and working.
r4368 };
Brian E. Granger
Work on save widget, kernel status widget and notebook section.
r4372 HelpSection.prototype.bind_events = function () {
PanelSection.prototype.bind_events.apply(this);
};
Brian E. Granger
Help section implemented and working.
r4368
Brian E. Granger
Work on save widget, kernel status widget and notebook section.
r4372 // Set module variables
Brian E. Granger
Help section implemented and working.
r4368
Brian E. Granger
Initial draft of panel section and the cell section working.
r4365 IPython.PanelSection = PanelSection;
IPython.NotebookSection = NotebookSection;
IPython.CellSection = CellSection;
Matthias BUSSONNIER
Improve tooltip tringgering,make it configurable...
r5399 IPython.ConfigSection = ConfigSection;
Brian E. Granger
Initial draft of panel section and the cell section working.
r4365 IPython.KernelSection = KernelSection;
Brian E. Granger
Help section implemented and working.
r4368 IPython.HelpSection = HelpSection;
Brian E. Granger
Initial draft of panel section and the cell section working.
r4365
return IPython;
}(IPython));