From 7382e3d15afcef7866667c8b238f4935ae9faff7 Mon Sep 17 00:00:00 2001
From: erdgeist
Date: Tue, 7 Jul 2026 21:44:27 +0200
Subject: Add class destructive to destructive buttons
---
app/views/users/_user.html.erb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'app/views/users/_user.html.erb')
diff --git a/app/views/users/_user.html.erb b/app/views/users/_user.html.erb
index ddb7afd..798b82b 100644
--- a/app/views/users/_user.html.erb
+++ b/app/views/users/_user.html.erb
@@ -9,7 +9,7 @@
|
<%= button_to "destroy", user_path(user),
method: :delete,
- form: { data: { confirm: "Do you really want to delete user #{user.login}?" } } %>
+ form: { data: { confirm: "Do you really want to delete user #{user.login}?" }, class: 'button_to destructive' } %>
|
<% end %>
--
cgit v1.3
From 848ce18303f927bfadaf0965a769cae2c62492a0 Mon Sep 17 00:00:00 2001
From: erdgeist
Date: Sun, 12 Jul 2026 23:43:02 +0200
Subject: Normalize action-button wording and add icons app-wide
"New X" becomes "Create X" throughout (users, events, assets, menu
items, nodes), matching the verb-first pattern the dashboard's own
signposts already established, with a shared plus icon rather than a
document-flavored one that only made sense next to "post". The
"Destroy"/"destroy"/"Delete" family is normalized to "Destroy"
everywhere, with a shared trash icon; occurrences#index and
pages#index also pick up the destructive button class they'd been
silently missing. Filter and Search convert from submit_tag to
button_tag, the only way either can hold an icon alongside its label.
Edit and the node editor's three dynamic labels (Continue Editing /
Edit Draft / Lock + Edit) share one icon without touching their
wording -- unlike Destroy's family, the state nuance in the text is
real information, not just inconsistent phrasing.
---
app/views/assets/index.html.erb | 8 ++++++--
app/views/assets/show.html.erb | 4 +++-
app/views/events/edit.html.erb | 6 ++++--
app/views/events/index.html.erb | 8 ++++++--
app/views/events/show.html.erb | 8 ++++++--
app/views/events/without_node.html.erb | 4 +++-
app/views/menu_items/index.html.erb | 11 +++++++----
app/views/nodes/_node_list.html.erb | 4 +++-
app/views/nodes/chapters.html.erb | 6 ++++--
app/views/nodes/edit.html.erb | 8 +++++---
app/views/nodes/index.html.erb | 4 +++-
app/views/nodes/show.html.erb | 15 ++++++++++-----
app/views/occurrences/index.html.erb | 4 +++-
app/views/pages/index.html.erb | 4 +++-
app/views/revisions/diff.html.erb | 10 ++++++----
app/views/users/_user.html.erb | 7 ++++---
app/views/users/index.html.erb | 8 ++++++--
app/views/users/show.html.erb | 4 +++-
test/controllers/users_controller_test.rb | 2 +-
19 files changed, 86 insertions(+), 39 deletions(-)
(limited to 'app/views/users/_user.html.erb')
diff --git a/app/views/assets/index.html.erb b/app/views/assets/index.html.erb
index 6591091..8c35561 100644
--- a/app/views/assets/index.html.erb
+++ b/app/views/assets/index.html.erb
@@ -1,6 +1,8 @@
Assets
-<%= link_to 'New asset', new_asset_path, class: 'action_button' %>
+<%= link_to new_asset_path, class: 'action_button' do %>
+ <%= icon("plus", library: "tabler", "aria-hidden": true) %> Create asset
+<% end %>
<%= will_paginate @assets %>
@@ -20,7 +22,9 @@
<%= asset.upload.content_type %> |
<%= link_to 'Show', asset %> |
<%= link_to 'Edit', edit_asset_path(asset) %> |
- <%= button_to 'Destroy', asset, method: :delete, form: { data: { confirm: 'Are you sure?' }, class: 'button_to destructive' } %> |
+ <%= button_to asset, method: :delete, form: { data: { confirm: 'Are you sure?' }, class: 'button_to destructive' } do %>
+ <%= icon("trash", library: "tabler", "aria-hidden": true) %> Destroy
+ <% end %> |
<% end %>
diff --git a/app/views/assets/show.html.erb b/app/views/assets/show.html.erb
index 0286678..5717dd9 100644
--- a/app/views/assets/show.html.erb
+++ b/app/views/assets/show.html.erb
@@ -6,7 +6,9 @@
- <%= link_to 'Edit', edit_asset_path(@asset), class: 'action_button' %>
+ <%= link_to edit_asset_path(@asset), class: 'action_button' do %>
+ <%= icon("edit", library: "tabler", "aria-hidden": true) %> Edit
+ <% end %>
<%= link_to 'Back', assets_path %>
diff --git a/app/views/events/edit.html.erb b/app/views/events/edit.html.erb
index 45b084f..b6564a4 100644
--- a/app/views/events/edit.html.erb
+++ b/app/views/events/edit.html.erb
@@ -2,8 +2,10 @@
<%= link_to 'Back', safe_return_to(params[:return_to] || events_path) %>
- <%= button_to 'Destroy', event_path(@event), method: :delete,
- form: { data: { confirm: 'Delete this event?' }, class: 'button_to destructive' } %>
+ <%= button_to event_path(@event), method: :delete,
+ form: { data: { confirm: 'Delete this event?' }, class: 'button_to destructive' } do %>
+ <%= icon("trash", library: "tabler", "aria-hidden": true) %> Destroy
+ <% end %>
<%= form_for(@event) do |f| %>
diff --git a/app/views/events/index.html.erb b/app/views/events/index.html.erb
index 3d953d5..dde897e 100644
--- a/app/views/events/index.html.erb
+++ b/app/views/events/index.html.erb
@@ -1,7 +1,11 @@
Events
-<%= link_to 'New event', new_event_path, class: 'action_button' %>
-<%= link_to 'View events without a page →', without_node_events_path %>
+
+ <%= link_to new_event_path, class: 'action_button' do %>
+ <%= icon("plus", library: "tabler", "aria-hidden": true) %> Create event
+ <% end %>
+ <%= link_to 'View events without a page →', without_node_events_path %>
+
<%= will_paginate @events %>
diff --git a/app/views/events/show.html.erb b/app/views/events/show.html.erb
index 5812228..ac084c9 100644
--- a/app/views/events/show.html.erb
+++ b/app/views/events/show.html.erb
@@ -11,10 +11,14 @@
<% end %>
- <%= link_to 'Edit', edit_event_path(@event, return_to: request.path), class: 'action_button' %>
+ <%= link_to edit_event_path(@event, return_to: request.path), class: 'action_button' do %>
+ <%= icon("edit", library: "tabler", "aria-hidden": true) %> Edit
+ <% end %>
- <%= button_to 'Destroy', event_path(@event), method: :delete, form: { data: { confirm: 'Delete this event?' }, class: 'button_to destructive' } %>
+ <%= button_to event_path(@event), method: :delete, form: { data: { confirm: 'Delete this event?' }, class: 'button_to destructive' } do %>
+ <%= icon("trash", library: "tabler", "aria-hidden": true) %> Destroy
+ <% end %>
diff --git a/app/views/events/without_node.html.erb b/app/views/events/without_node.html.erb
index 52514ab..bb27173 100644
--- a/app/views/events/without_node.html.erb
+++ b/app/views/events/without_node.html.erb
@@ -1,7 +1,9 @@
Events without a node
<%= link_to '← All events', events_path %>
-<%= link_to 'New event', new_event_path, class: 'action_button' %>
+<%= link_to new_event_path, class: 'action_button' do %>
+ <%= icon("plus", library: "tabler", "aria-hidden": true) %> Create event
+<% end %>
<%= will_paginate @events %>
diff --git a/app/views/menu_items/index.html.erb b/app/views/menu_items/index.html.erb
index e84199b..591eb68 100644
--- a/app/views/menu_items/index.html.erb
+++ b/app/views/menu_items/index.html.erb
@@ -1,6 +1,8 @@
Menu Items
-<%= link_to 'New menu item', new_menu_item_path, class: 'action_button' %>
+<%= link_to new_menu_item_path, class: 'action_button' do %>
+ <%= icon("plus", library: "tabler", "aria-hidden": true) %> Create menu item
+<% end %>
diff --git a/app/views/pages/index.html.erb b/app/views/pages/index.html.erb
index 05c7311..da67871 100644
--- a/app/views/pages/index.html.erb
+++ b/app/views/pages/index.html.erb
@@ -12,7 +12,9 @@
<%=h page.title %> |
<%= link_to 'Show', content_path(:page_path => page.node.unique_path) %> |
<%= link_to 'Edit', edit_page_path(page) %> |
- <%= button_to 'Destroy', page, method: :delete, form: { data: { confirm: 'Are you sure?' } } %> |
+ <%= button_to page, method: :delete, form: { data: { confirm: 'Are you sure?' }, class: 'button_to destructive' } do %>
+ <%= icon("trash", library: "tabler", "aria-hidden": true) %> Destroy
+ <% end %> |
<% end %>
diff --git a/app/views/revisions/diff.html.erb b/app/views/revisions/diff.html.erb
index b9ce6bd..5638b7a 100644
--- a/app/views/revisions/diff.html.erb
+++ b/app/views/revisions/diff.html.erb
@@ -49,10 +49,12 @@
<% end %>
<% if !@locked_by_other && (@node.autosave || @node.draft) %>
- <%= button_to (@node.draft && !@node.autosave ? 'Destroy Draft' : 'Discard Autosave'),
- revert_node_path(@node), method: :put,
- params: { return_to: request.fullpath },
- form: { data: { confirm: "This cannot be undone. Continue?" }, class: 'button_to destructive' } %>
+ <%= button_to revert_node_path(@node), method: :put,
+ params: { return_to: request.fullpath },
+ form: { data: { confirm: "This cannot be undone. Continue?" }, class: 'button_to destructive' } do %>
+ <%= icon("trash", library: "tabler", "aria-hidden": true) %>
+ <%= @node.draft && !@node.autosave ? "Destroy Draft" : "Discard Autosave" %>
+ <% end %>
<% end %>
<% end %>
diff --git a/app/views/users/_user.html.erb b/app/views/users/_user.html.erb
index 798b82b..3a88f5e 100644
--- a/app/views/users/_user.html.erb
+++ b/app/views/users/_user.html.erb
@@ -7,9 +7,10 @@
<%= link_to "edit", edit_user_path(user) %>
- <%= button_to "destroy", user_path(user),
- method: :delete,
- form: { data: { confirm: "Do you really want to delete user #{user.login}?" }, class: 'button_to destructive' } %>
+ <%= button_to user_path(user), method: :delete,
+ form: { data: { confirm: "Do you really want to destroy user #{user.login}?" }, class: 'button_to destructive' } do %>
+ <%= icon("trash", library: "tabler", "aria-hidden": true) %> Destroy
+ <% end %>
|
<% end %>
diff --git a/app/views/users/index.html.erb b/app/views/users/index.html.erb
index 46e958b..4f5266d 100644
--- a/app/views/users/index.html.erb
+++ b/app/views/users/index.html.erb
@@ -1,5 +1,7 @@
Admins
-<%= link_to 'New admin user', new_user_path(admin: true), class: 'action_button' %>
+<%= link_to new_user_path(admin: true), class: 'action_button' do %>
+ <%= icon("plus", library: "tabler", "aria-hidden": true) %> Create admin user
+<% end %>
Users
-<%= link_to 'New user', new_user_path, class: 'action_button' %>
+<%= link_to new_user_path, class: 'action_button' do %>
+ <%= icon("plus", library: "tabler", "aria-hidden": true) %> Create user
+<% end %>