Commit Graph

1920 Commits

Author SHA1 Message Date
Thomas Kluyver
538fcbc025 Close new window on error creating terminal 2014-11-04 10:44:08 -08:00
Thomas Kluyver
e6939f9aa5 Merge pull request #6846 from minrk/deprecate-heading-ui
deprecate heading cells in UI
2014-11-04 10:06:47 -08:00
Thomas Kluyver
8da4e89e3a Make a window immediately, and set its location on response
Avoids the need for async:false
2014-11-04 09:53:17 -08:00
v923z
a2081d042e replaced nbmodel.orig_nbformat by orig_nbformat 2014-11-04 15:10:55 +01:00
v923z
9c122dcd15 fixed notebook checking code 2014-11-04 14:57:44 +01:00
Min RK
ef49e32ef0 Merge pull request #6783 from takluyver/contentsmanager-js
contents.js wrapper for contents service
2014-11-03 17:09:49 -08:00
Thomas Kluyver
b7a558d5b9 Use synchronous request for creating new notebooks
To get round popup blockers
2014-11-03 15:29:09 -08:00
Min RK
04bcfa626d deprecate heading cells in UI
- removed from Kernel Menu
- Main toolbar warns via shouty dialog
- keyboard shortcuts still work to make headings in markdown cells, with no warning
2014-11-03 15:05:54 -08:00
Thomas Kluyver
2a497c16eb load_file -> load 2014-11-03 14:46:49 -08:00
Thomas Kluyver
1f2e4cc6c3 Fix passing empty list to draw_notebook_list() 2014-11-03 14:41:50 -08:00
Thomas Kluyver
a4f869aa8b Rename methods to remove _file suffix 2014-11-03 14:40:09 -08:00
Thomas Kluyver
5279418acf Make Contents.new more generic 2014-11-03 14:29:39 -08:00
Thomas Kluyver
4452754a6b Set notebook nbformat in toJSON 2014-11-03 14:20:12 -08:00
Min RK
6b67a69c22 don't assume converted notebooks are old
in notebook.js dialogs, which can now be triggered
by nbformat 4 from the future.
2014-11-03 11:50:11 -08:00
Thomas Kluyver
684516c79f Fix copy-paste mistakes 2014-11-03 10:21:38 -08:00
Thomas Kluyver
658eb39c56 Remove one more unnecessary cache parameter 2014-11-03 10:19:51 -08:00
Thomas Kluyver
2962a3ce17 Remove some unnecessary cache: false parameters
According to the jQuery docs, this is only needed for GET and HEAD
requests.
2014-11-03 10:19:51 -08:00
Thomas Kluyver
a2f3e23fd8 Add copy_file to contents JS API 2014-11-03 10:19:51 -08:00
Thomas Kluyver
b8f9dc07e2 Fix error callback when deleting file 2014-11-03 10:19:51 -08:00
Kester Tong
9797a6b7c0 typo fix 2014-11-03 10:19:51 -08:00
Kester Tong
89df330129 Modifies Contents API to return Error objects
Modfies the Contents class to return JavaScript Error objects instead of passing on the return values from $.ajax().  This has two advantages.  First, it allows the content manager to parse errors and give more informative messages than the ajax response.  Second, it makes the Contents interface more general, since other kinds of backends might generate client-side errors.
2014-11-03 10:19:50 -08:00
Thomas Kluyver
e1cbaf3d3c Fix spelling 2014-11-03 10:18:28 -08:00
Thomas Kluyver
f8ec8d4abe Various minor fixes from review 2014-11-03 10:18:28 -08:00
Thomas Kluyver
ea314a2a86 Rename callback parameters to success/error 2014-11-03 10:18:28 -08:00
Thomas Kluyver
060dd1305c Miscellaneous JS fixes 2014-11-03 10:18:28 -08:00
Thomas Kluyver
c1c591336e Some more event cleanup 2014-11-03 10:18:28 -08:00
Thomas Kluyver
cf828ccf4e Cut out some superfluous events 2014-11-03 10:18:28 -08:00
Thomas Kluyver
c9bd254735 Make contents JS API consistent 2014-11-03 10:18:28 -08:00
Thomas Kluyver
29d88a91a6 Standardise JS checkpointing API, use it for notebooks 2014-11-03 10:18:27 -08:00
Thomas Kluyver
14106cbd66 Move contents API module into services 2014-11-03 10:18:27 -08:00
Thomas Kluyver
a10dea4cd5 Add Contents.api_url convenience function 2014-11-03 10:18:27 -08:00
Thomas Kluyver
9538726b16 Don't do UI stuff in contents API module 2014-11-03 10:18:27 -08:00
Thomas Kluyver
478648bde5 Page URL is /notebooks/..., not contents 2014-11-03 10:18:27 -08:00
Thomas Kluyver
c661c85abd Add missing semicolon 2014-11-03 10:18:27 -08:00
Jeff Hemmelgarn
47a88f0e1d Remove version 2014-11-03 10:18:27 -08:00
Jeff Hemmelgarn
dab99c599f Remove unnecessary backwards compatibility code 2014-11-03 10:18:27 -08:00
Jeff Hemmelgarn
53463898eb Move contentmanager to contents 2014-11-03 10:18:27 -08:00
jhemmelg
5109be2d28 ContentManager function signatures updated 2014-11-03 10:18:04 -08:00
jhemmelg
496fa1901f Initial interface for javascript contentmanagers
contentmanager.js is going to be a js proxy for the current
filenbmanager.py.  This will allow a contentmanager for Google Drive to
be created.
2014-11-03 10:18:04 -08:00
Jeff Hemmelgarn
09e0ff93d8 Fix a few problems with cherry-picked commits
api/notebooks => api/contents
add type to JSON model
fix a few things in notebooklist.js
2014-11-03 10:18:04 -08:00
KesterTong
3994d4d56a Adds configuration options to use Google Drive content manager
Adds the key contentmanager_js_source to webapp_settings that allows for specifying the content manager JavaScript source file.  Also adds a NotebookManager subclass, ClientSideNotebookManager, which does minimal logic.  This class is used when the JavaScript content manager doesn't use the Python notebook manager, but rather implements that logic client side, as is the case for the Google Drive based content manager.

