mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-12-09 05:37:36 +08:00
SCI-4780 Added archive and restore items to repository actions dropdown, minor refactoring of controller
This commit is contained in:
parent
efbc05e00e
commit
41bb825f33
8 changed files with 46 additions and 25 deletions
|
|
@ -173,7 +173,21 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
$('.create-new-repository').initializeModal('#create-repo-modal');
|
$('.create-new-repository').initializeModal('#create-repo-modal');
|
||||||
|
|
||||||
|
function initArchivingActionsInDropdown(){
|
||||||
|
$('.archive-repository-option').on('click', function(event){
|
||||||
|
event.preventDefault();
|
||||||
|
var link = event.target.getAttribute("href");
|
||||||
|
$.ajax({
|
||||||
|
type: 'GET',
|
||||||
|
url: link,
|
||||||
|
success: pageReload
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
initImportRecordsModal();
|
initImportRecordsModal();
|
||||||
initTable();
|
initTable();
|
||||||
initRepositoryViewSwitcher();
|
initRepositoryViewSwitcher();
|
||||||
|
initArchivingActionsInDropdown();
|
||||||
}(window));
|
}(window));
|
||||||
|
|
|
||||||
|
|
@ -128,7 +128,7 @@ class RepositoriesController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def archive
|
def archive
|
||||||
service = Repositories::ArchiveRepositoryService.call(repositories: selected_repos_params,
|
service = Repositories::ArchiveRepositoryService.call(repositories: selected_repositories,
|
||||||
user: current_user,
|
user: current_user,
|
||||||
team: current_team)
|
team: current_team)
|
||||||
if service.succeed?
|
if service.succeed?
|
||||||
|
|
@ -139,7 +139,7 @@ class RepositoriesController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def restore
|
def restore
|
||||||
service = Repositories::RestoreRepositoryService.call(repositories: selected_repos_params,
|
service = Repositories::RestoreRepositoryService.call(repositories: selected_repositories,
|
||||||
user: current_user,
|
user: current_user,
|
||||||
team: current_team)
|
team: current_team)
|
||||||
if service.succeed?
|
if service.succeed?
|
||||||
|
|
@ -430,9 +430,15 @@ class RepositoriesController < ApplicationController
|
||||||
params.permit(:id, :file, :file_id, mappings: {}).to_h
|
params.permit(:id, :file, :file_id, mappings: {}).to_h
|
||||||
end
|
end
|
||||||
|
|
||||||
def selected_repos_params
|
def selected_repositories
|
||||||
process_ids = params[:selected_repos].map(&:to_i).uniq
|
if params[:repository_id].present?
|
||||||
Repository.where(id: process_ids, team_id: current_team).pluck(:id)
|
repository_ids = params[:repository_id]
|
||||||
|
elsif params[:selected_repos].any?
|
||||||
|
repository_ids = params[:selected_repos].map(&:to_i).uniq
|
||||||
|
else
|
||||||
|
render status: :not_found
|
||||||
|
end
|
||||||
|
current_team.repositories.where(id: repository_ids)
|
||||||
end
|
end
|
||||||
|
|
||||||
def repository_response(message)
|
def repository_response(message)
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ module Repositories
|
||||||
def initialize(user:, team:, repositories:)
|
def initialize(user:, team:, repositories:)
|
||||||
@user = user
|
@user = user
|
||||||
@team = team
|
@team = team
|
||||||
@repositories = scoped_repositories(repositories)
|
@repositories = repositories
|
||||||
@errors = {}
|
@errors = {}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -27,10 +27,6 @@ module Repositories
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def scoped_repositories(_ids)
|
|
||||||
raise NotImplementedError
|
|
||||||
end
|
|
||||||
|
|
||||||
def valid?
|
def valid?
|
||||||
unless @user
|
unless @user
|
||||||
@errors[:invalid_arguments] =
|
@errors[:invalid_arguments] =
|
||||||
|
|
|
||||||
|
|
@ -24,11 +24,5 @@ module Repositories
|
||||||
|
|
||||||
self
|
self
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def scoped_repositories(ids)
|
|
||||||
Repository.where(id: ids, team_id: @team)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -24,11 +24,5 @@ module Repositories
|
||||||
|
|
||||||
self
|
self
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def scoped_repositories(ids)
|
|
||||||
Repository.where(id: ids, team_id: @team)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -94,12 +94,25 @@
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if can_manage_repository?(@repository)%>
|
<% if can_manage_repository?(@repository)%>
|
||||||
<li data-view-mode="active" data-hook="destroy-repository-option" role="separator" class="divider"></li>
|
<li data-view-mode="active" data-hook="destroy-repository-option" role="separator" class="divider"></li>
|
||||||
<li data-view-mode="active" data-hook="destroy-repository-option">
|
<li data-view-mode="active" data-hook="archive-repository-option">
|
||||||
|
<%= link_to t('repositories.index.options_dropdown.archive'),
|
||||||
|
team_repository_archive_path(current_team, @repository),
|
||||||
|
class: "archive-repository-option",
|
||||||
|
remote: true %>
|
||||||
|
</li>
|
||||||
|
<li data-view-mode="archived" data-hook="restore-repository-option">
|
||||||
|
<%= link_to t('repositories.index.options_dropdown.restore'),
|
||||||
|
team_repository_restore_path(current_team, @repository),
|
||||||
|
class: "archive-repository-option",
|
||||||
|
remote: true %>
|
||||||
|
</li>
|
||||||
|
<li data-view-mode="archived" data-hook="destroy-repository-option">
|
||||||
<%= link_to t('repositories.index.options_dropdown.delete'),
|
<%= link_to t('repositories.index.options_dropdown.delete'),
|
||||||
team_repository_destroy_modal_path(current_team, repository_id: @repository),
|
team_repository_destroy_modal_path(current_team, repository_id: @repository),
|
||||||
class: "delete-repo-option",
|
class: "delete-repo-option",
|
||||||
remote: true %>
|
remote: true %>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<% end %>
|
<% end %>
|
||||||
</ul>
|
</ul>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
||||||
|
|
@ -1086,6 +1086,8 @@ en:
|
||||||
rename: "Rename inventory"
|
rename: "Rename inventory"
|
||||||
copy: "Copy inventory"
|
copy: "Copy inventory"
|
||||||
delete: "Delete inventory"
|
delete: "Delete inventory"
|
||||||
|
archive: 'Archive inventory'
|
||||||
|
restore: 'Restore inventory'
|
||||||
modal_delete:
|
modal_delete:
|
||||||
title_html: "Delete inventory <em>%{name}</em>"
|
title_html: "Delete inventory <em>%{name}</em>"
|
||||||
message_html: "Are you sure you want to delete inventory <em>%{name}</em>? This action is irreversible."
|
message_html: "Are you sure you want to delete inventory <em>%{name}</em>? This action is irreversible."
|
||||||
|
|
|
||||||
|
|
@ -180,6 +180,8 @@ Rails.application.routes.draw do
|
||||||
post 'copy', to: 'repositories#copy',
|
post 'copy', to: 'repositories#copy',
|
||||||
defaults: { format: 'json' }
|
defaults: { format: 'json' }
|
||||||
get :share_modal
|
get :share_modal
|
||||||
|
get :archive, to: 'repositories#archive'
|
||||||
|
get :restore, to: 'repositories#restore'
|
||||||
|
|
||||||
resources :team_repositories, only: %i(destroy) do
|
resources :team_repositories, only: %i(destroy) do
|
||||||
collection do
|
collection do
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue