summaryrefslogtreecommitdiff
path: root/app/views
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2026-08-04 07:07:05 +0200
committererdgeist <erdgeist@erdgeist.org>2026-08-04 07:07:05 +0200
commit409d71ed471703be8c56f2639a3ecb0fa387e6a7 (patch)
tree0a7108786cb549e343d8926b232f52a191570422 /app/views
parent974062f16169f6d07f2289564be6d72610b8770e (diff)
Give node lists a flag column and a shared action bar
Diffstat (limited to 'app/views')
-rw-r--r--app/views/events/index.html.erb10
-rw-r--r--app/views/nodes/_node_list.html.erb40
-rw-r--r--app/views/nodes/index.html.erb33
-rw-r--r--app/views/users/_user.html.erb18
-rw-r--r--app/views/users/edit.html.erb4
5 files changed, 48 insertions, 57 deletions
diff --git a/app/views/events/index.html.erb b/app/views/events/index.html.erb
index a2710c2a..cc3f163d 100644
--- a/app/views/events/index.html.erb
+++ b/app/views/events/index.html.erb
@@ -22,10 +22,12 @@
22<% @events.each do |event| %> 22<% @events.each do |event| %>
23 <tr> 23 <tr>
24 <td> 24 <td>
25 <span class="flag_stack"> 25 <div class="title_with_flags">
26 <%= flag("clock-off", Event.human_attribute_name(:allday)) if event.allday %> 26 <span class="flag_stack">
27 </span> 27 <%= flag("clock-off", Event.human_attribute_name(:allday)) if event.allday %>
28 <%= link_to event.display_title, event %> 28 </span>
29 <div class="title_body"><%= link_to event.display_title, event %></div>
30 </div>
29 </td> 31 </td>
30 <td><%= admin_datetime(event.start_time) %></td> 32 <td><%= admin_datetime(event.start_time) %></td>
31 <td><%= admin_datetime(event.end_time) %></td> 33 <td><%= admin_datetime(event.end_time) %></td>
diff --git a/app/views/nodes/_node_list.html.erb b/app/views/nodes/_node_list.html.erb
index 0dc3c5a0..458ab1ae 100644
--- a/app/views/nodes/_node_list.html.erb
+++ b/app/views/nodes/_node_list.html.erb
@@ -15,26 +15,46 @@
15<%= will_paginate @nodes %> 15<%= will_paginate @nodes %>
16<table class="node_table"> 16<table class="node_table">
17 <tr class="header"> 17 <tr class="header">
18 <th class="node_id"><%= t("admin.columns.id") %></th>
19 <th class="title"><%= t("admin.columns.title") %></th> 18 <th class="title"><%= t("admin.columns.title") %></th>
20 <th class="actions"><%= t("admin.columns.actions") %></th> 19 <th class="actions"><%= t("admin.columns.actions") %></th>
21 <th class="editor"><%= t("admin.columns.locked_by") %></th>
22 <th class="revision"><%= t("admin.columns.rev") %></th> 20 <th class="revision"><%= t("admin.columns.rev") %></th>
23 </tr> 21 </tr>
24 <% @nodes.each do |node| %> 22 <% @nodes.each do |node| %>
25 <tr class="<%= cycle("even", "odd") %>"> 23 <tr class="<%= cycle("even", "odd") %>">
26 <td class="node_id"><%= node.id %></td>
27 <td class="title"> 24 <td class="title">
28 <h4><%= link_to title_for_node(node), node_path(node) %></h4> 25 <div class="title_with_flags">
29 <p><%= link_to_path(node.unique_name, node.unique_name) %></p> 26 <span class="flag_stack">
27 <%= flag("lock", t(".flag_locked", :login => node.lock_owner.login),
28 :tier => :attention) if node.lock_owner %>
29 <%= flag("calendar-clock",
30 t(".flag_embargo", :date => admin_datetime(node.head.published_at)),
31 :tier => :attention) if node.embargoed? %>
32 <%= flag("file-pencil", t(".flag_draft")) if node.draft %>
33 <%= flag("file-off", t(".flag_no_head")) unless node.head %>
34 </span>
35 <div class="title_body">
36 <div class="node_title"><%= link_to title_for_node(node), node_path(node) %></div>
37 <div class="node_path"><%= link_to_path(node.unique_name, node.unique_name) %></div>
38 </div>
39 </div>
30 </td> 40 </td>
31 <td class="actions"> 41 <td class="actions">
32 <%= link_to 'show', node_path(node) %> 42 <div class="action_grid">
33 <%= link_to 'edit', edit_node_path(node) %> 43 <span class="action_item">
34 <%= link_to 'revisions', node_revisions_path(node) %> 44 <%= link_to node_path(node), "aria-label" => t("admin.common.show"),
45 title: t("admin.common.show") do %>
46 <%= icon("eye", library: "tabler", "aria-hidden": true) %>
47 <% end %>
48 </span>
49 <span class="action_item">
50 <%= link_to node_revisions_path(node), "aria-label" => t("admin.common.revisions"),
51 title: t("admin.common.revisions") do %>
52 <%= icon("history", library: "tabler", "aria-hidden": true) %>
53 <% end %>
54 </span>
55 </div>
35 </td> 56 </td>
36 <td><%= node.lock_owner.login if node.lock_owner %></td> 57 <td><%= node.head ? node.head.revision : t(".no_revision") %></td>
37 <td><%= node.draft ? node.draft.revision : (node.head ? node.head.revision : t(".no_revision")) %></td>
38 </tr> 58 </tr>
39 <% end %> 59 <% end %>
40</table> 60</table>
diff --git a/app/views/nodes/index.html.erb b/app/views/nodes/index.html.erb
index 7ab5679e..357c938b 100644
--- a/app/views/nodes/index.html.erb
+++ b/app/views/nodes/index.html.erb
@@ -7,35 +7,4 @@
7 <span class="field_hint"><%= t(".create_hint") %></span> 7 <span class="field_hint"><%= t(".create_hint") %></span>
8</div> 8</div>
9 9
10<%= will_paginate @nodes %> 10<%= render 'node_list' %>
11 <table class="node_table">
12 <tr class="header">
13 <th class="node_id"><%= t("admin.columns.id") %></th>
14 <th class="title"><%= t("admin.columns.title") %></th>
15 <th class="actions"><%= t("admin.columns.actions") %></th>
16 <th class="editor"><%= t("admin.columns.locked_by") %></th>
17 <th class="revision"><%= t("admin.columns.rev") %></th>
18 </tr>
19 <% @nodes.each do |node| %>
20 <tr class="<%= cycle("even", "odd") %>">
21 <td class="node_id"><%= node.id %></td>
22 <td class="title">
23 <h4><%= link_to title_for_node(node), node_path(node) %></h4>
24 <p><%= link_to_path(node.unique_name, node.unique_name) %></p>
25 </td>
26 <td class="actions">
27 <%= link_to 'show', node_path(node) %>
28 <%= link_to 'edit', edit_node_path(node) %>
29 <%= link_to 'revisions', node_revisions_path(node) %>
30 </td>
31 <td>
32 <%= node.lock_owner.login if node.lock_owner %>
33 </td>
34 <td>
35 <%= node.draft ? node.draft.revision : (node.head ? node.head.revision : "EMPTY") %>
36 </td>
37 </tr>
38 <% end %>
39 </table>
40<%= will_paginate @nodes %>
41
diff --git a/app/views/users/_user.html.erb b/app/views/users/_user.html.erb
index be92ad1d..028ee02f 100644
--- a/app/views/users/_user.html.erb
+++ b/app/views/users/_user.html.erb
@@ -27,17 +27,17 @@
27 <span class="field_hint"><%= t(".no_roles") %></span> 27 <span class="field_hint"><%= t(".no_roles") %></span>
28 <% end %> 28 <% end %>
29 </td> 29 </td>
30 <td class="user_actions"> 30 <td class="actions">
31 <div class="user_action_grid"> 31 <div class="action_grid">
32 <span class="user_action"> 32 <span class="action_item">
33 <%= link_to user_path(user), "aria-label" => t("admin.common.show"), 33 <%= link_to user_path(user), "aria-label" => t("admin.common.show"),
34 title: t("admin.common.show") do %> 34 title: t("admin.common.show") do %>
35 <%= icon("eye", library: "tabler", "aria-hidden": true) %> 35 <%= icon("eye", library: "tabler", "aria-hidden": true) %>
36 <% end %> 36 <% end %>
37 </span> 37 </span>
38 38
39 <span class="user_action"> 39 <span class="action_item">
40 <% if current_user.admin? || current_user == user %> 40 <% if current_user.is_admin? || current_user == user %>
41 <%= link_to edit_user_path(user), "aria-label" => t("admin.common.edit"), 41 <%= link_to edit_user_path(user), "aria-label" => t("admin.common.edit"),
42 title: t("admin.common.edit") do %> 42 title: t("admin.common.edit") do %>
43 <%= icon("edit", library: "tabler", "aria-hidden": true) %> 43 <%= icon("edit", library: "tabler", "aria-hidden": true) %>
@@ -45,15 +45,15 @@
45 <% end %> 45 <% end %>
46 </span> 46 </span>
47 47
48 <span class="user_action"> 48 <span class="action_item">
49 <%= link_to admin_log_path(:user_id => user.id), 49 <%= link_to admin_log_path(:user_id => user.id),
50 "aria-label" => t(".action_log"), title: t(".action_log") do %> 50 "aria-label" => t(".action_log"), title: t(".action_log") do %>
51 <%= icon("history", library: "tabler", "aria-hidden": true) %> 51 <%= icon("history", library: "tabler", "aria-hidden": true) %>
52 <% end %> 52 <% end %>
53 </span> 53 </span>
54 54
55 <span class="user_action"> 55 <span class="action_item">
56 <% if current_user.admin? && current_user != user %> 56 <% if current_user.is_admin? && current_user != user %>
57 <% if user.alumni? %> 57 <% if user.alumni? %>
58 <%= button_to reactivate_user_path(user), method: :put, 58 <%= button_to reactivate_user_path(user), method: :put,
59 form: { class: 'button_to state_changing' }, 59 form: { class: 'button_to state_changing' },
@@ -71,7 +71,7 @@
71 <% end %> 71 <% end %>
72 </span> 72 </span>
73 73
74 <span class="user_action"> 74 <span class="action_item">
75 <% if current_user.redaktion? && !user.alumni? %> 75 <% if current_user.redaktion? && !user.alumni? %>
76 <% if user.redaktion? %> 76 <% if user.redaktion? %>
77 <% unless user == current_user %> 77 <% unless user == current_user %>
diff --git a/app/views/users/edit.html.erb b/app/views/users/edit.html.erb
index ad2e0891..1763394d 100644
--- a/app/views/users/edit.html.erb
+++ b/app/views/users/edit.html.erb
@@ -20,7 +20,7 @@
20 <div class="layout_row_label"><%= t("users.labels.confirm") %></div> 20 <div class="layout_row_label"><%= t("users.labels.confirm") %></div>
21 <div class="layout_row_content"><%= f.password_field :password_confirmation, :autocomplete => "new-password" %></div> 21 <div class="layout_row_content"><%= f.password_field :password_confirmation, :autocomplete => "new-password" %></div>
22 22
23 <% if current_user.admin? %> 23 <% if current_user.is_admin? %>
24 <div class="layout_row_label"><%= t("users.labels.roles") %></div> 24 <div class="layout_row_label"><%= t("users.labels.roles") %></div>
25 <div class="layout_row_content"> 25 <div class="layout_row_content">
26 <% User::ROLES.each do |role| %> 26 <% User::ROLES.each do |role| %>
@@ -62,7 +62,7 @@
62 <% end %> 62 <% end %>
63 <% end %> 63 <% end %>
64 </div> 64 </div>
65 <% elsif current_user.admin? && @user.otp_enrolled? %> 65 <% elsif current_user.is_admin? && @user.otp_enrolled? %>
66 <div class="layout_row_label"><%= t(".second_factor") %></div> 66 <div class="layout_row_label"><%= t(".second_factor") %></div>
67 <div class="layout_row_content"> 67 <div class="layout_row_content">
68 <%= t(".enabled") %> 68 <%= t(".enabled") %>