var ws=0;
var server_time;
var server_timezone;
var dialog_error_wss_connection_is_shown=false;
var loading_pictures=false;
function WebSocket_Run() {
if ("WebSocket" in window) {
if (ws != 0) {
ws.close();
}
ws = new WebSocket("wss://www.fotocockpit.de/wss//");
ws.onopen = function() {
//if (is_Lockscreen === false) {
//
if (dialog_error_wss_connection_is_shown !== false) {
show_body();
dialog_error_wss_connection_is_shown=false;
$('#connect_error').dialog('close');
$('#div_error_no_connection_to_wss').dialog('close');
}
//}
var message={messageType: 'core', type: 'timezone', timezone: moment.tz.guess(), time: moment().unix(), window_type: 'main'};
ws.send(JSON.stringify(message));
if(typeof ws_east !== 'undefined' && ws_east != 0) {
WebSocket_East_Run();
}
// Web Socket is connected
};
ws.onmessage = function (evt) {
var received_data=JSON.parse(evt.data);
switch(received_data.messageType) {
default:
console.log(received_data);
break;
case 'core':
switch(received_data.type) {
default:
console.log(received_data);
break;
case 'testPicture':
show_testPicture(received_data);
break;
case 'signal_list':
for (var i=0; i < received_data.signals.length; i++) {
switch(received_data.signals[i].alert_type) {
case "1":
received_data.signals[i].alert_type='Gerät geht offline';
break;
case "2":
received_data.signals[i].alert_type='Gerät geht online';
break;
case "3":
received_data.signals[i].alert_type='Gerät wird entladen';
break;
case "4":
received_data.signals[i].alert_type='Gerät wird geladen';
break;
case "5":
received_data.signals[i].alert_type='Gerät erreicht Akkustand';
break;
case "6":
received_data.signals[i].alert_type='Neues Foto wurde empfangen';
break;
case "7":
received_data.signals[i].alert_type='Neue SMS empfangen';
break;
}
switch(received_data.signals[i].action) {
case "1":
received_data.signals[i].action='sende E-Mail';
break;
case "2":
received_data.signals[i].action='Foto auf www.FotoCockpit.de löschen';
break;
}
if (received_data.signals[i].battery_level != null) {
received_data.signals[i].battery_level+=' %';
}
}
$('#datagrid_signals_' + received_data.device_id).datagrid({
data: received_data.signals
});
break;
case 'picture_sent':
if (received_data.result == false) {
msg=received_data.error;
var error=received_data.error + "TET";
if (error.includes("Invalid address:") == true) {
msg='
Das Foto konnte nicht gesendet werden da die Adresse des Empfängers nicht gültig ist.
';
}
if (error.includes("SMTP Error: The following recipients failed:") == true) {
msg='Das Foto konnte nicht gesendet werden da die Adresse des Empfängers nicht gültig ist.
';
}
$.messager.show({
iconCls:'icon-send_image',
height:'auto',
title:' Foto versenden',
msg:msg,
timeout:5000,
showType:'slide'
});
} else {
msg='Das Foto wurde erfolgreich gesendet.
';
$.messager.show({
iconCls:'icon-send_image',
height:'auto',
title:' Foto versenden',
msg:msg,
timeout:5000,
showType:'slide'
});
}
break;
case 'device_pictures':
refresh_datagrid_devices_pictures(received_data);
break;
case 'device_state':
var tree_data=$('#tree_main').tree('getRoots');
var node;
tree_data.forEach( function (arrayItem) {
if (arrayItem.type == 'device') {
if (arrayItem.id == received_data.id) {
node=arrayItem;
}
}
});
if (node){
switch(received_data.device_state) {
default:
alert('hier in socket.js - Line 75');
alert(received_data.device_state);
console.log(received_data);
break;
case 'devices_state_changed':
var index = windows.indexOf(node.id);
if (index > -1) {
refresh_latest_stats(received_data);
}
case 'waiting':
var new_state='waiting';
break;
case 'deviceOnline':
var new_state='online';
break;
case 'deviceOffline':
var new_state='offline';
break;
}
$('#tree_main').tree('update', {
target: node.target,
device_state: new_state
});
}
break;
case 'all_devices_and_folders':
$('#tree_main').tree('loadData', received_data.data);
break;
case 'folder':
$('#tree_main').tree('append', {
data: [{
text: 'new folder',
iconCls: 'icon-folder',
type: 'folder',
id: received_data.id
}]
});
break;
case 'device':
$('#tree_main').tree('append', {
data: [{
text: 'new device',
iconCls: 'icon-device',
type: 'device',
id: received_data.id
}]
});
break;
case 'showMain':
switch(received_data.action) {
default:
document.location.href="https://www.fotocockpit.de/webapp/";
break;
case 'true':
break;
}
case 'logout':
switch(received_data.action) {
case'logged_out':
LayoutIsShown=false;
$('body').layout('remove', 'west');
$('body').layout('remove', 'east');
$('body').layout('remove', 'south');
$('body').layout('remove', 'north');
$('body').layout('remove', 'center');
currentClientId=0;
showLogin();
if(typeof ws_east !== 'undefined' && ws_east != 0) {
ws_east.close();
}
break;
}
break;
case 'login':
switch(received_data.action) {
default:
console.log(received_data);
break;
case 'show_choose_client':
showChooseClient();
break;
case 'show_main':
mainWindowId=received_data.window_id;
prename=received_data.prename;
surname=received_data.surname;
region_west_collapsed=false;//received_data.main_region_west_collapsed;
region_east_collapsed=false;//received_data.main_region_east_collapsed;
showMain();
break;
case 'show_login':
mainWindowId=received_data.window_id;
server_time=received_data.server_time;
server_timezone=received_data.server_timezone;
showLogin();
break;
case 'login_failed':
nextlogintime=received_data.nextlogintime;
$('#next_login_in').html('');
WaitTick();
$('#div_LoginWait').hide();
//$('#LoginForm').show();
$('#div_ErrorMessage').show();
//$('#div_buttons_login').show();
//$('#button_login').linkbutton('enable');
//$('#KDNr').focus();
break;
}
break;
}
break;
case 'time':
break;
case 'user':
switch(received_data.action) {
case 'reload_settings':
if ($('#window_loadConferences').length != 0) {
$('#datagrid_loadConferences').datagrid('reload');
}
break;
}
break;
case 'Login':
Login(received_data);
break;
case 'Logout':
Logout(received_data);
break;
case 'LockSystem':
other_user_LockSystem(received_data);
break;
case 'UnLockSystem':
other_user_UnLockSystem(received_data);
break;
case 'internalMessages':
internalMessages(received_data);
break;
}
};
ws.onclose = function() {
// websocket is closed.
dialog_error_wss_connection_is_shown=true;
setTimeout(function(){WebSocket_Run()}, 9000);
hide_body();
};
} else {
// The browser doesn't support WebSocket
alert("WebSocket NOT supported by your Browser!");
}
}
function sendMessage_to(message) {
ws.send(JSON.stringify(message));
}
function hide_body() {
//$('#body_main').hide();
$('#connect_error').dialog({
title:'connect_error',
content:'test',
closable:false
});
$('#connect_error').dialog('open');
$('#spa-center').hide();
$('#spa-head').hide();
$('#spa-west').hide();
$('#spa-east').hide();
$('#spa-south').hide();
if (region_west_collapsed === true) {
$('.layout-expand-west').hide();
} else {
var w = $('body').layout('panel','west');
w.panel('header').hide();
}
if (region_east_collapsed === true) {
$('.layout-expand-east').hide();
} else {
var w = $('body').layout('panel','east');
w.panel('header').hide();
}
var w = $('body').layout('panel','east');
w.panel('header').hide();
}
function show_body() {
if (region_west_collapsed === true) {
$('.layout-expand-west').show();
} else {
var w = $('body').layout('panel','west');
w.panel('header').show();
}
if (region_east_collapsed === true) {
$('.layout-expand-east').show();
} else {
var w = $('body').layout('panel','east');
w.panel('header').show();
}
// var w = $('body').layout('panel','east');
//w.panel('header').show();
$('#spa-center').show();
$('#spa-head').show();
$('#spa-west').show();
$('#spa-east').show();
$('#spa-south').show();
$('body').layout('resize');
}
function get_time_format_from_date(date) {
var timedate=new Date(date);
timedate=("0" + timedate.getHours()).slice(-2) + ":" + ("0" + timedate.getMinutes()).slice(-2) + ":" + ("0" + timedate.getSeconds()).slice(-2);
return timedate;
}
function welcome(received_data) {
if (received_data.logged_in_users != undefined) {
global_logged_in_users=received_data.logged_in_users;
}
if (received_data.unread_internal_messages != undefined) {
global_unread_internal_messages=received_data.unread_internal_messages;
}
}
function refresh_latest_stats(received_data) {
$('#progress-bar_' + received_data.id).gradientProgressBar({
value: (received_data.device_states[0].battery_level / 100)
});
$('.progress-bar_percent_' + received_data.id).html(received_data.device_states[0].battery_level);
created_time=new Date(received_data.device_states[0].created_time);
var datestring = ("0" + created_time.getDate()).slice(-2) + "." + ("0"+(created_time.getMonth()+1)).slice(-2) + "." + created_time.getFullYear();
var timestring = ("0" + created_time.getHours()).slice(-2) + ":" + ("0" + created_time.getMinutes()).slice(-2) + ":" + ("0" + created_time.getSeconds()).slice(-2);
$('.latest_state_date_' + received_data.id).html(datestring);
$('.latest_state_time_' + received_data.id).html(timestring);
if (received_data.device_states[0].isCharging === 'true') {
$('#latest_state_ischarging_' + received_data.id).attr("src","images/yes.png");
} else {
$('#latest_state_ischarging_' + received_data.id).attr("src","images/no.png");
}
if (received_data.device_states[0].isScreenOn === 'true') {
$('#latest_state_isscreenon_' + received_data.id).attr("src","images/screen_on.png");
} else {
$('#latest_state_isscreenon_' + received_data.id).attr("src","images/screen_off.png");
}
$('.display_if_data_available').show();
if (received_data.device_states[0].battery_level == received_data.device_states[1].battery_level) {
//trend unverändert
$('#latest_state_trend_' + received_data.id).attr("src","images/trend_same.png");
$('#latest_state_trend_' + received_data.id).attr("title","Trend: Batterieladestand unverändert");
} else if (parseInt(received_data.device_states[0].battery_level) > parseInt(received_data.device_states[1].battery_level)) {
//trend steigend
$('#latest_state_trend_' + received_data.id).attr("src","images/trend_up.png");
$('#latest_state_trend_' + received_data.id).attr("title","Trend: Batterieladestand steigend");
} else {
//trend fallen
$('#latest_state_trend_' + received_data.id).attr("src","images/trend_down.png");
$('#latest_state_trend_' + received_data.id).attr("title","Trend: Batterieladestand fallend");
}
$('#latest_state_trend_' + received_data.id).show();
$('#iframe_chart_' + received_data.id).attr("src", "html/camera/camera_chart.html?device_id=" + received_data.id);
}
function refresh_datagrid_devices_pictures(received_data) {
if ($('#camera_id_' + received_data.id).length > 0) {
if (received_data.latest_picture != false) {
loading_pictures=true;
selected_picture=$('#datagrid_devices_pictures_' + received_data.id).datagrid('getRowIndex' , $('#datagrid_devices_pictures_' + received_data.id).datagrid('getSelected'));
} else {
selected_picture=$('#datagrid_devices_pictures_' + received_data.id).datagrid('getRowIndex' , $('#datagrid_devices_pictures_' + received_data.id).datagrid('getSelected')) -1;
loading_pictures=false;
}
$('#datagrid_devices_pictures_' + received_data.id).datagrid({
data: received_data.device_images
});
}
if (received_data.latest_picture != false) {
var image_id=received_data.latest_picture.id;
var msg='Neues Foto von "%_device_name_%" wurde empfangen. Klicken Sie %_link_% um das Foto aufzurufen.';
var node = $('#tree_main').tree('find', received_data.id);
msg=msg.replace("%_device_name_%", node.text);
msg=msg.replace("%_link_%", 'hier');
$.messager.show({
iconCls:'icon-image',
height:'auto',
title:' Neues Foto wurde empfangen',
msg:msg,
timeout:5000,
showType:'slide'
});
$("#jquery_jplayer_1").jPlayer("play");
}
}
function Login(received_data) {
if (is_Lockscreen === false) {
$.messager.show({
title:'
language_variables_main:: [' + get_time_format_from_date(received_data.time * 1000) + ']
',
msg: received_data.prename + ' ' + received_data.surname + 'lang_main_ohter_user_logged_in_text
',
timeout:5000,
showType:'fade',
width: 300,
height: 130
});
}
global_logged_in_users.push(received_data);
document.getElementById("iframe_region_east").contentWindow.update_datagrid_connected_users(received_data);
rebind_contextmenu_for_menu_buttons();
}
function Logout(received_data) {
if (is_Lockscreen === false) {
$.messager.show({
title:'
language_variables_main:: [' + get_time_format_from_date(received_data.time * 1000) + ']
',
msg:received_data.prename + ' ' + received_data.surname + 'language_variables_main::',
timeout:5000,
showType:'fade',
width: 300,
height: 90//=$messager_height?>
});
}
for (var i=0; i < global_logged_in_users.length; i++) {
if (global_logged_in_users[i].id == received_data.id) {
global_logged_in_users.splice(i,1);
document.getElementById("iframe_region_east").contentWindow.update_datagrid_connected_users(received_data);
break;
}
}
}
function other_user_LockSystem(received_data) {
for (var i=0; i < global_logged_in_users.length; i++) {
if (global_logged_in_users[i].id == received_data.id) {
global_logged_in_users[i].Session_is_locked=true;
document.getElementById("iframe_region_east").contentWindow.update_datagrid_connected_users(received_data);
break;
}
}
}
function other_user_UnLockSystem(received_data) {
for (var i=0; i < global_logged_in_users.length; i++) {
if (global_logged_in_users[i].id == received_data.id) {
global_logged_in_users[i].Session_is_locked=false;
document.getElementById("iframe_region_east").contentWindow.update_datagrid_connected_users(received_data);
break;
}
}
}
function internalMessages(received_data) {
//check ob das chat-fenster mit diesem user bereits geöffnet ist
$('#jquery_jplayer').jPlayer('play');
var found=false;
for (var i=0; i < all_windows.length; i++) {
if (all_windows[i].type=="messages_send_message_from_user_to_user") {
found=true;
}
}
if (found===false) {
//show hint for new message
if (is_Lockscreen === false) {
var new_button=''
var d = $.messager.show({
title:'
neue nachricht [' + get_time_format_from_date(received_data.time * 1000) + ']
',
msg:'neue nachricht von:' + received_data.prename + ' ' + received_data.surname + ' erhalen
' + new_button,
timeout:5000,
showType:'fade',
width: 300,
height: 190,//=$messager_height?>
resizable:true,
});
rebind_contextmenu_for_menu_buttons();
}
} else {
//switch to window and refresh
}
}
function rebind_contextmenu_for_menu_buttons() {
$('.menu_button').bind("contextmenu",function(e){
var icon=this.innerHTML;
icon=icon.substring(icon.search( 'menu-icon ' )+10);
icon=icon.substring(0, icon.search( '"' ));
menu_item_to_open=this.id;
switch(menu_item_to_open) {
default:
var minWidth=0;
break;
case 'Filemanager':
var minWidth=0;
break;
}
$('#menu_buttons_menu_title').panel({
title: ' ' + $(this).text(),
iconCls: icon,
minWidth:minWidth,
itemHeight:1
});
$('#menu_buttons_menu').menu({
minWidth:minWidth
});
$('#menu_button_open_inline').css('top',-20);
$('#menu_button_open_new_tab').css('top',-20);
$('#menu_button_open_new_window').css('top',-20);
$('#menu_button_add_to_favorites').css('top',-10);
$('#menu_buttons_menu').css('max-height',131);
$('#menu_buttons_menu').menu('show', {
left: e.pageX,
top: e.pageY,
});
});
}