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 }); } 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='test' 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, 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, }); }); }