Implements uneditable type for custom fields closes #198 #433
2 changed files with 28 additions and 16 deletions
|
|
@ -75,9 +75,7 @@ defmodule Mv.Membership.CustomField do
|
||||||
|
|
||||||
validate fn changeset, _context ->
|
validate fn changeset, _context ->
|
||||||
if Ash.Changeset.changing_attribute?(changeset, :value_type) do
|
if Ash.Changeset.changing_attribute?(changeset, :value_type) do
|
||||||
{:error,
|
{:error, field: :value_type, message: "cannot be changed after creation"}
|
||||||
field: :value_type,
|
|
||||||
message: "cannot be changed after creation"}
|
|
||||||
else
|
else
|
||||||
:ok
|
:ok
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -45,19 +45,33 @@ defmodule MvWeb.CustomFieldLive.FormComponent do
|
||||||
<.input field={@form[:name]} type="text" label={gettext("Name")} />
|
<.input field={@form[:name]} type="text" label={gettext("Name")} />
|
||||||
|
|
||||||
<%= if @custom_field do %>
|
<%= if @custom_field do %>
|
||||||
<%!-- Show value_type as read-only text when editing --%>
|
<%!-- Show value_type as read-only input when editing (matches Member Field pattern) --%>
|
||||||
<div class="form-control">
|
<div
|
||||||
<label class="label">
|
class="tooltip tooltip-right"
|
||||||
<span class="label-text">{gettext("Value type")}</span>
|
data-tip={gettext("Value type cannot be changed after creation")}
|
||||||
</label>
|
aria-label={gettext("Value type cannot be changed after creation")}
|
||||||
<div class="input input-bordered bg-base-200 text-base-content/70">
|
>
|
||||||
{MvWeb.Translations.FieldTypes.label(@custom_field.value_type)}
|
<fieldset class="mb-2 fieldset">
|
||||||
</div>
|
<label>
|
||||||
<label class="label">
|
<span class="mb-1 label flex items-center gap-2">
|
||||||
<span class="label-text-alt text-base-content/70">
|
{gettext("Value type")}
|
||||||
{gettext("Value type cannot be changed after creation")}
|
<.icon
|
||||||
</span>
|
name="hero-information-circle"
|
||||||
</label>
|
class="w-4 h-4 text-base-content/60 cursor-help"
|
||||||
|
aria-hidden="true"
|
||||||
|
/>
|
||||||
|
</span>
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
name={@form[:value_type].name}
|
||||||
|
id={@form[:value_type].id}
|
||||||
|
value={MvWeb.Translations.FieldTypes.label(@custom_field.value_type)}
|
||||||
|
disabled
|
||||||
|
readonly
|
||||||
|
class="w-full input"
|
||||||
|
/>
|
||||||
|
</label>
|
||||||
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
<% else %>
|
<% else %>
|
||||||
<%!-- Show value_type as select when creating --%>
|
<%!-- Show value_type as select when creating --%>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue