##// END OF EJS Templates
Trigger app_initialized event *after* the 'global' IPython object is initialized
Jason Grout -
Show More
@@ -1,135 +1,137 b''
1 1 // Copyright (c) IPython Development Team.
2 2 // Distributed under the terms of the Modified BSD License.
3 3
4 4 require([
5 5 'base/js/namespace',
6 6 'jquery',
7 7 'notebook/js/notebook',
8 8 'base/js/utils',
9 9 'base/js/page',
10 10 'notebook/js/layoutmanager',
11 11 'base/js/events',
12 12 'auth/js/loginwidget',
13 13 'notebook/js/maintoolbar',
14 14 'notebook/js/pager',
15 15 'notebook/js/quickhelp',
16 16 'notebook/js/menubar',
17 17 'notebook/js/notificationarea',
18 18 'notebook/js/savewidget',
19 19 'notebook/js/keyboardmanager',
20 20 'notebook/js/config',
21 'custom/custom',
21 22 ], function(
22 23 IPython,
23 24 $,
24 25 notebook,
25 26 utils,
26 27 page,
27 28 layoutmanager,
28 29 events,
29 30 loginwidget,
30 31 maintoolbar,
31 32 pager,
32 33 quickhelp,
33 34 menubar,
34 35 notificationarea,
35 36 savewidget,
36 37 keyboardmanager,
37 38 config
38 39 ) {
39 40 "use strict";
40 41
41 42 $('#ipython-main-app').addClass('border-box-sizing');
42 43 $('div#notebook_panel').addClass('border-box-sizing');
43 44
44 45 var common_options = {
45 46 base_url : utils.get_body_data("baseUrl"),
46 47 notebook_path : utils.get_body_data("notebookPath"),
47 48 notebook_name : utils.get_body_data('notebookName')
48 49 };
49 50
50 51 var user_config = $.extend({}, config.default_config);
51 52 var page = new page.Page();
52 53 var layout_manager = new layoutmanager.LayoutManager();
53 54 var pager = new pager.Pager('div#pager', 'div#pager_splitter', {
54 55 layout_manager: layout_manager,
55 56 events: events});
56 57 var keyboard_manager = new keyboardmanager.KeyboardManager({
57 58 pager: pager,
58 59 events: events});
59 60 var save_widget = new savewidget.SaveWidget('span#save_widget', {
60 61 events: events,
61 62 keyboard_manager: keyboard_manager});
62 63 var notebook = new notebook.Notebook('div#notebook', $.extend({
63 64 events: events,
64 65 keyboard_manager: keyboard_manager,
65 66 save_widget: save_widget,
66 67 config: user_config},
67 68 common_options));
68 69 var login_widget = new loginwidget.LoginWidget('span#login_widget', common_options);
69 70 var toolbar = new maintoolbar.MainToolBar('#maintoolbar-container', {
70 71 notebook: notebook,
71 72 events: events});
72 73 var quick_help = new quickhelp.QuickHelp({
73 74 keyboard_manager: keyboard_manager,
74 75 events: events,
75 76 notebook: notebook});
76 77 var menubar = new menubar.MenuBar('#menubar', $.extend({
77 78 notebook: notebook,
78 79 layout_manager: layout_manager,
79 80 events: events,
80 81 save_widget: save_widget,
81 82 quick_help: quick_help},
82 83 common_options));
83 84 var notification_area = new notificationarea.NotificationArea(
84 85 '#notification_area', {
85 86 events: events,
86 87 save_widget: save_widget,
87 88 notebook: notebook,
88 89 keyboard_manager: keyboard_manager});
89 90 notification_area.init_notification_widgets();
90 91
91 92 $('body').append('<div id="fonttest"><pre><span id="test1">x</span>'+
92 93 '<span id="test2" style="font-weight: bold;">x</span>'+
93 94 '<span id="test3" style="font-style: italic;">x</span></pre></div>');
94 95 var nh = $('#test1').innerHeight();
95 96 var bh = $('#test2').innerHeight();
96 97 var ih = $('#test3').innerHeight();
97 98 if(nh != bh || nh != ih) {
98 99 $('head').append('<style>.CodeMirror span { vertical-align: bottom; }</style>');
99 100 }
100 101 $('#fonttest').remove();
101 102
102 103 page.show();
103 104
104 105 layout_manager.do_resize();
105 106 var first_load = function () {
106 107 layout_manager.do_resize();
107 108 var hash = document.location.hash;
108 109 if (hash) {
109 110 document.location.hash = '';
110 111 document.location.hash = hash;
111 112 }
112 113 notebook.set_autosave_interval(notebook.minimum_autosave_interval);
113 114 // only do this once
114 115 events.off('notebook_loaded.Notebook', first_load);
115 116 };
116
117 117 events.on('notebook_loaded.Notebook', first_load);
118 events.trigger('app_initialized.NotebookApp');
119 notebook.load_notebook(common_options.notebook_name, common_options.notebook_path);
120 118
121 119 IPython.page = page;
122 120 IPython.layout_manager = layout_manager;
123 121 IPython.notebook = notebook;
124 122 IPython.pager = pager;
125 123 IPython.quick_help = quick_help;
126 124 IPython.login_widget = login_widget;
127 125 IPython.menubar = menubar;
128 126 IPython.toolbar = toolbar;
129 127 IPython.notification_area = notification_area;
130 128 IPython.events = events;
131 129 IPython.keyboard_manager = keyboard_manager;
132 130 IPython.save_widget = save_widget;
133 131 IPython.config = user_config;
134 132 IPython.tooltip = notebook.tooltip;
133
134 events.trigger('app_initialized.NotebookApp');
135 notebook.load_notebook(common_options.notebook_name, common_options.notebook_path);
136
135 137 });
@@ -1,118 +1,121 b''
1 1 // Copyright (c) IPython Development Team.
2 2 // Distributed under the terms of the Modified BSD License.
3 3
4 4 require([
5 5 'base/js/namespace',
6 6 'jquery',
7 7 'base/js/events',
8 8 'base/js/page',
9 9 'base/js/utils',
10 10 'tree/js/notebooklist',
11 11 'tree/js/clusterlist',
12 12 'tree/js/sessionlist',
13 13 'tree/js/kernellist',
14 14 'auth/js/loginwidget',
15 15 'jqueryui',
16 16 'bootstrap',
17 'custom/custom',
17 18 ], function(
18 19 IPython,
19 20 $,
20 21 events,
21 22 page,
22 23 utils,
23 24 notebooklist,
24 25 clusterlist,
25 26 sesssionlist,
26 27 kernellist,
27 28 loginwidget){
28 29
29 30 page = new page.Page();
30 31
31 32 var common_options = {
32 33 base_url: utils.get_body_data("baseUrl"),
33 34 notebook_path: utils.get_body_data("notebookPath"),
34 35 };
35 36 session_list = new sesssionlist.SesssionList($.extend({
36 37 events: events},
37 38 common_options));
38 39 notebook_list = new notebooklist.NotebookList('#notebook_list', $.extend({
39 40 session_list: session_list},
40 41 common_options));
41 42 cluster_list = new clusterlist.ClusterList('#cluster_list', common_options);
42 43 kernel_list = new kernellist.KernelList('#running_list', $.extend({
43 44 session_list: session_list},
44 45 common_options));
45 46 login_widget = new loginwidget.LoginWidget('#login_widget', common_options);
46 47
47 48 $('#new_notebook').button().click(function (e) {
48 49 notebook_list.new_notebook();
49 50 });
50 51
51 52 var interval_id=0;
52 53 // auto refresh every xx secondes, no need to be fast,
53 54 // update is done at least when page get focus
54 55 var time_refresh = 60; // in sec
55 56
56 57 var enable_autorefresh = function(){
57 58 //refresh immediately , then start interval
58 59 if($('.upload_button').length === 0)
59 60 {
60 61 session_list.load_sessions();
61 62 cluster_list.load_list();
62 63 }
63 64 if (!interval_id){
64 65 interval_id = setInterval(function(){
65 66 if($('.upload_button').length === 0)
66 67 {
67 68 session_list.load_sessions();
68 69 cluster_list.load_list();
69 70 }
70 71 }, time_refresh*1000);
71 72 }
72 73 };
73 74
74 75 var disable_autorefresh = function(){
75 76 clearInterval(interval_id);
76 77 interval_id = 0;
77 78 };
78 79
79 80 // stop autorefresh when page lose focus
80 81 $(window).blur(function() {
81 82 disable_autorefresh();
82 83 });
83 84
84 85 //re-enable when page get focus back
85 86 $(window).focus(function() {
86 87 enable_autorefresh();
87 88 });
88 89
89 90 // finally start it, it will refresh immediately
90 91 enable_autorefresh();
91 92
92 93 page.show();
94
95 // For backwards compatability.
96 IPython.page = page;
97 IPython.notebook_list = notebook_list;
98 IPython.cluster_list = cluster_list;
99 IPython.session_list = session_list;
100 IPython.kernel_list = kernel_list;
101 IPython.login_widget = login_widget;
102 IPython.events = events;
103
93 104 events.trigger('app_initialized.DashboardApp');
94 105
95 106 // bound the upload method to the on change of the file select list
96 107 $("#alternate_upload").change(function (event){
97 108 notebook_list.handleFilesUpload(event,'form');
98 109 });
99 110
100 111 // set hash on tab click
101 112 $("#tabs").find("a").click(function() {
102 113 window.location.hash = $(this).attr("href");
103 114 });
104 115
105 116 // load tab if url hash
106 117 if (window.location.hash) {
107 118 $("#tabs").find("a[href=" + window.location.hash + "]").click();
108 119 }
109 120
110 // For backwards compatability.
111 IPython.page = page;
112 IPython.notebook_list = notebook_list;
113 IPython.cluster_list = cluster_list;
114 IPython.session_list = session_list;
115 IPython.kernel_list = kernel_list;
116 IPython.login_widget = login_widget;
117 IPython.events = events;
118 121 });
General Comments 0
You need to be logged in to leave comments. Login now