Skip to content

Commit df3d87f

Browse files
committed
Bugfix for page display
1 parent 2024675 commit df3d87f

6 files changed

Lines changed: 74 additions & 67 deletions

File tree

app/assets/builds/railsui/application.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/views/railsui/admin/_field_layout.html.erb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
<div class="lg:col-span-4">
55
<%= yield :explainer %>
66
</div>
7+
78
<div class="lg:col-span-8">
89
<%= yield %>
910
</div>
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
<div class="md:mb-0 mb-3">
2+
<div class="flex items-center space-x-3">
3+
<div class="w-7 h-7 bg-gradient-to-br from-green-500 to-green-600 rounded-full flex justify-center items-center shadow-inner border-2 border-slate-50/50 dark:from-green-600 dark:to-green-700" data-controller="tooltip" data-tooltip-content-value="Page installed">
4+
<%= render_svg "check", styles: "w-5 h-5 stroke-current text-white" %>
5+
</div>
6+
<p class="font-medium md:text-base text-lg"><%= details["title"] %></p>
7+
</div>
8+
9+
<div>
10+
<div class="sm:prose prose-sm prose-p:text-slate-500 dark:prose-invert dark:prose-p:text-slate-300 mb-1 mt-1 leading-snug">
11+
<p><%= details["description"] %></p>
12+
</div>
13+
<div class="mt-2">
14+
<% details['tags'].each do |tag | %>
15+
<%= tag_label(tag) %>
16+
<% end %>
17+
</div>
18+
</div>
19+
</div>
20+
21+
<div class="flex items-center space-x-4 md:justify-between justify-end w-full md:w-auto">
22+
<% if main_app.respond_to?(details['path'].to_sym) %>
23+
<%= link_to main_app.send(details['path'].to_sym), class: "px-3 py-2 bg-slate-50/20 border border-slate-300 text-slate-600 shadow-sm rounded text-center text-sm font-medium hover:text-slate-700
24+
hover:border-indigo-400 hover:bg-indigo-50/50 dark:bg-slate-800 dark:text-slate-100 dark:border-slate-700
25+
dark:hover:bg-indigo-600/10 dark:hover:text-indigo-300 dark:hover:border-indigo-600 flex items-center focus:ring-4 focus:ring-slate-50 dark:focus:ring-4 dark:focus:ring-slate-700 group transition ease-in-out duration-200", target: :_blank do %>
26+
<span class="sr-only">View page</span>
27+
<%= icon "arrow-up-right", classes: "w-4 h-4 text-slate-400 dark:text-slate-200 group-hover:text-indigo-500 dark:group-hover:text-indigo-400" %>
28+
<% end %>
29+
<% end %>
30+
<div data-controller="dialog">
31+
<%= link_to "#", data: { action:"click->dialog#launch" }, class: "px-3 py-2 bg-slate-50/20 border border-slate-300 text-slate-600 shadow-sm rounded text-center text-sm font-medium hover:text-slate-700 hover:border-red-500 hover:bg-red-50/50 dark:bg-slate-800 dark:text-red-400 dark:border-red-500/30
32+
dark:hover:bg-red-500/20 dark:hover:text-red-500/50 dark:hover:border-red-500/50 block dark:focus:ring-4 dark:focus:ring-red-500/10 focus:ring-4 focus:ring-slate-50 group transition ease-in-out duration-200" do %>
33+
<span class="sr-only">Remove page</span>
34+
<%= icon "trash", classes: "w-4 h-4 text-red-500 dark:group-hover:text-red-400", title: "Remove page" %>
35+
<% end %>
36+
37+
<dialog id="confirmDialog" data-dialog-target="dialog" class="z-50 backdrop:bg-black/80 backdrop:p-0 open:animate-fade-in max-w-lg rounded-xl border bg-white p-6 mx-auto dark:bg-slate-800 dark:border-slate-700">
38+
<h3 class="font-semibold text-lg text-red-700 mb-2 dark:text-red-400">Are you sure you want to remove this page?</h3>
39+
<p class="text-slate-700 dark:text-slate-200 mb-4">Any changes made to the view will be removed for good.</p>
40+
41+
<%= link_to "Yes, remove page", delete_page_path(title: details["title"].downcase.underscore), data: { dialog_target: "button", action: "click->dialog#perform" }, class: "px-3 py-2 bg-red-700 text-red-100 border border-red-700 shadow-sm rounded text-center text-sm hover:bg-red-600 hover:border-red-600 dark:bg-red-400/60 hover:dark:bg-red-400/80 dark:text-red-100 dark:border-red-400/80 dark:hover:text-white dark:hover:border-red-400 inline-block mt-3 mr-4 font-medium text-base dark:bg-red-600" %>
42+
<a href="#" class="underline font-medium text-slate-700 dark:text-slate-200" data-action="click->dialog#cancel" data-dialog-target="cancel">Cancel</a>
43+
44+
<p class="text-slate-700 dark:text-slate-400 mt-2 text-xs">Removing a page requires a server restart which will happen automatically.</p>
45+
46+
</dialog>
47+
</div>
48+
</div>
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<div class="flex items-center relative pb-6 border-b">
2+
<%= check_box_tag "checkAll", "1", false, class: "form-input-switch", data: { action: "pages#checkAll" } %>
3+
<%= label_tag "checkAll", "Check all" %>
4+
5+
</div>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<div class="flex-1">
2+
<%= check_box_tag "configuration[pages][]", page, Railsui::Pages.page_enabled?(page), id: page, class: "form-input-switch", data: { pages_target: "checkbox" } %>
3+
<%= label_tag page, details['title'], class: "font-medium sm:text-base text-lg" %>
4+
5+
<div>
6+
<div class="mt-1 sm:prose prose-sm prose-p:text-slate-500 dark:prose-invert dark:prose-p:text-slate-300 max-w-full leading-tight">
7+
<p><%= details["description"] %></p>
8+
</div>
9+
<div class="mt-2">
10+
<% details['tags'].each do |tag | %>
11+
<%= tag_label(tag) %>
12+
<% end %>
13+
</div>
14+
</div>
15+
</div>

