From 41afab59dd3d9b9024f68ea3232ebedce7a0bb87 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Wed, 19 Feb 2020 16:35:21 -0500 Subject: [PATCH] More clean up of the JS code. --- app/.index.html.kate-swp | Bin 0 -> 377 bytes app/index.html | 62 +++++++++++++++------------ app/js/{module_api.js => app_api.js} | 46 ++++++++------------ app/js/app_ui_files.js | 52 +++++++++++----------- app/js/app_ui_misc.js | 43 ++++++++++++++++--- app/js/app_ui_presentations.js | 11 ++++- app/js/app_ui_presenters.js | 41 ++++++++++-------- app/js/app_ui_sessions.js | 20 ++++++++- config.json | 1 - 9 files changed, 167 insertions(+), 109 deletions(-) create mode 100644 app/.index.html.kate-swp rename app/js/{module_api.js => app_api.js} (86%) diff --git a/app/.index.html.kate-swp b/app/.index.html.kate-swp new file mode 100644 index 0000000000000000000000000000000000000000..c60406418dc55c18affba4235cb7fd66bec8583e GIT binary patch literal 377 zcmZQzU=Z?7EJ;-eE>A2_aLdd|RWQ;sU|?VnDL4EaaNwQU@lS?boVLOmmkMXyx)U74 zz`&>nlm!845JwlnW>5lgbf6qn5Jwxzkq2?KkU5%Aju=Qr1Im#Aanzw4u+eHz4pS&l zMh`^jf(RWDp$#ImK!hfU&;SwYuE8Km%@yoQRiJJV268=tqA)I_HAEV2IEp3}n3WJw xRft+CpeP# -
+
+ +
+
+ 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,