diff --git a/app/models/content/core_feature/email_target_connect.rb b/app/models/content/core_feature/email_target_connect.rb index 558e2910..049b86a5 100644 --- a/app/models/content/core_feature/email_target_connect.rb +++ b/app/models/content/core_feature/email_target_connect.rb @@ -71,7 +71,7 @@ def webform(form, result) update_data = { :fields => arr, :add_tags => opts.add_target_tags, :update_tags => opts.update_target_tags, :add_source => opts.add_target_source } - ContentTypeMethods.email_target_connect_update(update_data, result.data_model, result.end_user) + ContentTypeMethods.email_target_connect_update(update_data, result.data_model) end @@ -83,24 +83,22 @@ def email_target_connect_update end end - def self.email_target_connect_update(update_data, entry, target=nil) + def self.email_target_connect_update(update_data, entry) connected_fields = update_data[:fields] - unless target - email_field = connected_fields.find() { |fld| fld[1] == 'end_user.email' } - begin - email = entry.send(email_field[0]) + email_field = connected_fields.find() { |fld| fld[1] == 'end_user.email' } + begin + email = entry.send(email_field[0]) - if email.blank? - return - end - rescue Exception => e - raise e.to_s + if email.blank? return end - - target = EndUser.find_target(email, :no_create => true) + rescue Exception => e + raise e.to_s + return end + + target = EndUser.find_target(email, :no_create => true) address = target.address || EndUserAddress.new() diff --git a/app/models/handler_actions.rb b/app/models/handler_actions.rb index 4af4003e..2529f9b7 100644 --- a/app/models/handler_actions.rb +++ b/app/models/handler_actions.rb @@ -76,8 +76,17 @@ def get_handler_options(component,handler_name,initialized=false) handlers = get_handlers(component,handler_name,initialized) handlers.collect do |handler| cls = handler[0].constantize - [ cls.send("#{component}_#{handler_name}_handler_info")[:name].t, handler[0].underscore ] - end + + if block_given? + if yield handler, cls + [ cls.send("#{component}_#{handler_name}_handler_info")[:name].t, handler[0].underscore ] + else + nil + end + else + [ cls.send("#{component}_#{handler_name}_handler_info")[:name].t, handler[0].underscore ] + end + end.compact end def get_handler_info(component,handler_name,identifier=nil,initialized=false)