@@ -83,6 +83,9 class AttachmentsController < ApplicationController | |||||
83 | end |
|
83 | end | |
84 |
|
84 | |||
85 | def destroy |
|
85 | def destroy | |
|
86 | if @attachment.container.respond_to?(:init_journal) | |||
|
87 | @attachment.container.init_journal(User.current) | |||
|
88 | end | |||
86 | # Make sure association callbacks are called |
|
89 | # Make sure association callbacks are called | |
87 | @attachment.container.attachments.delete(@attachment) |
|
90 | @attachment.container.attachments.delete(@attachment) | |
88 | redirect_to :back |
|
91 | redirect_to :back |
@@ -953,11 +953,10 class Issue < ActiveRecord::Base | |||||
953 |
|
953 | |||
954 | # Callback on attachment deletion |
|
954 | # Callback on attachment deletion | |
955 | def attachment_removed(obj) |
|
955 | def attachment_removed(obj) | |
956 | journal = init_journal(User.current) |
|
956 | if @current_journal && !obj.new_record? | |
957 | journal.details << JournalDetail.new(:property => 'attachment', |
|
957 | @current_journal.details << JournalDetail.new(:property => 'attachment', :prop_key => obj.id, :old_value => obj.filename) | |
958 | :prop_key => obj.id, |
|
958 | @current_journal.save | |
959 | :old_value => obj.filename) |
|
959 | end | |
960 | journal.save |
|
|||
961 | end |
|
960 | end | |
962 |
|
961 | |||
963 | # Default assignment based on category |
|
962 | # Default assignment based on category |
@@ -264,15 +264,18 class AttachmentsControllerTest < ActionController::TestCase | |||||
264 | @request.session[:user_id] = 2 |
|
264 | @request.session[:user_id] = 2 | |
265 |
|
265 | |||
266 | assert_difference 'issue.attachments.count', -1 do |
|
266 | assert_difference 'issue.attachments.count', -1 do | |
267 | delete :destroy, :id => 1 |
|
267 | assert_difference 'Journal.count' do | |
|
268 | delete :destroy, :id => 1 | |||
|
269 | assert_redirected_to '/projects/ecookbook' | |||
|
270 | end | |||
268 | end |
|
271 | end | |
269 | # no referrer |
|
|||
270 | assert_redirected_to '/projects/ecookbook' |
|
|||
271 | assert_nil Attachment.find_by_id(1) |
|
272 | assert_nil Attachment.find_by_id(1) | |
272 |
j = |
|
273 | j = Journal.first(:order => 'id DESC') | |
|
274 | assert_equal issue, j.journalized | |||
273 | assert_equal 'attachment', j.details.first.property |
|
275 | assert_equal 'attachment', j.details.first.property | |
274 | assert_equal '1', j.details.first.prop_key |
|
276 | assert_equal '1', j.details.first.prop_key | |
275 | assert_equal 'error281.txt', j.details.first.old_value |
|
277 | assert_equal 'error281.txt', j.details.first.old_value | |
|
278 | assert_equal User.find(2), j.user | |||
276 | end |
|
279 | end | |
277 |
|
280 | |||
278 | def test_destroy_wiki_page_attachment |
|
281 | def test_destroy_wiki_page_attachment |
General Comments 0
You need to be logged in to leave comments.
Login now