app/views/railsui/admin/fields/_pages.html.erb

Lines changed: 4 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -11,83 +11,22 @@
1111
<p class="text-base lg:text-sm text-slate-700 dark:text-slate-400 mb-3">When you choose to remove a page with Rails UI, it is permanently deleted, resulting in the loss of all changes made to the view. However, you have the option to reinstall it later, as it is included as a default component in the <%= Railsui.config.theme.humanize %> Rails UI theme.</p>
1212
<% end %>
1313

14-
<div class="p-6 rounded-lg bg-white border border-slate-200 shadow-sm dark:bg-slate-800 dark:border-slate-700" data-controller="pages">
14+
<div class="p-6 rounded-lg bg-white border border-slate-200 shadow-sm dark:bg-slate-800 dark:border-slate-700 relative" data-controller="pages">
1515
<div class="prose mb-6 dark:prose-invert">
1616
<h3>Add pages</h3>
1717
<p>Generate professionally designed pages that accompany the <%= theme_name.humanize %> template. If you previously generated a page, it will <strong>not</strong> be overwritten.</p>
1818
</div>
1919

20-
<% unless Railsui::Pages.all_pages_installed? %>
21-
<div class="mb-3 pb-3 border-b dark:border-slate-700">
22-
<%= check_box_tag "checkAll", "1", false, class: "form-input-switch", data: { action: "pages#checkAll" } %>
23-
<%= label_tag "checkAll", "Check all pages" %>
24-
</div>
25-
<% end %>
20+
<%= render "railsui/admin/fields/check_all" unless Railsui::Pages.all_pages_installed? %>
2621

