diff --git a/src/moderations/page.tsx b/src/moderations/page.tsx index 99f862db..76d9b15c 100644 --- a/src/moderations/page.tsx +++ b/src/moderations/page.tsx @@ -22,12 +22,17 @@ export const SEARCH_SIRET_INPUT_ID = "search_siret"; export const SEARCH_EMAIL_INPUT_ID = "search_email"; export const PROCESSED_REQUESTS_INPUT_ID = "processed_requests"; export const NON_VERIFIED_DOMAIN_INPUT_ID = "non_verified_domain"; +export const HIDE_JOIN_ORGANIZATION_INPUT_ID = "hide_join_organization"; export const Search_Schema = z.object({ [SEARCH_SIRET_INPUT_ID]: z.string().default(""), [SEARCH_EMAIL_INPUT_ID]: z.string().default(""), [PROCESSED_REQUESTS_INPUT_ID]: z.string().pipe(z_coerce_boolean).default(""), [NON_VERIFIED_DOMAIN_INPUT_ID]: z.string().pipe(z_coerce_boolean).default(""), + [HIDE_JOIN_ORGANIZATION_INPUT_ID]: z + .string() + .pipe(z_coerce_boolean) + .default(""), }); export type Search = z.infer; @@ -36,6 +41,7 @@ export type Search = z.infer; const hx_moderations_query_props = { "hx-get": app_hc.moderations.$url().pathname, "hx-include": hx_include([ + HIDE_JOIN_ORGANIZATION_INPUT_ID, MODERATION_TABLE_PAGE_ID, NON_VERIFIED_DOMAIN_INPUT_ID, PROCESSED_REQUESTS_INPUT_ID, @@ -77,6 +83,7 @@ function Filter({ search }: { search: Search }) {
+
+
+ + +
+
); } @@ -154,10 +176,11 @@ async function ModerationList_Table({ } = useRequestContext(); const { page, page_size } = pagination; const { + hide_join_organization, + non_verified_domain, + processed_requests, search_email, search_siret, - processed_requests, - non_verified_domain, } = search; const { count, moderations } = await get_moderations_list(moncomptepro_pg, { search: { @@ -165,6 +188,7 @@ async function ModerationList_Table({ siret: search_siret, show_archived: processed_requests, hide_non_verified_domain: non_verified_domain, + hide_join_organization: hide_join_organization, }, pagination: { page: page - 1, take: page_size }, }); diff --git a/src/moderations/repository.ts b/src/moderations/repository.ts index 0d9bf195..481537cd 100644 --- a/src/moderations/repository.ts +++ b/src/moderations/repository.ts @@ -22,16 +22,23 @@ export function get_moderations_list( pagination = { page: 0, take: 10 }, }: { search: { - siret?: string; email?: string; - show_archived?: boolean; + hide_join_organization?: boolean; hide_non_verified_domain?: boolean; + show_archived?: boolean; + siret?: string; }; pagination?: { page: number; take: number }; }, ) { const { page, take } = pagination; - const { email, siret, show_archived, hide_non_verified_domain } = search; + const { + email, + hide_join_organization, + hide_non_verified_domain, + show_archived, + siret, + } = search; const where = and( ilike(schema.organizations.siret, `%${siret ?? ""}%`), @@ -42,6 +49,9 @@ export function get_moderations_list( hide_non_verified_domain ? not(eq(schema.moderations.type, "non_verified_domain")) : undefined, + hide_join_organization + ? not(eq(schema.moderations.type, "organization_join_block")) + : undefined, ); return pg.transaction(async function moderation_count() { diff --git a/src/moderations/route.tsx b/src/moderations/route.tsx index 3101bb3a..6eddbb70 100644 --- a/src/moderations/route.tsx +++ b/src/moderations/route.tsx @@ -23,11 +23,12 @@ const moderations_page_route = new Hono() zValidator("query", Search_Schema.merge(Pagination_Schema).partial()), function GET({ render, req, var: { nonce, userinfo } }) { const { + hide_join_organization, + non_verified_domain, page, + processed_requests, search_email, search_siret, - processed_requests, - non_verified_domain, } = req.valid("query"); const username = userinfo_to_username(userinfo); return render( @@ -37,6 +38,7 @@ const moderations_page_route = new Hono() page_size: 10, }} search={{ + hide_join_organization: hide_join_organization ?? false, non_verified_domain: non_verified_domain ?? false, processed_requests: processed_requests ?? false, search_email: search_email ?? "",