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