Расширенная функциональность
06
Май
0

Multi-Select

Multi-Select – мощное решение по реализации контрола мульти выбора в CRM. В одном решении собрано целых 4 вида его визуальной реализации:

  • Check List – список всех доступных опций. Напротив каждой – чекбокс.
  • List Box – на форме выглядит как список с уже выбранными значениями. При нажатии Edit откроется диалоговое окно, в котором пользователь должен переместить интересующие его значения из левого в правый список. Данный вид экономит место на форме, выводя элементы выбора и полный перечень значении только по требованию.
  • List View – похоже на Check List, но визуально значения могут выводятся в виде таблицы (если хватает свободного пространства вширь), в каждой ячейки которой – отдельная опция, сопровождаемая чекбоксом. К тому же, с каждой опцией может выводиться дополнительная информация со связанной записи.
  • Selectize – этот шаблон основан на популярной библиотеке Selectize (https://github.com/selectize/selectize.js). Используя Selectize, пользователи могут щелкнуть в поле и выбрать из списка доступные опции. Или может ввести их с клавиатуры.

К тому же большинство шаблонов поддерживает фильтрацию и поиск значении.

Помимо визуальных шаблонов реализации, данное решение поддерживает несколько источников данных:

  • Вывод данных из глобального пиклиста и хранение значений в одном или двух текстовых полях. Преимущества – удобный поиск через Расширенный поиск.
  • Вывод данных из связи N:N и хранение данных в этой же связи.
  • Вывод данных кастомного промежуточного объекта, имитирующего связь N:N.

Настройка:

  • Импортируйте в CRM Решение Multi-Select http://www.sonomapartners.com/tools/multiselect2015 (локальная копия).
  • Добавьте на форму один из Веб-ресурсов, соответствующих интересующему Вас контролу:
    • sonoma_/multiselect/checklist.html
    • sonoma_/multiselect/listbox.html
    • sonoma_/multiselect/listview.html
    • sonoma_/multiselect/selectize.html

    Задайте число строк – 6-8, скроллинг – никогда и отключите границу.

  • На вкладке Общие задайте кастомные параметры (какие именно – см. ниже). Параметры должны быть определены в формате (и только прописными буквами):
    [FirstOptionName]=[Value]&[SectiondOptionName]=[Value]&[ThirdOptionName]=[Value]

    • Общие параметры
      Параметр Обязательный По умолчанию Описание
      disabled Да false Если true, то контрол будет задизейблен на онлоаде.
      template Нет Имя HTML Веб-ресурса, содержащего шаблон, который будет управлять выводом опций в контроле.

      Кастомные шаблоны используется для показа пунктов в ниспадающем списке контрола Selectize или для деталей, выводимых для контрола List View.
      В качестве примера предоставлен шаблон issonoma_/multiselect/examples/ExpandedTemplate.html, который выводит даты создания и изменения.
      При составлении шаблона учтите:

      • На первой строке шаблона – объект JSON, который должен присутствовать хотя бы в пустом виде.
      • Сам шаблон следует начиная со 2 строки и ниже.
      • Стили должны быть встроены.
      • Данные для шаблона могут браться только из связанного объекта.
    • Источник данных:
      • Глобальный пиклист
        Параметр Обязательный По умолчанию Описание
        optionset Нет Название глобального пиклиста.
        attribute Да Имя текстового поля, в котором будут храниться выбранные значения.
        Поле должно быть выведено на форму (может быть скрыто).
        labelattribute Нет Имя текстового поля, в котором будут храниться выбранные текстовые значения. Может быть полезно, чтобы искать записи по выбранным значениям через расширенный поиск.
        separator Нет , Разделитель значений, которые будут записаны в текстовое поле.
        По умолчанию – запятая.
        labelseparator Нет , Разделитель текстовых значений, которые будут записаны в текстовое поле. Если этот разделитель встретится в самом текстовом значении, то он будет удален их хранимого значения.
        По умолчанию – запятая.
      • Имитация cвязи N:N
        Параметр Обязательный По умолчанию Описание
        relatedentityname Да Имя второго объекта.
        intersectentityname Да Имя связующего объекта.
        entity1attribute Да Имя лукапа на связующем объекте, который ссылается на текущий.
        entity2attribute Да Имя лукапа на связующем объекте, который ссылается на второй объект.
        openintersect Нет false Если true, то при двойном клике на опции в контроле откроется запись связующего объекта, вместо записи второго объекта.
      • Связь N:N
        Параметр Обязательный По умолчанию Описание
        manytomanyrelationship Да Имя свзяи N:N.
    • Только контрол Selectize поддерживает дополнительные параметры:
      Параметр Обязательный По умолчанию Описание
      required Нет false Если true, то рядом с полем будет отображаться красная звездочка – типа обязательный параметр. Несет чисто информативную функцию.
      label Да «» Текст, который будет выводиться рядом с контролом.



Комментарии (0)

*

code