add clone functionality

master
David Zálešák 4 years ago
parent 62cb680181
commit 77352b3c10

@ -42,7 +42,6 @@
<script src="js/model.js"></script>
<script src="js/view.js"></script>
<script src="js/controller.js"></script>
<script type="text/javascript" src="http://livejs.com/live.js"></script>
</body>
</html>

@ -7,18 +7,26 @@ class Controller {
var cloneBtn = document.getElementsByClassName("clone")[0];
var purgeBtn = document.getElementsByClassName("purge")[0];
cloneBtn.addEventListener("click", function () {
console.log("clone");
});
cloneBtn.addEventListener("click", this.cloneRep.bind(this));
purgeBtn.addEventListener("click", this.purgeFS.bind(this));
}
purgeFS() {
this.model.purgeFS();
//this.drawDirTree(this.view);
//window.location.reload();
this.redrawDirTree(this.view);
}
cloneRep(repurl) {
var that = this;
this.model.cloneRep().then(
function (value) {
that.redrawDirTree(that.view);
},
function (error) {}
);
}
redrawDirTree(view) {
this.model.dirTree().then(
function (value) {

@ -1,3 +1,3 @@
import http from "https://unpkg.com/isomorphic-git@beta/http/web/index.js";
const app = new Controller(new Model(), new View());
const app = new Controller(new Model(http), new View());

@ -1,11 +1,13 @@
class Model {
constructor() {
constructor(http) {
// 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";
window.dir = "/";
window.http = http;
}
async dirList(dir = "/") {
@ -36,7 +38,6 @@ class Model {
async dirTree(dir = "/") {
var tree = await this.dirList(dir);
//console.log(tree);
return tree;
}
@ -44,4 +45,14 @@ class Model {
delete window.fs;
window.fs = new LightningFS("fs", { wipe: true });
}
async cloneRep() {
await git.clone({
fs,
http,
dir,
url: "https://git.microlab.space/microlab/website.git",
corsProxy: "https://cors.isomorphic-git.org",
});
}
}

@ -31,8 +31,9 @@ class View {
removeDirTree() {
let mainul = document.getElementsByTagName("ul")[0];
if (mainul !== undefined) {
mainul.firstChild.remove();
while (mainul.firstChild) {
mainul.lastChild.remove();
}
this.hloubka = 1;
}
}