Put back sorting columns on invitation and members
Signed-off-by: Émile Ré <emile@getprobo.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<26a05edf635e281469d5498e24879e00>>
|
* @generated SignedSource<<e8e0e8e378c0a308255a8e2f3918b758>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
import { ConcreteRequest } from 'relay-runtime';
|
import { ConcreteRequest } from 'relay-runtime';
|
||||||
import { FragmentRefs } from "relay-runtime";
|
import { FragmentRefs } from "relay-runtime";
|
||||||
export type InvitationOrderField = "ACCEPTED_AT" | "CREATED_AT" | "EMAIL" | "EXPIRES_AT" | "ROLE";
|
export type InvitationOrderField = "ACCEPTED_AT" | "CREATED_AT" | "EMAIL" | "EXPIRES_AT" | "FULL_NAME" | "ROLE";
|
||||||
export type OrderDirection = "ASC" | "DESC";
|
export type OrderDirection = "ASC" | "DESC";
|
||||||
export type InvitationOrder = {
|
export type InvitationOrder = {
|
||||||
direction: OrderDirection;
|
direction: OrderDirection;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<d9ec1da794fdbe09fbffc7ed32d22707>>
|
* @generated SignedSource<<e01416ecd129c81e31f5da90bf797ff7>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
import { ConcreteRequest } from 'relay-runtime';
|
import { ConcreteRequest } from 'relay-runtime';
|
||||||
import { FragmentRefs } from "relay-runtime";
|
import { FragmentRefs } from "relay-runtime";
|
||||||
export type MembershipOrderField = "CREATED_AT" | "ROLE";
|
export type MembershipOrderField = "CREATED_AT" | "EMAIL_ADDRESS" | "FULL_NAME" | "ROLE";
|
||||||
export type OrderDirection = "ASC" | "DESC";
|
export type OrderDirection = "ASC" | "DESC";
|
||||||
export type MembershipOrder = {
|
export type MembershipOrder = {
|
||||||
direction: OrderDirection;
|
direction: OrderDirection;
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import { graphql, usePaginationFragment } from "react-relay";
|
|||||||
import { InvitationListItem } from "./InvitationListItem";
|
import { InvitationListItem } from "./InvitationListItem";
|
||||||
import type { InvitationListFragment$key } from "/__generated__/iam/InvitationListFragment.graphql";
|
import type { InvitationListFragment$key } from "/__generated__/iam/InvitationListFragment.graphql";
|
||||||
import type { InvitationListFragment_RefetchQuery } from "/__generated__/iam/InvitationListFragment_RefetchQuery.graphql";
|
import type { InvitationListFragment_RefetchQuery } from "/__generated__/iam/InvitationListFragment_RefetchQuery.graphql";
|
||||||
|
import type { ComponentProps } from "react";
|
||||||
|
|
||||||
const fragment = graphql`
|
const fragment = graphql`
|
||||||
fragment InvitationListFragment on Organization
|
fragment InvitationListFragment on Organization
|
||||||
@@ -57,23 +58,11 @@ export function InvitationList(props: { fKey: InvitationListFragment$key }) {
|
|||||||
return (
|
return (
|
||||||
<SortableTable
|
<SortableTable
|
||||||
{...invitationsPagination}
|
{...invitationsPagination}
|
||||||
refetch={({ order }: { order: { direction: string; field: string } }) => {
|
refetch={
|
||||||
invitationsPagination.refetch({
|
invitationsPagination.refetch as ComponentProps<
|
||||||
order: {
|
typeof SortableTable
|
||||||
direction: order.direction as "ASC" | "DESC",
|
>["refetch"]
|
||||||
field: order.field as
|
}
|
||||||
| "CREATED_AT"
|
|
||||||
| "EXPIRES_AT"
|
|
||||||
// FIXME: put back
|
|
||||||
// | "FULL_NAME"
|
|
||||||
| "EMAIL"
|
|
||||||
| "ROLE"
|
|
||||||
// FIXME: put back
|
|
||||||
// | "STATUS"
|
|
||||||
| "ACCEPTED_AT",
|
|
||||||
},
|
|
||||||
});
|
|
||||||
}}
|
|
||||||
pageSize={20}
|
pageSize={20}
|
||||||
>
|
>
|
||||||
<Thead>
|
<Thead>
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import { SortableTable, SortableTh } from "/components/SortableTable";
|
|||||||
import type { MemberListFragment_RefetchQuery } from "/__generated__/iam/MemberListFragment_RefetchQuery.graphql";
|
import type { MemberListFragment_RefetchQuery } from "/__generated__/iam/MemberListFragment_RefetchQuery.graphql";
|
||||||
import { MemberListItem } from "./MemberListItem";
|
import { MemberListItem } from "./MemberListItem";
|
||||||
import type { MemberListFragment$key } from "/__generated__/iam/MemberListFragment.graphql";
|
import type { MemberListFragment$key } from "/__generated__/iam/MemberListFragment.graphql";
|
||||||
|
import type { ComponentProps } from "react";
|
||||||
|
|
||||||
const fragment = graphql`
|
const fragment = graphql`
|
||||||
fragment MemberListFragment on Organization
|
fragment MemberListFragment on Organization
|
||||||
@@ -55,19 +56,11 @@ export function MemberList(props: { fKey: MemberListFragment$key }) {
|
|||||||
return (
|
return (
|
||||||
<SortableTable
|
<SortableTable
|
||||||
{...membersPagination}
|
{...membersPagination}
|
||||||
refetch={({ order }: { order: { direction: string; field: string } }) => {
|
refetch={
|
||||||
membersPagination.refetch({
|
membersPagination.refetch as ComponentProps<
|
||||||
order: {
|
typeof SortableTable
|
||||||
direction: order.direction as "ASC" | "DESC",
|
>["refetch"]
|
||||||
field: order.field as
|
}
|
||||||
| "CREATED_AT"
|
|
||||||
// FIXME: add those back
|
|
||||||
// | "FULL_NAME"
|
|
||||||
// | "EMAIL_ADDRESS"
|
|
||||||
| "ROLE",
|
|
||||||
},
|
|
||||||
});
|
|
||||||
}}
|
|
||||||
pageSize={20}
|
pageSize={20}
|
||||||
>
|
>
|
||||||
<Thead>
|
<Thead>
|
||||||
|
|||||||
2
go.mod
2
go.mod
@@ -23,6 +23,7 @@ require (
|
|||||||
github.com/pdfcpu/pdfcpu v0.11.1
|
github.com/pdfcpu/pdfcpu v0.11.1
|
||||||
github.com/pires/go-proxyproto v0.8.1
|
github.com/pires/go-proxyproto v0.8.1
|
||||||
github.com/prometheus/client_golang v1.23.2
|
github.com/prometheus/client_golang v1.23.2
|
||||||
|
github.com/scim2/filter-parser/v2 v2.2.0
|
||||||
github.com/stretchr/testify v1.11.1
|
github.com/stretchr/testify v1.11.1
|
||||||
github.com/vektah/gqlparser/v2 v2.5.31
|
github.com/vektah/gqlparser/v2 v2.5.31
|
||||||
github.com/xuri/excelize/v2 v2.10.0
|
github.com/xuri/excelize/v2 v2.10.0
|
||||||
@@ -98,7 +99,6 @@ require (
|
|||||||
github.com/richardlehane/mscfb v1.0.4 // indirect
|
github.com/richardlehane/mscfb v1.0.4 // indirect
|
||||||
github.com/richardlehane/msoleps v1.0.4 // indirect
|
github.com/richardlehane/msoleps v1.0.4 // indirect
|
||||||
github.com/russellhaering/goxmldsig v1.5.0 // indirect
|
github.com/russellhaering/goxmldsig v1.5.0 // indirect
|
||||||
github.com/scim2/filter-parser/v2 v2.2.0 // indirect
|
|
||||||
github.com/sosodev/duration v1.3.1 // indirect
|
github.com/sosodev/duration v1.3.1 // indirect
|
||||||
github.com/spf13/cobra v1.10.1 // indirect
|
github.com/spf13/cobra v1.10.1 // indirect
|
||||||
github.com/spf13/pflag v1.0.9 // indirect
|
github.com/spf13/pflag v1.0.9 // indirect
|
||||||
|
|||||||
@@ -414,6 +414,14 @@ enum ReauthenticationReason {
|
|||||||
|
|
||||||
enum MembershipOrderField
|
enum MembershipOrderField
|
||||||
@goModel(model: "go.probo.inc/probo/pkg/coredata.MembershipOrderField") {
|
@goModel(model: "go.probo.inc/probo/pkg/coredata.MembershipOrderField") {
|
||||||
|
FULL_NAME
|
||||||
|
@goEnum(
|
||||||
|
value: "go.probo.inc/probo/pkg/coredata.MembershipOrderFieldFullName"
|
||||||
|
)
|
||||||
|
EMAIL_ADDRESS
|
||||||
|
@goEnum(
|
||||||
|
value: "go.probo.inc/probo/pkg/coredata.MembershipOrderFieldEmailAddress"
|
||||||
|
)
|
||||||
ROLE
|
ROLE
|
||||||
@goEnum(value: "go.probo.inc/probo/pkg/coredata.MembershipOrderFieldRole")
|
@goEnum(value: "go.probo.inc/probo/pkg/coredata.MembershipOrderFieldRole")
|
||||||
CREATED_AT
|
CREATED_AT
|
||||||
@@ -446,6 +454,10 @@ type MembershipEdge {
|
|||||||
|
|
||||||
enum InvitationOrderField
|
enum InvitationOrderField
|
||||||
@goModel(model: "go.probo.inc/probo/pkg/coredata.InvitationOrderField") {
|
@goModel(model: "go.probo.inc/probo/pkg/coredata.InvitationOrderField") {
|
||||||
|
FULL_NAME
|
||||||
|
@goEnum(
|
||||||
|
value: "go.probo.inc/probo/pkg/coredata.InvitationOrderFieldFullName"
|
||||||
|
)
|
||||||
EMAIL
|
EMAIL
|
||||||
@goEnum(value: "go.probo.inc/probo/pkg/coredata.InvitationOrderFieldEmail")
|
@goEnum(value: "go.probo.inc/probo/pkg/coredata.InvitationOrderFieldEmail")
|
||||||
ROLE
|
ROLE
|
||||||
|
|||||||
@@ -2693,6 +2693,14 @@ enum ReauthenticationReason {
|
|||||||
|
|
||||||
enum MembershipOrderField
|
enum MembershipOrderField
|
||||||
@goModel(model: "go.probo.inc/probo/pkg/coredata.MembershipOrderField") {
|
@goModel(model: "go.probo.inc/probo/pkg/coredata.MembershipOrderField") {
|
||||||
|
FULL_NAME
|
||||||
|
@goEnum(
|
||||||
|
value: "go.probo.inc/probo/pkg/coredata.MembershipOrderFieldFullName"
|
||||||
|
)
|
||||||
|
EMAIL_ADDRESS
|
||||||
|
@goEnum(
|
||||||
|
value: "go.probo.inc/probo/pkg/coredata.MembershipOrderFieldEmailAddress"
|
||||||
|
)
|
||||||
ROLE
|
ROLE
|
||||||
@goEnum(value: "go.probo.inc/probo/pkg/coredata.MembershipOrderFieldRole")
|
@goEnum(value: "go.probo.inc/probo/pkg/coredata.MembershipOrderFieldRole")
|
||||||
CREATED_AT
|
CREATED_AT
|
||||||
@@ -2725,6 +2733,10 @@ type MembershipEdge {
|
|||||||
|
|
||||||
enum InvitationOrderField
|
enum InvitationOrderField
|
||||||
@goModel(model: "go.probo.inc/probo/pkg/coredata.InvitationOrderField") {
|
@goModel(model: "go.probo.inc/probo/pkg/coredata.InvitationOrderField") {
|
||||||
|
FULL_NAME
|
||||||
|
@goEnum(
|
||||||
|
value: "go.probo.inc/probo/pkg/coredata.InvitationOrderFieldFullName"
|
||||||
|
)
|
||||||
EMAIL
|
EMAIL
|
||||||
@goEnum(value: "go.probo.inc/probo/pkg/coredata.InvitationOrderFieldEmail")
|
@goEnum(value: "go.probo.inc/probo/pkg/coredata.InvitationOrderFieldEmail")
|
||||||
ROLE
|
ROLE
|
||||||
@@ -19995,6 +20007,7 @@ func (ec *executionContext) marshalNInvitationOrderField2goᚗproboᚗincᚋprob
|
|||||||
|
|
||||||
var (
|
var (
|
||||||
unmarshalNInvitationOrderField2goᚗproboᚗincᚋproboᚋpkgᚋcoredataᚐInvitationOrderField = map[string]coredata.InvitationOrderField{
|
unmarshalNInvitationOrderField2goᚗproboᚗincᚋproboᚋpkgᚋcoredataᚐInvitationOrderField = map[string]coredata.InvitationOrderField{
|
||||||
|
"FULL_NAME": coredata.InvitationOrderFieldFullName,
|
||||||
"EMAIL": coredata.InvitationOrderFieldEmail,
|
"EMAIL": coredata.InvitationOrderFieldEmail,
|
||||||
"ROLE": coredata.InvitationOrderFieldRole,
|
"ROLE": coredata.InvitationOrderFieldRole,
|
||||||
"CREATED_AT": coredata.InvitationOrderFieldCreatedAt,
|
"CREATED_AT": coredata.InvitationOrderFieldCreatedAt,
|
||||||
@@ -20002,6 +20015,7 @@ var (
|
|||||||
"ACCEPTED_AT": coredata.InvitationOrderFieldAcceptedAt,
|
"ACCEPTED_AT": coredata.InvitationOrderFieldAcceptedAt,
|
||||||
}
|
}
|
||||||
marshalNInvitationOrderField2goᚗproboᚗincᚋproboᚋpkgᚋcoredataᚐInvitationOrderField = map[coredata.InvitationOrderField]string{
|
marshalNInvitationOrderField2goᚗproboᚗincᚋproboᚋpkgᚋcoredataᚐInvitationOrderField = map[coredata.InvitationOrderField]string{
|
||||||
|
coredata.InvitationOrderFieldFullName: "FULL_NAME",
|
||||||
coredata.InvitationOrderFieldEmail: "EMAIL",
|
coredata.InvitationOrderFieldEmail: "EMAIL",
|
||||||
coredata.InvitationOrderFieldRole: "ROLE",
|
coredata.InvitationOrderFieldRole: "ROLE",
|
||||||
coredata.InvitationOrderFieldCreatedAt: "CREATED_AT",
|
coredata.InvitationOrderFieldCreatedAt: "CREATED_AT",
|
||||||
@@ -20128,12 +20142,16 @@ func (ec *executionContext) marshalNMembershipOrderField2goᚗproboᚗincᚋprob
|
|||||||
|
|
||||||
var (
|
var (
|
||||||
unmarshalNMembershipOrderField2goᚗproboᚗincᚋproboᚋpkgᚋcoredataᚐMembershipOrderField = map[string]coredata.MembershipOrderField{
|
unmarshalNMembershipOrderField2goᚗproboᚗincᚋproboᚋpkgᚋcoredataᚐMembershipOrderField = map[string]coredata.MembershipOrderField{
|
||||||
"ROLE": coredata.MembershipOrderFieldRole,
|
"FULL_NAME": coredata.MembershipOrderFieldFullName,
|
||||||
"CREATED_AT": coredata.MembershipOrderFieldCreatedAt,
|
"EMAIL_ADDRESS": coredata.MembershipOrderFieldEmailAddress,
|
||||||
|
"ROLE": coredata.MembershipOrderFieldRole,
|
||||||
|
"CREATED_AT": coredata.MembershipOrderFieldCreatedAt,
|
||||||
}
|
}
|
||||||
marshalNMembershipOrderField2goᚗproboᚗincᚋproboᚋpkgᚋcoredataᚐMembershipOrderField = map[coredata.MembershipOrderField]string{
|
marshalNMembershipOrderField2goᚗproboᚗincᚋproboᚋpkgᚋcoredataᚐMembershipOrderField = map[coredata.MembershipOrderField]string{
|
||||||
coredata.MembershipOrderFieldRole: "ROLE",
|
coredata.MembershipOrderFieldFullName: "FULL_NAME",
|
||||||
coredata.MembershipOrderFieldCreatedAt: "CREATED_AT",
|
coredata.MembershipOrderFieldEmailAddress: "EMAIL_ADDRESS",
|
||||||
|
coredata.MembershipOrderFieldRole: "ROLE",
|
||||||
|
coredata.MembershipOrderFieldCreatedAt: "CREATED_AT",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -1221,6 +1221,12 @@ func (r *organizationResolver) Invitations(ctx context.Context, obj *types.Organ
|
|||||||
Field: coredata.InvitationOrderFieldCreatedAt,
|
Field: coredata.InvitationOrderFieldCreatedAt,
|
||||||
Direction: page.OrderDirectionDesc,
|
Direction: page.OrderDirectionDesc,
|
||||||
}
|
}
|
||||||
|
if orderBy != nil {
|
||||||
|
pageOrderBy = page.OrderBy[coredata.InvitationOrderField]{
|
||||||
|
Field: orderBy.Field,
|
||||||
|
Direction: orderBy.Direction,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
filters := coredata.NewInvitationFilter(nil)
|
filters := coredata.NewInvitationFilter(nil)
|
||||||
if status != nil {
|
if status != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user