##// END OF EJS Templates
move notebook docs to source/notebook
move notebook docs to source/notebook

File last commit:

r15899:6af177f5
r15983:30321297
Show More
quickhelp.js
128 lines | 4.6 KiB | application/javascript | JavascriptLexer
Fernando Perez
Add quick help button: broken ATM, style and binding aren't working....
r5023 //----------------------------------------------------------------------------
// 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.
//----------------------------------------------------------------------------
//============================================================================
MinRK
fix quickhelp widget...
r5066 // QuickHelp button
Fernando Perez
Add quick help button: broken ATM, style and binding aren't working....
r5023 //============================================================================
var IPython = (function (IPython) {
Matthias BUSSONNIER
"use strict" in most (if not all) our javascript...
r12103 "use strict";
Fernando Perez
Add quick help button: broken ATM, style and binding aren't working....
r5023
MinRK
fix quickhelp widget...
r5066 var QuickHelp = function (selector) {
Fernando Perez
Add quick help button: broken ATM, style and binding aren't working....
r5023 };
Brian Granger
Cleaning up menu code....
r5858 QuickHelp.prototype.show_keyboard_shortcuts = function () {
// toggles display of keyboard shortcut dialog
Fernando Perez
Add quick help button: broken ATM, style and binding aren't working....
r5023 var that = this;
Paul Ivanov
rebuild.QuickHelp event sets the dirty bit...
r15771 if ( this.force_rebuild ) {
Paul Ivanov
remove stale modal dialog from the DOM
r15844 this.shortcut_dialog.remove();
Paul Ivanov
rebuild.QuickHelp event sets the dirty bit...
r15771 delete(this.shortcut_dialog);
this.force_rebuild = false;
}
Brian Granger
Cleaning up menu code....
r5858 if ( this.shortcut_dialog ){
// if dialog is already shown, close it
MinRK
tweak quick-help...
r10939 $(this.shortcut_dialog).modal("toggle");
Brian Granger
Cleaning up menu code....
r5858 return;
}
Brian E. Granger
Fixing bugs and adding automatic KB shortcut help.
r14037 var command_shortcuts = IPython.keyboard_manager.command_shortcuts.help();
var edit_shortcuts = IPython.keyboard_manager.edit_shortcuts.help();
var help, shortcut;
Brian E. Granger
Adding sorting and better layout to the KB shortcuts.
r14093 var i, half, n;
Brian E. Granger
Fixing bugs and adding automatic KB shortcut help.
r14037 var element = $('<div/>');
Brian E. Granger
Adding back doc in Keyboard Shortcut.
r14066 // The documentation
var doc = $('<div/>').addClass('alert');
doc.append(
Matthias BUSSONNIER
some $.html( -> $.text(...
r14634 $('<button/>').addClass('close').attr('data-dismiss','alert').html('&times;')
Brian E. Granger
Adding back doc in Keyboard Shortcut.
r14066 ).append(
'The IPython Notebook has two different keyboard input modes. <b>Edit mode</b> '+
Preston Holmes
Fixed typos in quick-help text
r14949 'allows you to type code/text into a cell and is indicated by a green cell '+
Brian E. Granger
Adding sorting and better layout to the KB shortcuts.
r14093 'border. <b>Command mode</b> binds the keyboard to notebook level actions '+
'and is indicated by a grey cell border.'
Paul Ivanov
semicolon fixes buttress half of my js commits
r15840 );
Brian E. Granger
Adding back doc in Keyboard Shortcut.
r14066 element.append(doc);
Brian E. Granger
Fixing bugs and adding automatic KB shortcut help.
r14037 // Command mode
Brian E. Granger
Fixing design of quickhelp.
r14096 var cmd_div = this.build_command_help();
element.append(cmd_div);
// Edit mode
var edit_div = this.build_edit_help();
element.append(edit_div);
this.shortcut_dialog = IPython.dialog.modal({
title : "Keyboard shortcuts",
body : element,
destroy : false,
buttons : {
Close : {}
}
});
Paul Ivanov
rebuild.QuickHelp event sets the dirty bit...
r15771
$([IPython.events]).on('rebuild.QuickHelp', function() { that.force_rebuild = true;});
Brian E. Granger
Fixing design of quickhelp.
r14096 };
QuickHelp.prototype.build_command_help = function () {
var command_shortcuts = IPython.keyboard_manager.command_shortcuts.help();
Paul Ivanov
DRY: style in one place, removed code duplication
r15801 return build_div('<h4>Command Mode (press <code>Esc</code> to enable)</h4>', command_shortcuts);
Paul Ivanov
semicolon fixes buttress half of my js commits
r15840 };
Brian E. Granger
Fixing design of quickhelp.
r14096
Paul Ivanov
better handling of minus
r15876 var special_case = { pageup: "PageUp", pagedown: "Page Down", 'minus': '-' };
Paul Ivanov
prettify combo keyboard shortcuts
r15782 var prettify = function (s) {
Paul Ivanov
really fix the '-' key shortcuts now
r15877 s = s.replace(/-$/, 'minus'); // catch shortcuts using '-' key
Paul Ivanov
use - for shortcut separators
r15873 var keys = s.split('-');
Paul Ivanov
prettify combo keyboard shortcuts
r15782 var k, i;
for (i in keys) {
k = keys[i];
Paul Ivanov
DRY: style in one place, removed code duplication
r15801 if ( k.length == 1 ) {
keys[i] = "<code><strong>" + k + "</strong></code>";
continue; // leave individual keys lower-cased
}
Paul Ivanov
prettify combo keyboard shortcuts
r15782 keys[i] = ( special_case[k] ? special_case[k] : k.charAt(0).toUpperCase() + k.slice(1) );
Paul Ivanov
DRY: style in one place, removed code duplication
r15801 keys[i] = "<code><strong>" + keys[i] + "</strong></code>";
Paul Ivanov
prettify combo keyboard shortcuts
r15782 }
return keys.join('-');
Paul Ivanov
first pass at capitalizing keyboard shortcuts
r15781
};
Brian E. Granger
Fixing design of quickhelp.
r14096 QuickHelp.prototype.build_edit_help = function () {
var edit_shortcuts = IPython.keyboard_manager.edit_shortcuts.help();
Brian E. Granger
Fixing bugs and adding automatic KB shortcut help.
r14037 // Edit mode
Paul Ivanov
DRY: style in one place, removed code duplication
r15801 return build_div('<h4>Edit Mode (press <code>Enter</code> to enable)</h4>', edit_shortcuts);
Paul Ivanov
semicolon fixes buttress half of my js commits
r15840 };
Paul Ivanov
DRY: style in one place, removed code duplication
r15801
var build_one = function (s) {
Paul Ivanov
semicolon fixes buttress half of my js commits
r15840 var help = s.help;
var shortcut = prettify(s.shortcut);
Paul Ivanov
DRY: style in one place, removed code duplication
r15801 return $('<div>').addClass('quickhelp').
append($('<span/>').addClass('shortcut_key').append($(shortcut))).
Paul Ivanov
semicolon fixes buttress half of my js commits
r15840 append($('<span/>').addClass('shortcut_descr').text(' : ' + help));
Paul Ivanov
DRY: style in one place, removed code duplication
r15801
Paul Ivanov
semicolon fixes buttress half of my js commits
r15840 };
Paul Ivanov
DRY: style in one place, removed code duplication
r15801
var build_div = function (title, shortcuts) {
var i, half, n;
var div = $('<div/>').append($(title));
var sub_div = $('<div/>').addClass('hbox');
MinRK
use box-flex to layout quickhelp
r15899 var col1 = $('<div/>').addClass('box-flex1');
var col2 = $('<div/>').addClass('box-flex1');
Paul Ivanov
DRY: style in one place, removed code duplication
r15801 n = shortcuts.length;
Brian E. Granger
Adding sorting and better layout to the KB shortcuts.
r14093 half = ~~(n/2); // Truncate :)
Paul Ivanov
semicolon fixes buttress half of my js commits
r15840 for (i=0; i<half; i++) { col1.append( build_one(shortcuts[i]) ); }
for (i=half; i<n; i++) { col2.append( build_one(shortcuts[i]) ); }
Paul Ivanov
DRY: style in one place, removed code duplication
r15801 sub_div.append(col1).append(col2);
div.append(sub_div);
return div;
Paul Ivanov
semicolon fixes buttress half of my js commits
r15840 };
Fernando Perez
Add quick help button: broken ATM, style and binding aren't working....
r5023
// Set module variables
MinRK
fix quickhelp widget...
r5066 IPython.QuickHelp = QuickHelp;
Fernando Perez
Add quick help button: broken ATM, style and binding aren't working....
r5023
return IPython;
}(IPython));