##// END OF EJS Templates
replace tab by space comment print view action
replace tab by space comment print view action

File last commit:

r8839:b1ae47fc
r9296:8be47423
Show More
pager.js
166 lines | 5.6 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
Refactoring pager into its own class.
r4357
//============================================================================
// Pager
//============================================================================
var IPython = (function (IPython) {
var utils = IPython.utils;
Brian E. Granger
Left panel is now working.
r4363 var Pager = function (pager_selector, pager_splitter_selector) {
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;
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
Matthias BUSSONNIER
pep 8 and js...
r6739 var pheight = ($(body).height()-event.clientY-4);
Matthias BUSSONNIER
Make pager resizable, and remember size......
r6723 var downprct = pheight/IPython.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});
}
IPython.layout_manager.do_resize();
}
});
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")
Matthias BUSSONNIER
add tooltip to pager button
r8266 .attr('title',"open the pager in an external window")
Matthias BUSSONNIER
This create the ability to detach the pager...
r8265 .addClass('ui-button')
.click(function(){that.detach()})
.attr('style','position: absolute; right: 10px;')
.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 )
)
};
Brian E. Granger
Refactoring pager into its own class.
r4357 Pager.prototype.style = function () {
Brian E. Granger
Left panel is now working.
r4363 this.pager_splitter_element.addClass('border-box-sizing ui-widget ui-state-default');
Brian E. Granger
Pager is working again.
r4361 this.pager_element.addClass('border-box-sizing ui-widget');
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) {
Mikhail Korobov
Some bugs in js (mostly scoping bugs) are fixed
r8839 var time = (extrap != undefined) ? ((extrap.duration != undefined ) ? extrap.duration : 'fast') : 'fast';
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) {
Mikhail Korobov
Some bugs in js (mostly scoping bugs) are fixed
r8839 var time = (extrap != undefined) ? ((extrap.duration != undefined ) ? extrap.duration : 'fast') : 'fast';
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
Brian Granger
Major refactoring of the Notebook, Kernel and CodeCell JavaScript....
r7168 $([IPython.events]).on('open_with_text.Pager', function (event, data) {
if (data.text.trim() !== '') {
that.clear();
that.expand();
that.append_text(data.text);
};
});
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);
Brian E. Granger
Pager is working again.
r4361 };
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);
Brian E. Granger
Pager is working again.
r4361 };
};
Pager.prototype.toggle = function () {
if (this.expanded === true) {
this.collapse();
} else {
this.expand();
};
Brian E. Granger
Refactoring pager into its own class.
r4357 };
Pager.prototype.clear = function (text) {
this.pager_element.empty();
};
Matthias BUSSONNIER
This create the ability to detach the pager...
r8265 Pager.prototype.detach = function(){
var w = window.open("","_blank")
$(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 );
var pager_body = $(w.document.body)
pager_body.attr('style','overflow:scroll');
pager_body.append(this.pager_element.children())
w.document.close();
this.collapse();
}
Brian E. Granger
Refactoring pager into its own class.
r4357
Pager.prototype.append_text = function (text) {
Brian E. Granger
Updating font-sizing to use the YUI protocol.
r4379 var toinsert = $("<div/>").addClass("output_area output_stream");
Michael Droettboom
Handle carriage return characters ("\r") in HTML notebook output....
r7339 toinsert.append($('<pre/>').html(utils.fixCarriageReturn(utils.fixConsole(text))));
Brian E. Granger
Refactoring pager into its own class.
r4357 this.pager_element.append(toinsert);
Matthias BUSSONNIER
Make pager resizable, and remember size......
r6723 };
Brian E. Granger
Refactoring pager into its own class.
r4357
IPython.Pager = Pager;
return IPython;
}(IPython));