Events.js

55 lines | 2.537 kB Blame History Raw Download
//  Функция обработчик движения слайдера
function SliderOnFinishMoving(data) {
    console.log(data.from + " " + data.to);
}

//  Функция заполнения Яндекс-коллекций Яндекс-объектами из JSON массива
function LoadCollection(collection, fromData, bool = false) {
    if (bool == true)
        collection.removeAll(); //  Очистка коллекции от старых элементов. Параметры остаются прежними

    fromData.forEach(function (element) {
        collection.add(CreateYandexPlacemark(element)); //  Добавление
    });
}

//  Функция создания Яндекс-объекта из одного элемента JSON массива
function CreateYandexPlacemark(fromElement) {
    var placemark = new ymaps.Placemark([fromElement.Position.X, fromElement.Position.Y],
        {
            iconContent: fromElement.Name,   //  Содержимое названия
            hintContent: [fromElement.Position.X, fromElement.Position.Y]//  Содержимое подписи при наведении
        }
    );

    //Добавить свойство - Имя поселения
    placemark.options.set('Name', fromElement.Name);

    //  Переопределяем стадартный обработчик нажатия
    placemark.events.add('click', function (e) {
        e.preventDefault(); //  Запрещаем стандартный обработчик

        var targetName = e.get('target').options.get('Name');

        //  Вызов запроса на получение данных о поселении
        GetInfoAboutSettlement(targetName, PrintInfoAboutSettlement);

        //  Показать боковую панель
        if ($('#sidebar, #content').hasClass('active')) {
            //  Панель скрыта. Должна выехать
            $('#sidebar, #content').removeClass('active');
            $('.collapse.in').toggleClass('in');
            $('a[aria-expanded=true]').attr('aria-expanded', 'false');
        }
        else
            //  Панель есть. Выбор, нужно ли её скрывать
            if (targetName == document.getElementById('sidebar-header').getElementsByTagName('*')[0].innerHTML) {
                $('#sidebar, #content').addClass('active');
                $('.collapse.in').toggleClass('in');
                $('a[aria-expanded=true]').attr('aria-expanded', 'false');
            }


    });
    return placemark;
}