close #19
This commit is contained in:
		
							parent
							
								
									63184da48f
								
							
						
					
					
						commit
						b9ca7e2a9c
					
				| 
						 | 
				
			
			@ -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;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -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");
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,7 +2,7 @@
 | 
			
		|||
 <div class="action" id="open">
 | 
			
		||||
  <i class="material-icons" title="See raw">open_in_new</i> <span>See raw</span>
 | 
			
		||||
 </div>
 | 
			
		||||
 {{ if .IsDir }}
 | 
			
		||||
 {{ if and .IsDir .User.AllowEdit }}
 | 
			
		||||
  <div class="action" id="rename">
 | 
			
		||||
   <i class="material-icons" title="Edit">mode_edit</i>
 | 
			
		||||
  </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -10,7 +10,9 @@
 | 
			
		|||
 <div class="action" id="download">
 | 
			
		||||
  <i class="material-icons" title="Download">file_download</i> <span>Download</span>
 | 
			
		||||
 </div>
 | 
			
		||||
 {{ if .User.AllowEdit }}
 | 
			
		||||
 <div class="action" id="delete">
 | 
			
		||||
  <i class="material-icons" title="Delete">delete</i> <span>Delete</span>
 | 
			
		||||
 </div>
 | 
			
		||||
 {{ end }}
 | 
			
		||||
{{ end }}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -63,18 +63,22 @@
 | 
			
		|||
 | 
			
		||||
       {{ if .IsDir}}
 | 
			
		||||
 | 
			
		||||
       {{ if .User.AllowCommands }}
 | 
			
		||||
       <div id="search">
 | 
			
		||||
           <i class="material-icons" title="Storage">storage</i>
 | 
			
		||||
           <input type="text" placeholder="Execute a command...">
 | 
			
		||||
           <div>Write your git, mercurial or svn command and press enter.</div>
 | 
			
		||||
       </div>
 | 
			
		||||
       {{ end }}
 | 
			
		||||
 | 
			
		||||
        <div class="action" id="view">
 | 
			
		||||
         <i class="material-icons" title="Switch view">view_headline</i> <span>Switch view</span>
 | 
			
		||||
        </div>
 | 
			
		||||
        {{ if .User.AllowNew }}
 | 
			
		||||
        <div class="action" id="upload">
 | 
			
		||||
         <i class="material-icons" title="Upload">file_upload</i> <span>Upload</span>
 | 
			
		||||
        </div>
 | 
			
		||||
        {{ end }}
 | 
			
		||||
        {{ else }}
 | 
			
		||||
        {{ template "actions" . }}
 | 
			
		||||
       {{ end }}
 | 
			
		||||
| 
						 | 
				
			
			@ -103,7 +107,7 @@
 | 
			
		|||
  {{ end }}
 | 
			
		||||
 | 
			
		||||
  <main>
 | 
			
		||||
   {{ template "content" .Data }}
 | 
			
		||||
   {{ template "content" . }}
 | 
			
		||||
   <span id="token">{{ .Config.Token }}</span>
 | 
			
		||||
  </main>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
{{ define "content" }}
 | 
			
		||||
{{ with .Data }}
 | 
			
		||||
 <div id="editor" class="container" data-kind="{{ .Class }}">
 | 
			
		||||
  <form method="POST" action="./">
 | 
			
		||||
   {{ if or (eq .Class "frontmatter-only") (eq .Class "complete") }}
 | 
			
		||||
| 
						 | 
				
			
			@ -30,3 +31,4 @@
 | 
			
		|||
  </form>
 | 
			
		||||
 </div>
 | 
			
		||||
{{ end }}
 | 
			
		||||
{{ end }}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,42 +1,46 @@
 | 
			
		|||
{{ define "content" }}
 | 
			
		||||
 <div class="listing">
 | 
			
		||||
  <div class="container" id="listing">
 | 
			
		||||
   {{- range .Items}}
 | 
			
		||||
   <div class="item" data-dir="{{- if .IsDir}}true{{ else }}false{{ end }}" id="{{.URL}}">
 | 
			
		||||
    <div>
 | 
			
		||||
     <a href="{{.URL}}">
 | 
			
		||||
      {{- if .IsDir}}
 | 
			
		||||
      <i class="material-icons">folder</i>
 | 
			
		||||
      {{- else}}
 | 
			
		||||
      <i class="material-icons">insert_drive_file</i>
 | 
			
		||||
      {{- end}}
 | 
			
		||||
     </a>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div>
 | 
			
		||||
     <a href="{{.URL}}">
 | 
			
		||||
      <span class="name">{{.Name}}</span>
 | 
			
		||||
      {{- if .IsDir}}
 | 
			
		||||
      <p data-order="-1">—</p>
 | 
			
		||||
      {{- else}}
 | 
			
		||||
      <p data-order="{{.Size}}">{{.HumanSize}}</p>
 | 
			
		||||
      {{- end}}
 | 
			
		||||
      <p>
 | 
			
		||||
       <time datetime="{{.HumanModTime " 2006-01-02T15:04:05Z"}}">{{.HumanModTime "01/02/2006 03:04:05 PM -07:00"}}</time>
 | 
			
		||||
      </p>
 | 
			
		||||
     </a>
 | 
			
		||||
    </div>
 | 
			
		||||
    <span class="checkbox" data-href="{{.URL}}"><i class="material-icons">check</i></div>
 | 
			
		||||
{{ with .Data }}
 | 
			
		||||
