diff --git a/app/helpers/dmsf_queries_helper.rb b/app/helpers/dmsf_queries_helper.rb index 5332f3da..c5066758 100644 --- a/app/helpers/dmsf_queries_helper.rb +++ b/app/helpers/dmsf_queries_helper.rb @@ -30,7 +30,7 @@ module DmsfQueriesHelper case item.type when 'file' file = DmsfFile.find_by(id: item.id) - if !item.deleted && file&.locked? + if !item.deleted? && file&.locked? return content_tag(:span, val) + link_to(sprite_icon('unlock', nil, icon_only: true, size: '12'), unlock_dmsf_files_path(id: file, @@ -40,7 +40,7 @@ module DmsfQueriesHelper end when 'folder' folder = DmsfFolder.find_by(id: item.id) - if !item.deleted && folder&.locked? + if !item.deleted? && folder&.locked? return content_tag(:span, val) + link_to(sprite_icon('unlock', nil, icon_only: true, size: '12'), unlock_dmsf_path(id: folder.project, @@ -54,37 +54,37 @@ module DmsfQueriesHelper when :id case item.type when 'file' - if item&.deleted&.positive? + if item.deleted? h(value) else link_to h(value), dmsf_file_path(id: item.id) end when 'file-link' - if item&.deleted&.positive? + if item.deleted? h(item.revision_id) else link_to h(item.revision_id), dmsf_file_path(id: item.revision_id) end when 'folder' if item.id - if item&.deleted&.positive? + if item.deleted? h(value) else link_to h(value), edit_dmsf_path(id: item.project_id, folder_id: item.id) end - elsif item&.deleted&.positive? + elsif item.deleted? h(item.project_id) else link_to h(item.project_id), edit_root_dmsf_path(id: item.project_id) end when 'folder-link' if item.id - if item&.deleted&.positive? + if item.deleted? h(item.revision_id) else link_to h(item.revision_id), edit_dmsf_path(id: item.project_id, folder_id: item.revision_id) end - elsif item&.deleted&.positive? + elsif item.deleted? h(item.project_id) else link_to h(item.project_id), edit_root_dmsf_path(id: item.project_id) diff --git a/test/functional/dmsf_controller_test.rb b/test/functional/dmsf_controller_test.rb index 00ed5287..f215d93a 100644 --- a/test/functional/dmsf_controller_test.rb +++ b/test/functional/dmsf_controller_test.rb @@ -290,6 +290,14 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase assert @response.media_type.include?('text/csv') end + def test_show_locked + post '/login', params: { username: 'jsmith', password: 'jsmith' } + get "/projects/#{@project2.id}/dmsf" + assert_response :success + # An unlock icon next to a locked file + assert_select 'a.icon-unlock', count: 1 + end + def test_show_folder_doesnt_correspond_the_project post '/login', params: { username: 'jsmith', password: 'jsmith' } assert @project1 != @folder3.project