diff --git a/app/.index.html.kate-swp b/app/.index.html.kate-swp new file mode 100644 index 0000000..70a2574 Binary files /dev/null and b/app/.index.html.kate-swp differ diff --git a/app/index.html b/app/index.html index d8d7c46..20d644a 100644 --- a/app/index.html +++ b/app/index.html @@ -125,6 +125,20 @@ let event_location_id = app_config.event_location_id; + // Start set display options + + + 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 + + + // End of set display options + + // Start of API section const api_token_loop_interval = app_config.api_token_loop_interval; @@ -177,8 +191,6 @@ 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) { @@ -190,36 +202,15 @@ axios_headers_set = true; api_update_datetime = Date.now() + api_update_period; } else { - console.log('api_token_loop: Are we actually online? Setting the app to offline.'); + console.log('The temporary API token appears to have failed. Are we actually online? Setting the app to offline mode.'); console.log(navigator.onLine); app.currently_offline(); - /* - if (navigator.onLine) { - app.currently_online(); - } else { - app.currently_offline(); - } - */ } }) .catch(function (error) { console.log('Something went wrong while trying to request a temporary API token.'); 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 { @@ -230,6 +221,8 @@ // End of API section + // Start of IDB section + let idb_name = app_config.idb_name; if (window.indexedDB) { @@ -239,7 +232,6 @@ close(); } - var tbl_event = null; var tbl_event_location = null; var tbl_event_session = null; @@ -322,29 +314,11 @@ }).catch(function(err) { console.log(err); }); - /* - var tbl_hosted_file = localforage.createInstance({ - name: idb_name, - storeName: 'hosted_file', - }); - tbl_hosted_file.length().then(function(key_count) { - tbl_hosted_file_key_count = key_count; - }).catch(function(err) { - console.log(err); - }); - */ - - //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 open_tables_loop_interval = 10; // only runs briefly on start up 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 - // IDB tables need to be opened let idb_tables_opened = false; @@ -360,9 +334,11 @@ let idb_event_presentation_check_datetime = Date.now(); let idb_event_presenter_check_period = app_config.idb_event_presenter_check_period; let idb_event_presenter_check_datetime = Date.now(); + let idb_event_file_check_period = app_config.idb_event_file_check_period; let idb_event_file_check_datetime = Date.now(); + let run_update_idb = false; let run_check_file_cache = false; @@ -373,20 +349,9 @@ let looping_tbl_event_presenter = false; let looping_tbl_event_file = false; - 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 - - 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 - let idb_tables_have_records = false; - - var open_tables_loop = setInterval(function() { + var open_tables_loop = setInterval(async function() { if (tbl_event && tbl_event_location && tbl_event_session && tbl_event_presentation && tbl_event_presenter && tbl_event_file) { @@ -396,13 +361,59 @@ clearInterval(open_tables_loop); console.log('Attempting to use 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(); + console.log('table record counts: '+tbl_event_key_count+' | '+tbl_event_location_key_count+' | '+tbl_event_session_key_count + +' | '+tbl_event_presentation_key_count+' | '+tbl_event_presenter_key_count + +' | '+tbl_event_file_key_count); + + if (tbl_event_key_count + && tbl_event_location_key_count + && tbl_event_session_key_count + && tbl_event_presentation_key_count + && tbl_event_presenter_key_count + && tbl_event_file_key_count) { + + + + let render_event_records_result = render_event_records(); + //setTimeout(async function(){ let render_event_records_result = await render_event_records(); }, 500); + let render_event_location_records_result = render_event_location_records(); + //setTimeout(async function(){ let render_event_location_records_result = await render_event_location_records(); }, 1000); + let render_event_session_records_result = render_event_session_records() + .then(async function (result) { + console.log('Rendering session records has finished. Moving to other records.'); + console.log(result); + 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(); + }) + .catch(function (error) { + console.log('Something went wrong rendering session records.'); + console.log(error); + }); + /* + 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(); + */ + /* + setTimeout(async function(){ + //let render_event_session_records_result = await 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(); + //index_launcher_sessions('btn_view_session'); + }, 1000); + */ + //let render_event_presentation_records_result = await render_event_presentation_records(); + //setTimeout(function(){ let render_event_presentation_records_result = render_event_presentation_records(); }, 3000); + //let render_event_presenter_records_result = render_event_presenter_records(); + //setTimeout(function(){ let render_event_presenter_records_result = render_event_presenter_records(); }, 4000); + //let render_event_file_records_result = render_event_file_records(); + //setTimeout(function(){ let render_event_file_records_result = render_event_file_records(); }, 5000); + } else { + console.log('One or more of the tables has 0 records.'); + } } else { console.log('IDB tables have not yet been created or opened.'); @@ -558,10 +569,16 @@ }, update_idb_loop_interval); + // End of IDB section + // Start of cached file section + const check_file_cache_loop_interval = app_config.check_file_cache_loop_interval; // loop forever; only run after the event_file table has updated + const update_render_loop_interval = app_config.update_render_loop_interval; // loop forever + const host_file_cache_path = app_config.host_file_cache_path; // 'file_cache/' + var check_file_cache_loop = setInterval(async function() { if (run_check_file_cache) { console.log('FLAG: check_file_cache='+run_check_file_cache); @@ -577,6 +594,11 @@ }, check_file_cache_loop_interval); + // End of cached file section + + + + var check_initial_online_status = setInterval(async function() { console.log('check_initial_online_status online check?'); console.log(navigator.onLine); diff --git a/app/js/.app_api.js.kate-swp b/app/js/.app_api.js.kate-swp deleted file mode 100644 index a07ce60..0000000 Binary files a/app/js/.app_api.js.kate-swp and /dev/null differ diff --git a/app/js/app_api.js b/app/js/app_api.js index 7bdb726..e165d43 100644 --- a/app/js/app_api.js +++ b/app/js/app_api.js @@ -7,20 +7,13 @@ async function api_token_request_async(axios, secret_key) { } 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 }; - const response = await axios.post(url, data) + const result = await axios.post(url, data) .then(function (response) { //console.log(response); const api_temporary_token = response.data.temporary_token; @@ -33,7 +26,7 @@ async function api_token_request_async(axios, secret_key) { }); waiting_on_api_token = false; - return response; + return result; } diff --git a/app/js/app_ui_files.js b/app/js/app_ui_files.js index e6d85bf..8b602aa 100644 --- a/app/js/app_ui_files.js +++ b/app/js/app_ui_files.js @@ -14,7 +14,7 @@ async function render_event_file_records() { looping_tbl_event_file = true; console.log('Iterating through the tbl_event_file table...'); - await tbl_event_file.iterate(function(value, key, iteration) { + let tbl_event_file_result = await tbl_event_file.iterate(function(value, key, iteration) { let tbl_file_id = value.id; let tbl_hosted_file_id = value.hosted_file_id; let tbl_event_id = value.event_id; @@ -213,8 +213,15 @@ async function render_event_file_records() { }).then(function() { console.log('idb_to_ui: Iterate tbl_event_file looking for files to add is complete'); looping_tbl_event_file = false; + return true; + }) + .catch(function (error) { + console.log('Something went wrong in function render_event_file_records.'); + console.log(error); + return false; }); + index_open_file_buttons('open_local_file'); return true; diff --git a/app/js/app_ui_misc.js b/app/js/app_ui_misc.js index 2f093f4..26b6591 100644 --- a/app/js/app_ui_misc.js +++ b/app/js/app_ui_misc.js @@ -2,7 +2,7 @@ const path = require('path'); const { ipcRenderer } = require('electron'); //exports.render_event_records = function () { -function render_event_records() { +async function render_event_records() { console.log('Rendering event records...'); //console.log(tbl_event); //console.log(event_id); diff --git a/app/js/app_ui_presentations.js b/app/js/app_ui_presentations.js index c973968..e87451d 100644 --- a/app/js/app_ui_presentations.js +++ b/app/js/app_ui_presentations.js @@ -10,6 +10,7 @@ async function render_event_presentation_records(events) { } + let launcher_sessions = document.getElementById('launcher_sessions').childNodes; //_list_items //console.log(launcher_sessions); @@ -30,7 +31,7 @@ async function render_event_presentation_records(events) { console.log('Current launcher presentation_id='+presentations_list[j].getAttribute('data-presentation_id')); let presentation_id = presentations_list[j].getAttribute('data-presentation_id'); - await tbl_event_presentation.iterate(function(value, key, iteration) { + let tbl_event_presentation_result = await tbl_event_presentation.iterate(function(value, key, iteration) { //console.log('*** 1: session_id='+session_id+' | presentation.event_session_id='+value.event_session_id+' | presentation_id='+presentation_id+' | presentation.id='+value.id+' (launcher sessions loop i='+i+')'); looping_tbl_event_presentation = true; if (session_id == value.event_session_id && presentation_id == value.id) { @@ -67,7 +68,7 @@ async function render_event_presentation_records(events) { // Now that the updates and removals have been done we need to add presentations. - await tbl_event_presentation.iterate(function(value, key, iteration) { + let tbl_event_presentation_result = await tbl_event_presentation.iterate(function(value, key, iteration) { //console.log('*** 2: session_id='+session_id+' | presentation.event_session_id='+value.event_session_id+' | presentation.id='+value.id+' (launcher sessions loop i='+i+')'); looping_tbl_event_presentation = true; @@ -200,10 +201,15 @@ async function render_event_presentation_records(events) { }).then(function() { console.log('idb_to_ui: Iterate tbl_event_presentation looking for presentations to add is complete'); looping_tbl_event_presentation = false; + return true; + }) + .catch(function (error) { + console.log('Something went wrong in function render_event_presentation_records.'); + console.log(error); + return false; }); - } - return true; + return result; } diff --git a/app/js/app_ui_presenters.js b/app/js/app_ui_presenters.js index 622c6c9..2f97486 100644 --- a/app/js/app_ui_presenters.js +++ b/app/js/app_ui_presenters.js @@ -16,7 +16,7 @@ async function render_event_presenter_records(events) { //console.log(presentations_presenters_lists); // First: Loop through the presenters table looking for presenters for each presentation list - await tbl_event_presenter.iterate(function(value, key, iteration) { + let tbl_event_presenter_result = await tbl_event_presenter.iterate(function(value, key, iteration) { let tbl_session_id = value.event_session_id; let tbl_presentation_id = value.event_presentation_id; let tbl_presenter_id = value.id; @@ -207,6 +207,12 @@ async function render_event_presenter_records(events) { }).then(function() { console.log('idb_to_ui: Iterate tbl_event_presenter looking for presenters to update, add, or remove is complete'); looping_tbl_event_presenter = false; + return true; + }) + .catch(function (error) { + console.log('Something went wrong in function render_event_presenter_records.'); + console.log(error); + return false; }); return true; diff --git a/app/js/app_ui_sessions.js b/app/js/app_ui_sessions.js index c5bc2bf..3279619 100644 --- a/app/js/app_ui_sessions.js +++ b/app/js/app_ui_sessions.js @@ -9,10 +9,11 @@ async function render_event_session_records() { } + looping_tbl_event_session = true; // First: update or add sessions - tbl_event_session.iterate(function(value, key, iteration) { + result = tbl_event_session.iterate(await function(value, key, iteration) { if (value.event_id == event_id && value.event_location_id == event_location_id) { console.log('*** Event session id ('+value.id+') is part of this event location.'); @@ -238,12 +239,11 @@ async function render_event_session_records() { } looping_tbl_event_session = false; + + // Third: re-index view session buttons + index_launcher_sessions('btn_view_session'); + return true }); - // Third: re-index view session buttons - // NOTE: Should this go in a .then() section? - // NOTE: It might make even more sense to only have this done individually per add. Should also do a remove to keep things clean. - //index_launcher_sessions('btn_view_session'); - index_launcher_sessions('btn_view_session'); - + return result; }