From c813904ab52504667e0896d11830aa4607295f02 Mon Sep 17 00:00:00 2001 From: ppratikcr7 Date: Thu, 11 Mar 2021 16:15:32 +0530 Subject: [PATCH 1/4] fix for issue 109, on uncheck resets weights to previous weights if any or blank for new conditions --- .../experiment-design/experiment-design.component.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/projects/abtesting/src/app/features/dashboard/home/components/experiment-design/experiment-design.component.ts b/projects/abtesting/src/app/features/dashboard/home/components/experiment-design/experiment-design.component.ts index de656363..daae5856 100644 --- a/projects/abtesting/src/app/features/dashboard/home/components/experiment-design/experiment-design.component.ts +++ b/projects/abtesting/src/app/features/dashboard/home/components/experiment-design/experiment-design.component.ts @@ -244,6 +244,7 @@ export class ExperimentDesignComponent implements OnInit, OnChanges, OnDestroy { return partition; } + prevValue = []; applyEqualWeight(event){ console.log(event.checked); const conditions = this.experimentDesignForm.get('conditions') as FormArray; @@ -251,15 +252,16 @@ export class ExperimentDesignComponent implements OnInit, OnChanges, OnDestroy { if(event.checked){ const len = conditions.controls.length; conditions.controls.forEach( control => { + this.prevValue.push(control.get('assignmentWeight').value); control.get('assignmentWeight').setValue((100.0/len).toFixed(2)); }); } else { - conditions.controls.forEach( control => { - control.get('assignmentWeight').setValue(0); - }); + conditions.controls.forEach( (control, index) => { + control.get('assignmentWeight').setValue(this.prevValue[index]); + }); + this.prevValue = []; } - } From b62ae389fac3c4af6e9946e67ac0b363fa9fb601 Mon Sep 17 00:00:00 2001 From: ppratikcr7 Date: Thu, 15 Apr 2021 13:24:55 +0530 Subject: [PATCH 2/4] fix/issue-109 removing extra empty lines due to conflict --- .../experiment-design/experiment-design.component.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/projects/abtesting/src/app/features/dashboard/home/components/experiment-design/experiment-design.component.ts b/projects/abtesting/src/app/features/dashboard/home/components/experiment-design/experiment-design.component.ts index daae5856..571a0c06 100644 --- a/projects/abtesting/src/app/features/dashboard/home/components/experiment-design/experiment-design.component.ts +++ b/projects/abtesting/src/app/features/dashboard/home/components/experiment-design/experiment-design.component.ts @@ -264,7 +264,6 @@ export class ExperimentDesignComponent implements OnInit, OnChanges, OnDestroy { } } - get condition(): FormArray { return this.experimentDesignForm.get('conditions') as FormArray; } @@ -286,9 +285,8 @@ export class ExperimentDesignComponent implements OnInit, OnChanges, OnDestroy { return false; } - ngOnDestroy() { this.allPartitionsSub.unsubscribe(); this.partitionErrorMessagesSub.unsubscribe(); } -} +} \ No newline at end of file From 7367659c0a0587aef7e61cb839ec4fa3be335de1 Mon Sep 17 00:00:00 2001 From: ppratikcr7 Date: Fri, 16 Apr 2021 16:34:24 +0530 Subject: [PATCH 3/4] fix/issue-109 peer review corrections and code refomatting --- .../experiment-design/experiment-design.component.html | 10 +++++----- .../experiment-design/experiment-design.component.scss | 4 ++++ .../experiment-design/experiment-design.component.ts | 10 +++++----- .../home/validators/experiment-form.validators.ts | 1 + projects/abtesting/src/assets/i18n/en.json | 1 + 5 files changed, 16 insertions(+), 10 deletions(-) diff --git a/projects/abtesting/src/app/features/dashboard/home/components/experiment-design/experiment-design.component.html b/projects/abtesting/src/app/features/dashboard/home/components/experiment-design/experiment-design.component.html index 33a5e8e3..8074be49 100644 --- a/projects/abtesting/src/app/features/dashboard/home/components/experiment-design/experiment-design.component.html +++ b/projects/abtesting/src/app/features/dashboard/home/components/experiment-design/experiment-design.component.html @@ -129,14 +129,14 @@ - - + + -
+
- Equal Weight Assignment + {{ 'home.new-experiment.design.equal-assignment-weights.text' | translate }}
diff --git a/projects/abtesting/src/app/features/dashboard/home/components/experiment-design/experiment-design.component.scss b/projects/abtesting/src/app/features/dashboard/home/components/experiment-design/experiment-design.component.scss index 647bd3c1..06e96a77 100644 --- a/projects/abtesting/src/app/features/dashboard/home/components/experiment-design/experiment-design.component.scss +++ b/projects/abtesting/src/app/features/dashboard/home/components/experiment-design/experiment-design.component.scss @@ -86,6 +86,10 @@ .btn-back { margin-left: 0 !important; } + + .equal-weight-checkbox{ + color: var(--grey-6); + } } ::ng-deep .mat-form-field-appearance-legacy .mat-form-field-underline { diff --git a/projects/abtesting/src/app/features/dashboard/home/components/experiment-design/experiment-design.component.ts b/projects/abtesting/src/app/features/dashboard/home/components/experiment-design/experiment-design.component.ts index 571a0c06..3821dfc3 100644 --- a/projects/abtesting/src/app/features/dashboard/home/components/experiment-design/experiment-design.component.ts +++ b/projects/abtesting/src/app/features/dashboard/home/components/experiment-design/experiment-design.component.ts @@ -49,6 +49,8 @@ export class ExperimentDesignComponent implements OnInit, OnChanges, OnDestroy { partitionErrorMessages = []; partitionErrorMessagesSub: Subscription; + previousAssignmentWeightValues = []; + conditionDisplayedColumns = [ 'conditionNumber', 'conditionCode', 'assignmentWeight', 'description', 'removeCondition']; partitionDisplayedColumns = ['partitionNumber', 'expPoint', 'expId', 'removePartition']; constructor( @@ -244,23 +246,21 @@ export class ExperimentDesignComponent implements OnInit, OnChanges, OnDestroy { return partition; } - prevValue = []; applyEqualWeight(event){ - console.log(event.checked); const conditions = this.experimentDesignForm.get('conditions') as FormArray; if(event.checked){ const len = conditions.controls.length; conditions.controls.forEach( control => { - this.prevValue.push(control.get('assignmentWeight').value); + this.previousAssignmentWeightValues.push(control.get('assignmentWeight').value); control.get('assignmentWeight').setValue((100.0/len).toFixed(2)); }); } else { conditions.controls.forEach( (control, index) => { - control.get('assignmentWeight').setValue(this.prevValue[index]); + control.get('assignmentWeight').setValue(this.previousAssignmentWeightValues[index]); }); - this.prevValue = []; + this.previousAssignmentWeightValues = []; } } diff --git a/projects/abtesting/src/app/features/dashboard/home/validators/experiment-form.validators.ts b/projects/abtesting/src/app/features/dashboard/home/validators/experiment-form.validators.ts index b8ec2a97..fda2d767 100644 --- a/projects/abtesting/src/app/features/dashboard/home/validators/experiment-form.validators.ts +++ b/projects/abtesting/src/app/features/dashboard/home/validators/experiment-form.validators.ts @@ -12,6 +12,7 @@ export class ExperimentFormValidators { if (conditions.length < 2) { return { conditionCountError: true }; } else if (conditions.length >= 2) { + // handling sum of decimal values for assignment weights: let sumOfAssignmentWeights = 0.0; conditions.forEach(condition => (sumOfAssignmentWeights += parseFloat(condition.assignmentWeight))); return Math.ceil(sumOfAssignmentWeights) !== 100.0 ? { assignmentWightsSumError: true } : null; diff --git a/projects/abtesting/src/assets/i18n/en.json b/projects/abtesting/src/assets/i18n/en.json index 7064c770..338c31a4 100755 --- a/projects/abtesting/src/assets/i18n/en.json +++ b/projects/abtesting/src/assets/i18n/en.json @@ -95,6 +95,7 @@ "home.new-experiment.design.partition-id.placeholder.text": "ID", "home.new-experiment.design.add-experiment-partition.text": "Add Experiment Site", "home.new-experiment.design.assignment-weight-validation.text": "Assignment weights' sum must be 100", + "home.new-experiment.design.equal-assignment-weights.text": "Equal Weight Assignment", "home.new-experiment.design.assignment-partition-error-1.text": " partition data is already exist", "home.new-experiment.design.assignment-partition-error-2.text": " partition data are already exist", "home.new-experiment.design.assignment-partition-error-3.text": " partition data is duplicate", From c68879ca874fc355621a160c74eb34bfabddec5b Mon Sep 17 00:00:00 2001 From: ppratikcr7 Date: Sun, 18 Apr 2021 19:51:06 +0530 Subject: [PATCH 4/4] fix for issue 109: Color change on checking checkbox --- .../experiment-design/experiment-design.component.html | 7 ++++--- .../experiment-design/experiment-design.component.scss | 10 ++++++---- .../experiment-design/experiment-design.component.ts | 4 ++-- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/projects/abtesting/src/app/features/dashboard/home/components/experiment-design/experiment-design.component.html b/projects/abtesting/src/app/features/dashboard/home/components/experiment-design/experiment-design.component.html index 8074be49..14387e41 100644 --- a/projects/abtesting/src/app/features/dashboard/home/components/experiment-design/experiment-design.component.html +++ b/projects/abtesting/src/app/features/dashboard/home/components/experiment-design/experiment-design.component.html @@ -128,20 +128,21 @@ + {{ 'home.new-experiment.design.add-condition.text' | translate }} - +
{{ 'home.new-experiment.design.equal-assignment-weights.text' | translate }}
- + { this.previousAssignmentWeightValues.push(control.get('assignmentWeight').value);