#Автосаджест выбора сотрудников в AirPlans.
##Формат входных данных
[{
id: 1,
name:'Элит',
departments: [{
id: 1,
name: 'IT отдел',
employees:[{
fullName: 'Уруков Андрей',
avatarUrl: 'https://s3.amazonaws.com/airplans-staging/avatars/s/1.jpg',
id: 1,
position:'Программист'
}]
}]
}]
##Выходные данные
Айдишники выбранных сотрудников через запятую
##Настройки (Options)
###Режим выбора
-
####Single Выбрать можно только 1 сотрудника. Переход из состояния Selected в состояние Focus осуществляется после нажатия на крестик справа. Дропдаун появляется в состоянии фокуса.
-
####Multi Выбрать можно любое количество сотрудников. Можно выбрать целиком отдел. Отдел выбирается кликом на названии отдела, после чего автоматом помечаются выбранными все сотрудники этого отдела
###Вид отображения выбранной группы сотрудников
-
####List Сотрудники отображаются обычным списком, где порядок не важен.
-
###Ordered list Для составления цепочки согласования. Сотрудники отображаются в порядке следования, в виде диаграммы. Порядок следования можно менять перетаскиванием
##API
- Установка значений
- Получение текущих выбранных значений
- Колбэки
##Поддержка клавиатуры
-
Навигация по текущему списку должна быть возможна с использованием стрелок на клавиатуре:
- Esc – схлопывание выпадающего списка
- Enter – подтверждение выбора
-
Удаление из выбранных Нажатием на пиктограмму креста в блоке сотрудника, сотрудник должен удаляться из выбранных.
##Поиск
При нажатии на поле ввода сотрудника сразу появляется выпадающий список с выбором даже если пользователь еще ничего не ввел. Как только пользователь начал вводить символы, выпадающий список переключается в режим поиска по введеному шаблону – сбрасывается текущая выбранная компания и сотрудники фильтруются по суммарному списку всех сотрудников всех компаний, вывод фильтрованного списка идет без группировки по отделам. После ввода символа выделяется первый сотрудник из отфильтрованного списка.
##Встраиваемость в хтмл форму
Контрол, расположенный внутри хтмл формы, должен поддерживать вывод выбранных данных в параметры запроса при сабмите этой формы (hidden inputs).
##Если отфильтрованный список пустой, то выводится:
Вертикальный скрол списка как в диалогах контакта, также как у нас сейчас сделан в текущей реализации комбобокса.
##Дальнейшее усовершенстование
- Анимация
- Отображение выбранных сотрудников
- в зависимости от кол-ва
- в зависимости от количества выбранных сотрудников выбирается оптимальный способов их
отображения (для эффективности использования доступности пространства).
- До 10 сотрудников
- Более 10 сотрудников
- Ajax загрузка входных данных и ajax поиск
- При выборе всего отдела вместо полного списка сотрудников отображается только название отдела.
- Избранные
- Умный поиск – cортировка результатов поиска идет на основе весовых критериев(когда последний раз выбирал этого сотрудника, сколько раз был выбран этот сотрудник).