Merge pull request #877 from PedroTeixido/basic_obsolete_feature
Added basic obsolete feature. It allows to obsolete revisions through…
This commit is contained in:
commit
3814501601
@ -40,7 +40,7 @@ def init
|
||||
:dmsf_folders_copy => [:new, :copy, :move],
|
||||
:dmsf_context_menus => [:dmsf]}
|
||||
pmap.permission :file_manipulation,
|
||||
{:dmsf_files => [:create_revision, :lock, :unlock, :delete_revision, :notify_activate,
|
||||
{:dmsf_files => [:create_revision, :lock, :unlock, :delete_revision, :obsolete_revision, :notify_activate,
|
||||
:notify_deactivate, :restore],
|
||||
:dmsf_upload => [:upload_files, :upload_file, :upload, :commit_files, :commit,
|
||||
:delete_dmsf_attachment, :delete_dmsf_link_attachment],
|
||||
|
||||
@ -23,8 +23,8 @@ class DmsfFilesController < ApplicationController
|
||||
|
||||
menu_item :dmsf
|
||||
|
||||
before_action :find_file, :except => [:delete_revision]
|
||||
before_action :find_revision, :only => [:delete_revision]
|
||||
before_action :find_file, :except => [:delete_revision, :obsolete_revision]
|
||||
before_action :find_revision, :only => [:delete_revision, :obsolete_revision]
|
||||
before_action :authorize
|
||||
before_action :tree_view, :only => [:delete]
|
||||
before_action :permissions
|
||||
@ -244,6 +244,18 @@ class DmsfFilesController < ApplicationController
|
||||
redirect_to :action => 'show', :id => @file
|
||||
end
|
||||
|
||||
def obsolete_revision
|
||||
if @revision
|
||||
if @revision.obsolete()
|
||||
flash[:notice] = l(:notice_revision_obsoleted)
|
||||
log_activity('obsoleted')
|
||||
else
|
||||
flash[:error] = @revision.errors.full_messages.join(', ')
|
||||
end
|
||||
end
|
||||
redirect_to :action => 'show', :id => @file
|
||||
end
|
||||
|
||||
def lock
|
||||
if @file.locked?
|
||||
flash[:warning] = l(:warning_file_already_locked)
|
||||
|
||||
@ -109,6 +109,16 @@ class DmsfFileRevision < ActiveRecord::Base
|
||||
end
|
||||
end
|
||||
|
||||
def obsolete()
|
||||
if self.dmsf_file.locked_for_user?
|
||||
errors[:base] << l(:error_file_is_locked)
|
||||
return false
|
||||
end
|
||||
|
||||
self.workflow = DmsfWorkflow::STATE_OBSOLETE
|
||||
save
|
||||
end
|
||||
|
||||
def restore
|
||||
self.deleted = DmsfFile::STATUS_ACTIVE
|
||||
self.deleted_by_user = nil
|
||||
@ -227,6 +237,8 @@ class DmsfFileRevision < ActiveRecord::Base
|
||||
str + l(:title_assigned)
|
||||
when DmsfWorkflow::STATE_REJECTED
|
||||
str + l(:title_rejected)
|
||||
when DmsfWorkflow::STATE_OBSOLETE
|
||||
str + l(:title_obsolete)
|
||||
else
|
||||
str + l(:title_none)
|
||||
end
|
||||
|
||||
@ -62,6 +62,7 @@ class DmsfWorkflow < ActiveRecord::Base
|
||||
STATE_WAITING_FOR_APPROVAL = 1
|
||||
STATE_APPROVED = 2
|
||||
STATE_REJECTED = 4
|
||||
STATE_OBSOLETE = 5
|
||||
|
||||
STATUS_LOCKED = 0
|
||||
STATUS_ACTIVE = 1
|
||||
@ -239,5 +240,5 @@ class DmsfWorkflow < ActiveRecord::Base
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
||||
@ -91,6 +91,10 @@
|
||||
delete_revision_path(revision),
|
||||
:data => {:confirm => l(:text_are_you_sure)},
|
||||
:title => l(:title_delete_revision) if @file_delete_allowed && (@file.dmsf_file_revisions.visible.count > 1) %>
|
||||
<%= link_to image_tag('/../../plugin_assets/redmine_dmsf/images/obsolete.png'),
|
||||
obsolete_revision_path(revision),
|
||||
:data => {:confirm => l(:text_are_you_sure)},
|
||||
:title => l(:title_obsolete_revision) if @file_delete_allowed && (revision.workflow == DmsfWorkflow::STATE_APPROVED) %>
|
||||
</div>
|
||||
<i><%= l(:info_revision, :rev => revision.id) %></i>
|
||||
<%= (revision.source_revision.nil? ? l(:label_created) : l(:label_changed)).downcase %>
|
||||
|
||||
0
assets/images/obsolete.png
Normal file
0
assets/images/obsolete.png
Normal file
@ -48,6 +48,7 @@ en:
|
||||
notice_file_deleted: File deleted
|
||||
error_at_least_one_revision_must_be_present: At least one revision must be present
|
||||
notice_revision_deleted: Revision deleted
|
||||
notice_revision_obsoleted: Revision obsoleted
|
||||
warning_one_of_files_locked: One of files locked
|
||||
notice_file_revision_created: File revision created
|
||||
notice_your_preferences_were_saved: Your preferences were saved
|
||||
@ -115,6 +116,7 @@ en:
|
||||
heading_revisions: Revisions
|
||||
title_download: Download
|
||||
title_delete_revision: Delete revision
|
||||
title_obsolete_revision: Obsolete revision
|
||||
label_created: Created
|
||||
label_changed: Changed
|
||||
info_changed_by_user: "%{changed} by"
|
||||
@ -270,6 +272,7 @@ en:
|
||||
title_assigned: Assigned
|
||||
title_approval: Approval
|
||||
title_rejected: Rejected
|
||||
title_obsolete: Obsolete
|
||||
dmsf_and: AND
|
||||
dmsf_or: OR
|
||||
dmsf_new_step: New step
|
||||
|
||||
@ -48,6 +48,7 @@ es:
|
||||
notice_file_deleted: Archivo borrado
|
||||
error_at_least_one_revision_must_be_present: al menos una revisión debe estar presente
|
||||
notice_revision_deleted: Revision eliminada correctamente
|
||||
notice_revision_obsoleted: Revision obsoletada correctamente
|
||||
warning_one_of_files_locked: Uno de los archivos está bloqueado
|
||||
notice_file_revision_created: Revision de archivos creada correctamente
|
||||
notice_your_preferences_were_saved: Sus preferencias han sido guardadas correctamente
|
||||
@ -115,6 +116,7 @@ es:
|
||||
heading_revisions: Revisiones
|
||||
title_download: Descargar
|
||||
title_delete_revision: Eliminar revisión
|
||||
title_obsolete_revision: Obsoletar revisión
|
||||
label_created: Creado
|
||||
label_changed: Modificado
|
||||
info_changed_by_user: "%{changed} por"
|
||||
@ -269,6 +271,7 @@ es:
|
||||
title_assigned: Asignado
|
||||
title_approval: Aprobar
|
||||
title_rejected: Rechazado
|
||||
title_obsolete: Obsoleto
|
||||
dmsf_and: Y
|
||||
dmsf_or: O
|
||||
dmsf_new_step: Nuevo Paso
|
||||
|
||||
@ -88,6 +88,7 @@ if Redmine::Plugin.installed? :redmine_dmsf
|
||||
post '/dmsf/files/:id/delete', :controller => 'dmsf_files', :action => 'delete', :as => 'delete_dmsf_files'
|
||||
post '/dmsf/files/:id/revision/create', :controller => 'dmsf_files', :action => 'create_revision'
|
||||
get '/dmsf/files/:id/revision/delete', :controller => 'dmsf_files', :action => 'delete_revision', :as => 'delete_revision'
|
||||
get '/dmsf/files/:id/revision/obsolete', :controller => 'dmsf_files', :action => 'obsolete_revision', :as => 'obsolete_revision'
|
||||
get '/dmsf/files/:id/download', :to => 'dmsf_files#view', :download => '', :as => 'download_dmsf_file' # Otherwise will not route nil into the download param
|
||||
get '/dmsf/files/:id/view', :to => 'dmsf_files#view', :as => 'view_dmsf_file'
|
||||
get '/dmsf/files/:id', :controller => 'dmsf_files', :action => 'show', :as => 'dmsf_file'
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user