var edt = 'watch'; var edt_diagrams = { components: [], file: {} }; $(document).ready(function() { edt = localStorage.getItem('embedded_device_type') || 'watch'; }); $(document).on('change', '#embedded_device_picker', function() { var timestamp = Date.now(); edt = $(this).val(); var chip_id = $('#embedded_device_chip_id').val(); localStorage.setItem('embedded_device_type', edt); localStorage.setItem('embedded_chip_id', chip_id); embeddedDevicesOpener(); }); $(document).on('change', '#embedded_device_chip_id', function() { var chip_id = $(this).val(); localStorage.setItem('embedded_chip_id', chip_id); var edt = $('#embedded_device_picker').val(); localStorage.setItem('embedded_device_type', edt); embeddedDevicesOpener(); }); $(document).on('click', '#embedded_toggle', function() { embeddedDevicesOpener(); }); function embeddedDevicesOpener() { var timestamp = Date.now(); var edt = localStorage.getItem('embedded_device_type') || 'watch'; var chip_id = localStorage.getItem('embedded_chip_id') || ''; var view = localStorage.getItem('embedded_view'); $.ajax({ url: '/manager/embedded', type: 'GET', data: { timestamp: timestamp, edt: edt, chip_id: chip_id, view: view, }, success: function(response) { windowMaker(response.html); localStorage.setItem('embedded_chip_id', response.chip_id); localStorage.setItem('embedded_device_type', response.edt); } }); } $(document).on('click', '.embedded_detail', function() { var numero = $(this).attr('numero'); var form = $(this).attr('form'); var pin = $(this).attr('pin'); embeddedDetailGrabber({ numero: numero, form: form, pin: pin }); }); function embeddedDetailGrabber(data) { var timestamp = Date.now(); var numero = data['numero']; var edt = localStorage.getItem('embedded_device_type') || 'watch'; var chip_id = localStorage.getItem('embedded_chip_id') || ''; var view = localStorage.getItem('embedded_view'); var form = data['form']; var pin = data['pin']; $.ajax({ url: '/manager/embedded/pin_grabber', type: 'GET', data: { numero: numero, edt: edt, chip_id: chip_id, view: view, form: form, timestamp: timestamp, pin: pin }, success: function(response) { console.log(response); $('#embedded').append(response.html); } }); } $(document).on('change', '#embedded_view', function() { var view = $(this).val(); localStorage.setItem('embedded_view', view); embeddedDevicesOpener(); }); $(document).on('click', '.watch_component', function() { var b = $(this); var numero = b.attr('numero'); var component = b.attr('component'); var conf = $('#watch_configure_' + component + '_' + numero); if (conf.is(':visible')) { conf.hide(); } else { conf.show(); var input = $('#watch_input_' + component + '_' + numero); input.focus(); } }); $(document).on('click', '#watch_set_proxy', function() { var timestamp = Date.now(); var scope = $('#watch_scope').val(); var chip_id = localStorage.getItem('embedded_chip_id') || ''; var edt = localStorage.getItem('embedded_device_type') || 'watch'; var continent = continent_record({app:edt,timestamp:timestamp,purpose:'proxy_set',scope:scope,chip_id:chip_id}); var scope = $('#watch_scope').val(); console.log(timestamp + ' ' + scope); }); function setProxy(timestamp,uuid) { var scope = $('#watch_scope').val(); var chip_id = localStorage.getItem('embedded_chip_id') || ''; var edt = localStorage.getItem('embedded_device_type') || 'watch'; $.ajax({ url: '/manager/watch/set_proxy', data: { timestamp: timestamp, uuid: uuid, scope: scope, edt: edt, chip_id: chip_id }, success: function(response) { console.log(response); mapCampus(timestamp,response,'embedded_campus'); var w = $('#watch_set_proxy'); w.addClass('active'); setTimeout(function() { w.removeClass('active'); },1000); } }); } $(document).on('change', '#watch_scope', function() { var scope = $(this).val(); var timestamp = Date.now(); var chip_id = localStorage.getItem('embedded_chip_id') || ''; var edt = localStorage.getItem('embedded_device_type') || 'watch'; $.ajax({ url: '/manager/setting_setter', type: 'POST', data: { app: 'watch', setting: 'watch_scope', value: scope, timestamp: timestamp, edt: edt, chip_id: chip_id }, success:function(response) { console.log(response); } }); }); $(document).on('click', '#watch_list_proxy', function() { var timestamp = Date.now(); console.log(timestamp); var scope = $('#watch_scope').val(); if ($('#watch_proxy_view').html() != '') { $('#watch_proxy_view').html(''); $('#embedded_campus').hide() } else { var continent = continent_record({app:edt,timestamp:timestamp,purpose:'proxy_load',scope:scope, chip_id:chip_id}); $('#embedded_campus').show(); } }); var campusProxy = {}; function listProxy(timestamp,uuid) { var scope = $('#watch_scope').val(); var window_width = $('#watch_scope').closest('.wind').width(); var window_height = $('#watch_scope').closest('.wind').width(); var chip_id = localStorage.getItem('embedded_chip_id') || ''; var edt = localStorage.getItem('embedded_device_type') || 'watch'; $.ajax({ url: '/manager/watch/list_proxy', data: { timestamp: timestamp, uuid: uuid, scope: scope, width: window_width, height: window_height, edt: edt, chip_id: chip_id }, success: function(response) { console.log(response); $('#watch_proxy_view').html(response['html']); mapCampus(timestamp,response,'embedded_campus'); } }); } $(document).on('click', '.watch_proxy_load', function() { var proxy = $(this).closest('.proxy'); var uuid = proxy.attr('uuid'); var timestamp = $(this).closest('.wind').attr('timestamp'); var chip_id = localStorage.getItem('embedded_chip_id') || ''; var edt = localStorage.getItem('embedded_device_type') || 'watch'; console.log(timestamp); $.ajax({ url: '/manager/watch/proxy_load', type: 'POST', data: { timestamp: timestamp, uuid: uuid, edt: edt, chip_id: chip_id }, success: function(response) { console.log(response); var h = $(response).find('#watch_buttons').html(); console.log(h); $('#watch_buttons').html(h); } }); }); $(document).on('click', '.watch_proxy_here', function() { var proxy = $(this).closest('.proxy'); var uuid = proxy.attr('uuid'); var timestamp = Date.now(); var continent = continent_record({app:'watch',timestamp:timestamp}); var chip_id = localStorage.getItem('embedded_chip_id') || ''; var edt = localStorage.getItem('embedded_device_type') || 'watch'; setTimeout(function() { $.ajax({ url: '/manager/watch/proxy_here', type: 'POST', data: { timestamp: timestamp, uuid: uuid, edt: edt, chip_id: chip_id }, success: function(response) { console.log(response); } }); }, 5000); }); $(document).on('click', '.watch_proxy_delete', function() { var proxy = $(this).closest('.proxy'); var uuid = proxy.attr('uuid'); var chip_id = localStorage.getItem('embedded_chip_id') || ''; var edt = localStorage.getItem('embedded_device_type') || 'watch'; $.ajax({ url: '/manager/watch/delete_proxy', type: 'POST', data: { uuid: uuid, edt: edt, chip_id: chip_id }, success: function(response) { console.log(response); $('.proxy[uuid="' + response + '"]').remove(); } }); }); $(document).on('click', '.watch_proxy_save', function() { var proxy = $(this).closest('.proxy'); var uuid = proxy.attr('uuid'); var chip_id = localStorage.getItem('embedded_chip_id') || ''; var edt = localStorage.getItem('embedded_device_type') || 'watch'; var timestamp = Date.now(); $.ajax({ url: '/manager/watch/proxy_save', type: 'POST', data: { uuid: uuid, timestamp: timestamp, edt: edt, chip_id: chip_id }, success: function(response) { console.log(response); } }); }); $(document).on('click', '.embedded_jobs', function() { var edt = localStorage.getItem('embedded_device_type') || 'watch'; var chip_id = localStorage.getItem('embedded_chip_id') || ''; var ip = $(this).attr('ip'); var mac = $(this).attr('mac'); var timestamp = Date.now(); var ejr = $('#embedded_jobs_results'); if (ejr.is(':visible')) { ejr.hide(); } else { $.ajax({ url: '/manager/embedded/jobs', type: 'GET', data: { edt: edt , chip_id: chip_id, ip: ip, mac: mac, timestamp: timestamp }, success: function(response) { $('#embedded_jobs_results').html(response.html).show(); appointment_chron(); } }); } }); $(document).on('click', '.delete_embedded_job', function() { var a = $(this); var uuid = a.attr('uuid'); var appt_uuid = a.attr('appt_uuid'); var edt = localStorage.getItem('embedded_device_type') || 'watch'; var chip_id = localStorage.getItem('embedded_chip_id') || ''; var timestamp = Date.now(); if (a.attr('armed') == 'yes') { $.ajax({ url: '/manager/embedded/delete_job', type: 'POST', data: { timestamp: timestamp, edt: edt, chip_id: chip_id, appt_uuid: appt_uuid }, success: function(response) { console.log(response); $('.embedded_job[uuid="' + uuid + '"]').remove(); } }); } else { a.attr('armed', 'yes'); var bgcolor = a.css('background-color'); a.css({'background-color': 'red' }); setTimeout(function() { a.css({'background-color': bgcolor }); a.attr('armed', 'no'); },2000); } }); $(document).on('change', '.watch_setting', function() { var movement = $(this); var setting = movement.attr('setting'); var numero = movement.attr('numero'); var component = movement.attr('component'); var edt = movement.attr('edt') || localStorage.getItem('embedded_device_type') || 'watch'; var chip_id = movement.attr('chip_id') || localStorage.getItem('embedded_chip_id') || ''; var mov = movement.val(); console.log(mov + ' ' + setting); if (movement.attr('type') == 'checkbox') { if (movement.prop('checked') == true) { mov = 1; } else { mov = 0; } } if (movement.attr('max') && movement.attr('min')) { var max = movement.attr('max'); var min = movement.attr('min'); console.log(max + ' ' + min + ' ' + mov); percentage = ((mov - min) / (max - min)) * 100; console.log(percentage); movement.attr('percentage', percentage); } console.log(mov); var percentage = movement.attr('percentage'); $.ajax({ url: '/manager/watch/setting', type: 'POST', data: { setting: setting, timestamp: timestamp, movement: mov, component: component, numero: numero, edt: edt, chip_id: chip_id, percentage: percentage }, success: function(response) { console.log(response); movement.closest('.embedded_container').html($(response.html).html()).show(); $('.watch_setting_view[component="' + component + '"][numero="' + numero + '"][setting="' + setting + '"]').text(mov); $('.watch_setting[component="' + component + '"][numero="' + numero + '"][setting="' + setting + '"]').val(mov); } }); }); $(document).on('change', '.watch_input', function() { var input = $(this); var app = input.val(); var numero = input.attr('numero'); var component = input.attr('component'); var pre_value = input.attr('pre_value'); var ip = input.attr('ip'); var edt = input.attr('edt'); var timestamp = Date.now(); var chip_id = localStorage.getItem('embedded_chip_id') || ''; $.ajax({ url: '/manager/watch/assign', type: 'POST', data: { timestamp: timestamp, app: app, component: component, numero: numero, edt: edt, ip: ip, pre_value: pre_value, chip_id:chip_id }, success: function(response) { console.log(response); input.attr('pre_value', response.app); input.closest('.embedded_container').replaceWith(response.html); var button = $('#watch_' + component + '_' + numero); if (response.app) { button.text(response.formatted_name); button.attr('app', response.app); } else { button.text(numero); button.attr('app', ''); } } }); }); $(document).on('change', '.watch_measures', function() { var input = $(this); var meas = input.val(); var edt = input.attr('edt'); var component = input.attr('component'); var numero = input.attr('pin'); var chip_id = localStorage.getItem('embedded_chip_id') || ''; $.ajax({ url: '/manager/watch/measure', type: 'POST', data: { measure: meas, edt: edt, component: component, numero: numero, chip_id: chip_id }, success: function(response) { console.log(response); input.closest('.embedded_container').replaceWith(response.html); } }); }); $(document).on('mouseover mousemove touchmove', 'input.watch_setting[type="range"]', function() { var movement = $(this); var setting = movement.attr('setting'); var numero = movement.attr('numero'); var component = movement.attr('component'); var edt = localStorage.getItem('embedded_device_type') || 'watch'; var chip_id = localStorage.getItem('embedded_chip_id') || ''; var mov = movement.val(); var max = movement.attr('max'); var min = movement.attr('min'); console.log(max + ' ' + min + ' ' + mov); var percentage = ((mov - min) / (max - min)) * 100; console.log(percentage); $(this).attr('percentage', percentage); $('.watch_setting_view[component="' + component + '"][numero="' + numero + '"][setting="' + setting + '"]').text(mov); }); $(document).on('click change', '.watch_toggle', function() { var b = $(this); var app = b.attr('app'); var component = b.attr('component'); var state = b.attr('state'); if (b.is('input')) { state = b.val(); } var pin = b.attr('pin'); var ip = b.attr('ip'); var timestamp = Date.now(); var edt = $(this).attr('edt'); var chip_id = localStorage.getItem('embedded_chip_id') || ''; console.log(chip_id); $.ajax({ url: '/manager/embedded/toggle', type: 'POST', data: { app: app, component: component, state: state, pin: pin, ip: ip, timestamp: timestamp, edt: edt, chip_id: chip_id, }, success: function(response) { console.log(response); if (response.formatted_state) { b.attr('state', response.state); b.text(response.formatted_state); } } }); }); $(document).on('change', '.teletype_appearance', function() { var timestamp = Date.now(); var value = $(this).val(); var field = $(this).attr('field'); var chip_id = localStorage.getItem('embedded_chip_id') || ''; $.ajax({ url: '/manager/teletype/appearance', type: 'POST', data: { timestamp: timestamp, field: field, value: value, edt: edt, chip_id: chip_id }, success: function(response) { console.log(response); } }); }); $(document).on('click', '#teletype_wifi_update', function() { var timestamp = Date.now(); var chip_id = localStorage.getItem('embedded_chip_id') || ''; var edt = localStorage.getItem('embedded_device_type') || 'watch'; $.ajax({ url: '/manager/teletype/wifi_update', type: 'POST', data: { timestamp: timestamp, edt: edt, chip_id:chip_id }, success: function(response) { console.log(response); } }); }); $(document).on('click', '#teletype_usb_update', function() { var timestamp = Date.now(); var chip_id = localStorage.getItem('embedded_chip_id') || ''; var edt = localStorage.getItem('embedded_device_type') || 'watch'; $.ajax({ url: '/manager/teletype/wifi_update', type: 'GET', data: { chip_id: chip_id, timestamp: timestamp, edt: edt }, success: function(response) { console.log(response); var jString = JSON.stringify(response); usbSendData(jString); } }); }); var usb1; async function usbSendData(string) { await navigator.usb.requestDevice({ filters: [] }).then(function(devices) { console.log(devices); usb1 = devices }); console.log(usb1); await usb1.open(); await usb1.selectConfiguration(1); await usb1.claimInterface(1); await usb1.transferOut(0, string); } $(document).on('change', '.teletype_wifi_config', function() { var field = $(this).attr('field'); var val = $(this).val(); var timestamp = Date.now(); var edt = localStorage.getItem('embedded_device_type') || 'watch'; var chip_id = localStorage.getItem('embedded_chip_id') || ''; $.ajax({ url: '/manager/teletype/wifi_config', type: 'POST', data: { timestamp: timestamp, field: field, val: val, edt: edt, chip_id: chip_id }, success: function(response) { console.log(response); } }); }); $(document).on('click', '.embedded_now_me', function() { var timestamp = Date.now(); var ip = $(this).attr('ip'); var name = $('#embedded_device_name').val(); var chip_id = $('#embedded_device_chip_id').val(); $.ajax({ url: '/manager/embedded/now_me', type: 'POST', data: { timestamp: timestamp, edt: edt, ip: ip, chip_id: chip_id, name: name }, success: function(response) {} }); }); $(document).on('click', '.embedded_wigi', function() { var ip = $(this).attr('ip'); var timestamp = Date.now(); var chip_id = localStorage.getItem('embedded_chip_id') || ''; $.ajax({ url: '/manager/embedded/wigi', type: 'GET', data: { edt: edt, timestamp: timestamp, ip: ip, chip_id:chip_id }, success: function(response) { } }); }); $(document).on('click', '#embedded_port_uploader', function() { var b = $(this); var timestamp = Date.now(); var port = $('#embedded_port_picker').val(); var emerge = 'no'; if ($('#embedded_emerge_checkbox').is(':checked')) { emerge = 'yes'; } $.ajax({ url: '/manager/embedded/uploader', type: 'POST', data: { port: port, timestamp: timestamp, edt: edt, emerge: emerge }, success: function(response) { } }); }); function nowMeSuccess(edt,chip_id) { console.log(edt + ' ' + chip_id); var enm = $('.embedded_now_me'); var preColour = enm.css('background-color'); enm.css({'background-color': 'lightgreen'}); setTimeout(function() { enm.css({'background-color': preColour}); },5000); } $(document).on('click', '#embedded_ota_uploader', function() { var a = $(this); var timestamp = Date.now(); var chip_id = localStorage.getItem('embedded_chip_id') || ''; var edt = localStorage.getItem('embedded_device_type') || 'watch'; if (a.attr('armed') == 'yes') { a.css({'background-color': bgcolor }); a.attr('armed', 'no'); $.ajax({ url: '/manager/embedded/ota_uploader', type: 'POST', data: { timestamp: timestamp, edt: edt, chip_id: chip_id }, success: function(response) { console.log(response); } }); } else { a.attr('armed', 'yes'); var bgcolor = a.css('background-color'); a.css({'background-color': 'red' }); setTimeout(function() { a.css({'background-color': bgcolor }); a.attr('armed', 'no'); },2000); } }); $(document).on('change', '#teletype_authorization', function() { var tauthorization = $(this).val(); var timestamp = Date.now(); $.ajax({ url: '/manager/embedded/tauthorization', type: 'POST', data: { timestamp: timestamp, tauthorization: tauthorization, edt: edt }, success: function(response) { console.log(response); } }); }); $(document).on('click', '#tty_enabled', function() { var t = $(this); var enabled = t.attr('status'); var timestamp = Date.now(); var chip_id = localStorage.getItem('embedded_chip_id') || ''; $.ajax({ url: '/manager/teletype/enable_tty', type: 'POST', data: { timestamp: timestamp, enabled: enabled, edt: edt, chip_id: chip_id }, success: function(response) { t.attr('status', response['enabled']); if (response['enabled'] == 1) { t.text('Disable'); } else { t.text('Enable'); } } }); }); $(document).on('click', '.embedded_diagram_thumb', function() { var uuid = $(this).attr('uuid'); var edt = localStorage.getItem('embedded_device_type') || 'watch'; var chip_id = localStorage.getItem('embedded_chip_id') || ''; $.ajax({ url: '/manager/watch/diagram', type: 'GET', data: { uuid: uuid, edt: edt, chip_id: chip_id }, success: function(response) { $('#embedded_diagram').html(response.html).show(); $('#embedded_diagrams_home, #embedded_diagrams_save, #embedded_diagrams_cancel').show(); $('#embedded_diagrams').hide(); edtDiagramsReset(); $('.embedded_diagram_draggable').draggable({ scroll: false, revert: true, helper: 'clone', start: function(p) { }, stop: function(m,g) { var id = m.target.id; var uuid = $('#' + id).attr('uuid'); var w = $('#embedded_diagram_canvas'); var x = m.originalEvent.clientX; var y = m.originalEvent.clientY; if (m.originalEvent.targetTouches) { x = m.originalEvent.targetTouches[0].clientX; y = m.originalEvent.targetTouches[0].clientY; } x = numeral(x - w.offset().left).value(); y = numeral(y - w.offset().top).value(); var xp = x / w.width(); var yp = y / w.height(); var canvas = document.getElementById('embedded_diagram_canvas'); var ctx = canvas.getContext('2d'); xp = canvas.width * xp - 50; yp = canvas.height * yp - 50; edtDiagramsComponentPlacer({ 'uuid': uuid, x: xp, y: yp, height: 100, width: 100 }); } }); } }); }); function edtDiagramsComponentPlacer(data) { var canvas = document.getElementById('embedded_diagram_canvas'); var ctx = canvas.getContext('2d'); var uuid = data['uuid']; var xp = data['x']; var yp = data['y']; var width = data['width'] || 100; var height = data['height'] || 100; var component = $('.embedded_diagram_component[uuid="' + uuid + '"]'); var id = component.attr('id'); var image = $('#' + id).find('.window_icon').attr('src'); var name = $('#' + id).find('.component_name').text(); var type = $('#' + id).find('.component_type').text(); ctx.font = "400 40px Arial"; ctx.lineWidth = 10; ctx.strokeRect(xp, yp, width, height); var typeSize = ctx.measureText(type); ctx.fillText(type, (xp + (width / 2)) - (typeSize.width / 2), yp + 140); var nameSize = ctx.measureText(name); ctx.fillText(name, (xp + (width / 2)) - (nameSize.width / 2), yp - 20); var img = new Image; img.onload = function(){ ctx.drawImage(img,xp,yp, width, height); }; img.src = image; edt_diagrams.components.push({ 'uuid': uuid, x: xp, y: yp, height: height, width: width }); } $(document).on('click', '#embedded_diagrams_home', function() { $('#embedded_diagram,#embedded_diagrams_home,#embedded_diagrams_save,#embedded_diagrams_cancel').hide(); $('#embedded_diagrams').show(); }); $(document).on('click', '#embedded_diagrams_cancel', function() { edtDiagramsReset('reset'); }); function edtDiagramsReset(type) { var canvas = document.getElementById('embedded_diagram_canvas'); var c = $('#embedded_diagram_canvas'); var i = $('#embedded_diagram_image'); var info = JSON.parse($('#embedded_diagram_info').text()); console.log(info); if (type == 'reset') { info.components = []; edt_diagrams = { components: info.components || [], file: info }; } canvas.width = info.info.width; canvas.height = info.info.height; c.width(i.width()); var iv = document.getElementById('embedded_diagram_image'); var image = new Image(); image.onload=function(){ canvas.getContext('2d').drawImage(image,0,0,canvas.width, canvas.height); $.each(info.components, function(i,v) { edtDiagramsComponentPlacer(v); }); }; image.src = iv.src; i.hide(); c.show(); } $(document).on('click', '#embedded_diagrams_save', function() { var edt = localStorage.getItem('embedded_device_type') || 'watch'; var chip_id = localStorage.getItem('embedded_chip_id') || ''; var jedt_diagrams = JSON.stringify(edt_diagrams); var timestamp = Date.now(); $.ajax({ url: '/manager/watch/diagram', type: 'POST', data: { edt: edt, chip_id: chip_id, diagram: jedt_diagrams, timestamp: timestamp }, success: function(response) { console.log(response); } }); });