##// END OF EJS Templates
Smooth notebook scrolling on pager closing....
Smooth notebook scrolling on pager closing. avoid brutal jump of notebook on closing pager, when notebook is scroll to max

File last commit:

r19875:f09024d2
r19944:6a3f889e
Show More
dialog.js
180 lines | 5.9 KiB | application/javascript | JavascriptLexer
Jonathan Frederic
Started work to make tree requirejs friendly.
r17189 // Copyright (c) IPython Development Team.
// Distributed under the terms of the Modified BSD License.
MinRK
add missing dialog.js
r10903
Jonathan Frederic
Started work to make tree requirejs friendly.
r17189 define([
'base/js/namespace',
Jonathan Frederic
MWE,...
r17200 'jquery',
Matthias BUSSONNIER
Update to codemirror 4...
r18280 'codemirror/lib/codemirror',
], function(IPython, $, CodeMirror) {
Matthias BUSSONNIER
"use strict" in most (if not all) our javascript...
r12103 "use strict";
MinRK
add missing dialog.js
r10903
Jonathan Frederic
Some JS test fixes
r17212 var modal = function (options) {
jon
Fixed IPython dialog
r16933 var modal = $("<div/>")
.addClass("modal")
.addClass("fade")
.attr("role", "dialog");
var dialog = $("<div/>")
.addClass("modal-dialog")
.appendTo(modal);
var dialog_content = $("<div/>")
.addClass("modal-content")
.appendTo(dialog);
dialog_content.append(
MinRK
add missing dialog.js
r10903 $("<div/>")
.addClass("modal-header")
.append($("<button>")
jon
Fixed IPython dialog
r16933 .attr("type", "button")
MinRK
add missing dialog.js
r10903 .addClass("close")
.attr("data-dismiss", "modal")
jon
Fixed IPython dialog
r16933 .attr("aria-hidden", "true")
MinRK
add missing dialog.js
r10903 .html("&times;")
).append(
jon
Fixed IPython dialog
r16933 $("<h4/>")
.addClass('modal-title')
.text(options.title || "")
MinRK
add missing dialog.js
r10903 )
).append(
$("<div/>").addClass("modal-body").append(
options.body || $("<p/>")
)
);
var footer = $("<div/>").addClass("modal-footer");
for (var label in options.buttons) {
var btn_opts = options.buttons[label];
var button = $("<button/>")
Jonathan Frederic
Review #2
r16970 .addClass("btn btn-default btn-sm")
MinRK
add missing dialog.js
r10903 .attr("data-dismiss", "modal")
.text(label);
if (btn_opts.click) {
jon
Fixed IPython dialog
r16933 button.click($.proxy(btn_opts.click, dialog_content));
MinRK
add missing dialog.js
r10903 }
if (btn_opts.class) {
button.addClass(btn_opts.class);
}
footer.append(button);
}
jon
Fixed IPython dialog
r16933 dialog_content.append(footer);
MinRK
add missing dialog.js
r10903 // hook up on-open event
Jonathan Frederic
Modal fixes for BS3
r16955 modal.on("shown.bs.modal", function() {
MinRK
add missing dialog.js
r10903 setTimeout(function() {
footer.find("button").last().focus();
if (options.open) {
jon
Fixed IPython dialog
r16933 $.proxy(options.open, modal)();
MinRK
add missing dialog.js
r10903 }
}, 0);
});
jon
Fixed IPython dialog
r16933 // destroy modal on hide, unless explicitly asked not to
MinRK
move edit_metadata to IPython.dialog
r12872 if (options.destroy === undefined || options.destroy) {
Jonathan Frederic
Modal fixes for BS3
r16955 modal.on("hidden.bs.modal", function () {
jon
Fixed IPython dialog
r16933 modal.remove();
MinRK
add missing dialog.js
r10903 });
}
Jonathan Frederic
Modal fixes for BS3
r16955 modal.on("hidden.bs.modal", function () {
Jonathan Frederic
Some JS test fixes
r17212 if (options.notebook) {
var cell = options.notebook.get_selected_cell();
Brian E. Granger
Adding keyboard manager logic....
r14020 if (cell) cell.select();
Jonathan Frederic
Fix some dialog keyboard_manager problems
r17213 }
if (options.keyboard_manager) {
options.keyboard_manager.enable();
options.keyboard_manager.command_mode();
Brian E. Granger
Adding keyboard manager logic....
r14020 }
});
Jonathan Frederic
Some JS test fixes
r17212 if (options.keyboard_manager) {
options.keyboard_manager.disable();
MinRK
refocus active cell on dialog close...
r11439 }
Matthias Bussonnier
Make modal backdrop static by default....
r19875
options.backdrop = options.backdrop || 'static';
MinRK
add missing dialog.js
r10903
jon
Fixed IPython dialog
r16933 return modal.modal(options);
MinRK
move edit_metadata to IPython.dialog
r12872 };
Jessica B. Hamrick
Make kernel dialogs be a special type of dialog
r18237 var kernel_modal = function (options) {
Jonathan Frederic
Ran function comment conversion tool
r19176 /**
* only one kernel dialog should be open at a time -- but
* other modal dialogs can still be open
*/
Jessica B. Hamrick
Make kernel dialogs be a special type of dialog
r18237 $('.kernel-modal').modal('hide');
var dialog = modal(options);
dialog.addClass('kernel-modal');
return dialog;
};
Jonathan Frederic
More review changes
r17214 var edit_metadata = function (options) {
options.name = options.name || "Cell";
MinRK
move edit_metadata to IPython.dialog
r12872 var error_div = $('<div/>').css('color', 'red');
var message =
Jonathan Frederic
More review changes
r17214 "Manually edit the JSON below to manipulate the metadata for this " + options.name + "." +
MinRK
move edit_metadata to IPython.dialog
r12872 " We recommend putting custom metadata attributes in an appropriately named sub-structure," +
" so they don't conflict with those of others.";
var textarea = $('<textarea/>')
.attr('rows', '13')
.attr('cols', '80')
.attr('name', 'metadata')
Jonathan Frederic
More review changes
r17214 .text(JSON.stringify(options.md || {}, null, 2));
MinRK
move edit_metadata to IPython.dialog
r12872
var dialogform = $('<div/>').attr('title', 'Edit the metadata')
.append(
$('<form/>').append(
$('<fieldset/>').append(
$('<label/>')
.attr('for','metadata')
.text(message)
)
.append(error_div)
.append($('<br/>'))
.append(textarea)
)
);
var editor = CodeMirror.fromTextArea(textarea[0], {
lineNumbers: true,
matchBrackets: true,
indentUnit: 2,
autoIndent: true,
mode: 'application/json',
});
MinRK
cell toolbar and modal dialog fixes...
r17284 var modal_obj = modal({
Jonathan Frederic
More review changes
r17214 title: "Edit " + options.name + " Metadata",
MinRK
move edit_metadata to IPython.dialog
r12872 body: dialogform,
buttons: {
OK: { class : "btn-primary",
click: function() {
Jonathan Frederic
Ran function comment conversion tool
r19176 /**
* validate json and set it
*/
MinRK
move edit_metadata to IPython.dialog
r12872 var new_md;
try {
new_md = JSON.parse(editor.getValue());
} catch(e) {
console.log(e);
error_div.text('WARNING: Could not save invalid JSON.');
return false;
}
Jonathan Frederic
More review changes
r17214 options.callback(new_md);
MinRK
move edit_metadata to IPython.dialog
r12872 }
},
Cancel: {}
Jonathan Frederic
More review changes
r17214 },
notebook: options.notebook,
keyboard_manager: options.keyboard_manager,
});
Jonathan Frederic
Review comments
r16957
MinRK
cell toolbar and modal dialog fixes...
r17284 modal_obj.on('shown.bs.modal', function(){ editor.refresh(); });
MinRK
move edit_metadata to IPython.dialog
r12872 };
MinRK
add missing dialog.js
r10903
Jonathan Frederic
@carreau review changes
r17204 var dialog = {
MinRK
add missing dialog.js
r10903 modal : modal,
Jessica B. Hamrick
Make kernel dialogs be a special type of dialog
r18237 kernel_modal : kernel_modal,
MinRK
move edit_metadata to IPython.dialog
r12872 edit_metadata : edit_metadata,
MinRK
add missing dialog.js
r10903 };
Jonathan Frederic
Started work to make tree requirejs friendly.
r17189 // Backwards compatability.
Jonathan Frederic
More review changes
r17214 IPython.dialog = dialog;
Jonathan Frederic
Started work to make tree requirejs friendly.
r17189
Jonathan Frederic
@carreau review changes
r17204 return dialog;
Jonathan Frederic
Started work to make tree requirejs friendly.
r17189 });