app/controllers/export_email_controller.rb in umlaut-3.0.5 vs app/controllers/export_email_controller.rb in umlaut-3.1.0.pre1

- old
+ new

@@ -1,92 +1,75 @@ class ExportEmailController < UmlautController - + before_filter :load_objects - layout Proc.new { |controller| - if (controller.request.xhr? || controller.params["X-Requested-With"] == "XmlHttpRequest") - nil - else - umlaut_config.layout - end - } + layout :search_layout_except_xhr def load_objects @svc_response = ServiceResponse.find(params[:id]) @user_request = @svc_response.request if @svc_response end - - def email - end - - def txt - end - + def send_email @email = params[:email] @fulltexts = @user_request.get_service_type('fulltext', { :refresh=>true }) @holdings = @user_request.get_service_type('holding', { :refresh=>true }) if valid_email? - Emailer.citation(@email, @user_request, @fulltexts, @holdings).deliver - respond_to do |format| - format.html { render } - end + Emailer.citation(@email, @user_request, @fulltexts, @holdings).deliver else - @partial = "email" - flash[:error] = email_validation_error - redirect_to params_preserve_xhr(params.merge(:action => "email")) + flash[:alert] = email_validation_error + render :email and return end end - + def send_txt @number = params[:number] # Remove any punctuation or spaces etc @number.gsub!(/[^\d]/, '') if @number @provider = params[:provider] @email = "#{@number}@#{@provider}" unless @number.nil? or @provider.nil? - @holding_id = params[:holding] + @holding = params[:holding] if valid_txt_number? && valid_txt_holding? - Emailer.short_citation(@email, @user_request, holding_location(@holding_id), call_number(@holding_id)).deliver - render # send_txt.rhtml - else - flash[:error] = txt_validation_error - redirect_to params_preserve_xhr(params.merge(:action => "txt")) - end + Emailer.short_citation(@email, @user_request, holding_location(@holding), call_number(@holding)).deliver + else + flash[:alert] = txt_validation_error + render :txt and return + end end - + private def valid_txt_number? - return (! @number.blank?) && @number.length == 10 + ((not @number.blank?) && @number.length == 10) end def valid_txt_holding? - return ! @holding_id.blank? + (not @holding.blank?) end - + def valid_email? - return @email =~ /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i + (@email =~ /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i) end - + def txt_validation_error errors = [] errors << "a valid number" unless valid_txt_number? errors << "the item you wish to send" unless valid_txt_holding? errors end - + def email_validation_error errors = [] errors << "a valid email address" errors end def holding(id) return ServiceResponse.find(id) unless id.nil? end - + def holding_location(id) return holding(id).view_data[:collection_str] unless holding(id).nil? end - + def call_number(id) return holding(id).view_data[:call_number] unless holding(id).nil? end end \ No newline at end of file