diff --git a/cmd/utils.go b/cmd/utils.go
index 2bd9e760..d4ccbacc 100644
--- a/cmd/utils.go
+++ b/cmd/utils.go
@@ -87,16 +87,23 @@ func python(fn pythonFunc, cfg pythonConfig) cobraFunc {
data := pythonData{hadDB: true}
path := getParam(cmd.Flags(), "database")
+ absPath, err := filepath.Abs(path)
+ if err != nil {
+ panic(err)
+ }
exists, err := dbExists(path)
if err != nil {
panic(err)
} else if exists && cfg.noDB {
- log.Fatal(path + " already exists")
+ log.Fatal(absPath + " already exists")
} else if !exists && !cfg.noDB && !cfg.allowNoDB {
- log.Fatal(path + " does not exist. Please run 'filebrowser config init' first.")
+ log.Fatal(absPath + " does not exist. Please run 'filebrowser config init' first.")
+ } else if !exists && !cfg.noDB {
+ log.Println("Warning: filebrowser.db can't be found. Initialing in " + strings.TrimSuffix(absPath, "filebrowser.db"))
}
+ log.Println("Using database: " + absPath)
data.hadDB = exists
db, err := storm.Open(path)
checkErr(err)
diff --git a/frontend/src/components/prompts/Delete.vue b/frontend/src/components/prompts/Delete.vue
index f65e69b7..2527c855 100644
--- a/frontend/src/components/prompts/Delete.vue
+++ b/frontend/src/components/prompts/Delete.vue
@@ -45,6 +45,7 @@ export default {
submit: async function () {
buttons.loading("delete");
+ window.sessionStorage.setItem("modified", "true");
try {
if (!this.isListing) {
await api.remove(this.$route.path);
diff --git a/frontend/src/components/prompts/Rename.vue b/frontend/src/components/prompts/Rename.vue
index b6fb38ed..f3a96c2e 100644
--- a/frontend/src/components/prompts/Rename.vue
+++ b/frontend/src/components/prompts/Rename.vue
@@ -88,6 +88,7 @@ export default {
newLink =
url.removeLastDir(oldLink) + "/" + encodeURIComponent(this.name);
+ window.sessionStorage.setItem("modified", "true");
try {
await api.move([{ from: oldLink, to: newLink }]);
if (!this.isListing) {
diff --git a/frontend/src/css/mobile.css b/frontend/src/css/mobile.css
index 3779d6e7..8047a5b6 100644
--- a/frontend/src/css/mobile.css
+++ b/frontend/src/css/mobile.css
@@ -2,10 +2,6 @@
nav {
width: 10em
}
- /* Mobile Only fix div hidden by bottom navigation bar of mobile browser when using height: 100vh */
- #previewer .preview {
- height: calc(100% - 4em) !important;
- }
}
@media (max-width: 1024px) {
diff --git a/frontend/src/css/styles.css b/frontend/src/css/styles.css
index 9674fa66..37436a0a 100644
--- a/frontend/src/css/styles.css
+++ b/frontend/src/css/styles.css
@@ -153,8 +153,7 @@ main .spinner .bounce2 {
/* PREVIEWER */
#previewer {
- background-color: rgba(0, 0, 0, 0.9);
- padding-top: 4em;
+ background-color: rgba(0, 0, 0, 0.99);
position: fixed;
top: 0;
left: 0;
@@ -167,15 +166,25 @@ main .spinner .bounce2 {
#previewer header {
background: none;
color: #fff;
+ border-bottom: 0px;
+ box-shadow: 0px 0px 0px;
+ z-index: 19999;
}
#previewer header > .action i {
color: #fff;
+ text-shadow: 1px 1px 1px #000000;
+}
+
+#previewer header > title {
+ white-space: nowrap;
+ text-shadow: 1px 1px 1px #000000;
}
@media (min-width: 738px) {
#previewer header #dropdown .action i {
color: #fff;
+ text-shadow: 1px 1px 1px #000000;
}
}
@@ -189,7 +198,7 @@ main .spinner .bounce2 {
#previewer .preview {
text-align: center;
- height: calc(100vh - 4em);
+ height: 100%;
}
#previewer .preview pre {
@@ -204,6 +213,12 @@ main .spinner .bounce2 {
margin: 0;
}
+#previewer .preview audio {
+ width: 95%;
+ height: 88%;
+}
+
+
#previewer .preview video {
height: 100%;
}
@@ -248,7 +263,7 @@ main .spinner .bounce2 {
#previewer > button {
margin: 0;
position: fixed;
- top: calc(50% + 1.85em);
+ top: 50%;
transform: translateY(-50%);
background-color: rgba(80, 80, 80, 0.5);
color: white;
diff --git a/frontend/src/views/Files.vue b/frontend/src/views/Files.vue
index ff7b84a6..29a7afd9 100644
--- a/frontend/src/views/Files.vue
+++ b/frontend/src/views/Files.vue
@@ -3,10 +3,10 @@