diff --git a/app/index.html b/app/index.html index 4142282..f4fbecd 100644 --- a/app/index.html +++ b/app/index.html @@ -236,8 +236,8 @@ const open_tables_loop_interval = 10; // only runs on start up const update_idb_loop_interval = 500; // loop forever; update when check datetime has passed - const idb_to_launcher_loop_interval = 1000; // loop forever; only run when one or more tables are updated - const update_render_loop_interval = 1000; // loop forever; only run when the launcher object is safe + const idb_to_launcher_loop_interval = 5000; // loop forever; only run when one or more tables are updated + 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 // Axios needs to authenticate first @@ -390,7 +390,6 @@ safe_to_render_launcher = false; // Set to false so that the launcher render only starts after the launcher object has updated idb_event_session_check_datetime = Date.now() + idb_event_session_check_period; let render_event_session_records_result = uiv2.render_event_session_records(); // NOTE: v2 idb to ui - //ui.index_launcher_sessions('btn_view_session'); // NOTE: This should probably go in module_app_ui_v2.js } if (idb_event_presentation_check_datetime < Date.now()) { @@ -402,6 +401,7 @@ run_idb_to_launcher = true; // Set to true so that the launcher object is rebuilt safe_to_render_launcher = false; // Set to false so that the launcher render only starts after the launcher object has updated idb_event_presentation_check_datetime = Date.now() + idb_event_presentation_check_period; + let render_event_presentation_records_result = uiv2.render_event_presentation_records(); // NOTE: v2 idb to ui } if (idb_event_presenter_check_datetime < Date.now()) { diff --git a/app/js/.module_app_ui_v2.js.kate-swp b/app/js/.module_app_ui_v2.js.kate-swp deleted file mode 100644 index ac68b65..0000000 Binary files a/app/js/.module_app_ui_v2.js.kate-swp and /dev/null differ diff --git a/app/js/module_app_ui_v2.js b/app/js/module_app_ui_v2.js index 917f46d..c0910c8 100644 --- a/app/js/module_app_ui_v2.js +++ b/app/js/module_app_ui_v2.js @@ -136,6 +136,54 @@ exports.render_event_session_records = function () { div_node.appendChild(h2_node); + // Add placeholder cards for session files and session presentations + // Files + let files_div_node = document.createElement('DIV'); + files_div_node.className = 'card session_files'; + + let files_header_div_node = document.createElement('DIV'); + files_header_div_node.className = 'card-header'; + + let files_header_text_node = document.createTextNode('Sessions Files:'); + files_header_div_node.appendChild(files_header_text_node); + + let files_body_div_node = document.createElement('DIV'); + files_body_div_node.className = 'card-body'; + + let files_body_ul_node = document.createElement('UL'); + files_body_ul_node.className = 'list-group list-group-flush'; + + files_body_div_node.appendChild(files_body_ul_node); + + files_div_node.appendChild(files_header_div_node); + files_div_node.appendChild(files_body_div_node); + + div_node.appendChild(files_div_node); + + // Presentations + let presentations_div_node = document.createElement('DIV'); + presentations_div_node.className = 'card session_presentations'; + + let presentations_header_div_node = document.createElement('DIV'); + presentations_header_div_node.className = 'card-header'; + + let presentations_header_text_node = document.createTextNode('Presentations:'); + presentations_header_div_node.appendChild(presentations_header_text_node); + + let presentations_body_div_node = document.createElement('DIV'); + presentations_body_div_node.className = 'card-body'; + + let presentations_body_ul_node = document.createElement('UL'); + presentations_body_ul_node.className = 'list-group list-group-flush'; + + presentations_body_div_node.appendChild(presentations_body_ul_node); + + presentations_div_node.appendChild(presentations_header_div_node); + presentations_div_node.appendChild(presentations_body_div_node); + + div_node.appendChild(presentations_div_node); + + document.getElementById('launcher_sessions').appendChild(div_node); } @@ -162,7 +210,7 @@ exports.render_event_session_records = function () { let session_valid = false; tbl_event_session.iterate(function(value, key, iteration) { - console.log(value.event_id+' ?= '+event_id+' : '+value.event_location_id+' ?= '+event_location_id+' : '+value.id+' ?= '+session_id); + //console.log(value.event_id+' ?= '+event_id+' : '+value.event_location_id+' ?= '+event_location_id+' : '+value.id+' ?= '+session_id); if (value.event_id == event_id && value.event_location_id == event_location_id && value.id == session_id) { // The session is still part of the event and the location session_valid = true; @@ -176,7 +224,6 @@ exports.render_event_session_records = function () { console.log('Keep session id '+session_id); } else { console.log('Remove session id '+session_id); - //session_list_items[i].remove(); 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 } @@ -199,7 +246,103 @@ exports.render_event_session_file_records = function (events) { exports.render_event_presentation_records = function (events) { + console.log('********** ********* ****** ** * ** ****** ********* *********'); console.log('Rendering event presentation records...'); + + let launcher_sessions = document.getElementById('launcher_sessions').childNodes; //_list_items + console.log(launcher_sessions); + + for (var i in launcher_sessions) { + console.log(launcher_sessions[i].getAttribute('data-session_id')); + let session_id = launcher_sessions[i].getAttribute('data-session_id'); + + console.log(launcher_sessions[i].getElementsByClassName('session_presentations')[0].getElementsByTagName('ul').childElementCount); + let new_i = i; + if (launcher_sessions[new_i].getElementsByClassName('session_presentations')[0].getElementsByTagName('ul').childElementCount) { + console.log('Presentations listed under this session'); + console.log(launcher_sessions[i].getElementsByClassName('session_presentations')[0].getElementsByTagName('ul')); + } else { + console.log('No presentations listed under this session. Time to iterate through presentations table.'); + + console.log(new_i); + + + tbl_event_presentation.iterate(function(value, key, iteration) { + console.log('here 1??? '+new_i); + if (value.event_session_id == session_id) { + console.log('*** Presentation id ('+value.id+') is part of this session.'); + + // Add the new session to the launcher sessions list + let presentation_li_node = document.createElement('LI'); + presentation_li_node.id = 'event_presentation_'+value.id; + presentation_li_node.className = 'list-group-item'; + presentation_li_node.setAttribute('data-presentation_id', value.id); + + let presentation_li_heading_div_node = document.createElement('DIV'); + presentation_li_heading_div_node.className = 'list-group-item-heading d-flex justify-content-between align-items-center'; + + let presentation_name_strong_node = document.createElement('STRONG'); + + let presentation_name_text_node= document.createTextNode(value.name); + 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'; + + let presentation_startdatetime = new Date(value.start_datetime); + let presentation_heading_span_text_node = document.createTextNode(dateFns.format(presentation_startdatetime, 'h:mm A')); + presentation_heading_span_node.appendChild(presentation_heading_span_text_node); + + presentation_li_heading_div_node.appendChild(presentation_name_strong_node); + presentation_li_heading_div_node.appendChild(presentation_heading_span_node); + + presentation_li_node.appendChild(presentation_li_heading_div_node); + + console.log('************ ISSUE ************'); + console.log('here 2??? '+new_i); + console.log(launcher_sessions[new_i].getElementsByClassName('session_presentations')); + launcher_sessions[new_i].getElementsByClassName('session_presentations')[0].getElementsByTagName('ul')[0].appendChild(presentation_li_node); + } else { + console.log('*** Presentation id ('+value.id+') is NOT part of this session.'); + } + }).then(function() { + console.log('idb_to_ui: Iterate tbl_event_presentation looking for presentations to update or add is complete') + /* + if (session_valid) { + console.log('Keep session id '+session_id); + } else { + console.log('Remove session id '+session_id); + 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 + } + */ + }); + + + /* +
+
Presentations:
+
+ +
+
+ */ + + + } + + } + + //.getElementsByTagName('ul')[0].childNodes; + + /* + + Loop through session divs + Look for presentations to update in each session. Update + Look for presentations to add in each session. Append presentations into the div + Look for presentations to remove from each session. Remove + + */ }