aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Lemon <y@yulqen.org>2024-11-14 16:14:33 +0000
committerMatthew Lemon <y@yulqen.org>2024-11-14 16:14:33 +0000
commit851521dc475e3d434ff8e13bd9f9e558aa9af772 (patch)
treed0ca4cbdbcc6ab506c146349199bb3437d0e4802
parent6427b28c60c6ed0dfd637307d1ab4ffe65c1144d (diff)
Improved the feature slot handling - can now remove feature_slot value
-rw-r--r--app/models/pdfresource.rb3
-rw-r--r--app/views/pdfresources/_form.html.erb15
2 files changed, 14 insertions, 4 deletions
diff --git a/app/models/pdfresource.rb b/app/models/pdfresource.rb
index 4fa2292..8e59972 100644
--- a/app/models/pdfresource.rb
+++ b/app/models/pdfresource.rb
@@ -4,7 +4,8 @@ class Pdfresource < ApplicationRecord
has_many_attached :pdf_snapshots
belongs_to :resource_type
validates :feature_slot,
- numericality: { only_integer: true, greater_than_or_equal_to: 1, less_than_or_equal_to: 3, allow_nil: true },
+ inclusion: { in: [ 1, 2, 3 ], message: "must be 1, 2, or 3" },
+ uniqueness: { message: "is already taken by another featured resource" },
allow_nil: true
validate :validate_pdf_count
validates :name, :thumbnails, :description, :card_description, :pdfs, :credits, presence: true
diff --git a/app/views/pdfresources/_form.html.erb b/app/views/pdfresources/_form.html.erb
index a15bd67..a3922c9 100644
--- a/app/views/pdfresources/_form.html.erb
+++ b/app/views/pdfresources/_form.html.erb
@@ -92,7 +92,7 @@
<div class="my-5">
<%= required_label_tag(form, :resource_type) %>
- <%= form.collection_select :resource_type_id, ResourceType.all, :id, :name, {}, class: "block shadow rounded-md border border-gray-400 outline-none px-3 py-2 mt-2 w-full" %>
+ <%= form.collection_select :resource_type_id, ResourceType.all, :id, :name, { prompt: "Select resource type" }, class: "block shadow rounded-md border border-gray-400 outline-none px-3 py-2 mt-2 w-full" %>
</div>
<div class="my-5">
@@ -111,8 +111,17 @@
</div>
<div class="my-5">
- <%= form.label :feature_slot, class: "font-bold" %>
- <%= form.number_field :feature_slot, class: "block shadow rounded-md border border-gray-400 outline-none px-3 py-2 mt-2 w-full" %>
+ <%= form.label :feature_slot, "Feature Position", class: "font-bold" %>
+ <%= form.select :feature_slot,
+ options_for_select([
+ ["Not Featured", nil],
+ ["Position 1", 1],
+ ["Position 2", 2],
+ ["Position 3", 3]
+ ], pdfresource.feature_slot),
+ { include_blank: false },
+ class: "block shadow rounded-md border border-gray-400 outline-none px-3 py-2 mt-2 w-full" %>
+ <p class="text-sm text-gray-700">Select a position to feature this resource, or "Not Featured" to remove from featured items. Only three resources can be featured at a time.</p>
</div>
<div class="flex gap-4 mt-8">