notebook/IPython/html/static/base/js/page.js
Min RK f499104d75 don't use flexbox to size #site
The approach in #7517 didn't work on Safari
(as in the entire page was invisible).

This is the same mechanism used to size the CodeMirror div on the edit page, and should work more reliably.
2015-01-23 15:11:59 -08:00

66 lines
1.9 KiB
JavaScript

// Copyright (c) IPython Development Team.
// Distributed under the terms of the Modified BSD License.
define([
'base/js/namespace',
'jquery',
'base/js/events',
], function(IPython, $, events){
"use strict";
var Page = function () {
this.bind_events();
};
Page.prototype.bind_events = function () {
// resize site on:
// - window resize
// - header change
// - page load
var _handle_resize = $.proxy(this._resize_site, this);
$(window).resize(_handle_resize);
// On document ready, resize codemirror.
$(document).ready(_handle_resize);
events.on('resize-header.Page', _handle_resize);
};
Page.prototype.show = function () {
/**
* The header and site divs start out hidden to prevent FLOUC.
* Main scripts should call this method after styling everything.
*/
this.show_header();
this.show_site();
};
Page.prototype.show_header = function () {
/**
* The header and site divs start out hidden to prevent FLOUC.
* Main scripts should call this method after styling everything.
* TODO: selector are hardcoded, pass as constructor argument
*/
$('div#header').css('display','block');
};
Page.prototype.show_site = function () {
/**
* The header and site divs start out hidden to prevent FLOUC.
* Main scripts should call this method after styling everything.
* TODO: selector are hardcoded, pass as constructor argument
*/
$('div#site').css('display', 'block');
this._resize_site();
};
Page.prototype._resize_site = function() {
// Update the site's size.
$('div#site').height(window.innerHeight - $('#header').height());
};
// Register self in the global namespace for convenience.
IPython.Page = Page;
return {'Page': Page};
});