Implement decision points table components#2599
Implement decision points table components#2599zackcl merged 2 commits intoexperiment-design-refreshfrom
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR implements the decision points table components for the experiment details page, providing a comprehensive table interface to display and manage experiment decision points with proper internationalization support.
- Adds complete decision points table functionality with site, target, exclude-if-reached, and actions columns
- Implements row action handlers for edit and delete operations with proper event emission
- Integrates the table with the parent section card component including loading states and permission-based action controls
Reviewed Changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| en.json | Adds internationalization keys for table headers and no-data message |
| experiment-decision-points-table.component.ts | Implements complete table component with inputs, outputs, and action handlers |
| experiment-decision-points-table.component.scss | Adds comprehensive table styling with responsive layout and action button styles |
| experiment-decision-points-table.component.html | Creates Material table template with all columns and loading/empty states |
| experiment-decision-points-section-card.component.ts | Integrates table with section card and implements row action event handling |
| experiment-decision-points-section-card.component.html | Connects table inputs and outputs to parent component data and events |
| experiments.model.ts | Defines row action enums and event interfaces for table interactions |
Comments suppressed due to low confidence (2)
frontend/projects/upgrade/src/app/features/dashboard/experiments/pages/experiment-details-page/experiment-details-page-content/experiment-decision-points-section-card/experiment-decision-points-section-card.component.html:7
- The property name 'partitions' is inconsistent with the component name 'decision-points'. Consider using 'decisionPoints' property name for better semantic clarity, or verify if 'partitions' is the correct data source.
[tableRowCount]="experiment.partitions?.length || 0"
frontend/projects/upgrade/src/app/features/dashboard/experiments/pages/experiment-details-page/experiment-details-page-content/experiment-decision-points-section-card/experiment-decision-points-section-card.component.html:28
- The property name 'partitions' is inconsistent with the component input name 'decisionPoints'. This naming inconsistency could cause confusion about the data structure being passed.
[decisionPoints]="experiment.partitions"
|
|
||
| onMenuButtonItemClick(event: string, experiment: Experiment): void { | ||
| switch (event) { | ||
| case EXPERIMENT_BUTTON_ACTION.IMPORT_DECISION_POINT: |
There was a problem hiding this comment.
Again, importing and exporting of decision point, conditions, etc. (everything besides inclusion/exclusion lists) is not going to be supported any time soon. There are no endpoints for these things - maybe for the next version?
There was a problem hiding this comment.
OK, I will hide the menu buttons in a separate PR once we have all the experiment section cards. I think it would be easier to do this at once.
| @@ -1,3 +1,101 @@ | |||
| .table-container { | |||
There was a problem hiding this comment.
Are any of these styles generalizable across the different tables we're using (decision points, inclusion lists, conditions, etc.) or are they all being styled separately?
There was a problem hiding this comment.
I will also try to do this later in a separate PR.
bcb37
left a comment
There was a problem hiding this comment.
Look ok to me, just a few questions/comments.
* Implement decision points table components * Remove unused ngOnInit
* Auto-remove leading/trailing spaces from all input text (#2537) * fix entity types; add enum migration (#2551) * add parent segments list to 'Used By' status of segments (#2543) * add parent segments list to 'Used By' status of segments * remove unused data binding * update no-data message * Add and display 'status' field of parent segments * don't await response from csv export endpoint (#2552) * add mooclet env vars to app-infrastructure.yml (#2555) * add mooclet env vars to app-infrastructure.yml * correct ssm value typos * toggle mooclet on in frontend * toggle mooclet on in frontend (#2564) * toggle staging also (#2566) * Feature/ff ephemeral user options (#2556) (#2573) * ephemeral ff user groups and remove exposure id FK constraint * ephemeral ff user groups and remove exposure id FK constraint * remove comment from ff-exposure model * use same language in usercheck middleware docs as swagger * restore condition payload formatting on pagination response (#2574) * split ScheduledJobService in two to avoid circular dependency (#2575) * split ScheduledJobService in two to avoid circular dependency * Update backend/packages/Upgrade/test/unit/services/ScheduledJobService.test.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update backend/packages/Upgrade/test/unit/services/MoocletExperimentService.test.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Fix test suite description for Experiment Scheduler Service --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * add example in add-metrics editor and a link to gitbook (#2581) * add example in add-metrics editor and a link to gitbook * remove typo * filter out _REWARD metrics that do not belong to experiment (#2580) * filter out _REWARD metrics that do not belong to experiment * correct for add experiment flow * clarify logic * remove console log * throw errors from axios mooclet requests; but not from deleting mooclet resources (#2582) * Bump on-headers, compression, morgan and express-session (#2585) --- updated-dependencies: - dependency-name: on-headers dependency-version: 1.1.0 dependency-type: indirect - dependency-name: compression dependency-version: 1.8.1 dependency-type: direct:production - dependency-name: morgan dependency-version: 1.10.1 dependency-type: direct:production - dependency-name: express-session dependency-version: 1.18.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update Reward Metric Display (#2583) * Update Reward Metric Display * Make the key and value more distinct * Refine Metrics table for displaying group metrics and categorical type * Remove bullet from Key and Values * Bump form-data from 4.0.0 to 4.0.4 in /k6 Bumps [form-data](https://github.com/form-data/form-data) from 4.0.0 to 4.0.4. - [Release notes](https://github.com/form-data/form-data/releases) - [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md) - [Commits](form-data/form-data@v4.0.0...v4.0.4) --- updated-dependencies: - dependency-name: form-data dependency-version: 4.0.4 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * Bump form-data from 4.0.1 to 4.0.4 in /backend/packages/Scheduler Bumps [form-data](https://github.com/form-data/form-data) from 4.0.1 to 4.0.4. - [Release notes](https://github.com/form-data/form-data/releases) - [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md) - [Commits](form-data/form-data@v4.0.1...v4.0.4) --- updated-dependencies: - dependency-name: form-data dependency-version: 4.0.4 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * Bump on-headers and compression in /frontend (#2591) Bumps [on-headers](https://github.com/jshttp/on-headers) and [compression](https://github.com/expressjs/compression). These dependencies needed to be updated together. Updates `on-headers` from 1.0.2 to 1.1.0 - [Release notes](https://github.com/jshttp/on-headers/releases) - [Changelog](https://github.com/jshttp/on-headers/blob/master/HISTORY.md) - [Commits](jshttp/on-headers@v1.0.2...v1.1.0) Updates `compression` from 1.8.0 to 1.8.1 - [Release notes](https://github.com/expressjs/compression/releases) - [Changelog](https://github.com/expressjs/compression/blob/master/HISTORY.md) - [Commits](expressjs/compression@1.8.0...v1.8.1) --- updated-dependencies: - dependency-name: on-headers dependency-version: 1.1.0 dependency-type: indirect - dependency-name: compression dependency-version: 1.8.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * clone lists on duplicate (#2588) * Use new 'repeated_enrollment' table for within-subject experiments (#2559) * Use new 'repeated_enrollment' table for within-subject experiments * Update backend/packages/Upgrade/test/integration/ExperimentStats/WithinSubjectEnrollment.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * use relative paths * fix postgres text case return values --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Bump form-data from 4.0.0 to 4.0.4 in /clientlibs/js Bumps [form-data](https://github.com/form-data/form-data) from 4.0.0 to 4.0.4. - [Release notes](https://github.com/form-data/form-data/releases) - [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md) - [Commits](form-data/form-data@v4.0.0...v4.0.4) --- updated-dependencies: - dependency-name: form-data dependency-version: 4.0.4 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * Bump form-data in /backend/packages/Upgrade (#2604) Bumps and [form-data](https://github.com/form-data/form-data). These dependencies needed to be updated together. Updates `form-data` from 4.0.1 to 4.0.4 - [Release notes](https://github.com/form-data/form-data/releases) - [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md) - [Commits](form-data/form-data@v4.0.1...v4.0.4) Updates `form-data` from 2.5.2 to 4.0.4 - [Release notes](https://github.com/form-data/form-data/releases) - [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md) - [Commits](form-data/form-data@v4.0.1...v4.0.4) --- updated-dependencies: - dependency-name: form-data dependency-version: 4.0.4 dependency-type: indirect - dependency-name: form-data dependency-version: 4.0.4 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Resolve segment options not showing in experiment participants include table (#2609) * fix: resolve segment options not showing in experiment participants include table * Remove redundant bindParticipantsData call from ngOnInit * perform all metrics queries in a single transaction (#2610) * perform all metrics queries in a single transaction * Update backend/packages/Upgrade/test/unit/services/QueryService.test.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Bump form-data from 4.0.1 to 4.0.4 in /frontend Bumps [form-data](https://github.com/form-data/form-data) from 4.0.1 to 4.0.4. - [Release notes](https://github.com/form-data/form-data/releases) - [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md) - [Commits](form-data/form-data@v4.0.1...v4.0.4) --- updated-dependencies: - dependency-name: form-data dependency-version: 4.0.4 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * Bump sha.js from 2.4.11 to 2.4.12 in /backend/packages/Upgrade Bumps [sha.js](https://github.com/crypto-browserify/sha.js) from 2.4.11 to 2.4.12. - [Changelog](https://github.com/browserify/sha.js/blob/master/CHANGELOG.md) - [Commits](browserify/sha.js@v2.4.11...v2.4.12) --- updated-dependencies: - dependency-name: sha.js dependency-version: 2.4.12 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * Bump multer and routing-controllers in /backend/packages/Upgrade (#2620) Bumps [multer](https://github.com/expressjs/multer) to 2.0.2 and updates ancestor dependency [routing-controllers](https://github.com/typestack/routing-controllers). These dependencies need to be updated together. Updates `multer` from 1.4.5-lts.1 to 2.0.2 - [Release notes](https://github.com/expressjs/multer/releases) - [Changelog](https://github.com/expressjs/multer/blob/main/CHANGELOG.md) - [Commits](expressjs/multer@v1.4.5-lts.1...v2.0.2) Updates `routing-controllers` from 0.11.2 to 0.11.3 - [Release notes](https://github.com/typestack/routing-controllers/releases) - [Changelog](https://github.com/typestack/routing-controllers/blob/develop/CHANGELOG.md) - [Commits](typestack/routing-controllers@v0.11.2...v0.11.3) --- updated-dependencies: - dependency-name: multer dependency-version: 2.0.2 dependency-type: indirect - dependency-name: routing-controllers dependency-version: 0.11.3 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump tmp and @inquirer/editor in /frontend (#2619) Removes [tmp](https://github.com/raszi/node-tmp). It's no longer used after updating ancestor dependency [@inquirer/editor](https://github.com/SBoudrias/Inquirer.js). These dependencies need to be updated together. Removes `tmp` Updates `@inquirer/editor` from 4.2.6 to 4.2.17 - [Release notes](https://github.com/SBoudrias/Inquirer.js/releases) - [Commits](https://github.com/SBoudrias/Inquirer.js/compare/@inquirer/editor@4.2.6...@inquirer/editor@4.2.17) --- updated-dependencies: - dependency-name: tmp dependency-version: dependency-type: indirect - dependency-name: "@inquirer/editor" dependency-version: 4.2.17 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * clientlibs: check for cached data in assign and ff calls (#2615) * clientlibs: check for cached data in assign and ff calls * Update clientlibs/js/src/UpGradeClient/UpgradeClient.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update clientlibs/js/src/UpGradeClient/UpgradeClient.spec.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * clientlib versions to 6.1.2; update java README (#2634) * add back files needed for client publish github action (#2637) * Merge release 6.1 into dev (#2636) * update env toggle for staging and prod (#2454) * increase max subsegment depth to 8 (#2462) * remove joins from findOneSegmentByContextAndType (#2467) * skip duplicate check for private segments on upsert (#2472) * put changelog.md for release notes in repo (#2463) * remove sorting by status from global exclude list (#2476) * Exclude user with no working group data if there are global group excludes (#2502) * Auto-remove leading/trailing spaces from user-entered payloads (#2534) * Feature/ff ephemeral user options (#2556) * ephemeral ff user groups and remove exposure id FK constraint * ephemeral ff user groups and remove exposure id FK constraint * remove comment from ff-exposure model * use same language in usercheck middleware docs as swagger * mooclet configs on for staging (#2565) * recommit --------- Co-authored-by: Ben Blanchard <bblanchard@carnegielearning.com> Co-authored-by: Zack Lee <90279765+zackcl@users.noreply.github.com> * generate new readme (#2641) * Move tests to jenkins ci (#2639) * move tests from pre-commit to jenkinsfile * lint all the things * Clear group type when unit of assignment is not Group (#2645) * Bump axios from 1.8.2 to 1.12.0 in /clientlibs/js (#2652) Bumps [axios](https://github.com/axios/axios) from 1.8.2 to 1.12.0. - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](axios/axios@v1.8.2...v1.12.0) --- updated-dependencies: - dependency-name: axios dependency-version: 1.12.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump axios from 1.8.2 to 1.12.2 in /backend/packages/Upgrade (#2653) Bumps [axios](https://github.com/axios/axios) from 1.8.2 to 1.12.2. - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](axios/axios@v1.8.2...v1.12.2) --- updated-dependencies: - dependency-name: axios dependency-version: 1.12.2 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * move jaxb.ws.rs to Jakarta and bump Jersey to 3 (#2654) * Update clientlibs/java jaxb.ws.rs to Jakarta and bump Jersey to 3 --------- Co-authored-by: doswalt <doswalt@carnegielearning.com> Co-authored-by: danoswaltCL <97542869+danoswaltCL@users.noreply.github.com> Co-authored-by: Matt McHenry <mmchenry@carnegielearning.com> * validate group and group assignment unit agreement in experiment import, add, and update (#2649) * fix data exports for within-subject experiments (#2605) * fix data exports for within-subject experiments * remove unused method; simplify variable * remove enrollmentComplete experiments from pools unless already enrolled (#2670) * remove enrollmentComplete experiments from pools unless already enrolled * Update backend/packages/Upgrade/test/unit/services/ExperimentAssignmentService.test.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * no multiple assignment per decision point --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Add Docker build support for the demo app (#2658) * Update demo-app.js script and add Docker build support * Fix the frontend settings to work on /upgrade path for the demo app * Revert changes made to demo-app.js * Force user role to Creator when APP_DEMO is true (#2675) * force user role to Admin when APP_DEMO is true * force user role to Creator when APP_DEMO is true * Preverve the admin role on demo mode * Revert "Preverve the admin role on demo mode" This reverts commit b21fed9. * Add batch assign endpoint and functionality (#2613) * Add batch assign endpoint and functionality * remove console log and fix reference issue * remove filtering within-subject experiments * fix conditionals * remove 404 * remove extra vars from tests; add return type to method * refactor methods for readability * DRY assign methods * return 'NOT_FOUND' for users that are...not found * Fix/nav on detail url id segment change (#2677) * hash navigation helper * manually tell router to navigate when hashchangeevent fires * add new parameters to processExperimentPools() in getBatchExperimentConditions() (#2684) * Bump tar-fs from 2.1.3 to 2.1.4 in /backend/packages/Upgrade (#2683) Bumps [tar-fs](https://github.com/mafintosh/tar-fs) from 2.1.3 to 2.1.4. - [Commits](mafintosh/tar-fs@v2.1.3...v2.1.4) --- updated-dependencies: - dependency-name: tar-fs dependency-version: 2.1.4 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * nav to detail on create, pip exp count if 0 on getExperimentId success, rename confusing observable (#2676) * add 6.2 release notes (#2685) * Feature/ts client lib 6 2 (#2686) * add 6.2 release notes * get ts client lib version aligned w release version * update packages to 6.3 (#2687) * use custom data source for transaction (#2688) * use custom data source for transaction * fix test * use custom data source for transaction (#2688) (#2689) * use custom data source for transaction * fix test * remove transaction from metrics log queries (#2690) * use transaction entity manager in metrics log queries * remove transaction * Update backend/packages/Upgrade/src/api/repositories/LogRepository.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * do not wait for export to finish (#2691) * toggle within-subjects true for staging tests, mooclet true in prod file (#2692) * optimize export log query and service method (#2694) * optimize export log query and service method * Update backend/packages/Upgrade/src/api/services/AnalyticsService.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update backend/packages/Upgrade/src/api/services/AnalyticsService.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update backend/packages/Upgrade/src/api/services/AnalyticsService.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * use "upgrade-ci" task definition and run integration tests * change to trigger tests * set test host to 'localhost' * Update backend/packages/Upgrade/src/api/services/ExperimentAssignmentService.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Bump validator from 13.12.0 to 13.15.20 in /types (#2706) Bumps [validator](https://github.com/validatorjs/validator.js) from 13.12.0 to 13.15.20. - [Release notes](https://github.com/validatorjs/validator.js/releases) - [Changelog](https://github.com/validatorjs/validator.js/blob/master/CHANGELOG.md) - [Commits](validatorjs/validator.js@13.12.0...13.15.20) --- updated-dependencies: - dependency-name: validator dependency-version: 13.15.20 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump koa from 3.0.1 to 3.0.3 in /backend/packages/Upgrade (#2700) Bumps [koa](https://github.com/koajs/koa) from 3.0.1 to 3.0.3. - [Release notes](https://github.com/koajs/koa/releases) - [Changelog](https://github.com/koajs/koa/blob/master/History.md) - [Commits](koajs/koa@v3.0.1...v3.0.3) --- updated-dependencies: - dependency-name: koa dependency-version: 3.0.3 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump validator from 13.12.0 to 13.15.20 in /frontend (#2711) Bumps [validator](https://github.com/validatorjs/validator.js) from 13.12.0 to 13.15.20. - [Release notes](https://github.com/validatorjs/validator.js/releases) - [Changelog](https://github.com/validatorjs/validator.js/blob/master/CHANGELOG.md) - [Commits](validatorjs/validator.js@13.12.0...13.15.20) --- updated-dependencies: - dependency-name: validator dependency-version: 13.15.20 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump typeorm from 0.3.20 to 0.3.26 in /backend/packages/Upgrade (#2709) Bumps [typeorm](https://github.com/typeorm/typeorm) from 0.3.20 to 0.3.26. - [Release notes](https://github.com/typeorm/typeorm/releases) - [Changelog](https://github.com/typeorm/typeorm/blob/master/CHANGELOG.md) - [Commits](typeorm/typeorm@0.3.20...0.3.26) --- updated-dependencies: - dependency-name: typeorm dependency-version: 0.3.26 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Display the menu button on the details page to non-Reader roles (#2713) * Feature/2524 experiment redesign backend 1 (#2538) * Revert adding 'filtered total' for experiments * add experiment list endpoints * copilot review changes * add swagger annotations and endpoint tests * Implement experiments root page component and navigation (#2546) * Implement experiment root section card component (#2549) * Implement experiment root section card table component (#2553) * Implement experiment root section card component * Implement experiment root section card table component * Fix searching on status * Implement upsert experiment modal component (#2558) * Implement upsert experiment modal component * Resolve all comments * Remove mistake part * show experiment list actions in audit logs (#2570) * show experiment list actions in audit logs * Update frontend/projects/upgrade/src/app/features/dashboard/logs/components/timeline/timeline.component.html Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * add endpoints for importing and exporting experiment exclusion and in… (#2587) * add endpoints for importing and exporting experiment exclusion and inclusion lists * Update backend/packages/Upgrade/src/api/services/ExperimentService.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update backend/packages/Upgrade/src/api/controllers/ExperimentController.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update backend/packages/Upgrade/src/api/controllers/ExperimentController.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * more specific typing --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Implement experiment details page (#2563) * Implement experiment details page * Remove mistake part * Make experiment details page navigation work * Update ExperimentOverviewDetailsSectionCardComponent and ExperimentDetailsPageContentComponent * Refine selectExperimentOverviewDetails and update CommonTabbedSectionCardFooterComponent * Refine experiment details section card components * Refine en.json file * Update UpsertExperimentModalComponent to send requests with valid experiment data * Disable Factorial Experiment Type for v2 * Refactor nested ternaries * Add strongly-typed DTO interfaces for experiment requests * Update timeLog type in ExperimentStateTimeLogDTO * Update ExperimentConditionPayloadDTO to match backend * Remove redundant comments * Implement decision points table components (#2599) * Implement decision points table components * Remove unused ngOnInit * Implement conditions table components (#2600) * Implement decision points table components * Remove unused ngOnInit * Implement conditions table component * Refine the ExperimentConditionsTableComponent * Remove redundant check * convert to new list format for all endpoints (#2614) * Implement experiment include list table component (#2601) * Implement experiment include list table component * Refine the inclusions table component * Implement Include All toggle feature * Fix the empty Type cell after disabling Include All toggle * remove redundant API call in updateFilterMode method * Remove listType preservation * Simplify the updateFilterMode function * Implement experiment exclude list table component (#2612) * Implement experiment include list table component * Refine the inclusions table component * Implement Include All toggle feature * Fix the empty Type cell after disabling Include All toggle * remove redundant API call in updateFilterMode method * Implement experiment exclude list table component * Disable the slide toggle and action buttons on inclusion table when update permission is now allowed * Implement experiment metrics table component (#2622) * Implement experiment metrics table component * Fix the statistic order for categorical metrics * Update table row styles * add experiment list modals and functionality (#2638) * add experiment list modals and functionality * Update frontend/projects/upgrade/src/app/core/experiments/store/experiments.reducer.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update frontend/projects/upgrade/src/app/core/experiments/store/experiments.reducer.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * add missing text values --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * add edit-condition-weights modal (#2646) * add edit-condition-weights modal * Update frontend/projects/upgrade/src/app/features/dashboard/experiments/modals/edit-condition-weights-modal/edit-condition-weights-modal.component.spec.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * remove inaccurate comment * tighten css * changes to get closer to the spec * remove unneeded things --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Implement Upsert Decision Point Modal for Experiments (#2633) * Add upsert decision point modal component * Implement sendUpsertDecisionPointRequest for Add/Edit Decision Point modal * Create decision-point-helper.service.ts and implement the Delete Decision Point modal * Remove unneeded experimentContext input * Remove redundant fallback * refactor: add context validation and improve ternary readability * Fix duplicated import * condition edit/add/delete modal * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * remove redundant duplicate check * remove payload from conditions table (#2704) * remove payload from conditions table * fix columns * fix preexisting typecheck and missed unit tests --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Zack Lee <90279765+zackcl@users.noreply.github.com> Co-authored-by: Ben Blanchard <bblanchard@carnegielearning.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: ddenniston <106688763+ddenniston@users.noreply.github.com> Co-authored-by: Matt McHenry <mmchenry@carnegielearning.com> Co-authored-by: Zack Lee <zlee@carnegielearning.com>
Resolves #2592