package master_ui import ( "github.com/dustin/go-humanize" "html/template" "net/url" "strings" ) func printpath(parts ...string) string { concat := strings.Join(parts, "") escaped := url.PathEscape(concat) return strings.ReplaceAll(escaped, "%2F", "/") } var funcMap = template.FuncMap{ "humanizeBytes": humanize.Bytes, "printpath": printpath, } var StatusTpl = template.Must(template.New("status").Funcs(funcMap).Parse(` SeaweedFS Filer
{{ range $entry := .Breadcrumbs }} {{ $entry.Name }} {{ end }}
{{$path := .Path }} {{ range $entry_index, $entry := .Entries }} {{ end }}
{{if $entry.IsDirectory}} {{ $entry.Name }} {{else}} {{ $entry.Name }} {{end}} {{if $entry.IsDirectory}} {{else}} {{ $entry.Mime }}  {{end}} {{if $entry.IsDirectory}} {{else}} {{ $entry.Size | humanizeBytes }}  {{end}} {{ $entry.Timestamp.Format "2006-01-02 15:04" }}
{{if .ShouldDisplayLoadMore}}
// ************************ Drag and drop ***************** // let dropArea = document.getElementById("drop-area") // Prevent default drag behaviors ;['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => { dropArea.addEventListener(eventName, preventDefaults, false) document.body.addEventListener(eventName, preventDefaults, false) }) // Highlight drop area when item is dragged over it ;['dragenter', 'dragover'].forEach(eventName => { dropArea.addEventListener(eventName, highlight, false) }) ;['dragleave', 'drop'].forEach(eventName => { dropArea.addEventListener(eventName, unhighlight, false) }) // Handle dropped files dropArea.addEventListener('drop', handleDrop, false) function preventDefaults (e) { e.preventDefault() e.stopPropagation() } function highlight(e) { dropArea.classList.add('highlight') } function unhighlight(e) { dropArea.classList.remove('highlight') } function handleDrop(e) { var dt = e.dataTransfer var files = dt.files handleFiles(files) } function handleFiles(files) { files = [...files] files.forEach(uploadFile) window.location.reload() } function uploadFile(file, i) { var url = window.location.href var xhr = new XMLHttpRequest() var formData = new FormData() xhr.open('POST', url, false) formData.append('file', file) xhr.send(formData) } `))