|
1 |
| -require 'redmine' |
2 |
| -require 'redmine_redirect_after_create/issues_controller_patch' |
3 |
| -require 'redmine_redirect_after_create/routes_helper_patch' |
| 1 | +module RedmineRedirectAfterCreate |
| 2 | + module IssuesControllerPatch |
| 3 | + def self.prepended(base) |
| 4 | + def redirect_after_create |
| 5 | + redirect_url = params[:redirect_url].to_s |
| 6 | + if redirect_url.present? && valid_back_url?(redirect_url) |
| 7 | + redirect_to redirect_url |
| 8 | + else |
| 9 | + super |
| 10 | + end |
| 11 | + end |
| 12 | + end |
| 13 | + end |
| 14 | + |
| 15 | + module RoutesHelperPatch |
| 16 | + def self.prepended(base) |
| 17 | + def _project_issues_path(project, *args) |
| 18 | + if params[:redirect_url] |
| 19 | + options = args.extract_options! |
| 20 | + options = options.reverse_merge redirect_url: params[:redirect_url] |
| 21 | + args << options |
| 22 | + end |
| 23 | + super project, *args |
| 24 | + end |
| 25 | + end |
| 26 | + end |
| 27 | +end |
| 28 | + |
| 29 | +class AfterPluginsLoadedHook < Redmine::Hook::Listener |
| 30 | + def after_plugins_loaded(_context = {}) |
| 31 | + IssuesController.prepend RedmineRedirectAfterCreate::IssuesControllerPatch |
| 32 | + RoutesHelper.prepend RedmineRedirectAfterCreate::RoutesHelperPatch |
| 33 | + end |
| 34 | +end |
4 | 35 |
|
5 | 36 | Redmine::Plugin.register :redmine_redirect_after_create do
|
6 |
| - name 'Redmine redirect after create plugin' |
7 |
| - author 'Intera GmbH' |
8 |
| - description 'This plugin redirects the user to a custom URL after ticket creation based on a URL parameter.' |
9 |
| - version '0.0.1' |
10 |
| - url 'https://github.com/Intera/redmine_redirect_after_create' |
| 37 | + name "Redmine Redirect After Create Plugin" |
| 38 | + author "Intera GmbH" |
| 39 | + description "This plugin redirects the user to a custom URL after ticket creation based on a URL parameter." |
| 40 | + version "0.1.0" |
| 41 | + url "https://github.com/Intera/redmine_redirect_after_create" |
| 42 | + requires_redmine :version_or_higher => "6.0.0" |
11 | 43 | end
|
0 commit comments