From 02eacca6f5663b5ab2200afd9b6601a6dd4cb3fe Mon Sep 17 00:00:00 2001 From: Bar Hatsor <34835685+barhatsor@users.noreply.github.com> Date: Sun, 23 Oct 2022 13:07:06 +0300 Subject: [PATCH 1/9] Update live-view.js --- live-view/live-view.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/live-view/live-view.js b/live-view/live-view.js index 87c13506ad..4de67a6f3b 100644 --- a/live-view/live-view.js +++ b/live-view/live-view.js @@ -699,17 +699,22 @@ if (isMobile) { }); - document.addEventListener('keydown', handleMetaP); + document.addEventListener('keydown', handleMetaR); - function handleMetaP(e) { + function handleMetaR(e) { // detect ctrl/cmd+R if ((e.key === 'r' || e.keyCode === 82) && isKeyEventMeta(e)) { e.preventDefault(); - - liveView.classList.toggle('visible'); - toggleLiveView(selectedFile); + + if (file.lang == 'html' || file.lang == 'markup' || + file.lang === 'markdown') { + + liveView.classList.toggle('visible'); + toggleLiveView(selectedFile); + + } } From d3c21b713b1c4c2bebf8dffdf65a1bbbb8a414cd Mon Sep 17 00:00:00 2001 From: Bar Hatsor <34835685+barhatsor@users.noreply.github.com> Date: Sun, 23 Oct 2022 13:26:17 +0300 Subject: [PATCH 2/9] Update codeit-autolinker.js --- lib/plugins/codeit-autolinker.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/plugins/codeit-autolinker.js b/lib/plugins/codeit-autolinker.js index 86a48c197f..a24821d5c1 100644 --- a/lib/plugins/codeit-autolinker.js +++ b/lib/plugins/codeit-autolinker.js @@ -71,7 +71,7 @@ env.attributes.href = href.replaceAll('\'','').replaceAll('"','').replaceAll('`',''); env.attributes.onclick = 'if ((event.ctrlKey || event.metaKey) && event.shiftKey) { event.preventDefault(); window.open(this.href, "_blank") }'; - env.attributes.title = isMac ? '⌘ + shift + click to open link' : 'Ctrl + shift + click to open link'; + env.attributes.title = isMac ? '⌘ + Shift + click to open link' : 'Ctrl + Shift + click to open link'; // Silently catch any error thrown by decodeURIComponent (#1186) try { From a9bbe0b3a8ae70b28963d96822b22fe85d369a44 Mon Sep 17 00:00:00 2001 From: Bar Hatsor <34835685+barhatsor@users.noreply.github.com> Date: Sun, 23 Oct 2022 14:05:32 +0300 Subject: [PATCH 3/9] Update filebrowser.js --- filebrowser.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/filebrowser.js b/filebrowser.js index 6bb675130e..4dd5e09d43 100644 --- a/filebrowser.js +++ b/filebrowser.js @@ -1317,6 +1317,10 @@ async function loadFileInHTML(fileEl, fileSha) { } + // get all modfiedfiles in directory + eclipsedFiles = Object.values(modifiedFiles).filter(modFile => modFile.dir == treeLoc.join()); + + // if file is not modified; fetch from Git if (!modifiedFiles[fileSha]) { From f08377a5432d74e2e5684abf31439b3499f34bd8 Mon Sep 17 00:00:00 2001 From: Bar Hatsor <34835685+barhatsor@users.noreply.github.com> Date: Sun, 23 Oct 2022 14:06:38 +0300 Subject: [PATCH 4/9] Update live-view.js --- live-view/live-view.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/live-view/live-view.js b/live-view/live-view.js index 4de67a6f3b..90593fbfa3 100644 --- a/live-view/live-view.js +++ b/live-view/live-view.js @@ -708,8 +708,8 @@ if (isMobile) { e.preventDefault(); - if (file.lang == 'html' || file.lang == 'markup' || - file.lang === 'markdown') { + if (selectedFile.lang == 'html' || selectedFile.lang == 'markup' || + selectedFile.lang === 'markdown') { liveView.classList.toggle('visible'); toggleLiveView(selectedFile); From 2add795685145312315b3f89b7e4e61e32231b1b Mon Sep 17 00:00:00 2001 From: Bar Hatsor <34835685+barhatsor@users.noreply.github.com> Date: Sun, 23 Oct 2022 14:26:33 +0300 Subject: [PATCH 5/9] Update filebrowser.js --- filebrowser.js | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/filebrowser.js b/filebrowser.js index 4dd5e09d43..935093e4c8 100644 --- a/filebrowser.js +++ b/filebrowser.js @@ -1316,11 +1316,36 @@ async function loadFileInHTML(fileEl, fileSha) { } - - // get all modfiedfiles in directory - eclipsedFiles = Object.values(modifiedFiles).filter(modFile => modFile.dir == treeLoc.join()); + // if file is not modified + if (!modifiedFiles[fileSha]) { + const fileName = fileEl.querySelector('.name').textContent.replaceAll('\n',''); + + // check if old modified file + // with same name and directory exists + const oldModFile = Object.values(modifiedFiles).filter(modFile => (modFile.dir === treeLoc.join() && modFile.name === fileName))[0]; + + if (oldModFile) { + + const oldFileSha = oldModFile.sha; + + // update old modified file with new sha + oldModFile.sha = fileSha; + + // save new modified file in local storage + modifiedFiles[fileSha] = oldModFile; + + // delete old modified file + delete modifiedFiles[oldFileSha]; + + updateModFilesLS(); + + } + + } + + // if file is not modified; fetch from Git if (!modifiedFiles[fileSha]) { From 1acf93b0fac0c897ca842260929fd9cf23c8011b Mon Sep 17 00:00:00 2001 From: Bar Hatsor <34835685+barhatsor@users.noreply.github.com> Date: Sun, 23 Oct 2022 14:28:44 +0300 Subject: [PATCH 6/9] Update client-channel.js --- worker/client-channel.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worker/client-channel.js b/worker/client-channel.js index 432b2f55ab..c400d6af7c 100644 --- a/worker/client-channel.js +++ b/worker/client-channel.js @@ -4,7 +4,7 @@ // update worker name when updating worker -const WORKER_NAME = 'codeit-worker-v583'; +const WORKER_NAME = 'codeit-worker-v584'; // internal paths From de7f662c5d612375f34cdb61670e72ddca3e9213 Mon Sep 17 00:00:00 2001 From: Bar Hatsor <34835685+barhatsor@users.noreply.github.com> Date: Sun, 23 Oct 2022 14:34:08 +0300 Subject: [PATCH 7/9] Update filebrowser.js --- filebrowser.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/filebrowser.js b/filebrowser.js index 935093e4c8..fb96d205b0 100644 --- a/filebrowser.js +++ b/filebrowser.js @@ -1324,7 +1324,7 @@ async function loadFileInHTML(fileEl, fileSha) { // check if old modified file // with same name and directory exists - const oldModFile = Object.values(modifiedFiles).filter(modFile => (modFile.dir === treeLoc.join() && modFile.name === fileName))[0]; + const oldModFile = Object.values(modifiedFiles).filter(modFile => (modFile.dir === treeLoc.join() && modFile.name === fileName && !modFile.eclipsed))[0]; if (oldModFile) { From c9154eaf0a9fdd879ce6ceadb28ccf72329bbdc2 Mon Sep 17 00:00:00 2001 From: Bar Hatsor <34835685+barhatsor@users.noreply.github.com> Date: Sun, 23 Oct 2022 14:49:13 +0300 Subject: [PATCH 8/9] Update filebrowser.js --- filebrowser.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/filebrowser.js b/filebrowser.js index fb96d205b0..c013caf096 100644 --- a/filebrowser.js +++ b/filebrowser.js @@ -1341,6 +1341,9 @@ async function loadFileInHTML(fileEl, fileSha) { updateModFilesLS(); + // show modified file in HTML + fileEl.classList.add('modified'); + } } From 545d6a9eb9a57c61b6b7a21614d9614753b0d58f Mon Sep 17 00:00:00 2001 From: Bar Hatsor <34835685+barhatsor@users.noreply.github.com> Date: Sun, 23 Oct 2022 15:06:29 +0300 Subject: [PATCH 9/9] Update filebrowser.js --- filebrowser.js | 68 +++++++++++++++++++++++++++++--------------------- 1 file changed, 40 insertions(+), 28 deletions(-) diff --git a/filebrowser.js b/filebrowser.js index c013caf096..e9c53d3cfb 100644 --- a/filebrowser.js +++ b/filebrowser.js @@ -560,6 +560,8 @@ async function renderSidebarHTML() { } + protectModFileInSidebar(file.sha, file.name); + // add modified flag to file let modified = ''; if (modifiedFiles[file.sha] && @@ -1316,35 +1318,17 @@ async function loadFileInHTML(fileEl, fileSha) { } - - // if file is not modified - if (!modifiedFiles[fileSha]) { - const fileName = fileEl.querySelector('.name').textContent.replaceAll('\n',''); + const fileName = fileEl.querySelector('.name').textContent.replaceAll('\n',''); - // check if old modified file - // with same name and directory exists - const oldModFile = Object.values(modifiedFiles).filter(modFile => (modFile.dir === treeLoc.join() && modFile.name === fileName && !modFile.eclipsed))[0]; + protectModFileInSidebar(fileSha, fileName); + + // if file is modified + if (modifiedFiles[fileSha] && !modifiedFiles[fileSha].eclipsed && + !fileEl.classList.contains('modified')) { - if (oldModFile) { - - const oldFileSha = oldModFile.sha; - - // update old modified file with new sha - oldModFile.sha = fileSha; - - // save new modified file in local storage - modifiedFiles[fileSha] = oldModFile; - - // delete old modified file - delete modifiedFiles[oldFileSha]; - - updateModFilesLS(); - - // show modified file in HTML - fileEl.classList.add('modified'); - - } + // update file in HTML + fileEl.classList.add('modified'); } @@ -1357,8 +1341,6 @@ async function loadFileInHTML(fileEl, fileSha) { startLoading(); } - const fileName = fileEl.querySelector('.name').textContent.replaceAll('\n',''); - // get file from git let resp = await git.getFile(treeLoc, fileName); @@ -2965,6 +2947,36 @@ function protectUnsavedCode() { } +function protectModFileInSidebar(fileSha, fileName) { + + // if file is not modified + if (!modifiedFiles[fileSha]) { + + // check if old modified file + // with same name and directory exists + const oldModFile = Object.values(modifiedFiles).filter(modFile => (modFile.dir === treeLoc.join() && modFile.name === fileName && !modFile.eclipsed))[0]; + + if (oldModFile) { + + const oldFileSha = oldModFile.sha; + + // update old modified file with new sha + oldModFile.sha = fileSha; + + // save new modified file in local storage + modifiedFiles[fileSha] = oldModFile; + + // delete old modified file + delete modifiedFiles[oldFileSha]; + + updateModFilesLS(); + + } + + } + +} + function setupEditor() { // if code in storage