Packages
livebook
0.10.0
0.19.8
0.19.7
0.19.6
0.19.5
0.19.4
0.19.3
0.19.2
0.19.1
0.19.0
0.18.6
0.18.5
0.18.4
0.18.3
0.18.2
0.18.1
0.18.0
0.17.3
0.17.2
0.17.1
0.17.0
0.16.4
0.16.3
0.16.2
0.16.1
0.16.0
0.15.5
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.7
0.14.6
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.14.0-rc.1
0.14.0-rc.0
0.13.3
0.13.2
0.13.1
0.13.0
0.12.1
0.12.0
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.8.2
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.3
0.6.2
0.6.1
0.6.0
0.5.2
0.5.1
0.5.0
0.4.1
0.4.0
0.3.2
0.3.1
0.3.0
0.2.3
0.2.2
0.2.1
0.2.0
0.1.2
0.1.1
0.1.0
Automate code & data workflows with interactive notebooks
Current section
Files
Jump to
Current section
Files
lib/livebook_web/live/settings_live/file_systems_component.ex
defmodule LivebookWeb.SettingsLive.FileSystemsComponent do
use LivebookWeb, :live_component
alias Livebook.FileSystem
@impl true
def render(assigns) do
~H"""
<div class="flex flex-col space-y-4">
<div class="flex flex-col space-y-4">
<div
:for={file_system <- @file_systems}
class="flex items-center justify-between border border-gray-200 rounded-lg p-4"
>
<div class="flex items-center space-x-12">
<.file_system_info file_system={file_system} />
</div>
<.file_system_actions
file_system_id={file_system.id}
default_file_system_id={@default_file_system_id}
/>
</div>
</div>
<div class="flex">
<.link patch={~p"/settings/add-file-system"} class="button-base button-blue">
Add file system
</.link>
</div>
</div>
"""
end
defp file_system_info(%{file_system: %FileSystem.Local{}} = assigns) do
~H"""
<.labeled_text label="Type">Local disk</.labeled_text>
"""
end
defp file_system_info(%{file_system: %FileSystem.S3{}} = assigns) do
~H"""
<.labeled_text label="Type">S3</.labeled_text>
<.labeled_text label="Bucket URL"><%= @file_system.bucket_url %></.labeled_text>
"""
end
defp file_system_actions(assigns) do
~H"""
<div class="flex items-center space-x-2">
<span
:if={@default_file_system_id == @file_system_id}
class="inline-flex items-center font-sans rounded-full px-2.5 py-0.5 text-xs font-medium bg-gray-100 bg-gray-100 text-gray-800"
>
Default
</span>
<.menu
:if={@default_file_system_id != @file_system_id or @file_system_id != "local"}
id={"file-system-#{@file_system_id}-menu"}
>
<:toggle>
<button class="icon-button" aria-label="open file system menu" type="button">
<.remix_icon icon="more-2-fill" class="text-xl" />
</button>
</:toggle>
<.menu_item>
<button
:if={@default_file_system_id != @file_system_id}
type="button"
role="menuitem"
phx-click="make_default_file_system"
phx-value-id={@file_system_id}
>
<.remix_icon icon="star-line" />
<span>Make default</span>
</button>
</.menu_item>
<.menu_item variant={:danger}>
<button
:if={@file_system_id != "local"}
type="button"
role="menuitem"
class="text-red-600"
phx-click={JS.push("detach_file_system", value: %{id: @file_system_id})}
>
<.remix_icon icon="delete-bin-line" />
<span>Detach</span>
</button>
</.menu_item>
</.menu>
</div>
"""
end
end