2722
<div class="divide-y dark:divide-slate-700">
2823
<% if @theme_pages.present? %>
2924
<% @theme_pages.each do |page, details| %>
3025
<div class="flex flex-wrap items-start justify-between py-6">
3126
<% if Railsui::Pages.page_exists?(page) %>
32-
<div class="flex-1">
33-
<div class="flex items-center space-x-2">
34-
<div class="w-7 h-7 bg-gradient-to-br from-green-500 to-green-600 rounded-full flex justify-center items-center shadow-inner border-2 border-slate-50/50 dark:from-green-600 dark:to-green-700" data-controller="tooltip" data-tooltip-content-value="Page installed">
35-
<%= render_svg "check", styles: "w-5 h-5 stroke-current text-white" %>
36-
</div>
37-
<p class="font-medium sm:text-base text-lg"><%= details["title"] %></p>
38-
</div>
39-
40-
<div class="sm:prose prose-sm prose-p:text-slate-500 dark:prose-invert dark:prose-p:text-slate-300 mb-1 mt-3 leading-snug">
41-
<p><%= details["description"] %></p>
42-
</div>
43-
<div class="mt-2">
44-
<% details['tags'].each do |tag | %>
45-
<%= tag_label(tag) %>
46-
<% end %>
47-
</div>
48-
</div>
49-
<div class="flex items-center space-x-4 justify-between">
50-
<% if main_app.respond_to?(details['path'].to_sym) %>
51-
<%= link_to main_app.send(details['path'].to_sym), class: "px-3 py-2 bg-slate-50/20 border border-slate-300 text-slate-600 shadow-sm rounded text-center text-sm font-medium hover:text-slate-700
52-
hover:border-indigo-400 hover:bg-indigo-50/50 dark:bg-slate-800 dark:text-slate-100 dark:border-slate-700
53-
dark:hover:bg-indigo-600/10 dark:hover:text-indigo-300 dark:hover:border-indigo-600 flex items-center focus:ring-4 focus:ring-slate-50 dark:focus:ring-4 dark:focus:ring-slate-700 group transition ease-in-out duration-200", target: :_blank do %>
54-
<span class="sr-only">View page</span>
55-
<%= icon "arrow-up-right", classes: "w-4 h-4 text-slate-400 dark:text-slate-200 group-hover:text-indigo-500 dark:group-hover:text-indigo-400" %>
56-
<% end %>
57-
<% end %>
58-
<div data-controller="dialog">
59-
<%= link_to "#", data: { action:"click->dialog#launch" }, class: "px-3 py-2 bg-slate-50/20 border border-slate-300 text-slate-600 shadow-sm rounded text-center text-sm font-medium hover:text-slate-700 hover:border-red-500 hover:bg-red-50/50 dark:bg-slate-800 dark:text-red-400 dark:border-red-500/30
60-
dark:hover:bg-red-500/20 dark:hover:text-red-500/50 dark:hover:border-red-500/50 block dark:focus:ring-4 dark:focus:ring-red-500/10 focus:ring-4 focus:ring-slate-50 group transition ease-in-out duration-200" do %>
61-
<span class="sr-only">Remove page</span>
62-
<%= icon "trash", classes: "w-4 h-4 text-red-500 dark:group-hover:text-red-400", title: "Remove page" %>
63-
<% end %>
64-
65-
<dialog id="confirmDialog" data-dialog-target="dialog" class="z-50 backdrop:bg-black/80 backdrop:p-0 open:animate-fade-in max-w-lg rounded-xl border bg-white p-6 mx-auto dark:bg-slate-800 dark:border-slate-700">
66-
<h3 class="font-semibold text-lg text-red-700 mb-2 dark:text-red-400">Are you sure you want to remove this page?</h3>
67-
<p class="text-slate-700 dark:text-slate-200 mb-4">Any changes made to the view will be removed for good.</p>
68-
69-
<%= link_to "Yes, remove page", delete_page_path(title: details["title"].downcase.underscore), data: { dialog_target: "button", action: "click->dialog#perform" }, class: "px-3 py-2 bg-red-700 text-red-100 border border-red-700 shadow-sm rounded text-center text-sm hover:bg-red-600 hover:border-red-600 dark:bg-red-400/60 hover:dark:bg-red-400/80 dark:text-red-100 dark:border-red-400/80 dark:hover:text-white dark:hover:border-red-400 inline-block mt-3 mr-4 font-medium text-base dark:bg-red-600" %>
70-
<a href="#" class="underline font-medium text-slate-700 dark:text-slate-200" data-action="click->dialog#cancel" data-dialog-target="cancel">Cancel</a>
71-
72-
<p class="text-slate-700 dark:text-slate-400 mt-2 text-xs">Removing a page requires a server restart which will happen automatically.</p>
73-
74-
</dialog>
75-
</div>
76-
</div>
27+
<%= render "railsui/admin/fields/active_page", page: page, details: details %>
7728
<% else %>
78-
<div class="flex-1">
79-
<%= check_box_tag "configuration[pages][]", page, Railsui::Pages.page_enabled?(page), id: page, class: "form-input-switch", data: { pages_target: "checkbox" } %>
80-
<%= label_tag page, details["title"], class: "font-medium sm:text-base text-lg" %>
81-
82-
<div class="mt-1 sm:prose prose-sm prose-p:text-slate-500 dark:prose-invert dark:prose-p:text-slate-300 max-w-full leading-tight">
83-
<p><%= details["description"] %></p>
84-
</div>
85-
<div class="mt-2">
86-
<% details['tags'].each do |tag | %>
87-
<%= tag_label(tag) %>
88-
<% end %>
89-
</div>
90-
</div>
29+
<%= render "railsui/admin/fields/inactive_page", page: page, details: details %>
9130
<% end %>
9231
</div>
9332
<% end %>
@@ -97,6 +36,5 @@
9736
</div>
9837
<% end %>
9938
</div>
100-
10139
</div>
10240
<% end %>

0 commit comments

Comments
 (0)