Fix: errors.add_to_base is not Rails3 compliant - changed with errors[:base] <<

Update: UI updates to better notify of locked status
This commit is contained in:
Daniel Munn 2012-06-27 12:52:19 +01:00
parent 86bc901965
commit e3831b409f
7 changed files with 30 additions and 16 deletions

View File

@ -185,7 +185,7 @@ class DmsfController < ApplicationController
if @delete_folder.delete
flash[:notice] = l(:notice_folder_deleted)
else
flash[:error] = l(:error_folder_is_not_empty)
flash[:error] = @delete_folder.errors[:base][0]
end
end
redirect_to :controller => "dmsf", :action => "show", :id => @project, :folder_id => @folder

View File

@ -152,7 +152,7 @@ class DmsfFilesController < ApplicationController
log_activity("deleted")
else
# TODO: check this error handling
@revision.errors.each {|e| flash[:error] = e[1]}
@revision.errors.each {|e,msg| flash[:error] = msg}
end
end
redirect_to :action => "show", :id => @file

View File

@ -103,7 +103,7 @@ class DmsfFile < ActiveRecord::Base
def delete
if locked_for_user?
errors.add_to_base(l(:error_file_is_locked))
errors[:base] << l(:error_file_is_locked)
return false
end
if Setting.plugin_redmine_dmsf["dmsf_really_delete_files"]
@ -204,7 +204,7 @@ class DmsfFile < ActiveRecord::Base
def move_to(project, folder)
if self.locked_for_user?
errors.add_to_base(l(:error_file_is_locked))
errors[:base] << l(:error_file_is_locked)
return false
end

View File

@ -63,11 +63,11 @@ class DmsfFileRevision < ActiveRecord::Base
def delete(delete_all = false)
if self.file.locked_for_user?
errors.add_to_base(l(:error_file_is_locked))
errors[:base] << l(:error_file_is_locked)
return false
end
if !delete_all && self.file.revisions.length <= 1
errors.add_to_base(l(:error_at_least_one_revision_must_be_present))
errors[:base] << l(:error_at_least_one_revision_must_be_present)
return false
end
dependent = DmsfFileRevision.find(:all, :conditions =>

View File

@ -86,7 +86,13 @@ class DmsfFolder < ActiveRecord::Base
end
def delete
return false if !self.subfolders.visible.empty? || !self.files.visible.empty?
if self.locked?
errors[:base] << l(:error_folder_is_locked)
return false
elsif !self.subfolders.visible.empty? || !self.files.visible.empty?
errors[:base] << l(:error_folder_is_not_empty)
return false
end
destroy
end

View File

@ -49,7 +49,7 @@
<div class="controls" style="float: left">
<%= submit_tag(l(:submit_download), :title => l(:title_download_checked), :name => "download_entries") %>
<%= submit_tag(l(:submit_email), :title => l(:title_send_checked_by_email), :name => "email_entries") %>
<% if User.current.allowed_to?(:file_manipulation, @project) %>
<% if User.current.allowed_to?(:file_manipulation, @project) && (!@folder.nil? && !@folder.locked_for_user?) %>
<button type="button" id="entries_delete_button" title="<%=l(:title_delete_checked)%>"><%=l(:button_delete)%></button>
<% end %>
</div>
@ -81,7 +81,15 @@
<%= render "custom_fields", :object => subfolder %>
</td>
<td class="size" title="<%= l(:title_total_size_of_all_files)%>"><%= number_to_human_size(subfolder.deep_size) %></td>
<td class="modified"><%= subfolder.updated_at.strftime("%Y-%m-%d %H:%M") %></td>
<td class="modified"><%= subfolder.updated_at.strftime("%Y-%m-%d %H:%M") %>
<% if subfolder.locked_for_user? %>
<%= link_to(image_tag("locked.png", :plugin => :redmine_dmsf),
{:controller => "users", :action => "show", :id => subfolder.lock.reverse[0].user },
:title => l(:title_locked_by_user, :user => subfolder.lock.reverse[0].user.to_s)) %>
<% elsif subfolder.locked? %>
<%= image_tag("lockedbycurrent.png", :title => l(:title_locked_by_you), :plugin => :redmine_dmsf) %>
<% end %>
</td>
<td class="version"></td>
<td class="author"><%= h(subfolder.user) %></td>
<td class="actions">
@ -103,7 +111,7 @@
<div style="float: left">
<%= link_to(image_tag("edit.png", :class =>"detail_icon"),
{:action => "edit", :id => @project, :folder_id => subfolder },
:title => l(:link_edit, :title => h(subfolder.title))) %>
:title => l(:link_edit, :title => h(subfolder.title))) unless subfolder.locked_for_user? %>
</div>
<% end %>
<div style="float: right; width: 44px;">
@ -115,7 +123,7 @@
:id => @project, :folder_id => subfolder)}')",
:title => l(:title_unlock_file))%>
<% else %>
<%= image_tag("locked.png", :plugin => :redmine_dmsf, :title => l(:title_folder_parent_locked, :name => subfolder.folder.lock.reverse[0].folder.title)) %>
<%= image_tag("locked.png", :plugin => :redmine_dmsf, :title => l(:title_folder_parent_locked, :name => subfolder.lock.reverse[0].folder.title)) %>
<% end %>
<% else %>
<%= link_to_function(image_tag("lock.png", :plugin => :redmine_dmsf),
@ -127,7 +135,7 @@
<% end %>
<%= link_to_function(image_tag("delete.png", :plugin => :redmine_dmsf),
"confirmation_link('#{url_for(:action => 'delete', :id => @project, :folder_id => @folder, :delete_folder_id => subfolder)}')",
:title => l(:title_delete))%>
:title => l(:title_delete)) unless (subfolder.locked_for_user?)%>
</div>
</div>
<br class="clear" />
@ -307,5 +315,5 @@ sUrl = "jquery.dataTables/#{I18n.locale.to_s.downcase}.json" if I18n.locale && !
</script>
<% end %>
<%= render(:partial => "multi_upload") if User.current.allowed_to?(:file_manipulation, @project) %>
<%= render(:partial => "multi_upload") if (User.current.allowed_to?(:file_manipulation, @project) && (!@folder.nil? && !@folder.locked_for_user?)) %>
<br />

View File

@ -75,7 +75,7 @@ class DmsfConvertDocuments
if dry
puts "Dry check folder: " + folder.title
if folder.invalid?
folder.errors.each {|e| puts "#{e[0]}: #{e[1]}"}
folder.errors.each {|e,msg| puts "#{e}: #{msg}"}
end
else
begin
@ -120,7 +120,7 @@ class DmsfConvertDocuments
if dry
puts "Dry check file: " + file.name
if file.invalid?
file.errors.each {|e| puts "#{e[0]}: #{e[1]}"}
file.errors.each {|e.msg| puts "#{e}: #{msg}"}
end
else
file.save!
@ -158,7 +158,7 @@ class DmsfConvertDocuments
if dry
puts "Dry check revision: " + revision.title
if revision.invalid?
revision.errors.each {|e| puts "#{e[0]}: #{e[1]}"}
revision.errors.each {|e,msg| puts "#{e}: #{msg}"}
end
else
revision.save!