add saving file with ctrl-s

This commit is contained in:
joshuaboud 2021-06-02 11:29:01 -03:00
parent dc2ecb03b1
commit 340e4b412d
No known key found for this signature in database
GPG Key ID: 17EFB59E2A8BF50E
1 changed files with 16 additions and 4 deletions

View File

@ -360,9 +360,9 @@ class NavFile extends NavEntry {
handleEvent(e) { handleEvent(e) {
switch(e.type){ switch(e.type){
case "click": case "click":
if(this.double_click) if (this.double_click)
this.show_edit_file_contents(); this.show_edit_file_contents();
else{ // single click else { // single click
this.double_click = true; this.double_click = true;
if(this.timeout) if(this.timeout)
clearTimeout(this.timeout) clearTimeout(this.timeout)
@ -371,6 +371,13 @@ class NavFile extends NavEntry {
}, 500); }, 500);
} }
break; break;
case "keydown":
if (e.keyCode === 83 && e.ctrlKey === true) {
e.preventDefault();
e.stopPropagation();
this.write_to_file();
}
break;
} }
super.handleEvent(e); super.handleEvent(e);
} }
@ -405,7 +412,9 @@ class NavFile extends NavEntry {
window.alert(e.message); window.alert(e.message);
return; return;
} }
document.getElementById("nav-edit-contents-textarea").value = contents; var text_area = document.getElementById("nav-edit-contents-textarea");
text_area.value = contents;
text_area.addEventListener("keydown", this);
document.getElementById("nav-cancel-edit-contents-btn").onclick = this.hide_edit_file_contents.bind(this); document.getElementById("nav-cancel-edit-contents-btn").onclick = this.hide_edit_file_contents.bind(this);
document.getElementById("nav-continue-edit-contents-btn").onclick = this.write_to_file.bind(this); document.getElementById("nav-continue-edit-contents-btn").onclick = this.write_to_file.bind(this);
document.getElementById("nav-edit-contents-header").innerText = "Editing " + this.path_str(); document.getElementById("nav-edit-contents-header").innerText = "Editing " + this.path_str();
@ -425,6 +434,7 @@ class NavFile extends NavEntry {
} }
hide_edit_file_contents() { hide_edit_file_contents() {
document.getElementById("nav-edit-contents-textarea").removeEventListener("keydown", this);
document.getElementById("nav-edit-contents-view").style.display = "none"; document.getElementById("nav-edit-contents-view").style.display = "none";
document.getElementById("nav-contents-view").style.display = "flex"; document.getElementById("nav-contents-view").style.display = "flex";
this.nav_window_ref.enable_buttons(); this.nav_window_ref.enable_buttons();
@ -490,7 +500,9 @@ class NavFileLink extends NavFile{
window.alert(e.message); window.alert(e.message);
return; return;
} }
document.getElementById("nav-edit-contents-textarea").value = contents; var text_area = document.getElementById("nav-edit-contents-textarea");
text_area.value = contents;
text_area.addEventListener("keydown", this);
document.getElementById("nav-cancel-edit-contents-btn").onclick = this.hide_edit_file_contents.bind(this); document.getElementById("nav-cancel-edit-contents-btn").onclick = this.hide_edit_file_contents.bind(this);
document.getElementById("nav-continue-edit-contents-btn").onclick = this.write_to_file.bind(this); document.getElementById("nav-continue-edit-contents-btn").onclick = this.write_to_file.bind(this);
document.getElementById("nav-edit-contents-header").innerHTML = "Editing " + this.path_str() + ' <i class="fas fa-long-arrow-alt-right"></i> ' + this.get_link_target_path(); document.getElementById("nav-edit-contents-header").innerHTML = "Editing " + this.path_str() + ' <i class="fas fa-long-arrow-alt-right"></i> ' + this.get_link_target_path();