videomail-client
Version:
A wicked npm package to record videos directly in the browser, wohooo!
475 lines (458 loc) • 13.8 kB
HTML
<html>
<head>
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"
/>
<title>listing directory /</title>
<style>
* {
margin: 0;
padding: 0;
outline: 0;
}
body {
padding: 80px 100px;
font: 13px 'Helvetica Neue', 'Lucida Grande', 'Arial';
background: #ece9e9 -webkit-gradient(linear, 0% 0%, 0% 100%, from(#fff), to(#ece9e9));
background: #ece9e9 -moz-linear-gradient(top, #fff, #ece9e9);
background-repeat: no-repeat;
color: #555;
-webkit-font-smoothing: antialiased;
}
h1,
h2,
h3 {
font-size: 22px;
color: #343434;
}
h1 em,
h2 em {
padding: 0 5px;
font-weight: normal;
}
h1 {
font-size: 60px;
}
h2 {
margin-top: 10px;
}
h3 {
margin: 5px 0 10px 0;
padding-bottom: 5px;
border-bottom: 1px solid #eee;
font-size: 18px;
}
ul li {
list-style: none;
}
ul li:hover {
cursor: pointer;
color: #2e2e2e;
}
ul li .path {
padding-left: 5px;
font-weight: bold;
}
ul li .line {
padding-right: 5px;
font-style: italic;
}
ul li:first-child .path {
padding-left: 0;
}
p {
line-height: 1.5;
}
a {
color: #555;
text-decoration: none;
}
a:hover {
color: #303030;
}
#stacktrace {
margin-top: 15px;
}
.directory h1 {
margin-bottom: 15px;
font-size: 18px;
}
ul#files {
width: 100%;
height: 100%;
overflow: hidden;
}
ul#files li {
float: left;
width: 30%;
line-height: 25px;
margin: 1px;
}
ul#files li a {
display: block;
height: 25px;
border: 1px solid transparent;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
overflow: hidden;
white-space: nowrap;
}
ul#files li a:focus,
ul#files li a:hover {
background: rgba(255, 255, 255, 0.65);
border: 1px solid #ececec;
}
ul#files li a.highlight {
-webkit-transition: background 0.4s ease-in-out;
background: #ffff4f;
border-color: #e9dc51;
}
#search {
display: block;
position: fixed;
top: 20px;
right: 20px;
width: 90px;
-webkit-transition: width ease 0.2s, opacity ease 0.4s;
-moz-transition: width ease 0.2s, opacity ease 0.4s;
-webkit-border-radius: 32px;
-moz-border-radius: 32px;
-webkit-box-shadow: inset 0px 0px 3px rgba(0, 0, 0, 0.25),
inset 0px 1px 3px rgba(0, 0, 0, 0.7), 0px 1px 0px rgba(255, 255, 255, 0.03);
-moz-box-shadow: inset 0px 0px 3px rgba(0, 0, 0, 0.25),
inset 0px 1px 3px rgba(0, 0, 0, 0.7), 0px 1px 0px rgba(255, 255, 255, 0.03);
-webkit-font-smoothing: antialiased;
text-align: left;
font: 13px 'Helvetica Neue', Arial, sans-serif;
padding: 4px 10px;
border: none;
background: transparent;
margin-bottom: 0;
outline: none;
opacity: 0.7;
color: #888;
}
#search:focus {
width: 120px;
opacity: 1;
}
/*views*/
#files span {
display: inline-block;
overflow: hidden;
text-overflow: ellipsis;
text-indent: 10px;
}
#files .name {
background-repeat: no-repeat;
}
#files .icon .name {
text-indent: 28px;
}
/*tiles*/
.view-tiles .name {
width: 100%;
background-position: 8px 5px;
}
.view-tiles .size,
.view-tiles .date {
display: none;
}
/*details*/
ul#files.view-details li {
float: none;
display: block;
width: 90%;
}
ul#files.view-details li.header {
height: 25px;
background: #000;
color: #fff;
font-weight: bold;
}
.view-details .header {
border-radius: 5px;
}
.view-details .name {
width: 60%;
background-position: 8px 5px;
}
.view-details .size {
width: 10%;
}
.view-details .date {
width: 30%;
}
.view-details .size,
.view-details .date {
text-align: right;
direction: rtl;
}
/*mobile*/
@media (max-width: 768px) {
body {
font-size: 13px;
line-height: 16px;
padding: 0;
}
#search {
position: static;
width: 100%;
font-size: 2em;
line-height: 1.8em;
text-indent: 10px;
border: 0;
border-radius: 0;
padding: 10px 0;
margin: 0;
}
#search:focus {
width: 100%;
border: 0;
opacity: 1;
}
.directory h1 {
font-size: 2em;
line-height: 1.5em;
color: #fff;
background: #000;
padding: 15px 10px;
margin: 0;
}
ul#files {
border-top: 1px solid #cacaca;
}
ul#files li {
float: none;
width: auto ;
display: block;
border-bottom: 1px solid #cacaca;
font-size: 2em;
line-height: 1.2em;
text-indent: 0;
margin: 0;
}
ul#files li:nth-child(odd) {
background: #e0e0e0;
}
ul#files li a {
height: auto;
border: 0;
border-radius: 0;
padding: 15px 10px;
}
ul#files li a:focus,
ul#files li a:hover {
border: 0;
}
#files .header,
#files .size,
#files .date {
display: none ;
}
#files .name {
float: none;
display: inline-block;
width: 100%;
text-indent: 0;
background-position: 0 50%;
}
#files .icon .name {
text-indent: 41px;
}
}
</style>
<script>
function $(id) {
var 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 (var i = 0, len = el.length; i < len; ++i) {
fn($(el[i]), i)
}
}
el.getClasses = function () {
return this.getAttribute('class').split(/\s+/)
}
el.addClass = function (name) {
var classes = this.getAttribute('class')
el.setAttribute('class', classes ? classes + ' ' + name : name)
}
el.removeClass = function (name) {
var classes = this.getClasses().filter(function (curr) {
return curr != name
})
this.setAttribute('class', classes.join(' '))
}
return el
}
function search() {
var str = $('search').value.toLowerCase()
var links = $('files').all('a')
links.each(function (link) {
var 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">
<input id="search" type="text" placeholder="Search" autocomplete="off" />
<div id="wrapper">
<h1><a href="/">~</a> /</h1>
<ul id="files" class="view-tiles">
<li>
<a href="/img" class="" title="img"
><span class="name">img</span><span class="size"></span
><span class="date">2016-7-11 12:07:44</span></a
>
</li>
<li>
<a href="/js" class="" title="js"
><span class="name">js</span><span class="size"></span
><span class="date">2019-9-13 11:11:53</span></a
>
</li>
<li>
<a href="/bad_browser.html" class="" title="bad_browser.html"
><span class="name">bad_browser.html</span><span class="size">685</span
><span class="date">2019-9-13 11:11:53</span></a
>
</li>
<li>
<a href="/bad_ios.html" class="" title="bad_ios.html"
><span class="name">bad_ios.html</span><span class="size">967</span
><span class="date">2019-9-13 11:11:53</span></a
>
</li>
<li>
<a href="/contact_form.html" class="" title="contact_form.html"
><span class="name">contact_form.html</span><span class="size">4420</span
><span class="date">2019-9-13 11:11:53</span></a
>
</li>
<li>
<a
href="/correct_existing_videomail.html"
class=""
title="correct_existing_videomail.html"
><span class="name">correct_existing_videomail.html</span
><span class="size">4648</span><span class="date">2019-9-13 11:11:53</span></a
>
</li>
<li>
<a
href="/correct_non_existing_videomail.html"
class=""
title="correct_non_existing_videomail.html"
><span class="name">correct_non_existing_videomail.html</span
><span class="size">2313</span><span class="date">2019-9-13 11:11:53</span></a
>
</li>
<li>
<a href="/direct_submit.html" class="" title="direct_submit.html"
><span class="name">direct_submit.html</span><span class="size">2145</span
><span class="date">2019-9-13 11:11:53</span></a
>
</li>
<li>
<a href="/entertain.html" class="" title="entertain.html"
><span class="name">entertain.html</span><span class="size">1904</span
><span class="date">2019-9-13 11:11:53</span></a
>
</li>
<li>
<a href="/experimental_audio.html" class="" title="experimental_audio.html"
><span class="name">experimental_audio.html</span
><span class="size">1068</span><span class="date">2019-9-13 11:11:53</span></a
>
</li>
<li>
<a href="/facing_mode_button.html" class="" title="facing_mode_button.html"
><span class="name">facing_mode_button.html</span><span class="size">796</span
><span class="date">2019-9-13 11:11:53</span></a
>
</li>
<li>
<a href="/form_without_email.html" class="" title="form_without_email.html"
><span class="name">form_without_email.html</span
><span class="size">2874</span><span class="date">2019-9-13 11:11:53</span></a
>
</li>
<li>
<a href="/high_quality.html" class="" title="high_quality.html"
><span class="name">high_quality.html</span><span class="size">1037</span
><span class="date">2019-9-13 11:11:53</span></a
>
</li>
<li>
<a href="/invalid_site_name.html" class="" title="invalid_site_name.html"
><span class="name">invalid_site_name.html</span><span class="size">1293</span
><span class="date">2019-9-13 11:11:53</span></a
>
</li>
<li>
<a href="/player_only.html" class="" title="player_only.html"
><span class="name">player_only.html</span><span class="size">3637</span
><span class="date">2019-9-13 11:11:53</span></a
>
</li>
<li>
<a href="/predefined.html" class="" title="predefined.html"
><span class="name">predefined.html</span><span class="size">2257</span
><span class="date">2019-9-13 11:11:53</span></a
>
</li>
<li>
<a href="/simple_jpegs.html" class="" title="simple_jpegs.html"
><span class="name">simple_jpegs.html</span><span class="size">840</span
><span class="date">2019-9-13 11:11:53</span></a
>
</li>
<li>
<a href="/simple.html" class="" title="simple.html"
><span class="name">simple.html</span><span class="size">546</span
><span class="date">2019-9-13 11:11:53</span></a
>
</li>
<li>
<a href="/with_cc_and_bcc.html" class="" title="with_cc_and_bcc.html"
><span class="name">with_cc_and_bcc.html</span><span class="size">1104</span
><span class="date">2022-11-15 11:11:53</span></a
>
</li>
<li>
<a
href="/videomail_optional_form.html"
class=""
title="videomail_optional_form.html"
><span class="name">videomail_optional_form.html</span
><span class="size">2710</span><span class="date">2019-9-13 11:11:53</span></a
>
</li>
</ul>
</div>
</body>
</html>