summaryrefslogtreecommitdiff
path: root/app/views
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2026-07-31 22:36:17 +0200
committererdgeist <erdgeist@erdgeist.org>2026-07-31 22:36:17 +0200
commit529f81b28ed77c62acaa63fad957e751798f2440 (patch)
tree9d928cbe54008b1f75c4b813182970dd0757002c /app/views
parent3b4e1423635fd9f33ae760312e438cc1e484662e (diff)
Warn before the gate refuses, and check restore destinations
nodes#new marks the kinds that place under /updates, derived from each kind's own path_prefix. The three parent pickers mark candidates the current user cannot publish into; menu_search returns needs_redaktion per result, computed per user rather than as a bare restricted flag, and the menu-item picker opts out. restore_from_trash! checks its destination: the restore is the move, applied rather than staged, so no later publish would have caught it. The node returns as a draft either way.
Diffstat (limited to 'app/views')
-rw-r--r--app/views/layouts/admin.html.erb2
-rw-r--r--app/views/nodes/new.html.erb6
2 files changed, 6 insertions, 2 deletions
diff --git a/app/views/layouts/admin.html.erb b/app/views/layouts/admin.html.erb
index 97117710..43f09b96 100644
--- a/app/views/layouts/admin.html.erb
+++ b/app/views/layouts/admin.html.erb
@@ -18,7 +18,7 @@
18 <%= javascript_tag nonce: true do %> 18 <%= javascript_tag nonce: true do %>
19 var ADMIN_SEARCH_URL = "<%= admin_search_path %>"; 19 var ADMIN_SEARCH_URL = "<%= admin_search_path %>";
20 var ADMIN_MENU_SEARCH_URL = "<%= admin_menu_search_path %>"; 20 var ADMIN_MENU_SEARCH_URL = "<%= admin_menu_search_path %>";
21 var ADMIN_STRINGS = <%= raw({ :lock_lost_prefix => t(".lock_lost_prefix"), :lock_lost_link => t(".lock_lost_link"), :insert_image => t(".insert_image"), :insert_image_tooltip => t(".insert_image_tooltip"), :copied => t(".copied") }.to_json) %>; 21 var ADMIN_STRINGS = <%= raw({ :lock_lost_prefix => t(".lock_lost_prefix"), :lock_lost_link => t(".lock_lost_link"), :insert_image => t(".insert_image"), :insert_image_tooltip => t(".insert_image_tooltip"), :copied => t(".copied"), :needs_redaktion => t(".needs_redaktion") }.to_json) %>;
22 var PARAMETERIZE_PREVIEW_URL = "<%= parameterize_preview_nodes_path %>"; 22 var PARAMETERIZE_PREVIEW_URL = "<%= parameterize_preview_nodes_path %>";
23 var DASHBOARD_SEARCH_URL = "<%= admin_dashboard_search_path %>"; 23 var DASHBOARD_SEARCH_URL = "<%= admin_dashboard_search_path %>";
24 <% end %> 24 <% end %>
diff --git a/app/views/nodes/new.html.erb b/app/views/nodes/new.html.erb
index b56bbeed..883909a6 100644
--- a/app/views/nodes/new.html.erb
+++ b/app/views/nodes/new.html.erb
@@ -12,13 +12,17 @@
12 <div class="layout_row_label"><%= t(".type") %></div> 12 <div class="layout_row_label"><%= t(".type") %></div>
13 <div class="layout_row_content"> 13 <div class="layout_row_content">
14 <% CccConventions::NODE_KINDS.each do |kind, config| %> 14 <% CccConventions::NODE_KINDS.each do |kind, config| %>
15 <% prefix = resolve_kind_text(config[:path_prefix]) %>
15 <p> 16 <p>
16 <%= radio_button_tag :kind, kind, kind == @selected_kind, 17 <%= radio_button_tag :kind, kind, kind == @selected_kind,
17 data: { path_prefix: resolve_kind_text(config[:path_prefix]) } %> 18 data: { path_prefix: prefix } %>
18 <%= resolve_kind_text(config[:label]) %> 19 <%= resolve_kind_text(config[:label]) %>
19 <% if config[:hint] %> 20 <% if config[:hint] %>
20 <span class="field_hint"><%= resolve_kind_text(config[:hint]) %></span> 21 <span class="field_hint"><%= resolve_kind_text(config[:hint]) %></span>
21 <% end %> 22 <% end %>
23 <% unless current_user.may_change_live_at?(prefix) %>
24 <span class="field_hint restricted_kind_hint"><%= t(".restricted_kind") %></span>
25 <% end %>
22 </p> 26 </p>
23 <% end %> 27 <% end %>
24 </div> 28 </div>