diff --git a/index.html b/index.html index 4a00e77..e32969f 100644 --- a/index.html +++ b/index.html @@ -69,8 +69,10 @@
X
+ Editted files: +
Test
-
+ diff --git a/js/controller.js b/js/controller.js index 8c60701..eb5618a 100644 --- a/js/controller.js +++ b/js/controller.js @@ -36,7 +36,7 @@ class Controller { } if (localStorage.getItem("pushError") == "true") { - this.view.openPublish(); + this.openPublish(); this.view.errorPublish("Máte nepublikované změny: publikujte je."); } } @@ -107,7 +107,7 @@ class Controller { saveFile() { var textArea = this.view.simplemde; this.model.saveFile(this.openedFile, textArea.value()).then( - function() { + function () { this.openedFileValue = textArea.value(); this.view.closeEditor(); this.saveButton(); @@ -115,7 +115,6 @@ class Controller { this.updateFileStats(); }.bind(this) ); - } /* ================== Controls ================== */ @@ -123,9 +122,11 @@ class Controller { wipeFS() { this.view.closeEditor(); - this.model.wipeFS().then(function () { - this.redrawDirTree(); - }.bind(this)); + this.model.wipeFS().then( + function () { + this.redrawDirTree(); + }.bind(this) + ); } cloneRep() { @@ -174,10 +175,12 @@ class Controller { console.log(error); if (error == "HttpError: HTTP Error: 401 Unauthorized") { this.view.errorPublish("Změny nebyly publikovány: Chyba přihlášení."); + this.openPublish(); } else if (error == "HttpError: HTTP Error: 403 Forbidden") { this.view.errorPublish( "Změny nebyly publikovány: Nemáte práva publikovat do tohoto repozitáře." ); + this.openPublish(); } localStorage.setItem("pushError", "true"); loading.style.removeProperty("display"); @@ -197,7 +200,7 @@ class Controller { let oldRepoURL = localStorage.getItem("repo"); this.model.setRepo(repo.value); this.model.setBaseDir(baseDir.value).then( - function() { + function () { this.redrawDirTree(); }.bind(this) ); @@ -225,14 +228,14 @@ class Controller { let loading = document.getElementsByClassName("publishLoading")[0]; if (localStorage.getItem("pushError") == "true") { - if (gitUser.value == "" || gitPass.gitPass == "") { + if (gitUser.value == "" || gitPass.value == "") { this.view.errorPublish("Vyplňte potřebné údaje."); return; } loading.style.display = "block"; this.gitPush(gitUser.value, gitPass.value); } else { - if (msg.value == "" || gitUser.value == "" || gitPass.gitPass == "") { + if (msg.value == "" || gitUser.value == "" || gitPass.value == "") { this.view.errorPublish("Vyplňte potřebné údaje."); return; } @@ -258,6 +261,12 @@ class Controller { } openPublish() { - this.view.openPublish(); + this.model + .getChangedFiles(this.model.dirTree, this.model.gitDirTreeStat) + .then( + function (v) { + this.view.openPublish(v); + }.bind(this) + ); } } diff --git a/js/model.js b/js/model.js index daa163c..2d23658 100644 --- a/js/model.js +++ b/js/model.js @@ -77,6 +77,27 @@ class Model { return statList; } + async getChangedFiles(dirTree, statTree) { + var changedFiles = []; + + for (let i = 1; i < dirTree.length; i++) { + if (Array.isArray(dirTree[i])) { + var vnorena = await this.getChangedFiles(dirTree[i], statTree[i]); + if (vnorena.length != 0) { + for (let i = 0; i < vnorena.length; i++) { + changedFiles.push(vnorena[i]); + } + } + } else { + if (statTree[i] != "unmodified") { + changedFiles.push(dirTree[0] + dirTree[i]); + } + } + } + + return changedFiles; + } + /* ================== Text Area ================== */ readFile(file) { @@ -158,6 +179,7 @@ class Model { email: localStorage.getItem("email"), }, }); + await this.getGitStatusTree(); } async gitPush(gitUser, gitPass) { diff --git a/js/view.js b/js/view.js index 8dcba88..24213c9 100644 --- a/js/view.js +++ b/js/view.js @@ -147,6 +147,26 @@ class View { var publish = document.getElementsByClassName("commitWrapper")[0]; publish.style.display = "grid"; + let form = document.getElementById("formPublish"); + + if (changedFiles.length == 0 && localStorage.getItem("pushError") != "true") { + this.errorPublish("Žádné soubory nebyly změněny."); + form.style.display = "none"; + } else { + form.style.removeProperty("display"); + + let ul = document.getElementById("edittedFiles"); + for (let i = 0; i < ul.children.length; i++) { + ul.lastChild.remove(); + } + for (let i = 0; i < changedFiles.length; i++) { + let li = document.createElement("li"); + var text = document.createTextNode(changedFiles[i]); + li.appendChild(text); + ul.appendChild(li); + } + } + let gitMsg = document.getElementById("inputCommitMsg"); gitMsg.disabled = localStorage.getItem("pushError") == "true"; }