A sample command line that uses the Google Drive content manager, and the ClientSideNotebookManager, is

ipython notebook --NotebookApp.webapp_settings="{'contentmanager_js_source': 'base/js/drive_contentmanager'}" --NotebookApp.notebook_manager_class="IPython.html.services.notebooks.clientsidenbmanager.ClientSideNotebookManager"
2014-11-03 10:18:04 -08:00
KesterTong
952ac7d0d8 Moves load_notebook to ContentManager and adds new_notebook to Google Drive version 2014-11-03 10:17:12 -08:00
KesterTong
e3ef5d3b70 Moves list_notebooks to ContentManager 2014-11-03 10:17:12 -08:00
KesterTong
dfcf14f26c Uses events for ContentManager.save_notebook
Modifies ContentManager.save_notebook() to use events, so that the Notebook instance can listen for success or failure events.  Also moves some logic out of save_notebook()
2014-11-03 10:17:12 -08:00
KesterTong
04fc61285f Use events for rename_notebook
Triggers events on ContentManager.rename_notebook success and failure.  Also moves some logic out of this method.
2014-11-03 10:17:12 -08:00
KesterTong
75d7e69fc8 Use $.proxy instead of that 2014-11-03 10:17:12 -08:00
KesterTong
9881d17bb1 Remove unused event
This event never seems to get used.
2014-11-03 10:17:12 -08:00
KesterTong
61a911fc0c Fix constructor comments
Add content_manager as a dictionary key to the options param passed in to the NotebookList and Notebook constructors.
2014-11-03 10:17:12 -08:00
KesterTong
0aada3ac5d Remove deleted notebook from notebook list
Uses events to notify the NotebookList when the content manager deletes a notebook, and remove the deleted notebook in response to such an event.
2014-11-03 10:17:12 -08:00
KesterTong
077ba397c1 Removes unnecessary parameter from ContentManager.delete_notebook 2014-11-03 10:17:12 -08:00
Jeff Hemmelgarn
99323b1173 Move saving to contentmanager
Make notebook.save_notebook call contentmanager.save_notebook.
2014-11-03 10:17:12 -08:00
Jeff Hemmelgarn
5b5e194082 Move notebook.rename to contentmanager
Make notebook.rename call contentmanager.rename
2014-11-03 10:17:12 -08:00
Jeff Hemmelgarn
7043aa1b9e switch notebook.delete to use contentmanager
Make notebook.delete call contentmanager.delete_notebook
2014-11-03 10:17:12 -08:00
Jeff Hemmelgarn
728c6f005f Move deleting a notebook to contentmanager.js
Move code to handle deleting a notebook from notebooklist to
contentmanager.
2014-11-03 10:17:12 -08:00
KesterTong
993833d018 Replace other methods with ContentManager.new_notebook
Replaces Notebook.new_notebook and NotebookList.new_notebook with ContentManager.new_notebook
2014-11-03 10:17:11 -08:00
KesterTong
d17ca85f5b Adds dialog on new_notebook failure
This logic doesn't really belong in ContentManager.  It would be better to trigger an event, which is handled somewhere else.  But there's no obvious place to put this event, so creating the error dialog inside the new_notebook method is ok for now.
2014-11-03 10:17:11 -08:00
KesterTong
5717a3eb10 Make ContentManager stateless
Don't store notebook_path in ContentManager, because this sort of state (in addition to notebook_name) can change, and keeping track of this logic doesn't seem to be a part of the file management system.  Instead, this logic can be left to the Notebook instance (and possible other places that manage it).  This makes refactoring easier, and avoids having to replicate this logic in every implementation of ContentManager.
2014-11-03 10:17:11 -08:00
KesterTong
99f2647edd Use IPython style constructor 2014-11-03 10:17:11 -08:00
KesterTong
21a5b5a965 Style and bug fixes 2014-11-03 10:17:11 -08:00
jhemmelg
112a74c566 ContentManager function signatures updated 2014-11-03 10:17:11 -08:00
jhemmelg
d5a84bb8a4 Initial interface for javascript contentmanagers
contentmanager.js is going to be a js proxy for the current
filenbmanager.py.  This will allow a contentmanager for Google Drive to
be created.
2014-11-03 10:17:11 -08:00
Thomas Kluyver
a16a3d0270 Merge pull request #6045 from minrk/nbformat4
nbformat v4
2014-11-03 09:58:33 -08:00
Min RK
96183a60a0 create new terminals with POST /api/terminals
instead of GET terminals/new

