Redirect to parent folder after folder edit #1046
This commit is contained in:
parent
1b56f6a782
commit
dffa7438ff
@ -188,6 +188,7 @@ class DmsfController < ApplicationController
|
||||
@parent = @folder.dmsf_folder
|
||||
@pathfolder = copy_folder(@folder)
|
||||
@force_file_unlock_allowed = User.current.allowed_to?(:force_file_unlock, @project)
|
||||
@redirect_to_folder_id = params[:redirect_to_folder_id]
|
||||
end
|
||||
|
||||
def create
|
||||
@ -205,10 +206,10 @@ class DmsfController < ApplicationController
|
||||
format.html {
|
||||
if saved
|
||||
flash[:notice] = l(:notice_folder_created)
|
||||
redirect_to dmsf_folder_path(:id => @project, :folder_id => @folder.dmsf_folder)
|
||||
redirect_to dmsf_folder_path(id: @project, folder_id: @folder.dmsf_folder)
|
||||
else
|
||||
@pathfolder = @parent
|
||||
render :action => 'edit'
|
||||
render action: 'edit'
|
||||
end
|
||||
}
|
||||
end
|
||||
@ -217,13 +218,13 @@ class DmsfController < ApplicationController
|
||||
|
||||
def save
|
||||
unless params[:dmsf_folder]
|
||||
redirect_to dmsf_folder_path(:id => @project, :folder_id => @folder)
|
||||
redirect_to dmsf_folder_path(id: @project, folder_id: @folder)
|
||||
return
|
||||
end
|
||||
@pathfolder = copy_folder(@folder)
|
||||
saved = @folder.update_from_params(params)
|
||||
respond_to do |format|
|
||||
format.api {
|
||||
format.api {
|
||||
unless saved
|
||||
render_validation_errors(@folder)
|
||||
end
|
||||
@ -231,9 +232,11 @@ class DmsfController < ApplicationController
|
||||
format.html {
|
||||
if saved
|
||||
flash[:notice] = l(:notice_folder_details_were_saved)
|
||||
redirect_to dmsf_folder_path(:id => @project, :folder_id => @folder.dmsf_folder)
|
||||
redirect_to_folder_id = params[:dmsf_folder][:redirect_to_folder_id]
|
||||
redirect_to_folder_id = @folder.dmsf_folder.id if(@folder.dmsf_folder && redirect_to_folder_id.blank?)
|
||||
redirect_to dmsf_folder_path(id: @project, folder_id: redirect_to_folder_id)
|
||||
else
|
||||
render :action => 'edit'
|
||||
render action: 'edit'
|
||||
end
|
||||
}
|
||||
end
|
||||
|
||||
@ -67,6 +67,7 @@
|
||||
<%= labelled_form_for(@folder, :url => {:action => create ? 'create' : 'save', :id => @project, :folder_id => @folder, :parent_id => @parent},
|
||||
:html => {:method=>:post}) do |f| %>
|
||||
<%= error_messages_for(@folder) %>
|
||||
<%= f.hidden_field :redirect_to_folder_id, value: @redirect_to_folder_id %>
|
||||
<div class="box tabular">
|
||||
<p>
|
||||
<%= f.text_field(:title, :required => true) %>
|
||||
|
||||
@ -31,9 +31,9 @@
|
||||
:class => 'icon icon-edit') %>
|
||||
<% elsif !@locked_for_user %>
|
||||
<%= link_to(l(:button_edit),
|
||||
edit_dmsf_path(:id => @project, :folder_id => @folder),
|
||||
:title => l(:link_edit, :title => h(@folder.title)),
|
||||
:class => 'icon icon-edit') %>
|
||||
edit_dmsf_path(id: @project, folder_id: @folder, redirect_to_folder_id: @folder.id),
|
||||
title: l(:link_edit, title: h(@folder.title)),
|
||||
class: 'icon icon-edit') %>
|
||||
<% end %>
|
||||
<% if @folder && (!@locked_for_user || User.current.allowed_to?(:force_file_unlock, @project)) %>
|
||||
<% if @folder.locked? %>
|
||||
|
||||
@ -86,10 +86,27 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase
|
||||
# Permissions OK
|
||||
@role.add_permission! :view_dmsf_folders
|
||||
@role.add_permission! :folder_manipulation
|
||||
get :edit, :params => {:id => @project, :folder_id => @folder1}
|
||||
get :edit, params: { id: @project, folder_id: @folder1}
|
||||
assert_response :success
|
||||
assert_select 'label', { :text => @custom_field.name }
|
||||
assert_select 'option', { :value => @custom_value.value }
|
||||
assert_select 'label', { text: @custom_field.name }
|
||||
assert_select 'option', { value: @custom_value.value }
|
||||
end
|
||||
|
||||
def test_edit_folder_redirection_to_the_parent_folder
|
||||
@role.add_permission! :view_dmsf_folders
|
||||
@role.add_permission! :folder_manipulation
|
||||
post :save, params: { id: @project, folder_id: @folder2.id, parent_id: @folder2.dmsf_folder.id,
|
||||
dmsf_folder: { title: @folder2.title, description: @folder2.description} }
|
||||
assert_redirected_to dmsf_folder_path(id: @project, folder_id: @folder2.dmsf_folder.id)
|
||||
end
|
||||
|
||||
def test_edit_folder_redirection_to_the_same_folder
|
||||
@role.add_permission! :view_dmsf_folders
|
||||
@role.add_permission! :folder_manipulation
|
||||
post :save, params: { id: @project, folder_id: @folder2.id, parent_id: @folder2.dmsf_folder.id,
|
||||
dmsf_folder: { title: @folder2.title, description: @folder2.description,
|
||||
redirect_to_folder_id: @folder2.id } }
|
||||
assert_redirected_to dmsf_folder_path(id: @project, folder_id: @folder2.id)
|
||||
end
|
||||
|
||||
def test_trash_forbidden
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user