From 075c115d2f6440ef1ef76af8c13881b45cb19641 Mon Sep 17 00:00:00 2001 From: Arnaud Levy <contact@arnaudlevy.com> Date: Fri, 7 Jan 2022 12:09:31 +0100 Subject: [PATCH] better forms --- app/helpers/admin/application_helper.rb | 15 +++++++++++++++ .../communication/website/posts/_form.html.erb | 18 +++++++++++------- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/app/helpers/admin/application_helper.rb b/app/helpers/admin/application_helper.rb index 8eecec816..91f5526ed 100644 --- a/app/helpers/admin/application_helper.rb +++ b/app/helpers/admin/application_helper.rb @@ -81,6 +81,21 @@ module Admin::ApplicationHelper collection end + def collection_tree_for_checkboxes(list, except = nil) + collection = collection_tree(list, except) + collection.map { |object| + [ + sanitize(object[:label]), + object[:id], + { + data: { + parent: object[:parent_id] + } + } + ] + } + end + private def polymorphic_url_param(object_or_class, **options) diff --git a/app/views/admin/communication/website/posts/_form.html.erb b/app/views/admin/communication/website/posts/_form.html.erb index 953383672..c96bd6db1 100644 --- a/app/views/admin/communication/website/posts/_form.html.erb +++ b/app/views/admin/communication/website/posts/_form.html.erb @@ -11,6 +11,17 @@ <%= f.input :text, as: :rich_text_area %> </div> </div> + <div class="card flex-fill w-100"> + <div class="card-header"> + <h5 class="card-title mb-0"><%= t('activerecord.attributes.communication/website/post.categories') %></h5> + </div> + <div class="card-body"> + <%= f.association :categories, + label_text: false, + as: :check_boxes, + collection: collection_tree_for_checkboxes(@website.categories) if @website.categories.any? %> + </div> + </div> </div> <div class="col-md-4"> <div class="card flex-fill w-100"> @@ -28,13 +39,6 @@ <%= f.input :published_at, html5: true %> <%= f.input :pinned %> <%= f.association :author, collection: current_university.people.authors.ordered %> - <%= f.association :categories, - as: :check_boxes, - collection: collection_tree(@website.categories).map { |category| [ - sanitize(category[:label]), - category[:id], - { data: { parent: category[:parent_id] } } - ] } if @website.categories.any? %> </div> </div> <div class="card flex-fill w-100"> -- GitLab