to be consistent with creating new notebooks.

We had to stop using GET notebooks/new
because browsers would create new notebooks when making preview thumbnails for commonly visited pages, etc.
I assume the same issue would apply to terminals
2014-11-02 11:09:03 -08:00
Min RK
196b91e73b Merge pull request #6828 from takluyver/terminal-list
Add terminals tab to the dashboard
2014-11-02 10:46:31 -08:00
MinRK
53ef8e1e1e remove unused OuptutArea.rename_keys 2014-11-01 16:41:12 -07:00
MinRK
d979f4bedd better regex replacement for MarkdownCell.set_heading_level
(c/o Matthias)
2014-11-01 16:41:07 -07:00
MinRK
dd95b1ef5f remove heading cells in v4 2014-11-01 16:41:07 -07:00
MinRK
458dcd12e3 make markdown heading input match output size 2014-11-01 16:41:06 -07:00
MinRK
6ca260e611 output[mime/type] -> output.data[mime/type] in javascript 2014-11-01 16:41:05 -07:00
MinRK
a50042745f semicolons, you guys! 2014-11-01 16:41:05 -07:00
MinRK
09acc6c854 msgspec: stream.data -> stream.text 2014-11-01 16:41:04 -07:00
MinRK
14cfb2efc1 s/prompt_number/execution_count in nbformat 4 2014-11-01 16:41:03 -07:00
MinRK
07079095a8 update html/js to nbformat 4 2014-11-01 16:41:02 -07:00
Thomas Kluyver
d32322e332 Show terminals as terminals/name
Bigger click target
2014-10-31 17:28:51 -07:00
Thomas Kluyver
4025b57ed8 Only display terminals in dashboard if terminals are available 2014-10-31 15:56:53 -07:00
Min RK
1d7f8803e0 use ?download=1 to trigger download in /files/
sets `Content-Disposition: attachment...`

