From e9e97c8c3befd37aa84b5948a6ca9e6a556ce128 Mon Sep 17 00:00:00 2001 From: Vincent Rolea <3525369+virolea@users.noreply.github.com> Date: Tue, 3 Sep 2024 15:26:27 +0200 Subject: [PATCH] Fix dialog closing and update wording --- app/assets/builds/rosetta/application.js | 6 +++--- .../rosetta/controllers/dialog_controller.js | 6 +++--- app/controllers/rosetta/locales_controller.rb | 2 +- app/models/rosetta/locale.rb | 11 ++++++----- app/views/layouts/rosetta/_dialog.html.erb | 4 ++-- test/models/rosetta/locale_test.rb | 2 +- 6 files changed, 16 insertions(+), 15 deletions(-) diff --git a/app/assets/builds/rosetta/application.js b/app/assets/builds/rosetta/application.js index 9f7634b..52982a8 100644 --- a/app/assets/builds/rosetta/application.js +++ b/app/assets/builds/rosetta/application.js @@ -8246,13 +8246,13 @@ // app/assets/javascripts/rosetta/controllers/dialog_controller.js var dialog_controller_default = class extends Controller { - static targets = ["dialog", "title", "titleSource", "content"]; + static targets = ["dialog", "content", "title", "titleSource", "turboFrame"]; open(e) { e.preventDefault(); const link = e.currentTarget; this.dialogTarget.showModal(); this.loadingIndicator = this.contentTarget.innerHTML; - this.contentTarget.src = link.href; + this.turboFrameTarget.src = link.href; } safeClose(e) { if (this.contentTarget.contains(e.target)) return; @@ -8267,7 +8267,7 @@ this.setTitle(title); } resetContent() { - this.contentTarget.innerHTML = this.loadingIndicator; + this.turboFrameTarget.innerHTML = this.loadingIndicator; this.setTitle(""); } setTitle(value) { diff --git a/app/assets/javascripts/rosetta/controllers/dialog_controller.js b/app/assets/javascripts/rosetta/controllers/dialog_controller.js index 90130f2..34b52b1 100644 --- a/app/assets/javascripts/rosetta/controllers/dialog_controller.js +++ b/app/assets/javascripts/rosetta/controllers/dialog_controller.js @@ -1,14 +1,14 @@ import { Controller } from "@hotwired/stimulus"; export default class extends Controller { - static targets = ["dialog", "title", "titleSource", "content"]; + static targets = ["dialog", "content", "title", "titleSource", "turboFrame"]; open(e) { e.preventDefault(); const link = e.currentTarget; this.dialogTarget.showModal(); this.loadingIndicator = this.contentTarget.innerHTML; - this.contentTarget.src = link.href; + this.turboFrameTarget.src = link.href; } safeClose(e) { @@ -27,7 +27,7 @@ export default class extends Controller { } resetContent() { - this.contentTarget.innerHTML = this.loadingIndicator; + this.turboFrameTarget.innerHTML = this.loadingIndicator; this.setTitle(""); } diff --git a/app/controllers/rosetta/locales_controller.rb b/app/controllers/rosetta/locales_controller.rb index 8acc663..bcd61ec 100644 --- a/app/controllers/rosetta/locales_controller.rb +++ b/app/controllers/rosetta/locales_controller.rb @@ -1,7 +1,7 @@ module Rosetta class LocalesController < ApplicationController def index - @locales = [ Locale.default ] + Locale.all + @locales = [ Locale.default_locale ] + Locale.all end def new diff --git a/app/models/rosetta/locale.rb b/app/models/rosetta/locale.rb index b2d8430..f923f69 100644 --- a/app/models/rosetta/locale.rb +++ b/app/models/rosetta/locale.rb @@ -4,27 +4,28 @@ class Locale < ApplicationRecord validates :name, :code, presence: true validates :code, uniqueness: true + # TODO: make sure one cannot add the default locale twice validates :code, format: { with: CODE_FORMAT, message: "must only contain letters separated by an optional dash" } class << self def available_locales - all # .published + [ Locale.default ] + all # .published end # The default locale is the locale in which the application is written. # Default is english. # TODO: Make this configurable. - def default - @default ||= new(name: "English", code: "en").as_default + def default_locale + @default_locale ||= new(name: "English", code: "en").as_default end end def default_locale? - @default_locale ||= false + @default ||= false end def as_default - @default_locale = true + @default = true self end end diff --git a/app/views/layouts/rosetta/_dialog.html.erb b/app/views/layouts/rosetta/_dialog.html.erb index a416c44..0cfac3e 100644 --- a/app/views/layouts/rosetta/_dialog.html.erb +++ b/app/views/layouts/rosetta/_dialog.html.erb @@ -1,5 +1,5 @@ -
+

@@ -12,7 +12,7 @@
- <%= turbo_frame_tag "dialog_content", data: { dialog_target: "content" } do %> + <%= turbo_frame_tag "dialog_content", data: { dialog_target: "turboFrame" } do %> <%= yield %> <% end %>
diff --git a/test/models/rosetta/locale_test.rb b/test/models/rosetta/locale_test.rb index e9edc25..2e1f290 100644 --- a/test/models/rosetta/locale_test.rb +++ b/test/models/rosetta/locale_test.rb @@ -39,7 +39,7 @@ class Rosetta::LocaleTest < ActiveSupport::TestCase test "available locales" do Rosetta::Locale.create(name: "English", code: "en") Rosetta::Locale.create(name: "French", code: "fr") - assert_equal 2, Rosetta::Locale.available_locales.length + assert_equal 3, Rosetta::Locale.available_locales.length assert_equal [ :en, :fr ], Rosetta::Locale.available_locales.pluck(:code).map(&:to_sym) end