265 lines
7.6 KiB
JavaScript
265 lines
7.6 KiB
JavaScript
|
|
/**
|
|
* Igor Ivanov irigm@mail.ru
|
|
* [^\x00-\x7F]
|
|
*/
|
|
|
|
this.divsh=document.createElement('div'); //Shadow
|
|
divsh.style.cssText="display: none; position: fixed; z-index: 1000; top:0; left:0; height: 100%; width: 100%; background: rgba(0,0,0,0.3);";
|
|
|
|
var g_count=0;
|
|
var g_winCntMsg=null;
|
|
var g_events=null;
|
|
|
|
//Произграть музыку
|
|
function beep()
|
|
{
|
|
let audio = new Audio('/resources/sound/dilin.mp3');
|
|
audio.play();
|
|
}
|
|
|
|
//Назначить новое сообщение текущему пользователю (события разбиты по приоритету 0 низкий приоритет > 0 самый высокий)
|
|
function takeMessage()
|
|
{
|
|
g_winCntMsg.showProgressBar();
|
|
|
|
var data = {
|
|
test: ''
|
|
};
|
|
|
|
var req=createRequestObject();
|
|
req.onreadystatechange = function(thiz)
|
|
{
|
|
return function(){
|
|
if(req.readyState === 4){
|
|
var data=null;
|
|
try {
|
|
data = JSON.parse(req.responseText);
|
|
} catch (e) {
|
|
alert(e.message);
|
|
return;
|
|
}
|
|
if(data!=null)
|
|
{
|
|
if(data.errorCode=='0')
|
|
{
|
|
alert('Вам присвоено событие для обработки.'); //: "'+data.id+'"
|
|
}else
|
|
{
|
|
alert('Error: '+data.errorMessage);
|
|
}
|
|
}
|
|
g_winCntMsg.hideProgressBar();
|
|
}
|
|
};
|
|
}(this);
|
|
|
|
req.open("POST", '/monitoring/pscripts/messages.php?fn=2', true);
|
|
req.setRequestHeader("Content-type", "text/plain");
|
|
req.send(JSON.stringify(data));
|
|
}
|
|
|
|
//Выбор даты времени по щелчке на изображении
|
|
function setCalendar(field,img,day)
|
|
{
|
|
if (typeof field === 'string' || field instanceof String)
|
|
field=document.getElementById(field);
|
|
if (typeof img === 'string' || img instanceof String)
|
|
img=document.getElementById(img);
|
|
|
|
//Если задано смещение в датах то вставляем эту дату
|
|
if(typeof day === 'number')
|
|
{
|
|
var d = new Date();
|
|
d.setDate(d.getDate()+day);
|
|
field.value=d.toString();
|
|
}
|
|
|
|
new Calendar({
|
|
inputField: field,
|
|
dateFormat: "%Y-%m-%d %H:%M:%S",
|
|
trigger: img,
|
|
align: "Bl",
|
|
bottomBar: false,
|
|
showTime: true,
|
|
//singleClick: true,
|
|
onSelect: function(){ this.hide(); }
|
|
});
|
|
}
|
|
|
|
//Показать окно настроек (смена подложки и пароля)
|
|
function showConfigWidget()
|
|
{
|
|
this.win=new TWin();
|
|
this.win.BuildGUI(10,10);
|
|
this.win.setCaption(trt('Settings'));
|
|
|
|
let str='<div style="width: 100%; height: 100%; padding: 3px; text-align: left;">\n\
|
|
<div style="position: relative; padding-bottom:10px;">\n\
|
|
<b style="text-align:left; font-weight:bold;">Сменить стиль</b>\n\
|
|
<select id="theme-selector" style="width:100%;" onchange="changeTheme();"><option value="1">Тёмная тема</option><option value="2">Светлая тема</option></select>\n\
|
|
<b style="text-align:left; font-weight:bold;">'+trt('Substrate')+'</b>\n\
|
|
<table border="0" style="width: 100%;"><tr><td style="padding: 2px;">\n\
|
|
<select id="SubstrateID" style="width:100%;" onchange="changeMap();"><option value="OpenStreetMap">OpenStreetMap</option><option value="BingAerial">Bing aerial</option><option value="StamenTerrain">Stamen.com terrain</option><option value="GoogleMaps">Google maps</option><option value="GoogleMapsHybrid">Google maps hybrid</option><option value="yandex">Yandex maps</option></select>\n\
|
|
</td><td style="padding: 2px; width: 30px;">\n\
|
|
<button class="button-secondary" style="width:30px;" onclick="openLayoutsWin();">...</button><br>\n\
|
|
</td></tr></table>\n\
|
|
</div>\n\
|
|
<hr>\n\
|
|
<a href="#" id="call_change_pass">'+trt('Change_password')+'</a>\n\
|
|
</div>';
|
|
|
|
this.win.setContent(str);
|
|
this.win.setSize("420px","140px");
|
|
this.win.setCenter();
|
|
this.win.shadow=true;
|
|
this.win.hide(false);
|
|
|
|
document.getElementById('call_change_pass').onclick=function(){return function(){
|
|
g_user.changePassword();
|
|
};}();
|
|
|
|
//document.getElementById('id_exit_pass').onclick=function(win){return function(){win.Close();};}(win);
|
|
}
|
|
|
|
//Customize the visual elements on the access level.
|
|
function configGUIbyAccessLevel()
|
|
{
|
|
g_user.loadAccess();
|
|
g_user.onUpdate=function(user)
|
|
{
|
|
if(user.getAccess("Carrier")) //Если это перевозчик
|
|
{
|
|
deleteHTML('btnTerminalsModels');
|
|
deleteHTML('btnRoutes');
|
|
deleteHTML('btnRoutesCompanies');
|
|
|
|
//Скрываю "Сообщения"
|
|
//deleteHTML('lblMessages');
|
|
deleteHTML('btnMessages');
|
|
deleteHTML('btnMessagesUsers');
|
|
|
|
//Скрываю "Администрирование"
|
|
deleteHTML('lblAdministration');
|
|
deleteHTML('btnActions');
|
|
deleteHTML('btnAccess');
|
|
deleteHTML('btnGroups');
|
|
deleteHTML('btnUsers');
|
|
deleteHTML('btnHistory');
|
|
deleteHTML('btnMetadata');
|
|
|
|
//Скрываю "Компании"
|
|
deleteHTML('lblCompanies');
|
|
deleteHTML('btnCompanies');
|
|
deleteHTML('btnCompaniesTypes');
|
|
|
|
//Скрываю "Язык"
|
|
deleteHTML('lblLanguage');
|
|
deleteHTML('btnLanguage');
|
|
deleteHTML('btnTranslation');
|
|
}
|
|
|
|
//Если это автобусная станция то скрываем мониторинг
|
|
if(user.getAccess("Station")) //Если это перевозчик
|
|
{
|
|
//Скрываю "Администрирование"
|
|
deleteHTML('lblAdministration');
|
|
deleteHTML('btnActions');
|
|
deleteHTML('btnAccess');
|
|
deleteHTML('btnGroups');
|
|
deleteHTML('btnUsers');
|
|
deleteHTML('btnHistory');
|
|
deleteHTML('btnMetadata');
|
|
|
|
//Скрываю "Язык"
|
|
deleteHTML('lblLanguage');
|
|
deleteHTML('btnLanguage');
|
|
deleteHTML('btnTranslation');
|
|
|
|
//Скрываю вкладку мониторинг
|
|
//g_tab.delTab(g_tb_monitoring);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Запросить данные для заполнения в всплывающее окно которое отображается при щелчке на значке на карте
|
|
function callObjectData(object_id)
|
|
{
|
|
$.ajax({
|
|
url: '/transit/object.php?object_id='+object_id,
|
|
type: "POST",
|
|
dataType: "text",
|
|
success: function(thiz){return function(data,status){
|
|
if(status=='success')
|
|
{
|
|
//alert('data = '+data);
|
|
|
|
m_winPP.hideProgressBar();
|
|
m_winPP.setContent(data);
|
|
|
|
}else
|
|
{
|
|
alert(status);
|
|
}
|
|
|
|
}}(this)
|
|
});
|
|
}
|
|
|
|
//Стиль для иконок пломб
|
|
function createFatypeStyleDel(feature,red)
|
|
{
|
|
return function(){
|
|
var zoom = g_map.getView().getZoom();
|
|
var text = zoom > 6 ? feature.get('name') : '';
|
|
var iconStyleG;
|
|
|
|
|
|
iconStyleG = new ol.style.Style({
|
|
image: new ol.style.Icon(({
|
|
anchor: [0.5, 25],
|
|
anchorXUnits: 'fraction',
|
|
anchorYUnits: 'pixels',
|
|
opacity: 0.75,
|
|
src: '../resources/data/icons/'+feature.get('icon_name')
|
|
})),
|
|
text: new ol.style.Text({
|
|
font: '12px helvetica,sans-serif',
|
|
text: text,
|
|
fill: new ol.style.Fill({color: '#000'}),
|
|
stroke: new ol.style.Stroke({color: '#fff', width: 2})
|
|
})
|
|
});
|
|
return iconStyleG;
|
|
}
|
|
}
|
|
|
|
//Стиль для иконок пломб
|
|
function createFatypeStyleEvent(feature,red)
|
|
{
|
|
return function(){
|
|
var zoom = g_map.getView().getZoom();
|
|
//var text = zoom > 6 ? feature.get('name') : '';
|
|
var iconStyleG;
|
|
|
|
|
|
iconStyleG = new ol.style.Style({
|
|
image: new ol.style.Icon(({
|
|
anchor: [0.5, 25],
|
|
anchorXUnits: 'fraction',
|
|
anchorYUnits: 'pixels',
|
|
opacity: 0.75,
|
|
src: '../resources/data/icons/'+feature.get('icon_name')
|
|
})),
|
|
text: new ol.style.Text({
|
|
font: '12px helvetica,sans-serif',
|
|
//text: text,
|
|
fill: new ol.style.Fill({color: '#000'}),
|
|
stroke: new ol.style.Stroke({color: '#fff', width: 2})
|
|
})
|
|
});
|
|
return iconStyleG;
|
|
}
|
|
}
|
|
|