1 | <!DOCTYPE html>
|
---|
2 | <html>
|
---|
3 | <head>
|
---|
4 | <meta charset='utf-8'>
|
---|
5 | <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
---|
6 | <title>listing directory {directory}</title>
|
---|
7 | <style>{style}</style>
|
---|
8 | <script>
|
---|
9 | function $(id){
|
---|
10 | var el = 'string' == typeof id
|
---|
11 | ? document.getElementById(id)
|
---|
12 | : id;
|
---|
13 |
|
---|
14 | el.on = function(event, fn){
|
---|
15 | if ('content loaded' == event) {
|
---|
16 | event = window.attachEvent ? "load" : "DOMContentLoaded";
|
---|
17 | }
|
---|
18 | el.addEventListener
|
---|
19 | ? el.addEventListener(event, fn, false)
|
---|
20 | : el.attachEvent("on" + event, fn);
|
---|
21 | };
|
---|
22 |
|
---|
23 | el.all = function(selector){
|
---|
24 | return $(el.querySelectorAll(selector));
|
---|
25 | };
|
---|
26 |
|
---|
27 | el.each = function(fn){
|
---|
28 | for (var i = 0, len = el.length; i < len; ++i) {
|
---|
29 | fn($(el[i]), i);
|
---|
30 | }
|
---|
31 | };
|
---|
32 |
|
---|
33 | el.getClasses = function(){
|
---|
34 | return this.getAttribute('class').split(/\s+/);
|
---|
35 | };
|
---|
36 |
|
---|
37 | el.addClass = function(name){
|
---|
38 | var classes = this.getAttribute('class');
|
---|
39 | el.setAttribute('class', classes
|
---|
40 | ? classes + ' ' + name
|
---|
41 | : name);
|
---|
42 | };
|
---|
43 |
|
---|
44 | el.removeClass = function(name){
|
---|
45 | var classes = this.getClasses().filter(function(curr){
|
---|
46 | return curr != name;
|
---|
47 | });
|
---|
48 | this.setAttribute('class', classes.join(' '));
|
---|
49 | };
|
---|
50 |
|
---|
51 | return el;
|
---|
52 | }
|
---|
53 |
|
---|
54 | function search() {
|
---|
55 | var str = $('search').value.toLowerCase();
|
---|
56 | var links = $('files').all('a');
|
---|
57 |
|
---|
58 | links.each(function(link){
|
---|
59 | var text = link.textContent.toLowerCase();
|
---|
60 |
|
---|
61 | if ('..' == text) return;
|
---|
62 | if (str.length && ~text.indexOf(str)) {
|
---|
63 | link.addClass('highlight');
|
---|
64 | } else {
|
---|
65 | link.removeClass('highlight');
|
---|
66 | }
|
---|
67 | });
|
---|
68 | }
|
---|
69 |
|
---|
70 | $(window).on('content loaded', function(){
|
---|
71 | $('search').on('keyup', search);
|
---|
72 | });
|
---|
73 | </script>
|
---|
74 | </head>
|
---|
75 | <body class="directory">
|
---|
76 | <input id="search" type="text" placeholder="Search" autocomplete="off" />
|
---|
77 | <div id="wrapper">
|
---|
78 | <h1><a href="/">~</a>{linked-path}</h1>
|
---|
79 | {files}
|
---|
80 | </div>
|
---|
81 | </body>
|
---|
82 | </html> |
---|