Still working on network online offline detection.

This commit is contained in:
Scott Idem
2020-03-05 15:04:40 -05:00
parent e3c297fb98
commit ca564689ba
3 changed files with 92 additions and 76 deletions

BIN
app/.index.html.kate-swp Normal file

Binary file not shown.

View File

@@ -149,34 +149,24 @@
// Axios needs to authenticate first // Axios needs to authenticate first
let axios_headers_set = false; let axios_headers_set = false;
/*if (app_online) {
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;
return result;
});
} else {
console.log('Currently offline. Can not request temporary API token.');
}*/
let app_online = false; let app_online = false;
let app_use_cached_data = true;
window.addEventListener('online', app.currently_online); window.addEventListener('online', app.currently_online);
window.addEventListener('offline', app.currently_offline); window.addEventListener('offline', app.currently_offline);
let update_event_ui = true; let update_event_ui = false;
let update_event_location_ui = true; let update_event_location_ui = false;
let update_event_session_ui = true; let update_event_session_ui = false;
let update_event_presentation_ui = true; let update_event_presentation_ui = false;
let update_event_presenter_ui = true; let update_event_presenter_ui = false;
let update_event_file_ui = true; let update_event_file_ui = false;
if (window.onLine) { if (navigator.onLine) {
app.currently_online(); app.currently_online();
} else { } else {
app.currently_offline(); app.currently_offline();
console.log('Using cached IDB data.');
update_event_ui = true; update_event_ui = true;
update_event_location_ui = true; update_event_location_ui = true;
update_event_session_ui = true; update_event_session_ui = true;
@@ -200,17 +190,20 @@
axios_headers_set = true; axios_headers_set = true;
api_update_datetime = Date.now() + api_update_period; api_update_datetime = Date.now() + api_update_period;
} else { } else {
console.log('Not online?????????????????????????'); console.log('api_token_loop: Are we actually online? Setting the app to offline.');
console.log(window.onLine); console.log(navigator.onLine);
if (window.onLine) { app.currently_offline();
/*
if (navigator.onLine) {
app.currently_online(); app.currently_online();
} else { } else {
app.currently_offline(); app.currently_offline();
} }
*/
} }
}) })
.catch(function (error) { .catch(function (error) {
console.log('Something went wrong'); console.log('Something went wrong while trying to request a temporary API token.');
console.log(error); console.log(error);
}); });
@@ -397,11 +390,19 @@
if (tbl_event && tbl_event_location && tbl_event_session if (tbl_event && tbl_event_location && tbl_event_session
&& tbl_event_presentation && tbl_event_presenter && tbl_event_presentation && tbl_event_presenter
&& tbl_event_file) { && tbl_event_file) {
console.log('IDB tables have been opened'); console.log('IDB tables have now been opened.');
idb_tables_opened = true;
clearInterval(open_tables_loop); clearInterval(open_tables_loop);
idb_tables_opened = true; 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();
} else { } else {
console.log('IDB tables have not yet been created or opened'); console.log('IDB tables have not yet been created or opened');
@@ -409,6 +410,37 @@
} }
}, open_tables_loop_interval); }, open_tables_loop_interval);
/*
var use_cached_data_render_loop = setInterval(async function() {
console.log('*** Update Render Loop ***');
if (idb_tables_opened) {
if (update_event_ui) {
let render_event_records_result = render_event_records();
update_event_ui = false;
}
if (update_event_location_ui) {
let render_event_location_records_result = render_event_location_records();
update_event_location_ui = false;
}
if (update_event_session_ui) {
let render_event_session_records_result = render_event_session_records();
update_event_session_ui = false;
}
if (update_event_presentation_ui) {
let render_event_presentation_records_result = await render_event_presentation_records();
update_event_presentation_ui = false;
}
if (update_event_presenter_ui) {
let render_event_presenter_records_result = await render_event_presenter_records();
update_event_presenter_ui = false;
}
if (update_event_file_ui) {
let render_event_file_records_result = await render_event_file_records();
update_event_file_ui = false;
}
}
}, use_cached_data_render_loop_interval);
*/
var update_idb_loop = setInterval(async function() { var update_idb_loop = setInterval(async function() {
//console.log('FLAG: axios_headers_set='+axios_headers_set); //console.log('FLAG: axios_headers_set='+axios_headers_set);
@@ -423,8 +455,8 @@
tbl_event.setItem(response[i].id.toString(), response[i]); tbl_event.setItem(response[i].id.toString(), response[i]);
} }
idb_event_check_datetime = Date.now() + idb_event_check_period; idb_event_check_datetime = Date.now() + idb_event_check_period;
//let render_event_records_result = render_event_records(); // NOTE: v2 idb to ui let render_event_records_result = render_event_records(); // NOTE: v2 idb to ui
update_event_ui = true; //update_event_ui = true;
}) })
.catch(function (error) { .catch(function (error) {
console.log('Trying to check events. Something went wrong. Expired token?'); console.log('Trying to check events. Something went wrong. Expired token?');
@@ -440,8 +472,8 @@
tbl_event_location.setItem(v2_event_locations[i].id.toString(), v2_event_locations[i]); tbl_event_location.setItem(v2_event_locations[i].id.toString(), v2_event_locations[i]);
} }
idb_event_location_check_datetime = Date.now() + idb_event_location_check_period; idb_event_location_check_datetime = Date.now() + idb_event_location_check_period;
//let render_event_location_records_result = render_event_location_records(); // NOTE: v2 idb to ui let render_event_location_records_result = render_event_location_records(); // NOTE: v2 idb to ui
update_event_location_ui = true; //update_event_location_ui = true;
} }
if (idb_event_session_check_datetime < Date.now()) { if (idb_event_session_check_datetime < Date.now()) {
@@ -452,8 +484,8 @@
tbl_event_session.setItem(v2_event_sessions[i].id.toString(), v2_event_sessions[i]); tbl_event_session.setItem(v2_event_sessions[i].id.toString(), v2_event_sessions[i]);
} }
idb_event_session_check_datetime = Date.now() + idb_event_session_check_period; idb_event_session_check_datetime = Date.now() + idb_event_session_check_period;
//let render_event_session_records_result = render_event_session_records(); // NOTE: v2 idb to ui let render_event_session_records_result = render_event_session_records(); // NOTE: v2 idb to ui
update_event_session_ui = true; //update_event_session_ui = true;
} }
if (idb_event_presentation_check_datetime < Date.now()) { if (idb_event_presentation_check_datetime < Date.now()) {
@@ -463,8 +495,8 @@
tbl_event_presentation.setItem(v2_event_presentations[i].id.toString(), v2_event_presentations[i]); tbl_event_presentation.setItem(v2_event_presentations[i].id.toString(), v2_event_presentations[i]);
} }
idb_event_presentation_check_datetime = Date.now() + idb_event_presentation_check_period; idb_event_presentation_check_datetime = Date.now() + idb_event_presentation_check_period;
//let render_event_presentation_records_result = await render_event_presentation_records(); // NOTE: v2 idb to ui let render_event_presentation_records_result = await render_event_presentation_records(); // NOTE: v2 idb to ui
update_event_presentation_ui = true; //update_event_presentation_ui = true;
} }
if (idb_event_presenter_check_datetime < Date.now()) { if (idb_event_presenter_check_datetime < Date.now()) {
@@ -475,8 +507,8 @@
} }
idb_event_presenter_check_datetime = Date.now() + idb_event_presenter_check_period; idb_event_presenter_check_datetime = Date.now() + idb_event_presenter_check_period;
//let render_event_presenter_records_result = await render_event_presenter_records(); // NOTE: v2 idb to ui let render_event_presenter_records_result = await render_event_presenter_records(); // NOTE: v2 idb to ui
update_event_presenter_ui = true; //update_event_presenter_ui = true;
} }
if (idb_event_file_check_datetime < Date.now()) { if (idb_event_file_check_datetime < Date.now()) {
@@ -510,26 +542,16 @@
run_check_file_cache = true; // Set to true so that the local file cache will be checked against the updated event files run_check_file_cache = true; // Set to true so that the local file cache will be checked against the updated event files
idb_event_file_check_datetime = Date.now() + idb_event_file_check_period; idb_event_file_check_datetime = Date.now() + idb_event_file_check_period;
//let render_event_file_records_result = await render_event_file_records(); // NOTE: v2 idb to ui let render_event_file_records_result = await render_event_file_records(); // NOTE: v2 idb to ui
update_event_file_ui = true; //update_event_file_ui = true;
} }
} else if (app_online && idb_tables_opened && !axios_headers_set) { } else if (app_online && idb_tables_opened && !axios_headers_set) {
console.log('Online and waiting for the Axios headers to be set.'); console.log('Online and waiting for the Axios headers to be set.');
console.log('Using 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();
*/
} else if (app_online && axios_headers_set && !idb_tables_opened) { } else if (app_online && axios_headers_set && !idb_tables_opened) {
console.log('Online and Axios headers are set. Waiting for the IDB tables to be opened'); console.log('Online and Axios headers are set. Waiting for the IDB tables to be opened');
} else if (!app_online) { } else if (!app_online) {
console.log('Waiting to update IDB once online.'); console.log('Waiting to update IDB once online.');
console.log('Using cached IDB data');
} else { } else {
console.log('This should not happen.'); console.log('This should not happen.');
} }
@@ -537,35 +559,7 @@
var update_render_loop = setInterval(async function() {
console.log('*** Update Render Loop ***');
if (update_event_ui) {
let render_event_records_result = render_event_records();
update_event_ui = false;
}
if (update_event_location_ui) {
let render_event_location_records_result = render_event_location_records();
update_event_location_ui = false;
}
if (update_event_session_ui) {
let render_event_session_records_result = render_event_session_records();
update_event_session_ui = false;
}
if (update_event_presentation_ui) {
let render_event_presentation_records_result = await render_event_presentation_records();
update_event_presentation_ui = false;
}
if (update_event_presenter_ui) {
let render_event_presenter_records_result = await render_event_presenter_records();
update_event_presenter_ui = false;
}
if (update_event_file_ui) {
let render_event_file_records_result = await render_event_file_records();
update_event_file_ui = false;
}
}, update_render_loop_interval);
var check_file_cache_loop = setInterval(async function() { var check_file_cache_loop = setInterval(async function() {
@@ -583,6 +577,28 @@
}, check_file_cache_loop_interval); }, check_file_cache_loop_interval);
var check_initial_online_status = setInterval(async function() {
console.log('check_initial_online_status online check?');
console.log(navigator.onLine);
if (navigator.onLine) {
app.currently_online();
} else {
app.currently_offline();
console.log('Using cached IDB data.');
update_event_ui = true;
update_event_location_ui = true;
update_event_session_ui = true;
update_event_presentation_ui = true;
update_event_presenter_ui = true;
update_event_file_ui = true;
}
clearInterval(check_initial_online_status);
}, 1000);
</script> </script>
<!-- <script src="js/launcher.js"></script>--> <!-- <script src="js/launcher.js"></script>-->

BIN
app/js/.app_api.js.kate-swp Normal file

Binary file not shown.