Initial commit, vypis adresarove struktury

master
David Zálešák 4 years ago
commit 59c2625cd1

@ -0,0 +1,23 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Správa obsahu webu</title>
<link rel="stylesheet" href="css/style.css">
<script src="https://unpkg.com/@isomorphic-git/lightning-fs"></script>
<script src="https://unpkg.com/isomorphic-git@beta"></script>
</head>
<body>
<ul id="dirtree-0">
</ul>
<script src="js/main.js" type="module"></script>
<script src="js/model.js"></script>
<script src="js/view.js"></script>
<script src="js/controller.js"></script>
</body>
</html>

@ -0,0 +1,22 @@
class Controller {
constructor(model, view) {
this.model = model;
this.view = view;
// Initialize isomorphic-git with a file system
window.fs = new LightningFS("fs");
// I prefer using the Promisified version honestly
window.pfs = window.fs.promises;
window.dir = "/test-clone";
this.model.dirTree().then(
function (value) {
view.showDirTree(value);
},
function (error) {}
);
}
}

@ -0,0 +1,25 @@
import http from "https://unpkg.com/isomorphic-git@beta/http/web/index.js";
/*
async function fsListDir(){
let dirlist = await pfs.readdir("/test-clone");
document.getElementsByTagName("body")[0].innerHTML = dirlist;
}
async function gitStatus(){
document.getElementsByTagName("body")[0].innerHTML = await git.status({
fs,
dir,
filepath: "karma.conf.js",
});
}
fsListDir()
gitStatus();
*/
const app = new Controller(new Model(), new View());

@ -0,0 +1,36 @@
class Model {
constructor() {}
async dirList(dir = "/") {
let list = await pfs.readdir(dir);
for (let u = 0; u < list.length; u++) {
let re = /^\..*$/;
if (re.test(list[u])) {
list.splice(u, 1)
u--
}
}
let dirtree = [dir];
for (let i = 0; i < list.length; i++) {
dirtree[i + 1] = list[i];
let itemStat = await pfs.stat(dirtree[0] + dirtree[i+1]);
if (itemStat.isDirectory()) {
dirtree[i+1] = await this.dirList(dirtree[0] + dirtree[i+1] + "/");
}
}
return dirtree;
}
async dirTree(dir = "/") {
var tree = await this.dirList(dir);
console.log(tree);
return tree;
}
}

@ -0,0 +1,79 @@
class View {
constructor() {
document.body.style.backgroundColor = "olive";
}
hloubka = 1;
showfiles(dir) {
console.log(dir)
}
showDirTree(dirtree) {
var dirtreeul = document.getElementsByTagName("ul");
var tag = document.createElement("li");
var text = document.createTextNode(dirtree[0]);
tag.appendChild(text);
tag.style.fontWeight = "bold";
dirtreeul[dirtreeul.length - this.hloubka].appendChild(tag);
if (dirtree.length > 1) {
var newul = document.createElement("ul");
tag.parentElement.append(newul);
for (let i = 1; i < dirtree.length; i++) {
if (Array.isArray(dirtree[i])) {
this.showDirTree(dirtree[i]);
}else{
var tag = document.createElement("li");
var text = document.createTextNode(dirtree[i]);
tag.appendChild(text)
newul.appendChild(tag)
}
}
this.hloubka++;
}
/*if(dirtree.length > 1) {
var tag = document.createElement("li");
var text = document.createTextNode(dirtree[0]);
tag.appendChild(text);
tag.style.fontWeight = "bold"
mainul.appendChild(tag);
var newul = document.createElement("ul");
tag.parentElement.append(newul);
for (let i = 1; i < dirtree.length; i++) {
var tag = document.createElement("li");
var text = document.createTextNode(dirtree[i]);
tag.appendChild(text);
newul.appendChild(tag);
}
}else{
var tag = document.createElement("li");
var text = document.createTextNode(dirtree[0]);
tag.appendChild(text);
mainul.appendChild(tag);
}*/
/*for (let i = 1; i < dirtree.length; i++) {
var tag = document.createElement("li");
var text = document.createTextNode(dirtree[i][0]);
tag.appendChild(text);
mainul.appendChild(tag);
if(dirtree[i].length > 1) {
//this.showDir(dirtree[i])
var newul = document.createElement("ul")
tag.parentElement.append(newul)
for (let i = 1; i < dirtree.length; i++) {
var tag = document.createElement("li");
var text = document.createTextNode(dirtree[i]);
tag.appendChild(text);
newul.appendChild(tag);
}
}
}*/
}
}