Skip to content

Commit 8b5fbec

Browse files
committed
UX: Improve navigation menu
1 parent 441b51b commit 8b5fbec

3 files changed

Lines changed: 84 additions & 41 deletions

File tree

frontend/src/component/navigation.vue

Lines changed: 34 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<v-toolbar-title class="nav-title">
1010
<span :class="{'clickable': auth}" @click.stop.prevent="showNavigation()">{{ page.title }}</span>
1111
</v-toolbar-title>
12-
<v-menu v-if="auth && !config.disable.settings" attach="#p-navigation .nav-small" :nudge-bottom="9" :nudge-right="6"
12+
<v-menu v-if="showNavMenu" attach="#p-navigation .nav-small" :nudge-bottom="16" :nudge-right="0"
1313
close-on-content-click fixed disable-keys offset-y bottom left>
1414
<template #activator="{ on }">
1515
<v-btn
@@ -23,28 +23,50 @@
2323
</v-btn>
2424
</template>
2525

26-
<v-list class="nav-menu opacity-98">
26+
<v-list class="nav-menu navigation dark elevation-2">
27+
<v-list-tile to="/browse" class="clickable nav-menu-browse">
28+
<v-list-tile-content>
29+
<v-list-tile-title>
30+
<translate>Search</translate>
31+
</v-list-tile-title>
32+
</v-list-tile-content>
33+
34+
<v-list-tile-action :title="$gettext('Search')">
35+
<v-icon>search</v-icon>
36+
</v-list-tile-action>
37+
</v-list-tile>
38+
2739
<v-list-tile v-if="auth && !config.readonly && $config.feature('upload')" class="clickable nav-menu-upload" @click.prevent="openUpload()">
40+
<v-list-tile-content>
41+
<v-list-tile-title>
42+
<translate key="Upload">Upload</translate>
43+
</v-list-tile-title>
44+
</v-list-tile-content>
2845
<v-list-tile-action class="clickable" @click.prevent="openUpload()">
2946
<v-icon>cloud_upload</v-icon>
3047
</v-list-tile-action>
48+
</v-list-tile>
3149

50+
<v-list-tile v-if="!config.disable.settings" to="/settings" class="nav-menu-settings">
3251
<v-list-tile-content>
3352
<v-list-tile-title>
34-
<v-list-tile-title><translate key="Upload">Upload</translate></v-list-tile-title>
53+
<translate key="Settings">Settings</translate>
3554
</v-list-tile-title>
3655
</v-list-tile-content>
37-
</v-list-tile>
38-
<v-list-tile v-if="auth && !isPublic" class="clickable nav-menu-logout" @click.prevent="logout">
39-
<v-list-tile-action class="clickable" @click.prevent="logout">
40-
<v-icon>power_settings_new</v-icon>
56+
<v-list-tile-action :title="$gettext('Settings')">
57+
<v-icon>settings</v-icon>
4158
</v-list-tile-action>
59+
</v-list-tile>
4260

61+
<v-list-tile v-if="auth && !isPublic" class="clickable nav-menu-logout" @click.prevent="logout">
4362
<v-list-tile-content>
4463
<v-list-tile-title>
45-
<v-list-tile-title><translate key="Logout">Logout</translate></v-list-tile-title>
64+
<translate key="Logout">Logout</translate>
4665
</v-list-tile-title>
4766
</v-list-tile-content>
67+
<v-list-tile-action class="clickable" @click.prevent="logout">
68+
<v-icon>power_settings_new</v-icon>
69+
</v-list-tile-action>
4870
</v-list-tile>
4971
</v-list>
5072
</v-menu>
@@ -596,6 +618,7 @@ export default {
596618
drawer: null,
597619
isMini: localStorage.getItem('last_navigation_mode') !== 'false',
598620
isPublic: this.$config.get("public"),
621+
isDemo: this.$config.get("demo"),
599622
isTest: this.$config.test,
600623
isReadOnly: this.$config.get("readonly"),
601624
session: this.$session,
@@ -632,6 +655,9 @@ export default {
632655
const user = this.$session.getUser();
633656
return user.PrimaryEmail ? user.PrimaryEmail : this.$gettext("Account");
634657
},
658+
showNavMenu() {
659+
return (this.isDemo || this.session.auth);
660+
},
635661
},
636662
created() {
637663
this.subscriptions.push(Event.subscribe('index', this.onIndex));
@@ -660,13 +686,6 @@ export default {
660686
this.goHome();
661687
}
662688
},
663-
openSettings() {
664-
if (this.auth && this.$config.feature('settings')) {
665-
this.$router.push({ name: 'settings' });
666-
} else {
667-
this.goHome();
668-
}
669-
},
670689
goHome() {
671690
if (this.$route.name !== "home") {
672691
this.$router.push({name: "home"});

frontend/src/css/app.css

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -146,30 +146,6 @@ footer {
146146
top: -8px;
147147
}
148148

149-
#photoprism .nav-menu {
150-
padding: 0;
151-
}
152-
153-
#photoprism .nav-logo .v-list__tile__action,
154-
#photoprism .nav-menu .v-list__tile__action {
155-
min-width: 35px;
156-
}
157-
158-
#photoprism .nav-menu .v-list__tile {
159-
font-size: 15px;
160-
}
161-
162-
#photoprism .nav-menu .v-list__tile .v-icon {
163-
font-size: 20px;
164-
line-height: 1;
165-
}
166-
167-
/*
168-
#photoprism .sidenav-visible .nav-small .v-toolbar__content {
169-
opacity: 0.48;
170-
}
171-
*/
172-
173149
main {
174150
padding: 0;
175151
margin: 0;

frontend/src/css/navigation.css

Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,54 @@ nav .v-list__tile__title.title {
141141
margin-right: 0;
142142
}
143143

144+
#photoprism .nav-logo .v-list__tile__action {
145+
min-width: 35px;
146+
}
147+
148+
#photoprism .nav-menu {
149+
padding: 0;
150+
background-color: #181818;
151+
}
152+
144153
#p-navigation .nav-menu-trigger {
145-
margin: 0 -5px 0 0;
146-
}
154+
margin: 0 -2px 0 0;
155+
}
156+
157+
#photoprism .nav-menu .v-list__tile--active {
158+
display: none;
159+
}
160+
161+
#photoprism .nav-menu .v-list__tile {
162+
padding: 0 24px 0 24px;
163+
height: 54px;
164+
}
165+
166+
#photoprism .nav-menu .v-list__tile .v-list__tile__title {
167+
height: 26px;
168+
line-height: 26px;
169+
}
170+
171+
#photoprism .nav-menu .v-list__tile__action {
172+
min-width: 44px;
173+
}
174+
175+
#photoprism .nav-menu .v-list__tile__content {
176+
min-width: 146px;
177+
}
178+
179+
/*
180+
#photoprism .nav-menu .v-list__tile {
181+
font-size: 15px;
182+
}
183+
184+
#photoprism .nav-menu .v-list__tile .v-icon {
185+
font-size: 20px;
186+
line-height: 1;
187+
}
188+
*/
189+
190+
/*
191+
#photoprism .sidenav-visible .nav-small .v-toolbar__content {
192+
opacity: 0.48;
193+
}
194+
*/

0 commit comments

Comments
 (0)