Client:Sort:Added sorting saving for Documents and Rooms sections.

This commit is contained in:
Vlada Gazizova 2024-07-30 11:14:48 +03:00
parent 46a1e1455b
commit 8ff5a94238
2 changed files with 57 additions and 7 deletions

View File

@ -105,6 +105,17 @@ const ArticleBodyContent = (props) => {
case myFolderId:
const myFilter = FilesFilter.getDefault();
myFilter.folder = folderId;
const filterStorageItem =
userId && localStorage.getItem(`UserFilter=${userId}`);
if (filterStorageItem) {
const splitFilter = filterStorageItem.split(",");
myFilter.sortBy = splitFilter[0];
myFilter.sortOrder = splitFilter[1];
}
params = myFilter.toUrlParams();
path = getCategoryUrl(CategoryType.Personal);
@ -123,6 +134,17 @@ const ArticleBodyContent = (props) => {
case recycleBinFolderId:
const recycleBinFilter = FilesFilter.getDefault();
recycleBinFilter.folder = folderId;
const filterStorageTrash =
userId && localStorage.getItem(`UserFilterTrash=${userId}`);
if (filterStorageTrash) {
const splitFilterTrash = filterStorageTrash.split(",");
recycleBinFilter.sortBy = splitFilterTrash[0];
recycleBinFilter.sortOrder = splitFilterTrash[1];
}
params = recycleBinFilter.toUrlParams();
path = getCategoryUrl(CategoryType.Trash);

View File

@ -72,7 +72,7 @@ import debounce from "lodash.debounce";
import clone from "lodash/clone";
import Queue from "queue-promise";
import { parseHistory } from "SRC_DIR/pages/Home/InfoPanel/Body/helpers/HistoryHelper";
import { toJSON } from "@docspace/shared/api/rooms/filter";
const { FilesFilter, RoomsFilter } = api;
const storageViewAs = localStorage.getItem("viewAs");
@ -1300,10 +1300,24 @@ class FilesStore {
};
//TODO: FILTER
setFilesFilter = (filter) => {
if (!this.publicRoomStore.isPublicRoom) {
const key = `UserFilter=${this.userStore.user?.id}`;
const value = `${filter.sortBy},${filter.pageCount},${filter.sortOrder}`;
setFilesFilter = (filter, folderId = null) => {
const { recycleBinFolderId } = this.treeFoldersStore;
const key =
this.categoryType === CategoryType.Archive
? `UserFilterArchiveRoom=${this.userStore.user?.id}`
: this.categoryType === CategoryType.SharedRoom
? `UserFilterSharedRoom=${this.userStore.user?.id}`
: folderId === "recent"
? `UserFilterRecent=${this.userStore.user?.id}`
: +folderId === recycleBinFolderId
? `UserFilterTrash=${this.userStore.user?.id}`
: !this.publicRoomStore.isPublicRoom
? `UserFilter=${this.userStore.user?.id}`
: null;
if (key) {
const value = `${filter.sortBy},${filter.sortOrder}`;
localStorage.setItem(key, value);
}
@ -1330,6 +1344,21 @@ class FilesStore {
setRoomsFilter = (filter) => {
if (!this.settingsStore.withPaging) filter.pageCount = 100;
const isArchive = this.categoryType === CategoryType.Archive;
const key = isArchive
? `UserRoomsArchivedFilter=${this.userStore.user?.id}`
: `UserRoomsSharedFilter=${this.userStore.user?.id}`;
const sharedStorageFilter = JSON.parse(localStorage.getItem(key));
if (sharedStorageFilter) {
sharedStorageFilter.sortBy = filter.sortBy;
sharedStorageFilter.sortOrder = filter.sortOrder;
const value = toJSON(sharedStorageFilter);
localStorage.setItem(key, value);
}
// this.setFilterUrl(filter, true);
this.roomsFilter = filter;
@ -1463,7 +1492,6 @@ class FilesStore {
const splitFilter = filterStorageItem.split(",");
filterData.sortBy = splitFilter[0];
filterData.pageCount = +splitFilter[1];
filterData.sortOrder = splitFilter[2];
}
@ -1540,7 +1568,7 @@ class FilesStore {
//save filter for after closing preview change url
this.setTempFilter(filterData);
} else {
this.setFilesFilter(filterData); //TODO: FILTER
this.setFilesFilter(filterData, folderId); //TODO: FILTER
}
const isPrivacyFolder =