You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
21 lines
640 B
21 lines
640 B
class PaginationComponent < BaseComponent |
|
attr_reader :data, :opts |
|
def initialize(data:, opts: {}) |
|
@data = data |
|
@opts = opts |
|
end |
|
|
|
def subjects |
|
return [] if opts[:subject_ids].blank? |
|
|
|
Cdao::Subject.where(id: opts[:subject_ids].map(&:to_i)) |
|
end |
|
|
|
def custom_url(id) |
|
return search_doctrines_path(is_index_table: true, subject_ids: [id]) if opts[:is_index_table].present? && opts[:is_index_table].to_s.eql?("true") |
|
return search_doctrines_path( is_index_table: false, subject_ids: [id]) if opts[:is_index_table].present? && opts[:is_index_table].to_s.eql?("false") |
|
|
|
search_doctrines_path(id) |
|
end |
|
|
|
end
|
|
|