|
11 | 11 | <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> |
12 | 12 | <% end %> |
13 | 13 |
|
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"> |
15 | 15 | <div class="prose mb-6 dark:prose-invert"> |
16 | 16 | <h3>Add pages</h3> |
17 | 17 | <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> |
18 | 18 | </div> |
19 | 19 |
|
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? %> |
26 | 21 |
|
27 | 22 | <div class="divide-y dark:divide-slate-700"> |
28 | 23 | <% if @theme_pages.present? %> |
29 | 24 | <% @theme_pages.each do |page, details| %> |
30 | 25 | <div class="flex flex-wrap items-start justify-between py-6"> |
31 | 26 | <% 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 %> |
77 | 28 | <% 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 %> |
91 | 30 | <% end %> |
92 | 31 | </div> |
93 | 32 | <% end %> |
|
97 | 36 | </div> |
98 | 37 | <% end %> |
99 | 38 | </div> |
100 | | - |
101 | 39 | </div> |
102 | 40 | <% end %> |
0 commit comments