Skip to content

Commit 4389d65

Browse files
committed
avoid displaying the icon if not enabled
1 parent fd75074 commit 4389d65

25 files changed

+95
-29
lines changed

app/Http/Resources/GalleryConfigs/InitConfig.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,10 @@ class InitConfig extends Data
8383
// or if they asked to hide it (because we are nice :) ).
8484
public bool $is_se_info_hidden;
8585

86+
// Live Metrics settings
87+
public bool $is_live_metrics_enabled;
88+
89+
8690
public function __construct()
8791
{
8892
// Debug mode
@@ -174,5 +178,7 @@ private function set_supporter_properties()
174178

175179
// We hide the info if we are already a supporter (or the user requests it).
176180
$this->is_se_info_hidden = $is_supporter || Configs::getValueAsBool('disable_se_call_for_actions');
181+
182+
$this->is_live_metrics_enabled = $this->is_se_enabled && Configs::getValueAsBool('live_metrics_enabled');
177183
}
178184
}

lang/ar/statistics.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
],
4040
'metrics' => [
4141
'header' => '',
42+
'preview_text' => 'This is a preview of the live metrics available in Lychee <span class="text-primary-emphasis font-bold">SE</span>. The data shown here are randomly generated and do not reflect your server.',
4243
'a_visitor' => '',
4344
'visitors' => '',
4445
'visit_singular' => '',

lang/cz/statistics.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
],
4242
'metrics' => [
4343
'header' => 'Live metrics',
44+
'preview_text' => 'This is a preview of the live metrics available in Lychee <span class="text-primary-emphasis font-bold">SE</span>. The data shown here are randomly generated and do not reflect your server.',
4445
'a_visitor' => 'A visitor',
4546
'visitors' => '%d visitors',
4647
'visit_singular' => '%1$s viewed %2$s',

lang/de/statistics.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
],
4242
'metrics' => [
4343
'header' => 'Live metrics',
44+
'preview_text' => 'This is a preview of the live metrics available in Lychee <span class="text-primary-emphasis font-bold">SE</span>. The data shown here are randomly generated and do not reflect your server.',
4445
'a_visitor' => 'A visitor',
4546
'visitors' => '%d visitors',
4647
'visit_singular' => '%1$s viewed %2$s',

lang/el/statistics.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
],
4242
'metrics' => [
4343
'header' => 'Live metrics',
44+
'preview_text' => 'This is a preview of the live metrics available in Lychee <span class="text-primary-emphasis font-bold">SE</span>. The data shown here are randomly generated and do not reflect your server.',
4445
'a_visitor' => 'A visitor',
4546
'visitors' => '%d visitors',
4647
'visit_singular' => '%1$s viewed %2$s',

lang/en/statistics.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
],
4242
'metrics' => [
4343
'header' => 'Live metrics',
44+
'preview_text' => 'This is a preview of the live metrics available in Lychee <span class="text-primary-emphasis font-bold">SE</span>. The data shown here are randomly generated and do not reflect your server.',
4445
'a_visitor' => 'A visitor',
4546
'visitors' => '%d visitors',
4647
'visit_singular' => '%1$s viewed %2$s',

lang/es/statistics.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
],
4242
'metrics' => [
4343
'header' => 'Live metrics',
44+
'preview_text' => 'This is a preview of the live metrics available in Lychee <span class="text-primary-emphasis font-bold">SE</span>. The data shown here are randomly generated and do not reflect your server.',
4445
'a_visitor' => 'A visitor',
4546
'visitors' => '%d visitors',
4647
'visit_singular' => '%1$s viewed %2$s',

lang/fr/statistics.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
],
4040
'metrics' => [
4141
'header' => 'Données en temps réel',
42+
'preview_text' => 'Ceci est un aperçu des données en temps réel disponible dans Lychee <span class="text-primary-emphasis font-bold">SE</span>. Les données affichées ici sont générées aléatoirement et ne reflètent pas votre serveur.',
4243
'a_visitor' => 'Un visiteur',
4344
'visitors' => '%d visiteurs',
4445
'visit_singular' => '%1$s a vu %2$s',

lang/hu/statistics.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
],
4242
'metrics' => [
4343
'header' => 'Live metrics',
44+
'preview_text' => 'This is a preview of the live metrics available in Lychee <span class="text-primary-emphasis font-bold">SE</span>. The data shown here are randomly generated and do not reflect your server.',
4445
'a_visitor' => 'A visitor',
4546
'visitors' => '%d visitors',
4647
'visit_singular' => '%1$s viewed %2$s',

lang/it/statistics.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
],
4242
'metrics' => [
4343
'header' => 'Live metrics',
44+
'preview_text' => 'This is a preview of the live metrics available in Lychee <span class="text-primary-emphasis font-bold">SE</span>. The data shown here are randomly generated and do not reflect your server.',
4445
'a_visitor' => 'A visitor',
4546
'visitors' => '%d visitors',
4647
'visit_singular' => '%1$s viewed %2$s',

lang/ja/statistics.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
],
4242
'metrics' => [
4343
'header' => 'Live metrics',
44+
'preview_text' => 'This is a preview of the live metrics available in Lychee <span class="text-primary-emphasis font-bold">SE</span>. The data shown here are randomly generated and do not reflect your server.',
4445
'a_visitor' => 'A visitor',
4546
'visitors' => '%d visitors',
4647
'visit_singular' => '%1$s viewed %2$s',

lang/nl/statistics.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
],
4242
'metrics' => [
4343
'header' => 'Live metrics',
44+
'preview_text' => 'This is a preview of the live metrics available in Lychee <span class="text-primary-emphasis font-bold">SE</span>. The data shown here are randomly generated and do not reflect your server.',
4445
'a_visitor' => 'A visitor',
4546
'visitors' => '%d visitors',
4647
'visit_singular' => '%1$s viewed %2$s',

lang/no/statistics.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
],
4242
'metrics' => [
4343
'header' => 'Live metrics',
44+
'preview_text' => 'This is a preview of the live metrics available in Lychee <span class="text-primary-emphasis font-bold">SE</span>. The data shown here are randomly generated and do not reflect your server.',
4445
'a_visitor' => 'A visitor',
4546
'visitors' => '%d visitors',
4647
'visit_singular' => '%1$s viewed %2$s',

lang/pl/statistics.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
],
4242
'metrics' => [
4343
'header' => 'Live metrics',
44+
'preview_text' => 'This is a preview of the live metrics available in Lychee <span class="text-primary-emphasis font-bold">SE</span>. The data shown here are randomly generated and do not reflect your server.',
4445
'a_visitor' => 'A visitor',
4546
'visitors' => '%d visitors',
4647
'visit_singular' => '%1$s viewed %2$s',

lang/pt/statistics.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
],
4242
'metrics' => [
4343
'header' => 'Live metrics',
44+
'preview_text' => 'This is a preview of the live metrics available in Lychee <span class="text-primary-emphasis font-bold">SE</span>. The data shown here are randomly generated and do not reflect your server.',
4445
'a_visitor' => 'A visitor',
4546
'visitors' => '%d visitors',
4647
'visit_singular' => '%1$s viewed %2$s',

lang/ru/statistics.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
],
4242
'metrics' => [
4343
'header' => 'Live metrics',
44+
'preview_text' => 'This is a preview of the live metrics available in Lychee <span class="text-primary-emphasis font-bold">SE</span>. The data shown here are randomly generated and do not reflect your server.',
4445
'a_visitor' => 'A visitor',
4546
'visitors' => '%d visitors',
4647
'visit_singular' => '%1$s viewed %2$s',

lang/sk/statistics.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
],
4242
'metrics' => [
4343
'header' => 'Live metrics',
44+
'preview_text' => 'This is a preview of the live metrics available in Lychee <span class="text-primary-emphasis font-bold">SE</span>. The data shown here are randomly generated and do not reflect your server.',
4445
'a_visitor' => 'A visitor',
4546
'visitors' => '%d visitors',
4647
'visit_singular' => '%1$s viewed %2$s',

lang/sv/statistics.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
],
4242
'metrics' => [
4343
'header' => 'Live metrics',
44+
'preview_text' => 'This is a preview of the live metrics available in Lychee <span class="text-primary-emphasis font-bold">SE</span>. The data shown here are randomly generated and do not reflect your server.',
4445
'a_visitor' => 'A visitor',
4546
'visitors' => '%d visitors',
4647
'visit_singular' => '%1$s viewed %2$s',

lang/vi/statistics.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
],
4242
'metrics' => [
4343
'header' => 'Live metrics',
44+
'preview_text' => 'This is a preview of the live metrics available in Lychee <span class="text-primary-emphasis font-bold">SE</span>. The data shown here are randomly generated and do not reflect your server.',
4445
'a_visitor' => 'A visitor',
4546
'visitors' => '%d visitors',
4647
'visit_singular' => '%1$s viewed %2$s',

lang/zh_CN/statistics.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
],
4242
'metrics' => [
4343
'header' => 'Live metrics',
44+
'preview_text' => 'This is a preview of the live metrics available in Lychee <span class="text-primary-emphasis font-bold">SE</span>. The data shown here are randomly generated and do not reflect your server.',
4445
'a_visitor' => 'A visitor',
4546
'visitors' => '%d visitors',
4647
'visit_singular' => '%1$s viewed %2$s',

lang/zh_TW/statistics.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
],
4242
'metrics' => [
4343
'header' => 'Live metrics',
44+
'preview_text' => 'This is a preview of the live metrics available in Lychee <span class="text-primary-emphasis font-bold">SE</span>. The data shown here are randomly generated and do not reflect your server.',
4445
'a_visitor' => 'A visitor',
4546
'visitors' => '%d visitors',
4647
'visit_singular' => '%1$s viewed %2$s',

resources/js/components/drawers/LiveMetrics.vue

Lines changed: 50 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,15 @@
66
</span>
77
</template>
88
<div class="flex flex-col">
9+
<div class="text-sm text-muted-color-emphasis mb-8" v-if="is_se_preview_enabled" v-html="$t('statistics.metrics.preview_text')"></div>
910
<div v-for="item in prettifiedData" :key="item.action + item.ago" class="flex pt-2 pb-1">
1011
<div class="flex flex-col w-full text-sm text-muted-color">
11-
<router-link :to="item.link" v-if="item.count === 1" v-html="printSingular(item)"></router-link>
12-
<router-link :to="item.link" v-if="item.count > 1" v-html="printPlural(item)"></router-link>
12+
<router-link :to="item.link" v-if="item.count === 1" v-slot="{ href }">
13+
<a :href="href" v-html="printSingular(item)"></a>
14+
</router-link>
15+
<router-link :to="item.link" v-if="item.count > 1" v-slot="{ href }">
16+
<a :href="href" v-html="printPlural(item)"></a>
17+
</router-link>
1318
<span class="text-xs -mt-1">{{ item.ago }}</span>
1419
</div>
1520
<div class="w-12 h-12 relative shrink-0">
@@ -33,8 +38,11 @@
3338
</Drawer>
3439
</template>
3540
<script setup lang="ts">
41+
import AlbumService from "@/services/album-service";
3642
import MetricsService from "@/services/metrics-service";
43+
import { useLycheeStateStore } from "@/stores/LycheeState";
3744
import { useTogglablesStateStore } from "@/stores/ModalsState";
45+
import { useImageHelpers } from "@/utils/Helpers";
3846
import { trans } from "laravel-vue-i18n";
3947
import { storeToRefs } from "pinia";
4048
import Drawer from "primevue/drawer";
@@ -43,14 +51,18 @@ import { ref } from "vue";
4351
import { onMounted } from "vue";
4452
import { watch } from "vue";
4553
54+
const { getPlaceholderIcon } = useImageHelpers();
55+
56+
const lycheeStore = useLycheeStateStore();
57+
const { is_se_preview_enabled } = storeToRefs(lycheeStore);
4658
const togglableStore = useTogglablesStateStore();
4759
const { is_metrics_open } = storeToRefs(togglableStore);
4860
4961
type LiveMetrics = {
5062
ago: string;
5163
date: Date;
5264
id: string;
53-
link: { name: string; params: {} };
65+
link: { name: string; params: { albumId: string | null; photoId: string | null } };
5466
action: App.Enum.MetricsAction;
5567
title: string;
5668
count: number;
@@ -60,6 +72,38 @@ const data = ref<App.Http.Resources.Models.LiveMetricsResource[] | undefined>(un
6072
const prettifiedData = ref<LiveMetrics[] | undefined>(undefined);
6173
6274
function load() {
75+
if (is_se_preview_enabled.value) {
76+
// Do not load, if the preview is enabled
77+
data.value = [];
78+
AlbumService.getAll()
79+
.then((response) => {
80+
prettifiedData.value = (response.data.albums as App.Http.Resources.Models.ThumbAlbumResource[]).map((album) => {
81+
const ago = dateToAgo(album.created_at);
82+
const ret: LiveMetrics = {
83+
ago: ago,
84+
date: new Date(album.created_at),
85+
action: ["visit", "favourite", "download", "shared"].at(Math.floor(Math.random() * 4)) as App.Enum.MetricsAction,
86+
title: album.title,
87+
id: album.id,
88+
count: Math.floor(Math.random() * 3) + 1,
89+
src: album.thumb?.thumb ?? getPlaceholderIcon(),
90+
link: {
91+
name: "album",
92+
params: {
93+
albumId: album.id,
94+
photoId: null,
95+
},
96+
},
97+
};
98+
return ret;
99+
});
100+
})
101+
.catch((error) => {
102+
console.error(error);
103+
});
104+
return;
105+
}
106+
63107
MetricsService.get()
64108
.then((response) => {
65109
data.value = response.data;
@@ -170,10 +214,10 @@ function LiveMetricsToPretty(data: App.Http.Resources.Models.LiveMetricsResource
170214
count: count,
171215
src: data.url,
172216
link: {
173-
name: data.photo_id ? "photo" : "album",
217+
name: "album",
174218
params: {
175-
albumid: data.album_id,
176-
photoid: data.photo_id,
219+
albumId: data.album_id,
220+
photoId: data.photo_id,
177221
},
178222
},
179223
};

resources/js/components/headers/AlbumsHeader.vue

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ const lycheeStore = useLycheeStateStore();
126126
const togglableStore = useTogglablesStateStore();
127127
const favourites = useFavouriteStore();
128128
129-
const { dropbox_api_key, is_favourite_enabled } = storeToRefs(lycheeStore);
129+
const { dropbox_api_key, is_favourite_enabled, is_se_preview_enabled, is_live_metrics_enabled } = storeToRefs(lycheeStore);
130130
const { is_login_open, is_upload_visible, is_create_album_visible, is_create_tag_album_visible, is_metrics_open } = storeToRefs(togglableStore);
131131
132132
const router = useRouter();
@@ -236,7 +236,13 @@ const menu = computed(() =>
236236
icon: "pi pi-bell",
237237
type: "fn",
238238
callback: () => (is_metrics_open.value = true),
239-
if: props.rights.can_see_live_metrics,
239+
if: is_live_metrics_enabled.value && props.rights.can_see_live_metrics,
240+
},
241+
{
242+
icon: "pi pi-bell text-primary-emphasis",
243+
type: "fn",
244+
callback: () => (is_metrics_open.value = true),
245+
if: is_se_preview_enabled.value && props.rights.can_see_live_metrics,
240246
},
241247
{
242248
icon: "pi pi-sign-in",

resources/js/lychee.d.ts

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ declare namespace App.Http.Resources.Collections {
109109
id: string | null;
110110
title: string | null;
111111
track_url: string | null;
112-
photos: App.Http.Resources.Models.PhotoResource[] | Array<any>;
112+
photos: App.Http.Resources.Models.PhotoResource[];
113113
};
114114
export type RootAlbumResource = {
115115
smart_albums: { [key: number]: App.Http.Resources.Models.ThumbAlbumResource } | Array<any>;
@@ -262,6 +262,7 @@ declare namespace App.Http.Resources.GalleryConfigs {
262262
is_se_enabled: boolean;
263263
is_se_preview_enabled: boolean;
264264
is_se_info_hidden: boolean;
265+
is_live_metrics_enabled: boolean;
265266
};
266267
export type LandingPageResource = {
267268
landing_page_enable: boolean;
@@ -340,8 +341,8 @@ declare namespace App.Http.Resources.Models {
340341
header_id: string | null;
341342
parent_id: string | null;
342343
has_albums: boolean;
343-
albums: App.Http.Resources.Models.ThumbAlbumResource[] | Array<any>;
344-
photos: App.Http.Resources.Models.PhotoResource[] | Array<any>;
344+
albums: App.Http.Resources.Models.ThumbAlbumResource[];
345+
photos: App.Http.Resources.Models.PhotoResource[];
345346
cover_id: string | null;
346347
thumb: App.Http.Resources.Models.ThumbResource | null;
347348
policy: App.Http.Resources.Models.Utils.AlbumProtectionPolicy;
@@ -359,7 +360,7 @@ declare namespace App.Http.Resources.Models {
359360
cat: string;
360361
name: string;
361362
description: string;
362-
configs: App.Http.Resources.Models.ConfigResource[] | Array<any>;
363+
configs: App.Http.Resources.Models.ConfigResource[];
363364
priority: number;
364365
};
365366
export type ConfigResource = {
@@ -457,7 +458,7 @@ declare namespace App.Http.Resources.Models {
457458
export type SmartAlbumResource = {
458459
id: string;
459460
title: string;
460-
photos: App.Http.Resources.Models.PhotoResource[] | Array<any>;
461+
photos: App.Http.Resources.Models.PhotoResource[];
461462
thumb: App.Http.Resources.Models.ThumbResource | null;
462463
policy: App.Http.Resources.Models.Utils.AlbumProtectionPolicy;
463464
rights: App.Http.Resources.Rights.AlbumRightsResource;
@@ -471,7 +472,7 @@ declare namespace App.Http.Resources.Models {
471472
copyright: string | null;
472473
is_tag_album: boolean;
473474
show_tags: Array<string>;
474-
photos: App.Http.Resources.Models.PhotoResource[] | Array<any>;
475+
photos: App.Http.Resources.Models.PhotoResource[];
475476
thumb: App.Http.Resources.Models.ThumbResource | null;
476477
policy: App.Http.Resources.Models.Utils.AlbumProtectionPolicy;
477478
rights: App.Http.Resources.Rights.AlbumRightsResource;
@@ -683,8 +684,8 @@ declare namespace App.Http.Resources.Search {
683684
photo_layout: App.Enum.PhotoLayoutType;
684685
};
685686
export type ResultsResource = {
686-
albums: App.Http.Resources.Models.ThumbAlbumResource[] | Array<any>;
687-
photos: App.Http.Resources.Models.PhotoResource[] | Array<any>;
687+
albums: App.Http.Resources.Models.ThumbAlbumResource[];
688+
photos: App.Http.Resources.Models.PhotoResource[];
688689
current_page: number;
689690
from: number;
690691
last_page: number;
@@ -693,19 +694,6 @@ declare namespace App.Http.Resources.Search {
693694
total: number;
694695
};
695696
}
696-
declare namespace App.Http.Resources.Sharing {
697-
export type ListedAlbumsResource = {
698-
id: string;
699-
title: string;
700-
};
701-
export type SharedAlbumResource = {
702-
id: number;
703-
user_id: number;
704-
album_id: string;
705-
username: string;
706-
title: string;
707-
};
708-
}
709697
declare namespace App.Http.Resources.Statistics {
710698
export type Album = {
711699
username: string;

0 commit comments

Comments
 (0)