diff --git a/app/.index.html.kate-swp b/app/.index.html.kate-swp
new file mode 100644
index 0000000..c604064
Binary files /dev/null and b/app/.index.html.kate-swp differ
diff --git a/app/index.html b/app/index.html
index 8a6077a..7731f35 100644
--- a/app/index.html
+++ b/app/index.html
@@ -55,13 +55,20 @@
-
+
+
+
+
+ Reset Launcher
+
+
+
@@ -97,9 +104,10 @@
-
+
+
@@ -127,7 +135,7 @@
axios.defaults.baseURL = api_base_url;
axios.defaults.headers.post['Access-Control-Allow-Origin'] = app_config.access_control_allow_origin; // '*';
- api.api_token_request_async(axios, secret_key).then( function(result) {
+ 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;
@@ -256,22 +264,20 @@
let idb_tables_opened = false;
// check periods and datetimes for update_idb_loop
- idb_event_check_period = app_config.idb_event_check_period;
- idb_event_check_datetime = Date.now();
- idb_event_location_check_period = app_config.idb_event_location_check_period;
- idb_event_location_check_datetime = Date.now();
- idb_event_session_check_period = app_config.idb_event_session_check_period;
- idb_event_session_check_datetime = Date.now();
- idb_event_presentation_check_period = app_config.idb_event_presentation_check_period;
- idb_event_presentation_check_datetime = Date.now();
- idb_event_presenter_check_period = app_config.idb_event_presenter_check_period;
- idb_event_presenter_check_datetime = Date.now();
- idb_event_file_check_period = app_config.idb_event_file_check_period;
- idb_event_file_check_datetime = Date.now();
+ let idb_event_check_period = app_config.idb_event_check_period;
+ let idb_event_check_datetime = Date.now();
+ let idb_event_location_check_period = app_config.idb_event_location_check_period;
+ let idb_event_location_check_datetime = Date.now();
+ let idb_event_session_check_period = app_config.idb_event_session_check_period;
+ let idb_event_session_check_datetime = Date.now();
+ let idb_event_presentation_check_period = app_config.idb_event_presentation_check_period;
+ 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_idb_to_launcher = false;
- //let idb_to_launcher_in_progress = false;
let run_check_file_cache = false;
let looping_tbl_event = false;
@@ -329,7 +335,7 @@
var api_token_update_loop = setInterval(function() {
- api.api_token_request_async(axios, secret_key).then( function(result) {
+ 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;
@@ -344,7 +350,7 @@
if (axios_headers_set && idb_tables_opened) {
if (idb_event_check_datetime < Date.now()) {
console.log('**** *** ** * Time to check events');
- let v2_account_events = await api.v2_get_account_events(axios, account_id)
+ let v2_account_events = await v2_get_account_events(axios, account_id)
.then(function (response) {
for (var i in response) {
tbl_event.setItem(response[i].id.toString(), response[i]);
@@ -361,7 +367,7 @@
if (idb_event_location_check_datetime < Date.now()) {
console.log('**** *** ** * Time to check event locations');
- let v2_event_locations = await api.v2_get_event_locations(axios, event_id);
+ let v2_event_locations = await v2_get_event_locations(axios, event_id);
for (var i in v2_event_locations) {
tbl_event_location.setItem(v2_event_locations[i].id.toString(), v2_event_locations[i]);
}
@@ -371,7 +377,7 @@
if (idb_event_session_check_datetime < Date.now()) {
console.log('**** *** ** * Time to check event sessions'); // All event sessions, not just location specific.
- let v2_event_sessions = await api.v2_get_event_sessions(axios, event_id); // Was v2_get_event_location_sessions
+ let v2_event_sessions = await v2_get_event_sessions(axios, event_id); // Was v2_get_event_location_sessions
//tbl_event_session.clear();
for (var i in v2_event_sessions) {
tbl_event_session.setItem(v2_event_sessions[i].id.toString(), v2_event_sessions[i]);
@@ -382,7 +388,7 @@
if (idb_event_presentation_check_datetime < Date.now()) {
console.log('**** *** ** * Time to check event location presentations');
- let v2_event_presentations = await api.v2_get_event_location_presentations(axios, event_location_id);
+ let v2_event_presentations = await v2_get_event_location_presentations(axios, event_location_id);
for (var i in v2_event_presentations) {
tbl_event_presentation.setItem(v2_event_presentations[i].id.toString(), v2_event_presentations[i]);
}
@@ -392,7 +398,7 @@
if (idb_event_presenter_check_datetime < Date.now()) {
console.log('**** *** ** * Time to check event location presenters');
- let v2_event_presenters = await api.v2_get_event_location_presenters(axios, event_location_id);
+ let v2_event_presenters = await v2_get_event_location_presenters(axios, event_location_id);
for (var i in v2_event_presenters) {
tbl_event_presenter.setItem(v2_event_presenters[i].id.toString(), v2_event_presenters[i]);
}
@@ -404,27 +410,27 @@
if (idb_event_file_check_datetime < Date.now()) {
console.log('**** *** ** * Time to check event location files');
- let v2_event_files = await api.v2_get_event_files(axios, event_id);
+ let v2_event_files = await v2_get_event_files(axios, event_id);
for (var i in v2_event_files) {
tbl_event_file.setItem(v2_event_files[i].id.toString(), v2_event_files[i]);
}
- let v2_event_location_files = await api.v2_get_event_location_files(axios, event_location_id);
+ let v2_event_location_files = await v2_get_event_location_files(axios, event_location_id);
for (var i in v2_event_location_files) {
tbl_event_file.setItem(v2_event_location_files[i].id.toString(), v2_event_location_files[i]);
}
- let v2_event_location_files_sessions = await api.v2_get_event_location_files_sessions(axios, event_location_id);
+ let v2_event_location_files_sessions = await v2_get_event_location_files_sessions(axios, event_location_id);
for (var i in v2_event_location_files_sessions) {
tbl_event_file.setItem(v2_event_location_files_sessions[i].id.toString(), v2_event_location_files_sessions[i]);
}
- let v2_event_location_files_presentations = await api.v2_get_event_location_files_presentations(axios, event_location_id);
+ let v2_event_location_files_presentations = await v2_get_event_location_files_presentations(axios, event_location_id);
for (var i in v2_event_location_files_presentations) {
tbl_event_file.setItem(v2_event_location_files_presentations[i].id.toString(), v2_event_location_files_presentations[i]);
}
- let v2_event_location_files_presenters = await api.v2_get_event_location_files_presenters(axios, event_location_id);
+ let v2_event_location_files_presenters = await v2_get_event_location_files_presenters(axios, event_location_id);
for (var i in v2_event_location_files_presenters) {
tbl_event_file.setItem(v2_event_location_files_presenters[i].id.toString(), v2_event_location_files_presenters[i]);
}
diff --git a/app/js/module_api.js b/app/js/app_api.js
similarity index 86%
rename from app/js/module_api.js
rename to app/js/app_api.js
index 4d85db6..9ccdb18 100644
--- a/app/js/module_api.js
+++ b/app/js/app_api.js
@@ -1,12 +1,4 @@
-/*
-const os = require('os');
-const path = require('path');
-const fs = require('fs');
-
-const { ipcRenderer } = require('electron');
-*/
-
-exports.api_token_request_async = async function (axios, secret_key) {
+async function api_token_request_async(axios, secret_key) {
console.log('Requesting API temporary token...');
const url = '/api_token_request';
@@ -27,7 +19,7 @@ exports.api_token_request_async = async function (axios, secret_key) {
}
-exports.get_event_details = async function (axios, event_id) {
+async function get_event_details(axios, event_id) {
console.log('Requesting event details...');
const url = '/event/'+event_id;
@@ -46,7 +38,7 @@ exports.get_event_details = async function (axios, event_id) {
}
-exports.get_event_location_details = async function (axios, event_id, event_location_id) {
+async function get_event_location_details(axios, event_id, event_location_id) {
console.log('Requesting event location details...');
const url = '/event/'+event_id+'/location/'+event_location_id;
@@ -65,7 +57,7 @@ exports.get_event_location_details = async function (axios, event_id, event_loca
}
-exports.get_event_location_sessions = async function (axios, event_id, event_location_id) {
+async function get_event_location_sessions(axios, event_id, event_location_id) {
console.log('Requesting location sessions...');
const url = '/event/'+event_id+'/location/'+event_location_id+'/session';
@@ -84,7 +76,7 @@ exports.get_event_location_sessions = async function (axios, event_id, event_loc
}
-exports.get_session_presentations = async function (axios, event_id, event_session_id) {
+async function get_session_presentations(axios, event_id, event_session_id) {
console.log('Requesting session presentations...');
const url = '/event/'+event_id+'/session/'+event_session_id+'/presentation';
@@ -103,7 +95,7 @@ exports.get_session_presentations = async function (axios, event_id, event_sessi
}
-exports.get_presentation_presenters = async function (axios, event_id, event_session_id, event_presentation_id) {
+async function get_presentation_presenters(axios, event_id, event_session_id, event_presentation_id) {
console.log('Requesting presentation presenters...');
const url = '/event/'+event_id+'/session/'+event_session_id+'/presentation/'+event_presentation_id+'/presenter';
@@ -122,7 +114,7 @@ exports.get_presentation_presenters = async function (axios, event_id, event_ses
}
-exports.get_files_for_type_for_id = async function (axios, for_type, for_id) {
+async function get_files_for_type_for_id(axios, for_type, for_id) {
console.log('Requesting files for '+for_type+' '+for_id);
const url = '/event/file/'+for_type+'/'+for_id;
@@ -141,7 +133,7 @@ exports.get_files_for_type_for_id = async function (axios, for_type, for_id) {
}
/*
-exports.download_file_id = async function (axios, file_id, filename) {
+async function download_file_id(axios, file_id, filename) {
ipcRenderer.send('download_file', api_base_url, api_endpoint, api_temporary_token, save_path); // in render thread
@@ -210,7 +202,7 @@ exports.download_file_id = async function (axios, file_id, filename) {
/* v2 Section */
-exports.v2_get_account_events = async function (axios, account_id) {
+async function v2_get_account_events(axios, account_id) {
console.log('Requesting account events...');
const url = '/v2/account/'+account_id+'/events';
@@ -230,7 +222,7 @@ exports.v2_get_account_events = async function (axios, account_id) {
}
-exports.v2_get_event_locations = async function (axios, event_id) {
+async function v2_get_event_locations(axios, event_id) {
console.log('Requesting event locations...');
const url = '/v2/event/'+event_id+'/event_locations';
@@ -250,7 +242,7 @@ exports.v2_get_event_locations = async function (axios, event_id) {
}
-exports.v2_get_event_sessions = async function (axios, event_id) {
+async function v2_get_event_sessions(axios, event_id) {
console.log('Requesting event sessions...');
const url = '/v2/event/'+event_id+'/event_sessions';
@@ -271,7 +263,7 @@ exports.v2_get_event_sessions = async function (axios, event_id) {
-exports.v2_get_event_location_sessions = async function (axios, event_location_id) {
+async function v2_get_event_location_sessions(axios, event_location_id) {
console.log('Requesting location sessions...');
const url = '/v2/event_location/'+event_location_id+'/event_sessions';
@@ -291,7 +283,7 @@ exports.v2_get_event_location_sessions = async function (axios, event_location_i
}
-exports.v2_get_event_location_presentations = async function (axios, event_location_id) {
+async function v2_get_event_location_presentations(axios, event_location_id) {
console.log('Requesting location presentations...');
const url = '/v2/event_location/'+event_location_id+'/event_presentations';
@@ -311,7 +303,7 @@ exports.v2_get_event_location_presentations = async function (axios, event_locat
}
-exports.v2_get_event_location_presenters = async function (axios, event_location_id) {
+async function v2_get_event_location_presenters(axios, event_location_id) {
console.log('Requesting location presenters...');
const url = '/v2/event_location/'+event_location_id+'/event_presenters';
@@ -331,7 +323,7 @@ exports.v2_get_event_location_presenters = async function (axios, event_location
}
-exports.v2_get_event_files = async function (axios, event_id) {
+async function v2_get_event_files(axios, event_id) {
console.log('Requesting event files...');
const url = '/v2/event/'+event_id+'/event_files';
@@ -352,7 +344,7 @@ exports.v2_get_event_files = async function (axios, event_id) {
}
-exports.v2_get_event_location_files = async function (axios, event_location_id) {
+async function v2_get_event_location_files(axios, event_location_id) {
console.log('Requesting location files...');
const url = '/v2/event_location/'+event_location_id+'/event_files';
@@ -373,7 +365,7 @@ exports.v2_get_event_location_files = async function (axios, event_location_id)
}
-exports.v2_get_event_location_files_sessions = async function (axios, event_location_id) {
+async function v2_get_event_location_files_sessions(axios, event_location_id) {
console.log('Requesting all session files for a location...');
const url = '/v2/event_location/'+event_location_id+'/event_files/sessions';
@@ -394,7 +386,7 @@ exports.v2_get_event_location_files_sessions = async function (axios, event_loca
}
-exports.v2_get_event_location_files_presentations = async function (axios, event_location_id) {
+async function v2_get_event_location_files_presentations(axios, event_location_id) {
console.log('Requesting all presentation files for a location...');
const url = '/v2/event_location/'+event_location_id+'/event_files/presentations';
@@ -415,7 +407,7 @@ exports.v2_get_event_location_files_presentations = async function (axios, event
}
-exports.v2_get_event_location_files_presenters = async function (axios, event_location_id) {
+async function v2_get_event_location_files_presenters(axios, event_location_id) {
console.log('Requesting all presenter files for a location...');
const url = '/v2/event_location/'+event_location_id+'/event_files/presenters';
diff --git a/app/js/app_ui_files.js b/app/js/app_ui_files.js
index b998025..2e24aa2 100644
--- a/app/js/app_ui_files.js
+++ b/app/js/app_ui_files.js
@@ -58,8 +58,7 @@ async function render_event_file_records() {
file_li_node.getElementsByClassName('filename')[0].innerHTML = tbl_filename;
try {
file_li_node.getElementsByClassName('file_meta')[0].innerHTML = format_bytes(tbl_size, 2)+'; '+dateFns.format(tbl_created_on, 'MMM M h:mm A')+'; '+tbl_internal_os;
- }
- catch(err) {
+ } catch(err) {
console.log('file_meta span not found. This is ok for event and location specific files.');
}
@@ -89,8 +88,7 @@ async function render_event_file_records() {
console.log('Trying to remove an old file LI node if it exists...');
try {
document.getElementById('event_file_'+tbl_file_id).remove();
- }
- catch(err) {
+ } catch(err) {
//console.log('A node with the ID of event_file_'+tbl_file_id+' was not found.');
console.log('This event file list item node was not found. In most cases this is expected.');
console.log(err.message);
@@ -98,7 +96,11 @@ async function render_event_file_records() {
let file_li_node = document.createElement('LI');
file_li_node.id = 'event_file_'+tbl_file_id;
- file_li_node.className = 'list-group-item btn btn-primary d-flex justify-content-between align-items-center open_local_file event_file';
+ 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';
+ } 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.setAttribute('data-file_id', tbl_file_id);
@@ -161,8 +163,7 @@ async function render_event_file_records() {
console.log('Trying to remove an old file LI node if it exists...');
try {
document.getElementById('event_file_'+tbl_file_id).remove();
- }
- catch(err) {
+ } catch(err) {
//console.log('A node with the ID of event_file_'+tbl_file_id+' was not found.');
console.log('This event file list item node was not found. In most cases this is expected.');
console.log(err.message);
@@ -171,25 +172,28 @@ async function render_event_file_records() {
console.log('XXXXX ******** STARTING SORT ******** XXXXX');
let node_id = tbl_for_type+'_files_list_'+tbl_for_id;
- console.log(node_id);
+ console.log(node_id);
+ try {
+ var categoryItems = document.getElementById(node_id).childNodes;
+ console.log(categoryItems);
- var categoryItems = document.getElementById(node_id).childNodes;
- console.log(categoryItems);
-
- var categoryItemsArray = Array.from(categoryItems);
-
- function sorter(a, b) {
- if (a.dataset.updated_on > b.dataset.updated_on) return -1;
- if (a.dataset.updated_on < b.dataset.updated_on) return 1;
+ var categoryItemsArray = Array.from(categoryItems);
+
+ function sorter(a, b) {
+ if (a.dataset.updated_on > b.dataset.updated_on) return -1;
+ if (a.dataset.updated_on < b.dataset.updated_on) return 1;
+ }
+
+ let sorted = categoryItemsArray.sort(sorter);
+
+ function update_li_order(item, index) {
+ document.getElementById(node_id).appendChild(item);
+ }
+
+ sorted.forEach(update_li_order);
+ } catch(err) {
+ console.log(err);
}
-
- let sorted = categoryItemsArray.sort(sorter);
-
- function update_li_order(item, index) {
- document.getElementById(node_id).appendChild(item);
- }
-
- sorted.forEach(update_li_order);
console.log('******** FINISHED SORT ********');
diff --git a/app/js/app_ui_misc.js b/app/js/app_ui_misc.js
index c99528e..1e6c0f6 100644
--- a/app/js/app_ui_misc.js
+++ b/app/js/app_ui_misc.js
@@ -7,6 +7,15 @@ function render_event_records() {
//console.log(tbl_event);
//console.log(event_id);
+ if (looping_tbl_event) {
+ console.log('Already looping through the tbl_event table. Not starting until finished.');
+ return false;
+ } else {
+
+ }
+
+ looping_tbl_event = true;
+
tbl_event.iterate(function(value, key, iteration) {
if (value.id == event_id) {
console.log('*** Event id ('+event_id+') found in table.');
@@ -17,7 +26,8 @@ function render_event_records() {
}
}).then(function() {
console.log('idb_to_ui: Iterate tbl_event_file complete')
- tbl_event_complete = true;
+ //tbl_event_complete = true;
+ looping_tbl_event = false;
});
}
@@ -27,6 +37,15 @@ function render_event_records() {
async function render_event_location_records() {
console.log('Rendering event location records...');
+ if (looping_tbl_event_location) {
+ console.log('Already looping through the tbl_event_location table. Not starting until finished.');
+ return false;
+ } else {
+
+ }
+
+ looping_tbl_event_location = true;
+
await tbl_event_location.iterate(function(value, key, iteration) {
if (value.id == event_location_id) {
console.log('*** Event location id ('+event_location_id+') found in table.');
@@ -45,7 +64,8 @@ async function render_event_location_records() {
}
}).then(function() {
console.log('idb_to_ui: Iterate tbl_event_file complete')
- tbl_event_location_complete = true;
+ //tbl_event_location_complete = true;
+ looping_tbl_event_location = false;
});
return true;
@@ -89,23 +109,34 @@ function view_session(session_id) {
/* Updated 2020-02-13 */
function index_open_file_buttons(class_name) {
+ console.log('Indexing open file buttons...');
+ console.log('****************** Indexing ******************');
var class_elements = document.getElementsByClassName(class_name);
+ console.log(class_elements);
for (var i = 0; i < class_elements.length; i++) {
// Do not use an anonymous function. If you do then it will keep adding event listeners.
// Adding the exact same event listeners over and over doesn't hurt anything.
// No need to use removeEventListener()
class_elements[i].addEventListener( 'click', open_local_file );
+
+ /*
+ let hash = class_elements[i].getAttribute('data-hash_sha256');
+ let file_path = path.join(host_file_cache_path, hash);
+ let filename = class_elements[i].getAttribute('data-filename');
+ class_elements[i].addEventListener( 'click', function() { ipcRenderer.send('open_local_file', file_path, filename) } );
+ */
}
return true;
}
/* Updated 2020-02-13 */
-function open_local_file(element) {
- console.log(element);
- let file_path = path.join(host_file_cache_path, element.getAttribute('data-hash_sha256'));
- let filename = element.getAttribute('data-filename');
+function open_local_file() {
+ //console.log(this);
+ let hash = this.getAttribute('data-hash_sha256');
+ let file_path = path.join(host_file_cache_path, hash);
+ let filename = this.getAttribute('data-filename');
console.log(file_path);
console.log(filename);
diff --git a/app/js/app_ui_presentations.js b/app/js/app_ui_presentations.js
index ca3d5f3..585252f 100644
--- a/app/js/app_ui_presentations.js
+++ b/app/js/app_ui_presentations.js
@@ -3,6 +3,13 @@ async function render_event_presentation_records(events) {
console.log('Rendering event presentation records...');
console.log('****************** Presentations ******************');
+ if (looping_tbl_event_presentation) {
+ console.log('Already looping through the tbl_event_presentation table. Not starting until finished.');
+ return false;
+ } else {
+
+ }
+
let launcher_sessions = document.getElementById('launcher_sessions').childNodes; //_list_items
//console.log(launcher_sessions);
@@ -45,6 +52,7 @@ async function render_event_presentation_records(events) {
}).then(function() {
console.log('idb_to_ui: Iterate tbl_event_presentation looking for presentations to update or remove is complete');
+
looping_tbl_event_presentation = false;
});
}
@@ -151,8 +159,7 @@ async function render_event_presentation_records(events) {
// Trying to remove old ID in case there is one already rendered
try {
document.getElementById('event_presentation_'+value.id).remove();
- }
- catch(err) {
+ } catch(err) {
console.log('A node with the ID of event_presentation_'+value.id+' was not found. In most cases this is expected.');
console.log(err.message);
}
diff --git a/app/js/app_ui_presenters.js b/app/js/app_ui_presenters.js
index 69a7df3..622c6c9 100644
--- a/app/js/app_ui_presenters.js
+++ b/app/js/app_ui_presenters.js
@@ -112,8 +112,7 @@ async function render_event_presenter_records(events) {
console.log('Trying to remove an old presenter LI node if it exists...');
try {
document.getElementById('event_presenter_'+tbl_presenter_id).remove();
- }
- catch(err) {
+ } catch(err) {
//console.log('A node with the ID of event_presenter_'+tbl_presenter_id+' was not found.');
console.log('This presenter list item node was not found. In most cases this is expected.');
console.log(err.message);
@@ -152,23 +151,28 @@ async function render_event_presenter_records(events) {
remove_presenter_id = false;
console.log('XXXXX ******** STARTING SORT ******** XXXXX');
- var categoryItems = document.getElementById('event_presentation_presenters_'+tbl_presentation_id).childNodes;
- console.log(categoryItems);
-
- var categoryItemsArray = Array.from(categoryItems);
-
- function sorter(a, b) {
- if (a.dataset.family_name < b.dataset.family_name) return -1;
- if (a.dataset.family_name > b.dataset.family_name) return 1;
+ try {
+ var categoryItems = document.getElementById('event_presentation_presenters_'+tbl_presentation_id).childNodes;
+ console.log(categoryItems);
+
+ var categoryItemsArray = Array.from(categoryItems);
+
+ function sorter(a, b) {
+ if (a.dataset.family_name < b.dataset.family_name) return -1;
+ if (a.dataset.family_name > b.dataset.family_name) return 1;
+ }
+
+ let sorted = categoryItemsArray.sort(sorter);
+
+ function update_li_order(item, index) {
+ document.getElementById('event_presentation_presenters_'+tbl_presentation_id).appendChild(item);
+ }
+
+ sorted.forEach(update_li_order);
+ } catch(err) {
+ console.log(err);
}
- let sorted = categoryItemsArray.sort(sorter);
-
- function update_li_order(item, index) {
- document.getElementById('event_presentation_presenters_'+tbl_presentation_id).appendChild(item);
- }
-
- sorted.forEach(update_li_order);
console.log('******** FINISHED SORT ********');
} else {
@@ -185,8 +189,7 @@ async function render_event_presenter_records(events) {
console.log('Trying to remove a presenter LI node...');
try {
document.getElementById('event_presenter_'+tbl_presenter_id).remove();
- }
- catch(err) {
+ } catch(err) {
//console.log('A node with the ID of event_presenter_'+tbl_presenter_id+' was not found.');
console.log('This presenter list item node was not found. In some cases this is expected.');
console.log(err.message);
diff --git a/app/js/app_ui_sessions.js b/app/js/app_ui_sessions.js
index d92e6a4..b2b2f16 100644
--- a/app/js/app_ui_sessions.js
+++ b/app/js/app_ui_sessions.js
@@ -2,6 +2,15 @@
async function render_event_session_records() {
console.log('Rendering event session records...');
+ if (looping_tbl_event_session) {
+ console.log('Already looping through the tbl_event_session table. Not starting until finished.');
+ return false;
+ } else {
+
+ }
+
+ looping_tbl_event_session = true;
+
// First: update or add sessions
tbl_event_session.iterate(function(value, key, iteration) {
if (value.event_id == event_id && value.event_location_id == event_location_id) {
@@ -21,7 +30,7 @@ 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-info d-flex justify-content-between align-items-center btn_view_session';
+ 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);
node.title = 'id='+value.id+' session_id='+value.id;
@@ -128,7 +137,7 @@ async function render_event_session_records() {
}
}).then(function() {
console.log('idb_to_ui: Iterate tbl_event_session complete');
- tbl_event_session_complete = true;
+ //tbl_event_session_complete = true;
}).then(function() {
// Second: remove sessions from the launcher sessions menu and sessions list
// This is basing the removal of sessions only on the menu list of sessions.
@@ -143,6 +152,9 @@ async function render_event_session_records() {
if (session_list_items.length) {
for (let i=0, len=session_list_items.length; i < len; i++) {
console.log('Checking session_id='+session_list_items[i].getAttribute('data-session_id'));
+
+ looping_tbl_event_session = true;
+
let session_id = session_list_items[i].getAttribute('data-session_id');
let session_valid = false;
@@ -164,9 +176,13 @@ async function render_event_session_records() {
document.getElementById('menu_event_session_'+session_id).remove(); // Remove the node from the launcher sessions menu list
document.getElementById('detail_session_'+session_id).remove(); // Remove the node from the launcher sessions list
}
+
+ looping_tbl_event_session = false;
});
}
}
+
+ looping_tbl_event_session = false;
});
// Third: re-index view session buttons
diff --git a/config.json b/config.json
index 0a626c9..5f7d16a 100644
--- a/config.json
+++ b/config.json
@@ -30,7 +30,6 @@
"local_db_username": "username_here",
"local_db_password": "password_here",
"idb_name": "osit",
- "idb_check_period": 30000,
"idb_event_check_period": 120000,
"idb_event_location_check_period": 90000,
"idb_event_session_check_period": 90000,