2023-03-08 06:37:57 +08:00
|
|
|
<div class="h-screen w-full flex flex-col sm:flex-row">
|
|
|
|
<div class="w-full h-full px-4 py-8 bg-gray-900 flex justify-center items-center">
|
|
|
|
<div class="max-w-[400px] w-full flex flex-col">
|
2023-03-21 19:15:11 +08:00
|
|
|
<a href={~p"/"} class="mb-2 -ml-2">
|
|
|
|
<img src={~p"/images/logo.png"} height="96" width="96" alt="livebook" />
|
2023-03-08 06:37:57 +08:00
|
|
|
</a>
|
2023-03-21 19:15:11 +08:00
|
|
|
<div class="mb-2 text-xl text-gray-100 font-medium">
|
2023-03-08 06:37:57 +08:00
|
|
|
Authentication required
|
|
|
|
</div>
|
2023-02-23 02:34:54 +08:00
|
|
|
|
2023-03-21 19:15:11 +08:00
|
|
|
<div class="mb-8 text-sm text-gray-200 space-y-2">
|
|
|
|
<p :if={@auth_mode == :password}>
|
2023-03-08 06:37:57 +08:00
|
|
|
Type password to access the Livebook.
|
2023-03-21 19:15:11 +08:00
|
|
|
</p>
|
|
|
|
<p :if={@auth_mode == :token}>
|
2023-03-08 06:37:57 +08:00
|
|
|
Please check out the console for authentication URL or type the token directly
|
2023-03-21 19:15:11 +08:00
|
|
|
here.
|
|
|
|
</p>
|
|
|
|
<p :if={@auth_mode == :token}>
|
|
|
|
To use password authentication, set the <code>LIVEBOOK_PASSWORD</code>
|
2023-03-08 06:37:57 +08:00
|
|
|
environment variable.
|
2023-03-21 19:15:11 +08:00
|
|
|
</p>
|
2023-03-08 06:37:57 +08:00
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="text-gray-50 w-full">
|
|
|
|
<form method="post" class="flex flex-col w-full">
|
|
|
|
<input type="hidden" value={Phoenix.Controller.get_csrf_token()} name="_csrf_token" />
|
|
|
|
<div phx-feedback-for={@auth_mode} class={[@errors != [] && "show-errors"]}>
|
|
|
|
<input
|
|
|
|
:if={@auth_mode == :password}
|
|
|
|
type="password"
|
|
|
|
name="password"
|
2023-03-21 19:15:11 +08:00
|
|
|
class="px-4 py-2 w-full text-gray-300 placeholder-gray-400 border border-gray-500 rounded-lg bg-transparent phx-form-error:border-red-600 phx-form-error:text-red-600 phx-form-error:placeholder-red-600"
|
2023-03-08 06:37:57 +08:00
|
|
|
placeholder="Password"
|
|
|
|
autofocus
|
|
|
|
/>
|
|
|
|
<input
|
|
|
|
:if={@auth_mode == :token}
|
|
|
|
type="text"
|
|
|
|
name="token"
|
2023-03-21 19:15:11 +08:00
|
|
|
class="px-4 py-2 w-full text-gray-300 placeholder-gray-400 border border-gray-500 rounded-lg bg-transparent phx-form-error:border-red-600 phx-form-error:text-red-600 phx-form-error:placeholder-red-600"
|
2023-03-08 06:37:57 +08:00
|
|
|
placeholder="Token"
|
|
|
|
autofocus
|
|
|
|
/>
|
|
|
|
<span
|
|
|
|
:for={error <- @errors}
|
|
|
|
class="mt-1 hidden text-red-600 text-sm phx-form-error:block"
|
|
|
|
>
|
|
|
|
<%= translate_error(error) %>
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
<button
|
|
|
|
type="submit"
|
2023-03-21 19:15:11 +08:00
|
|
|
class="mt-4 py-2 w-full rounded-lg text-gray-200 bg-blue-600 hover:bg-blue-700 focus:bg-blue-700"
|
2023-02-23 02:34:54 +08:00
|
|
|
>
|
2023-03-08 06:37:57 +08:00
|
|
|
<span>Authenticate</span>
|
|
|
|
<.remix_icon icon="arrow-right-line" class="ml-1 align-middle" />
|
|
|
|
</button>
|
|
|
|
</form>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div
|
2023-03-29 07:02:07 +08:00
|
|
|
:if={@any_public_app? or @empty_apps_path?}
|
2023-03-08 06:37:57 +08:00
|
|
|
class="w-full h-full px-4 py-8 flex justify-center items-center"
|
|
|
|
>
|
|
|
|
<div class="w-full flex flex-col items-center">
|
|
|
|
<div class="text-gray-700 text-xl font-medium">
|
|
|
|
Public apps
|
|
|
|
</div>
|
2023-03-29 07:02:07 +08:00
|
|
|
<div :if={@any_public_app?} class="w-full mt-5 mx-auto max-w-[400px]">
|
|
|
|
<%= live_render(@conn, LivebookWeb.AuthAppListLive) %>
|
2023-03-08 06:37:57 +08:00
|
|
|
</div>
|
|
|
|
<div :if={@empty_apps_path?} class="mt-5 text-gray-600">
|
|
|
|
<div>
|
2023-03-08 20:44:44 +08:00
|
|
|
No app notebooks found. <br />Follow these steps to list your apps here:
|
2023-02-23 02:34:54 +08:00
|
|
|
</div>
|
2023-03-08 06:37:57 +08:00
|
|
|
<ol class="mt-4 pl-4 flex flex-col space-y-1 list-decimal list-inside">
|
|
|
|
<li>
|
|
|
|
Open a notebook
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
Click <.remix_icon icon="rocket-line" class="align-sub text-lg" />
|
2023-03-08 16:32:48 +08:00
|
|
|
in the sidebar and configure the app as public
|
2023-03-08 06:37:57 +08:00
|
|
|
</li>
|
|
|
|
<li>
|
2023-03-08 16:32:48 +08:00
|
|
|
Save the notebook to the
|
2023-03-08 06:37:57 +08:00
|
|
|
<span class="font-medium"><%= Livebook.Config.apps_path() %></span>
|
|
|
|
folder
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
Relaunch your Livebook app
|
|
|
|
</li>
|
|
|
|
</ol>
|
|
|
|
</div>
|
2023-02-23 02:34:54 +08:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|