From 37c2eb5c113907155b2ce551fc2f266834aa2b14 Mon Sep 17 00:00:00 2001 From: TimofeyBoyko Date: Wed, 9 Nov 2022 15:40:12 +0300 Subject: [PATCH 01/31] Web:Client:AccountsHome: remove room from accounts table and increase table version --- packages/client/src/helpers/constants.js | 2 +- .../Section/Body/TableView/TableHeader.js | 16 ++++++++-------- .../Section/Body/TableView/TableRow.js | 5 +++-- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/packages/client/src/helpers/constants.js b/packages/client/src/helpers/constants.js index f17faed70e..7e5bafa347 100644 --- a/packages/client/src/helpers/constants.js +++ b/packages/client/src/helpers/constants.js @@ -58,7 +58,7 @@ export const CategoryType = Object.freeze({ export const TableVersions = Object.freeze({ Files: "2", Rooms: "1", - Accounts: "2", + Accounts: "3", }); export const BINDING_POST = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"; diff --git a/packages/client/src/pages/AccountsHome/Section/Body/TableView/TableHeader.js b/packages/client/src/pages/AccountsHome/Section/Body/TableView/TableHeader.js index adfdbf8502..c7cb322251 100644 --- a/packages/client/src/pages/AccountsHome/Section/Body/TableView/TableHeader.js +++ b/packages/client/src/pages/AccountsHome/Section/Body/TableView/TableHeader.js @@ -4,7 +4,7 @@ import { withTranslation } from "react-i18next"; import TableHeader from "@docspace/components/table-container/TableHeader"; -const TABLE_VERSION = "2"; +const TABLE_VERSION = "3"; const TABLE_COLUMNS = `peopleTableColumns_ver-${TABLE_VERSION}`; class PeopleTableHeader extends React.Component { @@ -33,13 +33,13 @@ class PeopleTableHeader extends React.Component { resizable: true, onChange: this.onColumnChange, }, - { - key: "Room", - title: t("Common:Room"), - enable: true, - resizable: true, - onChange: this.onColumnChange, - }, + // { + // key: "Room", + // title: t("Common:Room"), + // enable: true, + // resizable: true, + // onChange: this.onColumnChange, + // }, { key: "Mail", title: t("Common:Email"), diff --git a/packages/client/src/pages/AccountsHome/Section/Body/TableView/TableRow.js b/packages/client/src/pages/AccountsHome/Section/Body/TableView/TableRow.js index 064516cb75..3d8a6fbb1d 100644 --- a/packages/client/src/pages/AccountsHome/Section/Body/TableView/TableRow.js +++ b/packages/client/src/pages/AccountsHome/Section/Body/TableView/TableRow.js @@ -333,7 +333,7 @@ const PeopleTableRow = (props) => { {typeCell} - + {/* {!rooms?.length ? ( { modernView /> )} - + */} + Date: Wed, 9 Nov 2022 18:17:10 +0300 Subject: [PATCH 02/31] Web:Client:Accounts: add new context option for open user room-list --- .../src/store/AccountsContextOptionsStore.js | 25 ++++++++++++++++++- packages/client/src/store/UsersStore.js | 12 +++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/packages/client/src/store/AccountsContextOptionsStore.js b/packages/client/src/store/AccountsContextOptionsStore.js index 079870c7ea..97647cb6fa 100644 --- a/packages/client/src/store/AccountsContextOptionsStore.js +++ b/packages/client/src/store/AccountsContextOptionsStore.js @@ -10,6 +10,9 @@ import history from "@docspace/common/history"; import { combineUrl } from "@docspace/common/utils"; import { AppServerConfig, EmployeeStatus } from "@docspace/common/constants"; import { resendUserInvites } from "@docspace/common/api/people"; +import { getCategoryUrl } from "SRC_DIR/helpers/utils"; +import { CategoryType } from "SRC_DIR/helpers/constants"; +import RoomsFilter from "@docspace/common/api/rooms/filter"; const { proxyURL } = AppServerConfig; @@ -73,7 +76,13 @@ class AccountsContextOptionsStore { label: t("Translations:OwnerChange"), onClick: () => this.toggleChangeOwnerDialog(item), }; - + case "room-list": + return { + key: option, + icon: "images/folder.react.svg", + label: "Room list", + onClick: () => this.openUserRoomList(item), + }; case "enable": return { key: option, @@ -262,6 +271,20 @@ class AccountsContextOptionsStore { return contextOptionsProps; }; + openUserRoomList = (user) => { + const filter = RoomsFilter.getDefault(); + + filter.subjectId = user.id; + + const filterParamsStr = filter.toUrlParams(); + const url = getCategoryUrl(CategoryType.Shared); + + window.open( + combineUrl(PROXY_HOMEPAGE_URL, `${url}?${filterParamsStr}`), + "_blank" + ); + }; + onProfileClick = () => { history.push(PROFILE_SELF_URL); }; diff --git a/packages/client/src/store/UsersStore.js b/packages/client/src/store/UsersStore.js index 2bece3638a..57042998e5 100644 --- a/packages/client/src/store/UsersStore.js +++ b/packages/client/src/store/UsersStore.js @@ -214,6 +214,10 @@ class UsersStore { options.push("details"); } + if (isAdmin || isOwner) { + options.push("room-list"); + } + if (isMySelf) { options.push("separator-1"); @@ -272,6 +276,10 @@ class UsersStore { options.push("details"); } + if (isAdmin || isOwner) { + options.push("room-list"); + } + if ( isOwner || (isAdmin && (userRole === "manager" || userRole === "user")) @@ -290,6 +298,10 @@ class UsersStore { } else { options.push("details"); } + + if (isAdmin || isOwner) { + options.push("room-list"); + } } break; From 834a1bb9cfbbdb70297461f1fb18ba17968c9347 Mon Sep 17 00:00:00 2001 From: TimofeyBoyko Date: Thu, 10 Nov 2022 10:14:13 +0300 Subject: [PATCH 03/31] Web:Client:Accounts: add filter for paid user --- packages/client/src/pages/AccountsHome/Section/Filter/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/client/src/pages/AccountsHome/Section/Filter/index.js b/packages/client/src/pages/AccountsHome/Section/Filter/index.js index 561efdd133..8ce973574e 100644 --- a/packages/client/src/pages/AccountsHome/Section/Filter/index.js +++ b/packages/client/src/pages/AccountsHome/Section/Filter/index.js @@ -206,7 +206,7 @@ const SectionFilterContent = ({ filterOptions.push(...statusItems); filterOptions.push(...typeItems); // filterOptions.push(...roleItems); - // filterOptions.push(...accountItems); + filterOptions.push(...accountItems); // filterOptions.push(...roomItems); return filterOptions; From 8b376ee0231fde3335fa860d91eb20afab72fc67 Mon Sep 17 00:00:00 2001 From: mushka Date: Tue, 22 Nov 2022 10:54:05 +0300 Subject: [PATCH 04/31] fix --- .../sub-components/TagInput/TagDropdown.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/TagDropdown.js b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/TagDropdown.js index 2de33d64b8..d935aca2be 100644 --- a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/TagDropdown.js +++ b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/TagDropdown.js @@ -30,8 +30,14 @@ const TagDropdown = ({ e.preventDefault(); }; - const onClickOutside = () => { - document.getElementById("tags-input").blur(); + const onClickOutside = (e) => { + console.log(e.target.id, e.target.for); + if (e.target.id !== "tags-input" || e.target.for !== "tags-input") { + document.getElementById("tags-input").blur(); + } else { + document.getElementById("tags-input").focus(); + } + // if (e) console.log(e.target, e.currentTarget); }; const addNewTag = () => { @@ -106,6 +112,7 @@ const TagDropdown = ({ clickOutsideAction={onClickOutside} maxHeight={dropdownMaxHeight} showDisabledItems={false} + withBackdrop={false} > {dropdownItems} From 28ef220eef43d1735c2754200eca255ce88dee32 Mon Sep 17 00:00:00 2001 From: mushka Date: Tue, 22 Nov 2022 11:10:15 +0300 Subject: [PATCH 05/31] fix --- .../src/pages/Home/InfoPanel/Body/helpers/DetailsHelper.js | 2 +- packages/components/tag/index.js | 3 +++ packages/components/tag/styled-tag.js | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/client/src/pages/Home/InfoPanel/Body/helpers/DetailsHelper.js b/packages/client/src/pages/Home/InfoPanel/Body/helpers/DetailsHelper.js index 5cbb748a4a..eecc988a9d 100644 --- a/packages/client/src/pages/Home/InfoPanel/Body/helpers/DetailsHelper.js +++ b/packages/client/src/pages/Home/InfoPanel/Body/helpers/DetailsHelper.js @@ -37,7 +37,7 @@ const link = (text, onClick) => ( const tagList = (tags) => (
{tags.map((tag, i) => ( - + ))}
); diff --git a/packages/components/tag/index.js b/packages/components/tag/index.js index 44bb02786d..a515758c26 100644 --- a/packages/components/tag/index.js +++ b/packages/components/tag/index.js @@ -21,6 +21,7 @@ const Tag = ({ isLast, onDelete, onClick, + isNoHover, advancedOptions, tagMaxWidth, id, @@ -95,6 +96,7 @@ const Tag = ({ isDefault={isDefault} isLast={isLast} tagMaxWidth={tagMaxWidth} + isNoHover={isNoHover} > ... @@ -136,6 +138,7 @@ const Tag = ({ onClick={onClickAction} isNewTag={isNewTag} isDisabled={isDisabled} + isNoHover={isNoHover} isDefault={isDefault} tagMaxWidth={tagMaxWidth} data-tag={label} diff --git a/packages/components/tag/styled-tag.js b/packages/components/tag/styled-tag.js index 370a7a6af1..7273bd2dc9 100644 --- a/packages/components/tag/styled-tag.js +++ b/packages/components/tag/styled-tag.js @@ -47,6 +47,7 @@ const StyledTag = styled.div` ${(props) => !props.isDisabled && + !props.isNoHover && css` cursor: pointer; From 5db2980ed2a81851de26070dc29897d4655fd0c7 Mon Sep 17 00:00:00 2001 From: mushka Date: Thu, 24 Nov 2022 15:26:03 +0300 Subject: [PATCH 06/31] fix 2 --- .../sub-components/TagInput/TagDropdown.js | 19 ++++++++++--------- .../sub-components/TagInput/index.js | 10 +++++++--- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/TagDropdown.js b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/TagDropdown.js index e23592a156..a2d6665e13 100644 --- a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/TagDropdown.js +++ b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/TagDropdown.js @@ -39,12 +39,13 @@ const TagDropdown = ({ }; const onClickOutside = (e) => { - console.log(e.target.id, e.target.for); - if (e.target.id !== "tags-input" || e.target.for !== "tags-input") { - document.getElementById("tags-input").blur(); - } else { - document.getElementById("tags-input").focus(); - } + console.log("clickOutside"); + // console.log(e.target.id, e.target.for); + // if (e.target.id !== "tags-input" || e.target.for !== "tags-input") { + // document.getElementById("tags-input").blur(); + // } else { + // document.getElementById("tags-input").focus(); + // } // if (e) console.log(e.target, e.currentTarget); }; @@ -89,6 +90,7 @@ const TagDropdown = ({ ...res, ]; + if (!res.length) return [null]; return res; }; @@ -112,15 +114,14 @@ const TagDropdown = ({ className="dropdown-content-wrapper" onMouseDown={preventDefault} > - {!!dropdownItems.length && ( + {dropdownItems && ( {dropdownItems} diff --git a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/index.js b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/index.js index 06ada64175..2fc8aecd89 100644 --- a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/index.js +++ b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/index.js @@ -21,6 +21,10 @@ const StyledTagInput = styled.div` margin-bottom: -4px; max-width: 100%; position: relative; + + * { + max-width: 100%; + } } `; @@ -38,13 +42,13 @@ const TagInput = ({ const openDropdown = () => { if (isDisabled) return; - setIsScrollLocked(true); + // setIsScrollLocked(true); setIsDropdownOpen(true); }; const closeDropdown = () => { - setIsScrollLocked(false); - setIsDropdownOpen(false); + // setIsScrollLocked(false); + // setIsDropdownOpen(false); }; return ( From a2213c93666bee44a9977ab6f05d6e7085eb98fa Mon Sep 17 00:00:00 2001 From: Timofey Boyko <55255132+TimofeyBoyko@users.noreply.github.com> Date: Wed, 30 Nov 2022 12:24:12 +0300 Subject: [PATCH 07/31] Web:Common:Constants: add new payments enum --- packages/common/constants/index.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/common/constants/index.js b/packages/common/constants/index.js index 601d4edcad..877d760ff9 100644 --- a/packages/common/constants/index.js +++ b/packages/common/constants/index.js @@ -33,6 +33,14 @@ export const EmployeeType = Object.freeze({ DocSpaceAdmin: "admin", Owner: "Owner", }); +/** + * Enum for user payments type. + * @readonly + */ +export const PaymentsType = Object.freeze({ + Paid: 0, + Free: 1, +}); /** * Enum for filter type. * @readonly From b2b137336cee1a9b84b66f2aff89c15b52a9912b Mon Sep 17 00:00:00 2001 From: Timofey Boyko <55255132+TimofeyBoyko@users.noreply.github.com> Date: Wed, 30 Nov 2022 15:24:03 +0300 Subject: [PATCH 08/31] Web:Common:API: add employeetype for accounts filter --- packages/common/api/people/filter.js | 29 +++++++++++----------------- 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/packages/common/api/people/filter.js b/packages/common/api/people/filter.js index 05f8cccf29..05039be640 100644 --- a/packages/common/api/people/filter.js +++ b/packages/common/api/people/filter.js @@ -1,4 +1,3 @@ -import { EmployeeStatus } from "../../constants"; import { getObjectByLocation, toUrlParams } from "../../utils"; const DEFAULT_PAGE = 0; @@ -12,9 +11,11 @@ const DEFAULT_ROLE = null; const DEFAULT_SEARCH = ""; const DEFAULT_GROUP = null; +const DEFAULT_PAYMENTS = null; + const EMPLOYEE_STATUS = "employeestatus"; const ACTIVATION_STATUS = "activationstatus"; -const ROLE = "role"; +const ROLE = "employeeType"; const GROUP = "group"; const SEARCH = "search"; const SORT_BY = "sortby"; @@ -22,6 +23,8 @@ const SORT_ORDER = "sortorder"; const PAGE = "page"; const PAGE_COUNT = "pagecount"; +const PAYMENTS = "payments"; + class Filter { static getDefault(total = DEFAULT_TOTAL) { return new Filter(DEFAULT_PAGE, DEFAULT_PAGE_COUNT, total); @@ -79,7 +82,9 @@ class Filter { activationStatus = DEFAULT_ACTIVATION_STATUS, role = DEFAULT_ROLE, search = DEFAULT_SEARCH, - group = DEFAULT_GROUP + group = DEFAULT_GROUP, + + payments = DEFAULT_PAYMENTS ) { this.page = page; this.pageCount = pageCount; @@ -91,6 +96,8 @@ class Filter { this.search = search; this.total = total; this.group = group; + + this.payments = payments; } getStartIndex = () => { @@ -123,27 +130,13 @@ class Filter { sortby: sortBy, sortorder: sortOrder, employeestatus: employeeStatus, + employeetype: role, activationstatus: activationStatus, filtervalue: (search ?? "").trim(), groupId: group, fields: fields, }; - switch (role) { - case "admin": - dtoFilter.isadministrator = true; - break; - case "manager": - dtoFilter.employeeType = 1; - dtoFilter.isadministrator = "false"; - break; - case "user": - dtoFilter.employeeType = 2; - break; - default: - break; - } - const str = toUrlParams(dtoFilter, true); return str; }; From 9933e577e62adba8c66c2afbbab06baad3a062b1 Mon Sep 17 00:00:00 2001 From: Timofey Boyko <55255132+TimofeyBoyko@users.noreply.github.com> Date: Wed, 30 Nov 2022 15:47:11 +0300 Subject: [PATCH 09/31] Web:Common:Constants: fix payments enum --- packages/common/constants/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/common/constants/index.js b/packages/common/constants/index.js index 877d760ff9..d72ee5b034 100644 --- a/packages/common/constants/index.js +++ b/packages/common/constants/index.js @@ -38,8 +38,8 @@ export const EmployeeType = Object.freeze({ * @readonly */ export const PaymentsType = Object.freeze({ - Paid: 0, - Free: 1, + Paid: "0", + Free: "1", }); /** * Enum for filter type. From 266fdabda97bb758ab2bb9698aa9d27c16758fc6 Mon Sep 17 00:00:00 2001 From: Timofey Boyko <55255132+TimofeyBoyko@users.noreply.github.com> Date: Wed, 30 Nov 2022 15:47:34 +0300 Subject: [PATCH 10/31] Web:Common:API: add payments parametr --- packages/common/api/people/filter.js | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/packages/common/api/people/filter.js b/packages/common/api/people/filter.js index 05039be640..56c93ee7f9 100644 --- a/packages/common/api/people/filter.js +++ b/packages/common/api/people/filter.js @@ -10,7 +10,6 @@ const DEFAULT_ACTIVATION_STATUS = null; const DEFAULT_ROLE = null; const DEFAULT_SEARCH = ""; const DEFAULT_GROUP = null; - const DEFAULT_PAYMENTS = null; const EMPLOYEE_STATUS = "employeestatus"; @@ -22,7 +21,6 @@ const SORT_BY = "sortby"; const SORT_ORDER = "sortorder"; const PAGE = "page"; const PAGE_COUNT = "pagecount"; - const PAYMENTS = "payments"; class Filter { @@ -55,6 +53,7 @@ class Filter { const pageCount = (urlFilter[PAGE_COUNT] && +urlFilter[PAGE_COUNT]) || defaultFilter.pageCount; + const payments = urlFilter[PAYMENTS] || defaultFilter.payments; const newFilter = new Filter( page, @@ -66,7 +65,8 @@ class Filter { activationStatus, role, search, - group + group, + payments ); return newFilter; @@ -83,7 +83,6 @@ class Filter { role = DEFAULT_ROLE, search = DEFAULT_SEARCH, group = DEFAULT_GROUP, - payments = DEFAULT_PAYMENTS ) { this.page = page; @@ -96,7 +95,6 @@ class Filter { this.search = search; this.total = total; this.group = group; - this.payments = payments; } @@ -122,6 +120,7 @@ class Filter { role, search, group, + payments, } = this; let dtoFilter = { @@ -135,6 +134,7 @@ class Filter { filtervalue: (search ?? "").trim(), groupId: group, fields: fields, + payments, }; const str = toUrlParams(dtoFilter, true); @@ -152,6 +152,7 @@ class Filter { search, group, page, + payments, } = this; const dtoFilter = {}; @@ -183,6 +184,7 @@ class Filter { dtoFilter[PAGE] = page + 1; dtoFilter[SORT_BY] = sortBy; dtoFilter[SORT_ORDER] = sortOrder; + dtoFilter[PAYMENTS] = payments; const str = toUrlParams(dtoFilter, true); @@ -208,7 +210,8 @@ class Filter { this.activationStatus, this.role, this.search, - this.group + this.group, + this.payments ); } @@ -224,7 +227,8 @@ class Filter { null, null, "", - idGroup + idGroup, + null ); } else { this.clone(true); @@ -241,7 +245,8 @@ class Filter { this.sortBy === filter.sortBy && this.sortOrder === filter.sortOrder && this.page === filter.page && - this.pageCount === filter.pageCount; + this.pageCount === filter.pageCount && + this.payments === filter.payments; return equals; } From e89311e9d2f6320f86c12d2ab80cfb95a5b99079 Mon Sep 17 00:00:00 2001 From: Timofey Boyko <55255132+TimofeyBoyko@users.noreply.github.com> Date: Wed, 30 Nov 2022 15:48:05 +0300 Subject: [PATCH 11/31] Web:Client:Accounts: add payments, employeeType and sort by user type --- .../AccountsHome/Section/Filter/index.js | 121 ++++++++++++------ 1 file changed, 79 insertions(+), 42 deletions(-) diff --git a/packages/client/src/pages/AccountsHome/Section/Filter/index.js b/packages/client/src/pages/AccountsHome/Section/Filter/index.js index 3e177b732f..2553be3922 100644 --- a/packages/client/src/pages/AccountsHome/Section/Filter/index.js +++ b/packages/client/src/pages/AccountsHome/Section/Filter/index.js @@ -11,6 +11,7 @@ import Loaders from "@docspace/common/components/Loaders"; import { withLayoutSize } from "@docspace/common/utils"; import withPeopleLoader from "SRC_DIR/HOCs/withPeopleLoader"; +import { EmployeeType, PaymentsType } from "@docspace/common/constants"; const getStatus = (filterValues) => { const employeeStatus = result( @@ -34,6 +35,17 @@ const getRole = (filterValues) => { return employeeStatus || null; }; +const getPayments = (filterValues) => { + const employeeStatus = result( + find(filterValues, (value) => { + return value.group === "filter-account"; + }), + "key" + ); + + return employeeStatus || null; +}; + const getGroup = (filterValues) => { const groupId = result( find(filterValues, (value) => { @@ -64,6 +76,7 @@ const SectionFilterContent = ({ const role = getRole(data); const group = getGroup(data); + const payments = getPayments(data); const newFilter = filter.clone(); @@ -81,6 +94,8 @@ const SectionFilterContent = ({ newFilter.group = group; + newFilter.payments = payments; + setIsLoading(true); fetchPeople(newFilter, true).finally(() => setIsLoading(false)); }; @@ -147,43 +162,42 @@ const SectionFilterContent = ({ group: "filter-type", label: t("Common:Type"), isHeader: true, - isLast: true, }, { id: "filter_type-docspace-admin", - key: "admin", + key: EmployeeType.Admin, group: "filter-type", label: t("Common:DocSpaceAdmin"), }, { id: "filter_type-room-admin", - key: "manager", + key: EmployeeType.User, group: "filter-type", label: t("Common:RoomAdmin"), }, { id: "filter_type-user", - key: "user", + key: EmployeeType.Guest, group: "filter-type", label: userCaption, }, ]; - const roleItems = [ - { - key: "filter-role", - group: "filter-role", - label: "Role in room", - isHeader: true, - }, - { key: "1", group: "filter-role", label: "Room manager" }, - { key: "2", group: "filter-role", label: "Co-worker" }, - { key: "3", group: "filter-role", label: "Editor" }, - { key: "4", group: "filter-role", label: "Form filler" }, - { key: "5", group: "filter-role", label: "Reviewer" }, - { key: "6", group: "filter-role", label: "Commentator" }, - { key: "7", group: "filter-role", label: "Viewer" }, - ]; + // const roleItems = [ + // { + // key: "filter-role", + // group: "filter-role", + // label: "Role in room", + // isHeader: true, + // }, + // { key: "1", group: "filter-role", label: "Room manager" }, + // { key: "2", group: "filter-role", label: "Co-worker" }, + // { key: "3", group: "filter-role", label: "Editor" }, + // { key: "4", group: "filter-role", label: "Form filler" }, + // { key: "5", group: "filter-role", label: "Reviewer" }, + // { key: "6", group: "filter-role", label: "Commentator" }, + // { key: "7", group: "filter-role", label: "Viewer" }, + // ]; const accountItems = [ { @@ -191,26 +205,27 @@ const SectionFilterContent = ({ group: "filter-account", label: "Account", isHeader: true, + isLast: true, }, - { key: "paid", group: "filter-account", label: "Paid" }, - { key: "free", group: "filter-account", label: "Free" }, + { key: PaymentsType.Paid, group: "filter-account", label: "Paid" }, + { key: PaymentsType.Free, group: "filter-account", label: "Free" }, ]; - const roomItems = [ - { - key: "filter-status", - group: "filter-status", - label: t("UserStatus"), - isHeader: true, - }, - { - key: "1", - group: "filter-status", - label: t("Common:Active"), - isSelector: true, - selectorType: "room", - }, - ]; + // const roomItems = [ + // { + // key: "filter-status", + // group: "filter-status", + // label: t("UserStatus"), + // isHeader: true, + // }, + // { + // key: "1", + // group: "filter-status", + // label: t("Common:Active"), + // isSelector: true, + // selectorType: "room", + // }, + // ]; const filterOptions = []; @@ -237,6 +252,12 @@ const SectionFilterContent = ({ label: t("Common:ByLastNameSorting"), default: true, }, + { + id: "sory-by_type", + key: "type", + label: t("Common:Type"), + default: true, + }, ]; }, [t]); @@ -253,7 +274,7 @@ const SectionFilterContent = ({ //TODO: add new options from filter after update backend const getSelectedFilterData = React.useCallback(async () => { - const { guestCaption, userCaption, groupCaption } = customNames; + const { userCaption } = customNames; const filterValues = []; if (filter.employeeStatus || filter.activationStatus) { @@ -282,14 +303,14 @@ const SectionFilterContent = ({ if (filter.role) { let label = null; - switch (filter.role) { - case "admin": + switch (+filter.role) { + case EmployeeType.Admin: label = t("Common:DocSpaceAdmin"); break; - case "manager": + case EmployeeType.User: label = t("Common:RoomAdmin"); break; - case "user": + case EmployeeType.Guest: label = userCaption; break; default: @@ -297,12 +318,21 @@ const SectionFilterContent = ({ } filterValues.push({ - key: filter.role, + key: +filter.role, label: label, group: "filter-type", }); } + if (filter?.payments?.toString()) { + filterValues.push({ + key: filter.payments.toString(), + label: + PaymentsType.Paid === filter.payments.toString() ? "Paid" : "Free", + group: "filter-account", + }); + } + if (filter.group) { const group = groups.find((group) => group.id === filter.group); @@ -364,6 +394,7 @@ const SectionFilterContent = ({ filter.employeeStatus, filter.activationStatus, filter.role, + filter.payments, filter.group, t, customNames, @@ -387,6 +418,12 @@ const SectionFilterContent = ({ newFilter.group = null; } + if (group === "filter-account") { + newFilter.payments = null; + } + + console.log(newFilter, group); + setIsLoading(true); fetchPeople(newFilter, true).finally(() => setIsLoading(false)); }; From 16a3e65c7105924ed8fe872d0473dade4c785bd5 Mon Sep 17 00:00:00 2001 From: Timofey Boyko <55255132+TimofeyBoyko@users.noreply.github.com> Date: Wed, 30 Nov 2022 17:15:02 +0300 Subject: [PATCH 12/31] Web:Common:Constants: add new filter subject enum --- packages/common/constants/index.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/common/constants/index.js b/packages/common/constants/index.js index d72ee5b034..0ba6ec3f95 100644 --- a/packages/common/constants/index.js +++ b/packages/common/constants/index.js @@ -41,6 +41,14 @@ export const PaymentsType = Object.freeze({ Paid: "0", Free: "1", }); +/** + * Enum for filter subject. + * @readonly + */ +export const FilterSubject = Object.freeze({ + Owner: "0", + Member: "1", +}); /** * Enum for filter type. * @readonly From d2f62168b89b1a01d42e604e3f4aa9c233645dd4 Mon Sep 17 00:00:00 2001 From: Timofey Boyko <55255132+TimofeyBoyko@users.noreply.github.com> Date: Wed, 30 Nov 2022 17:32:29 +0300 Subject: [PATCH 13/31] Add new translation key 'Member' --- public/locales/en/Common.json | 1 + 1 file changed, 1 insertion(+) diff --git a/public/locales/en/Common.json b/public/locales/en/Common.json index 371b8766b0..7b22892754 100644 --- a/public/locales/en/Common.json +++ b/public/locales/en/Common.json @@ -120,6 +120,7 @@ "MaxLengthExceeded": "The maximum length of a user name or other local part is 64 characters.", "MeLabel": "Me", "Megabyte": "MB", + "Member": "Member", "Name": "Name", "NewVersionAvailable": "A new version of the website available", "Next": "Next", From 9230bf1a638fbf5623067f9fe19d1865887c5587 Mon Sep 17 00:00:00 2001 From: Timofey Boyko <55255132+TimofeyBoyko@users.noreply.github.com> Date: Wed, 30 Nov 2022 17:35:12 +0300 Subject: [PATCH 14/31] Web:Client: add new translation key 'SearchByOwner' --- packages/client/public/locales/en/Translations.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/client/public/locales/en/Translations.json b/packages/client/public/locales/en/Translations.json index f9c7326934..2a3665b4f1 100644 --- a/packages/client/public/locales/en/Translations.json +++ b/packages/client/public/locales/en/Translations.json @@ -57,6 +57,7 @@ "RoleUserDescription": "Users can only access the rooms they are invited to by admins. They can't create own rooms, folders or files.", "RoleViewer": "Viewer", "RoleViewerDescription": "File viewing", + "SearchByOwner": "Search by Owners", "Spreadsheets": "Spreadsheets", "SubNewForm": "Blank", "SubNewFormFile": "From text file", From ae766dbe69b7ecf7d161228ab61433bf85257711 Mon Sep 17 00:00:00 2001 From: Mushka Nikita Date: Thu, 1 Dec 2022 00:43:29 +0300 Subject: [PATCH 15/31] fixed tag dropdown flickering issue --- .../sub-components/StyledDropdown.js | 2 ++ .../sub-components/TagInput/TagDropdown.js | 25 +++++++++---------- .../sub-components/TagInput/index.js | 6 ++--- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/StyledDropdown.js b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/StyledDropdown.js index 15c69e923f..3ddce10b07 100644 --- a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/StyledDropdown.js +++ b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/StyledDropdown.js @@ -20,6 +20,8 @@ const StyledDropDown = styled(DropDown)` box-shadow: 0px 12px 40px rgba(4, 15, 27, 0.12); border-radius: 3px; overflow: hidden; + ${(props) => !props.hasItems && "visibility: hidden"}; + /* visibility: hidden */ width: 446px; max-width: 446px; diff --git a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/TagDropdown.js b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/TagDropdown.js index 8e3a5fef4e..114353f3d5 100644 --- a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/TagDropdown.js +++ b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/TagDropdown.js @@ -85,7 +85,6 @@ const TagDropdown = ({ ...res, ]; - if (!res.length) return [null]; return res; }; @@ -109,18 +108,18 @@ const TagDropdown = ({ className="dropdown-content-wrapper" onMouseDown={preventDefault} > - {dropdownItems && ( - - {dropdownItems} - - )} + + {dropdownItems} + ); }; diff --git a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/index.js b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/index.js index 17ef0d35e9..8c9de9ebbe 100644 --- a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/index.js +++ b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/index.js @@ -42,13 +42,13 @@ const TagInput = ({ const openDropdown = () => { if (isDisabled) return; - // setIsScrollLocked(true); + setIsScrollLocked(true); setIsDropdownOpen(true); }; const closeDropdown = () => { - // setIsScrollLocked(false); - // setIsDropdownOpen(false); + setIsScrollLocked(false); + setIsDropdownOpen(false); }; return ( From 0f625dfbf93c1aa2ff20b306344963b2cae14c5d Mon Sep 17 00:00:00 2001 From: Mushka Nikita Date: Thu, 1 Dec 2022 00:44:09 +0300 Subject: [PATCH 16/31] fixed tagInput onClick blur issue --- .../sub-components/TagInput/TagDropdown.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/TagDropdown.js b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/TagDropdown.js index 114353f3d5..8f6294061c 100644 --- a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/TagDropdown.js +++ b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/TagDropdown.js @@ -40,7 +40,8 @@ const TagDropdown = ({ e.preventDefault(); }; - const onClickOutside = () => { + const onClickOutside = (e) => { + if (e.target.id === "shared_tags-input") return; document.getElementById("shared_tags-input").blur(); }; From fb528365ede1ed80d3aeb861b2db854d680d79c5 Mon Sep 17 00:00:00 2001 From: Mushka Nikita Date: Thu, 1 Dec 2022 00:57:23 +0300 Subject: [PATCH 17/31] removed default room type tag --- .../sub-components/TagInput/TagList.js | 16 ++++++++++++++-- .../sub-components/TagInput/index.js | 8 +++++++- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/TagList.js b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/TagList.js index adb35a8313..3ed4016979 100644 --- a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/TagList.js +++ b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/TagList.js @@ -31,7 +31,19 @@ const TagList = ({ defaultTagLabel, tagHandler, isDisabled }) => { return ( - {tags.length ? ( + {tags.map((tag) => ( + { + onDeleteAction(tag.id); + }} + /> + ))} + {/* {tags.length ? ( tags.map((tag) => ( { label={defaultTagLabel} isDefault /> - )} + )} */} ); }; diff --git a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/index.js b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/index.js index 8c9de9ebbe..944ac987da 100644 --- a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/index.js +++ b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/index.js @@ -26,6 +26,7 @@ const StyledTagInput = styled.div` max-width: 100%; } } + ${({ hasTags }) => !hasTags && "margin-bottom: -8px"} `; const TagInput = ({ @@ -51,8 +52,13 @@ const TagInput = ({ setIsDropdownOpen(false); }; + console.log(tagHandler.tags.length); + return ( - + Date: Thu, 1 Dec 2022 01:04:43 +0300 Subject: [PATCH 18/31] added dark theme support for tagList tags --- .../sub-components/TagInput/TagList.js | 2 ++ packages/components/themes/base.js | 9 ++++++--- packages/components/themes/dark.js | 4 ++++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/TagList.js b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/TagList.js index 3ed4016979..e7900ec3a2 100644 --- a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/TagList.js +++ b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/TagList.js @@ -11,6 +11,8 @@ const StyledTagList = styled.div` width: 100%; .set_room_params-tag_input-tag { + background: ${(props) => + props.theme.createEditRoomDialog.tagInput.tagBackground}; padding: 6px 8px; border-radius: 3px; margin: 0; diff --git a/packages/components/themes/base.js b/packages/components/themes/base.js index db086b96ad..81dbdb09c7 100644 --- a/packages/components/themes/base.js +++ b/packages/components/themes/base.js @@ -2390,6 +2390,10 @@ const Base = { descriptionColor: "#555f65", }, + tagInput: { + tagBackground: "#ECEEF1", + }, + dropdown: { background: "#ffffff", borderColor: "#d0d5da", @@ -3005,13 +3009,12 @@ const Base = { boxShadow: "0px 5px 20px rgba(4, 15, 27, 0.07)", }, - preparationPortalProgress: { backgroundColor: "#F3F4F4", colorPercentSmall: "#333333", colorPercentBig: "#FFFFFF", - }, - + }, + codeInput: { background: white, border: "1px solid #d0d5da", diff --git a/packages/components/themes/dark.js b/packages/components/themes/dark.js index 7e3dff0618..f597b32aa5 100644 --- a/packages/components/themes/dark.js +++ b/packages/components/themes/dark.js @@ -2390,6 +2390,10 @@ const Dark = { descriptionColor: "#a3a9ae", }, + tagInput: { + tagBackground: "#292929", + }, + dropdown: { background: "#333333", borderColor: "#474747", From 58b57245e2036d9a7cc41d6671f20df27e6ded07 Mon Sep 17 00:00:00 2001 From: Timofey Boyko <55255132+TimofeyBoyko@users.noreply.github.com> Date: Thu, 1 Dec 2022 11:25:27 +0300 Subject: [PATCH 19/31] Web:Common:FilterInput: update selected items --- packages/common/components/FilterInput/index.js | 2 +- .../components/FilterInput/sub-components/SelectedItem.js | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/common/components/FilterInput/index.js b/packages/common/components/FilterInput/index.js index 68ca20cf9c..4df706190a 100644 --- a/packages/common/components/FilterInput/index.js +++ b/packages/common/components/FilterInput/index.js @@ -177,7 +177,7 @@ const FilterInput = React.memo( diff --git a/packages/common/components/FilterInput/sub-components/SelectedItem.js b/packages/common/components/FilterInput/sub-components/SelectedItem.js index 40291b1e12..fa6e73077c 100644 --- a/packages/common/components/FilterInput/sub-components/SelectedItem.js +++ b/packages/common/components/FilterInput/sub-components/SelectedItem.js @@ -33,6 +33,8 @@ const StyledSelectedItem = styled.div` StyledSelectedItem.defaultProps = { theme: Base }; const SelectedItem = ({ propKey, label, group, removeSelectedItem }) => { + if (!label) return <>; + const onRemove = () => { removeSelectedItem(propKey, label, group); }; From d661c367919a7ca1badd57c1923faa62dbccc3cf Mon Sep 17 00:00:00 2001 From: Timofey Boyko <55255132+TimofeyBoyko@users.noreply.github.com> Date: Thu, 1 Dec 2022 11:25:55 +0300 Subject: [PATCH 20/31] Web:Common:API: add new parametr for rooms filter 'subjectFilter' --- packages/common/api/rooms/filter.js | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/packages/common/api/rooms/filter.js b/packages/common/api/rooms/filter.js index 388e297414..93f1102e13 100644 --- a/packages/common/api/rooms/filter.js +++ b/packages/common/api/rooms/filter.js @@ -43,6 +43,9 @@ const DEFAULT_EXCLUDE_SUBJECT = false; const WITHOUT_TAGS = "withoutTags"; const DEFAULT_WITHOUT_TAGS = false; +const SUBJECT_FILTER = "subjectFilter"; +const DEFAULT_SUBJECT_FILTER = null; + class RoomsFilter { static getDefault(total = DEFAULT_TOTAL) { return new RoomsFilter(DEFAULT_PAGE, DEFAULT_PAGE_COUNT, total); @@ -77,6 +80,11 @@ class RoomsFilter { (urlFilter[SUBJECT_ID] && urlFilter[SUBJECT_ID]) || defaultFilter.subjectId; + const subjectFilter = + (urlFilter[SUBJECT_FILTER]?.toString() && + urlFilter[SUBJECT_FILTER]?.toString()) || + defaultFilter.subjectFilter?.toString(); + //TODO: remove it if search with subfolders and in content will be available // const searchInContent = urlFilter[SEARCH_IN_CONTENT] // ? urlFilter[SEARCH_IN_CONTENT] === "true" @@ -120,7 +128,8 @@ class RoomsFilter { sortBy, sortOrder, excludeSubject, - withoutTags + withoutTags, + subjectFilter ); return newFilter; @@ -141,7 +150,8 @@ class RoomsFilter { sortBy = DEFAULT_SORT_BY, sortOrder = DEFAULT_SORT_ORDER, excludeSubject = DEFAULT_EXCLUDE_SUBJECT, - withoutTags = DEFAULT_WITHOUT_TAGS + withoutTags = DEFAULT_WITHOUT_TAGS, + subjectFilter = DEFAULT_SUBJECT_FILTER ) { this.page = page; this.pageCount = pageCount; @@ -158,6 +168,7 @@ class RoomsFilter { this.sortOrder = sortOrder; this.excludeSubject = excludeSubject; this.withoutTags = withoutTags; + this.subjectFilter = subjectFilter; } getStartIndex = () => { @@ -188,6 +199,7 @@ class RoomsFilter { sortOrder, excludeSubject, withoutTags, + subjectFilter, } = this; const dtoFilter = { @@ -206,6 +218,7 @@ class RoomsFilter { sortOrder: sortOrder, excludeSubject: excludeSubject, withoutTags: withoutTags, + subjectFilter: subjectFilter, }; const str = toUrlParams(dtoFilter, true); @@ -228,6 +241,7 @@ class RoomsFilter { sortOrder, excludeSubject, withoutTags, + subjectFilter, } = this; const dtoFilter = {}; @@ -272,6 +286,10 @@ class RoomsFilter { dtoFilter[WITHOUT_TAGS] = withoutTags; } + if (subjectFilter?.toString()) { + dtoFilter[SUBJECT_FILTER] = subjectFilter.toString(); + } + dtoFilter[PAGE] = page + 1; dtoFilter[SORT_BY] = sortBy; dtoFilter[SORT_ORDER] = sortOrder; @@ -301,7 +319,8 @@ class RoomsFilter { this.sortBy, this.sortOrder, this.excludeSubject, - this.withoutTags + this.withoutTags, + this.subjectFilter ); } @@ -328,7 +347,8 @@ class RoomsFilter { this.sortBy === filter.sortBy && this.sortOrder === filter.sortOrder && this.excludeSubject === filter.excludeSubject && - this.withoutTags === filter.withoutTags; + this.withoutTags === filter.withoutTags && + this.subjectFilter === filter.subjectFilter; return equals; } From da5e1ef89f62b47b900bcd64fe708932ee40caec Mon Sep 17 00:00:00 2001 From: Timofey Boyko <55255132+TimofeyBoyko@users.noreply.github.com> Date: Thu, 1 Dec 2022 11:26:25 +0300 Subject: [PATCH 21/31] Web:Client:Accounts: add logic for open new tab with user rooms --- packages/client/src/store/AccountsContextOptionsStore.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/client/src/store/AccountsContextOptionsStore.js b/packages/client/src/store/AccountsContextOptionsStore.js index 909f4ab969..eae0858f47 100644 --- a/packages/client/src/store/AccountsContextOptionsStore.js +++ b/packages/client/src/store/AccountsContextOptionsStore.js @@ -8,7 +8,11 @@ import toastr from "@docspace/components/toast/toastr"; import history from "@docspace/common/history"; import { combineUrl } from "@docspace/common/utils"; -import { AppServerConfig, EmployeeStatus } from "@docspace/common/constants"; +import { + AppServerConfig, + EmployeeStatus, + FilterSubject, +} from "@docspace/common/constants"; import { resendUserInvites } from "@docspace/common/api/people"; import { getCategoryUrl } from "SRC_DIR/helpers/utils"; import { CategoryType } from "SRC_DIR/helpers/constants"; @@ -288,6 +292,7 @@ class AccountsContextOptionsStore { const filter = RoomsFilter.getDefault(); filter.subjectId = user.id; + filter.subjectFilter = FilterSubject.Member; const filterParamsStr = filter.toUrlParams(); const url = getCategoryUrl(CategoryType.Shared); From aa6946f14b25c072fda867294450692119ab6313 Mon Sep 17 00:00:00 2001 From: Timofey Boyko <55255132+TimofeyBoyko@users.noreply.github.com> Date: Thu, 1 Dec 2022 11:26:40 +0300 Subject: [PATCH 22/31] Web:Client:Home: update filter for subjectFilter --- packages/client/src/helpers/filesConstants.js | 1 + .../src/pages/Home/Section/Filter/index.js | 127 +++++++++++------- 2 files changed, 77 insertions(+), 51 deletions(-) diff --git a/packages/client/src/helpers/filesConstants.js b/packages/client/src/helpers/filesConstants.js index b2da28a291..01a5120475 100644 --- a/packages/client/src/helpers/filesConstants.js +++ b/packages/client/src/helpers/filesConstants.js @@ -18,6 +18,7 @@ export const FilterGroups = Object.freeze({ filterContent: "filter-withContent", roomFilterProviderType: "filter-provider-type", roomFilterType: "filter-type", + roomFilterSubject: "filter-subject", roomFilterOwner: "filter-owner", roomFilterTags: "filter-tags", roomFilterFolders: "filter-withSubfolders", diff --git a/packages/client/src/pages/Home/Section/Filter/index.js b/packages/client/src/pages/Home/Section/Filter/index.js index e560aa8540..af8cca735b 100644 --- a/packages/client/src/pages/Home/Section/Filter/index.js +++ b/packages/client/src/pages/Home/Section/Filter/index.js @@ -17,6 +17,7 @@ import { RoomsType, RoomsProviderType, RoomsProviderTypeName, + FilterSubject, } from "@docspace/common/constants"; import Loaders from "@docspace/common/components/Loaders"; import FilterInput from "@docspace/common/components/FilterInput"; @@ -34,7 +35,18 @@ const getFilterType = (filterValues) => { "key" ); - return filterType ? +filterType : null; + return filterType?.toString() ? +filterType : null; +}; + +const getSubjectFilter = (filterValues) => { + const subjectFilter = result( + find(filterValues, (value) => { + return value.group === FilterGroups.roomFilterOwner; + }), + "key" + ); + + return subjectFilter?.toString() ? subjectFilter?.toString() : null; }; const getAuthorType = (filterValues) => { @@ -79,10 +91,10 @@ const getProviderType = (filterValues) => { return type; }; -const getOwner = (filterValues) => { +const getSubjectId = (filterValues) => { const filterOwner = result( find(filterValues, (value) => { - return value.group === FilterGroups.roomFilterOwner; + return value.group === FilterGroups.roomFilterSubject; }), "key" ); @@ -162,14 +174,9 @@ const SectionFilterContent = ({ if (isRooms) { const type = getType(data) || null; - const owner = getOwner(data) || null; + const subjectId = getSubjectId(data) || null; - const subjectId = - owner === FilterKeys.other || owner === FilterKeys.me - ? userId - : owner; - - const withoutMe = owner === FilterKeys.other; + const subjectFilter = getSubjectFilter(data) || null; const providerType = getProviderType(data) || null; const tags = getTags(data) || null; @@ -186,7 +193,17 @@ const SectionFilterContent = ({ newFilter.page = 0; newFilter.provider = providerType ? providerType : null; newFilter.type = type ? type : null; - newFilter.subjectId = subjectId ? subjectId : null; + + newFilter.subjectFilter = null; + + if (subjectId) { + newFilter.subjectId = subjectId; + + newFilter.subjectFilter = subjectFilter?.toString() + ? subjectFilter.toString() + : null; + } + if (tags) { if (tags.includes(t("NoTag"))) { newFilter.tags = null; @@ -200,7 +217,6 @@ const SectionFilterContent = ({ newFilter.withoutTags = false; } - newFilter.excludeSubject = withoutMe; // newFilter.withSubfolders = withSubfolders; // newFilter.searchInContent = withContent; @@ -381,28 +397,30 @@ const SectionFilterContent = ({ // } if (roomsFilter.subjectId) { - const isMe = userId === roomsFilter.subjectId; - let label = isMe - ? roomsFilter.excludeSubject - ? t("Common:OtherLabel") - : t("Common:MeLabel") - : null; + const user = await getUser(roomsFilter.subjectId); - if (!isMe) { - const user = await getUser(roomsFilter.subjectId); + let label = user.displayName; - label = user.displayName; - } - - filterValues.push({ - key: isMe - ? roomsFilter.excludeSubject - ? FilterKeys.other - : FilterKeys.me - : roomsFilter.subjectId, - group: FilterGroups.roomFilterOwner, + const subject = { + key: roomsFilter.subjectId, + group: FilterGroups.roomFilterSubject, label: label, - }); + }; + + if (roomsFilter.subjectFilter?.toString()) { + if (roomsFilter.subjectFilter.toString() === FilterSubject.Owner) { + subject.selectedLabel = t("Common:Owner") + ": " + label; + } + + filterValues.push(subject); + + filterValues.push({ + key: roomsFilter?.subjectFilter?.toString(), + group: FilterGroups.roomFilterOwner, + }); + } else { + filterValues.push(subject); + } } // if (roomsFilter.withoutTags) { @@ -585,6 +603,7 @@ const SectionFilterContent = ({ roomsFilter.provider, roomsFilter.type, roomsFilter.subjectId, + roomsFilter.subjectFilter, roomsFilter.tags, roomsFilter.tags?.length, roomsFilter.excludeSubject, @@ -736,35 +755,39 @@ const SectionFilterContent = ({ ...media, ]; - const ownerOptions = [ + const subjectOptions = [ { - key: FilterGroups.roomFilterOwner, - group: FilterGroups.roomFilterOwner, - label: t("Common:Owner"), + key: FilterGroups.roomFilterSubject, + group: FilterGroups.roomFilterSubject, + label: t("Common:Member"), isHeader: true, - withMultiItems: true, - }, - { - id: "filter_author-me", - key: FilterKeys.me, - group: FilterGroups.roomFilterOwner, - label: t("Common:MeLabel"), - }, - { - id: "filter_author-other", - key: FilterKeys.other, - group: FilterGroups.roomFilterOwner, - label: t("Common:OtherLabel"), + withoutSeparator: true, }, { id: "filter_author-user", key: FilterKeys.user, - group: FilterGroups.roomFilterOwner, - label: t("Translations:AddOwner"), + group: FilterGroups.roomFilterSubject, + label: t("Translations:ChooseFromList"), isSelector: true, }, ]; + const ownerOptions = [ + { + key: FilterGroups.roomFilterOwner, + group: FilterGroups.roomFilterOwner, + isHeader: true, + withoutHeader: true, + }, + { + id: "filter_author-user", + key: FilterSubject.Owner, + group: FilterGroups.roomFilterOwner, + label: t("Translations:SearchByOwner"), + isCheckbox: true, + }, + ]; + // const foldersOptions = [ // { // key: FilterGroups.roomFilterFolders, @@ -806,6 +829,7 @@ const SectionFilterContent = ({ // filterOptions.push(...foldersOptions); // filterOptions.push(...contentOptions); + filterOptions.push(...subjectOptions); filterOptions.push(...ownerOptions); filterOptions.push(...typeOptions); @@ -1179,9 +1203,10 @@ const SectionFilterContent = ({ newFilter.type = null; } - if (group === FilterGroups.roomFilterOwner) { + if (group === FilterGroups.roomFilterSubject) { newFilter.subjectId = null; newFilter.excludeSubject = false; + newFilter.filterSubject = null; } if (group === FilterGroups.roomFilterTags) { From ad5c75a09e7f6546dcdc405f38b57c3abd7f776b Mon Sep 17 00:00:00 2001 From: Timofey Boyko <55255132+TimofeyBoyko@users.noreply.github.com> Date: Thu, 1 Dec 2022 11:29:39 +0300 Subject: [PATCH 23/31] Web:Common:Loaders: fix filter block loader for rooms --- .../Loaders/FilterBlockLoader/index.js | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/packages/common/components/Loaders/FilterBlockLoader/index.js b/packages/common/components/Loaders/FilterBlockLoader/index.js index aac5f2e4ea..831248bf39 100644 --- a/packages/common/components/Loaders/FilterBlockLoader/index.js +++ b/packages/common/components/Loaders/FilterBlockLoader/index.js @@ -54,20 +54,6 @@ const FilterBlockLoader = ({ borderRadius={"3"} className={"loader-item"} /> -
- - -
+
+ + +
)} From 45efe52e96702e693290d857c735879769f7312d Mon Sep 17 00:00:00 2001 From: Elyor Djalilov Date: Thu, 1 Dec 2022 13:50:38 +0500 Subject: [PATCH 24/31] fixed when selecting with arrow from the keyboard --- .../common/components/Section/sub-components/info-panel.js | 2 +- packages/components/table-container/StyledTableContainer.js | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/packages/common/components/Section/sub-components/info-panel.js b/packages/common/components/Section/sub-components/info-panel.js index d944fa134f..7147c2b301 100644 --- a/packages/common/components/Section/sub-components/info-panel.js +++ b/packages/common/components/Section/sub-components/info-panel.js @@ -22,7 +22,7 @@ const StyledInfoPanelWrapper = styled.div.attrs(({ id }) => ({ width: auto; background: ${(props) => props.theme.infoPanel.blurColor}; backdrop-filter: blur(3px); - + z-index: 300; @media ${tablet} { z-index: 309; position: fixed; diff --git a/packages/components/table-container/StyledTableContainer.js b/packages/components/table-container/StyledTableContainer.js index 2c46e57e9d..7fc99e4444 100644 --- a/packages/components/table-container/StyledTableContainer.js +++ b/packages/components/table-container/StyledTableContainer.js @@ -45,7 +45,6 @@ const StyledTableContainer = styled.div` .table-container_header { z-index: 200; padding: 0 20px; - padding-right: 0; border-bottom: 1px solid; border-image-slice: 1; @@ -86,10 +85,6 @@ const StyledTableContainer = styled.div` width: 22px; } } - .table-container_header-settings { - border-bottom: ${(props) => props.theme.tableContainer.tableCell.border}; - margin-bottom: -1px; - } ${({ useReactWindow }) => useReactWindow && reactWindowContainerStyles} `; From a37f503651b4221f2c6ebcab60d58a85f02833d0 Mon Sep 17 00:00:00 2001 From: Timofey Boyko <55255132+TimofeyBoyko@users.noreply.github.com> Date: Thu, 1 Dec 2022 11:51:57 +0300 Subject: [PATCH 25/31] Web:Client:Home: fix filter --- packages/client/src/pages/Home/Section/Filter/index.js | 1 + .../common/components/FilterInput/sub-components/FilterBlock.js | 2 +- .../components/FilterInput/sub-components/FilterBlockItem.js | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/client/src/pages/Home/Section/Filter/index.js b/packages/client/src/pages/Home/Section/Filter/index.js index af8cca735b..5bc5b60c5d 100644 --- a/packages/client/src/pages/Home/Section/Filter/index.js +++ b/packages/client/src/pages/Home/Section/Filter/index.js @@ -195,6 +195,7 @@ const SectionFilterContent = ({ newFilter.type = type ? type : null; newFilter.subjectFilter = null; + newFilter.subjectId = null; if (subjectId) { newFilter.subjectId = subjectId; diff --git a/packages/common/components/FilterInput/sub-components/FilterBlock.js b/packages/common/components/FilterInput/sub-components/FilterBlock.js index a6ea5d0992..bcb3b576c9 100644 --- a/packages/common/components/FilterInput/sub-components/FilterBlock.js +++ b/packages/common/components/FilterInput/sub-components/FilterBlock.js @@ -161,7 +161,7 @@ const FilterBlock = ({ onFilter(value); } - + s; return; } diff --git a/packages/common/components/FilterInput/sub-components/FilterBlockItem.js b/packages/common/components/FilterInput/sub-components/FilterBlockItem.js index 732e22f133..2f71f5ef25 100644 --- a/packages/common/components/FilterInput/sub-components/FilterBlockItem.js +++ b/packages/common/components/FilterInput/sub-components/FilterBlockItem.js @@ -43,6 +43,7 @@ const FilterBlockItem = ({ isMultiSelect, withOptions ) => { + console.log(key, isSelected); changeFilterValue && changeFilterValue( group, @@ -61,6 +62,7 @@ const FilterBlockItem = ({ target = target.parentNode; if (target === ref) { + console.log("call"); changeFilterValue && changeFilterValue(group, [], true); return; } From e4df954e8ea65db2a8fe171dcbd27a126ab08b44 Mon Sep 17 00:00:00 2001 From: Timofey Boyko <55255132+TimofeyBoyko@users.noreply.github.com> Date: Thu, 1 Dec 2022 11:55:29 +0300 Subject: [PATCH 26/31] Web: delete console log --- packages/client/src/pages/AccountsHome/Section/Filter/index.js | 2 -- .../components/FilterInput/sub-components/FilterBlockItem.js | 2 -- 2 files changed, 4 deletions(-) diff --git a/packages/client/src/pages/AccountsHome/Section/Filter/index.js b/packages/client/src/pages/AccountsHome/Section/Filter/index.js index 2553be3922..1e2d6bbff6 100644 --- a/packages/client/src/pages/AccountsHome/Section/Filter/index.js +++ b/packages/client/src/pages/AccountsHome/Section/Filter/index.js @@ -422,8 +422,6 @@ const SectionFilterContent = ({ newFilter.payments = null; } - console.log(newFilter, group); - setIsLoading(true); fetchPeople(newFilter, true).finally(() => setIsLoading(false)); }; diff --git a/packages/common/components/FilterInput/sub-components/FilterBlockItem.js b/packages/common/components/FilterInput/sub-components/FilterBlockItem.js index 2f71f5ef25..732e22f133 100644 --- a/packages/common/components/FilterInput/sub-components/FilterBlockItem.js +++ b/packages/common/components/FilterInput/sub-components/FilterBlockItem.js @@ -43,7 +43,6 @@ const FilterBlockItem = ({ isMultiSelect, withOptions ) => { - console.log(key, isSelected); changeFilterValue && changeFilterValue( group, @@ -62,7 +61,6 @@ const FilterBlockItem = ({ target = target.parentNode; if (target === ref) { - console.log("call"); changeFilterValue && changeFilterValue(group, [], true); return; } From 2433ca0705ca9870a918628b81745651b24c1ef0 Mon Sep 17 00:00:00 2001 From: Elyor Djalilov Date: Thu, 1 Dec 2022 14:28:50 +0500 Subject: [PATCH 27/31] fixed bug with arrow --- .../src/components/panels/InvitePanel/StyledInvitePanel.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/client/src/components/panels/InvitePanel/StyledInvitePanel.js b/packages/client/src/components/panels/InvitePanel/StyledInvitePanel.js index ddf4f8b4a1..ec87240de2 100644 --- a/packages/client/src/components/panels/InvitePanel/StyledInvitePanel.js +++ b/packages/client/src/components/panels/InvitePanel/StyledInvitePanel.js @@ -101,9 +101,11 @@ const StyledComboBox = styled(ComboBox)` text-decoration: none; } + display: flex; + align-items: center; + justify-content: center; + .combo-buttons_arrow-icon { - margin-top: 6px; - margin-right: 8px; margin-left: 2px; } @@ -111,6 +113,7 @@ const StyledComboBox = styled(ComboBox)` .combo-button { border-radius: 3px; + height: auto; } `; From 018e9789c26757cdee2b0f589a54f29af23a1b31 Mon Sep 17 00:00:00 2001 From: Mushka Nikita Date: Thu, 1 Dec 2022 14:45:18 +0300 Subject: [PATCH 28/31] cleaned up code --- .../CreateEditRoomDialog/sub-components/TagInput/index.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/index.js b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/index.js index 944ac987da..515960d45f 100644 --- a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/index.js +++ b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/index.js @@ -21,11 +21,8 @@ const StyledTagInput = styled.div` margin-bottom: -4px; max-width: 100%; position: relative; - - * { - max-width: 100%; - } } + ${({ hasTags }) => !hasTags && "margin-bottom: -8px"} `; @@ -52,8 +49,6 @@ const TagInput = ({ setIsDropdownOpen(false); }; - console.log(tagHandler.tags.length); - return ( Date: Thu, 1 Dec 2022 15:08:34 +0300 Subject: [PATCH 29/31] changed tag hover logic, now it depends on provided onClick func --- .../src/pages/Home/InfoPanel/Body/helpers/DetailsHelper.js | 2 +- packages/components/tag/index.js | 2 ++ packages/components/tag/styled-tag.js | 4 +--- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/client/src/pages/Home/InfoPanel/Body/helpers/DetailsHelper.js b/packages/client/src/pages/Home/InfoPanel/Body/helpers/DetailsHelper.js index 3c4f1c2880..a7df82e977 100644 --- a/packages/client/src/pages/Home/InfoPanel/Body/helpers/DetailsHelper.js +++ b/packages/client/src/pages/Home/InfoPanel/Body/helpers/DetailsHelper.js @@ -37,7 +37,7 @@ const link = (text, onClick) => ( const tagList = (tags) => (
{tags.map((tag, i) => ( - + ))}
); diff --git a/packages/components/tag/index.js b/packages/components/tag/index.js index a515758c26..b2113423cc 100644 --- a/packages/components/tag/index.js +++ b/packages/components/tag/index.js @@ -97,6 +97,7 @@ const Tag = ({ isLast={isLast} tagMaxWidth={tagMaxWidth} isNoHover={isNoHover} + withOnClickAction={!!onClick} > ... @@ -146,6 +147,7 @@ const Tag = ({ className={`tag${className ? ` ${className}` : ""}`} style={style} isLast={isLast} + withOnClickAction={!!onClick} > {icon ? ( diff --git a/packages/components/tag/styled-tag.js b/packages/components/tag/styled-tag.js index 7273bd2dc9..9ed3fc4ff6 100644 --- a/packages/components/tag/styled-tag.js +++ b/packages/components/tag/styled-tag.js @@ -46,11 +46,9 @@ const StyledTag = styled.div` } ${(props) => - !props.isDisabled && - !props.isNoHover && + props.withOnClickAction && css` cursor: pointer; - &:hover { background: ${(props) => props.theme.tag.hoverBackground}; } From 34c69464778392d584c65e91899661fa6766eca1 Mon Sep 17 00:00:00 2001 From: Mushka Nikita Date: Thu, 1 Dec 2022 15:21:59 +0300 Subject: [PATCH 30/31] fixed hover and cleaned up code --- packages/components/tag/index.js | 7 ++----- packages/components/tag/styled-tag.js | 3 ++- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/components/tag/index.js b/packages/components/tag/index.js index b2113423cc..d085d0d911 100644 --- a/packages/components/tag/index.js +++ b/packages/components/tag/index.js @@ -21,7 +21,6 @@ const Tag = ({ isLast, onDelete, onClick, - isNoHover, advancedOptions, tagMaxWidth, id, @@ -96,8 +95,7 @@ const Tag = ({ isDefault={isDefault} isLast={isLast} tagMaxWidth={tagMaxWidth} - isNoHover={isNoHover} - withOnClickAction={!!onClick} + isClickable={!!onClick} > ... @@ -139,7 +137,6 @@ const Tag = ({ onClick={onClickAction} isNewTag={isNewTag} isDisabled={isDisabled} - isNoHover={isNoHover} isDefault={isDefault} tagMaxWidth={tagMaxWidth} data-tag={label} @@ -147,7 +144,7 @@ const Tag = ({ className={`tag${className ? ` ${className}` : ""}`} style={style} isLast={isLast} - withOnClickAction={!!onClick} + isClickable={!!onClick} > {icon ? ( diff --git a/packages/components/tag/styled-tag.js b/packages/components/tag/styled-tag.js index 9ed3fc4ff6..1b0669772f 100644 --- a/packages/components/tag/styled-tag.js +++ b/packages/components/tag/styled-tag.js @@ -46,7 +46,8 @@ const StyledTag = styled.div` } ${(props) => - props.withOnClickAction && + props.isClickable && + !props.isDisabled && css` cursor: pointer; &:hover { From 73b45d7820809933f066ab5d86359ca5da5f5e9e Mon Sep 17 00:00:00 2001 From: Timofey Boyko <55255132+TimofeyBoyko@users.noreply.github.com> Date: Thu, 1 Dec 2022 16:53:47 +0300 Subject: [PATCH 31/31] Web:Client:Home: fix filter by subject --- packages/client/src/pages/Home/Section/Filter/index.js | 2 +- .../common/components/FilterInput/sub-components/FilterBlock.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/client/src/pages/Home/Section/Filter/index.js b/packages/client/src/pages/Home/Section/Filter/index.js index 5bc5b60c5d..7a713b250a 100644 --- a/packages/client/src/pages/Home/Section/Filter/index.js +++ b/packages/client/src/pages/Home/Section/Filter/index.js @@ -202,7 +202,7 @@ const SectionFilterContent = ({ newFilter.subjectFilter = subjectFilter?.toString() ? subjectFilter.toString() - : null; + : FilterSubject.Member; } if (tags) { diff --git a/packages/common/components/FilterInput/sub-components/FilterBlock.js b/packages/common/components/FilterInput/sub-components/FilterBlock.js index bcb3b576c9..a6ea5d0992 100644 --- a/packages/common/components/FilterInput/sub-components/FilterBlock.js +++ b/packages/common/components/FilterInput/sub-components/FilterBlock.js @@ -161,7 +161,7 @@ const FilterBlock = ({ onFilter(value); } - s; + return; }