ulozeni dirtree do promene
This commit is contained in:
@@ -53,6 +53,10 @@ aside li::before {
|
|||||||
margin-right: 6px;
|
margin-right: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.caret:hover::before {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
.container {
|
.container {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: max-content auto;
|
grid-template-columns: max-content auto;
|
||||||
@@ -145,7 +149,6 @@ sub {
|
|||||||
.settings,
|
.settings,
|
||||||
.commit {
|
.commit {
|
||||||
background-color: white;
|
background-color: white;
|
||||||
width: 30vw;
|
|
||||||
padding: 1.5em;
|
padding: 1.5em;
|
||||||
border: 5px solid #c3c3c3;
|
border: 5px solid #c3c3c3;
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
|
|||||||
0
favicon.ico
Normal file
0
favicon.ico
Normal file
171
js/controller.js
171
js/controller.js
@@ -3,8 +3,12 @@ class Controller {
|
|||||||
this.model = model;
|
this.model = model;
|
||||||
this.view = view;
|
this.view = view;
|
||||||
|
|
||||||
this.addListeners();
|
model.getDirTree().then(
|
||||||
this.init();
|
function () {
|
||||||
|
this.addListeners();
|
||||||
|
this.init();
|
||||||
|
}.bind(this)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
@@ -22,23 +26,16 @@ class Controller {
|
|||||||
) {
|
) {
|
||||||
this.view.openSettings();
|
this.view.openSettings();
|
||||||
} else {
|
} else {
|
||||||
this.model.getDirTree().then(
|
if (this.model.dirTree.length == 1) {
|
||||||
function (value) {
|
//Nic nenaklonovaného, klonovat
|
||||||
if (value.length == 1) {
|
this.cloneRep();
|
||||||
//Nic nenaklonovaného, klonovat
|
} else {
|
||||||
this.cloneRep();
|
//Udělat Pull
|
||||||
} else {
|
this.pullRep();
|
||||||
//Udělat Pull
|
}
|
||||||
this.pullRep();
|
|
||||||
}
|
|
||||||
}.bind(this),
|
|
||||||
function (error) {
|
|
||||||
console.log(error);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (localStorage.getItem("pushError") != "false") {
|
if (localStorage.getItem("pushError") == "true") {
|
||||||
this.view.openPublish();
|
this.view.openPublish();
|
||||||
this.view.errorPublish("Máte nepublikované změny: publikujte je.");
|
this.view.errorPublish("Máte nepublikované změny: publikujte je.");
|
||||||
}
|
}
|
||||||
@@ -69,24 +66,17 @@ class Controller {
|
|||||||
settingsSubmit.addEventListener("click", this.saveSettings.bind(this));
|
settingsSubmit.addEventListener("click", this.saveSettings.bind(this));
|
||||||
this.view.simplemde.codemirror.on("change", this.saveButton.bind(this));
|
this.view.simplemde.codemirror.on("change", this.saveButton.bind(this));
|
||||||
saveBtn.addEventListener("click", this.saveFile.bind(this));
|
saveBtn.addEventListener("click", this.saveFile.bind(this));
|
||||||
publishBtn.addEventListener("click", this.view.openPublish.bind(this.view));
|
publishBtn.addEventListener("click", this.openPublish.bind(this));
|
||||||
commitSubmit.addEventListener("click", this.publish.bind(this));
|
commitSubmit.addEventListener("click", this.publish.bind(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ================== Dir Tree ================== */
|
/* ================== Dir Tree ================== */
|
||||||
|
|
||||||
redrawDirTree(view) {
|
redrawDirTree() {
|
||||||
this.model.getDirTree().then(
|
this.view.removeDirTree();
|
||||||
function (value) {
|
this.view.drawDirTree(this.model.dirTree, undefined, this);
|
||||||
view.removeDirTree();
|
this.view.dirTreeToggler();
|
||||||
view.drawDirTree(value, undefined, this);
|
this.updateFileStats();
|
||||||
view.dirTreeToggler();
|
|
||||||
this.updateFileStats();
|
|
||||||
}.bind(this),
|
|
||||||
function (error) {
|
|
||||||
console.log(error);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
updateFileStats() {
|
updateFileStats() {
|
||||||
@@ -133,9 +123,9 @@ class Controller {
|
|||||||
/* ================== Controls ================== */
|
/* ================== Controls ================== */
|
||||||
|
|
||||||
wipeFS() {
|
wipeFS() {
|
||||||
this.model.wipeFS();
|
this.model.wipeFS().then(function () {
|
||||||
//window.location.reload();
|
this.redrawDirTree();
|
||||||
this.redrawDirTree(this.view);
|
}.bind(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
cloneRep() {
|
cloneRep() {
|
||||||
@@ -143,8 +133,10 @@ class Controller {
|
|||||||
loading.style.display = "grid";
|
loading.style.display = "grid";
|
||||||
this.model.cloneRep().then(
|
this.model.cloneRep().then(
|
||||||
function (value) {
|
function (value) {
|
||||||
|
this.redrawDirTree();
|
||||||
loading.style.removeProperty("display");
|
loading.style.removeProperty("display");
|
||||||
this.redrawDirTree(this.view);
|
localStorage.setItem("pushError", "false");
|
||||||
|
this.view.errorPublish();
|
||||||
}.bind(this),
|
}.bind(this),
|
||||||
function (error) {
|
function (error) {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
@@ -158,7 +150,7 @@ class Controller {
|
|||||||
this.model.pullRep().then(
|
this.model.pullRep().then(
|
||||||
function (value) {
|
function (value) {
|
||||||
loading.style.removeProperty("display");
|
loading.style.removeProperty("display");
|
||||||
this.redrawDirTree(this.view);
|
this.redrawDirTree();
|
||||||
}.bind(this),
|
}.bind(this),
|
||||||
function (error) {
|
function (error) {
|
||||||
// zatim to teda znovu naclonuj
|
// zatim to teda znovu naclonuj
|
||||||
@@ -168,6 +160,31 @@ class Controller {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gitPush(gitUser, gitPass) {
|
||||||
|
let loading = document.getElementsByClassName("publishLoading")[0];
|
||||||
|
|
||||||
|
this.model.gitPush(gitUser, gitPass).then(
|
||||||
|
function (value) {
|
||||||
|
localStorage.setItem("pushError", "false");
|
||||||
|
this.view.closeDialog();
|
||||||
|
this.view.errorPublish();
|
||||||
|
loading.style.removeProperty("display");
|
||||||
|
}.bind(this),
|
||||||
|
function (error) {
|
||||||
|
console.log(error);
|
||||||
|
if (error == "HttpError: HTTP Error: 401 Unauthorized") {
|
||||||
|
this.view.errorPublish("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."
|
||||||
|
);
|
||||||
|
}
|
||||||
|
localStorage.setItem("pushError", "true");
|
||||||
|
loading.style.removeProperty("display");
|
||||||
|
}.bind(this)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/* ================== Windows ================== */
|
/* ================== Windows ================== */
|
||||||
/* ------------------ Settings ------------------ */
|
/* ------------------ Settings ------------------ */
|
||||||
|
|
||||||
@@ -179,7 +196,11 @@ class Controller {
|
|||||||
|
|
||||||
let oldRepoURL = localStorage.getItem("repo");
|
let oldRepoURL = localStorage.getItem("repo");
|
||||||
this.model.setRepo(repo.value);
|
this.model.setRepo(repo.value);
|
||||||
this.model.setBaseDir(baseDir.value);
|
this.model.setBaseDir(baseDir.value).then(
|
||||||
|
function() {
|
||||||
|
this.redrawDirTree();
|
||||||
|
}.bind(this)
|
||||||
|
);
|
||||||
this.model.setName(name.value);
|
this.model.setName(name.value);
|
||||||
this.model.setEmail(email.value);
|
this.model.setEmail(email.value);
|
||||||
|
|
||||||
@@ -191,8 +212,6 @@ class Controller {
|
|||||||
if (repo.value != oldRepoURL) {
|
if (repo.value != oldRepoURL) {
|
||||||
// udělej clone
|
// udělej clone
|
||||||
this.cloneRep();
|
this.cloneRep();
|
||||||
} else {
|
|
||||||
this.redrawDirTree(this.view);
|
|
||||||
}
|
}
|
||||||
this.view.closeDialog();
|
this.view.closeDialog();
|
||||||
}
|
}
|
||||||
@@ -203,50 +222,42 @@ class Controller {
|
|||||||
let msg = document.getElementById("inputCommitMsg");
|
let msg = document.getElementById("inputCommitMsg");
|
||||||
let gitUser = document.getElementById("inputUser");
|
let gitUser = document.getElementById("inputUser");
|
||||||
let gitPass = document.getElementById("inputPasswd");
|
let gitPass = document.getElementById("inputPasswd");
|
||||||
|
|
||||||
if (msg.value == "" || gitUser.value == "" || gitPass.gitPass == "") {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
let loading = document.getElementsByClassName("publishLoading")[0];
|
let loading = document.getElementsByClassName("publishLoading")[0];
|
||||||
loading.style.display = "block";
|
|
||||||
|
|
||||||
this.model.gitAddAll().then(
|
if (localStorage.getItem("pushError") == "true") {
|
||||||
function (value) {
|
if (gitUser.value == "" || gitPass.gitPass == "") {
|
||||||
this.model.gitCommit(msg.value).then(
|
this.view.errorPublish("Vyplňte potřebné údaje.");
|
||||||
function (value) {
|
return;
|
||||||
this.updateFileStats();
|
|
||||||
this.model.gitPush(gitUser.value, gitPass.value).then(
|
|
||||||
function (value) {
|
|
||||||
localStorage.setItem("pushError", "false");
|
|
||||||
loading.style.removeProperty("display");
|
|
||||||
this.view.closeDialog();
|
|
||||||
this.view.errorPublish();
|
|
||||||
}.bind(this),
|
|
||||||
function (error) {
|
|
||||||
console.log(error);
|
|
||||||
if (error == "HttpError: HTTP Error: 401 Unauthorized") {
|
|
||||||
this.view.errorPublish(
|
|
||||||
"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");
|
|
||||||
localStorage.setItem("pushError", "true");
|
|
||||||
}.bind(this)
|
|
||||||
);
|
|
||||||
}.bind(this),
|
|
||||||
function (error) {
|
|
||||||
console.log(error);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}.bind(this),
|
|
||||||
function (error) {
|
|
||||||
console.log(error);
|
|
||||||
}
|
}
|
||||||
);
|
loading.style.display = "block";
|
||||||
|
this.gitPush(gitUser.value, gitPass.value);
|
||||||
|
} else {
|
||||||
|
if (msg.value == "" || gitUser.value == "" || gitPass.gitPass == "") {
|
||||||
|
this.view.errorPublish("Vyplňte potřebné údaje.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
loading.style.display = "block";
|
||||||
|
|
||||||
|
this.model.gitAddAll().then(
|
||||||
|
function (value) {
|
||||||
|
this.model.gitCommit(msg.value).then(
|
||||||
|
function (value) {
|
||||||
|
this.updateFileStats();
|
||||||
|
this.gitPush(gitUser.value, gitPass.value);
|
||||||
|
}.bind(this),
|
||||||
|
function (error) {
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}.bind(this),
|
||||||
|
function (error) {
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
openPublish() {
|
||||||
|
this.view.openPublish();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
20
js/model.js
20
js/model.js
@@ -47,7 +47,7 @@ class Model {
|
|||||||
var baseDir = dir;
|
var baseDir = dir;
|
||||||
}
|
}
|
||||||
var tree = await this.dirList(baseDir);
|
var tree = await this.dirList(baseDir);
|
||||||
|
this.dirTree = tree;
|
||||||
return tree;
|
return tree;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -85,9 +85,10 @@ class Model {
|
|||||||
|
|
||||||
/* ================== Controls ================== */
|
/* ================== Controls ================== */
|
||||||
|
|
||||||
wipeFS() {
|
async wipeFS() {
|
||||||
delete window.fs;
|
delete window.fs;
|
||||||
window.fs = new LightningFS("fs", { wipe: true });
|
window.fs = new LightningFS("fs", { wipe: true });
|
||||||
|
await this.getDirTree();
|
||||||
}
|
}
|
||||||
|
|
||||||
async cloneRep() {
|
async cloneRep() {
|
||||||
@@ -100,6 +101,8 @@ class Model {
|
|||||||
url: localStorage.getItem("repo"),
|
url: localStorage.getItem("repo"),
|
||||||
corsProxy: "https://cors.isomorphic-git.org",
|
corsProxy: "https://cors.isomorphic-git.org",
|
||||||
});
|
});
|
||||||
|
|
||||||
|
await this.getDirTree();
|
||||||
}
|
}
|
||||||
|
|
||||||
async pullRep() {
|
async pullRep() {
|
||||||
@@ -113,13 +116,14 @@ class Model {
|
|||||||
email: localStorage.getItem("email"),
|
email: localStorage.getItem("email"),
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
await this.getDirTree();
|
||||||
}
|
}
|
||||||
|
|
||||||
async gitAddAll(dirTree) {
|
async gitAddAll(dirTree) {
|
||||||
if (!dirTree) {
|
if (!dirTree) {
|
||||||
dirTree = await this.getDirTree();
|
dirTree = await this.getDirTree();
|
||||||
}
|
}
|
||||||
for (let i = 1; i < dirTree.length; i++) {
|
/* for (let i = 1; i < dirTree.length; i++) {
|
||||||
if (Array.isArray(dirTree[i])) {
|
if (Array.isArray(dirTree[i])) {
|
||||||
await this.gitAddAll(dirTree[i]);
|
await this.gitAddAll(dirTree[i]);
|
||||||
} else {
|
} else {
|
||||||
@@ -130,7 +134,12 @@ class Model {
|
|||||||
});
|
});
|
||||||
console.log(dirTree[0].substring(1) + dirTree[i]);
|
console.log(dirTree[0].substring(1) + dirTree[i]);
|
||||||
}
|
}
|
||||||
}
|
} */
|
||||||
|
await git.add({
|
||||||
|
fs,
|
||||||
|
dir,
|
||||||
|
filepath: ".",
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async gitCommit(msg) {
|
async gitCommit(msg) {
|
||||||
@@ -168,11 +177,12 @@ class Model {
|
|||||||
localStorage.setItem("repo", repoURL);
|
localStorage.setItem("repo", repoURL);
|
||||||
}
|
}
|
||||||
|
|
||||||
setBaseDir(baseDir) {
|
async setBaseDir(baseDir) {
|
||||||
if (!baseDir.endsWith("/")) {
|
if (!baseDir.endsWith("/")) {
|
||||||
baseDir += "/";
|
baseDir += "/";
|
||||||
}
|
}
|
||||||
localStorage.setItem("baseDir", baseDir);
|
localStorage.setItem("baseDir", baseDir);
|
||||||
|
await this.getDirTree();
|
||||||
}
|
}
|
||||||
setName(name) {
|
setName(name) {
|
||||||
localStorage.setItem("name", name);
|
localStorage.setItem("name", name);
|
||||||
|
|||||||
10
js/view.js
10
js/view.js
@@ -53,9 +53,11 @@ class View {
|
|||||||
skip += 2;
|
skip += 2;
|
||||||
} else {
|
} else {
|
||||||
if (dirtree[i] != "unmodified") {
|
if (dirtree[i] != "unmodified") {
|
||||||
li[skip].style.backgroundColor = "red";
|
li[skip].style.backgroundColor = "#008080";
|
||||||
|
li[skip].style.color = "white";
|
||||||
} else {
|
} else {
|
||||||
li[skip].style.removeProperty("background-color");
|
li[skip].style.removeProperty("background-color");
|
||||||
|
li[skip].style.removeProperty("color");
|
||||||
}
|
}
|
||||||
|
|
||||||
skip += 1;
|
skip += 1;
|
||||||
@@ -138,11 +140,15 @@ class View {
|
|||||||
|
|
||||||
/* ------------------ Publish ------------------ */
|
/* ------------------ Publish ------------------ */
|
||||||
|
|
||||||
openPublish() {
|
openPublish(changedFiles) {
|
||||||
|
this.closeDialog();
|
||||||
this.closeEditor();
|
this.closeEditor();
|
||||||
|
|
||||||
var publish = document.getElementsByClassName("commitWrapper")[0];
|
var publish = document.getElementsByClassName("commitWrapper")[0];
|
||||||
publish.style.display = "grid";
|
publish.style.display = "grid";
|
||||||
|
|
||||||
|
let gitMsg = document.getElementById("inputCommitMsg");
|
||||||
|
gitMsg.disabled = localStorage.getItem("pushError") == "true";
|
||||||
}
|
}
|
||||||
|
|
||||||
errorPublish(error) {
|
errorPublish(error) {
|
||||||
|
|||||||
Reference in New Issue
Block a user