mirror of
https://github.com/livebook-dev/livebook.git
synced 2024-09-22 02:45:59 +08:00
8e6558a83a
* Introduce file system abstraction and an S3 implementation * Support arbitrary absolute paths and delegate resolution to file system * Remove accidental notebook file * Apply suggestions from code review Co-authored-by: José Valim <jose.valim@dashbit.co> * Apply review comments * Add missing path assertions * Apply review comments * Fix test saving notebook in project root Co-authored-by: José Valim <jose.valim@dashbit.co>
46 lines
1.4 KiB
Elixir
46 lines
1.4 KiB
Elixir
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">
|
|
<%= for {file_system, index} <- Enum.with_index(@file_systems) do %>
|
|
<div 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>
|
|
<%= unless is_struct(file_system, FileSystem.Local) do %>
|
|
<%= live_patch "Detach",
|
|
to: Routes.settings_path(@socket, :detach_file_system, index),
|
|
class: "button button-outlined-red" %>
|
|
<% end %>
|
|
</div>
|
|
<% end %>
|
|
</div>
|
|
<div class="flex">
|
|
<%= live_patch "Add file system",
|
|
to: Routes.settings_path(@socket, :add_file_system),
|
|
class: "button button-blue" %>
|
|
</div>
|
|
</div>
|
|
"""
|
|
end
|
|
|
|
defp file_system_info(%{file_system: %FileSystem.Local{}} = assigns) do
|
|
~H"""
|
|
<.labeled_text label="Type" text="Local disk" />
|
|
"""
|
|
end
|
|
|
|
defp file_system_info(%{file_system: %FileSystem.S3{}} = assigns) do
|
|
~H"""
|
|
<.labeled_text label="Type" text="S3" />
|
|
<.labeled_text label="Bucket URL" text={@file_system.bucket_url} />
|
|
"""
|
|
end
|
|
end
|