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;
}