diff --git a/index.html b/index.html
index e767475..4a00e77 100644
--- a/index.html
+++ b/index.html
@@ -62,7 +62,7 @@
-
+
@@ -78,7 +78,7 @@
-
+
diff --git a/js/controller.js b/js/controller.js
index 6d99c65..11d0d1a 100644
--- a/js/controller.js
+++ b/js/controller.js
@@ -38,7 +38,7 @@ class Controller {
);
}
- if (localStorage.getItem("pushError")) {
+ if (localStorage.getItem("pushError") != "false") {
this.view.openPublish();
this.view.errorPublish("Máte nepublikované změny: publikujte je.");
}
@@ -73,12 +73,65 @@ class Controller {
commitSubmit.addEventListener("click", this.publish.bind(this));
}
+ /* ================== Dir Tree ================== */
+
+ redrawDirTree(view) {
+ this.model.getDirTree().then(
+ function (value) {
+ view.removeDirTree();
+ view.drawDirTree(value, undefined, this);
+ view.dirTreeToggler();
+ this.updateFileStats();
+ }.bind(this),
+ function (error) {
+ console.log(error);
+ }
+ );
+ }
+
+ updateFileStats() {
+ this.model.getGitStatusTree().then(
+ function (value) {
+ this.view.statDirTree(value, undefined);
+ }.bind(this),
+ function (error) {
+ console.log(error);
+ }
+ );
+ }
+
+ /* ================== Text Area ================== */
+
saveButton() {
var textArea = this.view.simplemde;
this.view.showSaveButton(textArea.value() == this.openedFileValue);
}
+ loadFile(file) {
+ this.openedFile = file;
+ this.model.readFile(file).then(
+ function (value) {
+ this.openedFileValue = value;
+ this.view.openFile(value);
+ }.bind(this),
+ function (error) {
+ console.log(error);
+ }
+ );
+ }
+
+ saveFile() {
+ var textArea = this.view.simplemde;
+ this.model.saveFile(this.openedFile, textArea.value());
+ this.openedFileValue = textArea.value();
+ this.saveButton();
+
+ this.updateFileStats();
+ }
+
+ /* ================== Controls ================== */
+
wipeFS() {
this.model.wipeFS();
//window.location.reload();
@@ -115,30 +168,8 @@ class Controller {
);
}
- redrawDirTree(view) {
- this.model.getDirTree().then(
- function (value) {
- view.removeDirTree();
- view.drawDirTree(value, undefined, this);
- view.dirTreeToggler();
- this.updateFileStats();
- }.bind(this),
- function (error) {
- console.log(error);
- }
- );
- }
-
- updateFileStats() {
- this.model.getGitStatusTree().then(
- function (value) {
- this.view.statDirTree(value, undefined);
- }.bind(this),
- function (error) {
- console.log(error);
- }
- );
- }
+ /* ================== Windows ================== */
+ /* ------------------ Settings ------------------ */
saveSettings() {
let repo = document.getElementById("inputRepository");
@@ -166,18 +197,7 @@ class Controller {
this.view.closeDialog();
}
- loadFile(file) {
- this.openedFile = file;
- this.model.readFile(file).then(
- function (value) {
- this.openedFileValue = value;
- this.view.openFile(value);
- }.bind(this),
- function (error) {
- console.log(error);
- }
- );
- }
+ /* ------------------ Publish ------------------ */
publish() {
let msg = document.getElementById("inputCommitMsg");
@@ -207,7 +227,11 @@ class Controller {
console.log(error);
if (error == "HttpError: HTTP Error: 401 Unauthorized") {
this.view.errorPublish(
- "Změny nebyly publikovány: Chyba přihlášení"
+ "Změny nebyly publikovány: Chyba přihlášení."
+ );
+ } 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."
);
}
loading.style.removeProperty("display");
@@ -225,13 +249,4 @@ class Controller {
}
);
}
-
- saveFile() {
- var textArea = this.view.simplemde;
- this.model.saveFile(this.openedFile, textArea.value());
- this.openedFileValue = textArea.value();
- this.saveButton();
-
- this.updateFileStats();
- }
}
diff --git a/js/model.js b/js/model.js
index 72ab65f..12b6591 100644
--- a/js/model.js
+++ b/js/model.js
@@ -10,6 +10,8 @@ class Model {
window.http = http;
}
+ /* ================== Dir Tree ================== */
+
async dirList(dir = "/") {
let list = await pfs.readdir(dir);
@@ -71,6 +73,18 @@ class Model {
return list;
}
+ /* ================== Text Area ================== */
+
+ readFile(file) {
+ return pfs.readFile(file, "utf8");
+ }
+
+ saveFile(cesta, obsah) {
+ pfs.writeFile(cesta, obsah, "utf8");
+ }
+
+ /* ================== Controls ================== */
+
wipeFS() {
delete window.fs;
window.fs = new LightningFS("fs", { wipe: true });
@@ -147,6 +161,9 @@ class Model {
console.log(pushResult);
}
+ /* ================== Windows ================== */
+ /* ------------------ Settings ------------------ */
+
setRepo(repoURL) {
localStorage.setItem("repo", repoURL);
}
@@ -157,19 +174,11 @@ class Model {
}
localStorage.setItem("baseDir", baseDir);
}
- async setName(name) {
+ setName(name) {
localStorage.setItem("name", name);
}
- async setEmail(email) {
+ setEmail(email) {
localStorage.setItem("email", email);
}
-
- readFile(file) {
- return pfs.readFile(file, "utf8");
- }
-
- saveFile(cesta, obsah) {
- pfs.writeFile(cesta, obsah, "utf8");
- }
}
diff --git a/js/view.js b/js/view.js
index d9acc20..6ad9ff2 100644
--- a/js/view.js
+++ b/js/view.js
@@ -6,6 +6,8 @@ class View {
});
}
+ /* ================== Dir Tree ================== */
+
drawDirTree(
dirtree,
ulToAdd = document.getElementsByTagName("ul")[0],
@@ -61,18 +63,6 @@ class View {
}
}
- openFile(fileread) {
- var editText = document.getElementById("editText");
- editText.style.display = "grid";
-
- this.simplemde.value(fileread);
- }
-
- closeEditor() {
- var editText = document.getElementById("editText");
- editText.style.removeProperty("display");
- }
-
removeDirTree() {
let mainul = document.getElementsByTagName("ul")[0];
while (mainul.firstChild) {
@@ -100,6 +90,35 @@ class View {
toggler[0].removeEventListener("click", addClass);
}
+ /* ================== Text Area ================== */
+
+ openFile(fileread) {
+ var editText = document.getElementById("editText");
+ editText.style.display = "grid";
+
+ this.simplemde.value(fileread);
+ }
+
+ closeEditor() {
+ var editText = document.getElementById("editText");
+ editText.style.removeProperty("display");
+ }
+
+ showSaveButton(show) {
+ var saveButton = document.getElementById("saveBtn");
+ saveButton.disabled = show;
+ }
+
+ /* ================== Windows ================== */
+ closeDialog() {
+ var settings = document.getElementsByClassName("settingsbg")[0];
+ var publish = document.getElementsByClassName("commitWrapper")[0];
+
+ settings.style.removeProperty("display");
+ publish.style.removeProperty("display");
+ }
+ /* ------------------ Settings ------------------ */
+
openSettings() {
this.closeEditor();
@@ -117,13 +136,7 @@ class View {
email.value = localStorage.getItem("email");
}
- closeDialog() {
- var settings = document.getElementsByClassName("settingsbg")[0];
- var publish = document.getElementsByClassName("commitWrapper")[0];
-
- settings.style.removeProperty("display");
- publish.style.removeProperty("display");
- }
+ /* ------------------ Publish ------------------ */
openPublish() {
this.closeEditor();
@@ -132,11 +145,6 @@ class View {
publish.style.display = "grid";
}
- showSaveButton(show) {
- var saveButton = document.getElementById("saveBtn");
- saveButton.disabled = show;
- }
-
errorPublish(error) {
let errorDiv = document.getElementById("errorPublish");
if (!error) {