Initial state of the file manager app
parent
5f6ebb5cc1
commit
ce9eb47351
@ -0,0 +1,41 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta content="text/html; charset=utf-8" http-equiv="content-type"/>
|
||||||
|
<link rel="icon" type="image/png"
|
||||||
|
href="/customize/main-favicon.png"
|
||||||
|
data-main-favicon="/customize/main-favicon.png"
|
||||||
|
data-alt-favicon="/customize/alt-favicon.png"
|
||||||
|
id="favicon" />
|
||||||
|
<link rel="stylesheet" href="/customize/main.css" />
|
||||||
|
<script data-main="main" src="/bower_components/requirejs/require.js"></script>
|
||||||
|
<script>
|
||||||
|
require.config({
|
||||||
|
waitSeconds: 60,
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
html, body {
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
#pad-iframe {
|
||||||
|
position:fixed;
|
||||||
|
top:0px;
|
||||||
|
left:0px;
|
||||||
|
bottom:0px;
|
||||||
|
right:0px;
|
||||||
|
width:100%;
|
||||||
|
height:100%;
|
||||||
|
border:none;
|
||||||
|
margin:0;
|
||||||
|
padding:0;
|
||||||
|
overflow:hidden;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<iframe id="pad-iframe" src="inner.html"></iframe>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,54 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta content="text/html; charset=utf-8" http-equiv="content-type"/>
|
||||||
|
<link rel="stylesheet" href="/bower_components/components-font-awesome/css/font-awesome.min.css">
|
||||||
|
<script src="/bower_components/jquery/dist/jquery.min.js"></script>
|
||||||
|
<style>
|
||||||
|
html, body {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
#tree {
|
||||||
|
position:absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
right: 70%;
|
||||||
|
border: 2px solid blue;
|
||||||
|
box-sizing: border-box;
|
||||||
|
background: white;
|
||||||
|
}
|
||||||
|
#tree li {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
#tree li span:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
#content {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 30%;
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
border: 2px solid green;
|
||||||
|
box-sizing: border-box;
|
||||||
|
background: #eee;
|
||||||
|
}
|
||||||
|
.folder, .file {
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="tree">
|
||||||
|
</div>
|
||||||
|
<div id="content">
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,99 @@
|
|||||||
|
require.config({ paths: { 'json.sortify': '/bower_components/json.sortify/dist/JSON.sortify' } });
|
||||||
|
define([
|
||||||
|
'/customize/messages.js?app=pad',
|
||||||
|
'/bower_components/chainpad-crypto/crypto.js',
|
||||||
|
'/bower_components/chainpad-netflux/chainpad-netflux.js',
|
||||||
|
'/bower_components/hyperjson/hyperjson.js',
|
||||||
|
'/common/toolbar.js',
|
||||||
|
'/common/cursor.js',
|
||||||
|
'/bower_components/chainpad-json-validator/json-ot.js',
|
||||||
|
'/common/TypingTests.js',
|
||||||
|
'json.sortify',
|
||||||
|
'/bower_components/textpatcher/TextPatcher.amd.js',
|
||||||
|
'/common/cryptpad-common.js',
|
||||||
|
'/common/visible.js',
|
||||||
|
'/common/notify.js',
|
||||||
|
'/bower_components/file-saver/FileSaver.min.js',
|
||||||
|
'/bower_components/diff-dom/diffDOM.js',
|
||||||
|
'/bower_components/jquery/dist/jquery.min.js',
|
||||||
|
'/customize/pad.js'
|
||||||
|
], function (Messages, Crypto, realtimeInput, Hyperjson,
|
||||||
|
Toolbar, Cursor, JsonOT, TypingTest, JSONSortify, TextPatcher, Cryptpad,
|
||||||
|
Visible, Notify) {
|
||||||
|
var $ = window.jQuery;
|
||||||
|
var saveAs = window.saveAs;
|
||||||
|
var $iframe = $('#pad-iframe').contents();
|
||||||
|
var ifrw = $('#pad-iframe')[0].contentWindow;
|
||||||
|
var files = {
|
||||||
|
root: {
|
||||||
|
"Directory 1": {
|
||||||
|
"Dir A": {
|
||||||
|
"File a": "#hash_a",
|
||||||
|
"File b": "#hash_b"
|
||||||
|
},
|
||||||
|
"Dir B": {},
|
||||||
|
"File A": "#hash_A"
|
||||||
|
},
|
||||||
|
"Directory 2": {
|
||||||
|
"File B": "#hash_B",
|
||||||
|
"File C": "#hash_C"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
trash: {
|
||||||
|
"File Z": "#hash_Z"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var $tree = $iframe.find("#tree");
|
||||||
|
var $content = $iframe.find("#content");
|
||||||
|
var $folderIcon = $('<span>', {
|
||||||
|
"class": "fa fa-folder folder",
|
||||||
|
style: "font-family: FontAwesome"
|
||||||
|
});
|
||||||
|
var $fileIcon = $('<span>', {
|
||||||
|
"class": "fa fa-file file",
|
||||||
|
style: "font-family: FontAwesome"
|
||||||
|
});
|
||||||
|
|
||||||
|
var displayDirectory = function (name, root) {
|
||||||
|
$content.html("");
|
||||||
|
var $title = $('<h1>').text(name);
|
||||||
|
var $dirContent = $('<div>', {id: "folderContent"});
|
||||||
|
var $list = $('<ul>').appendTo($dirContent);
|
||||||
|
// display sub directories
|
||||||
|
Object.keys(root).forEach(function (key) {
|
||||||
|
if (typeof(root[key]) === "string") { return; }
|
||||||
|
var $name = $('<span>').text(key).prepend($folderIcon.clone());
|
||||||
|
var $element = $('<li>').append($name).click(function () {
|
||||||
|
displayDirectory(key, root[key]);
|
||||||
|
});
|
||||||
|
$element.appendTo($list);
|
||||||
|
});
|
||||||
|
// display files
|
||||||
|
Object.keys(root).forEach(function (key) {
|
||||||
|
if (typeof(root[key]) !== "string") { return; }
|
||||||
|
var $name = $('<span>').text(key).prepend($fileIcon.clone());
|
||||||
|
var $element = $('<li>').append($name).click(function () {
|
||||||
|
window.location.hash = root[key];
|
||||||
|
});
|
||||||
|
$element.appendTo($list);
|
||||||
|
});
|
||||||
|
$content.append($title).append($dirContent);
|
||||||
|
};
|
||||||
|
|
||||||
|
var createTree = function (root, $container) {
|
||||||
|
if (Object.keys(root).length === 0) { return; }
|
||||||
|
var $list = $('<ul>').appendTo($container);
|
||||||
|
Object.keys(root).forEach(function (key) {
|
||||||
|
// Do not display files in the menu
|
||||||
|
if (typeof(root[key]) === "string") { return; }
|
||||||
|
var $name = $('<span>').text(key).click(function () {
|
||||||
|
displayDirectory(key, root[key]);
|
||||||
|
});
|
||||||
|
var $element = $('<li>').append($name);
|
||||||
|
$element.appendTo($list);
|
||||||
|
createTree(root[key], $element[0]);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
createTree(files.root, $tree);
|
||||||
|
});
|
Loading…
Reference in New Issue