diff --git a/app/controllers/application.rb b/app/controllers/application.rb index 6f3c7fe2..6419dc87 100644 --- a/app/controllers/application.rb +++ b/app/controllers/application.rb @@ -2,7 +2,7 @@ class ApplicationController < ActionController::Base #before_filter :select_foodcoop before_filter :authenticate, :store_controller - after_filter :send_email_messages, :remove_controller + after_filter :remove_controller # sends a mail, when an error occurs # see plugins/exception_notification @@ -145,11 +145,6 @@ class ApplicationController < ActionController::Base def remove_controller Thread.current[:application_controller] = nil end - - # Sends any pending emails that were created during this request. - def send_email_messages - call_rake :send_emails unless Message.pending.empty? - end # Get supplier in nested resources def find_supplier diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb index ddb32bd2..13d0f9f7 100644 --- a/app/controllers/messages_controller.rb +++ b/app/controllers/messages_controller.rb @@ -14,6 +14,8 @@ class MessagesController < ApplicationController def create @message = @current_user.send_messages.new(params[:message]) if @message.save + #FIXME: Send Mails wit ID instead of using message.state ... + call_rake :send_emails flash[:notice] = "Nachricht ist gespeichert und wird versendet." redirect_to messages_path else diff --git a/app/helpers/messages_helper.rb b/app/helpers/messages_helper.rb index 91d88919..1ced0806 100644 --- a/app/helpers/messages_helper.rb +++ b/app/helpers/messages_helper.rb @@ -12,6 +12,13 @@ module MessagesHelper end def format_subject(message, length) - truncate "#{link_to(h(message.subject), message)} #{h(message.body)}", :length => length + if message.subject.length > length + subject = truncate(message.subject, :length => length) + body = "" + else + subject = message.subject + body = truncate(message.body, :length => length - subject.length) + end + "#{link_to(h(subject), message)} #{h(body)}" end end diff --git a/app/models/message.rb b/app/models/message.rb index f71c8385..274ca309 100644 --- a/app/models/message.rb +++ b/app/models/message.rb @@ -78,7 +78,11 @@ class Message < ActiveRecord::Base for message in messages for recipient in message.recipients if recipient.settings['messages.sendAsEmail'] == "1" && !recipient.email.blank? - Mailer.deliver_message(message, recipient) + begin + Mailer.deliver_message(message, recipient) + rescue + logger.warn "Deliver failed for #{recipient.nick}: #{recipient.email}" + end end end message.update_attribute(:email_state, 1) diff --git a/app/views/home/index.html.haml b/app/views/home/index.html.haml index e4622142..a13790d8 100644 --- a/app/views/home/index.html.haml +++ b/app/views/home/index.html.haml @@ -35,7 +35,9 @@ .box_title %h2 Neuste Nachrichten .column_content - = render :partial => 'messages/messages', :locals => { :subject_length => 110 } + = render :partial => 'messages/messages', :locals => { :subject_length => 70 } + %br/ + = link_to "Alle Nachrichten einsehen", messages_path - if @ordergroup // Ordergroup overview diff --git a/app/views/messages/index.html.haml b/app/views/messages/index.html.haml index 5a67f196..ec19c729 100644 --- a/app/views/messages/index.html.haml +++ b/app/views/messages/index.html.haml @@ -3,4 +3,4 @@ %p= link_to('Neue Nachricht', :action => 'new') #messages - = render :partial => 'messages', :locals => { :subject_length => 200 } \ No newline at end of file + = render :partial => 'messages', :locals => { :subject_length => 130 } \ No newline at end of file