diff options
| author | erdgeist <erdgeist@erdgeist.org> | 2026-08-04 07:07:05 +0200 |
|---|---|---|
| committer | erdgeist <erdgeist@erdgeist.org> | 2026-08-04 07:07:05 +0200 |
| commit | 409d71ed471703be8c56f2639a3ecb0fa387e6a7 (patch) | |
| tree | 0a7108786cb549e343d8926b232f52a191570422 /app/views | |
| parent | 974062f16169f6d07f2289564be6d72610b8770e (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.erb | 10 | ||||
| -rw-r--r-- | app/views/nodes/_node_list.html.erb | 40 | ||||
| -rw-r--r-- | app/views/nodes/index.html.erb | 33 | ||||
| -rw-r--r-- | app/views/users/_user.html.erb | 18 | ||||
| -rw-r--r-- | app/views/users/edit.html.erb | 4 |
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") %> |
