From 27048c4a5467f99f94217abe24861f289c881cb1 Mon Sep 17 00:00:00 2001 From: Oleg Valter Date: Wed, 25 Mar 2026 04:04:35 +0300 Subject: [PATCH 1/3] fixed category select modal's dropdown z-index Our modals have extremely high z-index, so any -parented element is rendered "under" them --- app/assets/javascripts/categories.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/assets/javascripts/categories.js b/app/assets/javascripts/categories.js index 3f6e4dbad..9df5c8d5f 100644 --- a/app/assets/javascripts/categories.js +++ b/app/assets/javascripts/categories.js @@ -45,7 +45,10 @@ $(() => { $('.js-category-select').each((_i, el) => { const $tgt = $(el); + /** @type {HTMLElement|undefined} */ + const modal = el.closest('.modal--container') || void 0; $tgt.select2({ + dropdownParent: modal, ajax: { url: '/categories', headers: { 'Accept': 'application/json' }, From 7995b3398831be035117e308e64c930e282ec064 Mon Sep 17 00:00:00 2001 From: Oleg Valter Date: Wed, 25 Mar 2026 04:20:05 +0300 Subject: [PATCH 2/3] fixed category name search not working at all --- app/controllers/categories_controller.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/controllers/categories_controller.rb b/app/controllers/categories_controller.rb index 52e5ba013..834ec83d9 100644 --- a/app/controllers/categories_controller.rb +++ b/app/controllers/categories_controller.rb @@ -5,7 +5,15 @@ class CategoriesController < ApplicationController before_action :verify_view_access, except: [:index, :homepage, :new, :create, :post_types] def index - @categories = Category.accessible_to(current_user).all.order(sequence: :asc, id: :asc) + @categories = if params[:term].present? + Category.search(params[:term]) + else + Category.all + end + + @categories = @categories.accessible_to(current_user) + .order(sequence: :asc, id: :asc) + respond_to do |format| format.html format.json do From f0aa6f23d9f2c537d2808fd7677751da4b09bd36 Mon Sep 17 00:00:00 2001 From: Oleg Valter Date: Wed, 25 Mar 2026 04:30:25 +0300 Subject: [PATCH 3/3] added test covering category search --- test/controllers/categories_controller_test.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/test/controllers/categories_controller_test.rb b/test/controllers/categories_controller_test.rb index e3e086aff..fa7cac5d5 100644 --- a/test/controllers/categories_controller_test.rb +++ b/test/controllers/categories_controller_test.rb @@ -9,6 +9,23 @@ class CategoriesControllerTest < ActionController::TestCase assert_not_nil assigns(:categories) end + test ':index should correctly search categories' do + get :index + assert_response(:success) + @all_categories = assigns(:categories) + assert_not_nil @all_categories + assert @all_categories.any? + + get :index, params: { term: 'meta' } + assert_response(:success) + @search_categories = assigns(:categories) + assert_not_nil @search_categories + assert @search_categories.any? + assigns(@search_categories.all? { |c| c.name.downcase.match?('meta') }) + + assert_not_equal @all_categories.size, @search_categories.size + end + test 'homepage should show categories in the correct order' do get :homepage assert_not_nil assigns(:header_categories)