From 0b1edfa089539cf31f92e954003e99b2e7c4bb3f Mon Sep 17 00:00:00 2001 From: Dorian Koch <doriank@fsmpi.rwth-aachen.de> Date: Wed, 11 Sep 2024 15:35:50 +0200 Subject: [PATCH] Add some changelog improvements --- src/pages/internal/changelog.tsx | 127 ++++++++++++++++--------------- 1 file changed, 66 insertions(+), 61 deletions(-) diff --git a/src/pages/internal/changelog.tsx b/src/pages/internal/changelog.tsx index f3bf481..2a333c8 100644 --- a/src/pages/internal/changelog.tsx +++ b/src/pages/internal/changelog.tsx @@ -53,6 +53,28 @@ function ChangelogList({ </thead> <tbody> {(changelog?.page ?? []).map((i) => { + const filterLevel = (lvl: number) => { + return () => { + setFilter( + "object_type", + lvl >= 1 ? i.object_type : undefined, + true, + false, + ); + setFilter( + "object_id", + lvl >= 2 ? i.object_id : undefined, + true, + false, + ); + setFilter( + "field", + lvl >= 3 ? i.field_description!.id : undefined, + true, + true, + ); + }; + }; let pfad = <></>; switch (i.type) { case "modification": @@ -61,43 +83,23 @@ function ChangelogList({ <button type="button" className="btn btn-link p-0 align-baseline" - onClick={() => { - setFilter( - "object_type", - i.object_type, - true, - false, - ); - setFilter("object_id", i.object_id, true, true); - setFilter("field", undefined, true, true); - }} + onClick={filterLevel(1)} + > + {`${i.object_type}`} + </button> + . + <button + type="button" + className="btn btn-link p-0 align-baseline" + onClick={filterLevel(2)} > - {`${i.object_type}.${i.object_id}`} + {`${i.object_id}`} </button> . <button type="button" className="btn btn-link p-0 align-baseline" - onClick={() => { - setFilter( - "object_type", - i.object_type, - true, - false, - ); - setFilter( - "object_id", - i.object_id, - true, - false, - ); - setFilter( - "field", - i.field_description!.id, - true, - true, - ); - }} + onClick={filterLevel(3)} >{`${i.field_description!.id}`}</button> {` (${i.field_description?.type})`} </> @@ -109,48 +111,51 @@ function ChangelogList({ <button type="button" className="btn btn-link p-0 align-baseline" - onClick={() => { - setFilter( - "object_type", - i.object_type, - true, - false, - ); - setFilter("object_id", i.object_id, true, true); - setFilter("field", undefined, true, true); - }} + onClick={filterLevel(1)} + > + {`${i.object_type}`} + </button> + . + <button + type="button" + className="btn btn-link p-0 align-baseline" + onClick={filterLevel(2)} > - {`${i.object_type}.${i.object_id}`} + {`${i.object_id}`} </button> - {` (variant:${i.variant})`} + {typeof i.variant === "string" && + ` (variant:${i.variant})`} </> ); break; case "deletion_change": pfad = ( - <button - type="button" - className="btn btn-link p-0 align-baseline" - onClick={() => { - setFilter( - "object_type", - i.object_type, - true, - false, - ); - setFilter("object_id", i.object_id, true, true); - setFilter("field", undefined, true, true); - }} - > - {`${i.object_type}.${i.object_id}`} - </button> + <> + <button + type="button" + className="btn btn-link p-0 align-baseline" + onClick={filterLevel(1)} + > + {`${i.object_type}`} + </button> + . + <button + type="button" + className="btn btn-link p-0 align-baseline" + onClick={filterLevel(2)} + > + {`${i.object_id}`} + </button> + </> ); break; case "unknown": - pfad = <>{`${i.unknown_type}.${i.unknown_field}`}</>; + pfad = ( + <>{`${i.unknown_type}.${i.unknown_field}, id=${i.object_id}`}</> + ); break; default: - pfad = <>i.type</>; + pfad = <>{i.type}</>; } const valToStr = (val: any) => { if (val === null) { -- GitLab