diff --git a/app/assets/javascripts/projects/index.js b/app/assets/javascripts/projects/index.js index 0843047bf..0c35262b2 100644 --- a/app/assets/javascripts/projects/index.js +++ b/app/assets/javascripts/projects/index.js @@ -101,30 +101,7 @@ var ProjectsIndex = (function() { // init delete project folders function initDeleteFoldersToolbarButton() { - $(projectsWrapper) - .on('ajax:before', '.delete-folders-btn', function() { - let buttonForm = $(this); - buttonForm.find('input[name="project_folders_ids[]"]').remove(); - selectedProjectFolders.forEach(function(id) { - $('').attr({ - type: 'hidden', - name: 'project_folders_ids[]', - value: id - }).appendTo(buttonForm); - }); - }) - .on('ajax:success', '.delete-folders-btn', function(ev, data) { - // Add and show modal - let deleteModal = $(data.html); - $(projectsWrapper).append(deleteModal); - deleteModal.modal('show'); - // Remove modal when it gets closed - deleteModal.on('hidden.bs.modal', function() { - $(this).remove(); - }); - }); - - $(projectsWrapper) + $(document) .on('ajax:success', '.delete-folders-form', function(ev, data) { $('.modal-project-folder-delete').modal('hide'); HelperModule.flashAlertMsg(data.message, 'success'); diff --git a/app/assets/stylesheets/shared/action_toolbar.scss b/app/assets/stylesheets/shared/action_toolbar.scss index bdd4f6aa5..f8af9b06a 100644 --- a/app/assets/stylesheets/shared/action_toolbar.scss +++ b/app/assets/stylesheets/shared/action_toolbar.scss @@ -1,5 +1,6 @@ .sn-action-toolbar { background: $color-concrete; + z-index: 2; .btn:hover { background: $color-white; diff --git a/app/controllers/project_folders_controller.rb b/app/controllers/project_folders_controller.rb index ae089f3b5..6e6873c35 100644 --- a/app/controllers/project_folders_controller.rb +++ b/app/controllers/project_folders_controller.rb @@ -99,12 +99,12 @@ class ProjectFoldersController < ApplicationController def destroy_modal render json: { html: render_to_string(partial: 'projects/index/modals/project_folder_delete.html.erb', - locals: { project_folders_ids: params[:project_folders_ids] }) + locals: { project_folder_ids: params[:project_folder_ids] }) } end def destroy - project_folders = current_team.project_folders.where(id: params[:project_folders_ids]) + project_folders = current_team.project_folders.where(id: params[:project_folder_ids]) counter = 0 project_folders.each do |folder| next if folder.projects.exists? || folder.project_folders.exists? || !can_manage_team?(current_team) diff --git a/app/services/toolbars/experiments_service.rb b/app/services/toolbars/experiments_service.rb index 259e19fbb..bf820c8a9 100644 --- a/app/services/toolbars/experiments_service.rb +++ b/app/services/toolbars/experiments_service.rb @@ -56,7 +56,7 @@ module Toolbars { name: 'edit', label: I18n.t('experiments.index.edit_option'), - icon: 'fa fa-pen', + icon: 'fa fa-pencil-alt', button_class: 'edit-btn', path: edit_experiment_path(experiment), type: 'remote-modal' diff --git a/app/services/toolbars/my_modules_service.rb b/app/services/toolbars/my_modules_service.rb index 70de06baf..60fb7fee7 100644 --- a/app/services/toolbars/my_modules_service.rb +++ b/app/services/toolbars/my_modules_service.rb @@ -58,7 +58,7 @@ module Toolbars { name: 'edit', label: I18n.t('experiments.table.toolbar.edit'), - icon: 'fa fa-pen', + icon: 'fa fa-pencil-alt', button_id: 'editTask', type: :legacy } diff --git a/app/services/toolbars/projects_service.rb b/app/services/toolbars/projects_service.rb index 5abb865e0..975da0148 100644 --- a/app/services/toolbars/projects_service.rb +++ b/app/services/toolbars/projects_service.rb @@ -31,14 +31,15 @@ module Toolbars return [] if @item_type == :none [ + restore_action, edit_action, access_action, move_action, export_action, archive_action, - restore_action, comments_action, - activities_action + activities_action, + delete_folder_action ].compact end @@ -47,20 +48,33 @@ module Toolbars def edit_action return unless @single - return unless @item_type == :project + if @items.first.is_a?(Project) + project = @items.first - project = @items.first + return unless can_manage_project?(project) - return unless can_manage_project?(project) + { + name: 'edit', + label: I18n.t('projects.index.edit_option'), + icon: 'fas fa-pencil-alt', + button_class: 'edit-btn', + path: edit_project_path(project), + type: :legacy + } + else + project_folder = @items.first - { - name: 'edit', - label: I18n.t('projects.index.edit_option'), - icon: 'fa fa-pen', - button_class: 'edit-btn', - path: edit_project_path(project), - type: :legacy - } + return unless can_create_project_folders?(project_folder.team) + + { + name: 'edit', + label: I18n.t('projects.index.edit_option'), + icon: 'fas fa-pencil-alt', + button_class: 'edit-btn', + path: edit_project_folder_path(project_folder), + type: :legacy + } + end end def access_action @@ -81,7 +95,7 @@ module Toolbars { name: 'access', label: I18n.t('general.access'), - icon: 'fa fa-door-open', + icon: 'fas fa-door-open', button_class: 'access-btn', path: path, type: 'remote-modal' @@ -116,7 +130,7 @@ module Toolbars def archive_action return unless @items.all? do |item| - item.is_a?(Project) ? can_archive_project?(item) : can_manage_team?(item.team) + item.is_a?(Project) && can_archive_project?(item) end { @@ -132,7 +146,7 @@ module Toolbars def restore_action return unless @items.all? do |item| - item.is_a?(Project) ? can_restore_project?(item) : item.archived? && can_manage_team?(item.team) + item.is_a?(Project) && can_restore_project?(item) end { @@ -148,7 +162,7 @@ module Toolbars def delete_folder_action return unless @items.all? do |item| - item.is_a?(Folder) && can_delete_project_folder?(item) + item.is_a?(ProjectFolder) && can_delete_project_folder?(item) end { @@ -156,9 +170,8 @@ module Toolbars label: I18n.t('general.delete'), icon: 'fas fa-trash', button_class: 'delete-folders-btn', - path: destroy_modal_project_folders_url, - type: :request, - request_method: :post + path: destroy_modal_project_folders_path(project_folder_ids: @items.map(&:id)), + type: 'remote-modal' } end diff --git a/app/views/projects/index/modals/_project_folder_delete.html.erb b/app/views/projects/index/modals/_project_folder_delete.html.erb index aed98f23b..e506bf027 100644 --- a/app/views/projects/index/modals/_project_folder_delete.html.erb +++ b/app/views/projects/index/modals/_project_folder_delete.html.erb @@ -8,7 +8,7 @@ diff --git a/config/routes.rb b/config/routes.rb index e882cabb6..6dc18dc44 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -374,7 +374,7 @@ Rails.application.routes.draw do post 'move_to', to: 'project_folders#move_to', defaults: { format: 'json' } get 'move_to_modal', to: 'project_folders#move_to_modal', defaults: { format: 'json' } post 'destroy', to: 'project_folders#destroy', as: 'destroy', defaults: { format: 'json' } - post 'destroy_modal', to: 'project_folders#destroy_modal', defaults: { format: 'json' } + get 'destroy_modal', to: 'project_folders#destroy_modal', defaults: { format: 'json' } end end get 'project_folders/:project_folder_id', to: 'projects#index', as: :project_folder_projects