diff --git a/README.md b/README.md
index b52dee0a..8fb96e24 100644
--- a/README.md
+++ b/README.md
@@ -6,6 +6,7 @@
## Roadmap
+ [ ] Rename files
++ [ ] Upload files and drag & drop
+ [ ] Delete files
+ [ ] Show text files
+ [ ] Show pictures
diff --git a/assets.go b/assets.go
new file mode 100644
index 00000000..4ac96a80
--- /dev/null
+++ b/assets.go
@@ -0,0 +1,39 @@
+package filemanager
+
+import (
+ "errors"
+ "mime"
+ "net/http"
+ "path/filepath"
+ "strings"
+)
+
+// ServeAssets redirects the request for the respective method
+func ServeAssets(w http.ResponseWriter, r *http.Request, c *Config) (int, error) {
+ switch r.Method {
+ case "GET":
+ return serveAssetsGET(w, r, c)
+ default:
+ return http.StatusMethodNotAllowed, errors.New("Invalid method.")
+ }
+}
+
+// serveAssetsGET provides the method for GET request on Assets page
+func serveAssetsGET(w http.ResponseWriter, r *http.Request, c *Config) (int, error) {
+ // gets the filename to be used with Assets function
+ filename := strings.Replace(r.URL.Path, c.BaseURL+"/_filemanagerinternal", "public", 1)
+ file, err := Asset(filename)
+ if err != nil {
+ return 404, nil
+ }
+
+ // Get the file extension ant its mime type
+ extension := filepath.Ext(filename)
+ mediatype := mime.TypeByExtension(extension)
+
+ // Write the header with the Content-Type and write the file
+ // content to the buffer
+ w.Header().Set("Content-Type", mediatype)
+ w.Write(file)
+ return 200, nil
+}
diff --git a/assets/source/styles.css b/assets/public/css/styles.css
similarity index 100%
rename from assets/source/styles.css
rename to assets/public/css/styles.css
diff --git a/assets/public/js/application.js b/assets/public/js/application.js
new file mode 100644
index 00000000..e69de29b
diff --git a/assets/source/template.tmpl b/assets/source/template.tmpl
deleted file mode 100644
index e24a428d..00000000
--- a/assets/source/template.tmpl
+++ /dev/null
@@ -1,175 +0,0 @@
-
-
-
- {{.Name}}
-
-
-
-
-
-
-
-
-
-
- {{range $url, $name := .BreadcrumbMap}}{{$name}}{{if ne $url "/"}}/{{end}}{{end}}
-
-
-
-
-
- {{.NumDirs}} director{{if eq 1 .NumDirs}}y{{else}}ies{{end}}
- {{.NumFiles}} file{{if ne 1 .NumFiles}}s{{end}}
- {{- if ne 0 .ItemsLimitedTo}}
- (of which only {{.ItemsLimitedTo}} are displayed)
- {{- end}}
-
-
-
-
-
-
-
- {{- if and (eq .Sort "name") (ne .Order "desc")}}
- Name
- {{- else if and (eq .Sort "name") (ne .Order "asc")}}
- Name
- {{- else}}
- Name
- {{- end}}
-
-
- {{- if and (eq .Sort "size") (ne .Order "desc")}}
- Size
- {{- else if and (eq .Sort "size") (ne .Order "asc")}}
- Size
- {{- else}}
- Size
- {{- end}}
-
-
- {{- if and (eq .Sort "time") (ne .Order "desc")}}
- Modified
- {{- else if and (eq .Sort "time") (ne .Order "asc")}}
- Modified
- {{- else}}
- Modified
- {{- end}}
-
+ {{.NumDirs}} director{{if eq 1 .NumDirs}}y{{else}}ies{{end}}
+ {{.NumFiles}} file{{if ne 1 .NumFiles}}s{{end}}
+ {{- if ne 0 .ItemsLimitedTo}}
+ (of which only {{.ItemsLimitedTo}} are displayed)
+ {{- end}}
+
+
+
+
+
+
+
+ {{- if and (eq .Sort "name") (ne .Order "desc")}}
+ Name
+ {{- else if and (eq .Sort "name") (ne .Order "asc")}}
+ Name
+ {{- else}}
+ Name
+ {{- end}}
+
+
+ {{- if and (eq .Sort "size") (ne .Order "desc")}}
+ Size
+ {{- else if and (eq .Sort "size") (ne .Order "asc")}}
+ Size
+ {{- else}}
+ Size
+ {{- end}}
+
+
+ {{- if and (eq .Sort "time") (ne .Order "desc")}}
+ Modified
+ {{- else if and (eq .Sort "time") (ne .Order "asc")}}
+ Modified
+ {{- else}}
+ Modified
+ {{- end}}
+