# C80Push Добавляет функционал дилеров и офисов продаж. Это *ActiveAdmin* plugin. Использует *Bootstrap* и *Bootstrap Select*. Содержит модели: * Дилер * Офис * Регион Добавляет пункт меню: * Дилеры * Список дилеров * Регионы ## Usage Available helpers: * `c80_push_render_page_dealers`: отрисует js-компонент с yandex картой и фильтруемым списком дилеров слева. ## Installation Add this line to your application's Gemfile: ```ruby gem 'c80_push' ``` And then execute: ```bash $ bundle $ rake db:migrate ``` Add this line to host app's `application_controller.rb`: ```ruby helper C80Push::Engine.helpers ``` Add these lines to host app's `active_admin.js.coffee`: ```js #= require bootstrap #= require bootstrap-select #= require c80_yax #= require c80_push_backend ``` Add these lines to host app's 'application.js.coffee': ```js #= require bootstrap #= require bootstrap-select #= require c80_push ``` Add these lines to host app's 'application.scss': ```css @import "bootstrap-sprockets"; @import "bootstrap"; @import "bootstrap-select"; @include "c80_push"; ``` ## Процесс разработки JS функционала Теперь пора заняться js. * [X] Прикрутить `selectpicker`: выводить туда только те регионы, в которых есть дилеры, у которых есть офисы. * [X] Вставить заголовок "Выберите Регион". * [X] При первом входе на карту: должны отражаться все офисы. - [X] Должен рассчитываться `bounding rectangle` и все точки должны быть видны на рабочей области (никто не должен выходить за рамки) * [ ] При наведении/клике на точку на карте: - [X] должен появляться хинт с деталями офиса - [ ] слева должен подсвечиваться соответствующий `.li_office`. * [X] При наведении/клике на `.li_office` - должна подсвечиваться соответствующая точка на карте. * [ ] Вставить из `psd` синий маркер. * [X] Когда меняется регион: * [X] Должны отобразиться релевантные `.li_office` * [X] Должны отобразиться релевантные точки на карте. ## Цитата из ТЗ > Данный раздел представляет собой список компаний, у которых указаны > адреса офисов продаж и другие контактные данные. > > Эти данные пользователь видит на интерактивной карте > (от GoogleMaps или Яндекс. Карты - на выбор). > > Попадая на данную страницу, пользователь сначала видит интерактивную > карту (на которой отмечены все адреса офисов продаж и дилеров) и > селект, с помощью которого можно выбрать один из регионов. > > Выбрав тот или иной регион, пользователь видит слева от > интерактивной карты список компаний, а также адреса их офисов продаж. > > Офисы продаж ORIMA и копании-дилеры (и адреса их офисов продаж) > разграничены на интерактивной карте маркерами разного цвета. > > В списке слева от интерактивной карты сначала отображаются офисы > продаж компании ORIMA, а затем список компаний-дилеров > (и адресов их офисов продаж). > > С помощью инструментов панели управления сайтом можно создавать > редактировать и удалять компании, задавать/изменять/удалять > адреса офисов продаж и другие характеристики характеристики: > > - Название* > - Офисы продаж (как минимум один): > - Название* > - Адрес* > - gps* > - Телефон* > - Сайт > - Принадлежность к региону (офиса) > - Принадлежность к региону (дилера) > > По клику на один из пунктов в списке слева пользователю на > карте демонстрируется только один маркер, который соответствует > данному пункту. > > На странице присутсвует возможность фильтрации по региону. > Выбрав регион пользователь видит в списке слева и на > интерактивной карте только те офисы продаж/склады и дилеров, > которые соответствую данному региону. > Каждая компания имеет заранее предопределенное свойство "id".