Управление размерами autocomplete ui widget в Drupal

Попался мне UI баг, когда autocomplete слой с результатами поиска оказывался больше по ширине, чем input элемент, к которому он был прикреплен.

Не ясен был алгоритм, по которому вычислялась ширина слоя. В одних случаях это происходило корректно, а в других нет.

Пришлось копнуть в исходники jquery_ui_autocomplete, который в моём проекте поставлялся с помощью drupal модуля jquery_ui.

Как оказалось ширина слоя выбирается как максимум между шириной input элемента, к которому прикреплен виджет, и (неожиданно) шириной списка с подсказками автодополнения.

Логика, видимо, в том, что ширина не должна быть меньше поля ввода, но если подсказки шире поля ввода — то и сам слой со списком должен быть шире.

К счастью, архитектура UI виджетов предоставляет механизм перезаписи части методов. Потому, я выполнил переопределение данной функции, исправив логику вычисления ширины на ту, что мне требовалась.

Если вы нуждаетесь в решении этой проблемы в контексте drupal (9/10) проекта, то код следует оформить в виде библиотеки:

Останется только подключить библиотеку в вашей теме.

Написать комментарий

Мало букафф? Читайте есчо !

Реализация контроллера для списка autocomplete формы

Май 11, 2023 г.

См. основной материал для введения. Контроллер должен вернуть Json набор пар значений value - label. Ранее в модуле мы уже объявили связь для маршрутизации с нашим контроллером в файле custom_blocks.routing.yml. Теперь реализуем код. /src/Controller/ProductSearchAutoCompleteController.php ...

Читать

Ставим метрику на сайт с CMS Drupal

Май 16, 2023 г.

Вы получили код для вставки метрики, осталось дело за малым - разместить его на сайте. Сайт управляется Drupal 8/9/10. Я покажу как это сделать через изменение темы сайта. Первая опция - это вставить непосредственно в один из основных шаблонов ...

Читать

 

Комментарии к «Управление размерами autocomplete ui widget в Drupal»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: