Add switch to read or edit notes

This commit is contained in:
Claudio Ortolina
2025-09-05 22:24:04 +03:00
parent b722b1922e
commit 422ce9f203
5 changed files with 51 additions and 31 deletions
@@ -24,29 +24,43 @@ defmodule MusicLibraryWeb.NotesComponent do
<.sheet
id={@sheet_id}
placement="right"
class="min-w-xs sm:min-w-lg lg:min-w-2xl"
class="min-w-xs max-w-lg sm:min-w-lg lg:min-w-2xl py-16"
>
<.simple_form
for={@form}
id="record-notes-form"
phx-target={@myself}
phx-change="validate"
phx-auto-recover="recover_form"
phx-submit="save"
>
<.textarea class="w-full h-96 font-mono" field={@form[:notes]} label={gettext("Notes")} />
<:actions>
<div class="w-full md:flex md:justify-center">
<.button
variant="solid"
class="w-full md:w-auto"
phx-disable-with={gettext("Saving...")}
>
{gettext("Save")}
</.button>
<.tabs>
<.tabs_list variant="segmented">
<:tab name="read">{gettext("Read")}</:tab>
<:tab name="edit">{gettext("Edit")}</:tab>
</.tabs_list>
<.tabs_panel active name="read">
<div class="w-full mt-10 text-sm/8">
{Earmark.as_html!(@form[:notes].value || "", %Earmark.Options{gfm: true}) |> raw()}
</div>
</:actions>
</.simple_form>
</.tabs_panel>
<.tabs_panel name="edit">
<.simple_form
for={@form}
id="record-notes-form"
phx-target={@myself}
phx-change="validate"
phx-auto-recover="recover_form"
phx-submit="save"
>
<.textarea class="w-full h-96 font-mono text-sm/8" field={@form[:notes]} />
<:actions>
<div class="w-full md:flex md:justify-center">
<.button
variant="solid"
class="w-full md:w-auto"
phx-disable-with={gettext("Saving...")}
>
{gettext("Save")}
</.button>
</div>
</:actions>
</.simple_form>
</.tabs_panel>
</.tabs>
</.sheet>
</div>
"""
+3
View File
@@ -92,6 +92,9 @@ defmodule MusicLibrary.MixProject do
# Image manipulation
{:vix, "~> 0.35.0"},
# Notes
{:earmark, "~> 1.4"},
# Time-zone support - requires mint and castore
{:time_zone_info, "~> 0.7.8"},
+1
View File
@@ -9,6 +9,7 @@
"db_connection": {:hex, :db_connection, "2.8.0", "64fd82cfa6d8e25ec6660cea73e92a4cbc6a18b31343910427b702838c4b33b2", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "008399dae5eee1bf5caa6e86d204dcb44242c82b1ed5e22c881f2c34da201b15"},
"decimal": {:hex, :decimal, "2.3.0", "3ad6255aa77b4a3c4f818171b12d237500e63525c2fd056699967a3e7ea20f62", [:mix], [], "hexpm", "a4d66355cb29cb47c3cf30e71329e58361cfcb37c34235ef3bf1d7bf3773aeac"},
"dns_cluster": {:hex, :dns_cluster, "0.2.0", "aa8eb46e3bd0326bd67b84790c561733b25c5ba2fe3c7e36f28e88f384ebcb33", [:mix], [], "hexpm", "ba6f1893411c69c01b9e8e8f772062535a4cf70f3f35bcc964a324078d8c8240"},
"earmark": {:hex, :earmark, "1.4.48", "5f41e579d85ef812351211842b6e005f6e0cef111216dea7d4b9d58af4608434", [:mix], [], "hexpm", "a461a0ddfdc5432381c876af1c86c411fd78a25790c75023c7a4c035fdc858f9"},
"ecto": {:hex, :ecto, "3.13.2", "7d0c0863f3fc8d71d17fc3ad3b9424beae13f02712ad84191a826c7169484f01", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "669d9291370513ff56e7b7e7081b7af3283d02e046cf3d403053c557894a0b3e"},
"ecto_sql": {:hex, :ecto_sql, "3.13.2", "a07d2461d84107b3d037097c822ffdd36ed69d1cf7c0f70e12a3d1decf04e2e1", [:mix], [{:db_connection, "~> 2.4.1 or ~> 2.5", [hex: :db_connection, repo: "hexpm", optional: false]}, {:ecto, "~> 3.13.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:myxql, "~> 0.7", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.19 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:tds, "~> 2.1.1 or ~> 2.2", [hex: :tds, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "539274ab0ecf1a0078a6a72ef3465629e4d6018a3028095dc90f60a19c371717"},
"ecto_sqlite3": {:hex, :ecto_sqlite3, "0.21.0", "8531f5044fb08289b3aacd21e383a9fb187e5a78981b9ed6d0929a78a25c2341", [:mix], [{:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:ecto, "~> 3.13.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:ecto_sql, "~> 3.13.0", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:exqlite, "~> 0.22", [hex: :exqlite, repo: "hexpm", optional: false]}], "hexpm", "9c3e90ea33099ca0ddd160c8d9eaf80d7d4a9b110d325fa6ed0409858a714606"},
+6 -5
View File
@@ -43,6 +43,7 @@ msgstr ""
msgid "Delete"
msgstr ""
#: lib/music_library_web/components/notes_component.ex
#: lib/music_library_web/components/record_components.ex
#: lib/music_library_web/live/artist_live/show.ex
#: lib/music_library_web/live/artist_live/show.html.heex
@@ -1314,12 +1315,12 @@ msgstr ""
msgid "No records released on this day."
msgstr ""
#: lib/music_library_web/components/notes_component.ex
#, elixir-autogen, elixir-format
msgid "Notes"
msgstr ""
#: lib/music_library_web/live/collection_live/show.html.heex
#, elixir-autogen, elixir-format
msgid "Open Notes"
msgstr ""
#: lib/music_library_web/components/notes_component.ex
#, elixir-autogen, elixir-format
msgid "Read"
msgstr ""
+6 -5
View File
@@ -43,6 +43,7 @@ msgstr ""
msgid "Delete"
msgstr ""
#: lib/music_library_web/components/notes_component.ex
#: lib/music_library_web/components/record_components.ex
#: lib/music_library_web/live/artist_live/show.ex
#: lib/music_library_web/live/artist_live/show.html.heex
@@ -1314,12 +1315,12 @@ msgstr ""
msgid "No records released on this day."
msgstr ""
#: lib/music_library_web/components/notes_component.ex
#, elixir-autogen, elixir-format
msgid "Notes"
msgstr ""
#: lib/music_library_web/live/collection_live/show.html.heex
#, elixir-autogen, elixir-format
msgid "Open Notes"
msgstr ""
#: lib/music_library_web/components/notes_component.ex
#, elixir-autogen, elixir-format, fuzzy
msgid "Read"
msgstr ""