- master sets this unconditionally
- 2.x sets this iff file is a notebook
2014-10-31 15:45:30 -07:00
Thomas Kluyver
65e664b143 Add list of available terminals in the dashboard 2014-10-31 15:42:52 -07:00
Thomas Kluyver
db6cd028ea Merge pull request #6793 from takluyver/langinfo
Move language info from kernelspec to kernel_info_reply
2014-10-30 16:15:19 -07:00
Min RK
965102ba60 Merge pull request #6554 from Carreau/itsallaboutme
Add About IPython
2014-10-30 14:23:16 -07:00
Min RK
5ff9ded54a Merge pull request #6614 from takluyver/nb-terminal-ui
Terminal emulator in the notebook
2014-10-29 12:35:29 -07:00
Mateusz Paprocki
3d825cfbcc Allow to specify CodeMirror's syntax mode as MIME
This is required for e.g. Scala, where the mode is given as
text/x-scala, but the actual implementation is in clike mode.
This wouldn't be an issue, but IPython loads modes lazily, so
you need both mode name and MIME to resolve correct file and
configure CodeMirror.
2014-10-29 16:57:57 +01:00
Jonathan Frederic
ba77877c18 Rebase fixes 2014-10-28 17:55:36 -07:00
Jonathan Frederic
db10ae8f2d s/target_name/widget_class 2014-10-28 16:49:46 -07:00
Jonathan Frederic
3cb5ac6fbb Clarified API for the create_model function,
Also added a test!
2014-10-28 16:49:46 -07:00
Jonathan Frederic
a68df8a8b1 Address @minrk 's review comments. 2014-10-28 16:49:46 -07:00
Jonathan Frederic
fbca0bfa3f Rebase fixes. 2014-10-28 16:49:45 -07:00
Jonathan Frederic
5a655b24da Fixed typo. 2014-10-28 16:49:45 -07:00
Jonathan Frederic
2b5ebb9e8f Make Python push initial state.
Also added initial state push callback.
2014-10-28 16:49:45 -07:00
Jonathan Frederic
e7ee9c12b3 Enable widget instanciation from front-end. 2014-10-28 16:44:02 -07:00
Min RK
b26706ba69 Merge pull request #6800 from takluyver/mdcell-render-event
Add event for Markdown cell rendered
2014-10-27 20:04:26 -07:00
Thomas Kluyver
659accf69e Add event for Markdown cell rendered 2014-10-27 17:39:24 -07:00
Thomas Kluyver
8917e9951e Move terminal CSS into LESS file 2014-10-25 17:15:36 -07:00
Thomas Kluyver
d352d52bd8 Add comment explaining 1.02 factor 2014-10-25 17:15:36 -07:00
Bussonnier Matthias
1b200e5504 recompute dummy size dynamically + styling in css 2014-10-25 17:15:36 -07:00
Thomas Kluyver
9c0084e615 Multiple terminals and conditional initialisation 2014-10-25 17:14:40 -07:00
Thomas Kluyver
d4676bf2ad Terminal basically working
Still need to deal with things like authentication
2014-10-25 17:14:40 -07:00
Thomas Kluyver
d211ebf067 Basic infrastructure for terminal page 2014-10-25 17:14:39 -07:00
Thomas Kluyver
9c7d73a05e Move language info from kernelspec to kernel_info_reply 2014-10-24 16:24:24 -07:00
Thomas Kluyver
a77b5e8e31 Support specifying requirejs modules for comm targets 2014-10-24 12:15:55 -07:00
Thomas Kluyver
031530da42 Support specifying requirejs modules for widget models 2014-10-24 12:14:43 -07:00
Thomas Kluyver
eacd05505c Open download in a new window instead of changing the URL
Closes gh-6764
2014-10-21 14:54:58 -07:00
Jonathan Frederic
79670e8afb Merge pull request #6494 from takluyver/widget-comm-require
Allow widget views to be loaded from require modules
2014-10-21 10:11:41 -07:00
Thomas Kluyver
f0f6c0d29b Merge pull request #6677 from minrk/services
remove unnecessary 'js' subdir from services
2014-10-20 11:21:53 -07:00
Thomas Kluyver
c39939869f Merge pull request #6653 from mattpap/fix_ansispan
Fix IPython.utils.ansispan() to ignore stray [0m
2014-10-20 09:19:00 -07:00
Mateusz Paprocki
61c17c8ef6 Update static/style/{ipython,style}.min.css 2014-10-20 11:25:09 +02:00
MinRK
a67abc297d remove unnecessary 'js' subdir from services
part of the point of services is that they are just code, so they won't have js/less/etc. files.
2014-10-19 15:40:50 -07:00
Matthias Bussonnier
103d5dc9b7 Merge pull request #6720 from takluyver/kernelspec-pygments-lexer
Respect kernelspec metadata for syntax highlighting in nbconvert
2014-10-19 11:11:03 +02:00
Matthias Bussonnier
d269912958 Merge pull request #6110 from minrk/binarycomm
support binary buffers in comm messages
2014-10-19 11:03:24 +02:00
MinRK
7fd161599b cleanup serialize per review 2014-10-18 19:04:57 -07:00
MinRK
ab9e2b496d move grid-float-breakpoint to 540px
collapses navbar before running over to two lines
due to help/indicator collision.
2014-10-18 18:21:07 -07:00
MinRK
e36df49c5f tweak collapsed navbar style
- notification and indicators appear above menu on small screen
- collapsed menu button floats left
2014-10-18 18:21:07 -07:00
MinRK
36cd457b11 move the navbar-collapse transition to xs
avoids stacked navbar on narrow (but not too narrow) windows
2014-10-18 18:21:06 -07:00
Matthias Bussonnier
197c66d0d5 Use native map when possible
Implemented on all modern browser.

There is a small behavior difference between $.map and Array.prototype.map
but we don't rely on it.

(jQuery flatten arrays and filters null-like)
2014-10-18 20:09:34 +02:00
Matthias Bussonnier
7ae250bbeb Merge pull request #6693 from minrk/please-no-jsonp
set contentType='application/json'
2014-10-17 14:17:20 +02:00
Matthias Bussonnier
3b31574971 Merge pull request #6697 from minrk/less-1.7.5
require less >= 1.7.5
2014-10-17 14:15:54 +02:00
Thomas Kluyver
ddbe427dfa Add pygments_lexer key to kernelspec 2014-10-16 15:28:02 -07:00
Matthias Bussonnier
bd8413dfc7 Use low overhead object heritence in Js (Object.create vs new)
the use of

    XX.prototype = new YY();

Does trigger the constructor of YY without the nead for it. `Object.create`
does go around this limitation and target browser that are relatively Old.

Cf https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create

for more info

It might help to get rid of some logic in constructors that check wether some
options are passed in, that were causing errors on noteboko load.  Typically
`if(element){ }` on Abstract  `Cell` constructor.
2014-10-16 21:20:35 +02:00
MinRK
492b80d05f require less >= 1.7.5
fixes bug where `vbox > *` style was applied to `vbox()` classes
2014-10-16 11:07:14 -07:00
Matthias Bussonnier
6766daa397 Merge pull request #6705 from jhamrick/celltoolbar-justify
Right-justify celltoolbar instead of reversing
2014-10-16 17:09:07 +02:00
Matthias Bussonnier
e7c2c369e0 Add about dialog in Notebook Help Menu.
This allow to get info on version of IPython when running remotely.
The about dialog also send a kernel info request and display the banner
which is useful for non-python kernel that don't match IPython version
2014-10-16 17:04:19 +02:00
MinRK
2624f82787 set contentType='application/json'
instead of skipping straight to headers

avoids jQuery's crazy JSONP detection on `=.*??`,
which was triggered because it assumed the contentType was unspecified,
and thus should be guessed based on content.
2014-10-15 16:57:18 -07:00
MinRK
8c743d304f unsigned ints for offsets
because signed ints for sizes is icky
2014-10-15 12:23:33 -07:00
MinRK
11f5775103 test binary websocket messages
only runs on slimerjs for now
2014-10-15 12:23:33 -07:00
MinRK
b548e51550 use TextEncoding for string<->ArrayBuffer
requires text-encoding js polyfill, for now
2014-10-15 12:23:32 -07:00
MinRK
3693ac83ae support binary message from javascript 2014-10-15 12:23:32 -07:00
MinRK
6cef7fcb86 use utf8.js
move message serialization to kernel.serialize module
2014-10-15 12:23:32 -07:00
MinRK
c9c131ebf9 s/unserialize/deserialize 2014-10-15 12:23:32 -07:00
MinRK
3a1c845f96 support buffers in comm messages
- add buffers arg to comm Python api
- support binary websocket messages when buffers are present
- reimplement utf8 in javascript, because javascript is the best
2014-10-15 12:23:31 -07:00
Jessica B. Hamrick
b68507ae91 Display prompt in the notebook correctly 2014-10-15 12:12:07 -07:00
Jessica B. Hamrick
8294a5938b Right-justify celltoolbar instead of reversing 2014-10-15 12:11:48 -07:00
Jonathan Frederic
c0108e1089 Merge pull request #6681 from SylvainCorlay/widget_hbox_align
Minor change in widgets.less to fix alignment issue
2014-10-14 14:33:53 -07:00
Min RK
8107e8a41b Merge pull request #6669 from SylvainCorlay/font_awesome_update
Font awesome update
2014-10-14 11:37:42 -07:00
MinRK
3946dedbda remove redundant 'responsive-utilities' from style.less
it's already included in bootstrap.less
2014-10-13 21:18:24 -07:00
Sylvain Corlay
e9ceb94db1 genereate css 2014-10-13 20:32:01 +00:00
Jonathan Frederic
98cef15a7c Merge pull request #6221 from Carreau/cm4
Switch to CodeMirror 4.6.0
2014-10-13 10:39:03 -07:00
Min RK
1b5874ac65 Merge pull request #6629 from minrk/wscookie
remove on_first_message authentication
2014-10-12 13:25:52 -07:00
Sylvain Corlay
43d08b0795 fix alignment 2014-10-10 23:19:31 -04:00
Matthias Bussonnier
87dc17ccbc cleanup style fixed in separate PR and few other things 2014-10-10 19:21:56 +02:00
Matthias Bussonnier
b24e69b058 cleanup whitespace 2014-10-10 19:21:55 +02:00
Matthias Bussonnier
3de3ef9add add comment about codemirror.modeURL 2014-10-10 19:21:55 +02:00
Matthias Bussonnier
c183aa5fe6 remove unused cm_loadmode 2014-10-10 19:21:55 +02:00
MinRK
8e863d951c use require to load CodeMirror modes
CM's loadmode addon only works if you *don't* load CodeMirror itself with require.
2014-10-10 19:21:55 +02:00
MinRK
7aed2fbb55 fix this.editor reference 2014-10-10 19:21:55 +02:00
Matthias Bussonnier
dc912dbdbd handle somehting selected and multiple cursors and 4 tabs show content in pager 2014-10-10 19:21:50 +02:00
Matthias Bussonnier
e0f19a386e protect agains undefined 2014-10-10 19:18:57 +02:00
Matthias Bussonnier
804d89351b rework keyboard management to avoit completer and up/down bugs 2014-10-10 19:18:56 +02:00
Matthias BUSSONNIER
5b355936df Update to codemirror 4
Update to codemirror 4.6 and update most notebook to work wiht it
this include keyevent that where triggerd twice and the re-writing of
ipython-gfm anf ipython mode to work with require.
2014-10-10 19:18:56 +02:00
Jonathan Frederic
262bf7d2c9 Merge pull request #6673 from jhamrick/fix-tooltip
Fix broken show in pager button
2014-10-10 08:31:25 -07:00
Jessica B. Hamrick
685040427a Fix broken show in pager button 2014-10-09 18:34:22 -07:00
MinRK
624f0071a2 remove on_first_message authentication
in ZMQStreams. No need for weird, special first message.

- use regular cookie auth
- use url param for session id
2014-10-09 15:12:20 -07:00