main.js
97 lines
| 2.6 KiB
| application/javascript
|
JavascriptLexer
Thomas Kluyver
|
r19010 | // Copyright (c) IPython Development Team. | ||
// Distributed under the terms of the Modified BSD License. | ||||
require([ | ||||
Jonathan Frederic
|
r20063 | 'jquery', | ||
Thomas Kluyver
|
r19013 | 'base/js/namespace', | ||
Thomas Kluyver
|
r19010 | 'base/js/utils', | ||
'base/js/page', | ||||
Thomas Kluyver
|
r19012 | 'base/js/events', | ||
Thomas Kluyver
|
r19011 | 'contents', | ||
Thomas Kluyver
|
r19082 | 'services/config', | ||
Thomas Kluyver
|
r19074 | 'edit/js/editor', | ||
'edit/js/menubar', | ||||
Min RK
|
r19316 | 'edit/js/savewidget', | ||
Thomas Kluyver
|
r19074 | 'edit/js/notificationarea', | ||
Thomas Kluyver
|
r19010 | 'custom/custom', | ||
], function( | ||||
Jonathan Frederic
|
r20063 | $, | ||
Thomas Kluyver
|
r19013 | IPython, | ||
Thomas Kluyver
|
r19010 | utils, | ||
page, | ||||
Thomas Kluyver
|
r19012 | events, | ||
Thomas Kluyver
|
r19011 | contents, | ||
Thomas Kluyver
|
r19082 | configmod, | ||
Min RK
|
r19304 | editmod, | ||
Thomas Kluyver
|
r19017 | menubar, | ||
Min RK
|
r19316 | savewidget, | ||
Thomas Kluyver
|
r19017 | notificationarea | ||
Thomas Kluyver
|
r19010 | ){ | ||
Matthias Bussonnier
|
r20425 | "use strict"; | ||
Thomas Kluyver
|
r19010 | page = new page.Page(); | ||
var base_url = utils.get_body_data('baseUrl'); | ||||
Thomas Kluyver
|
r19011 | var file_path = utils.get_body_data('filePath'); | ||
Min RK
|
r19304 | var config = new configmod.ConfigSection('edit', {base_url: base_url}); | ||
Thomas Kluyver
|
r19082 | config.load(); | ||
Thomas Kluyver
|
r19635 | var common_config = new configmod.ConfigSection('common', {base_url: base_url}); | ||
Thomas Kluyver
|
r19633 | common_config.load(); | ||
Matthias Bussonnier
|
r20425 | contents = new contents.Contents({ | ||
base_url: base_url, | ||||
common_config: common_config | ||||
}); | ||||
Thomas Kluyver
|
r19013 | |||
Min RK
|
r19304 | var editor = new editmod.Editor('#texteditor-container', { | ||
Thomas Kluyver
|
r19013 | base_url: base_url, | ||
events: events, | ||||
contents: contents, | ||||
file_path: file_path, | ||||
Min RK
|
r19303 | config: config, | ||
Thomas Kluyver
|
r19011 | }); | ||
Thomas Kluyver
|
r19013 | |||
// Make it available for debugging | ||||
IPython.editor = editor; | ||||
Min RK
|
r19317 | var save_widget = new savewidget.SaveWidget('span#save_widget', { | ||
Thomas Kluyver
|
r19013 | editor: editor, | ||
Min RK
|
r19303 | events: events, | ||
Thomas Kluyver
|
r19013 | }); | ||
Thomas Kluyver
|
r19017 | |||
Min RK
|
r19317 | var menus = new menubar.MenuBar('#menubar', { | ||
base_url: base_url, | ||||
Min RK
|
r19316 | editor: editor, | ||
events: events, | ||||
Min RK
|
r19317 | save_widget: save_widget, | ||
Min RK
|
r19316 | }); | ||
Thomas Kluyver
|
r19017 | var notification_area = new notificationarea.EditorNotificationArea( | ||
'#notification_area', { | ||||
events: events, | ||||
}); | ||||
Bussonnier Matthias
|
r20149 | editor.notification_area = notification_area; | ||
Thomas Kluyver
|
r19017 | notification_area.init_notification_widgets(); | ||
Thomas Kluyver
|
r19013 | |||
Thomas Kluyver
|
r19633 | utils.load_extensions_from_config(config); | ||
utils.load_extensions_from_config(common_config); | ||||
Thomas Kluyver
|
r19013 | editor.load(); | ||
page.show(); | ||||
Min RK
|
r19304 | |||
window.onbeforeunload = function () { | ||||
Min RK
|
r19337 | if (editor.save_enabled && !editor.codemirror.isClean(editor.generation)) { | ||
Min RK
|
r19304 | return "Unsaved changes will be lost. Close anyway?"; | ||
} | ||||
}; | ||||
Jonathan Frederic
|
r20063 | // Make sure the codemirror editor is sized appropriatley. | ||
var _handle_resize = function() { | ||||
Min RK
|
r20167 | var backdrop = $("#texteditor-backdrop"); | ||
Jonathan Frederic
|
r20070 | |||
Min RK
|
r20167 | // account for padding on the backdrop wrapper | ||
var padding = backdrop.outerHeight(true) - backdrop.height(); | ||||
$('div.CodeMirror').height($("#site").height() - padding); | ||||
Jonathan Frederic
|
r20063 | }; | ||
Min RK
|
r20107 | $(window).resize(_handle_resize); | ||
Jonathan Frederic
|
r20063 | |||
// On document ready, resize codemirror. | ||||
Jonathan Frederic
|
r20086 | $(document).ready(_handle_resize); | ||
Thomas Kluyver
|
r19010 | }); | ||