* Add password input
* Save empty string for password in .livemd file
* Update lib/livebook_web/live/session_live/cell_component.ex
* Changed radio button it to select
* Changed radio button it to select
* Moved select it to the top
* Keep the elements in the select ordered
* Update lib/livebook_web/helpers.ex
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
* Update lib/livebook_web/live/session_live/input_cell_settings_component.ex
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
* Update lib/livebook_web/live/session_live/input_cell_settings_component.ex
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
* Add textarea input
* Add textarea input
* Added operation in the io_proxy to IO.getn
* Update lib/livebook/evaluator/io_proxy.ex
Co-authored-by: José Valim <jose.valim@gmail.com>
* Update lib/livebook_web/live/session_live/cell_component.ex
Co-authored-by: José Valim <jose.valim@gmail.com>
* Update lib/livebook_web/live/session_live/cell_component.ex
Co-authored-by: José Valim <jose.valim@gmail.com>
* Support for utf8 characters in getn function
* Support for utf8 characters in getn function
* Perform test with special characters
* Accepting latin1 and unicode values
* Update lib/livebook/evaluator/io_proxy.ex
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
* Added split_at function for better performance
* Update lib/livebook/evaluator/io_proxy.ex
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
Co-authored-by: José Valim <jose.valim@gmail.com>
* Display the time in seconds
Show the evaluation time next to the cell indicator
* Test session data
* Send evaluation time to session
Start the evaluation time inside the evaluator, display the time in seconds
or milliseconds.
The output is not a string but a map
* Add metadata to evaluation_response
* Wrap the evaluation indicator in a tooltip
• Add metadata argument to the evaluation_response message
• Use a tooltip to display the evaluation time
* Display the toolip below the indicator
* Remove the evaluation start time
* Make the tooltip optional
* Rename finish_cell_evaluation
* Evaluator tests
* Update test to accespt metadata
* Pass the evaluated time as a third argument
* Make status tooltip more generic
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
* Add support for Mix runtime as a default
* Support default runtime options in the CLI
* Set cell status to queued while runtime is being started
* Clean up tests
* Render basic input
* Make each cell type a separate struct
* Add operation to set input value
* Prototype communication
* Make input name editable
* Refactoring
* Unify cell attribute setters
* IO tests
* Document input communication protocol in Runtime
* Add more tests
* Add persistence
* Fix status update on cell attributes change
* Rework persistence
* Integrate input cell with insert mode
* Add missing users keybinding
* Mimic autofocus for dynamically inserted elements
* Support input type selection
* Support URL input and set up validation
* Convert input error into a more meaningful io error
* Add missing client checks
* Consume every input only once per evaluation
* Fixes
* Add explore page
* Move sidebar to a configurable component
* Fix homepage test
* Add images
* Store example notebooks in files and make explore notebooks linkable
* Fix tests
* Raise on invalid notebook slug
* Keep just the file contents in notebook info
* Move notebook lookup to Explore
* Exclude notebooks in progress
Because we unregistered standard_error, if there
was an error booting livebook, we would fail to
print the error. This commit makes sure the original
standard error is added back whenever the proxy
process terminates.
* Delegate output formatting rules to Kino
* Update naming
* Group output components and views
* Fallback to inspect when Kino.Render.to_output/1 fails
* Update naming
* Add reference to Kino
* Add support for LiveWidget.VegaLite
* LiveWidget -> Kino
* Show an error when rendering unsupported Kino widget
* Match on Kino.Widget
* Add catch-all for unknown outputs
* Change anchor tags for sections to be based on the titles, not randomly generated
* Update lib/livebook_web/helpers.ex
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
* Optimise data view recomputation for delta operations
* Use generic access_by_id/1 for nested updates
* Use access_by_id/1 for nested notebook updates
* Use Enum.split_while
* Add embedded runtime for evaluating code in the Livebook VM
* Update lib/livebook_web/live/session_live/embedded_live.ex
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Use standard error proxy globally in the Livebook node
* Add configuration env variable for setting the default runtime
* Increase evaluation response assertion timeouts
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Add initial user config modal
* Assign user ids
* Update session data to hold user ids
* Get users list for specific ids
* Render user avatar
* User update
* Refactor user changes
* Subscribe to individual user updates
* Show users in side panel
* Add sidebar to homepage
* Don't generate the same color twice in a row
* Add documentation notes
* Fix tests
* Add tests
* Keep users in session data
* Rename color to hex_color
* Set up importing notebook from URL or clipboard
* Extract loading functions into separate module
* Replace import icon with text
* Add TLS peer verification
* Remove unnecessary tests setup step
* Force menu items into a single line
* Add shortcut for saving the notebook
* Make the disk icon always show file dialog
* Split runtime and file settings into separate modals
* Add ctrl+s to the shortcuts list
* Add togglable menu to the session page
* Make sure newly saved file appears in the file selector
* Fix path seletor force reloading
* Remove notebook generated in tests
* Add test for file list refresh after save
This ignores "\e(B" which sometimes shows up even when the other RFC
1468 Japanese character set switch codes aren't used. This also updates
defmodifier so that it can be used with non-CSI escape codes (the
ones that start with '[').
* Allow server-side re-ordering of sections
* `Livebook.Notenook.move_section` definition
* Management and implementation of requests
* tests
This commit allows a person to send a request to the server to move a
section. However, the functionality in not yet available in the UI.
* Allow "Move up" and "Move down" functionality for sections
* Rendering of up and down "arrows" at Section's side
* Request from UI on click
This commit enables a user to move a section upwards or downwards, much
like a cell. However, after the section moves, the focus is not changed
to it.
* Apply formatting
* Define a function to update cell status
* Defines a common function for `move_cell` and `move_section` to use to
update cell status.
* Buffer IO evaluation output
* Respect CR in IOProxy
* Handle CR when adding cell output rather than during each render
* Optimise CR handling in buffer
* Add token authentication
* Restructure CLI
* Allow port configuration
* Further refactoring
* Make sure livebook node starts with unique name
* Improve startup error handling
* Further refactoring
* Add authentication tests
* Add authentication view for entering the token
* Fix auth tests
* Always use random Livebook name for distribution
* Don't enable ANSI on Windows
* Define CLI Task behaviour and move generic logic to the main module
* Generalize convertion from cli arguments to configuration
* Randomly generate secret key base
* Update test/livebook_web/plugs/auth_plug_test.exs
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Override app config in persistent manner
* Update lib/litebook_cli.ex
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Move auth error to ErrorView
* Unify node name configuration and allow it via CLI
* Set all applications configs at once
* Move token generation to application.ex to work outside CLI
* Clean up overriding configuration
* Store auth token in separate cookies
* Update lib/livebook_cli/server.ex
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Update lib/livebook_web/endpoint.ex
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Update lib/livebook_web/plugs/auth_plug.ex
Co-authored-by: José Valim <jose.valim@dashbit.co>
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Add cell image upload modal
* Add controller for serving the images and handle this on markdown side
* Use per-session images dir
* Add etag header to session image responses
* Adjust markdown image styling
* Properly manage session images dir
* Add tests
* Set maximum file size for image uploads
* Move images dir specifics to the Session module
* Move images when nonpersistent session becomes persistent
* Update lib/livebook_web/live/session_live.ex
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Update lib/livebook_web/live/session_live.ex
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Update lib/livebook_web/live/session_live/cell_upload_component.ex
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Test that close gets rid of session temporary dir
Co-authored-by: José Valim <jose.valim@dashbit.co>