]> source.dussan.org Git - redmine.git/commitdiff
Added preview for forum messages.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Fri, 7 Mar 2008 17:49:44 +0000 (17:49 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Fri, 7 Mar 2008 17:49:44 +0000 (17:49 +0000)
git-svn-id: http://redmine.rubyforge.org/svn/trunk@1205 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/messages_controller.rb
app/views/boards/show.rhtml
app/views/messages/edit.rhtml
app/views/messages/new.rhtml
app/views/messages/show.rhtml

index 64a7fa1c9db390535e9bdb04c0075a1d119da152..97cb2c3bf74ec0c3309e096f061428b6abd7ce94 100644 (file)
@@ -18,9 +18,9 @@
 class MessagesController < ApplicationController
   layout 'base'
   menu_item :boards
-  before_filter :find_board, :only => :new
-  before_filter :find_message, :except => :new
-  before_filter :authorize
+  before_filter :find_board, :only => [:new, :preview]
+  before_filter :find_message, :except => [:new, :preview]
+  before_filter :authorize, :except => :preview
 
   verify :method => :post, :only => [ :reply, :destroy ], :redirect_to => { :action => :show }
 
@@ -83,6 +83,13 @@ class MessagesController < ApplicationController
       { :action => 'show', :id => @message.parent }
   end
   
+  def preview
+    message = @board.messages.find_by_id(params[:id])
+    @attachements = message.attachments if message
+    @text = (params[:message] || params[:reply])[:content]
+    render :partial => 'common/preview'
+  end
+  
 private
   def find_message
     find_board
index 01db0854c17c5f7d82f0ae41806e7a82d8d82f65..54645622eebe79b60916c894ea85cb42deee2459 100644 (file)
@@ -8,11 +8,19 @@
 
 <div id="add-message" style="display:none;">
 <h2><%= link_to h(@board.name), :controller => 'boards', :action => 'show', :project_id => @project, :id => @board %> &#187; <%= l(:label_message_new) %></h2>
-<% form_for :message, @message, :url => {:controller => 'messages', :action => 'new', :board_id => @board}, :html => {:multipart => true} do |f| %>
+<% form_for :message, @message, :url => {:controller => 'messages', :action => 'new', :board_id => @board}, :html => {:multipart => true, :id => 'message-form'} do |f| %>
   <%= render :partial => 'messages/form', :locals => {:f => f} %>
   <p><%= submit_tag l(:button_create) %>
+  <%= link_to_remote l(:label_preview), 
+                     { :url => { :controller => 'messages', :action => 'preview', :board_id => @board },
+                       :method => 'post',
+                       :update => 'preview',
+                       :with => "Form.serialize('message-form')",
+                       :complete => "Element.scrollTo('preview')"
+                     }, :accesskey => accesskey(:preview) %> |
   <%= link_to l(:button_cancel), "#", :onclick => 'Element.hide("add-message")' %></p>
 <% end %>
+<div id="preview" class="wiki"></div>
 </div>
 
 <h2><%=h @board.name %></h2>
index dcc59a3965e4375fa7c1e1eab14505b274ee3f8c..56e70862098aeb84d82bfe9f4b50ddd656b9773f 100644 (file)
@@ -1,6 +1,14 @@
 <h2><%= link_to h(@board.name), :controller => 'boards', :action => 'show', :project_id => @project, :id => @board %> &#187; <%=h @message.subject %></h2>
 
-<% form_for :message, @message, :url => {:action => 'edit'}, :html => {:multipart => true} do |f| %>
+<% form_for :message, @message, :url => {:action => 'edit'}, :html => {:multipart => true, :id => 'message-form'} do |f| %>
   <%= render :partial => 'form', :locals => {:f => f, :replying => !@message.parent.nil?} %>
   <%= submit_tag l(:button_save) %>
+  <%= link_to_remote l(:label_preview), 
+                     { :url => { :controller => 'messages', :action => 'preview', :board_id => @board },
+                       :method => 'post',
+                       :update => 'preview',
+                       :with => "Form.serialize('message-form')",
+                       :complete => "Element.scrollTo('preview')"
+                     }, :accesskey => accesskey(:preview) %>
 <% end %>
+<div id="preview" class="wiki"></div>
index 5c688f4658f0594a5e29c6d081ef2558b81b687e..050c13284a4c2489483b207dbf5f74b5c557cc30 100644 (file)
@@ -1,6 +1,15 @@
 <h2><%= link_to h(@board.name), :controller => 'boards', :action => 'show', :project_id => @project, :id => @board %> &#187; <%= l(:label_message_new) %></h2>
 
-<% form_for :message, @message, :url => {:action => 'new'}, :html => {:multipart => true} do |f| %>
+<% form_for :message, @message, :url => {:action => 'new'}, :html => {:multipart => true, :id => 'message-form'} do |f| %>
   <%= render :partial => 'form', :locals => {:f => f} %>
   <%= submit_tag l(:button_create) %>
+  <%= link_to_remote l(:label_preview), 
+                     { :url => { :controller => 'messages', :action => 'preview', :board_id => @board },
+                       :method => 'post',
+                       :update => 'preview',
+                       :with => "Form.serialize('message-form')",
+                       :complete => "Element.scrollTo('preview')"
+                     }, :accesskey => accesskey(:preview) %>
 <% end %>
+
+<div id="preview" class="wiki"></div>
index b9897cb400c8824a2a593a0158983fcf3fa3e1fa..632f603ffa2417e1d47c5eacc3635d7da6e62219 100644 (file)
 <% if !@topic.locked? && authorize_for('messages', 'reply') %>
 <p><%= toggle_link l(:button_reply), "reply", :focus => 'message_content' %></p>
 <div id="reply" style="display:none;">
-<% form_for :reply, @reply, :url => {:action => 'reply', :id => @topic}, :html => {:multipart => true} do |f| %>
-    <%= render :partial => 'form', :locals => {:f => f, :replying => true} %>
-    <%= submit_tag l(:button_submit) %>
+<% form_for :reply, @reply, :url => {:action => 'reply', :id => @topic}, :html => {:multipart => true, :id => 'message-form'} do |f| %>
+  <%= render :partial => 'form', :locals => {:f => f, :replying => true} %>
+  <%= submit_tag l(:button_submit) %>
+  <%= link_to_remote l(:label_preview), 
+                     { :url => { :controller => 'messages', :action => 'preview', :board_id => @board },
+                       :method => 'post',
+                       :update => 'preview',
+                       :with => "Form.serialize('message-form')",
+                       :complete => "Element.scrollTo('preview')"
+                     }, :accesskey => accesskey(:preview) %>
 <% end %>
+<div id="preview" class="wiki"></div>
 </div>
 <% end %>