##// END OF EJS Templates
Adds configuration options to use Google Drive content manager...
KesterTong -
Show More
@@ -0,0 +1,43 b''
1 """A notebook manager for when the logic is done client side (in JavaScript)."""
2
3 #-----------------------------------------------------------------------------
4 # Copyright (C) 2011 The IPython Development Team
5 #
6 # Distributed under the terms of the BSD License. The full license is in
7 # the file COPYING, distributed as part of this software.
8 #-----------------------------------------------------------------------------
9
10 #-----------------------------------------------------------------------------
11 # Imports
12 #-----------------------------------------------------------------------------
13
14 from .nbmanager import NotebookManager
15
16 from fnmatch import fnmatch
17 import itertools
18 import os
19
20 from IPython.config.configurable import LoggingConfigurable
21 from IPython.nbformat import current, sign
22 from IPython.utils.traitlets import Instance, Unicode, List
23
24 #-----------------------------------------------------------------------------
25 # Classes
26 #-----------------------------------------------------------------------------
27
28 class ClientSideNotebookManager(NotebookManager):
29 # The notebook directory is meaningless since we are not using
30 # the local filesystem.
31 notebook_dir = ''
32
33 def path_exists(self, path):
34 # Always return true, because this check is now done client side.
35 return True
36
37 def is_hidden(self, path):
38 # Always return false, because this check is now done client side.
39 return False
40
41 def notebook_exists(self, name, path=''):
42 # Always return true, because this check is now done client side.
43 return True
@@ -137,6 +137,13 b' class IPythonHandler(AuthenticatedHandler):'
137 def ws_url(self):
137 def ws_url(self):
138 return self.settings.get('websocket_url', '')
138 return self.settings.get('websocket_url', '')
139
139
140 @property
141 def contentmanager_js_source(self):
142 self.log.debug("Using contentmanager: %s", self.settings.get('contentmanager_js_source',
143 'base/js/contentmanager'))
144 return self.settings.get('contentmanager_js_source',
145 'base/js/contentmanager')
146
140 #---------------------------------------------------------------
147 #---------------------------------------------------------------
141 # Manager objects
148 # Manager objects
142 #---------------------------------------------------------------
149 #---------------------------------------------------------------
@@ -224,7 +231,8 b' class IPythonHandler(AuthenticatedHandler):'
224 logged_in=self.logged_in,
231 logged_in=self.logged_in,
225 login_available=self.login_available,
232 login_available=self.login_available,
226 static_url=self.static_url,
233 static_url=self.static_url,
227 sys_info=sys_info
234 sys_info=sys_info,
235 contentmanager_js_source=self.contentmanager_js_source,
228 )
236 )
229
237
230 def get_json_body(self):
238 def get_json_body(self):
@@ -5,7 +5,7 b' require(['
5 'base/js/namespace',
5 'base/js/namespace',
6 'jquery',
6 'jquery',
7 'notebook/js/notebook',
7 'notebook/js/notebook',
8 'base/js/contentmanager',
8 'contentmanager',
9 'base/js/utils',
9 'base/js/utils',
10 'base/js/page',
10 'base/js/page',
11 'notebook/js/layoutmanager',
11 'notebook/js/layoutmanager',
@@ -7,7 +7,7 b' require(['
7 'base/js/events',
7 'base/js/events',
8 'base/js/page',
8 'base/js/page',
9 'base/js/utils',
9 'base/js/utils',
10 'base/js/contentmanager',
10 'contentmanager',
11 'tree/js/notebooklist',
11 'tree/js/notebooklist',
12 'tree/js/clusterlist',
12 'tree/js/clusterlist',
13 'tree/js/sessionlist',
13 'tree/js/sessionlist',
@@ -30,6 +30,7 b''
30 moment: "components/moment/moment",
30 moment: "components/moment/moment",
31 codemirror: 'components/codemirror',
31 codemirror: 'components/codemirror',
32 termjs: "components/term.js/src/term"
32 termjs: "components/term.js/src/term"
33 contentmanager: '{{ contentmanager_js_source }}',
33 },
34 },
34 shim: {
35 shim: {
35 underscore: {
36 underscore: {
General Comments 0
You need to be logged in to leave comments. Login now