Videos: Move Live Photos page to "Videos" sub-navigation #1761
As requested, live photos are not included in video search results anymore until we find a better solution.
This commit is contained in:
parent
8d9c60c6c1
commit
8c7037175a
|
@ -110,15 +110,6 @@
|
||||||
</v-list-tile-content>
|
</v-list-tile-content>
|
||||||
</v-list-tile>
|
</v-list-tile>
|
||||||
|
|
||||||
<v-list-tile :to="{name: 'live'}" class="nav-live" @click.stop="">
|
|
||||||
<v-list-tile-content>
|
|
||||||
<v-list-tile-title :class="`p-flex-menuitem menu-item ${rtl ? '--rtl' : ''}`">
|
|
||||||
<translate>Live</translate>
|
|
||||||
<span v-show="config.count.live > 0" :class="`nav-count ${rtl ? '--rtl' : ''}`">{{ config.count.live | abbreviateCount }}</span>
|
|
||||||
</v-list-tile-title>
|
|
||||||
</v-list-tile-content>
|
|
||||||
</v-list-tile>
|
|
||||||
|
|
||||||
<v-list-tile :to="{name: 'photos', query: { q: 'scan:true' }}" :exact="true" class="nav-scans" @click.stop="">
|
<v-list-tile :to="{name: 'photos', query: { q: 'scan:true' }}" :exact="true" class="nav-scans" @click.stop="">
|
||||||
<v-list-tile-content>
|
<v-list-tile-content>
|
||||||
<v-list-tile-title :class="`p-flex-menuitem menu-item ${rtl ? '--rtl' : ''}`">
|
<v-list-tile-title :class="`p-flex-menuitem menu-item ${rtl ? '--rtl' : ''}`">
|
||||||
|
@ -179,19 +170,40 @@
|
||||||
</v-list-tile>
|
</v-list-tile>
|
||||||
</v-list-group>
|
</v-list-group>
|
||||||
|
|
||||||
<v-list-tile v-if="$config.feature('videos')" to="/videos" class="nav-video" @click.stop="">
|
<v-list-tile v-if="isMini && $config.feature('videos')" to="/videos" class="nav-video" @click.stop="">
|
||||||
<v-list-tile-action :title="$gettext('Videos')">
|
<v-list-tile-action :title="$gettext('Videos')">
|
||||||
<v-icon>play_circle_fill</v-icon>
|
<v-icon>play_circle_fill</v-icon>
|
||||||
</v-list-tile-action>
|
</v-list-tile-action>
|
||||||
|
|
||||||
<v-list-tile-content>
|
<v-list-tile-content>
|
||||||
<v-list-tile-title class="p-flex-menuitem">
|
<v-list-tile-title :class="`menu-item ${rtl ? '--rtl' : ''}`">
|
||||||
<translate key="Videos">Videos</translate>
|
<translate key="Videos">Videos</translate>
|
||||||
<span v-show="config.count.videos > 0" :class="`nav-count ${rtl ? '--rtl' : ''}`">{{ (config.count.videos + config.count.live) | abbreviateCount }}</span>
|
|
||||||
</v-list-tile-title>
|
</v-list-tile-title>
|
||||||
</v-list-tile-content>
|
</v-list-tile-content>
|
||||||
</v-list-tile>
|
</v-list-tile>
|
||||||
|
|
||||||
|
<v-list-group v-if="!isMini && $config.feature('videos')" prepend-icon="play_circle_fill" no-action>
|
||||||
|
<template #activator>
|
||||||
|
<v-list-tile to="/videos" class="nav-video" @click.stop="">
|
||||||
|
<v-list-tile-content>
|
||||||
|
<v-list-tile-title class="p-flex-menuitem">
|
||||||
|
<translate key="Videos">Videos</translate>
|
||||||
|
<span v-show="config.count.videos > 0" :class="`nav-count ${rtl ? '--rtl' : ''}`">{{ config.count.videos | abbreviateCount }}</span>
|
||||||
|
</v-list-tile-title>
|
||||||
|
</v-list-tile-content>
|
||||||
|
</v-list-tile>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<v-list-tile :to="{name: 'live'}" class="nav-live" @click.stop="">
|
||||||
|
<v-list-tile-content>
|
||||||
|
<v-list-tile-title :class="`p-flex-menuitem menu-item ${rtl ? '--rtl' : ''}`">
|
||||||
|
<translate>Live</translate>
|
||||||
|
<span v-show="config.count.live > 0" :class="`nav-count ${rtl ? '--rtl' : ''}`">{{ config.count.live | abbreviateCount }}</span>
|
||||||
|
</v-list-tile-title>
|
||||||
|
</v-list-tile-content>
|
||||||
|
</v-list-tile>
|
||||||
|
</v-list-group>
|
||||||
|
|
||||||
<v-list-tile v-show="$config.feature('people')" :to="{ name: 'people' }" class="nav-people" @click.stop="">
|
<v-list-tile v-show="$config.feature('people')" :to="{ name: 'people' }" class="nav-people" @click.stop="">
|
||||||
<v-list-tile-action :title="$gettext('People')">
|
<v-list-tile-action :title="$gettext('People')">
|
||||||
<v-icon>person</v-icon>
|
<v-icon>person</v-icon>
|
||||||
|
|
|
@ -30,7 +30,7 @@ func TestMediaFile_Location(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
assert.Equal(t, "高砂市", location.City())
|
assert.Equal(t, "高砂市", location.City())
|
||||||
assert.Equal(t, "兵庫県", location.State())
|
assert.Equal(t, "姫路市", location.State())
|
||||||
assert.Equal(t, "Japan", location.CountryName())
|
assert.Equal(t, "Japan", location.CountryName())
|
||||||
assert.Equal(t, "", location.Category())
|
assert.Equal(t, "", location.Category())
|
||||||
assert.True(t, strings.HasPrefix(location.ID, s2.TokenPrefix+"3554df45"))
|
assert.True(t, strings.HasPrefix(location.ID, s2.TokenPrefix+"3554df45"))
|
||||||
|
@ -44,7 +44,7 @@ func TestMediaFile_Location(t *testing.T) {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
assert.Equal(t, "高砂市", location2.City())
|
assert.Equal(t, "姫路市", location2.City())
|
||||||
assert.Equal(t, "兵庫県", location2.State())
|
assert.Equal(t, "兵庫県", location2.State())
|
||||||
})
|
})
|
||||||
t.Run("cat_brown.jpg", func(t *testing.T) {
|
t.Run("cat_brown.jpg", func(t *testing.T) {
|
||||||
|
|
|
@ -377,7 +377,7 @@ func Photos(f form.SearchPhotos) (results PhotoResults, count int, err error) {
|
||||||
if f.Type != "" {
|
if f.Type != "" {
|
||||||
s = s.Where("photos.photo_type IN (?)", strings.Split(strings.ToLower(f.Type), txt.Or))
|
s = s.Where("photos.photo_type IN (?)", strings.Split(strings.ToLower(f.Type), txt.Or))
|
||||||
} else if f.Video {
|
} else if f.Video {
|
||||||
s = s.Where("photos.photo_type IN ('video','live')")
|
s = s.Where("photos.photo_type = 'video'")
|
||||||
} else if f.Photo {
|
} else if f.Photo {
|
||||||
s = s.Where("photos.photo_type IN ('image','raw','live')")
|
s = s.Where("photos.photo_type IN ('image','raw','live')")
|
||||||
} else if f.Raw {
|
} else if f.Raw {
|
||||||
|
|
|
@ -960,8 +960,8 @@ func TestPhotos(t *testing.T) {
|
||||||
assert.IsType(t, Photo{}, r)
|
assert.IsType(t, Photo{}, r)
|
||||||
assert.NotEmpty(t, r.ID)
|
assert.NotEmpty(t, r.ID)
|
||||||
|
|
||||||
if r.PhotoType != "video" && r.PhotoType != "live" {
|
if r.PhotoType != "video" {
|
||||||
t.Error("type should be video or live")
|
t.Error("type should be video only")
|
||||||
}
|
}
|
||||||
|
|
||||||
assert.NotEmpty(t, r.LensID)
|
assert.NotEmpty(t, r.LensID)
|
||||||
|
@ -990,8 +990,8 @@ func TestPhotos(t *testing.T) {
|
||||||
assert.IsType(t, Photo{}, r)
|
assert.IsType(t, Photo{}, r)
|
||||||
assert.NotEmpty(t, r.ID)
|
assert.NotEmpty(t, r.ID)
|
||||||
|
|
||||||
if r.PhotoType != "video" && r.PhotoType != "live" {
|
if r.PhotoType != "video" {
|
||||||
t.Error("type should be video or live")
|
t.Error("type should be video only")
|
||||||
}
|
}
|
||||||
|
|
||||||
assert.NotEmpty(t, r.LensID)
|
assert.NotEmpty(t, r.LensID)
|
||||||
|
|
Loading…
Reference in a new issue