pridan pull pri initu aplikace, pridano nastaveni, uprava interakce
This commit is contained in:
@@ -22,18 +22,18 @@ ul:nth-child(1) {
|
|||||||
padding: 1em 1em;
|
padding: 1em 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
li:hover {
|
aside li:hover {
|
||||||
background-color: rgb(0, 0, 130);
|
background-color: rgb(0, 0, 130);
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
li {
|
aside li {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
li::before {
|
aside li::before {
|
||||||
content: "";
|
content: "";
|
||||||
color: black;
|
color: black;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
@@ -117,7 +117,8 @@ sub {
|
|||||||
float: right;
|
float: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
.settingsbg {
|
.settingsbg,
|
||||||
|
.commitWrapper {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
background-color: rgba(0, 0, 0, 0.75);
|
background-color: rgba(0, 0, 0, 0.75);
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -128,10 +129,10 @@ sub {
|
|||||||
z-index: 5;
|
z-index: 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
.settings {
|
.settings,
|
||||||
|
.commit {
|
||||||
background-color: white;
|
background-color: white;
|
||||||
width: 30vw;
|
width: 30vw;
|
||||||
height: 30vh;
|
|
||||||
padding: 1.5em;
|
padding: 1.5em;
|
||||||
border: 5px solid #c3c3c3;
|
border: 5px solid #c3c3c3;
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
|
|||||||
18
index.html
18
index.html
@@ -24,6 +24,7 @@
|
|||||||
<nav>
|
<nav>
|
||||||
<button class="clone">Clone</button>
|
<button class="clone">Clone</button>
|
||||||
<button class="wipe">Wipe FS</button>
|
<button class="wipe">Wipe FS</button>
|
||||||
|
<button class="publishBtn">Publikovat (Commit & Push)</button>
|
||||||
<button class="settingsBtn">Settings</button>
|
<button class="settingsBtn">Settings</button>
|
||||||
</nav>
|
</nav>
|
||||||
<aside>
|
<aside>
|
||||||
@@ -53,9 +54,24 @@
|
|||||||
<div id="settingsClose" class="close">X</div>
|
<div id="settingsClose" class="close">X</div>
|
||||||
<form action="javascript:void(0);">
|
<form action="javascript:void(0);">
|
||||||
<label for="inputRepository">Git repository:</label>
|
<label for="inputRepository">Git repository:</label>
|
||||||
<input type="text" id="inputRepository">
|
<input type="text" id="inputRepository" required>
|
||||||
<label for="inputBaseDir">Base directory:</label>
|
<label for="inputBaseDir">Base directory:</label>
|
||||||
<input type="text" id="inputBaseDir">
|
<input type="text" id="inputBaseDir">
|
||||||
|
<label for="inputName">Name:</label>
|
||||||
|
<input type="text" id="inputName" required>
|
||||||
|
<label for="inputEmail">Email:</label>
|
||||||
|
<input type="email" id="inputEmail" required>
|
||||||
|
<button id="settingsSubmit">Submit</button>
|
||||||
|
<button id="settingsCancel" class="close">Cancel</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="commitWrapper">
|
||||||
|
<div class="commit">
|
||||||
|
<div id="settingsClose" class="close">X</div>
|
||||||
|
<form action="javascript:void(0);">
|
||||||
|
<label for="inputCommitMsg">Poznámka k úpravám:</label>
|
||||||
|
<input type="text" id="inputCommitMsg">
|
||||||
<button id="settingsSubmit">Submit</button>
|
<button id="settingsSubmit">Submit</button>
|
||||||
<button id="settingsCancel" class="close">Cancel</button>
|
<button id="settingsCancel" class="close">Cancel</button>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -4,7 +4,45 @@ class Controller {
|
|||||||
this.view = view;
|
this.view = view;
|
||||||
|
|
||||||
this.redrawDirTree(view);
|
this.redrawDirTree(view);
|
||||||
|
//this.pullRep();
|
||||||
|
|
||||||
|
this.addListeners();
|
||||||
|
this.init();
|
||||||
|
}
|
||||||
|
|
||||||
|
init() {
|
||||||
|
let repo = localStorage.getItem("repo");
|
||||||
|
let name = localStorage.getItem("name");
|
||||||
|
let email = localStorage.getItem("email");
|
||||||
|
|
||||||
|
if (
|
||||||
|
repo == null ||
|
||||||
|
name == null ||
|
||||||
|
email == null ||
|
||||||
|
repo == "" ||
|
||||||
|
name == "" ||
|
||||||
|
email == ""
|
||||||
|
) {
|
||||||
|
this.view.openSettings();
|
||||||
|
} else {
|
||||||
|
this.model.getDirTree().then(
|
||||||
|
function (value) {
|
||||||
|
if (value.length == 1) {
|
||||||
|
//Nic nenaklonovaného, klonovat
|
||||||
|
this.cloneRep();
|
||||||
|
} else {
|
||||||
|
//Udělat Pull
|
||||||
|
this.pullRep();
|
||||||
|
}
|
||||||
|
}.bind(this),
|
||||||
|
function (error) {
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
addListeners() {
|
||||||
var cloneBtn = document.getElementsByClassName("clone")[0];
|
var cloneBtn = document.getElementsByClassName("clone")[0];
|
||||||
var purgeBtn = document.getElementsByClassName("wipe")[0];
|
var purgeBtn = document.getElementsByClassName("wipe")[0];
|
||||||
var settingsBtn = document.getElementsByClassName("settingsBtn")[0];
|
var settingsBtn = document.getElementsByClassName("settingsBtn")[0];
|
||||||
@@ -14,12 +52,18 @@ class Controller {
|
|||||||
|
|
||||||
cloneBtn.addEventListener("click", this.cloneRep.bind(this));
|
cloneBtn.addEventListener("click", this.cloneRep.bind(this));
|
||||||
purgeBtn.addEventListener("click", this.wipeFS.bind(this));
|
purgeBtn.addEventListener("click", this.wipeFS.bind(this));
|
||||||
settingsBtn.addEventListener("click", view.openSettings.bind(this));
|
settingsBtn.addEventListener(
|
||||||
|
"click",
|
||||||
|
this.view.openSettings.bind(this.view)
|
||||||
|
);
|
||||||
for (let i = 0; i < settingsClose.length; i++) {
|
for (let i = 0; i < settingsClose.length; i++) {
|
||||||
settingsClose[i].addEventListener("click", view.closeSettings.bind(this));
|
settingsClose[i].addEventListener(
|
||||||
|
"click",
|
||||||
|
this.view.closeSettings.bind(this)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
settingsSubmit.addEventListener("click", this.saveSettings.bind(this));
|
settingsSubmit.addEventListener("click", this.saveSettings.bind(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));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -35,7 +79,7 @@ class Controller {
|
|||||||
this.redrawDirTree(this.view);
|
this.redrawDirTree(this.view);
|
||||||
}
|
}
|
||||||
|
|
||||||
cloneRep(repurl) {
|
cloneRep() {
|
||||||
var loading = document.getElementsByClassName("loading")[0];
|
var loading = document.getElementsByClassName("loading")[0];
|
||||||
loading.style.display = "grid";
|
loading.style.display = "grid";
|
||||||
this.model.cloneRep().then(
|
this.model.cloneRep().then(
|
||||||
@@ -43,7 +87,23 @@ class Controller {
|
|||||||
loading.style.removeProperty("display");
|
loading.style.removeProperty("display");
|
||||||
this.redrawDirTree(this.view);
|
this.redrawDirTree(this.view);
|
||||||
}.bind(this),
|
}.bind(this),
|
||||||
function (error) {}
|
function (error) {
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
pullRep() {
|
||||||
|
var loading = document.getElementsByClassName("loading")[0];
|
||||||
|
loading.style.display = "grid";
|
||||||
|
this.model.pullRep().then(
|
||||||
|
function (value) {
|
||||||
|
loading.style.removeProperty("display");
|
||||||
|
this.redrawDirTree(this.view);
|
||||||
|
}.bind(this),
|
||||||
|
function (error) {
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,7 +115,9 @@ class Controller {
|
|||||||
view.dirTreeToggler();
|
view.dirTreeToggler();
|
||||||
this.updateFileStats();
|
this.updateFileStats();
|
||||||
}.bind(this),
|
}.bind(this),
|
||||||
function (error) {}
|
function (error) {
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -63,7 +125,6 @@ class Controller {
|
|||||||
this.model.getGitStatusTree().then(
|
this.model.getGitStatusTree().then(
|
||||||
function (value) {
|
function (value) {
|
||||||
this.view.statDirTree(value, undefined);
|
this.view.statDirTree(value, undefined);
|
||||||
console.log(value);
|
|
||||||
}.bind(this),
|
}.bind(this),
|
||||||
function (error) {
|
function (error) {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
@@ -74,13 +135,28 @@ class Controller {
|
|||||||
saveSettings() {
|
saveSettings() {
|
||||||
let repo = document.getElementById("inputRepository");
|
let repo = document.getElementById("inputRepository");
|
||||||
let baseDir = document.getElementById("inputBaseDir");
|
let baseDir = document.getElementById("inputBaseDir");
|
||||||
|
let name = document.getElementById("inputName");
|
||||||
|
let email = document.getElementById("inputEmail");
|
||||||
|
|
||||||
|
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);
|
||||||
|
this.model.setName(name.value);
|
||||||
|
this.model.setEmail(email.value);
|
||||||
|
|
||||||
this.redrawDirTree(this.view);
|
if (repo.value == "" || name.value == "" || email.value == "") {
|
||||||
|
this.view.openSettings();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (repo.value != oldRepoURL) {
|
||||||
|
// udělej clone
|
||||||
|
this.cloneRep();
|
||||||
|
} else {
|
||||||
|
// udelej jenom pull
|
||||||
|
this.pullRep();
|
||||||
|
}
|
||||||
this.view.closeSettings();
|
this.view.closeSettings();
|
||||||
console.log(repo.value);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
loadFile(file) {
|
loadFile(file) {
|
||||||
@@ -90,7 +166,9 @@ class Controller {
|
|||||||
this.openedFileValue = value;
|
this.openedFileValue = value;
|
||||||
this.view.openFile(value);
|
this.view.openFile(value);
|
||||||
}.bind(this),
|
}.bind(this),
|
||||||
function (error) {}
|
function (error) {
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
20
js/model.js
20
js/model.js
@@ -90,6 +90,19 @@ class Model {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async pullRep() {
|
||||||
|
await git.pull({
|
||||||
|
fs,
|
||||||
|
http,
|
||||||
|
dir,
|
||||||
|
fastForwardOnly: true,
|
||||||
|
author: {
|
||||||
|
name: localStorage.getItem("name"),
|
||||||
|
email: localStorage.getItem("email"),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
setRepo(repoURL) {
|
setRepo(repoURL) {
|
||||||
localStorage.setItem("repo", repoURL);
|
localStorage.setItem("repo", repoURL);
|
||||||
}
|
}
|
||||||
@@ -100,6 +113,13 @@ class Model {
|
|||||||
}
|
}
|
||||||
localStorage.setItem("baseDir", baseDir);
|
localStorage.setItem("baseDir", baseDir);
|
||||||
}
|
}
|
||||||
|
async setName(name) {
|
||||||
|
localStorage.setItem("name", name);
|
||||||
|
}
|
||||||
|
|
||||||
|
async setEmail(email) {
|
||||||
|
localStorage.setItem("email", email);
|
||||||
|
}
|
||||||
|
|
||||||
readFile(file) {
|
readFile(file) {
|
||||||
return pfs.readFile(file, "utf8");
|
return pfs.readFile(file, "utf8");
|
||||||
|
|||||||
13
js/view.js
13
js/view.js
@@ -50,7 +50,7 @@ class View {
|
|||||||
this.statDirTree(dirtree[i], li[skip + 1]);
|
this.statDirTree(dirtree[i], li[skip + 1]);
|
||||||
skip += 2;
|
skip += 2;
|
||||||
} else {
|
} else {
|
||||||
if (dirtree[i] == "*modified") {
|
if (dirtree[i] != "unmodified") {
|
||||||
li[skip].style.backgroundColor = "red";
|
li[skip].style.backgroundColor = "red";
|
||||||
} else {
|
} else {
|
||||||
li[skip].style.removeProperty("background-color");
|
li[skip].style.removeProperty("background-color");
|
||||||
@@ -68,6 +68,11 @@ class View {
|
|||||||
this.simplemde.value(fileread);
|
this.simplemde.value(fileread);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
closeEditor() {
|
||||||
|
var editText = document.getElementById("editText");
|
||||||
|
editText.style.removeProperty("display");
|
||||||
|
}
|
||||||
|
|
||||||
removeDirTree() {
|
removeDirTree() {
|
||||||
let mainul = document.getElementsByTagName("ul")[0];
|
let mainul = document.getElementsByTagName("ul")[0];
|
||||||
while (mainul.firstChild) {
|
while (mainul.firstChild) {
|
||||||
@@ -96,14 +101,20 @@ class View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
openSettings() {
|
openSettings() {
|
||||||
|
this.closeEditor();
|
||||||
|
|
||||||
var settings = document.getElementsByClassName("settingsbg")[0];
|
var settings = document.getElementsByClassName("settingsbg")[0];
|
||||||
settings.style.display = "grid";
|
settings.style.display = "grid";
|
||||||
|
|
||||||
let repo = document.getElementById("inputRepository");
|
let repo = document.getElementById("inputRepository");
|
||||||
let baseDir = document.getElementById("inputBaseDir");
|
let baseDir = document.getElementById("inputBaseDir");
|
||||||
|
let name = document.getElementById("inputName");
|
||||||
|
let email = document.getElementById("inputEmail");
|
||||||
|
|
||||||
repo.value = localStorage.getItem("repo");
|
repo.value = localStorage.getItem("repo");
|
||||||
baseDir.value = localStorage.getItem("baseDir");
|
baseDir.value = localStorage.getItem("baseDir");
|
||||||
|
name.value = localStorage.getItem("name");
|
||||||
|
email.value = localStorage.getItem("email");
|
||||||
}
|
}
|
||||||
|
|
||||||
closeSettings() {
|
closeSettings() {
|
||||||
|
|||||||
Reference in New Issue
Block a user