mirror of
https://github.com/livebook-dev/livebook.git
synced 2024-09-20 10:05:57 +08:00
Change new notebook button to link (#2036)
This commit is contained in:
parent
27458f33f7
commit
fb9148acf7
|
@ -692,7 +692,7 @@ Now we have everything we need to connect across notebooks.
|
|||
|
||||
### Notebook connections
|
||||
|
||||
In order to connect across notebooks, open up [a new empty notebook](/learn/notebooks/new)
|
||||
In order to connect across notebooks, open up [a new empty notebook](/new)
|
||||
in a separate tab, copy and paste the code below to this new notebook,
|
||||
and execute it:
|
||||
|
||||
|
|
|
@ -157,7 +157,7 @@ defmodule LivebookCLI.Server do
|
|||
|
||||
defp open_from_args(base_url, ["@new"]) do
|
||||
base_url
|
||||
|> set_path("/learn/notebooks/new")
|
||||
|> set_path("/new")
|
||||
|> Livebook.Utils.browser_open()
|
||||
end
|
||||
|
||||
|
|
|
@ -48,10 +48,10 @@ defmodule LivebookWeb.HomeLive do
|
|||
<.link navigate={~p"/open/file"} class="button-base button-outlined-gray whitespace-nowrap">
|
||||
Open
|
||||
</.link>
|
||||
<button class="button-base button-blue" phx-click="new">
|
||||
<.link class="button-base button-blue" patch={~p"/new"}>
|
||||
<.remix_icon icon="add-line" class="align-middle mr-1" />
|
||||
<span>New notebook</span>
|
||||
</button>
|
||||
</.link>
|
||||
</div>
|
||||
</:topbar_action>
|
||||
|
||||
|
@ -68,10 +68,10 @@ defmodule LivebookWeb.HomeLive do
|
|||
>
|
||||
Open
|
||||
</.link>
|
||||
<button class="button-base button-blue" phx-click="new">
|
||||
<.link class="button-base button-blue" patch={~p"/new"}>
|
||||
<.remix_icon icon="add-line" class="align-middle mr-1" />
|
||||
<span>New notebook</span>
|
||||
</button>
|
||||
</.link>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -225,13 +225,13 @@ defmodule LivebookWeb.HomeLive do
|
|||
{:noreply, assign(socket, session: session)}
|
||||
end
|
||||
|
||||
def handle_params(_params, _url, socket), do: {:noreply, socket}
|
||||
|
||||
@impl true
|
||||
def handle_event("new", %{}, socket) do
|
||||
def handle_params(%{}, _url, socket) when socket.assigns.live_action == :public_new_notebook do
|
||||
{:noreply, create_session(socket)}
|
||||
end
|
||||
|
||||
def handle_params(_params, _url, socket), do: {:noreply, socket}
|
||||
|
||||
@impl true
|
||||
def handle_event("unstar_notebook", %{"idx" => idx}, socket) do
|
||||
on_confirm = fn socket ->
|
||||
%{file: file} = Enum.fetch!(socket.assigns.starred_notebooks, idx)
|
||||
|
|
|
@ -116,10 +116,6 @@ defmodule LivebookWeb.LearnLive do
|
|||
end
|
||||
|
||||
@impl true
|
||||
def handle_params(%{"slug" => "new"}, _url, socket) do
|
||||
{:noreply, create_session(socket)}
|
||||
end
|
||||
|
||||
def handle_params(%{"slug" => slug}, _url, socket) do
|
||||
{notebook, images} = Learn.notebook_by_slug!(slug)
|
||||
{:noreply, create_session(socket, notebook: notebook, images: images)}
|
||||
|
|
|
@ -101,6 +101,7 @@ defmodule LivebookWeb.Router do
|
|||
scope "/", LivebookWeb do
|
||||
pipe_through [:browser, :auth]
|
||||
|
||||
live "/new", HomeLive, :public_new_notebook
|
||||
live "/import", OpenLive, :public_import
|
||||
live "/open", OpenLive, :public_open
|
||||
end
|
||||
|
|
|
@ -18,7 +18,7 @@ defmodule LivebookWeb.HomeLiveTest do
|
|||
|
||||
assert {:error, {:live_redirect, %{to: to}}} =
|
||||
view
|
||||
|> element(~s/[role="navigation"] button/, "New notebook")
|
||||
|> element(~s/[role="navigation"] a/, "New notebook")
|
||||
|> render_click()
|
||||
|
||||
assert to =~ "/sessions/"
|
||||
|
@ -26,6 +26,15 @@ defmodule LivebookWeb.HomeLiveTest do
|
|||
close_session_by_path(to)
|
||||
end
|
||||
|
||||
test "public new endpoint creates an empty session", %{conn: conn} do
|
||||
assert {:error, {:live_redirect, %{to: to}}} = result = live(conn, ~p"/new")
|
||||
{:ok, view, _} = follow_redirect(result, conn)
|
||||
|
||||
assert render(view) =~ "Untitled notebook"
|
||||
|
||||
close_session_by_path(to)
|
||||
end
|
||||
|
||||
describe "sessions list" do
|
||||
test "lists running sessions", %{conn: conn} do
|
||||
{:ok, session1} = Sessions.create_session()
|
||||
|
|
|
@ -19,15 +19,6 @@ defmodule LivebookWeb.LearnLiveTest do
|
|||
close_session_by_path(to)
|
||||
end
|
||||
|
||||
test "link to a new notebook creates an empty session", %{conn: conn} do
|
||||
assert {:error, {:live_redirect, %{to: to}}} = result = live(conn, ~p"/learn/notebooks/new")
|
||||
{:ok, view, _} = follow_redirect(result, conn)
|
||||
|
||||
assert render(view) =~ "Untitled notebook"
|
||||
|
||||
close_session_by_path(to)
|
||||
end
|
||||
|
||||
defp close_session_by_path("/sessions/" <> session_id) do
|
||||
{:ok, session} = Livebook.Sessions.fetch_session(session_id)
|
||||
Livebook.Session.close(session.pid)
|
||||
|
|
Loading…
Reference in a new issue