##// END OF EJS Templates
Allow IPython directory to be passed down to kernel selection from App...
Allow IPython directory to be passed down to kernel selection from App With apologies to @ivanov for creating a new Manager class.

File last commit:

r15738:4416c604 merge
r16382:52d1090d
Show More
menubar.js
335 lines | 11.9 KiB | application/javascript | JavascriptLexer
Brian Granger
Implemented menu based UI using Wijmo.
r5857 //----------------------------------------------------------------------------
// 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.
//----------------------------------------------------------------------------
//============================================================================
// MenuBar
//============================================================================
Bussonnier Matthias
add option in menubar to set baseproject url
r9501 /**
* @module IPython
* @namespace IPython
* @submodule MenuBar
*/
Brian Granger
Implemented menu based UI using Wijmo.
r5857 var IPython = (function (IPython) {
Matthias BUSSONNIER
"use strict" in most (if not all) our javascript...
r12103 "use strict";
MinRK
save before download-as...
r13076
var utils = IPython.utils;
Brian Granger
Implemented menu based UI using Wijmo.
r5857
Bussonnier Matthias
add option in menubar to set baseproject url
r9501 /**
Zachary Sailer
fix kill_and_exit button in notebook
r12995 * A MenuBar Class to generate the menubar of IPython notebook
Bussonnier Matthias
add option in menubar to set baseproject url
r9501 * @Class MenuBar
*
* @constructor
*
*
* @param selector {string} selector for the menubar element in DOM
* @param {object} [options]
MinRK
s/base_project_url/base_url/...
r15238 * @param [options.base_url] {String} String to use for the
MinRK
various unicode fixes...
r15234 * base project url. Default is to inspect
MinRK
s/base_project_url/base_url/...
r15238 * $('body').data('baseUrl');
Bussonnier Matthias
add option in menubar to set baseproject url
r9501 * does not support change for now is set through this option
*/
var MenuBar = function (selector, options) {
MinRK
review pass on multidir js
r13103 options = options || {};
MinRK
s/get_data/get_body_data/
r15240 this.base_url = options.base_url || IPython.utils.get_body_data("baseUrl");
Brian Granger
Implemented menu based UI using Wijmo.
r5857 this.selector = selector;
if (this.selector !== undefined) {
this.element = $(selector);
this.style();
this.bind_events();
}
};
MenuBar.prototype.style = function () {
Brian Granger
Major refactoring of notebook....
r6193 this.element.addClass('border-box-sizing');
MinRK
bootstrap menubar
r10888 this.element.find("li").click(function (event, ui) {
Brian Granger
Fixing minor typo in menubar.js.
r5908 // The selected cell loses focus when the menu is entered, so we
Brian Granger
Cell splitting and merging is done!
r5898 // re-select it upon selection.
Brian Granger
Refactoring of the notebooks cell management....
r5945 var i = IPython.notebook.get_selected_index();
Brian Granger
Cell splitting and merging is done!
r5898 IPython.notebook.select(i);
}
MinRK
bootstrap menubar
r10888 );
Brian Granger
Implemented menu based UI using Wijmo.
r5857 };
Thomas Kluyver
Add menu entries for getting converted views of a notebook
r13829 MenuBar.prototype._nbconvert = function (format, download) {
download = download || false;
MinRK
fix notebook_path in menu bar
r15239 var notebook_path = IPython.notebook.notebook_path;
var notebook_name = IPython.notebook.notebook_name;
Thomas Kluyver
Add menu entries for getting converted views of a notebook
r13829 if (IPython.notebook.dirty) {
IPython.notebook.save_notebook({async : false});
}
MinRK
various unicode fixes...
r15234 var url = utils.url_join_encode(
MinRK
s/base_project_url/base_url/...
r15238 this.base_url,
Thomas Kluyver
Add menu entries for getting converted views of a notebook
r13829 'nbconvert',
format,
MinRK
fix notebook_path in menu bar
r15239 notebook_path,
notebook_name
Thomas Kluyver
Add menu entries for getting converted views of a notebook
r13829 ) + "?download=" + download.toString();
Thomas Kluyver
Download as always starts downloads in new window/tab...
r13838 window.open(url);
MinRK
various unicode fixes...
r15234 };
Brian Granger
Implemented menu based UI using Wijmo.
r5857
MenuBar.prototype.bind_events = function () {
// File
Matthias BUSSONNIER
fix baseUrl
r9699 var that = this;
Zachary Sailer
fixing path redirects, cleaning path logic
r12992 this.element.find('#new_notebook').click(function () {
Zachary Sailer
removed '/new' URL and added POST notebook request
r13016 IPython.notebook.new_notebook();
Zachary Sailer
fixing path redirects, cleaning path logic
r12992 });
this.element.find('#open_notebook').click(function () {
MinRK
make sure to encode URL components for API requests...
r13693 window.open(utils.url_join_encode(
MinRK
various unicode fixes...
r15234 IPython.notebook.base_url,
MinRK
review pass on multidir js
r13103 'tree',
MinRK
various unicode fixes...
r15234 IPython.notebook.notebook_path
MinRK
review pass on multidir js
r13103 ));
Zachary Sailer
fixing path redirects, cleaning path logic
r12992 });
this.element.find('#copy_notebook').click(function () {
Zachary Sailer
Change new/copy URLS to POST requests
r13017 IPython.notebook.copy_notebook();
Zachary Sailer
fixing path redirects, cleaning path logic
r12992 return false;
});
this.element.find('#download_ipynb').click(function () {
MinRK
various unicode fixes...
r15234 var base_url = IPython.notebook.base_url;
var notebook_path = IPython.notebook.notebook_path;
var notebook_name = IPython.notebook.notebook_name;
MinRK
save before download-as...
r13076 if (IPython.notebook.dirty) {
IPython.notebook.save_notebook({async : false});
}
MinRK
make sure to encode URL components for API requests...
r13693 var url = utils.url_join_encode(
MinRK
various unicode fixes...
r15234 base_url,
Brian E. Granger
Handle notebook downloads through the /files URL.
r13114 'files',
MinRK
various unicode fixes...
r15234 notebook_path,
MinRK
fix notebook_path in menu bar
r15239 notebook_name
MinRK
save before download-as...
r13076 );
Zachary Sailer
fixing path redirects, cleaning path logic
r12992 window.location.assign(url);
});
MinRK
disable download-as-pt...
r13108
Thomas Kluyver
Add menu entries for getting converted views of a notebook
r13829 this.element.find('#print_preview').click(function () {
that._nbconvert('html', false);
});
Zachary Sailer
fixing path redirects, cleaning path logic
r12992 this.element.find('#download_py').click(function () {
Thomas Kluyver
Add menu entries for getting converted views of a notebook
r13829 that._nbconvert('python', true);
Zachary Sailer
fixing path redirects, cleaning path logic
r12992 });
Thomas Kluyver
Add menu entries for getting converted views of a notebook
r13829
this.element.find('#download_html').click(function () {
that._nbconvert('html', true);
Zachary Sailer
fixing path redirects, cleaning path logic
r12992 });
Thomas Kluyver
Add option to download as reST
r13831
this.element.find('#download_rst').click(function () {
that._nbconvert('rst', true);
});
Brian Granger
Improved notebook renaming....
r5859 this.element.find('#rename_notebook').click(function () {
IPython.save_widget.rename_notebook();
});
MinRK
expose notebook checkpoints in html/js...
r10501 this.element.find('#save_checkpoint').click(function () {
IPython.notebook.save_checkpoint();
});
MinRK
add Revert to the menu bar
r10503 this.element.find('#restore_checkpoint').click(function () {
});
MinRK
Add Trust Notebook to File menu
r15655 this.element.find('#trust_notebook').click(function () {
IPython.notebook.trust_notebook();
});
MinRK
disable trust notebook menu item on trusted notebooks
r15657 $([IPython.events]).on('trust_changed.Notebook', function (event, trusted) {
if (trusted) {
that.element.find('#trust_notebook')
.addClass("disabled")
.find("a").text("Trusted Notebook");
} else {
that.element.find('#trust_notebook')
.removeClass("disabled")
.find("a").text("Trust Notebook");
}
});
Matthias BUSSONNIER
add 'Close and halt' in notebook filemenu
r6850 this.element.find('#kill_and_exit').click(function () {
Paul Ivanov
fix 'close and halt' in notebook File menu
r13146 IPython.notebook.session.delete();
Paul Ivanov
make close-and-halt work on new tabs in Chrome...
r13338 setTimeout(function(){
// allow closing of new tabs in Chromium, impossible in FF
window.open('', '_self', '');
window.close();
}, 500);
Matthias BUSSONNIER
add 'Close and halt' in notebook filemenu
r6850 });
Brian Granger
Implemented menu based UI using Wijmo.
r5857 // Edit
Brian Granger
Added cell level cut/copy/paste.
r5879 this.element.find('#cut_cell').click(function () {
IPython.notebook.cut_cell();
});
this.element.find('#copy_cell').click(function () {
IPython.notebook.copy_cell();
});
Brian Granger
Implemented menu based UI using Wijmo.
r5857 this.element.find('#delete_cell').click(function () {
IPython.notebook.delete_cell();
});
MinRK
add menu item for undo delete cell...
r9551 this.element.find('#undelete_cell').click(function () {
Brian E. Granger
Fixing delete/undelete logic.
r14032 IPython.notebook.undelete_cell();
MinRK
add menu item for undo delete cell...
r9551 });
Brian Granger
Basic code cell splitting implemented.
r5896 this.element.find('#split_cell').click(function () {
IPython.notebook.split_cell();
});
this.element.find('#merge_cell_above').click(function () {
IPython.notebook.merge_cell_above();
});
this.element.find('#merge_cell_below').click(function () {
IPython.notebook.merge_cell_below();
});
Brian Granger
Implemented menu based UI using Wijmo.
r5857 this.element.find('#move_cell_up').click(function () {
IPython.notebook.move_cell_up();
});
this.element.find('#move_cell_down').click(function () {
IPython.notebook.move_cell_down();
});
MinRK
add Edit Notebook Metadata to Edit menu
r12913 this.element.find('#edit_nb_metadata').click(function () {
IPython.notebook.edit_metadata();
});
Brian Granger
Further work on the toolbar UI....
r5994 // View
this.element.find('#toggle_header').click(function () {
$('div#header').toggle();
IPython.layout_manager.do_resize();
});
this.element.find('#toggle_toolbar').click(function () {
MinRK
tweak header styling...
r10906 $('div#maintoolbar').toggle();
IPython.layout_manager.do_resize();
Brian Granger
Further work on the toolbar UI....
r5994 });
Brian Granger
Implemented menu based UI using Wijmo.
r5857 // Insert
this.element.find('#insert_cell_above').click(function () {
Brian Granger
Refactoring of the notebooks cell management....
r5945 IPython.notebook.insert_cell_above('code');
Brian E. Granger
Fixing select when inserting cell using menu.
r14029 IPython.notebook.select_prev();
Brian Granger
Implemented menu based UI using Wijmo.
r5857 });
this.element.find('#insert_cell_below').click(function () {
Brian Granger
Refactoring of the notebooks cell management....
r5945 IPython.notebook.insert_cell_below('code');
Brian E. Granger
Fixing select when inserting cell using menu.
r14029 IPython.notebook.select_next();
Brian Granger
Implemented menu based UI using Wijmo.
r5857 });
// Cell
this.element.find('#run_cell').click(function () {
Brian E. Granger
Renaming execute methods.
r14085 IPython.notebook.execute_cell();
Brian Granger
Implemented menu based UI using Wijmo.
r5857 });
Brian E. Granger
Renaming execute methods.
r14085 this.element.find('#run_cell_select_below').click(function () {
IPython.notebook.execute_cell_and_select_below();
});
this.element.find('#run_cell_insert_below').click(function () {
IPython.notebook.execute_cell_and_insert_below();
Brian Granger
Implemented menu based UI using Wijmo.
r5857 });
this.element.find('#run_all_cells').click(function () {
IPython.notebook.execute_all_cells();
Paul Ivanov
javascript is no place to start adding title tags
r13159 });
Paul Ivanov
fine-grained notebook 'run' controls, closes #2521...
r8606 this.element.find('#run_all_cells_above').click(function () {
IPython.notebook.execute_cells_above();
Paul Ivanov
javascript is no place to start adding title tags
r13159 });
Paul Ivanov
fine-grained notebook 'run' controls, closes #2521...
r8606 this.element.find('#run_all_cells_below').click(function () {
IPython.notebook.execute_cells_below();
Paul Ivanov
javascript is no place to start adding title tags
r13159 });
Brian E. Granger
Adding back Kernel menu and Cell Type submenu.
r14869 this.element.find('#to_code').click(function () {
IPython.notebook.to_code();
});
this.element.find('#to_markdown').click(function () {
IPython.notebook.to_markdown();
});
this.element.find('#to_raw').click(function () {
IPython.notebook.to_raw();
});
this.element.find('#to_heading1').click(function () {
IPython.notebook.to_heading(undefined, 1);
});
this.element.find('#to_heading2').click(function () {
IPython.notebook.to_heading(undefined, 2);
});
this.element.find('#to_heading3').click(function () {
IPython.notebook.to_heading(undefined, 3);
});
this.element.find('#to_heading4').click(function () {
IPython.notebook.to_heading(undefined, 4);
});
this.element.find('#to_heading5').click(function () {
IPython.notebook.to_heading(undefined, 5);
});
this.element.find('#to_heading6').click(function () {
IPython.notebook.to_heading(undefined, 6);
});
Brian E. Granger
Simplified Cell menu items related to output.
r14871
this.element.find('#toggle_current_output').click(function () {
IPython.notebook.toggle_output();
Brian Granger
Implemented menu based UI using Wijmo.
r5857 });
Brian E. Granger
Simplified Cell menu items related to output.
r14871 this.element.find('#toggle_current_output_scroll').click(function () {
IPython.notebook.toggle_output_scroll();
Brian Granger
A first go at RST cell support in the notebook.
r6017 });
Brian E. Granger
Cleaning up output management in code and menus.
r14867 this.element.find('#clear_current_output').click(function () {
IPython.notebook.clear_output();
Brian Granger
Implemented menu based UI using Wijmo.
r5857 });
Brian E. Granger
Simplified Cell menu items related to output.
r14871
this.element.find('#toggle_all_output').click(function () {
IPython.notebook.toggle_all_output();
MinRK
third attempt at scrolled long output...
r7362 });
Brian E. Granger
Simplified Cell menu items related to output.
r14871 this.element.find('#toggle_all_output_scroll').click(function () {
IPython.notebook.toggle_all_output_scroll();
MinRK
third attempt at scrolled long output...
r7362 });
Brian Granger
Implemented menu based UI using Wijmo.
r5857 this.element.find('#clear_all_output').click(function () {
IPython.notebook.clear_all_output();
});
Brian E. Granger
Simplified Cell menu items related to output.
r14871
Brian E. Granger
Adding back Kernel menu and Cell Type submenu.
r14869 // Kernel
this.element.find('#int_kernel').click(function () {
IPython.notebook.session.interrupt_kernel();
});
this.element.find('#restart_kernel').click(function () {
IPython.notebook.restart_kernel();
});
Brian Granger
Cleaning up menu code....
r5858 // Help
Paul Ivanov
starting the tour from the menu works now...
r15568 this.element.find('#notebook_tour').click(function () {
IPython.tour.start();
});
Brian Granger
Cleaning up menu code....
r5858 this.element.find('#keyboard_shortcuts').click(function () {
IPython.quick_help.show_keyboard_shortcuts();
});
MinRK
add Revert to the menu bar
r10503
this.update_restore_checkpoint(null);
$([IPython.events]).on('checkpoints_listed.Notebook', function (event, data) {
MinRK
minor checkpoint cleanup...
r12050 that.update_restore_checkpoint(IPython.notebook.checkpoints);
MinRK
add Revert to the menu bar
r10503 });
$([IPython.events]).on('checkpoint_created.Notebook', function (event, data) {
MinRK
minor checkpoint cleanup...
r12050 that.update_restore_checkpoint(IPython.notebook.checkpoints);
MinRK
add Revert to the menu bar
r10503 });
Brian Granger
Implemented menu based UI using Wijmo.
r5857 };
MinRK
restore checkpoints in a sub-list...
r10520 MenuBar.prototype.update_restore_checkpoint = function(checkpoints) {
MinRK
add 'No Checkpoints' to Revert menu...
r11117 var ul = this.element.find("#restore_checkpoint").find("ul");
ul.empty();
MinRK
review pass on multidir js
r13103 if (!checkpoints || checkpoints.length === 0) {
MinRK
add 'No Checkpoints' to Revert menu...
r11117 ul.append(
$("<li/>")
.addClass("disabled")
.append(
$("<a/>")
.text("No checkpoints")
)
);
return;
MinRK
review pass on multidir js
r13103 }
MinRK
remove debug statement...
r11164
MinRK
minor checkpoint cleanup...
r12050 checkpoints.map(function (checkpoint) {
MinRK
restore checkpoints in a sub-list...
r10520 var d = new Date(checkpoint.last_modified);
MinRK
add 'No Checkpoints' to Revert menu...
r11117 ul.append(
$("<li/>").append(
$("<a/>")
.attr("href", "#")
.text(d.format("mmm dd HH:MM:ss"))
.click(function () {
IPython.notebook.restore_checkpoint_dialog(checkpoint);
})
)
);
MinRK
minor checkpoint cleanup...
r12050 });
MinRK
restore checkpoints in a sub-list...
r10520 };
Brian Granger
Implemented menu based UI using Wijmo.
r5857
IPython.MenuBar = MenuBar;
return IPython;
}(IPython));