Это статья-заметка с фрагментами кода для JS кастомизаций без подробного описания и поддержки.
Обратная сортировка в фильтре годов
var tempArr = w.data.data; tempArr.sort(function(a, b) { return parseInt(b.id)-parseInt(a.id); }); w.data.data = tempArr; FilterRender({ filter: w.general, style: w.style, textStyle: w.textStyle, data: w.data });
Увеличить ширину выпадающего списка в виджете фильтр
var elemFilter = document.getElementById(w.general.renderTo); elemFilter.childNodes[0].childNodes[1].style.width = '250px' // в конец кода фильтра после функции FilterRender();
Убрать кружок загрузки у виджета
$("#widget-" + "ea0489d0465842a6b666713fe62c6f17").find(".va-widget-loader").remove();
Убрать надпись “нет данных” в виджетах
// Скрипт с сожержимым в папку customjs и каждые 200 мс меняет надпись setInterval(function() { $.each($(".va-widget-error"), function () { var text = $(this).find("div").text(); if (text == "У виджета нет данных") { $(this).find("div").text("Другой текст"); } }); }, 200);
Виджет PDF
var render = new ImageRender({ image: w.general }); var widgetGuid = w.general.renderTo; var $widget = $("#widget-" + widgetGuid); $("#" + widgetGuid).html('<iframe width=' + $widget.width() + ' height=' + $widget.height() + ' src="<URI>"></iframe>'); //src="http://flipbox.ru/upload/iblock/3af/3af9d0b89706ed3f93a12530903922bc.pdf" render.updateDimensions = function() { $("#" + widgetGuid).find("iframe").attr("width", $widget.width()).attr("height", $widget.height()); } render;
Виджет YouTube
var widgetGuid = w.general.renderTo; var $widget = $("#" + widgetGuid); var widgetWidth = $widget.width(); var widgetHeight = $widget.height(); $("#"+ w.general.renderTo).html('<iframe width="' + widgetWidth + '" height="' + widgetHeight + '" src="https://www.youtube.com/embed/lBpmltgkVeo?autoplay=1&loop=1" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>');
Виджет Видеоклип
// http://htmlbook.ru/html/video - параметры типа autoplay брали отсюда. Пример тоже оттуда. var widgetGuid = w.general.renderTo; var $widget = $("#" + widgetGuid); var widgetWidth = $widget.width(); var widgetHeight = $widget.height(); $("#"+ w.general.renderTo).html('<video src="https://www.quackit.com//video/pass-countdown.ogg" width="' + widgetWidth + '" height="' + widgetHeight + '" loop preload></video>');
Виджет Видеоклип
// http://htmlbook.ru/html/video - параметры типа autoplay брали отсюда. Пример тоже оттуда. var widgetGuid = w.ge
Влияние виджета фильтр на виджет ютуба.
var widgetGuid = w.general.renderTo; var $widget = $("#" + widgetGuid); var widgetWidth = $widget.width(); var widgetHeight = $widget.height(); var filterGuid = "120c138c74534e5687eeb976c33eaf67"; // тут заменить на GUID виджета фильтры, который должен влиять на выбор видео. var URL_tail = "?autoplay=1&loop=1" // Для удобства задаеме хвост, который будем прибавлять к URL. В данном случае для youtube это включение автовоспроизведения и бесконечного повтора видео. // Подписываемся на виджет фильтр visApi().onSelectedValuesChangedListener({guid: "23e756f2f3p1", widgetGuid: filterGuid }, function (info) { renderWidgetVideo(info.selectedValues[0][0]); }); //Описываем функцию, которая будет выполняться и возвращать значение link. function renderWidgetVideo(link) { $widget.html('<iframe width="' + widgetWidth + '" height="' + widgetHeight + '" src="https://www.youtube.com/embed/' + link + URL_tail + '" ></iframe>'); // конкатенация начала URL (https://www.youtube.com/embed/), переменной link (в которой уникальная часть uri видосика) и переменной URL_tail } // Дополнительный код на случай, если у фильтра уже есть по умолчанию выбранное значение при открытии дэшборда. Но тут работоспособность не проверяли. // если по умолчанию у Фильтра есть выбранное значение, то берем его var selectedValues = visApi().getSelectedValues(filterGuid); if (selectedValues && selectedValues.length > 0) { renderWidgetVideo(selectedValues[0][0]); } // Пример ссылки с ютубчика. Нужно обязательно использовать embed ссылку, иначе будет ругаться. Еще в случае с ютубом платформа должна работать по HTTPS, так как ютуб только по HTTPS работает. // $("#"+ w.general.renderTo).html('<iframe width="' + widgetWidth + '" height="' + widgetHeight + '" src="https://www.youtube.com/embed/lBpmltgkVeo?autoplay=1&loop=1" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>');и