Packages
livebook
0.9.1
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
Security advisory:
This version has known vulnerabilities.
View advisories
Current section
Files
Jump to
Current section
Files
lib/livebook_web/live/session_live/code_cell_settings_component.ex
defmodule LivebookWeb.SessionLive.CodeCellSettingsComponent do
use LivebookWeb, :live_component
alias Livebook.Session
@impl true
def update(assigns, socket) do
cell = assigns.cell
socket =
socket
|> assign(assigns)
|> assign_new(:disable_formatting, fn -> cell.disable_formatting end)
|> assign_new(:reevaluate_automatically, fn -> cell.reevaluate_automatically end)
|> assign_new(:continue_on_error, fn -> cell.continue_on_error end)
{:ok, socket}
end
@impl true
def render(assigns) do
~H"""
<div class="p-6 flex flex-col space-y-8">
<h3 class="text-2xl font-semibold text-gray-800">
Cell settings
</h3>
<form phx-submit="save" phx-target={@myself}>
<div class="w-full flex-col space-y-6">
<.switch_field
name="enable_formatting"
label="Format code when saving to file"
value={not @disable_formatting}
/>
</div>
<div class="w-full flex-col space-y-6 mt-4">
<.switch_field
name="reevaluate_automatically"
label="Reevaluate automatically"
value={@reevaluate_automatically}
/>
</div>
<div class="w-full flex-col space-y-6 mt-4">
<.switch_field
name="continue_on_error"
label="Continue on error"
value={@continue_on_error}
/>
</div>
<div class="mt-8 flex justify-begin space-x-2">
<button class="button-base button-blue" type="submit">
Save
</button>
<.link patch={@return_to} class="button-base button-outlined-gray">
Cancel
</.link>
</div>
</form>
</div>
"""
end
@impl true
def handle_event(
"save",
%{
"enable_formatting" => enable_formatting,
"reevaluate_automatically" => reevaluate_automatically,
"continue_on_error" => continue_on_error
},
socket
) do
disable_formatting = enable_formatting == "false"
reevaluate_automatically = reevaluate_automatically == "true"
continue_on_error = continue_on_error == "true"
Session.set_cell_attributes(socket.assigns.session.pid, socket.assigns.cell.id, %{
disable_formatting: disable_formatting,
reevaluate_automatically: reevaluate_automatically,
continue_on_error: continue_on_error
})
{:noreply, push_patch(socket, to: socket.assigns.return_to)}
end
end