přidání Settings
This commit is contained in:
@@ -31,6 +31,7 @@ li:hover {
|
|||||||
li {
|
li {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
li::before {
|
li::before {
|
||||||
@@ -91,9 +92,52 @@ sub {
|
|||||||
position: absolute;
|
position: absolute;
|
||||||
z-index: 5;
|
z-index: 5;
|
||||||
display: none;
|
display: none;
|
||||||
background-color: rgba(0, 0, 0, 0.438);
|
background-color: rgba(0, 0, 0, 0.75);
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
justify-items: center;
|
justify-items: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.settingsBtn {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.settingsbg {
|
||||||
|
position: absolute;
|
||||||
|
background-color: rgba(0, 0, 0, 0.75);
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
display: none;
|
||||||
|
justify-items: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings {
|
||||||
|
background-color: white;
|
||||||
|
width: 30vw;
|
||||||
|
height: 30vh;
|
||||||
|
padding: 1.5em;
|
||||||
|
border: 5px solid #c3c3c3;
|
||||||
|
}
|
||||||
|
|
||||||
|
form {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: max-content auto;
|
||||||
|
align-items: center;
|
||||||
|
column-gap: 2em;
|
||||||
|
text-align: end;
|
||||||
|
}
|
||||||
|
|
||||||
|
#settingsClose {
|
||||||
|
background-color: rgb(88, 88, 88);
|
||||||
|
color: rgb(255, 255, 255);
|
||||||
|
cursor: pointer;
|
||||||
|
user-select: none;
|
||||||
|
width: 2em;
|
||||||
|
height: 2em;
|
||||||
|
margin: 0 0 1em auto;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|||||||
14
index.php
14
index.php
@@ -17,6 +17,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="settingsBtn">Settings</button>
|
||||||
</nav>
|
</nav>
|
||||||
<aside>
|
<aside>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -35,6 +36,19 @@
|
|||||||
<footer>
|
<footer>
|
||||||
CoMato © 2020 David Zálešák<sub>Seminární práce do předmětu tvorba www aplikací</sub>
|
CoMato © 2020 David Zálešák<sub>Seminární práce do předmětu tvorba www aplikací</sub>
|
||||||
</footer>
|
</footer>
|
||||||
|
<div class="settingsbg">
|
||||||
|
<div class="settings">
|
||||||
|
<div id="settingsClose" class="close">X</div>
|
||||||
|
<form action="javascript:void(0);">
|
||||||
|
<label for="inputRepository">Git repository:</label>
|
||||||
|
<input type="text" id="inputRepository">
|
||||||
|
<label for="inputBaseDir">Base directory:</label>
|
||||||
|
<input type="text" id="inputBaseDir">
|
||||||
|
<button id="settingsSubmit">Submit</button>
|
||||||
|
<button id="settingsCancel" class="close">Cancel</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -7,8 +7,17 @@ class Controller {
|
|||||||
|
|
||||||
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 settingsClose = document.getElementsByClassName("close");
|
||||||
|
var settingsSubmit = document.getElementById("settingsSubmit");
|
||||||
|
|
||||||
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));
|
||||||
|
for (let i = 0; i < settingsClose.length; i++) {
|
||||||
|
settingsClose[i].addEventListener("click", view.closeSettings.bind(this));
|
||||||
|
}
|
||||||
|
settingsSubmit.addEventListener("click", this.saveSettings.bind(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
wipeFS() {
|
wipeFS() {
|
||||||
@@ -40,4 +49,16 @@ class Controller {
|
|||||||
function (error) {}
|
function (error) {}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
saveSettings() {
|
||||||
|
let repo = document.getElementById("inputRepository");
|
||||||
|
let baseDir = document.getElementById("inputBaseDir");
|
||||||
|
|
||||||
|
this.model.setRepo(repo.value);
|
||||||
|
this.model.setBaseDir(baseDir.value);
|
||||||
|
|
||||||
|
this.redrawDirTree(this.view);
|
||||||
|
this.view.closeSettings();
|
||||||
|
console.log(repo.value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
17
js/model.js
17
js/model.js
@@ -35,8 +35,9 @@ class Model {
|
|||||||
return dirtree;
|
return dirtree;
|
||||||
}
|
}
|
||||||
|
|
||||||
async dirTree(dir = "/") {
|
async dirTree() {
|
||||||
var tree = await this.dirList(dir);
|
let baseDir = localStorage.getItem("baseDir");
|
||||||
|
var tree = await this.dirList(baseDir);
|
||||||
|
|
||||||
return tree;
|
return tree;
|
||||||
}
|
}
|
||||||
@@ -47,12 +48,22 @@ class Model {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async cloneRep() {
|
async cloneRep() {
|
||||||
|
this.wipeFS();
|
||||||
|
|
||||||
await git.clone({
|
await git.clone({
|
||||||
fs,
|
fs,
|
||||||
http,
|
http,
|
||||||
dir,
|
dir,
|
||||||
url: "https://git.microlab.space/microlab/website.git",
|
url: localStorage.getItem("repo"),
|
||||||
corsProxy: "https://cors.isomorphic-git.org",
|
corsProxy: "https://cors.isomorphic-git.org",
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setRepo(repoURL) {
|
||||||
|
localStorage.setItem("repo", repoURL);
|
||||||
|
}
|
||||||
|
|
||||||
|
setBaseDir(baseDir) {
|
||||||
|
localStorage.setItem("baseDir", baseDir);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
16
js/view.js
16
js/view.js
@@ -53,4 +53,20 @@ class View {
|
|||||||
}
|
}
|
||||||
toggler[0].removeEventListener("click", addClass);
|
toggler[0].removeEventListener("click", addClass);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
openSettings() {
|
||||||
|
var settings = document.getElementsByClassName("settingsbg")[0];
|
||||||
|
settings.style.display = "grid";
|
||||||
|
|
||||||
|
let repo = document.getElementById("inputRepository");
|
||||||
|
let baseDir = document.getElementById("inputBaseDir");
|
||||||
|
|
||||||
|
repo.value = localStorage.getItem("repo")
|
||||||
|
baseDir.value = localStorage.getItem("baseDir");
|
||||||
|
}
|
||||||
|
|
||||||
|
closeSettings() {
|
||||||
|
var settings = document.getElementsByClassName("settingsbg")[0];
|
||||||
|
settings.style.removeProperty("display");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user