106
{{ define "index" }}
<!DOCTYPE html>
<html>
<head>
{{ if .Path }}
<title>{{ .Path }}</title>
{{ else }}
{{ if .Upload }}
<title>Upload</title>
{{ else }}
<title>Error</title>
{{ end }}
{{ end }}
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
:root{
color:white;
background: #262833;
@media (max-width: 2000px) and (min-width: 1500px) {
font-size: 100%;
}
@media (max-width: 1500px) and (min-width: 1200px) {
font-size: 85%;
}
@media (max-width: 1200px) and (min-width: 800px) {
font-size: 75%;
}
@media (max-width: 800px) and (min-width: 600px) {
font-size: 70%;
}
@media (max-width: 600px) and (min-width: 400px) {
font-size: 65%;
}
@media (max-width: 400px) {
font-size: 60%;
}
}
body {
width: 90ch;
max-width: calc(100% - 2ch);
margin: 0 auto 0 auto;
font-family: sans-serif;
}
.trees > a {
text-decoration: none;
display:contents;
color: unset;
}
.filelabel {
padding: 1em;
margin: 0;
display: grid;
grid-template-columns: 2ch calc(60% - 4em - 2ch) max(15ch,20%) max(15ch,20%);
justify-content: space-between;
align-items: center;
border-radius: 1em;
margin-bottom: .5lh;
}
.filelabel:hover {background: #2c2e46;}
.right{text-align: right;}
@font-face{
font-family: "sophuwuicons";
src: url("data:font/ttf;base64,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") format("truetype");
}
.icon {
font-family: "sophuwuicons";
font-size: 2rem;
}
</style>
</head>
<body>
{{ if .Path }}
<h1>Index of: {{ .Path }}</h1>
<div class="trees">
{{ range .Dirs }}
{{ template "filelabel" . }}
{{ end }}
{{ range .Items }}
{{ template "filelabel" . }}
{{ end }}
</div>
{{ else }}
{{ if .Error }}
<h1>{{ .Error }}</h1>
{{ else }}
{{ if .Upload }}
<h1>Upload</h1>
<form class="trees" enctype="multipart/form-data" action="{{ .Upload }}" method="post">
<div class="filelabel"><span>Path:</span><input type="text" name="path" /></div>
<div class="filelabel"><span>File:</span><input type="file" name="myFile" /></div>
<div class="filelabel"><span>Username:</span><input type="text" name="username" /></div>
<div class="filelabel"><span>Password:</span><input type="password" name="password" /></div>
<div class="filelabel"><span>OTP:</span><input type="text" name="otp" /></div>
<div class="filelabel"><span></span><input type="submit" value="Upload" /></div>
</form>
{{ end }}
{{ end }}
{{ end }}
</body>
</html>
{{ end }}