Web:Client:Accounts: add payments, employeeType and sort by user type

This commit is contained in:
Timofey Boyko 2022-11-30 15:48:05 +03:00
parent 266fdabda9
commit e89311e9d2

View File

@ -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));
};