update org settings layout

This commit is contained in:
Graham McIntire 2026-02-01 17:42:14 -06:00
parent 1414f087fc
commit a48cb292da
No known key found for this signature in database
2 changed files with 26 additions and 8 deletions

View file

@ -38,6 +38,16 @@ defmodule ToweropsWeb.Org.SettingsLive do
{:noreply, assign(socket, :form, to_form(changeset))}
end
@impl true
def handle_event("toggle_mikrotik", _params, socket) do
current_value = Phoenix.HTML.Form.input_value(socket.assigns.form, :mikrotik_enabled)
new_value = !current_value
changeset = Organizations.change_organization(socket.assigns.organization, %{"mikrotik_enabled" => new_value})
{:noreply, assign(socket, :form, to_form(changeset))}
end
@impl true
def handle_event("save", %{"organization" => org_params}, socket) do
case Organizations.update_organization(socket.assigns.organization, org_params) do

View file

@ -19,7 +19,7 @@
</p>
</div>
<.form for={@form} id="organization-form" phx-change="validate" phx-submit="save">
<.form for={@form} id="organization-form" phx-submit="save" data-1p-ignore data-form-type="other">
<div class="divide-y divide-gray-200 dark:divide-white/10">
<!-- Organization Name Section -->
<div class="grid max-w-7xl grid-cols-1 gap-x-8 gap-y-10 px-4 py-16 sm:px-6 md:grid-cols-3 lg:px-8">
@ -167,7 +167,7 @@
</p>
</div>
<div class="md:col-span-2">
<div class="md:col-span-2" phx-update="replace" id="mikrotik-config-section">
<div class="grid grid-cols-1 gap-x-6 gap-y-8 sm:max-w-xl sm:grid-cols-6">
<div class="col-span-full">
<div class="flex items-center gap-x-3">
@ -176,6 +176,7 @@
name={@form[:mikrotik_enabled].name}
id="mikrotik_enabled"
checked={@form[:mikrotik_enabled].value}
phx-click="toggle_mikrotik"
class="h-4 w-4 rounded border-gray-300 text-indigo-600 focus:ring-indigo-600 dark:border-white/10 dark:bg-white/5 dark:focus:ring-indigo-500"
/>
<label
@ -189,7 +190,7 @@
<div class={"col-span-full #{unless @form[:mikrotik_enabled].value, do: "hidden"}"}>
<label
for="mikrotik_username"
for="mikrotik_api_user"
class="block text-sm/6 font-medium text-gray-900 dark:text-white"
>
Username
@ -197,10 +198,12 @@
<div class="mt-2">
<input
type="text"
name={@form[:mikrotik_username].name}
id="mikrotik_username"
name="organization[mikrotik_username]"
id="mikrotik_api_user"
value={@form[:mikrotik_username].value}
placeholder="e.g., admin"
autocomplete="off"
data-1p-ignore
class="block w-full rounded-md bg-white px-3 py-1.5 text-base text-gray-900 outline-1 -outline-offset-1 outline-gray-300 placeholder:text-gray-400 focus:outline-2 focus:-outline-offset-2 focus:outline-indigo-600 sm:text-sm/6 dark:bg-white/5 dark:text-white dark:outline-white/10 dark:placeholder:text-gray-500 dark:focus:outline-indigo-500"
/>
</div>
@ -208,7 +211,7 @@
<div class={"col-span-full #{unless @form[:mikrotik_enabled].value, do: "hidden"}"}>
<label
for="mikrotik_password"
for="mikrotik_api_secret"
class="block text-sm/6 font-medium text-gray-900 dark:text-white"
>
Password
@ -216,10 +219,13 @@
<div class="mt-2">
<input
type="password"
name={@form[:mikrotik_password].name}
id="mikrotik_password"
name="organization[mikrotik_password]"
id="mikrotik_api_secret"
value={@form[:mikrotik_password].value}
placeholder="RouterOS API password"
autocomplete="off"
data-1p-ignore
data-lpignore="true"
class="block w-full rounded-md bg-white px-3 py-1.5 text-base text-gray-900 outline-1 -outline-offset-1 outline-gray-300 placeholder:text-gray-400 focus:outline-2 focus:-outline-offset-2 focus:outline-indigo-600 sm:text-sm/6 dark:bg-white/5 dark:text-white dark:outline-white/10 dark:placeholder:text-gray-500 dark:focus:outline-indigo-500"
/>
</div>
@ -239,6 +245,8 @@
id="mikrotik_port"
value={@form[:mikrotik_port].value}
placeholder="8729"
autocomplete="off"
data-1p-ignore
class="block w-full rounded-md bg-white px-3 py-1.5 text-base text-gray-900 outline-1 -outline-offset-1 outline-gray-300 placeholder:text-gray-400 focus:outline-2 focus:-outline-offset-2 focus:outline-indigo-600 sm:text-sm/6 dark:bg-white/5 dark:text-white dark:outline-white/10 dark:placeholder:text-gray-500 dark:focus:outline-indigo-500"
/>
</div>