diff --git a/packages/client/public/locales/en/Files.json b/packages/client/public/locales/en/Files.json index 3d8601db58..01a7c36620 100644 --- a/packages/client/public/locales/en/Files.json +++ b/packages/client/public/locales/en/Files.json @@ -84,6 +84,7 @@ "GoToPersonal": "Go to Documents", "Images": "Images", "InviteUsersInRoom": "Invite users in room", + "LastActivity": "Last activity", "LeaveRoomDescription": "You are the owner of this room. Before you leave the room, you must transfer the owner's role to another user.", "LeaveTheRoom": "Leave the room", "LeftAndAppointNewOwner": "You have left the room and appointed a new owner", diff --git a/packages/client/src/pages/Home/Section/Body/TableView/TableHeader.js b/packages/client/src/pages/Home/Section/Body/TableView/TableHeader.js index 2e65b2b9eb..a3d598a44c 100644 --- a/packages/client/src/pages/Home/Section/Body/TableView/TableHeader.js +++ b/packages/client/src/pages/Home/Section/Body/TableView/TableHeader.js @@ -102,7 +102,7 @@ class FilesTableHeader extends React.Component { }, { key: "Activity", - title: t("ByLastModified"), + title: t("LastActivity"), enable: this.props.roomColumnActivityIsEnabled, resizable: true, sortBy: SortByFieldName.ModifiedDate, @@ -211,9 +211,9 @@ class FilesTableHeader extends React.Component { } else if (isRecentTab) { const authorBlock = !isPublicRoom ? { - key: "Author", + key: "AuthorRecent", title: t("ByAuthor"), - enable: this.props.authorColumnIsEnabled, + enable: this.props.authorRecentColumnIsEnabled, resizable: true, sortBy: SortByFieldName.Author, // onClick: this.onFilter, @@ -232,11 +232,12 @@ class FilesTableHeader extends React.Component { minWidth: 210, onClick: this.onFilter, }, + { ...authorBlock }, { - key: "Created", + key: "CreatedRecent", title: t("ByCreation"), - enable: this.props.createdColumnIsEnabled, + enable: this.props.createdRecentColumnIsEnabled, resizable: true, sortBy: SortByFieldName.CreationDate, // onClick: this.onFilter, @@ -252,27 +253,27 @@ class FilesTableHeader extends React.Component { onChange: this.onColumnChange, }, { - key: "Modified", + key: "ModifiedRecent", title: t("ByLastModified"), - enable: this.props.modifiedColumnIsEnabled, + enable: this.props.modifiedRecentColumnIsEnabled, resizable: true, sortBy: SortByFieldName.ModifiedDate, // onClick: this.onFilter, onChange: this.onColumnChange, }, { - key: "Size", + key: "SizeRecent", title: t("Common:Size"), - enable: this.props.sizeColumnIsEnabled, + enable: this.props.sizeRecentColumnIsEnabled, resizable: true, sortBy: SortByFieldName.Size, onClick: this.onFilter, onChange: this.onColumnChange, }, { - key: "Type", + key: "TypeRecent", title: t("Common:Type"), - enable: this.props.typeColumnIsEnabled, + enable: this.props.typeRecentColumnIsEnabled, resizable: true, sortBy: SortByFieldName.Type, // onClick: this.onFilter, @@ -359,7 +360,7 @@ class FilesTableHeader extends React.Component { defaultColumns.push(...columns); } - let columns = getColumns(defaultColumns); + let columns = getColumns(defaultColumns, isRecentTab); const storageColumns = localStorage.getItem(tableStorageName); const splitColumns = storageColumns && storageColumns.split(","); const resetColumnsSize = @@ -438,11 +439,14 @@ class FilesTableHeader extends React.Component { showStorageInfo, roomsFilter, filter, + changeDocumentsTabs, } = this.props; const sortBy = isRooms ? roomsFilter.sortBy : filter.sortBy; const sortOrder = isRooms ? roomsFilter.sortOrder : filter.sortOrder; + const tabChangeCompleted = !(this.state.isRecentTab && changeDocumentsTabs); + if ( isArchiveFolder !== prevProps.isArchiveFolder || isRooms !== prevProps.isRooms || @@ -451,8 +455,8 @@ class FilesTableHeader extends React.Component { columnInfoPanelStorageName !== prevProps.columnInfoPanelStorageName || isRecentTab !== this.state.isRecentTab || showStorageInfo !== prevProps.showStorageInfo || - sortBy !== this.state.sortBy || - sortOrder !== this.state.sortOrder + (tabChangeCompleted && sortBy !== this.state.sortBy) || + (tabChangeCompleted && sortOrder !== this.state.sortOrder) ) { return this.getTableColumns(true); } @@ -650,11 +654,18 @@ export default inject( roomColumnActivityIsEnabled, roomQuotaColumnIsEnable, + authorRecentColumnIsEnabled, + modifiedRecentColumnIsEnabled, + createdRecentColumnIsEnabled, + sizeRecentColumnIsEnabled, + typeRecentColumnIsEnabled, + getColumns, setColumnEnable, } = tableStore; const { isPublicRoom, publicRoomKey } = publicRoomStore; + const { changeDocumentsTabs } = selectedFolderStore; return { setRoomsFilter, @@ -701,6 +712,12 @@ export default inject( roomColumnActivityIsEnabled, roomQuotaColumnIsEnable, + authorRecentColumnIsEnabled, + modifiedRecentColumnIsEnabled, + createdRecentColumnIsEnabled, + sizeRecentColumnIsEnabled, + typeRecentColumnIsEnabled, + getColumns, setColumnEnable, isTrashFolder, @@ -713,6 +730,7 @@ export default inject( isDefaultRoomsQuotaSet, showStorageInfo, isArchiveFolder, + changeDocumentsTabs, }; }, )( diff --git a/packages/client/src/pages/Home/Section/Body/TableView/sub-components/RecentRowData.js b/packages/client/src/pages/Home/Section/Body/TableView/sub-components/RecentRowData.js index b8af6e6856..b018b46249 100644 --- a/packages/client/src/pages/Home/Section/Body/TableView/sub-components/RecentRowData.js +++ b/packages/client/src/pages/Home/Section/Body/TableView/sub-components/RecentRowData.js @@ -40,11 +40,11 @@ import { const RecentRowDataComponent = (props) => { const { - authorColumnIsEnabled, - createdColumnIsEnabled, - modifiedColumnIsEnabled, - sizeColumnIsEnabled, - typeColumnIsEnabled, + authorRecentColumnIsEnabled, + createdRecentColumnIsEnabled, + modifiedRecentColumnIsEnabled, + sizeRecentColumnIsEnabled, + typeRecentColumnIsEnabled, quickButtonsColumnIsEnabled, lastOpenedColumnIsEnabled, @@ -87,15 +87,17 @@ const RecentRowDataComponent = (props) => { - {authorColumnIsEnabled ? ( + {authorRecentColumnIsEnabled ? ( {
)} - {createdColumnIsEnabled ? ( + {createdRecentColumnIsEnabled ? ( {
)} - {modifiedColumnIsEnabled ? ( + {modifiedRecentColumnIsEnabled ? ( {
)} - {sizeColumnIsEnabled ? ( + {sizeRecentColumnIsEnabled ? ( {
)} - {typeColumnIsEnabled ? ( + {typeRecentColumnIsEnabled ? ( { export default inject(({ tableStore }) => { const { - authorColumnIsEnabled, - createdColumnIsEnabled, - modifiedColumnIsEnabled, - sizeColumnIsEnabled, - typeColumnIsEnabled, + authorRecentColumnIsEnabled, + createdRecentColumnIsEnabled, + modifiedRecentColumnIsEnabled, + sizeRecentColumnIsEnabled, + typeRecentColumnIsEnabled, quickButtonsColumnIsEnabled, lastOpenedColumnIsEnabled, tableStorageName, } = tableStore; return { - authorColumnIsEnabled, - createdColumnIsEnabled, - modifiedColumnIsEnabled, - sizeColumnIsEnabled, - typeColumnIsEnabled, + authorRecentColumnIsEnabled, + createdRecentColumnIsEnabled, + modifiedRecentColumnIsEnabled, + sizeRecentColumnIsEnabled, + typeRecentColumnIsEnabled, quickButtonsColumnIsEnabled, lastOpenedColumnIsEnabled, tableStorageName, diff --git a/packages/client/src/pages/Home/Section/Filter/index.js b/packages/client/src/pages/Home/Section/Filter/index.js index 85da6ece3a..567924e0a8 100644 --- a/packages/client/src/pages/Home/Section/Filter/index.js +++ b/packages/client/src/pages/Home/Section/Filter/index.js @@ -2054,6 +2054,12 @@ const SectionFilterContent = ({ label: t("Common:LastModifiedDate"), default: true, }; + const activityDate = { + id: "sort-by_activity", + key: SortByFieldName.ModifiedDate, + label: t("Common:LastActivityDate"), + default: true, + }; const lastOpenedDate = { id: "sort-by_last-opened", key: SortByFieldName.LastOpened, @@ -2129,7 +2135,7 @@ const SectionFilterContent = ({ commonOptions.push(roomType); commonOptions.push(tags); commonOptions.push(owner); - commonOptions.push(modifiedDate); + commonOptions.push(activityDate); showStorageInfo && commonOptions.push(sortByStorage); } else if (isTrash) { // commonOptions.push(authorOption); diff --git a/packages/client/src/pages/Home/Section/Tabs/MyDocumentsTabs/index.js b/packages/client/src/pages/Home/Section/Tabs/MyDocumentsTabs/index.js index 51f216292b..c87231bb96 100644 --- a/packages/client/src/pages/Home/Section/Tabs/MyDocumentsTabs/index.js +++ b/packages/client/src/pages/Home/Section/Tabs/MyDocumentsTabs/index.js @@ -39,6 +39,7 @@ const MyDocumentsTabs = ({ showBodyLoader, isRoot, user, + setChangeDocumentsTabs, }) => { const { t } = useTranslation(["Common", "Files"]); @@ -77,6 +78,7 @@ const MyDocumentsTabs = ({ filter.searchArea = 3; } else filter.searchArea = null; + setChangeDocumentsTabs(true); setFilter(filter); window.DocSpace.navigate(`${url}?${filter.toUrlParams()}`); }; @@ -96,11 +98,19 @@ const MyDocumentsTabs = ({ }; export default inject( - ({ treeFoldersStore, filesStore, clientLoadingStore, userStore }) => { + ({ + treeFoldersStore, + filesStore, + clientLoadingStore, + userStore, + selectedFolderStore, + }) => { const { isPersonalRoom, isRecentTab, isRoot } = treeFoldersStore; const { setFilter } = filesStore; const { showBodyLoader } = clientLoadingStore; const { user } = userStore; + const { setChangeDocumentsTabs } = selectedFolderStore; + return { isPersonalRoom, isRecentTab, @@ -108,6 +118,7 @@ export default inject( showBodyLoader, isRoot, user, + setChangeDocumentsTabs, }; }, )(observer(MyDocumentsTabs)); diff --git a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/Manager.js b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/Manager.js index a3c1c572bb..cf37cb5c80 100644 --- a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/Manager.js +++ b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/Manager.js @@ -119,7 +119,7 @@ const Manager = (props) => { const [columnsOptions, setColumnsOptions] = useState([ { key: "Owner", label: t("Common:Owner") }, - { key: "Activity", label: t("Files:ByLastModified") }, + { key: "Activity", label: t("Files:LastActivity") }, ]); const [sortBy, setSortBy] = useState(dataSortBy[0]); diff --git a/packages/client/src/store/SelectedFolderStore.ts b/packages/client/src/store/SelectedFolderStore.ts index ce1f7a8c1c..4231802f6a 100644 --- a/packages/client/src/store/SelectedFolderStore.ts +++ b/packages/client/src/store/SelectedFolderStore.ts @@ -147,6 +147,8 @@ class SelectedFolderStore { isCustomQuota: boolean | undefined; + changeDocumentsTabs = false; + constructor(settingsStore: SettingsStore) { makeAutoObservable(this); this.settingsStore = settingsStore; @@ -256,6 +258,10 @@ class SelectedFolderStore { this.shared = shared; }; + setChangeDocumentsTabs = (changeDocumentsTabs: boolean) => { + this.changeDocumentsTabs = changeDocumentsTabs; + }; + updateEditedSelectedRoom = (title = this.title, tags = this.tags) => { this.title = title; this.tags = tags; @@ -352,6 +358,8 @@ class SelectedFolderStore { this[key] = item; } }); + + this.setChangeDocumentsTabs(false); } selectedFolder?.pathParts?.forEach((value) => { diff --git a/packages/client/src/store/TableStore.js b/packages/client/src/store/TableStore.js index 17ecd1d76f..5bb9bbcc30 100644 --- a/packages/client/src/store/TableStore.js +++ b/packages/client/src/store/TableStore.js @@ -63,16 +63,22 @@ class TableStore { authorColumnIsEnabled = false; roomColumnIsEnabled = true; erasureColumnIsEnabled = true; - createdColumnIsEnabled = true; + createdColumnIsEnabled = false; modifiedColumnIsEnabled = true; sizeColumnIsEnabled = true; - typeColumnIsEnabled = true; + typeColumnIsEnabled = false; quickButtonsColumnIsEnabled = true; + + authorRecentColumnIsEnabled = true; + modifiedRecentColumnIsEnabled = false; + createdRecentColumnIsEnabled = false; + sizeRecentColumnIsEnabled = true; + typeRecentColumnIsEnabled = false; lastOpenedColumnIsEnabled = true; authorTrashColumnIsEnabled = true; createdTrashColumnIsEnabled = false; - sizeTrashColumnIsEnabled = false; + sizeTrashColumnIsEnabled = true; typeTrashColumnIsEnabled = false; typeAccountsColumnIsEnabled = true; @@ -120,14 +126,26 @@ class TableStore { this.authorColumnIsEnabled = enable; }; + setAuthorRecentColumn = (enable) => { + this.authorRecentColumnIsEnabled = enable; + }; + setCreatedColumn = (enable) => { this.createdColumnIsEnabled = enable; }; + setCreatedRecentColumn = (enable) => { + this.createdRecentColumnIsEnabled = enable; + }; + setModifiedColumn = (enable) => { this.modifiedColumnIsEnabled = enable; }; + setModifiedRecentColumn = (enable) => { + this.modifiedRecentColumnIsEnabled = enable; + }; + setRoomColumn = (enable) => { this.roomColumnIsEnabled = enable; }; @@ -140,10 +158,18 @@ class TableStore { this.sizeColumnIsEnabled = enable; }; + setSizeRecentColumn = (enable) => { + this.sizeRecentColumnIsEnabled = enable; + }; + setTypeColumn = (enable) => { this.typeColumnIsEnabled = enable; }; + setTypeRecentColumn = (enable) => { + this.typeRecentColumnIsEnabled = enable; + }; + setQuickButtonsColumn = (enable) => { this.quickButtonsColumnIsEnabled = enable; }; @@ -176,7 +202,7 @@ class TableStore { setAccountsInsideGroupColumnGroup = (enable) => (this.groupAccountsInsideGroupColumnIsEnabled = enable); - setColumnsEnable = (frameTableColumns) => { + setColumnsEnable = (frameTableColumns, isRecentTab) => { const storageColumns = localStorage.getItem(this.tableStorageName); const splitColumns = storageColumns ? storageColumns.split(",") @@ -240,13 +266,23 @@ class TableStore { return; } + if (isRecentTab) { + this.setModifiedRecentColumn(splitColumns.includes("ModifiedRecent")); + this.setAuthorRecentColumn(splitColumns.includes("AuthorRecent")); + this.setCreatedRecentColumn(splitColumns.includes("CreatedRecent")); + this.setLastOpenedColumn(splitColumns.includes("LastOpened")); + this.setSizeRecentColumn(splitColumns.includes("SizeRecent")); + this.setTypeRecentColumn(splitColumns.includes("TypeRecent")); + this.setQuickButtonsColumn(splitColumns.includes("QuickButtons")); + return; + } + this.setModifiedColumn(splitColumns.includes("Modified")); this.setAuthorColumn(splitColumns.includes("Author")); this.setCreatedColumn(splitColumns.includes("Created")); this.setSizeColumn(splitColumns.includes("Size")); this.setTypeColumn(splitColumns.includes("Type")); this.setQuickButtonsColumn(splitColumns.includes("QuickButtons")); - this.setLastOpenedColumn(splitColumns.includes("LastOpened")); } }; @@ -272,6 +308,9 @@ class TableStore { case "AuthorTrash": this.setAuthorTrashColumn(!this.authorTrashColumnIsEnabled); return; + case "AuthorRecent": + this.setAuthorRecentColumn(!this.authorRecentColumnIsEnabled); + return; case "Created": this.setCreatedColumn(!this.createdColumnIsEnabled); @@ -279,6 +318,9 @@ class TableStore { case "CreatedTrash": this.setCreatedTrashColumn(!this.createdTrashColumnIsEnabled); return; + case "CreatedRecent": + this.setCreatedRecentColumn(!this.createdRecentColumnIsEnabled); + return; case "Department": getIsAccountsPeople() @@ -291,6 +333,9 @@ class TableStore { case "Modified": this.setModifiedColumn(!this.modifiedColumnIsEnabled); return; + case "ModifiedRecent": + this.setModifiedRecentColumn(!this.modifiedRecentColumnIsEnabled); + return; case "Erasure": this.setErasureColumn(!this.erasureColumnIsEnabled); @@ -302,6 +347,9 @@ class TableStore { case "SizeTrash": this.setSizeTrashColumn(!this.sizeTrashColumnIsEnabled); return; + case "SizeRecent": + this.setSizeRecentColumn(!this.sizeRecentColumnIsEnabled); + return; case "Type": isRooms @@ -319,6 +367,10 @@ class TableStore { this.setTypeTrashColumn(!this.typeTrashColumnIsEnabled); return; + case "TypeRecent": + this.setTypeRecentColumn(!this.typeRecentColumnIsEnabled); + return; + case "QuickButtons": this.setQuickButtonsColumn(!this.quickButtonsColumnIsEnabled); return; @@ -370,7 +422,7 @@ class TableStore { } }; - getColumns = (defaultColumns) => { + getColumns = (defaultColumns, isRecentTab) => { const { isFrame, frameConfig } = this.settingsStore; const storageColumns = localStorage.getItem(this.tableStorageName); const splitColumns = storageColumns && storageColumns.split(","); @@ -379,7 +431,7 @@ class TableStore { const columns = []; if (splitColumns) { - this.setColumnsEnable(); + this.setColumnsEnable(null, isRecentTab); for (let col of defaultColumns) { const column = splitColumns.find((key) => key === col.key); diff --git a/public/locales/en/Common.json b/public/locales/en/Common.json index e379364b68..30b0a1c4bb 100644 --- a/public/locales/en/Common.json +++ b/public/locales/en/Common.json @@ -244,6 +244,7 @@ "InviteUsers": "Invite users", "Kilobyte": "KB", "Language": "Language", + "LastActivityDate": "Last activity date", "LastModifiedDate": "Last modified date", "LastName": "Last name", "LatePayment": "Late payment",