From 7ef022c662170fdb3a79322dc9d34724ba307c88 Mon Sep 17 00:00:00 2001 From: Martin Edenhofer Date: Mon, 2 Jul 2012 14:47:09 +0200 Subject: [PATCH] Added possibility to get plain email. --- .../app/views/agent_ticket_zoom.jst.eco | 4 +++- .../ticket_overviews_controller.rb | 20 +++++++++++++++++++ app/models/channel/email_parser.rb | 2 +- app/models/ticket.rb | 9 +++++++++ config/routes/ticket.rb | 1 + 5 files changed, 34 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/app/views/agent_ticket_zoom.jst.eco b/app/assets/javascripts/app/views/agent_ticket_zoom.jst.eco index d8639a804..a2e783365 100644 --- a/app/assets/javascripts/app/views/agent_ticket_zoom.jst.eco +++ b/app/assets/javascripts/app/views/agent_ticket_zoom.jst.eco @@ -21,8 +21,10 @@
+
    +
  • <% if article.article_type.name is 'email': %>Plain<% end %>
  • +
-
<% if article.from: %>
diff --git a/app/controllers/ticket_overviews_controller.rb b/app/controllers/ticket_overviews_controller.rb index 8029cb377..8ca37a842 100644 --- a/app/controllers/ticket_overviews_controller.rb +++ b/app/controllers/ticket_overviews_controller.rb @@ -288,6 +288,26 @@ class TicketOverviewsController < ApplicationController ) end + # GET /ticket_article_plain/1 + def ticket_article_plain + + # permissin check + list = Store.list( + :object => 'Ticket::Article::Mail', + :o_id => params[:id], + ) + # find file + if list + file = Store.find(list.first) + send_data( + file.store_file.data, + :filename => file.filename, + :type => 'message/rfc822', + :disposition => 'inline' + ) + end + end + # GET /ticket_customer # GET /tickets_customer def ticket_customer diff --git a/app/models/channel/email_parser.rb b/app/models/channel/email_parser.rb index 3fb332119..89e4cae67 100644 --- a/app/models/channel/email_parser.rb +++ b/app/models/channel/email_parser.rb @@ -277,7 +277,7 @@ class Channel::EmailParser :object => 'Ticket::Article::Mail', :o_id => article.id, :data => msg, - :filename => 'plain.msg', + :filename => "ticket-#{ticket.number}-#{article.id}.eml", :preferences => {} ) diff --git a/app/models/ticket.rb b/app/models/ticket.rb index 29f0bf515..651c30284 100644 --- a/app/models/ticket.rb +++ b/app/models/ticket.rb @@ -250,6 +250,15 @@ class Ticket < ActiveRecord::Base :attachments => self.attachments } ) + + # store mail plain + Store.add( + :object => 'Ticket::Article::Mail', + :o_id => self.id, + :data => message.to_s, + :filename => "ticket-#{ticket.number}-#{self.id}.eml", + :preferences => {} + ) end end diff --git a/config/routes/ticket.rb b/config/routes/ticket.rb index e54cc15df..c9f958200 100644 --- a/config/routes/ticket.rb +++ b/config/routes/ticket.rb @@ -10,6 +10,7 @@ module ExtraRoutes map.match '/ticket_full/:id', :to => 'ticket_overviews#ticket_full' map.match '/ticket_attachment/:id', :to => 'ticket_overviews#ticket_attachment' map.match '/ticket_attachment_new', :to => 'ticket_overviews#ticket_attachment_new' + map.match '/ticket_article_plain/:id', :to => 'ticket_overviews#ticket_article_plain' map.match '/ticket_history/:id', :to => 'ticket_overviews#ticket_history' map.match '/ticket_customer', :to => 'ticket_overviews#ticket_customer' map.match '/ticket_overviews', :to => 'ticket_overviews#show'