From 5cd32d5cfacbccaa6251e06bfbca440b3e02ccbc Mon Sep 17 00:00:00 2001 From: Giga Chubinidze Date: Wed, 24 May 2023 13:48:32 +0400 Subject: [PATCH] hound fix --- app/assets/javascripts/repositories/index.js | 2 +- app/assets/stylesheets/repository/index.scss | 9 +- app/services/toolbars/repositories_service.rb | 218 +++++++++--------- 3 files changed, 113 insertions(+), 116 deletions(-) diff --git a/app/assets/javascripts/repositories/index.js b/app/assets/javascripts/repositories/index.js index 9bfa14e2f..00ec40b95 100644 --- a/app/assets/javascripts/repositories/index.js +++ b/app/assets/javascripts/repositories/index.js @@ -196,4 +196,4 @@ if (notTurbolinksPreview()) { initRepositoriesDataTable('#repositoriesList', $('.repositories-index').hasClass('archived')); } -}()); \ No newline at end of file +}()); diff --git a/app/assets/stylesheets/repository/index.scss b/app/assets/stylesheets/repository/index.scss index 6fba5bcc4..936a2d631 100644 --- a/app/assets/stylesheets/repository/index.scss +++ b/app/assets/stylesheets/repository/index.scss @@ -139,10 +139,11 @@ } #repositoriesList_wrapper { - display: flex; - flex-direction: column; - height: 100%; - width: 100%; + display: flex; + flex-direction: column; + height: 100%; + width: 100%; + .dataTables_scroll { display: flex; flex-direction: column; diff --git a/app/services/toolbars/repositories_service.rb b/app/services/toolbars/repositories_service.rb index 63c6864d0..f8bfbbbf7 100644 --- a/app/services/toolbars/repositories_service.rb +++ b/app/services/toolbars/repositories_service.rb @@ -1,115 +1,111 @@ # frozen_string_literal: true module Toolbars - class RepositoriesService - attr_reader :current_user - - include Canaid::Helpers::PermissionsHelper - include Rails.application.routes.url_helpers - - def initialize(current_user, current_team, repository_ids: []) - @current_user = current_user - @current_team = current_team - @repositories = Repository.readable_by_user(current_user) - .where(id: repository_ids) - @repository = @repositories.length == 1 ? @repositories.first : nil - @archived_state = @repositories.all.any?(&:archived?) - end - - def actions - return [] if @repositories.none? - - if @archived_state - [restore_action, delete_action] - else - [rename_action, duplicate_action, archive_action, share_action] - end.compact - end - - private - - def rename_action - return unless @repository - - { - name: 'rename', - label: I18n.t('libraries.index.buttons.edit'), - button_id: 'renameRepoBtn', - icon: 'fas fa-pencil-alt', - path: team_repository_rename_modal_path(@current_team, repository_id: @repository), - type: 'remote-modal' - } - end - - def duplicate_action - return unless @repository - - return unless can_create_repositories?(@current_team) - - { - name: 'duplicate', - label: I18n.t('libraries.index.buttons.duplicate'), - button_id: 'copyRepoBtn', - icon: 'fas fa-copy', - path: team_repository_copy_modal_path(@current_team, repository_id: @repository), - type: 'remote-modal' - } - end - - def archive_action - return unless @repositories.all? { |repository| can_archive_repository?(repository) } - - { - name: 'archive', - label: I18n.t('libraries.index.buttons.archive'), - button_id: 'archiveRepoBtn', - icon: 'fas fa-archive', - path: archive_team_repositories_path(@current_team), - type: :request, - request_method: :post - } - end - - def share_action - return unless @repository - - return unless can_share_repository?(@repository) - - { - name: 'share', - label: I18n.t('repositories.index.share_inventory'), - icon: 'fas fa-user-plus', - button_class: 'share-repository-button', - path: team_repository_share_modal_path(@current_team, repository_id: @repository), - type: 'remote-modal' - } - end - - def restore_action - return unless @repositories.all? { |repository| can_archive_repository?(repository) } - - { - name: 'restore', - label: I18n.t('libraries.index.buttons.restore'), - icon: 'fas fa-undo', - button_id: 'restoreRepoBtn', - path: restore_team_repositories_path(@current_team), - type: :request, - request_method: :post - } - end - - def delete_action - return unless @repository - - { - name: 'delete', - label: I18n.t('libraries.index.buttons.delete'), - icon: 'fas fa-trash', - button_id: 'deleteRepoBtn', - path: team_repository_destroy_modal_path(@current_team, repository_id: @repository), - type: 'remote-modal' - } - end + class RepositoriesService + attr_reader :current_user + + include Canaid::Helpers::PermissionsHelper + include Rails.application.routes.url_helpers + + def initialize(current_user, current_team, repository_ids: []) + @current_user = current_user + @current_team = current_team + @repositories = Repository.readable_by_user(current_user) + .where(id: repository_ids) + @repository = @repositories.length == 1 ? @repositories.first : nil + @archived_state = @repositories.all.any?(&:archived?) end - end \ No newline at end of file + + def actions + return [] if @repositories.none? + + if @archived_state + [restore_action, delete_action] + else + [rename_action, duplicate_action, archive_action, share_action] + end.compact + end + + private + + def rename_action + return unless @repository + + { + name: 'rename', + label: I18n.t('libraries.index.buttons.edit'), + button_id: 'renameRepoBtn', + icon: 'fas fa-pencil-alt', + path: team_repository_rename_modal_path(@current_team, repository_id: @repository), + type: 'remote-modal' + } + end + + def duplicate_action + return unless @repository && can_create_repositories?(@current_team) + + { + name: 'duplicate', + label: I18n.t('libraries.index.buttons.duplicate'), + button_id: 'copyRepoBtn', + icon: 'fas fa-copy', + path: team_repository_copy_modal_path(@current_team, repository_id: @repository), + type: 'remote-modal' + } + end + + def archive_action + return unless @repositories.all? { |repository| can_archive_repository?(repository) } + + { + name: 'archive', + label: I18n.t('libraries.index.buttons.archive'), + button_id: 'archiveRepoBtn', + icon: 'fas fa-archive', + path: archive_team_repositories_path(@current_team), + type: :request, + request_method: :post + } + end + + def share_action + return unless @repository && can_share_repository?(@repository) + + { + name: 'share', + label: I18n.t('repositories.index.share_inventory'), + icon: 'fas fa-user-plus', + button_class: 'share-repository-button', + path: team_repository_share_modal_path(@current_team, repository_id: @repository), + type: 'remote-modal' + } + end + + def restore_action + return unless @repositories.all? { |repository| can_archive_repository?(repository) } + + { + name: 'restore', + label: I18n.t('libraries.index.buttons.restore'), + icon: 'fas fa-undo', + button_id: 'restoreRepoBtn', + path: restore_team_repositories_path(@current_team), + type: :request, + request_method: :post + } + end + + def delete_action + return unless @repository + + { + name: 'delete', + label: I18n.t('libraries.index.buttons.delete'), + icon: 'fas fa-trash', + button_id: 'deleteRepoBtn', + path: team_repository_destroy_modal_path(@current_team, repository_id: @repository), + type: 'remote-modal' + } + end + end +end