<div class="listing">
 | 
			
		||||
    <div class="container" id="listing">
 | 
			
		||||
    {{- range .Items}}
 | 
			
		||||
        <div class="item" data-dir="{{- if .IsDir}}true{{ else }}false{{ end }}" id="{{.URL}}">
 | 
			
		||||
            <div>
 | 
			
		||||
                <a href="{{.URL}}">
 | 
			
		||||
                    {{- if .IsDir}}
 | 
			
		||||
                    <i class="material-icons">folder</i>
 | 
			
		||||
                    {{- else}}
 | 
			
		||||
                    <i class="material-icons">insert_drive_file</i>
 | 
			
		||||
                    {{- end}}
 | 
			
		||||
                </a>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div>
 | 
			
		||||
                <a href="{{.URL}}">
 | 
			
		||||
                    <span class="name">{{.Name}}</span>
 | 
			
		||||
                    {{- if .IsDir}}
 | 
			
		||||
                    <p data-order="-1">—</p>
 | 
			
		||||
                    {{- else}}
 | 
			
		||||
                    <p data-order="{{.Size}}">{{.HumanSize}}</p>
 | 
			
		||||
                    {{- end}}
 | 
			
		||||
                    <p>
 | 
			
		||||
                    <time datetime="{{.HumanModTime " 2006-01-02T15:04:05Z"}}">{{.HumanModTime "01/02/2006 03:04:05 PM -07:00"}}</time>
 | 
			
		||||
                    </p>
 | 
			
		||||
                </a>
 | 
			
		||||
            </div>
 | 
			
		||||
            <span class="checkbox" data-href="{{.URL}}"><i class="material-icons">check</i>
 | 
			
		||||
        </div>
 | 
			
		||||
    {{- end}}
 | 
			
		||||
   </div>
 | 
			
		||||
  </div>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
  <input style="display:none" type="file" id="upload-input" onchange="handleFiles(this.files)" value="Upload" multiple>
 | 
			
		||||
<input style="display:none" type="file" id="upload-input" onchange="handleFiles(this.files)" value="Upload" multiple>
 | 
			
		||||
{{ end }}
 | 
			
		||||
 | 
			
		||||
{{ if .User.AllowNew }}
 | 
			
		||||
<input id="newdir" type="text" placeholder="Name...">
 | 
			
		||||
 | 
			
		||||
  <div class="floating">
 | 
			
		||||
   <div class="action" id="new">
 | 
			
		||||
    <i class="material-icons" title="New">add</i>
 | 
			
		||||
   </div>
 | 
			
		||||
  </div>
 | 
			
		||||
 {{ end }}
 | 
			
		||||
<div class="floating">
 | 
			
		||||
    <div class="action" id="new">
 | 
			
		||||
        <i class="material-icons" title="New">add</i>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
{{ end }}
 | 
			
		||||
{{ end }}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,2 +1,2 @@
 | 
			
		|||
{{ template "content" .Data }}
 | 
			
		||||
{{ template "content" . }}
 | 
			
		||||
<span id="token">{{ .Config.Token }}</span>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
{{ define "content" }}
 | 
			
		||||
 | 
			
		||||
{{ with .Data}}
 | 
			
		||||
 <main class="container">
 | 
			
		||||
  {{ if eq .Type "image" }}
 | 
			
		||||
   <img src="{{ .URL }}?raw=true">
 | 
			
		||||
| 
						 | 
				
			
			@ -11,5 +11,5 @@
 | 
			
		|||
   <pre>{{ .Content }}</pre>
 | 
			
		||||
  {{ end }}
 | 
			
		||||
 </main>
 | 
			
		||||
 | 
			
		||||
{{ end }}
 | 
			
		||||
{{ end }}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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 {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue