Commit graph

655 commits

Author SHA1 Message Date
Jonatan Kłosko
ac5a71bf85
Show a message when JS view data is not available (#1067)
* Multiplex initialization of JS views

* Show timeout message when JS view data fails to load

* Refactor JS view channel

* Update tests
2022-03-22 18:25:42 +01:00
Jonatan Kłosko
01b9ffe731
Keep binding in reversed evaluation order (#1065)
* Keep binding in reversed evaluation order

* Treat rebound names as new

* Add test for the default order

* Optimise binding reorder

* Update lib/livebook/runtime/evaluator.ex

Co-authored-by: José Valim <jose.valim@dashbit.co>

* Apply review comments

Co-authored-by: José Valim <jose.valim@dashbit.co>
2022-03-21 19:23:43 +01:00
Jonatan Kłosko
0145d68593
Limit standard output to last 1000 lines (#1063) 2022-03-19 12:22:36 +01:00
Jonatan Kłosko
becdda61f7
Support optional reevaluation on smart cell update (#1062) 2022-03-18 19:36:48 +01:00
Jonatan Kłosko
829493822e
Group LV helpers (#1061) 2022-03-17 23:33:18 +01:00
Jonatan Kłosko
d72cb5db03
Mark sections as branching in VegaLite introductory notebook (#1059) 2022-03-17 23:33:10 +01:00
Jonatan Kłosko
afce2e6047
Prevent smart cell menu from overlapping with insert buttons (#1060) 2022-03-17 21:44:40 +01:00
Wojtek Mach
cb7f51726a
Fix macOS menu bar (#1057) 2022-03-17 20:32:59 +01:00
Jonatan Kłosko
b3b79afed4
Refactor JS hooks (#1055)
* Restructure hook files

* Simplify app.js

* Refactor hooks

* Implement password toggle with JS commands
2022-03-16 11:33:53 +01:00
Jonatan Kłosko
6db36ea7e6
Add support for smart cell editor (#1050)
* Add support for smart cell editor

* Log an error when smart cell fails to start
2022-03-14 22:19:56 +01:00
Jakub Perżyło
4061aa150d
Add autosave path configuration (#1019)
* Added autosave path configuration

* Update settings.ex

* Adjusted to review

* Apply suggestions from code review

Co-authored-by: José Valim <jose.valim@gmail.com>

* Adjusted to review

* Adjusted to review

Co-authored-by: José Valim <jose.valim@gmail.com>
2022-03-13 16:22:52 +01:00
Jonatan Kłosko
ea8b7c2d15
Add support for scanning smart cell evaluation result (#1048)
* Add support for scanning smart cell evaluation result

* Don't allow moving an evaluating cell across sections

* Use consistent naming
2022-03-08 11:10:37 +01:00
Jonatan Kłosko
6b78258713
Add support for scanning evaluation context from smart cells (#1041)
* Add support for scanning evaluation context from smart cells

* Rename prev_locator to base_locator to clarify the meaning

* Adjustments

* Add data tests

* Adjustments

* Test smart cell intearaction with RuntimeServer

* Serialize binding scanning and leave sending to the user

* Monitor the scanning process
2022-03-05 13:19:42 +01:00
Jonatan Kłosko
8bb8160605 Skip padding when encoding the confirmation modal id 2022-03-03 02:13:47 +01:00
Cristine Guadelupe
88747c1790
Typo: report smart cell definitions function name (#1038) 2022-03-02 16:40:16 -03:00
Jonatan Kłosko
e27ff5a960
Rename Elixir cell to Code cell (#1035) 2022-03-02 12:48:02 +01:00
Jonatan Kłosko
aaeac6bb95
Add an action converting smart cell to elixir cell (#1030)
* Add an action converting smart cell to elixir cell

* Simplify tests setup

* Add confirmation

* Update lib/livebook_web/live/session_live/cell_component.ex

Co-authored-by: José Valim <jose.valim@dashbit.co>

Co-authored-by: José Valim <jose.valim@dashbit.co>
2022-03-02 12:13:44 +01:00
Wojtek Mach
29f0f54bbd
Desktop app packaging for Windows (#1032) 2022-03-02 12:06:30 +01:00
Wojtek Mach
59e4713008 Expand path before opening it (another attempt)
See: 864624ad2c
2022-03-02 11:53:02 +01:00
Wojtek Mach
864624ad2c Expand path before opening it
Say we have this path on Windows: `C:/Users/wojtek/foo.livemd`. Opening
it: (ignore it's not escaped)

    http://localhost:4000/open?path=C:/Users/wojtek/foo.livemd

would have failed with:

    ** (ArgumentError) expected an expanded absolute path, got: "C:/Users/wojtek/foo.livemd"

and that's because absolute paths (in other words, Path expanded) start
with `c:/`, not `C:/`.
2022-03-02 11:37:07 +01:00
Jonatan Kłosko
1dc7c43b70
Simplify user modals (#1034)
* Simplify user modals

* Naming
2022-03-02 00:43:06 +01:00
Jonatan Kłosko
d191b7eb9d
Set up confirmation modals (#1033)
* Set up confirmation modals

* Add temporary fix for the global hook remount
2022-03-02 00:26:40 +01:00
Jonatan Kłosko
9d7fe44253
Introduce smart cells (#1029)
* Introduce smart cells

* Apply review comments
2022-02-28 13:53:33 +01:00
José Valim
3622d0ee4b
Provide better stacktraces on recent Elixir+OTP versions (#1028) 2022-02-24 19:19:22 +01:00
Jonatan Kłosko
f5c99737dd
Simplify the forwarding IO device (#1024) 2022-02-23 20:47:24 +01:00
Jonatan Kłosko
4f61639fba Use System.os_time/0 for ordering file systems 2022-02-22 23:09:54 +01:00
Jakub Perżyło
4fcdeb6bcf
Changed filesystems config manipulation to use ids (#1017)
* Changed filesystems mainpulation to use ids

* Adjusted to review

* Added filesystem ordering

* Apply suggestions from code review

* Format

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2022-02-22 22:42:54 +01:00
Jonatan Kłosko
ca0128d028
Remove leftovers in case assets extraction fails (#1020) 2022-02-22 01:01:04 +01:00
Jonatan Kłosko
0386a032a1
Reinitialize hooks on reconnection (#1018)
* Reinitialize cells on reconnection

* Send initial session data without additional roundtrip
2022-02-21 20:39:29 +01:00
José Valim
3bc219e5d8
Bring path verification and add normalization (#1016)
* Bring path verification and add normalization

* Normalize user home

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2022-02-21 13:18:17 +01:00
José Valim
7050180242 Resolve paths instead of raising 2022-02-21 08:08:24 +01:00
Jonatan Kłosko
797befe28f Fix undesired scrollbar on the homepage 2022-02-19 01:30:08 +01:00
Kevin
4fac98e069
Fix double slashes in URL for new (#1013)
* Fix double slashes in URL for `new`

* Fix formatting

* Rename to append_path/2 to set_path/2
2022-02-18 20:57:03 +01:00
Jonatan Kłosko
fb9c4fbef8
Don't open browser after starting the server unless explicitly asked (#1011) 2022-02-18 17:27:36 +01:00
Cristine Guadelupe
d775908a48
Adds role button to cell link button (#1010) 2022-02-17 23:39:38 -03:00
Cristine Guadelupe
b32b363ed1
Improves cell accessibility (#1009)
* Reads the output after a cell has been evaluated

* Creates SR landmarks when errors happen

* fixes formatting

* Reads a clearer message when a runtime restart is required

* Update lib/livebook_web/live/session_live/cell_component.ex

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2022-02-17 19:37:14 -03:00
Cristine Guadelupe
72da7da3b5
Live region for home page (#1007)
* Live region on home

* Live region: bulk actions

* Live region: ordered by info

* Makes the live region helper global
2022-02-16 15:50:32 -03:00
José Valim
71319246c4
Write to file out-of-band (#1006)
* Write to file out-of-band

It won't block the immediate write but it may block
a subsequent write. A sync function was added for
testing purposes.

* Update lib/livebook/storage/ets.ex

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2022-02-15 21:17:43 +01:00
José Valim
a5a1a54f19
Log and use more clearer name for table (#1005) 2022-02-15 20:29:58 +01:00
Jakub Perżyło
48f72a003a
ETS config file persistence (#1002)
* Added Ets config storage file persistence

* Adjusted to review

* Adjusted to review

* Removed redundant code

* Update lib/livebook/storage/ets.ex

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2022-02-15 19:28:14 +01:00
José Valim
2c271e2efb
Create home and data_path directories if missing (#1003)
* Create home and data_path directories if missing

* Update lib/livebook/config.ex

* Configure project-local data path for dev and test env

* Expand dev/test paths in compile config

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2022-02-14 22:19:06 +01:00
Cristine Guadelupe
2f9dd73a7b
New bin modal (#997)
* New empty bin modal

* New bin modal

* Smaller buttons

* Conditional rendering improvements
2022-02-11 09:49:00 -03:00
Jonatan Kłosko
fb0c96fa99
Speed up tests (#996)
* Close sessions created during tests

* Change live_patch to live_redirect where applicable
2022-02-10 15:36:59 +01:00
Jonatan Kłosko
ca27bb157f
Refactoring (#994)
* Group all runtime messages under a common prefix

* Move output specification ot the Runtime protocol

* Update doc comments

* Livebook.Evaluator -> Livebook.Runtime.Evaluator

* Livebook.ContentLoader -> Livebook.Notebook.ContentLoader

* Livebook.UniqueTask -> Livebook.Utils.UniqueTask

* Add import/export delegates to Livebook.LiveMarkdown
2022-02-10 12:15:41 +01:00
Wojtek Mach
1d03f59d2e
Switch importing to opening files in the desktop app (#995) 2022-02-10 11:54:42 +01:00
Jonatan Kłosko
7f19afe7af
Fastlane JS channel events (#993)
* Fastlane JS channel events

* Abstract fastlaning to separate concerns
2022-02-09 23:15:03 +01:00
Jonatan Kłosko
19b777eb4e
Handle runtime event broadcast in a separate worker process (#992)
* Handle runtime event broadcast in a separate worker process

* Improve wording
2022-02-09 19:47:26 +01:00
Adam Lancaster
c972b195c5
Increase timeout for connecting via Mix standalone (#846)
* Increase timeout for connecting via Mix standalone

I have hit this timeout when connecting via mix to a fairly large
application. Increasing this fixes it for my use case.

* Update lib/livebook/runtime/standalone_init.ex

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2022-02-08 15:22:38 +01:00
Jonatan Kłosko
e5e13d86c2
Serve iframes from another local port when running on http (#989)
* Serve iframes from another local port when running on http

* Use relative hostname in local iframe URL

* Simplify server start check

* Use random iframe port when Livebook runs on a random port

* Rename space/ to iframe/

* LivebookWeb.IframePlug -> LivebookWeb.IframeEndpoint
2022-02-08 14:45:58 +01:00
Jonatan Kłosko
ccc64876a8
Add support for widget binary payloads (#982)
* Add support for widget binary payloads

* Migrate LV auth to a separate hook

* Properly set user buffer when encoding
2022-02-07 21:03:25 +01:00