7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'app/controllers/rivet_cms/content_manager_controller.rb', line 7
def index
content_types = Current.organization.content_types.order(:name)
documents = Document.where(organization: Current.organization).in_visible_types.order(updated_at: :desc)
if params[:type].present?
documents = documents.joins(:content_type).where(rivet_cms_content_types: { slug: params[:type] })
end
documents = documents.search(params[:q]) if params[:q].present?
page = documents.includes(:draft_revision, :content_type).page(params[:page]).per(25)
visible = permitted_documents(page)
titles = document_titles(visible)
render inertia: "ContentManager/Index", props: {
content_types: permitted(content_types, :read, :content).map { |content_type| content_type_ref_props(content_type) },
documents: visible.map { |document|
document_list_props(document, titles).merge(
content_type_name: document.content_type.name,
content_type_slug: document.content_type.slug
)
},
q: params[:q].presence,
type: params[:type].presence,
pagination: { page: page.current_page, total_pages: page.total_pages }
}
end
|