mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-09-13 08:34:49 +08:00
Add deleted repositories to report
This commit is contained in:
parent
2b493ce6f6
commit
359517eb17
5 changed files with 64 additions and 36 deletions
|
@ -226,6 +226,16 @@ class MyModule < ApplicationRecord
|
|||
(live_repositories + selected_snapshots).sort_by { |r| r.name.downcase }
|
||||
end
|
||||
|
||||
def active_snapshot_or_live(repository_id)
|
||||
r = RepositoryBase.find repository_id
|
||||
|
||||
if r.is_a?(Repository) # Selected snapshot or live
|
||||
selected_snapshot(repository_id) || assigned_repositories&.where(id: repository_id)&.first
|
||||
else # snapshot for deleted Repository
|
||||
repository_snapshots.order(updated_at: :desc).first
|
||||
end
|
||||
end
|
||||
|
||||
def selected_snapshot(repository_id)
|
||||
repository_snapshots.where(parent_id: repository_id).selected.first
|
||||
end
|
||||
|
|
|
@ -15,6 +15,15 @@ class RepositorySnapshot < RepositoryBase
|
|||
|
||||
scope :selected, -> { where(selected: true) }
|
||||
|
||||
scope :with_deleted_parent_by_team, lambda { |team|
|
||||
joins(my_module: { experiment: :project })
|
||||
.where('projects.team_id = ?', team.id)
|
||||
.left_outer_joins(:original_repository)
|
||||
.where(original_repositories_repositories: { id: nil })
|
||||
.select('DISTINCT ON ("repositories"."parent_id") "repositories".*')
|
||||
.order(:parent_id, updated_at: :desc)
|
||||
}
|
||||
|
||||
def default_columns_count
|
||||
Constants::REPOSITORY_SNAPSHOT_TABLE_DEFAULT_STATE['length']
|
||||
end
|
||||
|
|
|
@ -1,44 +1,47 @@
|
|||
<% if my_module.blank? and @my_module.present? then my_module = @my_module end %>
|
||||
<% repository ||= my_module.selected_snapshot(element_id) || Repository.find(element_id) %>
|
||||
<% repository ||= my_module.active_snapshot_or_live(element_id) || Repository.find_by(id: element_id) %>
|
||||
<% if order.blank? and @order.present? then order = @order end %>
|
||||
<% timestamp = Time.current + 1.year - 1.days %>
|
||||
<% rows_json = my_module.repository_json_hot(repository, order) %>
|
||||
<div class="report-element report-module-repository-element" data-sort-hot="1" data-ts="<%= timestamp.to_i %>" data-type="my_module_repository" data-id='{ "my_module_id": <%= my_module.id %>, "repository_id": <%= repository.id %> }' data-scroll-id="<%= "#{my_module.id}_#{repository.id}" %>" data-order="<%= order == :asc ? "asc" : "desc" %>" data-name="<%= repository.name %>" data-icon-class="fas fa-list-alt">
|
||||
<div class="report-element-header">
|
||||
<div class="row">
|
||||
<div class="pull-left repository-icon">
|
||||
<i class="fas fa-list-alt"></i>
|
||||
</div>
|
||||
<div class="pull-left repository-name">
|
||||
<%=t "projects.reports.elements.module_repository.name", repository: repository.name, my_module: my_module.name %>
|
||||
</div>
|
||||
<% if defined? export_all and export_all %>
|
||||
<div class="pull-left table-name">
|
||||
<a href="<%= path %>">
|
||||
<em><%=t "projects.reports.elements.module_repository.table_name",
|
||||
name: filename %></em>
|
||||
</a>
|
||||
<% if repository.present? %>
|
||||
<% rows_json = my_module.repository_json_hot(repository, order) %>
|
||||
<div class="report-element report-module-repository-element" data-sort-hot="1" data-ts="<%= timestamp.to_i %>" data-type="my_module_repository" data-id='{ "my_module_id": <%= my_module.id %>, "repository_id": <%= repository.id %> }' data-scroll-id="<%= "#{my_module.id}_#{repository.id}" %>" data-order="<%= order == :asc ? "asc" : "desc" %>" data-name="<%= repository.name %>" data-icon-class="fas fa-list-alt">
|
||||
<div class="report-element-header">
|
||||
<div class="row">
|
||||
<div class="pull-left repository-icon">
|
||||
<i class="fas fa-list-alt"></i>
|
||||
</div>
|
||||
<div class="pull-left repository-name">
|
||||
<%=t "projects.reports.elements.module_repository.name", repository: repository.name, my_module: my_module.name %>
|
||||
<i><%= t('projects.reports.index.deleted') if repository.is_a?(RepositorySnapshot) && !repository.original_repository %></i>
|
||||
</div>
|
||||
<% if defined? export_all and export_all %>
|
||||
<div class="pull-left table-name">
|
||||
<a href="<%= path %>">
|
||||
<em><%=t "projects.reports.elements.module_repository.table_name",
|
||||
name: filename %></em>
|
||||
</a>
|
||||
</div>
|
||||
<% end %>
|
||||
<div class="pull-right controls">
|
||||
<%= render partial: "reports/elements/element_controls.html.erb", locals: { show_sort: true } %>
|
||||
</div>
|
||||
<% end %>
|
||||
<div class="pull-right controls">
|
||||
<%= render partial: "reports/elements/element_controls.html.erb", locals: { show_sort: true } %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="report-element-body">
|
||||
<% if rows_json[:data].count > 0 %>
|
||||
<input type="hidden" class="hot-table-contents hot-samples" value='<%= rows_json.to_json.force_encoding(Encoding::UTF_8) %>' />
|
||||
<div class="hot-table-container"></div>
|
||||
<table class="report-common-table-format"></table>
|
||||
<% else %>
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<em><%=t "projects.reports.elements.module_repository.no_items" %></em>
|
||||
<div class="report-element-body">
|
||||
<% if rows_json[:data].count > 0 %>
|
||||
<input type="hidden" class="hot-table-contents hot-samples" value='<%= rows_json.to_json.force_encoding(Encoding::UTF_8) %>' />
|
||||
<div class="hot-table-container"></div>
|
||||
<table class="report-common-table-format"></table>
|
||||
<% else %>
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<em><%=t "projects.reports.elements.module_repository.no_items" %></em>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="report-element-children">
|
||||
<%= children if (defined? children and children.present?) %>
|
||||
</div>
|
||||
</div>
|
||||
<div class="report-element-children">
|
||||
<%= children if (defined? children and children.present?) %>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
|
|
|
@ -74,6 +74,11 @@
|
|||
<%= form.check_box "module_repository_#{repository.id}", label: repository.name.capitalize, data: { id: repository.id } %>
|
||||
</li>
|
||||
<% end %>
|
||||
<% RepositorySnapshot.with_deleted_parent_by_team(@project.team).each do |repository| %>
|
||||
<li>
|
||||
<%= form.check_box "module_repository_#{repository.id}", label: repository.name.capitalize + " #{t('projects.reports.index.deleted')}", data: { id: repository.id } %>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
|
|
@ -379,6 +379,7 @@ en:
|
|||
new: "New report"
|
||||
edit: "Edit"
|
||||
delete: "Delete"
|
||||
deleted: "(Deleted)"
|
||||
thead_project_name: "Project name"
|
||||
thead_name: "Report name"
|
||||
thead_created_by: "Created by"
|
||||
|
|
Loading…
Add table
Reference in a new issue