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

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

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

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

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

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

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

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

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

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

Получение и рендеринг списка дочерних терминов в Drupal

Апрель 27, 2023 г.

Небольшой примера кода для работы с таксономией в Drupal 10. Мы запросим дерево дочерних терминов и произведем их рендеринг. Для начала загрузим какой-либо термин [crayon-69b29ea1d8dca199390427/] Следующий шаг - получение дочерних элементов ...

Читать

Чем заменить file_create_url в Drupal 9/10

Январь 9, 2024 г.

Функция file_create_url устаревает, начиная с версии 9.3, а в 10й версии она уже отсутствует. Документация предлагает воспользоваться реализацией интерфейса \Drupal\Core\File\FileUrlGeneratorInterface, чтобы заместить устаревающую функцию в вашем ...

Читать

Ошибка в Drupal Adding non-existent permissions to a role is not allowed. The incorrect permissions are "..."

Июль 25, 2023 г.

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

Читать

Убираем пустые категории из фильтра во views

Сентябрь 13, 2023 г.

Весьма распространённый случай, когда в качестве exposed filter используется поле, связанное с таксономией. Так вы получаете набор опций в фильтре для своего представления, которое доступно пользователю. Также весьма часто некоторые дополнительные ...

Читать
 

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

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



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