About This File
multiSelect - это дополнение к CRM-системе на базе SugarCRM/SuiteCRM, которое позволяет отображать выпадающие списки при поиске записей модулей в более компактном виде. Вот смотрите, на примере модуля Контрагенты:
Здесь поля "Тип", "Отрасль" и "Ответственный" - это списки. В них можно выбрать одно или несколько значений, и CRM-система будет искать Контрагентов в соответствии с выбранными значениями. Когда списков на странице мало - их компактное отображение не является какой-либо важной задачей. Но вот если списков много, то внешний вид становится достаточно ужасным. Или, например, на одной строке поиска располагаются поля в виде строки и в виде мульти-списка. Разная высота полей просто убивает весь внешний вид поиска, делая его просто свалкой каких то полей. С этим очень не удобно работать.
В итоге я сделал небольшое дополнение, которое позволяет поля типа "список" делать однострочными не теряя при этом возможности выбрать несколько значений из списка. Выделил это дополнение в виде расширения и предоставляю его вам, может кому и пригодится....
Ставится расширение в стандартный Установщик модулей. Для этого идем в Администрирование -> Загрузчик модулей:
Далее выбираем ранее скачанный вами файл с раширением и нажимаем кнопку "Загрузить":
Модуль должен появиться в списке расширений, готовых к установке. Нажимаем кнопку "Установить":
Далее система вам покажет мои условия распространения этого модуля: я ни за что не отвечаю, и если что то там пойдет не так - я не виноват. Если такие условия использования модуля вам подходят - выберите пункт "Принимаю" и жмите кнопку "Вперед". Если не подходят - жмите кнопку "Отказаться", или просто прекратите установку модуля, удалите его из списка модулей и не используйте как-либо еще в вашей CRM-системе:
Если условия использования расширения были вами приняты, то система произведет установку модуля multiSelect в вашу CRM-систему, о чем сообщит по окончании процесса установки 100% полоской и кучей информации технического характера типа вот такого:
Если вы перемотаете страницу в самый низ, то увидите там кнопку "Возврат на страницу загрузки модулей". Нажимите ее для возврата:
Как вы можете увидеть модуль multiSelect был перемещен в блок установленных модулей:
Теперь все выпадающие списки, которые используются при поиске записей в модулях, будут иметь однострочный вид:
Если кликнуть на поле со списком, то откроется список всех возможных значений, в котором вы сможете выбрать одно или несколько значений. Чтобы убрать список всех значений приведя обратно однострочный вид - нужно кликнуть мышкой вне поля. Если было выбрано одно значение, то в поле отобразится это выбранное значение. Если было выбрано несколько значений, то отобразится указание кол-ва выбранных значений:
И еще одна маленькая подсказка по настройке: когда вы кликаете по такому полю, то появляется список высотой из 6 строк. Это кол-во строк по умолчанию. Это не совсем удобно для длинных списков: их приходится прокручивать. Но вы можете переопределить кол-во строк для того или иного списка. Правда сделать это можно только немного подправив код проекта. Через админку или еще как-либо без доступа к исходникам - не получится. Откройте файл searchdefs.php для того модуля, где вы хотите подправить кол-во строк. Например для Контрагентов это modules/Accounts/metadata/searchdefs.php (или custom/modules/Accounts/metadata/searchdefs.php, если есть). Там ищете нужное название поля, и добавляете в его описание блок:
'displayParams' => array( 'size' => 11, ),
Таким образом, например, описание поля "Тип" в Контрагентах примет вид:
'account_type' => array ( 'name' => 'account_type', 'default' => true, 'width' => '10%', 'displayParams' => array( 'size' => 11, ), ),
Тем самым я указал, что высота списка должна быть 11 строк. Это как раз размер списка с типами контрагентов. После этого в некоторых случаях требуется запустить "Быстрое восстановление" в Администрирование -> Восстановление.
В результате после перезагрузки страницы с списком Контрагентов при клике на поле "Тип" у вас должен появиться список со всеми возможными значениями без прокрутки:
Дополнительная информация:
- Посмотреть исходные коды расширения и поучавствовать в развитии вы можете в проекте на Bitbucket