diff --git a/frontend/src/component/auth/footer.vue b/frontend/src/component/auth/footer.vue
new file mode 100644
index 000000000..85c77ab42
--- /dev/null
+++ b/frontend/src/component/auth/footer.vue
@@ -0,0 +1,67 @@
+
+
+
+
\ No newline at end of file
diff --git a/frontend/src/component/auth/header.vue b/frontend/src/component/auth/header.vue
new file mode 100644
index 000000000..4da06e18b
--- /dev/null
+++ b/frontend/src/component/auth/header.vue
@@ -0,0 +1,23 @@
+
+
+
+
\ No newline at end of file
diff --git a/frontend/src/component/components.js b/frontend/src/component/components.js
index 45a6c1293..574f6f561 100644
--- a/frontend/src/component/components.js
+++ b/frontend/src/component/components.js
@@ -39,6 +39,8 @@ import PAlbumToolbar from "component/album/toolbar.vue";
import PLabelClipboard from "component/label/clipboard.vue";
import PFileClipboard from "component/file/clipboard.vue";
import PSubjectClipboard from "component/subject/clipboard.vue";
+import PAuthHeader from "component/auth/header.vue";
+import PAuthFooter from "component/auth/footer.vue";
import PAboutFooter from "component/footer.vue";
const components = {};
@@ -60,6 +62,8 @@ components.install = (Vue) => {
Vue.component("PLabelClipboard", PLabelClipboard);
Vue.component("PFileClipboard", PFileClipboard);
Vue.component("PSubjectClipboard", PSubjectClipboard);
+ Vue.component("PAuthHeader", PAuthHeader);
+ Vue.component("PAuthFooter", PAuthFooter);
Vue.component("PAboutFooter", PAboutFooter);
};
diff --git a/frontend/src/component/navigation.vue b/frontend/src/component/navigation.vue
index 18ea72a4e..4d1d5999d 100644
--- a/frontend/src/component/navigation.vue
+++ b/frontend/src/component/navigation.vue
@@ -3,7 +3,7 @@
-
+
@@ -21,7 +21,7 @@
-
+
@@ -51,7 +51,7 @@
-
+
diff --git a/frontend/src/component/photo/toolbar.vue b/frontend/src/component/photo/toolbar.vue
index 9b38d92dc..e54c9b0db 100644
--- a/frontend/src/component/photo/toolbar.vue
+++ b/frontend/src/component/photo/toolbar.vue
@@ -44,7 +44,7 @@
diff --git a/frontend/src/css/auth.css b/frontend/src/css/auth.css
index dde899159..d6b562a25 100644
--- a/frontend/src/css/auth.css
+++ b/frontend/src/css/auth.css
@@ -6,6 +6,46 @@
color-scheme: light;
}
+/* Auth Form Colors */
+
+#photoprism main .auth-login .accent {
+ background-color: #05dde1!important;
+}
+
+#photoprism main .auth-login .accent--text {
+ caret-color: #05dde1!important;
+ color: #05dde1!important;
+}
+
+#photoprism main .auth-login .primary {
+ background-color: #00a6a9!important;
+}
+
+#photoprism main .auth-login .primary--text {
+ caret-color: #00a6a9!important;
+ color: #00a6a9!important;
+}
+
+#photoprism main .auth-login .secondary {
+ background-color: #505050!important;
+}
+
+#photoprism main .auth-login .secondary--text {
+ caret-color: #505050!important;
+ color: #505050!important;
+}
+
+#photoprism main .auth-login .link {
+ background-color: #c8e3e7!important;
+}
+
+#photoprism main .auth-login .link--text {
+ caret-color: #c8e3e7!important;
+ color: #c8e3e7!important;
+}
+
+/* Auth Form Logo */
+
#photoprism .auth-login .logo {
background-size: contain;
background-repeat: no-repeat;
@@ -18,6 +58,11 @@
left: unset;
}
+#photoprism .auth-layout {
+ justify-content: center;
+ align-items: center;
+}
+
#photoprism .auth-login .action-buttons {
margin: 30px auto 20px auto;
}
diff --git a/frontend/src/css/results.css b/frontend/src/css/results.css
index 9ea574869..e637dc6e6 100644
--- a/frontend/src/css/results.css
+++ b/frontend/src/css/results.css
@@ -455,6 +455,11 @@ body.chrome #photoprism .search-results .result {
text-align: left;
}
+#photoprism .cards-view .card .card-details {
+ border-bottom-left-radius: 6px;
+ border-bottom-right-radius: 6px;
+}
+
#photoprism .cards-view .v-card .card-details {
z-index: 1;
position: relative;
diff --git a/frontend/src/page/albums.vue b/frontend/src/page/albums.vue
index b410f6cf9..685797d53 100644
--- a/frontend/src/page/albums.vue
+++ b/frontend/src/page/albums.vue
@@ -39,7 +39,7 @@
@@ -371,9 +371,9 @@ export default {
this.search();
this.subscriptions.push(Event.subscribe("albums", (ev, data) => this.onUpdate(ev, data)));
-
this.subscriptions.push(Event.subscribe("touchmove.top", () => this.refresh()));
this.subscriptions.push(Event.subscribe("touchmove.bottom", () => this.loadMore()));
+ this.subscriptions.push(Event.subscribe("config.updated", (ev, data) => this.onConfigUpdated(data)));
},
destroyed() {
for (let i = 0; i < this.subscriptions.length; i++) {
@@ -381,6 +381,21 @@ export default {
}
},
methods: {
+ onConfigUpdated(data) {
+ if (!data || !data.config?.albumCategories) {
+ return;
+ }
+
+ const c = data.config.albumCategories;
+
+ this.categories = [{"value": "", "text": this.$gettext("All Categories")}];
+
+ if (c.length > 0) {
+ this.categories = this.categories.concat(c.map(cat => {
+ return {"value": cat, "text": cat};
+ }));
+ }
+ },
yearOptions() {
return this.all.years.concat(options.IndexedYears());
},
diff --git a/frontend/src/page/login.vue b/frontend/src/page/login.vue
index 759b72c88..7464cc8dc 100644
--- a/frontend/src/page/login.vue
+++ b/frontend/src/page/login.vue
@@ -1,17 +1,16 @@
-
-
-
+
+
+
-
+
-
-
-
+
@@ -73,41 +73,7 @@
-
-
+