scinote-web/app/components/reports/repositories_input_component.rb
2024-08-27 13:40:10 +02:00

17 lines
996 B
Ruby

# frozen_string_literal: true
module Reports
class RepositoriesInputComponent < TemplateValueComponent
def initialize(report:, name:, label:, placeholder: nil, editing: true, displayed_field: :name, user: nil)
super(report: report, name: name, label: label, placeholder: placeholder, editing: editing)
live_repositories = Repository.viewable_by_user(user, report.team).sort_by { |r| r.name.downcase }
snapshots_of_deleted = RepositorySnapshot.left_outer_joins(:original_repository)
.where(team: report.team)
.where.not(original_repository: live_repositories)
.select('DISTINCT ON ("repositories"."parent_id") "repositories".*')
.sort_by { |r| r.name.downcase }
@repositories = live_repositories + snapshots_of_deleted
@displayed_field = displayed_field
end
end
end