From 1d8f624adf178f026aa92294eea3a1aec2f829fc Mon Sep 17 00:00:00 2001 From: H4CK3R-01 Date: Mon, 7 Jun 2021 12:10:41 +0200 Subject: [PATCH] Improved error handling --- Frontend/static/js/dropdown.js | 4 +-- Frontend/static/js/generate_directory_tree.js | 4 +-- Frontend/static/js/index.js | 34 ++++++++----------- Frontend/static/js/tools.js | 9 +++++ Frontend/static/js/views.js | 10 +++--- 5 files changed, 32 insertions(+), 29 deletions(-) diff --git a/Frontend/static/js/dropdown.js b/Frontend/static/js/dropdown.js index 6a6fd93..9d30f17 100644 --- a/Frontend/static/js/dropdown.js +++ b/Frontend/static/js/dropdown.js @@ -13,7 +13,7 @@ function download_file(path, mimetype) { element.click(); document.body.removeChild(element); } else { - create_error_view("Error " + response); + try_to_parse_error(response); } }); } @@ -24,7 +24,7 @@ function remove_file(filename) { create_success_view("Successfully deleted."); path_changed(); } else { - create_error_view(response); + try_to_parse_error(response); } }); } \ No newline at end of file diff --git a/Frontend/static/js/generate_directory_tree.js b/Frontend/static/js/generate_directory_tree.js index 1cc9390..02148e2 100644 --- a/Frontend/static/js/generate_directory_tree.js +++ b/Frontend/static/js/generate_directory_tree.js @@ -60,12 +60,10 @@ function create_list_view(dataRoot, elementRoot, url) { elementRoot.appendChild(list); Object.keys(dataRoot).forEach(key => { - // // Create a text node and a list element to put it in const listElement = document.createElement('li'); - listElement.innerHTML = `${dataRoot[key].text}`; + listElement.innerHTML = `${dataRoot[key].text}`; list.appendChild(listElement); - // Continue recursively down now using the current list element create_list_view(dataRoot[key]['children'], listElement, url + '/' + dataRoot[key].text); }); } diff --git a/Frontend/static/js/index.js b/Frontend/static/js/index.js index b60f424..95485f2 100644 --- a/Frontend/static/js/index.js +++ b/Frontend/static/js/index.js @@ -20,6 +20,17 @@ window.addEventListener('popstate', function () { function path_changed() { let curr_dir = get_curr_path(); + + // TODO show opened directory in tree-view + // let tree_elem = document.getElementById(curr_dir.replaceAll('/', '-')); + // console.log(curr_dir.replaceAll('/', '-')) + // if(tree_elem !== undefined && tree_elem !== null) { + // tree_elem.classList.toggle('folder-open'); + // + // if (tree_elem.parentElement.querySelector(".nested") !== null) { + // tree_elem.parentElement.querySelector(".nested").classList.toggle("active"); + // } + // } httpGetAsync(base_url + curr_dir, null, show_files); } @@ -38,12 +49,7 @@ function login() { } else if (code === 401) { create_error_view("Wrong username or password!"); } else { - try { - response = JSON.parse(response); - create_error_view(response['error'] + ` Return to root directory`); - } catch (e) { - create_error_view(`Unrecoverable error! Return to root directory`); - } + try_to_parse_error(response); } }) } @@ -58,12 +64,7 @@ function show_files(response, code) { create_error_view(`Your session is expired. Log in again`); } else { // Error - try { - response = JSON.parse(response); - create_error_view(response['error'] + ` Return to root directory`); - } catch (e) { - create_error_view(`Unrecoverable error! Return to root directory`); - } + try_to_parse_error(response); } } @@ -87,7 +88,7 @@ function save_file(filename, content) { if (code === 200) { create_success_view("Saved file successfully"); } else { - create_error_view(JSON.parse(response)['error']); + try_to_parse_error(response); } }); } @@ -124,12 +125,7 @@ function api_create_folder(name) { if (code === 200) { create_success_view('Created directory successfully'); } else { - try { - response = JSON.parse(response); - create_error_view(response['error']); - } catch (e) { - create_error_view(`Unrecoverable error! Return to root directory`); - } + try_to_parse_error(response); } }); } diff --git a/Frontend/static/js/tools.js b/Frontend/static/js/tools.js index b53c910..83f82d7 100644 --- a/Frontend/static/js/tools.js +++ b/Frontend/static/js/tools.js @@ -59,4 +59,13 @@ function get_random_id() { } return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4(); +} + +function try_to_parse_error(message) { + try { + message = JSON.parse(message); + create_error_view(message['error'] + ` Return to root directory`); + } catch (e) { + create_error_view(`Unrecoverable error! Return to root directory`); + } } \ No newline at end of file diff --git a/Frontend/static/js/views.js b/Frontend/static/js/views.js index 98d39e0..64efe20 100644 --- a/Frontend/static/js/views.js +++ b/Frontend/static/js/views.js @@ -58,7 +58,7 @@ function create_logout_view() { document.getElementById('context_menu').parentElement.remove(); create_login_view(); } else { - create_error_view(response['error'] + ` Return to root directory`); + try_to_parse_error(response); } }); } @@ -184,7 +184,7 @@ function show_file_view(data, type) { if (code === 200) { change_modal_content(``); } else { - create_error_view(response['error'] + ` Return to root directory`); + try_to_parse_error(response); } }); break; @@ -194,7 +194,7 @@ function show_file_view(data, type) { if (code === 200) { change_modal_content(`Image`); } else { - create_error_view(response['error'] + ` Return to root directory`); + try_to_parse_error(response); } }); break; @@ -204,7 +204,7 @@ function show_file_view(data, type) { if (code === 200) { change_modal_content(`
`); } else { - create_error_view(response['error'] + ` Return to root directory`); + try_to_parse_error(response); } }); break; @@ -214,7 +214,7 @@ function show_file_view(data, type) { if (code === 200) { change_modal_content(``); } else { - create_error_view(response['error'] + ` Return to root directory`); + try_to_parse_error(response); } }); break;