From b9ca7e2a9c4fb1697633abf7781d90d17cba2a40 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sun, 21 Aug 2016 20:10:12 +0100 Subject: [PATCH] close #19 --- assets/embed/public/css/styles.css | 12 ++- assets/embed/public/js/application.js | 119 +++++++++++++++----------- assets/embed/templates/actions.tmpl | 4 +- assets/embed/templates/base.tmpl | 6 +- assets/embed/templates/editor.tmpl | 2 + assets/embed/templates/listing.tmpl | 78 +++++++++-------- assets/embed/templates/minimal.tmpl | 2 +- assets/embed/templates/single.tmpl | 4 +- config/config.go | 2 +- directory/file.go | 2 +- 10 files changed, 134 insertions(+), 97 deletions(-) diff --git a/assets/embed/public/css/styles.css b/assets/embed/public/css/styles.css index fe28ce6b..6ed0b897 100644 --- a/assets/embed/public/css/styles.css +++ b/assets/embed/public/css/styles.css @@ -400,6 +400,16 @@ pre { border: 1px solid #e6e6e6; border-radius: 0.5em; background-color: #f5f5f5; + white-space: pre-wrap; + /* css-3 */ + white-space: -moz-pre-wrap; + /* Mozilla, since 1999 */ + white-space: -pre-wrap; + /* Opera 4-6 */ + white-space: -o-pre-wrap; + /* Opera 7 */ + word-wrap: break-word; + /* Internet Explorer 5.5+ */ } @media (max-width: 600px) { @@ -1107,4 +1117,4 @@ i.spin { column-count: 1; column-gap: 0; } -} +} \ No newline at end of file diff --git a/assets/embed/public/js/application.js b/assets/embed/public/js/application.js index 71bdf33e..6976e29f 100644 --- a/assets/embed/public/js/application.js +++ b/assets/embed/public/js/application.js @@ -509,62 +509,73 @@ document.addEventListener('listing', event => { } }); - document.querySelector('#search input').addEventListener('focus', event => { - document.getElementById('search').classList.add('active'); - }); - - document.querySelector('#search input').addEventListener('blur', event => { - document.getElementById('search').classList.remove('active'); - document.querySelector('#search input').value = ''; - }); - - document.querySelector('#search input').addEventListener('keyup', searchEvent); - - // Enables upload button - document.getElementById("upload").addEventListener("click", (event) => { - document.getElementById("upload-input").click(); - }); - - // Enables rename button - document.getElementById("rename").addEventListener("click", renameEvent); - - document.getElementById('new').addEventListener('click', event => { - let newdir = document.getElementById('newdir'); - newdir.classList.add('enabled'); - newdir.focus(); - }); - - document.getElementById('newdir').addEventListener('blur', event => { - document.getElementById('newdir').classList.remove('enabled'); - }); - - document.getElementById('newdir').addEventListener('keydown', newDirEvent); - - // Drag and Drop - let items = document.getElementsByClassName('item'); - document.addEventListener("dragover", function(event) { - event.preventDefault(); - }, false); - - document.addEventListener("dragover", (event) => { - Array.from(items).forEach(file => { - file.style.opacity = 0.5; + if (document.getElementById('search')) { + document.querySelector('#search input').addEventListener('focus', event => { + document.getElementById('search').classList.add('active'); }); - }, false); - document.addEventListener("dragleave", (event) => { - Array.from(items).forEach(file => { - file.style.opacity = 1; + document.querySelector('#search input').addEventListener('blur', event => { + document.getElementById('search').classList.remove('active'); + document.querySelector('#search input').value = ''; }); - }, false); - document.addEventListener("drop", function(event) { - event.preventDefault(); - var dt = event.dataTransfer; - var files = dt.files; + document.querySelector('#search input').addEventListener('keyup', searchEvent); + } - handleFiles(files); - }, false); + if (document.getElementById("upload")) { + // Enables upload button + document.getElementById("upload").addEventListener("click", (event) => { + document.getElementById("upload-input").click(); + }); + + } + + if (document.getElementById("rename")) { + // Enables rename button + document.getElementById("rename").addEventListener("click", renameEvent); + } + + if (document.getElementById('new')) { + document.getElementById('new').addEventListener('click', event => { + let newdir = document.getElementById('newdir'); + newdir.classList.add('enabled'); + newdir.focus(); + }); + } + + if (document.getElementById('newdir')) { + document.getElementById('newdir').addEventListener('blur', event => { + document.getElementById('newdir').classList.remove('enabled'); + }); + + document.getElementById('newdir').addEventListener('keydown', newDirEvent); + + // Drag and Drop + let items = document.getElementsByClassName('item'); + document.addEventListener("dragover", function(event) { + event.preventDefault(); + }, false); + + document.addEventListener("dragover", (event) => { + Array.from(items).forEach(file => { + file.style.opacity = 0.5; + }); + }, false); + + document.addEventListener("dragleave", (event) => { + Array.from(items).forEach(file => { + file.style.opacity = 1; + }); + }, false); + + document.addEventListener("drop", function(event) { + event.preventDefault(); + var dt = event.dataTransfer; + var files = dt.files; + + handleFiles(files); + }, false); + } }); /* * * * * * * * * * * * * * * * @@ -833,7 +844,11 @@ document.addEventListener("DOMContentLoaded", function(event) { // Enables open, delete and download buttons document.getElementById("open").addEventListener("click", openEvent); - document.getElementById("delete").addEventListener("click", deleteEvent); + + if (document.getElementById("delete")) { + document.getElementById("delete").addEventListener("click", deleteEvent); + } + document.getElementById("download").addEventListener("click", downloadEvent); document.getElementById("open-nav").addEventListener("click", event => { document.querySelector("header > div:nth-child(2)").classList.toggle("active"); diff --git a/assets/embed/templates/actions.tmpl b/assets/embed/templates/actions.tmpl index b5ed7358..069598f2 100644 --- a/assets/embed/templates/actions.tmpl +++ b/assets/embed/templates/actions.tmpl @@ -2,7 +2,7 @@
open_in_new See raw
- {{ if .IsDir }} + {{ if and .IsDir .User.AllowEdit }}
mode_edit
@@ -10,7 +10,9 @@
file_download Download
+ {{ if .User.AllowEdit }}
delete Delete
+ {{ end }} {{ end }} diff --git a/assets/embed/templates/base.tmpl b/assets/embed/templates/base.tmpl index 3f182bfe..631b2b6c 100644 --- a/assets/embed/templates/base.tmpl +++ b/assets/embed/templates/base.tmpl @@ -63,18 +63,22 @@ {{ if .IsDir}} + {{ if .User.AllowCommands }} + {{ end }}
view_headline Switch view
+ {{ if .User.AllowNew }}
file_upload Upload
+ {{ end }} {{ else }} {{ template "actions" . }} {{ end }} @@ -103,7 +107,7 @@ {{ end }}
- {{ template "content" .Data }} + {{ template "content" . }} {{ .Config.Token }}
diff --git a/assets/embed/templates/editor.tmpl b/assets/embed/templates/editor.tmpl index 121fa369..0895b2cc 100644 --- a/assets/embed/templates/editor.tmpl +++ b/assets/embed/templates/editor.tmpl @@ -1,4 +1,5 @@ {{ define "content" }} +{{ with .Data }}
{{ if or (eq .Class "frontmatter-only") (eq .Class "complete") }} @@ -30,3 +31,4 @@
{{ end }} +{{ end }} diff --git a/assets/embed/templates/listing.tmpl b/assets/embed/templates/listing.tmpl index b7dc7aa0..71250589 100644 --- a/assets/embed/templates/listing.tmpl +++ b/assets/embed/templates/listing.tmpl @@ -1,42 +1,46 @@ {{ define "content" }} -
- +
- + +{{ end }} +{{ if .User.AllowNew }} - -
-
- add -
-
- {{ end }} +
+
+ add +
+
+{{ end }} +{{ end }} diff --git a/assets/embed/templates/minimal.tmpl b/assets/embed/templates/minimal.tmpl index 7f18bbd2..933c258f 100644 --- a/assets/embed/templates/minimal.tmpl +++ b/assets/embed/templates/minimal.tmpl @@ -1,2 +1,2 @@ -{{ template "content" .Data }} +{{ template "content" . }} {{ .Config.Token }} diff --git a/assets/embed/templates/single.tmpl b/assets/embed/templates/single.tmpl index 8f6b3b8d..bd8f077d 100644 --- a/assets/embed/templates/single.tmpl +++ b/assets/embed/templates/single.tmpl @@ -1,5 +1,5 @@ {{ define "content" }} - +{{ with .Data}}
{{ if eq .Type "image" }} @@ -11,5 +11,5 @@
{{ .Content }}
{{ end }}
- +{{ end }} {{ end }} diff --git a/config/config.go b/config/config.go index 70bc9f9d..dbacacd9 100644 --- a/config/config.go +++ b/config/config.go @@ -66,7 +66,7 @@ func Parse(c *caddy.Controller) ([]Config, error) { for c.Next() { var cfg = Config{UserConfig: &UserConfig{}} - cfg.PathScope = "." + cfg.PathScope = "./" cfg.BaseURL = "" cfg.FrontMatter = "yaml" cfg.HugoEnabled = false diff --git a/directory/file.go b/directory/file.go index 56bce9c3..7e371c7b 100644 --- a/directory/file.go +++ b/directory/file.go @@ -171,7 +171,7 @@ func (i *Info) serveSingleFile(w http.ResponseWriter, r *http.Request, c *config }, } - if CanBeEdited(i.Name) { + if CanBeEdited(i.Name) && u.AllowEdit { editor, err := i.GetEditor() if err != nil {