Web:Client:Accounts: add payments, employeeType and sort by user type
This commit is contained in:
parent
266fdabda9
commit
e89311e9d2
@ -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));
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user