@ui5/server
Version:
UI5 CLI - Server
83 lines (71 loc) • 1.95 kB
HTML
<html lang="en">
<head>
<meta charset='utf-8'>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title>Index of {directory}</title>
<style>{style}</style>
<script>
function $(id) {
const el = "string" == typeof id
? document.getElementById(id)
: id;
el.on = function(event, fn) {
if ("content loaded" === event) {
event = window.attachEvent ? "load" : "DOMContentLoaded";
}
el.addEventListener
? el.addEventListener(event, fn, false)
: el.attachEvent("on" + event, fn);
};
el.all = function(selector) {
return $(el.querySelectorAll(selector));
};
el.each = function(fn) {
for (let i = 0; i < el.length; ++i) {
fn($(el[i]), i);
}
};
el.getClasses = function() {
return this.getAttribute("class").split(/\s+/);
};
el.addClass = function(name) {
const classes = this.getAttribute("class");
el.setAttribute("class", classes
? classes + " " + name
: name);
};
el.removeClass = function(name) {
const classes = this.getClasses().filter(function(curr) {
return curr !== name;
});
this.setAttribute("class", classes.join(" "));
};
return el;
}
function search() {
let str = $("search").value.toLowerCase();
let links = $("files").all("a");
links.each(function(link) {
let text = link.textContent.toLowerCase();
if (".." === text) return;
if (str.length && ~text.indexOf(str)) {
link.addClass("highlight");
} else {
link.removeClass("highlight");
}
});
}
$(window).on("content loaded", function() {
$("search").on("keyup", search);
});
</script>
</head>
<body class="directory">
<label for="search"></label><input id="search" type="text" placeholder="Search" autocomplete="off"/>
<div id="wrapper">
<h1><a href="/">~</a>{linked-path}</h1>
{files}
</div>
</body>
</html>