diff --git a/app/css/style.css b/app/css/style.css
index e5e707b..7f02d62 100644
--- a/app/css/style.css
+++ b/app/css/style.css
@@ -44,3 +44,27 @@
align-items: center;
justify-content: center;
}
+
+.filename {
+ /*
+ margin-left: .1rem;
+ padding-left: .1rem;
+ */
+}
+
+.menu_session_code, .detail_session_code {
+ margin-left: .1rem;
+ padding-left: .1rem;
+ font-size: .5em;
+}
+
+.session_detail>h2 {
+ background-color: #F7F7F7;
+ /*border-bottom: solid .1rem black;*/
+}
+
+.detail_session_code {
+ margin-left: .1rem;
+ padding-left: .1rem;
+ font-size: .5em;
+}
diff --git a/app/index.html b/app/index.html
index 6564e27..bc4a278 100644
--- a/app/index.html
+++ b/app/index.html
@@ -61,6 +61,9 @@
Reset Launcher
+
+ Network Status
+
@@ -121,6 +124,14 @@
let event_id = app_config.event_id;
let event_location_id = app_config.event_location_id;
+
+ // Start of API section
+
+ const api_token_loop_interval = app_config.api_token_loop_interval;
+ let api_update_period = app_config.idb_event_location_check_period;
+ let api_update_datetime = Date.now();
+ let waiting_on_api_token = false;
+
const secret_key = app_config.api_secret_key;
let api_temporary_token = null;
@@ -135,12 +146,95 @@
axios.defaults.baseURL = api_base_url;
axios.defaults.headers.post['Access-Control-Allow-Origin'] = app_config.access_control_allow_origin; // '*';
- api_token_request_async(axios, secret_key).then( function(result) {
- console.log('Setting temporary API token to axios Authorization header: '+result);
- axios.defaults.headers.common['Authorization'] = `Token ${result}`;
- api_temporary_token = result;
- return result;
- });
+ // Axios needs to authenticate first
+ let axios_headers_set = false;
+
+ /*if (app_online) {
+ api_token_request_async(axios, secret_key).then( function(result) {
+ console.log('Setting temporary API token to axios Authorization header: '+result);
+ axios.defaults.headers.common['Authorization'] = `Token ${result}`;
+ api_temporary_token = result;
+ return result;
+ });
+ } else {
+ console.log('Currently offline. Can not request temporary API token.');
+ }*/
+
+ let app_online = false;
+ window.addEventListener('online', app.currently_online);
+ window.addEventListener('offline', app.currently_offline);
+
+ let update_event_ui = true;
+ let update_event_location_ui = true;
+ let update_event_session_ui = true;
+ let update_event_presentation_ui = true;
+ let update_event_presenter_ui = true;
+ let update_event_file_ui = true;
+
+ if (window.onLine) {
+ app.currently_online();
+
+ } else {
+ app.currently_offline();
+
+ update_event_ui = true;
+ update_event_location_ui = true;
+ update_event_session_ui = true;
+ update_event_presentation_ui = true;
+ update_event_presenter_ui = true;
+ update_event_file_ui = true;
+ }
+
+ var api_token_loop = setInterval(function() {
+ if (app_online && api_update_datetime < Date.now()) {
+
+
+ let api_temporary_token = api_token_request_async(axios, secret_key)
+ .then(function (result) {
+ if (result) {
+ console.log('Setting temporary API token to axios Authorization header: '+result);
+ axios.defaults.headers.common['Authorization'] = `Token ${result}`;
+ api_temporary_token = result;
+
+ console.log('Axios headers have been set.');
+ axios_headers_set = true;
+ api_update_datetime = Date.now() + api_update_period;
+ } else {
+ console.log('Not online?????????????????????????');
+ console.log(window.onLine);
+ if (window.onLine) {
+ app.currently_online();
+ } else {
+ app.currently_offline();
+ }
+ }
+ })
+ .catch(function (error) {
+ console.log('Something went wrong');
+ console.log(error);
+ });
+
+
+ /*
+ api_token_request_async(axios, secret_key).then( function(result) {
+ console.log('Setting temporary API token to axios Authorization header: '+result);
+ axios.defaults.headers.common['Authorization'] = `Token ${result}`;
+ api_temporary_token = result;
+
+ console.log('Axios headers have been set.');
+ axios_headers_set = true;
+ api_update_datetime = Date.now() + api_update_period;
+ return result;
+ });
+ */
+ } else if (app_online) {
+ //console.log('Currently online, but not asking for a new temporary token yet.');
+ } else {
+ console.log('Currently offline. Can not request a new temporary API token.');
+ }
+ }, api_token_loop_interval);
+
+ // End of API section
let idb_name = app_config.idb_name;
@@ -248,17 +342,16 @@
*/
- const api_auth_loop_interval = 100; // only runs on start up
+ //const api_auth_loop_interval = 100; // only runs on start up
const open_tables_loop_interval = 10; // only runs on start up
- const api_token_update_loop_interval = 120000; // loop forever
+ //const api_token_update_loop_interval = 120000; // loop forever
- const update_idb_loop_interval = 500; // loop forever; update when check datetime has passed
+ const update_idb_loop_interval = app_config.update_idb_loop_interval; // loop forever
//const update_render_loop_interval = 10000; // loop forever; only run when the launcher object is safe
const check_file_cache_loop_interval = 250; // loop forever; only run after the event_file table has updated
+ const update_render_loop_interval = app_config.update_render_loop_interval; // loop forever
- // Axios needs to authenticate first
- let axios_headers_set = false;
// IDB tables need to be opened
let idb_tables_opened = false;
@@ -290,20 +383,14 @@
const host_file_cache_path = app_config.host_file_cache_path; //'file_cache/';
//const host_file_cache_check_period = app_config.host_file_cache_check_period; //30000; // 30 seconds
- let idb_tables_have_records = false;
+ const display_session_codes = app_config.display_session_codes;
+ const display_session_badges = app_config.display_session_badges;
+ const display_presentation_codes = app_config.display_presentation_codes; // NOTE: not currently used
+ const display_presentation_badges = app_config.display_presentation_badges;
+ const display_presenter_codes = app_config.display_presenter_codes; // NOTE: not currently used
+ const display_presenter_badges = app_config.display_presenter_badges; // NOTE: not currently used
- var api_auth_loop = setInterval(function() {
- if (typeof axios.defaults.headers.common['Authorization'] !== 'undefined'
- && axios.defaults.headers.common['Authorization'] != null) {
- console.log('Axios headers have been set.');
- axios_headers_set = true;
- //run_update_idb = true;
- clearInterval(api_auth_loop);
- } else {
- axios_headers_set = false;
- console.log('Waiting for Axios headers to be set.');
- }
- }, api_auth_loop_interval);
+ let idb_tables_have_records = false;
var open_tables_loop = setInterval(function() {
@@ -323,20 +410,11 @@
}, open_tables_loop_interval);
- var api_token_update_loop = setInterval(function() {
- api_token_request_async(axios, secret_key).then( function(result) {
- console.log('Setting temporary API token to axios Authorization header: '+result);
- axios.defaults.headers.common['Authorization'] = `Token ${result}`;
- api_temporary_token = result;
- return result;
- });
- }, api_token_update_loop_interval);
-
-
var update_idb_loop = setInterval(async function() {
//console.log('FLAG: axios_headers_set='+axios_headers_set);
//console.log('FLAG: idb_tables_opened='+idb_tables_opened);
- if (axios_headers_set && idb_tables_opened) {
+
+ if (app_online && axios_headers_set && idb_tables_opened) {
if (idb_event_check_datetime < Date.now()) {
console.log('**** *** ** * Time to check events');
let v2_account_events = await v2_get_account_events(axios, account_id)
@@ -345,7 +423,8 @@
tbl_event.setItem(response[i].id.toString(), response[i]);
}
idb_event_check_datetime = Date.now() + idb_event_check_period;
- let render_event_records_result = render_event_records(); // NOTE: v2 idb to ui
+ //let render_event_records_result = render_event_records(); // NOTE: v2 idb to ui
+ update_event_ui = true;
})
.catch(function (error) {
console.log('Trying to check events. Something went wrong. Expired token?');
@@ -361,7 +440,8 @@
tbl_event_location.setItem(v2_event_locations[i].id.toString(), v2_event_locations[i]);
}
idb_event_location_check_datetime = Date.now() + idb_event_location_check_period;
- let render_event_location_records_result = render_event_location_records(); // NOTE: v2 idb to ui
+ //let render_event_location_records_result = render_event_location_records(); // NOTE: v2 idb to ui
+ update_event_location_ui = true;
}
if (idb_event_session_check_datetime < Date.now()) {
@@ -372,7 +452,8 @@
tbl_event_session.setItem(v2_event_sessions[i].id.toString(), v2_event_sessions[i]);
}
idb_event_session_check_datetime = Date.now() + idb_event_session_check_period;
- let render_event_session_records_result = render_event_session_records(); // NOTE: v2 idb to ui
+ //let render_event_session_records_result = render_event_session_records(); // NOTE: v2 idb to ui
+ update_event_session_ui = true;
}
if (idb_event_presentation_check_datetime < Date.now()) {
@@ -382,7 +463,8 @@
tbl_event_presentation.setItem(v2_event_presentations[i].id.toString(), v2_event_presentations[i]);
}
idb_event_presentation_check_datetime = Date.now() + idb_event_presentation_check_period;
- let render_event_presentation_records_result = await render_event_presentation_records(); // NOTE: v2 idb to ui
+ //let render_event_presentation_records_result = await render_event_presentation_records(); // NOTE: v2 idb to ui
+ update_event_presentation_ui = true;
}
if (idb_event_presenter_check_datetime < Date.now()) {
@@ -393,7 +475,8 @@
}
idb_event_presenter_check_datetime = Date.now() + idb_event_presenter_check_period;
- let render_event_presenter_records_result = await render_event_presenter_records(); // NOTE: v2 idb to ui
+ //let render_event_presenter_records_result = await render_event_presenter_records(); // NOTE: v2 idb to ui
+ update_event_presenter_ui = true;
}
if (idb_event_file_check_datetime < Date.now()) {
@@ -427,21 +510,62 @@
run_check_file_cache = true; // Set to true so that the local file cache will be checked against the updated event files
idb_event_file_check_datetime = Date.now() + idb_event_file_check_period;
- let render_event_file_records_result = await render_event_file_records(); // NOTE: v2 idb to ui
+ //let render_event_file_records_result = await render_event_file_records(); // NOTE: v2 idb to ui
+ update_event_file_ui = true;
}
-
-
+
+ } else if (app_online && idb_tables_opened && !axios_headers_set) {
+ console.log('Online and waiting for the Axios headers to be set.');
+ console.log('Using cached IDB data');
+ /*
+ let render_event_records_result = render_event_records();
+ let render_event_location_records_result = render_event_location_records();
+ let render_event_session_records_result = render_event_session_records();
+ let render_event_presentation_records_result = await render_event_presentation_records();
+ let render_event_presenter_records_result = await render_event_presenter_records();
+ let render_event_file_records_result = await render_event_file_records();
+ */
+ } else if (app_online && axios_headers_set && !idb_tables_opened) {
+ console.log('Online and Axios headers are set. Waiting for the IDB tables to be opened');
+ } else if (!app_online) {
+ console.log('Waiting to update IDB once online.');
+ console.log('Using cached IDB data');
} else {
- console.log('Waiting for the Axios headers to be set and/or IDB tables opened...');
+ console.log('This should not happen.');
}
}, update_idb_loop_interval);
-
-
- /*var update_render_loop = setInterval(async function() {
- }, update_render_loop_interval);*/
+ var update_render_loop = setInterval(async function() {
+ console.log('*** Update Render Loop ***');
+
+ if (update_event_ui) {
+ let render_event_records_result = render_event_records();
+ update_event_ui = false;
+ }
+ if (update_event_location_ui) {
+ let render_event_location_records_result = render_event_location_records();
+ update_event_location_ui = false;
+ }
+ if (update_event_session_ui) {
+ let render_event_session_records_result = render_event_session_records();
+ update_event_session_ui = false;
+ }
+ if (update_event_presentation_ui) {
+ let render_event_presentation_records_result = await render_event_presentation_records();
+ update_event_presentation_ui = false;
+ }
+ if (update_event_presenter_ui) {
+ let render_event_presenter_records_result = await render_event_presenter_records();
+ update_event_presenter_ui = false;
+ }
+ if (update_event_file_ui) {
+ let render_event_file_records_result = await render_event_file_records();
+ update_event_file_ui = false;
+ }
+
+ }, update_render_loop_interval);
var check_file_cache_loop = setInterval(async function() {
diff --git a/app/js/app_api.js b/app/js/app_api.js
index 9ccdb18..7bdb726 100644
--- a/app/js/app_api.js
+++ b/app/js/app_api.js
@@ -1,5 +1,21 @@
async function api_token_request_async(axios, secret_key) {
console.log('Requesting API temporary token...');
+
+ if (waiting_on_api_token) {
+ console.log('Already waiting on an API token request. Not starting another until finished.');
+ return false;
+ } else {
+
+ }
+
+ if (navigator.onLine) {
+ } else {
+ app_online = false;
+ return false;
+ }
+
+ waiting_on_api_token = true;
+
const url = '/api_token_request';
let data = { secret_key: secret_key };
@@ -13,8 +29,10 @@ async function api_token_request_async(axios, secret_key) {
})
.catch(function (error) {
console.error(error);
- return error;
+ return false;
});
+
+ waiting_on_api_token = false;
return response;
}
diff --git a/app/js/app_ui_files.js b/app/js/app_ui_files.js
index 87c824b..e6d85bf 100644
--- a/app/js/app_ui_files.js
+++ b/app/js/app_ui_files.js
@@ -100,8 +100,10 @@ async function render_event_file_records() {
file_li_node.id = 'event_file_'+tbl_file_id;
if (tbl_for_type != 'event' && tbl_for_type != 'location') {
file_li_node.className = 'list-group-item btn btn-primary d-flex justify-content-between align-items-center open_local_file event_file';
+ //file_li_node.className = 'list-group-item btn btn-primary justify-content-between align-items-center open_local_file event_file';
} else {
file_li_node.className = 'list-group-item btn btn-sm btn-secondary d-flex justify-content-between align-items-center open_local_file event_file';
+ //file_li_node.className = 'list-group-item btn btn-sm btn-secondary justify-content-between align-items-center open_local_file event_file';
}
file_li_node.setAttribute('data-file_id', tbl_file_id);
diff --git a/app/js/app_ui_presentations.js b/app/js/app_ui_presentations.js
index 585252f..c973968 100644
--- a/app/js/app_ui_presentations.js
+++ b/app/js/app_ui_presentations.js
@@ -38,7 +38,10 @@ async function render_event_presentation_records(events) {
console.log('Presentation ('+presentation_id+') was found in the session ('+session_id+'). Updating...');
document.getElementById('event_presentation_'+value.id).getElementsByTagName('div')[0].getElementsByTagName('strong')[0].innerHTML = value.name;
let presentation_startdatetime = new Date(value.start_datetime);
- document.getElementById('event_presentation_'+value.id).getElementsByTagName('div')[0].getElementsByTagName('span')[0].innerHTML = dateFns.format(presentation_startdatetime, 'h:mm A');
+
+ let presentation_startdatetime_string = dateFns.format(presentation_startdatetime, 'h:mm A')
+
+ document.getElementById('event_presentation_'+value.id).getElementsByTagName('div')[0].getElementsByTagName('span')[0].innerHTML = presentation_startdatetime_string;
} else if (session_id != value.event_session_id && presentation_id == value.id) {
// Found presentation in a session that it should not be in. Removing...
@@ -120,10 +123,32 @@ async function render_event_presentation_records(events) {
presentation_name_strong_node.appendChild(presentation_name_text_node);
let presentation_heading_span_node = document.createElement('SPAN');
- presentation_heading_span_node.className = 'badge badge-pill badge-info';
+
+ if (display_presentation_badges) {
+ presentation_heading_span_node.className = 'badge badge-pill badge-info d-inline';
+ } else {
+ presentation_heading_span_node.className = 'badge badge-pill badge-info d-none';
+ }
+
+ /*
+ // Create the session code span
+ let span_session_code_node = document.createElement('SPAN');
+ span_session_code_node.id = 'detail_session_code_'+value.id;
+ if ( display_session_codes && value.code && value.code.length) {
+ span_session_code_node.className = 'd-inline detail_session_code';
+ } else {
+ span_session_code_node.className = 'd-none detail_session_code';
+ }
+
+ let span_session_code_text_node = document.createTextNode('('+value.code+')');
+ span_session_code_node.appendChild(span_session_code_text_node);
+ */
+
+ //let presenation_font = ' ';
let presentation_startdatetime = new Date(value.start_datetime);
- let presentation_heading_span_text_node = document.createTextNode(dateFns.format(presentation_startdatetime, 'h:mm A'));
+ let presentation_startdatetime_string = dateFns.format(presentation_startdatetime, 'h:mm A');
+ let presentation_heading_span_text_node = document.createTextNode(presentation_startdatetime_string);
presentation_heading_span_node.appendChild(presentation_heading_span_text_node);
presentation_li_heading_div_node.appendChild(presentation_name_strong_node);
diff --git a/app/js/app_ui_sessions.js b/app/js/app_ui_sessions.js
index b2b2f16..c5bc2bf 100644
--- a/app/js/app_ui_sessions.js
+++ b/app/js/app_ui_sessions.js
@@ -19,7 +19,7 @@ async function render_event_session_records() {
// *** ** * Checking if the session is already in the launcher menu * ** ***
if (document.getElementById('menu_event_session_'+value.id)) {
// Update the session menu list item
- document.getElementById('menu_event_session_'+value.id).innerHTML = value.name;
+ document.getElementById('menu_session_name_'+value.id).innerHTML = value.name;
} else {
// Unhide the sessions menu
if (document.getElementById('sessions_menu').classList.contains('d-none') ) {
@@ -28,18 +28,38 @@ async function render_event_session_records() {
}
// Add the new session to the session menu
- let node = document.createElement('LI');
- node.id = 'menu_event_session_'+value.id;
- node.className = 'list-group-item btn btn-success d-flex justify-content-between align-items-center btn_view_session';
- node.setAttribute('data-session_id', value.id);
+ let li_session_node = document.createElement('LI');
+ li_session_node.id = 'menu_event_session_'+value.id;
+ //li_session_node.className = 'list-group-item btn btn-success d-flex justify-content-between align-items-center btn_view_session';
+ li_session_node.className = 'list-group-item btn btn-success justify-content-between align-items-center btn_view_session';
+ li_session_node.setAttribute('data-session_id', value.id);
- node.title = 'id='+value.id+' session_id='+value.id;
+ li_session_node.title = 'id='+value.id+' session_id='+value.id;
- let text_node = document.createTextNode(value.name);
+ // Create the session name span
+ let li_span_name_node = document.createElement('SPAN');
+ li_span_name_node.id = 'menu_session_name_'+value.id;
+ li_span_name_node.className = 'd-inline menu_session_name';
- node.appendChild(text_node);
+ let li_span_name_text_node = document.createTextNode(value.name);
+ li_span_name_node.appendChild(li_span_name_text_node);
- document.getElementById('sessions_menu').getElementsByTagName('ul')[0].appendChild(node);
+ // Create the session code span
+ let li_span_badge_node = document.createElement('SPAN');
+ if ( display_session_codes && value.code && value.code.length) {
+ li_span_badge_node.className = 'd-inline menu_session_code';
+ } else {
+ li_span_badge_node.className = 'd-none';
+ }
+
+ let li_span_badge_text_node = document.createTextNode('('+value.code+')');
+ li_span_badge_node.appendChild(li_span_badge_text_node);
+
+
+ li_session_node.appendChild(li_span_name_node);
+ li_session_node.appendChild(li_span_badge_node);
+
+ document.getElementById('sessions_menu').getElementsByTagName('ul')[0].appendChild(li_session_node);
}
let session_startdatetime = new Date(value.start_datetime);
@@ -48,33 +68,68 @@ async function render_event_session_records() {
if (document.getElementById('detail_session_'+value.id)) {
// Update the launcher sessions list
// NOTE: Updating this text is very awkward?
- document.getElementById('detail_session_'+value.id).getElementsByTagName('h2')[0].firstChild.data = value.name;
- console.log(document.getElementById('detail_session_'+value.id).getElementsByTagName('h2')[0]);
- document.getElementById('detail_session_'+value.id).getElementsByTagName('h2')[0].getElementsByTagName('span')[0].innerHTML = dateFns.format(session_startdatetime, 'ddd h:mm A');
+ //document.getElementById('detail_session_'+value.id).getElementsByTagName('h2')[0].firstChild.data = value.name;
+ document.getElementById('detail_session_name_'+value.id).innerHTML = value.name;
+ document.getElementById('detail_session_code_'+value.id).innerHTML = '('+value.code+')';
+ //console.log(document.getElementById('detail_session_'+value.id).getElementsByTagName('h2')[0]);
+ document.getElementById('detail_session_badge_'+value.id).innerHTML = dateFns.format(session_startdatetime, 'ddd h:mm A');
} else {
// Add the new session to the launcher sessions list
- let div_node = document.createElement('DIV');
- div_node.id = 'detail_session_'+value.id;
- div_node.className = 'container d-none session_detail event_session';
- div_node.setAttribute('data-session_id', value.id);
+ let div_session_node = document.createElement('DIV');
+ div_session_node.id = 'detail_session_'+value.id;
+ div_session_node.className = 'container d-none session_detail event_session';
+ div_session_node.setAttribute('data-session_id', value.id);
- let h2_node = document.createElement('H2');
- h2_node.className = 'session_title d-flex justify-content-between align-items-center';
+ let h2_session_node = document.createElement('H2');
+ h2_session_node.className = 'session_heading d-flex justify-content-between align-items-center border-bottom border-primary';
+ //h2_session_node.className = 'detail_session_title justify-content-between align-items-center';
- // NOTE: Instead of a text node should this just be wrapped in a set of tags?
- // Updating this is kind of awkward... see above
- let h2_text_node = document.createTextNode(value.name);
- h2_node.appendChild(h2_text_node);
+ // Group the name and code together for the title
+ let span_session_title_node = document.createElement('SPAN');
+ span_session_title_node.className = 'session_title';
- let h2_span_node = document.createElement('SPAN');
- h2_span_node.className = 'badge badge-pill badge-info';
+ // Create the session name span
+ let span_session_name_node = document.createElement('SPAN');
+ span_session_name_node.id = 'detail_session_name_'+value.id;
+ span_session_name_node.className = 'detail_session_name';
- let h2_span_text_node = document.createTextNode(dateFns.format(session_startdatetime, 'ddd h:mm A'));
- h2_span_node.appendChild(h2_span_text_node);
+ let span_session_name_text_node = document.createTextNode('('+value.name+')');
+ span_session_name_node.appendChild(span_session_name_text_node);
- h2_node.appendChild(h2_span_node);
+ //h2_session_node.appendChild(span_session_name_node);
+ span_session_title_node.appendChild(span_session_name_node);
- div_node.appendChild(h2_node);
+ // Create the session code span
+ let span_session_code_node = document.createElement('SPAN');
+ span_session_code_node.id = 'detail_session_code_'+value.id;
+ if ( display_session_codes && value.code && value.code.length) {
+ span_session_code_node.className = 'd-inline detail_session_code';
+ } else {
+ span_session_code_node.className = 'd-none detail_session_code';
+ }
+
+ let span_session_code_text_node = document.createTextNode('('+value.code+')');
+ span_session_code_node.appendChild(span_session_code_text_node);
+
+ //h2_session_node.appendChild(span_session_code_node);
+ span_session_title_node.appendChild(span_session_code_node);
+ h2_session_node.appendChild(span_session_title_node);
+
+ let span_session_badge_node = document.createElement('SPAN');
+ span_session_badge_node.id = 'detail_session_badge_'+value.id;
+
+ if (display_session_badges) {
+ span_session_badge_node.className = 'badge badge-pill badge-info d-inline';
+ } else {
+ span_session_badge_node.className = 'badge badge-pill badge-info d-none';
+ }
+
+ let span_session_badge_text_node = document.createTextNode(dateFns.format(session_startdatetime, 'ddd h:mm A'));
+ span_session_badge_node.appendChild(span_session_badge_text_node);
+
+ h2_session_node.appendChild(span_session_badge_node);
+
+ div_session_node.appendChild(h2_session_node);
// Add placeholder cards for session files and session presentations
// Files
@@ -100,7 +155,7 @@ async function render_event_session_records() {
files_div_node.appendChild(files_header_div_node);
files_div_node.appendChild(files_body_div_node);
- div_node.appendChild(files_div_node);
+ div_session_node.appendChild(files_div_node);
// Presentations
let presentations_div_node = document.createElement('DIV');
@@ -126,10 +181,10 @@ async function render_event_session_records() {
presentations_div_node.appendChild(presentations_header_div_node);
presentations_div_node.appendChild(presentations_body_div_node);
- div_node.appendChild(presentations_div_node);
+ div_session_node.appendChild(presentations_div_node);
- document.getElementById('launcher_sessions').appendChild(div_node);
+ document.getElementById('launcher_sessions').appendChild(div_session_node);
}
} else {
diff --git a/app/js/module_app.js b/app/js/module_app.js
index 22c82ff..09ac018 100644
--- a/app/js/module_app.js
+++ b/app/js/module_app.js
@@ -63,5 +63,29 @@ exports.load_config = function () {
} else {
//close();
}
+ //console.log(config);
return config;
}
+
+exports.currently_online = function() {
+ //alert('You are currently online');
+ console.log('Currently online');
+ app_online = true;
+ document.getElementById('network_status1').classList.remove('btn-warning');
+ document.getElementById('network_status1').classList.add('btn-success');
+ document.getElementById('network_status1').innerHTML = ' Currently Online';
+ //document.getElementById('network_status1').innerHTML('Currently Online');
+}
+
+exports.currently_offline = function() {
+ //alert('You are currently offline');
+ console.log('Currently offline');
+ app_online = false;
+ document.getElementById('network_status1').classList.remove('btn-success');
+ document.getElementById('network_status1').classList.add('btn-warning');
+ document.getElementById('network_status1').innerHTML = ' Currently Offline';
+ //document.getElementById('network_status1').innerHTML('Currently Offline');
+}
+
+//window.addEventListener('online', currently_online);
+//window.addEventListener('offline', currently_offline);
diff --git a/config.json.default b/config.json.default
index 0f64f81..be8fa8f 100644
--- a/config.json.default
+++ b/config.json.default
@@ -1,7 +1,15 @@
{
+ "device_id": null,
+ "account_id": 12,
+ "event_id": 14,
+ "event_location_id": 13,
+ "main_loop_interval": 2000,
"api_secret_key": "YWAAk39H2qH0edK6lPH0yg",
+ "use_local_api": true,
+ "use_local_db": false,
"api_remote_base_url": "https://api.oneskyit.com",
"api_local_base_url": "http://api.localhost:5001",
+ "access_control_allow_origin": "*",
"remote_db_server": "db.oneskyit.com",
"remote_db_port": "3306",
"remote_db_name": "onesky_ams_test",
@@ -12,7 +20,19 @@
"local_db_name": "onesky_ams_test",
"local_db_username": "username_here",
"local_db_password": "password_here",
- "local_file_cache":"file_cache",
+ "idb_name": "osit",
+ "idb_check_period": 30000,
+ "idb_event_check_period": 120000,
+ "idb_event_location_check_period": 90000,
+ "idb_event_session_check_period": 60000,
+ "idb_event_presentation_check_period": 60000,
+ "idb_event_presenter_check_period": 60000,
+ "idb_event_file_check_period": 60000,
+ "host_file_cache_path": "file_cache",
+ "host_file_cache_check_period": 30000,
+ "display_session_codes": true,
+ "display_presentation_codes": true,
+ "display_presenter_codes": true,
"display_arrangement": "mirror_and_extend",
"display_builtin_resolution": "",
"display_builtin_refresh": "",
@@ -20,8 +40,8 @@
"display_external_resolution": "",
"display_external_refresh": "",
"display_external_rotation": "",
- "audio_out_volume": "",
- "audio_in_volume": "",
+ "audio_out_volume": null,
+ "audio_in_volume": null,
"fps": 30,
"show_cursor": true,
"highlight_clicks": false,
diff --git a/config.json.default.bak b/config.json.default.bak
new file mode 100644
index 0000000..0f64f81
--- /dev/null
+++ b/config.json.default.bak
@@ -0,0 +1,42 @@
+{
+ "api_secret_key": "YWAAk39H2qH0edK6lPH0yg",
+ "api_remote_base_url": "https://api.oneskyit.com",
+ "api_local_base_url": "http://api.localhost:5001",
+ "remote_db_server": "db.oneskyit.com",
+ "remote_db_port": "3306",
+ "remote_db_name": "onesky_ams_test",
+ "remote_db_username": "username_here",
+ "remote_db_password": "password_here",
+ "local_db_server": "db.localhost",
+ "local_db_port": "3306",
+ "local_db_name": "onesky_ams_test",
+ "local_db_username": "username_here",
+ "local_db_password": "password_here",
+ "local_file_cache":"file_cache",
+ "display_arrangement": "mirror_and_extend",
+ "display_builtin_resolution": "",
+ "display_builtin_refresh": "",
+ "display_builtin_rotation": "",
+ "display_external_resolution": "",
+ "display_external_refresh": "",
+ "display_external_rotation": "",
+ "audio_out_volume": "",
+ "audio_in_volume": "",
+ "fps": 30,
+ "show_cursor": true,
+ "highlight_clicks": false,
+ "screen_id": null,
+ "audio_device_id": null,
+ "known_builtin_screen_ids": [69732032, 69733952, 69733248],
+ "known_builtin_audio_device_ids": [ "AppleHDAEngineInput:1B,0,1,0:1", "BuiltInMicrophoneDevice" ],
+ "video_codec": "h264",
+ "recordings_path": "[home]/recordings",
+ "base_filename": "recording",
+ "aperture_bin_path": null,
+ "recording_start_datetime": "2019-10-12 01:01:01Z",
+ "recording_stop_datetime": "2019-10-31 23:59:59Z",
+ "recordings_datetime": [
+ { "start": "2019-10-11T09:50:00.00", "stop": "2019-10-11T10:15:00.00" },
+ { "start": "2019-10-11T10:50:00.00", "stop": "2019-10-11T11:15:00.00" }
+ ]
+}
diff --git a/package-lock.json b/package-lock.json
index 7c657be..5441605 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5,9 +5,9 @@
"requires": true,
"dependencies": {
"@electron/get": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.7.2.tgz",
- "integrity": "sha512-LSE4LZGMjGS9TloDx0yO44D2UTbaeKRk+QjlhWLiQlikV6J4spgDCjb6z4YIcqmPAwNzlNCnWF4dubytwI+ATA==",
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.8.0.tgz",
+ "integrity": "sha512-p9q2KNfN12lhLzcSJwjOKbHHZcPCP+DMHXWLE/nFzJfyFDiPFAvOgLdKwz8WvGfzn2Y8YtYk1BhqvaNRow78ag==",
"requires": {
"debug": "^4.1.1",
"env-paths": "^2.2.0",
@@ -48,16 +48,16 @@
}
},
"@types/node": {
- "version": "12.12.20",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.20.tgz",
- "integrity": "sha512-VAe+DiwpnC/g448uN+/3gRl4th0BTdrR9gSLIOHA+SUQskaYZQDOHG7xmjiE7JUhjbXnbXytf6Ih+/pA6CtMFQ=="
+ "version": "12.12.29",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.29.tgz",
+ "integrity": "sha512-yo8Qz0ygADGFptISDj3pOC9wXfln/5pQaN/ysDIzOaAWXt73cNHmtEC8zSO2Y+kse/txmwIAJzkYZ5fooaS5DQ=="
},
"ajv": {
- "version": "6.10.2",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
- "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
+ "version": "6.12.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
+ "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
"requires": {
- "fast-deep-equal": "^2.0.1",
+ "fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
@@ -106,17 +106,16 @@
"integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
},
"aws4": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.0.tgz",
- "integrity": "sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A=="
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz",
+ "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug=="
},
"axios": {
- "version": "0.19.0",
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz",
- "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==",
+ "version": "0.19.2",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz",
+ "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==",
"requires": {
- "follow-redirects": "1.5.10",
- "is-buffer": "^2.0.2"
+ "follow-redirects": "1.5.10"
}
},
"bcrypt-pbkdf": {
@@ -156,9 +155,9 @@
}
},
"boolean": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.0.tgz",
- "integrity": "sha512-OElxJ1lUSinuoUnkpOgLmxp0DC4ytEhODEL6QJU0NpxE/mI4rUSh8h1P1Wkvfi3xQEBcxXR2gBIPNYNuaFcAbQ==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.1.tgz",
+ "integrity": "sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA==",
"optional": true
},
"buffer-from": {
@@ -260,9 +259,9 @@
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
},
"core-js": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.5.0.tgz",
- "integrity": "sha512-Ifh3kj78gzQ7NAoJXeTu+XwzDld0QRIwjBLRqAMhuLhP3d2Av5wmgE9ycfnvK6NAEjTkQ1sDPeoEZAWO3Hx1Uw==",
+ "version": "3.6.4",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz",
+ "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==",
"optional": true
},
"core-util-is": {
@@ -300,9 +299,9 @@
"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
},
"defer-to-connect": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.1.tgz",
- "integrity": "sha512-J7thop4u3mRTkYRQ+Vpfwy2G5Ehoy82I14+14W4YMDLKdWloI9gSzRbV30s/NckQGVJtPkWNcW4oMAUigTdqiQ=="
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
+ "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ=="
},
"define-properties": {
"version": "1.1.3",
@@ -349,9 +348,9 @@
}
},
"electron": {
- "version": "7.1.5",
- "resolved": "https://registry.npmjs.org/electron/-/electron-7.1.5.tgz",
- "integrity": "sha512-jagsvNz6Axu2Lsp5PqDgkcR+4BwoPP9YyLgMu9lhpFNRNKpNgfsEqUbtNolkFN/TtmWjxGO+iioWRrGqZHmJ8w==",
+ "version": "7.1.14",
+ "resolved": "https://registry.npmjs.org/electron/-/electron-7.1.14.tgz",
+ "integrity": "sha512-y9Nbja4rl+5fPVw9e/lFudwRax3a+jenzS7WXzUkjF7GI8YFxNH2eH9K9PZFNuSwc/OOCja2ul70+D44tKTQEw==",
"requires": {
"@electron/get": "^1.0.1",
"@types/node": "^12.0.12",
@@ -426,9 +425,9 @@
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
},
"fast-deep-equal": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
- "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
+ "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA=="
},
"fast-json-stable-stringify": {
"version": "2.1.0",
@@ -528,24 +527,24 @@
"integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4="
},
"global-agent": {
- "version": "2.1.7",
- "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.1.7.tgz",
- "integrity": "sha512-ooK7eqGYZku+LgnbfH/Iv0RJ74XfhrBZDlke1QSzcBt0bw1PmJcnRADPAQuFE+R45pKKDTynAr25SBasY2kvow==",
+ "version": "2.1.8",
+ "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.1.8.tgz",
+ "integrity": "sha512-VpBe/rhY6Rw2VDOTszAMNambg+4Qv8j0yiTNDYEXXXxkUNGWLHp8A3ztK4YDBbFNcWF4rgsec6/5gPyryya/+A==",
"optional": true,
"requires": {
"boolean": "^3.0.0",
- "core-js": "^3.4.1",
+ "core-js": "^3.6.4",
"es6-error": "^4.1.1",
- "matcher": "^2.0.0",
- "roarr": "^2.14.5",
- "semver": "^6.3.0",
+ "matcher": "^2.1.0",
+ "roarr": "^2.15.2",
+ "semver": "^7.1.2",
"serialize-error": "^5.0.0"
},
"dependencies": {
"semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz",
+ "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==",
"optional": true
}
}
@@ -629,9 +628,9 @@
"integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
},
"http-cache-semantics": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz",
- "integrity": "sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew=="
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
+ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="
},
"http-signature": {
"version": "1.2.0",
@@ -653,11 +652,6 @@
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
"integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
},
- "is-buffer": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
- "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A=="
- },
"is-fullwidth-code-point": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
@@ -754,16 +748,16 @@
}
},
"mime-db": {
- "version": "1.42.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz",
- "integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ=="
+ "version": "1.43.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
+ "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ=="
},
"mime-types": {
- "version": "2.1.25",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz",
- "integrity": "sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==",
+ "version": "2.1.26",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
+ "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
"requires": {
- "mime-db": "1.42.0"
+ "mime-db": "1.43.0"
}
},
"mimic-response": {
@@ -953,9 +947,9 @@
"optional": true
},
"psl": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.6.0.tgz",
- "integrity": "sha512-SYKKmVel98NCOYXpkwUqZqh0ahZeeKfmisiLIcEZdsb+WbLv02g/dI5BUmZnIyOe7RzZtLax81nnb2HbvC2tzA=="
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz",
+ "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ=="
},
"pump": {
"version": "3.0.0",
@@ -1009,9 +1003,9 @@
}
},
"request": {
- "version": "2.88.0",
- "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
- "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
+ "version": "2.88.2",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
+ "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
"requires": {
"aws-sign2": "~0.7.0",
"aws4": "^1.8.0",
@@ -1020,7 +1014,7 @@
"extend": "~3.0.2",
"forever-agent": "~0.6.1",
"form-data": "~2.3.2",
- "har-validator": "~5.1.0",
+ "har-validator": "~5.1.3",
"http-signature": "~1.2.0",
"is-typedarray": "~1.0.0",
"isstream": "~0.1.2",
@@ -1030,7 +1024,7 @@
"performance-now": "^2.1.0",
"qs": "~6.5.2",
"safe-buffer": "^5.1.2",
- "tough-cookie": "~2.4.3",
+ "tough-cookie": "~2.5.0",
"tunnel-agent": "^0.6.0",
"uuid": "^3.3.2"
}
@@ -1044,14 +1038,14 @@
}
},
"roarr": {
- "version": "2.14.6",
- "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.14.6.tgz",
- "integrity": "sha512-qjbw0BEesKA+3XFBPt+KVe1PC/Z6ShfJ4wPlx2XifqH5h2Lj8/KQT5XJTsy3n1Es5kai+BwKALaECW3F70B1cg==",
+ "version": "2.15.2",
+ "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.2.tgz",
+ "integrity": "sha512-jmaDhK9CO4YbQAV8zzCnq9vjAqeO489MS5ehZ+rXmFiPFFE6B+S9KYO6prjmLJ5A0zY3QxVlQdrIya7E/azz/Q==",
"optional": true,
"requires": {
"boolean": "^3.0.0",
"detect-node": "^2.0.4",
- "globalthis": "^1.0.0",
+ "globalthis": "^1.0.1",
"json-stringify-safe": "^5.0.1",
"semver-compare": "^1.0.0",
"sprintf-js": "^1.1.2"
@@ -1252,19 +1246,12 @@
"integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q=="
},
"tough-cookie": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
- "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
+ "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
"requires": {
- "psl": "^1.1.24",
- "punycode": "^1.4.1"
- },
- "dependencies": {
- "punycode": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
- }
+ "psl": "^1.1.28",
+ "punycode": "^2.1.1"
}
},
"truncate-utf8-bytes": {
@@ -1362,9 +1349,9 @@
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
"uuid": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz",
- "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ=="
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
},
"verror": {
"version": "1.10.0",
diff --git a/package.json b/package.json
index 05b7792..1a218a8 100644
--- a/package.json
+++ b/package.json
@@ -10,12 +10,12 @@
"author": "",
"license": "ISC",
"dependencies": {
- "axios": "^0.19.0",
- "electron": "^7.1.5",
+ "axios": "^0.19.2",
+ "electron": "^7.1.14",
"fs": "0.0.1-security",
"os": "^0.1.1",
"path": "^0.12.7",
- "request": "^2.88.0",
+ "request": "^2.88.2",
"screen": "^0.2.10",
"usb": "^1.6.2"
}