@@ -78,13 +199,13 @@
v-model="paginateBy"
class="ui dropdown"
>
-
-
-
@@ -136,137 +257,11 @@
-
-
diff --git a/front/src/components/library/Artists.vue b/front/src/components/library/Artists.vue
index 44444c8d9..b5a6f9481 100644
--- a/front/src/components/library/Artists.vue
+++ b/front/src/components/library/Artists.vue
@@ -170,7 +170,7 @@ import $ from 'jquery'
import OrderingMixin from '~/components/mixins/Ordering.vue'
import PaginationMixin from '~/components/mixins/Pagination.vue'
import ArtistCard from '~/components/audio/artist/Card.vue'
-import Pagination from '~/components/Pagination.vue'
+import Pagination from '~/components/vui/Pagination.vue'
import TagsSelector from '~/components/library/TagsSelector.vue'
import useLogger from '~/composables/useLogger'
import useSharedLabels from '~/composables/locale/useSharedLabels'
diff --git a/front/src/components/library/Podcasts.vue b/front/src/components/library/Podcasts.vue
index 10a0e7e57..4c9dbd374 100644
--- a/front/src/components/library/Podcasts.vue
+++ b/front/src/components/library/Podcasts.vue
@@ -202,7 +202,7 @@ import $ from 'jquery'
import OrderingMixin from '~/components/mixins/Ordering.vue'
import PaginationMixin from '~/components/mixins/Pagination.vue'
import ArtistCard from '~/components/audio/artist/Card.vue'
-import Pagination from '~/components/Pagination.vue'
+import Pagination from '~/components/vui/Pagination.vue'
import TagsSelector from '~/components/library/TagsSelector.vue'
import Modal from '~/components/semantic/Modal.vue'
import RemoteSearchForm from '~/components/RemoteSearchForm.vue'
diff --git a/front/src/components/library/Radios.vue b/front/src/components/library/Radios.vue
index 9449c51a0..4121622dd 100644
--- a/front/src/components/library/Radios.vue
+++ b/front/src/components/library/Radios.vue
@@ -180,7 +180,7 @@ import $ from 'jquery'
import OrderingMixin from '~/components/mixins/Ordering.vue'
import PaginationMixin from '~/components/mixins/Pagination.vue'
import RadioCard from '~/components/radios/Card.vue'
-import Pagination from '~/components/Pagination.vue'
+import Pagination from '~/components/vui/Pagination.vue'
import useLogger from '~/composables/useLogger'
import useSharedLabels from '~/composables/locale/useSharedLabels'
diff --git a/front/src/components/manage/ChannelsTable.vue b/front/src/components/manage/ChannelsTable.vue
index d92b85c82..1ab09b48c 100644
--- a/front/src/components/manage/ChannelsTable.vue
+++ b/front/src/components/manage/ChannelsTable.vue
@@ -203,7 +203,7 @@ import axios from 'axios'
import { merge } from 'lodash-es'
import time from '~/utils/time'
import { normalizeQuery, parseTokens } from '~/utils/search'
-import Pagination from '~/components/Pagination.vue'
+import Pagination from '~/components/vui/Pagination.vue'
import ActionTable from '~/components/common/ActionTable.vue'
import OrderingMixin from '~/components/mixins/Ordering.vue'
import SmartSearchMixin from '~/components/mixins/SmartSearch.vue'
diff --git a/front/src/components/manage/library/AlbumsTable.vue b/front/src/components/manage/library/AlbumsTable.vue
index 43c9bb586..d2141bc72 100644
--- a/front/src/components/manage/library/AlbumsTable.vue
+++ b/front/src/components/manage/library/AlbumsTable.vue
@@ -188,7 +188,7 @@ import axios from 'axios'
import { merge } from 'lodash-es'
import time from '~/utils/time'
import { normalizeQuery, parseTokens } from '~/utils/search'
-import Pagination from '~/components/Pagination.vue'
+import Pagination from '~/components/vui/Pagination.vue'
import ActionTable from '~/components/common/ActionTable.vue'
import OrderingMixin from '~/components/mixins/Ordering.vue'
import SmartSearchMixin from '~/components/mixins/SmartSearch.vue'
diff --git a/front/src/components/manage/library/ArtistsTable.vue b/front/src/components/manage/library/ArtistsTable.vue
index 2e2021b20..095f740e2 100644
--- a/front/src/components/manage/library/ArtistsTable.vue
+++ b/front/src/components/manage/library/ArtistsTable.vue
@@ -187,7 +187,7 @@ import axios from 'axios'
import { merge } from 'lodash-es'
import time from '~/utils/time'
import { normalizeQuery, parseTokens } from '~/utils/search'
-import Pagination from '~/components/Pagination.vue'
+import Pagination from '~/components/vui/Pagination.vue'
import ActionTable from '~/components/common/ActionTable.vue'
import OrderingMixin from '~/components/mixins/Ordering.vue'
import SmartSearchMixin from '~/components/mixins/SmartSearch.vue'
diff --git a/front/src/components/manage/library/EditsCardList.vue b/front/src/components/manage/library/EditsCardList.vue
index cee8027f8..dce313370 100644
--- a/front/src/components/manage/library/EditsCardList.vue
+++ b/front/src/components/manage/library/EditsCardList.vue
@@ -133,7 +133,7 @@
import axios from 'axios'
import { uniq, merge } from 'lodash-es'
import time from '~/utils/time'
-import Pagination from '~/components/Pagination.vue'
+import Pagination from '~/components/vui/Pagination.vue'
import OrderingMixin from '~/components/mixins/Ordering.vue'
import EditCard from '~/components/library/EditCard.vue'
import { normalizeQuery, parseTokens } from '~/utils/search'
diff --git a/front/src/components/manage/library/LibrariesTable.vue b/front/src/components/manage/library/LibrariesTable.vue
index 67d76968a..e5d85a99d 100644
--- a/front/src/components/manage/library/LibrariesTable.vue
+++ b/front/src/components/manage/library/LibrariesTable.vue
@@ -218,7 +218,7 @@ import axios from 'axios'
import { merge } from 'lodash-es'
import time from '~/utils/time'
import { normalizeQuery, parseTokens } from '~/utils/search'
-import Pagination from '~/components/Pagination.vue'
+import Pagination from '~/components/vui/Pagination.vue'
import ActionTable from '~/components/common/ActionTable.vue'
import OrderingMixin from '~/components/mixins/Ordering.vue'
import SmartSearchMixin from '~/components/mixins/SmartSearch.vue'
diff --git a/front/src/components/manage/library/TagsTable.vue b/front/src/components/manage/library/TagsTable.vue
index 47dc00296..abd575563 100644
--- a/front/src/components/manage/library/TagsTable.vue
+++ b/front/src/components/manage/library/TagsTable.vue
@@ -149,7 +149,7 @@ import axios from 'axios'
import { merge } from 'lodash-es'
import time from '~/utils/time'
import { normalizeQuery, parseTokens } from '~/utils/search'
-import Pagination from '~/components/Pagination.vue'
+import Pagination from '~/components/vui/Pagination.vue'
import ActionTable from '~/components/common/ActionTable.vue'
import OrderingMixin from '~/components/mixins/Ordering.vue'
import SmartSearchMixin from '~/components/mixins/SmartSearch.vue'
diff --git a/front/src/components/manage/library/TracksTable.vue b/front/src/components/manage/library/TracksTable.vue
index 5dd65bc16..fa4060569 100644
--- a/front/src/components/manage/library/TracksTable.vue
+++ b/front/src/components/manage/library/TracksTable.vue
@@ -201,7 +201,7 @@ import axios from 'axios'
import { merge } from 'lodash-es'
import time from '~/utils/time'
import { normalizeQuery, parseTokens } from '~/utils/search'
-import Pagination from '~/components/Pagination.vue'
+import Pagination from '~/components/vui/Pagination.vue'
import ActionTable from '~/components/common/ActionTable.vue'
import OrderingMixin from '~/components/mixins/Ordering.vue'
import SmartSearchMixin from '~/components/mixins/SmartSearch.vue'
diff --git a/front/src/components/manage/library/UploadsTable.vue b/front/src/components/manage/library/UploadsTable.vue
index 102e0d6f1..523a67d9b 100644
--- a/front/src/components/manage/library/UploadsTable.vue
+++ b/front/src/components/manage/library/UploadsTable.vue
@@ -310,7 +310,7 @@ import axios from 'axios'
import { merge } from 'lodash-es'
import time from '~/utils/time'
import { normalizeQuery, parseTokens } from '~/utils/search'
-import Pagination from '~/components/Pagination.vue'
+import Pagination from '~/components/vui/Pagination.vue'
import ActionTable from '~/components/common/ActionTable.vue'
import OrderingMixin from '~/components/mixins/Ordering.vue'
import SmartSearchMixin from '~/components/mixins/SmartSearch.vue'
diff --git a/front/src/components/manage/moderation/AccountsTable.vue b/front/src/components/manage/moderation/AccountsTable.vue
index 9c82c81e8..55913e609 100644
--- a/front/src/components/manage/moderation/AccountsTable.vue
+++ b/front/src/components/manage/moderation/AccountsTable.vue
@@ -174,7 +174,7 @@ import axios from 'axios'
import { merge } from 'lodash-es'
import time from '~/utils/time'
import { normalizeQuery, parseTokens } from '~/utils/search'
-import Pagination from '~/components/Pagination.vue'
+import Pagination from '~/components/vui/Pagination.vue'
import ActionTable from '~/components/common/ActionTable.vue'
import OrderingMixin from '~/components/mixins/Ordering.vue'
import SmartSearchMixin from '~/components/mixins/SmartSearch.vue'
diff --git a/front/src/components/manage/moderation/DomainsTable.vue b/front/src/components/manage/moderation/DomainsTable.vue
index 3de61a838..42ae09677 100644
--- a/front/src/components/manage/moderation/DomainsTable.vue
+++ b/front/src/components/manage/moderation/DomainsTable.vue
@@ -184,7 +184,7 @@
import axios from 'axios'
import { merge } from 'lodash-es'
import time from '~/utils/time'
-import Pagination from '~/components/Pagination.vue'
+import Pagination from '~/components/vui/Pagination.vue'
import ActionTable from '~/components/common/ActionTable.vue'
import OrderingMixin from '~/components/mixins/Ordering.vue'
import useSharedLabels from '~/composables/locale/useSharedLabels'
diff --git a/front/src/components/manage/users/InvitationsTable.vue b/front/src/components/manage/users/InvitationsTable.vue
index f3278652c..4a329a045 100644
--- a/front/src/components/manage/users/InvitationsTable.vue
+++ b/front/src/components/manage/users/InvitationsTable.vue
@@ -158,7 +158,7 @@
import axios from 'axios'
import moment from 'moment'
import { merge } from 'lodash-es'
-import Pagination from '~/components/Pagination.vue'
+import Pagination from '~/components/vui/Pagination.vue'
import ActionTable from '~/components/common/ActionTable.vue'
import OrderingMixin from '~/components/mixins/Ordering.vue'
import useSharedLabels from '~/composables/locale/useSharedLabels'
diff --git a/front/src/components/manage/users/UsersTable.vue b/front/src/components/manage/users/UsersTable.vue
index 627e6759a..c1696e30c 100644
--- a/front/src/components/manage/users/UsersTable.vue
+++ b/front/src/components/manage/users/UsersTable.vue
@@ -201,7 +201,7 @@
import axios from 'axios'
import { merge } from 'lodash-es'
import time from '~/utils/time'
-import Pagination from '~/components/Pagination.vue'
+import Pagination from '~/components/vui/Pagination.vue'
import ActionTable from '~/components/common/ActionTable.vue'
import OrderingMixin from '~/components/mixins/Ordering.vue'
import useSharedLabels from '~/composables/locale/useSharedLabels'
diff --git a/front/src/components/moderation/FilterModal.vue b/front/src/components/moderation/FilterModal.vue
index 81044ec3b..5dececd0e 100644
--- a/front/src/components/moderation/FilterModal.vue
+++ b/front/src/components/moderation/FilterModal.vue
@@ -138,7 +138,7 @@ export default {
return axios.post('moderation/content-filters/', payload).then(response => {
logger.info('Successfully added track to playlist')
self.update(false)
- self.$store.commit('moderation/lastUpdate', new Date())
+ self.$store.moderation.state.lastUpdate = new Date()
self.isLoading = false
const msg = this.$pgettext('*/Moderation/Message', 'Content filter successfully added')
self.$store.commit('moderation/contentFilter', response.data)
diff --git a/front/src/components/Pagination.vue b/front/src/components/vui/Pagination.vue
similarity index 84%
rename from front/src/components/Pagination.vue
rename to front/src/components/vui/Pagination.vue
index f91b78f25..839a493d4 100644
--- a/front/src/components/Pagination.vue
+++ b/front/src/components/vui/Pagination.vue
@@ -23,14 +23,12 @@ const current = useVModel(props, 'current', emit)
const RANGE = 2
const pages = computed(() => {
const start = range(1, 1 + RANGE)
- const end = range(maxPage.value - RANGE, maxPage.value)
+ const end = range(maxPage.value - RANGE + 1, maxPage.value + 1)
const middle = range(
clamp(props.current - RANGE + 1, 1, maxPage.value),
clamp(props.current + RANGE, 1, maxPage.value)
).filter(i => !start.includes(i) && !end.includes(i))
- console.log(middle, end)
-
return [
...start,
middle.length === 0 && 'skip',
@@ -80,16 +78,26 @@ const labels = computed(() => ({
-
- {{ page }}
- …
-
+
+ …
+
+
+ {{ page }}
+
+
= {
empty (state) {
state.filters = []
},
- lastUpdate (state, value) {
- state.lastUpdate = value
- },
contentFilter (state, value) {
state.filters.push(value)
},
diff --git a/front/src/store/ui.ts b/front/src/store/ui.ts
index 9ca6a2b42..03085dd81 100644
--- a/front/src/store/ui.ts
+++ b/front/src/store/ui.ts
@@ -18,7 +18,7 @@ export type RouteWithPreferences = 'library.artists.browse' | 'library.podcasts.
export type WebSocketEventName = 'inbox.item_added' | 'import.status_updated' | 'mutation.created' | 'mutation.updated'
| 'report.created' | 'user_request.created' | 'Listen'
-export type OrderingField = 'creation_date' | 'title' | 'album__title' | 'artist__name'
+export type OrderingField = 'creation_date' | 'title' | 'album__title' | 'artist__name' | 'release_date'
export type OrderingDirection = '-' | '+'
interface RoutePreferences {
paginateBy: number
diff --git a/front/src/views/Search.vue b/front/src/views/Search.vue
index 67fb2992e..85f5bb8ce 100644
--- a/front/src/views/Search.vue
+++ b/front/src/views/Search.vue
@@ -153,7 +153,7 @@ import RemoteSearchForm from '~/components/RemoteSearchForm.vue'
import ArtistCard from '~/components/audio/artist/Card.vue'
import AlbumCard from '~/components/audio/album/Card.vue'
import TrackTable from '~/components/audio/track/Table.vue'
-import Pagination from '~/components/Pagination.vue'
+import Pagination from '~/components/vui/Pagination.vue'
import PlaylistCardList from '~/components/playlists/CardList.vue'
import RadioCard from '~/components/radios/Card.vue'
import TagsList from '~/components/tags/List.vue'
diff --git a/front/src/views/admin/moderation/ReportsList.vue b/front/src/views/admin/moderation/ReportsList.vue
index 66c7b4dd8..75e2fd79c 100644
--- a/front/src/views/admin/moderation/ReportsList.vue
+++ b/front/src/views/admin/moderation/ReportsList.vue
@@ -129,7 +129,7 @@
import axios from 'axios'
import { merge } from 'lodash-es'
import time from '~/utils/time'
-import Pagination from '~/components/Pagination.vue'
+import Pagination from '~/components/vui/Pagination.vue'
import OrderingMixin from '~/components/mixins/Ordering.vue'
import ReportCard from '~/components/manage/moderation/ReportCard.vue'
import ReportCategoryDropdown from '~/components/moderation/ReportCategoryDropdown.vue'
diff --git a/front/src/views/admin/moderation/RequestsList.vue b/front/src/views/admin/moderation/RequestsList.vue
index 3110de3de..84ceebb79 100644
--- a/front/src/views/admin/moderation/RequestsList.vue
+++ b/front/src/views/admin/moderation/RequestsList.vue
@@ -127,7 +127,7 @@
import axios from 'axios'
import { merge } from 'lodash-es'
import time from '~/utils/time'
-import Pagination from '~/components/Pagination.vue'
+import Pagination from '~/components/vui/Pagination.vue'
import OrderingMixin from '~/components/mixins/Ordering.vue'
import UserRequestCard from '~/components/manage/moderation/UserRequestCard.vue'
import { normalizeQuery, parseTokens } from '~/utils/search'
diff --git a/front/src/views/content/libraries/FilesTable.vue b/front/src/views/content/libraries/FilesTable.vue
index 45b5a546d..b7017d2e5 100644
--- a/front/src/views/content/libraries/FilesTable.vue
+++ b/front/src/views/content/libraries/FilesTable.vue
@@ -270,7 +270,7 @@ import { merge } from 'lodash-es'
import time from '~/utils/time'
import { normalizeQuery, parseTokens } from '~/utils/search'
-import Pagination from '~/components/Pagination.vue'
+import Pagination from '~/components/vui/Pagination.vue'
import ActionTable from '~/components/common/ActionTable.vue'
import OrderingMixin from '~/components/mixins/Ordering.vue'
import SmartSearchMixin from '~/components/mixins/SmartSearch.vue'
diff --git a/front/src/views/playlists/List.vue b/front/src/views/playlists/List.vue
index ec1050024..cf50cd52c 100644
--- a/front/src/views/playlists/List.vue
+++ b/front/src/views/playlists/List.vue
@@ -143,7 +143,7 @@ import $ from 'jquery'
import OrderingMixin from '~/components/mixins/Ordering.vue'
import PaginationMixin from '~/components/mixins/Pagination.vue'
import PlaylistCardList from '~/components/playlists/CardList.vue'
-import Pagination from '~/components/Pagination.vue'
+import Pagination from '~/components/vui/Pagination.vue'
import useSharedLabels from '~/composables/locale/useSharedLabels'
const FETCH_URL = 'playlists/'
diff --git a/front/src/views/radios/Detail.vue b/front/src/views/radios/Detail.vue
index 3c7751b95..aa979228c 100644
--- a/front/src/views/radios/Detail.vue
+++ b/front/src/views/radios/Detail.vue
@@ -116,7 +116,7 @@
import axios from 'axios'
import TrackTable from '~/components/audio/track/Table.vue'
import RadioButton from '~/components/radios/Button.vue'
-import Pagination from '~/components/Pagination.vue'
+import Pagination from '~/components/vui/Pagination.vue'
export default {
components: {