some bug fixes

This commit is contained in:
Henrique Dias
2016-06-14 20:33:59 +01:00
parent e137f46169
commit d6c81ec07d
11 changed files with 156 additions and 124 deletions

View File

@@ -578,6 +578,10 @@ header h1 {
margin: 0;
font-size: 2em;
}
header a,
header a:hover {
color: inherit;
}
header p {
font-size: 1.5em;
}

View File

@@ -2,6 +2,13 @@
var selectedItems = [];
Array.prototype.removeElement = function(element) {
var i = this.indexOf(element);
if (i != -1) {
this.splice(i, 1);
}
}
document.addEventListener("DOMContentLoaded", function(event) {
var items = document.getElementsByClassName('item');
Array.from(items).forEach(link => {
@@ -12,10 +19,7 @@ document.addEventListener("DOMContentLoaded", function(event) {
selectedItems.push(url);
} else {
link.classList.remove('selected');
var i = selectedItems.indexOf(url);
if (i != -1) {
selectedItems.splice(i, 1);
}
selectedItems.removeElement(url);
}
var event = new CustomEvent('changed-selected');
@@ -24,49 +28,69 @@ document.addEventListener("DOMContentLoaded", function(event) {
});
});
document.getElementById("back").addEventListener("click", backEvent);
document.getElementById("open").addEventListener("click", openEvent);
if (document.getElementById("back")) {
document.getElementById("back").addEventListener("click", backEvent)
};
document.getElementById("delete").addEventListener("click", deleteEvent);
document.getElementById("download").addEventListener("click", downloadEvent);
return false;
});
var backEvent = function(event) {
var items = document.getElementsByClassName('item');
Array.from(items).forEach(link => {
link.classList.remove('selected');
});
selectedItems = [];
var openEvent = function(event) {
if (selectedItems.length) {
var event = new CustomEvent('changed-selected');
document.dispatchEvent(event);
return false;
return false;
}
window.open(window.location + "?raw=true");
return false;
}
var backEvent = function(event) {
var items = document.getElementsByClassName('item');
Array.from(items).forEach(link => {
link.classList.remove('selected');
});
selectedItems = [];
var event = new CustomEvent('changed-selected');
document.dispatchEvent(event);
return false;
}
var deleteEvent = function(event) {
Array.from(selectedItems).forEach(item => {
var request = new XMLHttpRequest();
request.open("DELETE", item);
request.send();
request.onreadystatechange = function() {
if (request.readyState == 4) {
if (request.status != 200) {
alert("something wrong happened!");
return false;
}
Array.from(selectedItems).forEach(item => {
var request = new XMLHttpRequest();
request.open("DELETE", item);
request.send();
request.onreadystatechange = function() {
if (request.readyState == 4) {
if (request.status != 200) {
alert("something wrong happened!");
return false;
}
alert(item + " deleted");
// Add removing animation
}
}
});
return false;
selectedItems.removeElement(item);
alert(item + " deleted");
// Add removing animation
}
}
});
return false;
}
var downloadEvent = function(event) {
Array.from(selectedItems).forEach(item => {
window.open(item + "?download=true");
});
return false;
if (selectedItems.length) {
Array.from(selectedItems).forEach(item => {
window.open(item + "?download=true");
});
return false;
}
window.open(window.location + "?download=true");
return false;
}
document.addEventListener("changed-selected", function(event) {

View File

@@ -0,0 +1,8 @@
{{ define "actions" }}
<div>
<div class="action" id="open"><i class="material-icons">open_in_new</i></div>
<div class="action" id="rename"><i class="material-icons">mode_edit</i></div>
<div class="action" id="download"><i class="material-icons">file_download</i></div>
<div class="action" id="delete"><i class="material-icons">delete</i></div>
</div>
{{ end }}

View File

@@ -13,31 +13,32 @@
<header>
<div>
{{ $lnk := .PreviousLink }}
{{ if ne $lnk ""}}<a href="../../{{.PreviousLink}}"><div class="action" id="prev"><i class="material-icons">subdirectory_arrow_left</i></div></a>{{ else }}
{{ if ne $lnk ""}}<a href="{{ if eq $lnk "/" }}/{{else }}../../{{.PreviousLink}}{{ end }}"><div class="action" id="prev"><i class="material-icons">subdirectory_arrow_left</i></div></a>{{ else }}
<div class="action disabled" id="prev"><i class="material-icons">subdirectory_arrow_left</i></div>{{ end }}
<p><a href="{{ if eq .Config.BaseURL "" }}/{{ else }}{{ .Config.BaseURL }}{{ end }}">File Manager</a> {{ if ne .Name "."}}<i class="material-icons">chevron_right</i> {{ .Name }}</p>{{ end }}
<p><a href="{{ if eq .Config.BaseURL "" }}/{{ else }}{{ .Config.BaseURL }}{{ end }}">File Manager</a> {{ if ne .Name "/"}}<i class="material-icons">chevron_right</i> {{ .Name }}</p>{{ end }}
</div>
{{ if .IsDir}}
<div>
<form>
<i class="material-icons">search</i> <input type="text" placeholder="Search">
</form>
<div class="action" id="view"><i class="material-icons">view_comfy</i></div>
<div class="action" id="view"><i class="material-icons">view_headline</i></div>
<div class="action" id="upload"><i class="material-icons">file_upload</i></div>
</div>
{{ else }}
{{ template "actions" . }}
{{ end }}
</header>
{{ if .IsDir }}
<div id="toolbar">
<div>
<div class="action" id="back"><i class="material-icons">arrow_back</i></div>
<p><span id="selected-number">0</span> selected.</p>
</div>
<div>
<div class="action" id="open"><i class="material-icons">open_in_new</i></div>
<div class="action" id="rename"><i class="material-icons">mode_edit</i></div>
<div class="action" id="download"><i class="material-icons">file_download</i></div>
<div class="action" id="delete"><i class="material-icons">delete</i></div>
</div>
{{ template "actions" . }}
</div>
{{ end }}
<main>
{{ template "content" .Data }}

View File

@@ -24,64 +24,5 @@
</div>
{{- end}}
</div>
<!--
<table class="container" aria-describedby="summary">
<thead>
<tr>
<th>
{{- if and (eq .Sort "name") (ne .Order "desc")}}
<a href="?sort=name&order=desc{{if ne 0 .ItemsLimitedTo}}&limit={{.ItemsLimitedTo}}{{end}}">Name <svg width="1em" height=".4em" version="1.1" viewBox="0 0 12.922194 6.0358899"><use xlink:href="#up-arrow"></use></svg></a>
{{- else if and (eq .Sort "name") (ne .Order "asc")}}
<a href="?sort=name&order=asc{{if ne 0 .ItemsLimitedTo}}&limit={{.ItemsLimitedTo}}{{end}}">Name <svg width="1em" height=".4em" version="1.1" viewBox="0 0 12.922194 6.0358899"><use xlink:href="#down-arrow"></use></svg></a>
{{- else}}
<a href="?sort=name&order=asc{{if ne 0 .ItemsLimitedTo}}&limit={{.ItemsLimitedTo}}{{end}}">Name</a>
{{- end}}
</th>
<th>
{{- if and (eq .Sort "size") (ne .Order "desc")}}
<a href="?sort=size&order=desc{{if ne 0 .ItemsLimitedTo}}&limit={{.ItemsLimitedTo}}{{end}}">Size <svg width="1em" height=".4em" version="1.1" viewBox="0 0 12.922194 6.0358899"><use xlink:href="#up-arrow"></use></svg></a>
{{- else if and (eq .Sort "size") (ne .Order "asc")}}
<a href="?sort=size&order=asc{{if ne 0 .ItemsLimitedTo}}&limit={{.ItemsLimitedTo}}{{end}}">Size <svg width="1em" height=".4em" version="1.1" viewBox="0 0 12.922194 6.0358899"><use xlink:href="#down-arrow"></use></svg></a>
{{- else}}
<a href="?sort=size&order=asc{{if ne 0 .ItemsLimitedTo}}&limit={{.ItemsLimitedTo}}{{end}}">Size</a>
{{- end}}
</th>
<th class="hideable">
{{- if and (eq .Sort "time") (ne .Order "desc")}}
<a href="?sort=time&order=desc{{if ne 0 .ItemsLimitedTo}}&limit={{.ItemsLimitedTo}}{{end}}">Modified <svg width="1em" height=".4em" version="1.1" viewBox="0 0 12.922194 6.0358899"><use xlink:href="#up-arrow"></use></svg></a>
{{- else if and (eq .Sort "time") (ne .Order "asc")}}
<a href="?sort=time&order=asc{{if ne 0 .ItemsLimitedTo}}&limit={{.ItemsLimitedTo}}{{end}}">Modified <svg width="1em" height=".4em" version="1.1" viewBox="0 0 12.922194 6.0358899"><use xlink:href="#down-arrow"></use></svg></a>
{{- else}}
<a href="?sort=time&order=asc{{if ne 0 .ItemsLimitedTo}}&limit={{.ItemsLimitedTo}}{{end}}">Modified</a>
{{- end}}
</th>
</tr>
</thead>
<tbody>
{{- range .Items}}
<tr>
<td>
<a href="{{.URL}}">
{{- if .IsDir}}
<i class="material-icons">folder</i>
{{- else}}
<i class="material-icons">insert_drive_file</i>
{{- end}}
<span class="name">{{.Name}}</span>
</a>
</td>
{{- if .IsDir}}
<td data-order="-1">&mdash;</td>
{{- else}}
<td data-order="{{.Size}}">{{.HumanSize}}</td>
{{- end}}
<td class="hideable"><time datetime="{{.HumanModTime "2006-01-02T15:04:05Z"}}">{{.HumanModTime "01/02/2006 03:04:05 PM -07:00"}}</time></td>
</tr>
{{- end}}
</tbody>
</table> -->
</div>
{{ end }}

View File

@@ -3,9 +3,9 @@
<main class="container">
{{ if eq .Type "image" }}
<img src="{{.Base64}}">
<img src="{{ .URL }}?raw=true">
{{ else if eq .Type "audio" }}
<audio src="{{.Base64}}">
<audio src="{{ .URL }}?raw=true">
</audio>
{{ else if eq .Type "video" }}