Merge branch 'hotfix/v2.6.1' of https://github.com/ONLYOFFICE/DocSpace-client into hotfix/v2.6.1
This commit is contained in:
commit
822cc03111
@ -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);
|
||||
|
||||
|
@ -54,6 +54,8 @@ class FilesTableHeader extends React.Component {
|
||||
showStorageInfo,
|
||||
isArchiveFolder,
|
||||
tableStorageName,
|
||||
roomsFilter,
|
||||
filter,
|
||||
} = this.props;
|
||||
|
||||
const defaultColumns = [];
|
||||
@ -365,6 +367,9 @@ class FilesTableHeader extends React.Component {
|
||||
|
||||
const tableColumns = columns.map((c) => c.enable && c.key);
|
||||
|
||||
const sortBy = isRooms ? roomsFilter.sortBy : filter.sortBy;
|
||||
const sortOrder = isRooms ? roomsFilter.sortOrder : filter.sortOrder;
|
||||
|
||||
this.setTableColumns(tableColumns);
|
||||
if (fromUpdate) {
|
||||
this.setState({
|
||||
@ -372,6 +377,8 @@ class FilesTableHeader extends React.Component {
|
||||
resetColumnsSize,
|
||||
columnStorageName,
|
||||
columnInfoPanelStorageName,
|
||||
sortBy,
|
||||
sortOrder,
|
||||
});
|
||||
} else {
|
||||
this.state = {
|
||||
@ -379,6 +386,8 @@ class FilesTableHeader extends React.Component {
|
||||
resetColumnsSize,
|
||||
columnStorageName,
|
||||
columnInfoPanelStorageName,
|
||||
sortBy,
|
||||
sortOrder,
|
||||
};
|
||||
}
|
||||
};
|
||||
@ -425,8 +434,13 @@ class FilesTableHeader extends React.Component {
|
||||
isRecentTab,
|
||||
isArchiveFolder,
|
||||
showStorageInfo,
|
||||
roomsFilter,
|
||||
filter,
|
||||
} = this.props;
|
||||
|
||||
const sortBy = isRooms ? roomsFilter.sortBy : filter.sortBy;
|
||||
const sortOrder = isRooms ? roomsFilter.sortOrder : filter.sortOrder;
|
||||
|
||||
if (
|
||||
isArchiveFolder !== prevProps.isArchiveFolder ||
|
||||
isRooms !== prevProps.isRooms ||
|
||||
@ -434,12 +448,15 @@ class FilesTableHeader extends React.Component {
|
||||
columnStorageName !== prevProps.columnStorageName ||
|
||||
columnInfoPanelStorageName !== prevProps.columnInfoPanelStorageName ||
|
||||
isRecentTab !== prevProps.isRecentTab ||
|
||||
showStorageInfo !== prevProps.showStorageInfo
|
||||
showStorageInfo !== prevProps.showStorageInfo ||
|
||||
sortBy !== this.state.sortBy ||
|
||||
sortOrder !== this.state.sortOrder
|
||||
) {
|
||||
return this.getTableColumns(true);
|
||||
}
|
||||
|
||||
const { columns } = this.state;
|
||||
|
||||
if (this.props.withContent !== prevProps.withContent) {
|
||||
const columnIndex = columns.findIndex((c) => c.key === "Share");
|
||||
if (columnIndex === -1) return;
|
||||
@ -528,9 +545,6 @@ class FilesTableHeader extends React.Component {
|
||||
t,
|
||||
containerRef,
|
||||
isHeaderChecked,
|
||||
filter,
|
||||
roomsFilter,
|
||||
isRooms,
|
||||
firstElemChecked,
|
||||
sortingVisible,
|
||||
infoPanelVisible,
|
||||
@ -547,11 +561,10 @@ class FilesTableHeader extends React.Component {
|
||||
resetColumnsSize,
|
||||
columnStorageName,
|
||||
columnInfoPanelStorageName,
|
||||
sortBy,
|
||||
sortOrder,
|
||||
} = this.state;
|
||||
|
||||
const sortBy = isRooms ? roomsFilter.sortBy : filter.sortBy;
|
||||
const sortOrder = isRooms ? roomsFilter.sortOrder : filter.sortOrder;
|
||||
|
||||
return (
|
||||
<TableHeader
|
||||
isLengthenHeader={firstElemChecked || isHeaderChecked}
|
||||
|
@ -2012,42 +2012,8 @@ const SectionFilterContent = ({
|
||||
hideableColumns.Storage = storage;
|
||||
}
|
||||
|
||||
options.push(firstName, lastName);
|
||||
|
||||
if (accountsViewAs === "table") {
|
||||
const tableColumns = isInsideGroup
|
||||
? TABLE_INSIDE_GROUP_COLUMNS
|
||||
: TABLE_PEOPLE_COLUMNS;
|
||||
|
||||
const columnsSizeInfoPanel = isInsideGroup
|
||||
? COLUMNS_INSIDE_GROUP_SIZE_INFO_PANEL
|
||||
: COLUMNS_PEOPLE_SIZE_INFO_PANEL;
|
||||
|
||||
const availableSort = localStorage
|
||||
?.getItem(`${tableColumns}=${userId}`)
|
||||
?.split(",");
|
||||
|
||||
const infoPanelColumnsSize = localStorage
|
||||
?.getItem(`${columnsSizeInfoPanel}=${userId}`)
|
||||
?.split(" ");
|
||||
|
||||
availableSort?.forEach((columnTitle) => {
|
||||
if (!hideableColumns[columnTitle]) return;
|
||||
|
||||
if (availableSort?.includes(columnTitle)) {
|
||||
const idx = availableSort.findIndex((x) => x === columnTitle);
|
||||
const hide =
|
||||
infoPanelVisible &&
|
||||
infoPanelColumnsSize &&
|
||||
infoPanelColumnsSize[idx] === "0px";
|
||||
|
||||
!hide && options.push(hideableColumns[columnTitle]);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
options.push(type, department, email);
|
||||
if (showStorageInfo) options.push(storage);
|
||||
}
|
||||
options.push(firstName, lastName, type, department, email);
|
||||
if (showStorageInfo) options.push(storage);
|
||||
|
||||
return options;
|
||||
}
|
||||
@ -2069,29 +2035,7 @@ const SectionFilterContent = ({
|
||||
default: true,
|
||||
};
|
||||
|
||||
groupsOptions.push(title);
|
||||
|
||||
if (accountsViewAs === "table") {
|
||||
const availableSort = localStorage
|
||||
?.getItem(`${TABLE_GROUPS_COLUMNS}=${userId}`)
|
||||
?.split(",");
|
||||
|
||||
const infoPanelColumnsSize = localStorage
|
||||
?.getItem(`${COLUMNS_GROUPS_SIZE_INFO_PANEL}=${userId}`)
|
||||
?.split(" ");
|
||||
|
||||
if (availableSort?.includes("Head of Group")) {
|
||||
const idx = availableSort.findIndex((x) => x === "Head of Group");
|
||||
const hide =
|
||||
infoPanelVisible &&
|
||||
infoPanelColumnsSize &&
|
||||
infoPanelColumnsSize[idx] === "0px";
|
||||
|
||||
!hide && groupsOptions.push(manager);
|
||||
}
|
||||
} else {
|
||||
groupsOptions.push(manager);
|
||||
}
|
||||
groupsOptions.push(title, manager);
|
||||
|
||||
return groupsOptions;
|
||||
}
|
||||
@ -2181,220 +2125,25 @@ const SectionFilterContent = ({
|
||||
|
||||
commonOptions.push(name);
|
||||
|
||||
if (viewAs === "table") {
|
||||
if (isRooms) {
|
||||
const availableSort = localStorage
|
||||
?.getItem(`${TABLE_ROOMS_COLUMNS}=${userId}`)
|
||||
?.split(",");
|
||||
|
||||
const infoPanelColumnsSize = localStorage
|
||||
?.getItem(`${COLUMNS_ROOMS_SIZE_INFO_PANEL}=${userId}`)
|
||||
?.split(" ");
|
||||
|
||||
const hideOption = infoPanelVisible && infoPanelColumnsSize;
|
||||
|
||||
if (availableSort?.includes("Type")) {
|
||||
const idx = availableSort.findIndex((x) => x === "Type");
|
||||
const hide = hideOption && infoPanelColumnsSize[idx] === "0px";
|
||||
|
||||
!hide && commonOptions.push(roomType);
|
||||
}
|
||||
|
||||
if (availableSort?.includes("Tags")) {
|
||||
const idx = availableSort.findIndex((x) => x === "Tags");
|
||||
const hide = hideOption && infoPanelColumnsSize[idx] === "0px";
|
||||
|
||||
!hide && commonOptions.push(tags);
|
||||
}
|
||||
|
||||
if (availableSort?.includes("Owner")) {
|
||||
const idx = availableSort.findIndex((x) => x === "Owner");
|
||||
const hide = hideOption && infoPanelColumnsSize[idx] === "0px";
|
||||
|
||||
!hide && commonOptions.push(owner);
|
||||
}
|
||||
|
||||
if (availableSort?.includes("Activity")) {
|
||||
const idx = availableSort.findIndex((x) => x === "Activity");
|
||||
const hide = hideOption && infoPanelColumnsSize[idx] === "0px";
|
||||
|
||||
!hide && commonOptions.push(modifiedDate);
|
||||
}
|
||||
|
||||
if (showStorageInfo && availableSort?.includes("Storage")) {
|
||||
const idx = availableSort.findIndex(
|
||||
(x) => x === SortByFieldName.UsedSpace,
|
||||
);
|
||||
const hide = hideOption && infoPanelColumnsSize[idx] === "0px";
|
||||
|
||||
!hide && commonOptions.push(sortByStorage);
|
||||
}
|
||||
} else if (isTrash) {
|
||||
const availableSort = localStorage
|
||||
?.getItem(`${TABLE_TRASH_COLUMNS}=${userId}`)
|
||||
?.split(",");
|
||||
|
||||
const infoPanelColumnsSize = localStorage
|
||||
?.getItem(`${COLUMNS_TRASH_SIZE_INFO_PANEL}=${userId}`)
|
||||
?.split(" ");
|
||||
|
||||
if (availableSort?.includes("Room")) {
|
||||
const idx = availableSort.findIndex((x) => x === "Room");
|
||||
const hide =
|
||||
infoPanelVisible &&
|
||||
infoPanelColumnsSize &&
|
||||
infoPanelColumnsSize[idx] === "0px";
|
||||
|
||||
// !hide && commonOptions.push(room);
|
||||
}
|
||||
if (availableSort?.includes("AuthorTrash")) {
|
||||
const idx = availableSort.findIndex((x) => x === "AuthorTrash");
|
||||
const hide =
|
||||
infoPanelVisible &&
|
||||
infoPanelColumnsSize &&
|
||||
infoPanelColumnsSize[idx] === "0px";
|
||||
|
||||
// !hide && commonOptions.push(authorOption);
|
||||
}
|
||||
if (availableSort?.includes("CreatedTrash")) {
|
||||
const idx = availableSort.findIndex((x) => x === "CreatedTrash");
|
||||
const hide =
|
||||
infoPanelVisible &&
|
||||
infoPanelColumnsSize &&
|
||||
infoPanelColumnsSize[idx] === "0px";
|
||||
|
||||
// !hide && commonOptions.push(creationDate);
|
||||
}
|
||||
if (availableSort?.includes("Erasure")) {
|
||||
const idx = availableSort.findIndex((x) => x === "Erasure");
|
||||
const hide =
|
||||
infoPanelVisible &&
|
||||
infoPanelColumnsSize &&
|
||||
infoPanelColumnsSize[idx] === "0px";
|
||||
|
||||
!hide && commonOptions.push(erasure);
|
||||
}
|
||||
if (availableSort?.includes("SizeTrash")) {
|
||||
const idx = availableSort.findIndex((x) => x === "SizeTrash");
|
||||
const hide =
|
||||
infoPanelVisible &&
|
||||
infoPanelColumnsSize &&
|
||||
infoPanelColumnsSize[idx] === "0px";
|
||||
|
||||
!hide && commonOptions.push(size);
|
||||
}
|
||||
if (availableSort?.includes("TypeTrash")) {
|
||||
const idx = availableSort.findIndex((x) => x === "TypeTrash");
|
||||
const hide =
|
||||
infoPanelVisible &&
|
||||
infoPanelColumnsSize &&
|
||||
infoPanelColumnsSize[idx] === "0px";
|
||||
|
||||
// !hide && commonOptions.push(type);
|
||||
}
|
||||
} else if (isRecentTab) {
|
||||
const availableSort = localStorage
|
||||
?.getItem(`${TABLE_RECENT_COLUMNS}=${userId}`)
|
||||
?.split(",");
|
||||
|
||||
const infoPanelColumnsSize = localStorage
|
||||
?.getItem(`${COLUMNS_RECENT_SIZE_INFO_PANEL}=${userId}`)
|
||||
?.split(" ");
|
||||
|
||||
if (availableSort?.includes("LastOpened")) {
|
||||
const idx = availableSort.findIndex((x) => x === "LastOpened");
|
||||
const hide =
|
||||
infoPanelVisible &&
|
||||
infoPanelColumnsSize &&
|
||||
infoPanelColumnsSize[idx] === "0px";
|
||||
|
||||
!hide && commonOptions.push(lastOpenedDate);
|
||||
}
|
||||
|
||||
if (availableSort?.includes("Size")) {
|
||||
const idx = availableSort.findIndex((x) => x === "Size");
|
||||
const hide =
|
||||
infoPanelVisible &&
|
||||
infoPanelColumnsSize &&
|
||||
infoPanelColumnsSize[idx] === "0px";
|
||||
|
||||
!hide && commonOptions.push(size);
|
||||
}
|
||||
} else {
|
||||
const availableSort = localStorage
|
||||
?.getItem(`${TABLE_COLUMNS}=${userId}`)
|
||||
?.split(",");
|
||||
|
||||
const infoPanelColumnsSize = localStorage
|
||||
?.getItem(`${COLUMNS_SIZE_INFO_PANEL}=${userId}`)
|
||||
?.split(" ");
|
||||
|
||||
if (availableSort?.includes("Author")) {
|
||||
const idx = availableSort.findIndex((x) => x === "Author");
|
||||
const hide =
|
||||
infoPanelVisible &&
|
||||
infoPanelColumnsSize &&
|
||||
infoPanelColumnsSize[idx] === "0px";
|
||||
|
||||
// !hide && commonOptions.push(authorOption);
|
||||
}
|
||||
if (availableSort?.includes("Created")) {
|
||||
const idx = availableSort.findIndex((x) => x === "Created");
|
||||
const hide =
|
||||
infoPanelVisible &&
|
||||
infoPanelColumnsSize &&
|
||||
infoPanelColumnsSize[idx] === "0px";
|
||||
|
||||
// !hide && commonOptions.push(creationDate);
|
||||
}
|
||||
if (availableSort?.includes("Modified")) {
|
||||
const idx = availableSort.findIndex((x) => x === "Modified");
|
||||
const hide =
|
||||
infoPanelVisible &&
|
||||
infoPanelColumnsSize &&
|
||||
infoPanelColumnsSize[idx] === "0px";
|
||||
|
||||
!hide && commonOptions.push(modifiedDate);
|
||||
}
|
||||
if (availableSort?.includes("Size")) {
|
||||
const idx = availableSort.findIndex((x) => x === "Size");
|
||||
const hide =
|
||||
infoPanelVisible &&
|
||||
infoPanelColumnsSize &&
|
||||
infoPanelColumnsSize[idx] === "0px";
|
||||
|
||||
!hide && commonOptions.push(size);
|
||||
}
|
||||
if (availableSort?.includes("Type")) {
|
||||
const idx = availableSort.findIndex((x) => x === "Type");
|
||||
const hide =
|
||||
infoPanelVisible &&
|
||||
infoPanelColumnsSize &&
|
||||
infoPanelColumnsSize[idx] === "0px";
|
||||
|
||||
// !hide && commonOptions.push(type);
|
||||
}
|
||||
}
|
||||
if (isRooms) {
|
||||
commonOptions.push(roomType);
|
||||
commonOptions.push(tags);
|
||||
commonOptions.push(owner);
|
||||
commonOptions.push(modifiedDate);
|
||||
showStorageInfo && commonOptions.push(sortByStorage);
|
||||
} else if (isTrash) {
|
||||
// commonOptions.push(authorOption);
|
||||
// commonOptions.push(creationDate);
|
||||
commonOptions.push(erasure);
|
||||
commonOptions.push(size);
|
||||
// commonOptions.push(type);
|
||||
} else {
|
||||
if (isRooms) {
|
||||
commonOptions.push(roomType);
|
||||
commonOptions.push(tags);
|
||||
commonOptions.push(owner);
|
||||
commonOptions.push(modifiedDate);
|
||||
showStorageInfo && commonOptions.push(sortByStorage);
|
||||
} else if (isTrash) {
|
||||
// commonOptions.push(authorOption);
|
||||
// commonOptions.push(creationDate);
|
||||
commonOptions.push(erasure);
|
||||
commonOptions.push(size);
|
||||
// commonOptions.push(type);
|
||||
} else {
|
||||
// commonOptions.push(authorOption);
|
||||
// commonOptions.push(creationDate);
|
||||
commonOptions.push(modifiedDate);
|
||||
commonOptions.push(size);
|
||||
// commonOptions.push(type);
|
||||
}
|
||||
// commonOptions.push(authorOption);
|
||||
// commonOptions.push(creationDate);
|
||||
commonOptions.push(modifiedDate);
|
||||
commonOptions.push(size);
|
||||
// commonOptions.push(type);
|
||||
isRecentTab && commonOptions.push(lastOpenedDate);
|
||||
}
|
||||
|
||||
return commonOptions;
|
||||
|
@ -38,6 +38,7 @@ const MyDocumentsTabs = ({
|
||||
setFilter,
|
||||
showBodyLoader,
|
||||
isRoot,
|
||||
user,
|
||||
}) => {
|
||||
const { t } = useTranslation(["Common", "Files"]);
|
||||
|
||||
@ -56,13 +57,25 @@ const MyDocumentsTabs = ({
|
||||
const filter = FilesFilter.getDefault();
|
||||
const url = window.DocSpace.location.pathname;
|
||||
|
||||
if (e.id === "recent") {
|
||||
const recent = e.id === "recent";
|
||||
|
||||
const filterStorageItem = user?.id
|
||||
? recent
|
||||
? localStorage.getItem(`UserFilterRecent=${user.id}`)
|
||||
: localStorage.getItem(`UserFilter=${user.id}`)
|
||||
: null;
|
||||
|
||||
if (filterStorageItem) {
|
||||
const splitFilter = filterStorageItem.split(",");
|
||||
|
||||
filter.sortBy = splitFilter[0];
|
||||
filter.sortOrder = splitFilter[1];
|
||||
} else if (recent) filter.sortBy = "LastOpened";
|
||||
|
||||
if (recent) {
|
||||
filter.folder = e.id;
|
||||
filter.searchArea = 3;
|
||||
filter.sortBy = "LastOpened";
|
||||
} else {
|
||||
filter.searchArea = null;
|
||||
}
|
||||
} else filter.searchArea = null;
|
||||
|
||||
setFilter(filter);
|
||||
window.DocSpace.navigate(`${url}?${filter.toUrlParams()}`);
|
||||
@ -83,17 +96,18 @@ const MyDocumentsTabs = ({
|
||||
};
|
||||
|
||||
export default inject(
|
||||
({ treeFoldersStore, filesStore, clientLoadingStore }) => {
|
||||
({ treeFoldersStore, filesStore, clientLoadingStore, userStore }) => {
|
||||
const { isPersonalRoom, isRecentTab, isRoot } = treeFoldersStore;
|
||||
const { setFilter } = filesStore;
|
||||
const { showBodyLoader } = clientLoadingStore;
|
||||
|
||||
const { user } = userStore;
|
||||
return {
|
||||
isPersonalRoom,
|
||||
isRecentTab,
|
||||
setFilter,
|
||||
showBodyLoader,
|
||||
isRoot,
|
||||
user,
|
||||
};
|
||||
},
|
||||
)(observer(MyDocumentsTabs));
|
||||
|
@ -1942,7 +1942,7 @@ class ContextOptionsStore {
|
||||
selection.findIndex((k) => k.security.Download) !== -1;
|
||||
|
||||
const favoriteItems = selection.filter((k) =>
|
||||
k.contextOptions.includes("mark-as-favorite"),
|
||||
k.contextOptions?.includes("mark-as-favorite"),
|
||||
);
|
||||
|
||||
const moveItems = selection.filter((k) =>
|
||||
|
@ -1459,6 +1459,23 @@ class FilesActionStore {
|
||||
|
||||
filter.folder = id;
|
||||
|
||||
if (isRoom) {
|
||||
const key =
|
||||
categoryType === CategoryType.Archive
|
||||
? `UserFilterArchiveRoom=${this.userStore.user?.id}`
|
||||
: `UserFilterSharedRoom=${this.userStore.user?.id}`;
|
||||
|
||||
const filterStorageSharedRoom =
|
||||
this.userStore.user?.id && localStorage.getItem(key);
|
||||
|
||||
if (filterStorageSharedRoom) {
|
||||
const splitFilter = filterStorageSharedRoom.split(",");
|
||||
|
||||
filter.sortBy = splitFilter[0];
|
||||
filter.sortOrder = splitFilter[1];
|
||||
}
|
||||
}
|
||||
|
||||
const url = getCategoryUrl(categoryType, id);
|
||||
|
||||
window.DocSpace.navigate(`${url}?${filter.toUrlParams()}`, { state });
|
||||
@ -2334,7 +2351,8 @@ class FilesActionStore {
|
||||
onMarkAsRead = (item) => this.markAsRead([], [`${item.id}`], item);
|
||||
|
||||
openFileAction = (item, t, e) => {
|
||||
const { openDocEditor, isPrivacyFolder, setSelection } = this.filesStore;
|
||||
const { openDocEditor, isPrivacyFolder, setSelection, categoryType } =
|
||||
this.filesStore;
|
||||
const { currentDeviceType } = this.settingsStore;
|
||||
const { fileItemsList } = this.pluginStore;
|
||||
const { enablePlugins } = this.settingsStore;
|
||||
@ -2384,6 +2402,30 @@ class FilesActionStore {
|
||||
);
|
||||
|
||||
const filter = FilesFilter.getDefault();
|
||||
|
||||
const filterObj = FilesFilter.getFilter(window.location);
|
||||
|
||||
if (isRoom) {
|
||||
const key =
|
||||
categoryType === CategoryType.Archive
|
||||
? `UserFilterArchiveRoom=${this.userStore.user?.id}`
|
||||
: `UserFilterSharedRoom=${this.userStore.user?.id}`;
|
||||
|
||||
const filterStorageSharedRoom =
|
||||
this.userStore.user?.id && localStorage.getItem(key);
|
||||
|
||||
if (filterStorageSharedRoom) {
|
||||
const splitFilter = filterStorageSharedRoom.split(",");
|
||||
|
||||
filter.sortBy = splitFilter[0];
|
||||
filter.sortOrder = splitFilter[1];
|
||||
}
|
||||
} else {
|
||||
// For the document section at all levels there is one sorting
|
||||
filter.sortBy = filterObj.sortBy;
|
||||
filter.sortOrder = filterObj.sortOrder;
|
||||
}
|
||||
|
||||
filter.folder = id;
|
||||
|
||||
const url = `${path}?${filter.toUrlParams()}`;
|
||||
@ -2605,6 +2647,11 @@ class FilesActionStore {
|
||||
|
||||
const filter = FilesFilter.getDefault();
|
||||
|
||||
const filterObj = FilesFilter.getFilter(window.location);
|
||||
|
||||
filter.sortBy = filterObj.sortBy;
|
||||
filter.sortOrder = filterObj.sortOrder;
|
||||
|
||||
filter.folder = id;
|
||||
|
||||
const categoryType = getCategoryType(window.DocSpace.location);
|
||||
|
@ -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,8 +1492,7 @@ class FilesStore {
|
||||
const splitFilter = filterStorageItem.split(",");
|
||||
|
||||
filterData.sortBy = splitFilter[0];
|
||||
filterData.pageCount = +splitFilter[1];
|
||||
filterData.sortOrder = splitFilter[2];
|
||||
filterData.sortOrder = splitFilter[1];
|
||||
}
|
||||
|
||||
if (!this.settingsStore.withPaging) {
|
||||
@ -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 =
|
||||
|
@ -64,10 +64,10 @@ const DEFAULT_SEARCH_AREA = RoomSearchArea.Active;
|
||||
const TAGS = "tags";
|
||||
const DEFAULT_TAGS = null;
|
||||
|
||||
const SORT_BY = "sortby";
|
||||
const SORT_BY = "sortBy";
|
||||
const DEFAULT_SORT_BY = "DateAndTime";
|
||||
|
||||
const SORT_ORDER = "sortorder";
|
||||
const SORT_ORDER = "sortOrder";
|
||||
const DEFAULT_SORT_ORDER = "descending";
|
||||
|
||||
const EXCLUDE_SUBJECT = "excludeSubject";
|
||||
@ -85,6 +85,21 @@ const DEFAULT_QUOTA_FILTER = null;
|
||||
const STORAGE_FILTER = "storageFilter";
|
||||
const DEFAULT_STORAGE_FILTER = null;
|
||||
|
||||
export const toJSON = (filter) => {
|
||||
const filterObject = transform(
|
||||
filter,
|
||||
(result, value, key) => {
|
||||
if (value instanceof Function) return result;
|
||||
if (value === null || value === false) return result;
|
||||
|
||||
result[key] = value;
|
||||
},
|
||||
{},
|
||||
);
|
||||
|
||||
return JSON.stringify(filterObject);
|
||||
};
|
||||
|
||||
class RoomsFilter {
|
||||
static getDefault(userId, searchArea) {
|
||||
const defaultFilter = new RoomsFilter(
|
||||
@ -264,19 +279,6 @@ class RoomsFilter {
|
||||
return this.page > 0;
|
||||
};
|
||||
|
||||
toJSON = (filter) => {
|
||||
const filterObject = transform(
|
||||
filter,
|
||||
(result, value, key) => {
|
||||
if (value instanceof Function) return result;
|
||||
if (value === null || value === false) return result;
|
||||
result[key] = value;
|
||||
},
|
||||
{},
|
||||
);
|
||||
return JSON.stringify(filterObject);
|
||||
};
|
||||
|
||||
toApiUrlParams = () => {
|
||||
const {
|
||||
page,
|
||||
@ -422,7 +424,7 @@ class RoomsFilter {
|
||||
if (!sharedStorageFilter && userId) {
|
||||
localStorage.setItem(
|
||||
`UserRoomsSharedFilter=${userId}`,
|
||||
this.toJSON(defaultFilter),
|
||||
toJSON(defaultFilter),
|
||||
);
|
||||
}
|
||||
|
||||
@ -430,11 +432,11 @@ class RoomsFilter {
|
||||
defaultFilter.searchArea = RoomSearchArea.Archive;
|
||||
localStorage.setItem(
|
||||
`UserRoomsArchivedFilter=${userId}`,
|
||||
this.toJSON(defaultFilter),
|
||||
toJSON(defaultFilter),
|
||||
);
|
||||
}
|
||||
|
||||
const filterJSON = this.toJSON(dtoFilter);
|
||||
const filterJSON = toJSON(dtoFilter);
|
||||
|
||||
const currentStorageFilter =
|
||||
dtoFilter.searchArea === RoomSearchArea.Active
|
||||
|
@ -77,6 +77,8 @@ class TableHeaderComponent extends React.Component<
|
||||
infoPanelVisible,
|
||||
columnStorageName,
|
||||
columnInfoPanelStorageName,
|
||||
sortBy,
|
||||
sorted,
|
||||
} = this.props;
|
||||
|
||||
if (columnStorageName === prevProps.columnStorageName) {
|
||||
@ -84,6 +86,14 @@ class TableHeaderComponent extends React.Component<
|
||||
? localStorage.getItem(columnInfoPanelStorageName)
|
||||
: localStorage.getItem(columnStorageName);
|
||||
|
||||
if (sortBy !== prevProps.sortBy || sorted !== prevProps.sorted) {
|
||||
const columnIndex = columns.findIndex((c) => c?.sortBy === sortBy);
|
||||
|
||||
if (columnIndex > -1 && !columns[columnIndex].enable) {
|
||||
columns[columnIndex].onChange?.(columns[columnIndex].key);
|
||||
}
|
||||
}
|
||||
|
||||
// columns.length + 1 - its settings column
|
||||
if (storageSize && storageSize.split(" ").length !== columns.length + 1) {
|
||||
return this.resetColumns();
|
||||
|
Loading…
Reference in New Issue
Block a user