summaryrefslogtreecommitdiff
path: root/app/views/nodes
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2026-07-12 23:43:02 +0200
committererdgeist <erdgeist@erdgeist.org>2026-07-12 23:43:02 +0200
commit848ce18303f927bfadaf0965a769cae2c62492a0 (patch)
tree3cb14888a0df92178cd20037e7fe94f407d5ad2e /app/views/nodes
parentb271648f89cba7cafafa1b73b1658b1c1bc0e4b0 (diff)
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.
Diffstat (limited to 'app/views/nodes')
-rw-r--r--app/views/nodes/_node_list.html.erb4
-rw-r--r--app/views/nodes/chapters.html.erb6
-rw-r--r--app/views/nodes/edit.html.erb8
-rw-r--r--app/views/nodes/index.html.erb4
-rw-r--r--app/views/nodes/show.html.erb15
5 files changed, 25 insertions, 12 deletions
diff --git a/app/views/nodes/_node_list.html.erb b/app/views/nodes/_node_list.html.erb
index 03f38b4..f7210f1 100644
--- a/app/views/nodes/_node_list.html.erb
+++ b/app/views/nodes/_node_list.html.erb
@@ -4,7 +4,9 @@
4 <% end %> 4 <% end %>
5 <%= hidden_field_tag :tags, params[:tags] if params[:tags].present? %> 5 <%= hidden_field_tag :tags, params[:tags] if params[:tags].present? %>
6 <%= text_field_tag :q, params[:q], placeholder: "Search title, abstract, body…" %> 6 <%= text_field_tag :q, params[:q], placeholder: "Search title, abstract, body…" %>
7 <%= submit_tag "Search", class: "action_button" %> 7 <%= button_tag type: "submit", class: "action_button" do %>
8 <%= icon("search", library: "tabler", "aria-hidden": true) %> Search
9 <% end %>
8 <% if params[:q].present? || params[:kinds].present? || params[:tags].present? %> 10 <% if params[:q].present? || params[:kinds].present? || params[:tags].present? %>
9 <%= link_to "Reset", url_for(controller: params[:controller], action: params[:action]) %> 11 <%= link_to "Reset", url_for(controller: params[:controller], action: params[:action]) %>
10 <% end %> 12 <% end %>
diff --git a/app/views/nodes/chapters.html.erb b/app/views/nodes/chapters.html.erb
index 939f19c..543bc53 100644
--- a/app/views/nodes/chapters.html.erb
+++ b/app/views/nodes/chapters.html.erb
@@ -1,9 +1,11 @@
1<h1>Chapters</h1> 1<h1>Chapters</h1>
2 2
3<%= form_tag chapters_nodes_path, method: :get do %> 3<%= form_tag chapters_nodes_path, method: :get, class: "node_search_form" do %>
4 <label><%= check_box_tag 'kinds[]', 'erfa', @kind_keys.include?('erfa') %> Erfa</label> 4 <label><%= check_box_tag 'kinds[]', 'erfa', @kind_keys.include?('erfa') %> Erfa</label>
5 <label><%= check_box_tag 'kinds[]', 'chaostreff', @kind_keys.include?('chaostreff') %> Chaostreff</label> 5 <label><%= check_box_tag 'kinds[]', 'chaostreff', @kind_keys.include?('chaostreff') %> Chaostreff</label>
6 <%= submit_tag "Filter", class: "action_button" %> 6 <%= button_tag type: "submit", class: "action_button" do %>
7 <%= icon("filter", library: "tabler", "aria-hidden": true) %> Filter
8 <% end %>
7<% end %> 9<% end %>
8 10
9<%= render 'node_list' %> 11<%= render 'node_list' %>
diff --git a/app/views/nodes/edit.html.erb b/app/views/nodes/edit.html.erb
index 13b78fc..1ac05e0 100644
--- a/app/views/nodes/edit.html.erb
+++ b/app/views/nodes/edit.html.erb
@@ -6,9 +6,11 @@
6 disabled: @node.autosave.present? %> 6 disabled: @node.autosave.present? %>
7 7
8 <% if @node.autosave || (@node.draft && @node.head) %> 8 <% if @node.autosave || (@node.draft && @node.head) %>
9 <%= button_to (@node.draft && !@node.autosave ? 'Destroy Draft' : 'Discard Autosave'), 9 <%= button_to revert_node_path(@node), method: :put,
10 revert_node_path(@node), method: :put, 10 form: { data: { confirm: "This cannot be undone. Continue?" }, class: 'button_to destructive' } do %>
11 form: { data: { confirm: "This cannot be undone. Continue?" }, class: 'button_to destructive' } %> 11 <%= icon("trash", library: "tabler", "aria-hidden": true) %>
12 <%= @node.draft && !@node.autosave ? "Destroy Draft" : "Discard Autosave" %>
13 <% end %>
12 <% if pair = @node.available_layer_pairs.find { |p| p.include?(:autosave) } %> 14 <% if pair = @node.available_layer_pairs.find { |p| p.include?(:autosave) } %>
13 <%= button_to 'What changed?', 15 <%= button_to 'What changed?',
14 diff_node_revisions_path(@node), 16 diff_node_revisions_path(@node),
diff --git a/app/views/nodes/index.html.erb b/app/views/nodes/index.html.erb
index 2688ea1..3bb251c 100644
--- a/app/views/nodes/index.html.erb
+++ b/app/views/nodes/index.html.erb
@@ -1,7 +1,9 @@
1<h1>Nodes</h1> 1<h1>Nodes</h1>
2 2
3<div> 3<div>
4 <%= link_to 'New node', new_node_path, class: 'action_button' %> 4 <%= link_to new_node_path, class: 'action_button' do %>
5 <%= icon("plus", library: "tabler", "aria-hidden": true) %> Create node
6 <% end %>
5 <span class="field_hint">Creates a node with no parent or kind set — for a specific page, use the wizard's create flow or "add child" from an existing node instead.</span> 7 <span class="field_hint">Creates a node with no parent or kind set — for a specific page, use the wizard's create flow or "add child" from an existing node instead.</span>
6</div> 8</div>
7 9
diff --git a/app/views/nodes/show.html.erb b/app/views/nodes/show.html.erb
index 07cb5d1..6e20258 100644
--- a/app/views/nodes/show.html.erb
+++ b/app/views/nodes/show.html.erb
@@ -25,7 +25,10 @@
25 <% if locked_by_other %> 25 <% if locked_by_other %>
26 <span class="disabled_action"><%= edit_label %></span> 26 <span class="disabled_action"><%= edit_label %></span>
27 <% else %> 27 <% else %>
28 <%= link_to (@node.autosave ? "Continue Editing" : (@node.draft ? "Edit Draft" : "Lock + Edit")), edit_node_path(@node), class: "action_button" %> 28 <%= link_to edit_node_path(@node), class: "action_button" do %>
29 <%= icon("edit", library: "tabler", "aria-hidden": true) %>
30 <%= @node.autosave ? "Continue Editing" : (@node.draft ? "Edit Draft" : "Lock + Edit") %>
31 <% end %>
29 <% if !@node.draft && !@node.autosave %> 32 <% if !@node.draft && !@node.autosave %>
30 <span class="field_hint">Nothing pending — this will start a fresh draft.</span> 33 <span class="field_hint">Nothing pending — this will start a fresh draft.</span>
31 <% end %> 34 <% end %>
@@ -51,10 +54,12 @@
51 <% end %> 54 <% end %>
52 <% if @node.autosave || (@node.draft && @node.head) %> 55 <% if @node.autosave || (@node.draft && @node.head) %>
53 <div class="node_info_item"> 56 <div class="node_info_item">
54 <%= button_to (@node.draft && !@node.autosave ? 'Destroy Draft' : 'Discard Autosave'), 57 <%= button_to revert_node_path(@node), method: :put,
55 revert_node_path(@node), method: :put, 58 params: { return_to: request.path },
56 params: { return_to: request.path }, 59 form: { data: { confirm: "This cannot be undone. Continue?" }, class: 'button_to destructive' } do %>
57 form: { data: { confirm: "This cannot be undone. Continue?" }, class: 'button_to destructive' } %> 60 <%= icon("trash", library: "tabler", "aria-hidden": true) %>
61 <%= @node.draft && !@node.autosave ? "Destroy Draft" : "Discard Autosave" %>
62 <% end %>
58 </div> 63 </div>
59 <% end %> 64 <% end %>
60 <% end %> 65 <% end %>