From fb87d3141abac60a434bc316931bad3416d8b511 Mon Sep 17 00:00:00 2001 From: wvffle Date: Tue, 27 Dec 2022 12:39:41 +0000 Subject: [PATCH] fix(ui): repair reactivity on search fieds in moderation views when on first page Part-of: --- .../manage/moderation/DomainsTable.vue | 12 +++-- .../manage/users/InvitationForm.vue | 1 + .../manage/users/InvitationsTable.vue | 14 ++++-- .../components/manage/users/UsersTable.vue | 10 +++- front/src/locales/en_US.json | 46 +++++++++---------- 5 files changed, 51 insertions(+), 32 deletions(-) diff --git a/front/src/components/manage/moderation/DomainsTable.vue b/front/src/components/manage/moderation/DomainsTable.vue index b0d2c3e78..4d5506066 100644 --- a/front/src/components/manage/moderation/DomainsTable.vue +++ b/front/src/components/manage/moderation/DomainsTable.vue @@ -100,10 +100,16 @@ const fetchData = async () => { } } -watchDebounced(query, () => (page.value = 1), { debounce: 300 }) +const forceFetchFirstPage = async () => { + page.value = 1 + return fetchData() +} + +watchDebounced(query, forceFetchFirstPage, { debounce: 300 }) +onOrderingUpdate(forceFetchFirstPage) +watch(allowed, forceFetchFirstPage) + watch(page, fetchData) -watch(allowed, fetchData) -onOrderingUpdate(fetchData) fetchData() const sharedLabels = useSharedLabels() diff --git a/front/src/components/manage/users/InvitationForm.vue b/front/src/components/manage/users/InvitationForm.vue index 6140d3fc3..c790b8098 100644 --- a/front/src/components/manage/users/InvitationForm.vue +++ b/front/src/components/manage/users/InvitationForm.vue @@ -31,6 +31,7 @@ const submit = async () => { try { const response = await axios.post('manage/users/invitations/', { code: code.value }) invitations.unshift(response.data) + code.value = '' } catch (error) { errors.value = (error as BackendError).backendErrors } diff --git a/front/src/components/manage/users/InvitationsTable.vue b/front/src/components/manage/users/InvitationsTable.vue index f6a1f02a5..86e820b90 100644 --- a/front/src/components/manage/users/InvitationsTable.vue +++ b/front/src/components/manage/users/InvitationsTable.vue @@ -81,10 +81,16 @@ const fetchData = async () => { } } -watchDebounced(query, () => (page.value = 1), { debounce: 300 }) -watch(isOpen, () => (page.value = 1)) +const forceFetchFirstPage = async () => { + page.value = 1 + return fetchData() +} + +watchDebounced(query, forceFetchFirstPage, { debounce: 300 }) +onOrderingUpdate(forceFetchFirstPage) +watch(isOpen, forceFetchFirstPage) + watch(page, fetchData) -onOrderingUpdate(fetchData) fetchData() const sharedLabels = useSharedLabels() @@ -182,7 +188,7 @@ const labels = computed(() => ({ #row-cells="scope" > - + {{ scope.obj.owner.username }} diff --git a/front/src/components/manage/users/UsersTable.vue b/front/src/components/manage/users/UsersTable.vue index 59cd873c0..ca228f914 100644 --- a/front/src/components/manage/users/UsersTable.vue +++ b/front/src/components/manage/users/UsersTable.vue @@ -84,9 +84,15 @@ const fetchData = async () => { } } -watchDebounced(query, () => (page.value = 1), { debounce: 300 }) +const forceFetchFirstPage = async () => { + page.value = 1 + return fetchData() +} + +watchDebounced(query, forceFetchFirstPage, { debounce: 300 }) +onOrderingUpdate(forceFetchFirstPage) + watch(page, fetchData) -onOrderingUpdate(fetchData) fetchData() const sharedLabels = useSharedLabels() diff --git a/front/src/locales/en_US.json b/front/src/locales/en_US.json index 1e93a77a0..3bf99d122 100644 --- a/front/src/locales/en_US.json +++ b/front/src/locales/en_US.json @@ -3033,29 +3033,29 @@ "filters": { "creationDate": "Creation date", "releaseDate": "Release date", - "accessedDate": "'Accessed date", - "appliedDate": "'Applied date", - "handledDate": "'Handled date", - "firstSeen": "'First seen date", - "lastSeen": "'Last seen date", - "modificationDate": "'Modification date", - "expirationDate": "'Expiration date", - "trackTitle": "'Track name", - "albumTitle": "'Album name", - "artistName": "'Artist name", - "name": "'Name", - "itemsCount": "'Items", - "size": "'Size", - "bitrate": "'Bitrate", - "duration": "'Duration", - "dateJoined": "'Sign-up date", - "lastActivity": "'Last activity", - "username": "'Username", - "domain": "'Domaimn", - "users": "'Users", - "receivedMessages": "'Received messages", - "uploads": "'Uploads", - "followers": "'Followers" + "accessedDate": "Accessed date", + "appliedDate": "Applied date", + "handledDate": "Handled date", + "firstSeen": "First seen date", + "lastSeen": "Last seen date", + "modificationDate": "Modification date", + "expirationDate": "Expiration date", + "trackTitle": "Track name", + "albumTitle": "Album name", + "artistName": "Artist name", + "name": "Name", + "itemsCount": "Items", + "size": "Size", + "bitrate": "Bitrate", + "duration": "Duration", + "dateJoined": "Sign-up date", + "lastActivity": "Last activity", + "username": "Username", + "domain": "Domaimn", + "users": "Users", + "receivedMessages": "Received messages", + "uploads": "Uploads", + "followers": "Followers" }, "scopes": { "profile": {