diff options
Diffstat (limited to 'app/helpers/link_helper.rb')
| -rw-r--r-- | app/helpers/link_helper.rb | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/app/helpers/link_helper.rb b/app/helpers/link_helper.rb index 85d8fbe4..39ec4958 100644 --- a/app/helpers/link_helper.rb +++ b/app/helpers/link_helper.rb | |||
| @@ -45,9 +45,28 @@ module LinkHelper | |||
| 45 | "Locked by #{@node.lock_owner.login}\n" + | 45 | "Locked by #{@node.lock_owner.login}\n" + |
| 46 | "Last modified #{@page.updated_at.to_s(:db)}" | 46 | "Last modified #{@page.updated_at.to_s(:db)}" |
| 47 | 47 | ||
| 48 | link_to( | 48 | link_to 'Unlock', safe_path(:unlock_node_path, @node), :method => :put, :data => { :confirm => message } |
| 49 | 'Unlock', unlock_node_path(@node), :method => :put, :data => { :confirm => message } | 49 | end |
| 50 | |||
| 51 | # Rails 6.1 workaround: content_path named helper returns RouteWithParams | ||
| 52 | # when called from within a catch-all glob route request context. | ||
| 53 | # Rails 6.1 workaround: named route helpers return RouteWithParams when called | ||
| 54 | # from within a catch-all glob route request context. | ||
| 55 | # Remove this method when upgrading to Rails 7.0+, where this is fixed. | ||
| 56 | def safe_path(name, *args) | ||
| 57 | Rails.application.routes.url_helpers.send(name, *args) | ||
| 58 | end | ||
| 59 | |||
| 60 | def content_path(page_path = nil, options = {}) | ||
| 61 | if page_path.is_a?(Hash) | ||
| 62 | options = page_path | ||
| 63 | page_path = options.delete(:page_path) | ||
| 64 | end | ||
| 65 | options[:locale] ||= params[:locale] || I18n.locale | ||
| 66 | Rails.application.routes.url_helpers.content_path( | ||
| 67 | Array(page_path).join("/").sub(/^\//, ""), | ||
| 68 | options | ||
| 50 | ) | 69 | ) |
| 51 | end | 70 | end |
| 52 | 71 | ||
| 53 | end | 72 | end |
