Improved error handling
This commit is contained in:
parent
51d51c3a32
commit
1d8f624adf
@ -13,7 +13,7 @@ function download_file(path, mimetype) {
|
|||||||
element.click();
|
element.click();
|
||||||
document.body.removeChild(element);
|
document.body.removeChild(element);
|
||||||
} else {
|
} else {
|
||||||
create_error_view("Error " + response);
|
try_to_parse_error(response);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -24,7 +24,7 @@ function remove_file(filename) {
|
|||||||
create_success_view("Successfully deleted.");
|
create_success_view("Successfully deleted.");
|
||||||
path_changed();
|
path_changed();
|
||||||
} else {
|
} else {
|
||||||
create_error_view(response);
|
try_to_parse_error(response);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
@ -60,12 +60,10 @@ function create_list_view(dataRoot, elementRoot, url) {
|
|||||||
elementRoot.appendChild(list);
|
elementRoot.appendChild(list);
|
||||||
|
|
||||||
Object.keys(dataRoot).forEach(key => {
|
Object.keys(dataRoot).forEach(key => {
|
||||||
// // Create a text node and a list element to put it in
|
|
||||||
const listElement = document.createElement('li');
|
const listElement = document.createElement('li');
|
||||||
listElement.innerHTML = `<span class="folder" onclick="tree_onclick('${url}/${dataRoot[key].text}');">${dataRoot[key].text}</span>`;
|
listElement.innerHTML = `<span class="folder" id='${(url + '/' + dataRoot[key].text).replaceAll('/', '-')}' onclick="tree_onclick('${url}/${dataRoot[key].text}');">${dataRoot[key].text}</span>`;
|
||||||
list.appendChild(listElement);
|
list.appendChild(listElement);
|
||||||
|
|
||||||
// Continue recursively down now using the current list element
|
|
||||||
create_list_view(dataRoot[key]['children'], listElement, url + '/' + dataRoot[key].text);
|
create_list_view(dataRoot[key]['children'], listElement, url + '/' + dataRoot[key].text);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,17 @@ window.addEventListener('popstate', function () {
|
|||||||
|
|
||||||
function path_changed() {
|
function path_changed() {
|
||||||
let curr_dir = get_curr_path();
|
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);
|
httpGetAsync(base_url + curr_dir, null, show_files);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -38,12 +49,7 @@ function login() {
|
|||||||
} else if (code === 401) {
|
} else if (code === 401) {
|
||||||
create_error_view("Wrong username or password!");
|
create_error_view("Wrong username or password!");
|
||||||
} else {
|
} else {
|
||||||
try {
|
try_to_parse_error(response);
|
||||||
response = JSON.parse(response);
|
|
||||||
create_error_view(response['error'] + ` <span onclick="this.parentElement.children[1].click(); window.history.pushState('index', 'Filemanager', 'index.html?path='); path_changed();">Return to root directory</span>`);
|
|
||||||
} catch (e) {
|
|
||||||
create_error_view(`Unrecoverable error! <span onclick="this.parentElement.children[1].click(); window.history.pushState('index', 'Filemanager', 'index.html?path='); path_changed();">Return to root directory</span>`);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -58,12 +64,7 @@ function show_files(response, code) {
|
|||||||
create_error_view(`Your session is expired. <span onclick="this.parentElement.children[1].click(); create_login_view();">Log in again</span>`);
|
create_error_view(`Your session is expired. <span onclick="this.parentElement.children[1].click(); create_login_view();">Log in again</span>`);
|
||||||
} else {
|
} else {
|
||||||
// Error
|
// Error
|
||||||
try {
|
try_to_parse_error(response);
|
||||||
response = JSON.parse(response);
|
|
||||||
create_error_view(response['error'] + ` <span onclick="this.parentElement.children[1].click(); window.history.pushState('index', 'Filemanager', 'index.html?path='); path_changed();">Return to root directory</span>`);
|
|
||||||
} catch (e) {
|
|
||||||
create_error_view(`Unrecoverable error! <span onclick="this.parentElement.children[1].click(); window.history.pushState('index', 'Filemanager', 'index.html?path='); path_changed();">Return to root directory</span>`);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -87,7 +88,7 @@ function save_file(filename, content) {
|
|||||||
if (code === 200) {
|
if (code === 200) {
|
||||||
create_success_view("Saved file successfully");
|
create_success_view("Saved file successfully");
|
||||||
} else {
|
} 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) {
|
if (code === 200) {
|
||||||
create_success_view('Created directory successfully');
|
create_success_view('Created directory successfully');
|
||||||
} else {
|
} else {
|
||||||
try {
|
try_to_parse_error(response);
|
||||||
response = JSON.parse(response);
|
|
||||||
create_error_view(response['error']);
|
|
||||||
} catch (e) {
|
|
||||||
create_error_view(`Unrecoverable error! <span onclick="this.parentElement.children[1].click(); window.history.pushState('index', 'Filemanager', 'index.html?path='); path_changed();">Return to root directory</span>`);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -60,3 +60,12 @@ function get_random_id() {
|
|||||||
|
|
||||||
return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();
|
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'] + ` <span onclick="this.parentElement.children[1].click(); window.history.pushState('index', 'Filemanager', 'index.html?path='); path_changed();">Return to root directory</span>`);
|
||||||
|
} catch (e) {
|
||||||
|
create_error_view(`Unrecoverable error! <span onclick="this.parentElement.children[1].click(); window.history.pushState('index', 'Filemanager', 'index.html?path='); path_changed();">Return to root directory</span>`);
|
||||||
|
}
|
||||||
|
}
|
@ -58,7 +58,7 @@ function create_logout_view() {
|
|||||||
document.getElementById('context_menu').parentElement.remove();
|
document.getElementById('context_menu').parentElement.remove();
|
||||||
create_login_view();
|
create_login_view();
|
||||||
} else {
|
} else {
|
||||||
create_error_view(response['error'] + ` <span onclick="this.parentElement.children[1].click(); window.history.pushState('index', 'Filemanager', 'index.html?path='); path_changed();">Return to root directory</span>`);
|
try_to_parse_error(response);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -184,7 +184,7 @@ function show_file_view(data, type) {
|
|||||||
if (code === 200) {
|
if (code === 200) {
|
||||||
change_modal_content(`<audio controls><source src="data:audio;base64, ${response}">Your browser does not support the audio element.</audio>`);
|
change_modal_content(`<audio controls><source src="data:audio;base64, ${response}">Your browser does not support the audio element.</audio>`);
|
||||||
} else {
|
} else {
|
||||||
create_error_view(response['error'] + ` <span onclick="this.parentElement.children[1].click(); window.history.pushState('index', 'Filemanager', 'index.html?path='); path_changed();">Return to root directory</span>`);
|
try_to_parse_error(response);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
@ -194,7 +194,7 @@ function show_file_view(data, type) {
|
|||||||
if (code === 200) {
|
if (code === 200) {
|
||||||
change_modal_content(`<img style="width: 100%" src="data:image/png;base64, ${response}" alt="Image">`);
|
change_modal_content(`<img style="width: 100%" src="data:image/png;base64, ${response}" alt="Image">`);
|
||||||
} else {
|
} else {
|
||||||
create_error_view(response['error'] + ` <span onclick="this.parentElement.children[1].click(); window.history.pushState('index', 'Filemanager', 'index.html?path='); path_changed();">Return to root directory</span>`);
|
try_to_parse_error(response);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
@ -204,7 +204,7 @@ function show_file_view(data, type) {
|
|||||||
if (code === 200) {
|
if (code === 200) {
|
||||||
change_modal_content(`<div style="width: 100%; height: 100%"><textarea id="textarea" style="width: calc(100% - 8px); height: 90%">${response}</textarea><button onclick="save_file(document.getElementById('modal_title').children[0].innerHTML, document.getElementById('textarea').value.trim())" type="button" value="Save">Save</button><button onclick="remove_modal();" type="button" value="Discard">Discard</button></div>`);
|
change_modal_content(`<div style="width: 100%; height: 100%"><textarea id="textarea" style="width: calc(100% - 8px); height: 90%">${response}</textarea><button onclick="save_file(document.getElementById('modal_title').children[0].innerHTML, document.getElementById('textarea').value.trim())" type="button" value="Save">Save</button><button onclick="remove_modal();" type="button" value="Discard">Discard</button></div>`);
|
||||||
} else {
|
} else {
|
||||||
create_error_view(response['error'] + ` <span onclick="this.parentElement.children[1].click(); window.history.pushState('index', 'Filemanager', 'index.html?path='); path_changed();">Return to root directory</span>`);
|
try_to_parse_error(response);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
@ -214,7 +214,7 @@ function show_file_view(data, type) {
|
|||||||
if (code === 200) {
|
if (code === 200) {
|
||||||
change_modal_content(`<video controls style="width: 100%;"><source src="data:video;base64, ${response}">Your browser does not support the audio element.</video>`);
|
change_modal_content(`<video controls style="width: 100%;"><source src="data:video;base64, ${response}">Your browser does not support the audio element.</video>`);
|
||||||
} else {
|
} else {
|
||||||
create_error_view(response['error'] + ` <span onclick="this.parentElement.children[1].click(); window.history.pushState('index', 'Filemanager', 'index.html?path='); path_changed();">Return to root directory</span>`);
|
try_to_parse_error(response);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user