##// END OF EJS Templates
Uploading a file with a name that already exists asks the user if they want to overwrite....
Uploading a file with a name that already exists asks the user if they want to overwrite. This is not perfect (it doesn't check against the real filesystem but the current list in the browser which may be stale) but it is better than nothing.

File last commit:

r17429:d659744c
r17648:c62f6dbb
Show More
pager.js
185 lines | 6.2 KiB | application/javascript | JavascriptLexer
MinRK
pager payload is a mime-bundle
r16586 // Copyright (c) IPython Development Team.
// Distributed under the terms of the Modified BSD License.
Brian E. Granger
Refactoring pager into its own class.
r4357
Jonathan Frederic
Progress...
r17196 define([
'base/js/namespace',
Jonathan Frederic
More requirejs fixes
r17215 'jqueryui',
Jonathan Frederic
Pager
r17197 'base/js/utils',
Jonathan Frederic
Almost done!...
r17198 ], function(IPython, $, utils) {
Matthias BUSSONNIER
"use strict" in most (if not all) our javascript...
r12103 "use strict";
Brian E. Granger
Refactoring pager into its own class.
r4357
jon
In person review with @ellisonbg
r17210 var Pager = function (pager_selector, pager_splitter_selector, options) {
jon
Added some nice comments,...
r17211 // Constructor
//
// Parameters:
// pager_selector: string
// pager_splitter_selector: string
// options: dictionary
// Dictionary of keyword arguments.
// events: $(Events) instance
// layout_manager: LayoutManager instance
jon
In person review with @ellisonbg
r17210 this.events = options.events;
Brian E. Granger
Refactoring pager into its own class.
r4357 this.pager_element = $(pager_selector);
Matthias BUSSONNIER
This create the ability to detach the pager...
r8265 this.pager_button_area = $('#pager_button_area');
Matthias BUSSONNIER
Make pager resizable, and remember size......
r6723 var that = this;
Brian E. Granger
Work on save widget, kernel status widget and notebook section.
r4372 this.percentage_height = 0.40;
jon
In person review with @ellisonbg
r17210 options.layout_manager.pager = this;
Matthias BUSSONNIER
Make pager resizable, and remember size......
r6723 this.pager_splitter_element = $(pager_splitter_selector)
.draggable({
containment: 'window',
axis:'y',
helper: null ,
Matthias BUSSONNIER
pep 8 and js...
r6739 drag: function(event, ui) {
Matthias BUSSONNIER
Make pager resizable, and remember size......
r6723 // recalculate the amount of space the pager should take
MinRK
fix bad `$(body)`
r10908 var pheight = ($(document.body).height()-event.clientY-4);
jon
In person review with @ellisonbg
r17210 var downprct = pheight/options.layout_manager.app_height();
Matthias BUSSONNIER
pep 8 and js...
r6739 downprct = Math.min(0.9, downprct);
if (downprct < 0.1) {
Matthias BUSSONNIER
Make pager resizable, and remember size......
r6723 that.percentage_height = 0.1;
that.collapse({'duration':0});
Matthias BUSSONNIER
pep 8 and js...
r6739 } else if (downprct > 0.2) {
Matthias BUSSONNIER
Make pager resizable, and remember size......
r6723 that.percentage_height = downprct;
that.expand({'duration':0});
}
jon
In person review with @ellisonbg
r17210 options.layout_manager.do_resize();
Matthias BUSSONNIER
Make pager resizable, and remember size......
r6723 }
});
this.expanded = false;
Brian E. Granger
Refactoring pager into its own class.
r4357 this.style();
Matthias BUSSONNIER
This create the ability to detach the pager...
r8265 this.create_button_area();
Brian E. Granger
Refactoring pager into its own class.
r4357 this.bind_events();
};
Matthias BUSSONNIER
This create the ability to detach the pager...
r8265 Pager.prototype.create_button_area = function(){
var that = this;
this.pager_button_area.append(
$('<a>').attr('role', "button")
Erik Tollerud
Added clickable icon to collapse pager...
r10469 .attr('title',"Open the pager in an external window")
Matthias BUSSONNIER
This create the ability to detach the pager...
r8265 .addClass('ui-button')
Jonathan Frederic
Progress...
r17196 .click(function(){that.detach();})
Erik Tollerud
Added clickable icon to collapse pager...
r10469 .attr('style','position: absolute; right: 20px;')
Matthias BUSSONNIER
This create the ability to detach the pager...
r8265 .append(
Bussonnier Matthias
change detach icon and tab title
r8449 $('<span>').addClass("ui-icon ui-icon-extlink")
Matthias BUSSONNIER
This create the ability to detach the pager...
r8265 )
Jonathan Frederic
Progress...
r17196 );
Erik Tollerud
Added clickable icon to collapse pager...
r10469 this.pager_button_area.append(
$('<a>').attr('role', "button")
Erik Tollerud
Collapse -> Close in button description as suggested by @fperez
r10474 .attr('title',"Close the pager")
Erik Tollerud
Added clickable icon to collapse pager...
r10469 .addClass('ui-button')
Jonathan Frederic
Progress...
r17196 .click(function(){that.collapse();})
Erik Tollerud
Added clickable icon to collapse pager...
r10469 .attr('style','position: absolute; right: 5px;')
.append(
$('<span>').addClass("ui-icon ui-icon-close")
)
Jonathan Frederic
Progress...
r17196 );
Matthias BUSSONNIER
This create the ability to detach the pager...
r8265 };
Brian E. Granger
Refactoring pager into its own class.
r4357 Pager.prototype.style = function () {
Matthias BUSSONNIER
move styling from js to css
r17429 this.pager_splitter_element.addClass('ui-widget ui-state-default');
Matthias BUSSONNIER
Make pager resizable, and remember size......
r6723 this.pager_splitter_element.attr('title', 'Click to Show/Hide pager area, drag to Resize');
Brian E. Granger
Refactoring pager into its own class.
r4357 };
Pager.prototype.bind_events = function () {
var that = this;
Brian E. Granger
Pager is working again.
r4361
Matthias BUSSONNIER
pep 8 and js...
r6739 this.pager_element.bind('collapse_pager', function (event, extrap) {
MinRK
pager payload is a mime-bundle
r16586 var time = 'fast';
if (extrap && extrap.duration) {
time = extrap.duration;
}
Matthias BUSSONNIER
Make pager resizable, and remember size......
r6723 that.pager_element.hide(time);
Brian E. Granger
Pager is working again.
r4361 });
Matthias BUSSONNIER
pep 8 and js...
r6739 this.pager_element.bind('expand_pager', function (event, extrap) {
MinRK
pager payload is a mime-bundle
r16586 var time = 'fast';
if (extrap && extrap.duration) {
time = extrap.duration;
}
Matthias BUSSONNIER
Make pager resizable, and remember size......
r6723 that.pager_element.show(time);
Brian E. Granger
Refactoring pager into its own class.
r4357 });
Brian E. Granger
Left panel is now working.
r4363 this.pager_splitter_element.hover(
Brian E. Granger
Refactoring pager into its own class.
r4357 function () {
Brian E. Granger
Left panel is now working.
r4363 that.pager_splitter_element.addClass('ui-state-hover');
Brian E. Granger
Refactoring pager into its own class.
r4357 },
function () {
Brian E. Granger
Left panel is now working.
r4363 that.pager_splitter_element.removeClass('ui-state-hover');
Brian E. Granger
Refactoring pager into its own class.
r4357 }
);
Brian E. Granger
Pager is working again.
r4361
Brian E. Granger
Left panel is now working.
r4363 this.pager_splitter_element.click(function () {
Brian E. Granger
Pager is working again.
r4361 that.toggle();
});
Brian E. Granger
Left panel is now working.
r4363
Jonathan Frederic
Progress...
r17196 this.events.on('open_with_text.Pager', function (event, payload) {
MinRK
pager payload is a mime-bundle
r16586 // FIXME: support other mime types
if (payload.data['text/plain'] && payload.data['text/plain'] !== "") {
Brian Granger
Major refactoring of the Notebook, Kernel and CodeCell JavaScript....
r7168 that.clear();
that.expand();
MinRK
pager payload is a mime-bundle
r16586 that.append_text(payload.data['text/plain']);
}
Brian Granger
Major refactoring of the Notebook, Kernel and CodeCell JavaScript....
r7168 });
Brian E. Granger
Refactoring pager into its own class.
r4357 };
Matthias BUSSONNIER
Make pager resizable, and remember size......
r6723 Pager.prototype.collapse = function (extrap) {
Brian E. Granger
Pager is working again.
r4361 if (this.expanded === true) {
this.expanded = false;
Matthias BUSSONNIER
pep 8 and js...
r6739 this.pager_element.add($('div#notebook')).trigger('collapse_pager', extrap);
MinRK
pager payload is a mime-bundle
r16586 }
Brian E. Granger
Refactoring pager into its own class.
r4357 };
Matthias BUSSONNIER
Make pager resizable, and remember size......
r6723 Pager.prototype.expand = function (extrap) {
Brian E. Granger
Pager is working again.
r4361 if (this.expanded !== true) {
this.expanded = true;
Matthias BUSSONNIER
pep 8 and js...
r6739 this.pager_element.add($('div#notebook')).trigger('expand_pager', extrap);
MinRK
pager payload is a mime-bundle
r16586 }
Brian E. Granger
Pager is working again.
r4361 };
Pager.prototype.toggle = function () {
if (this.expanded === true) {
this.collapse();
} else {
this.expand();
MinRK
pager payload is a mime-bundle
r16586 }
Brian E. Granger
Refactoring pager into its own class.
r4357 };
Pager.prototype.clear = function (text) {
MinRK
pager styling...
r10914 this.pager_element.find(".container").empty();
Brian E. Granger
Refactoring pager into its own class.
r4357 };
Matthias BUSSONNIER
This create the ability to detach the pager...
r8265 Pager.prototype.detach = function(){
MinRK
fix Pager.detach...
r11542 var w = window.open("","_blank");
Matthias BUSSONNIER
This create the ability to detach the pager...
r8265 $(w.document.head)
.append(
$('<link>')
.attr('rel',"stylesheet")
.attr('href',"/static/css/notebook.css")
.attr('type',"text/css")
Bussonnier Matthias
change detach icon and tab title
r8449 )
.append(
$('<title>').text("IPython Pager")
Matthias BUSSONNIER
This create the ability to detach the pager...
r8265 );
MinRK
fix Pager.detach...
r11542 var pager_body = $(w.document.body);
pager_body.css('overflow','scroll');
Matthias BUSSONNIER
This create the ability to detach the pager...
r8265
MinRK
fix Pager.detach...
r11542 pager_body.append(this.pager_element.clone().children());
Matthias BUSSONNIER
This create the ability to detach the pager...
r8265 w.document.close();
this.collapse();
MinRK
pager payload is a mime-bundle
r16586 };
Brian E. Granger
Refactoring pager into its own class.
r4357
Pager.prototype.append_text = function (text) {
Jonathan Frederic
s/with with/with
r15406 // The only user content injected with this HTML call is escaped by
Jonathan Frederic
Audit .html() calls take #2
r15376 // the fixConsole() method.
Jonathan Frederic
Almost done!...
r17198 this.pager_element.find(".container").append($('<pre/>').html(utils.fixCarriageReturn(utils.fixConsole(text))));
Matthias BUSSONNIER
Make pager resizable, and remember size......
r6723 };
Brian E. Granger
Refactoring pager into its own class.
r4357
Jonathan Frederic
Progress...
r17196 // Backwards compatability.
Brian E. Granger
Refactoring pager into its own class.
r4357 IPython.Pager = Pager;
Jonathan Frederic
Return dicts instead of classes,...
r17201 return {'Pager': Pager};
Jonathan Frederic
Progress...
r17196 });