Mercurial > hg > soundsoftware-site
annotate plugins/redmine_checkout/lib/checkout/settings_controller_patch.rb @ 1458:b1f4c9a2af24 bug_794
Makes the default radio button checked by default -- this should fix bug #794.
author | luisf <luis.figueira@eecs.qmul.ac.uk> |
---|---|
date | Mon, 11 Nov 2013 18:25:22 +0000 |
parents | b4b72f1eb644 |
children |
rev | line source |
---|---|
Chris@16 | 1 require_dependency 'settings_controller' |
Chris@16 | 2 |
Chris@16 | 3 module Checkout |
Chris@16 | 4 module SettingsControllerPatch |
Chris@16 | 5 def self.included(base) # :nodoc: |
Chris@16 | 6 base.send(:include, InstanceMethods) |
Chris@16 | 7 |
Chris@16 | 8 base.class_eval do |
Chris@16 | 9 unloadable |
Chris@16 | 10 |
Chris@16 | 11 alias_method_chain :edit, :checkout |
Chris@16 | 12 end |
Chris@16 | 13 end |
Chris@16 | 14 |
Chris@16 | 15 module InstanceMethods |
Chris@16 | 16 def edit_with_checkout |
Chris@16 | 17 if request.post? && params['tab'] == 'checkout' |
Chris@16 | 18 if params[:settings] && params[:settings].is_a?(Hash) |
Chris@16 | 19 settings = HashWithIndifferentAccess.new |
Chris@16 | 20 (params[:settings] || {}).each do |name, value| |
Chris@16 | 21 if name = name.to_s.slice(/checkout_(.+)/, 1) |
Chris@16 | 22 case value |
Chris@16 | 23 when Array |
Chris@16 | 24 # remove blank values in array settings |
Chris@16 | 25 value.delete_if {|v| v.blank? } |
Chris@16 | 26 when Hash |
Chris@16 | 27 # change protocols hash to array. |
Chris@16 | 28 value = value.sort{|(ak,av),(bk,bv)|ak<=>bk}.collect{|id,protocol| protocol} if name.start_with? "protocols_" |
Chris@16 | 29 end |
Chris@16 | 30 settings[name.to_sym] = value |
Chris@16 | 31 end |
Chris@16 | 32 end |
Chris@16 | 33 |
Chris@16 | 34 Setting.plugin_redmine_checkout = settings |
Chris@16 | 35 params[:settings] = {} |
Chris@16 | 36 end |
Chris@16 | 37 end |
Chris@16 | 38 edit_without_checkout |
Chris@16 | 39 end |
Chris@16 | 40 end |
Chris@16 | 41 end |
Chris@16 | 42 end |
Chris@16 | 43 |
Chris@16 | 44 SettingsController.send(:include, Checkout::SettingsControllerPatch) |