diff --git a/src/app/services/cRaterService.spec.ts b/src/app/services/cRaterService.spec.ts index 1c533eb38f6..a024184c753 100644 --- a/src/app/services/cRaterService.spec.ts +++ b/src/app/services/cRaterService.spec.ts @@ -5,7 +5,7 @@ import { HttpTestingController, provideHttpClientTesting } from '@angular/common import { CRaterIdea } from '../../assets/wise5/components/common/cRater/CRaterIdea'; import { CRaterScore } from '../../assets/wise5/components/common/cRater/CRaterScore'; import { RawCRaterResponse } from '../../assets/wise5/components/common/cRater/RawCRaterResponse'; -import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http'; +import { provideHttpClient } from '@angular/common/http'; import { ProjectService } from '../../assets/wise5/services/projectService'; import { ComponentContent } from '../../assets/wise5/common/ComponentContent'; let service: CRaterService; @@ -24,7 +24,7 @@ describe('CRaterService', () => { ConfigService, CRaterService, { provide: ProjectService, useClass: MockProjectService }, - provideHttpClient(withInterceptorsFromDi()), + provideHttpClient(), provideHttpClientTesting() ] }); @@ -182,7 +182,7 @@ function makeCRaterVerifyRequest() { it('should make a CRater verify request', () => { spyOn(configService, 'getCRaterRequestURL').and.returnValue('/c-rater'); const itemId = 'ColdBeverage1Sub'; - service.makeCRaterVerifyRequest(itemId); + service.makeCRaterVerifyRequest(itemId).subscribe(); http.expectOne({ url: `/c-rater/verify?itemId=${itemId}`, method: 'GET' diff --git a/src/assets/wise5/components/common/cRater/crater-item-select/crater-item-select.component.html b/src/assets/wise5/components/common/cRater/crater-item-select/crater-item-select.component.html new file mode 100644 index 00000000000..ee8005c0db8 --- /dev/null +++ b/src/assets/wise5/components/common/cRater/crater-item-select/crater-item-select.component.html @@ -0,0 +1,8 @@ + + AI Model ID + + @for (itemId of itemIds; track itemId) { + {{ itemId }} + } + + diff --git a/src/assets/wise5/components/common/cRater/crater-item-select/crater-item-select.component.spec.ts b/src/assets/wise5/components/common/cRater/crater-item-select/crater-item-select.component.spec.ts new file mode 100644 index 00000000000..640d6abab58 --- /dev/null +++ b/src/assets/wise5/components/common/cRater/crater-item-select/crater-item-select.component.spec.ts @@ -0,0 +1,66 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { CRaterItemSelectComponent } from './crater-item-select.component'; +import { MockProviders } from 'ng-mocks'; +import { CRaterService } from '../../../../services/cRaterService'; +import { TeacherProjectService } from '../../../../services/teacherProjectService'; +import { HarnessLoader } from '@angular/cdk/testing'; +import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed'; +import { MatSelectHarness } from '@angular/material/select/testing'; +import { Observable } from 'rxjs'; + +let loader: HarnessLoader; +describe('CRaterItemSelectComponent', () => { + let component: CRaterItemSelectComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [CRaterItemSelectComponent], + providers: [MockProviders(CRaterService, TeacherProjectService)] + }).compileComponents(); + + fixture = TestBed.createComponent(CRaterItemSelectComponent); + loader = TestbedHarnessEnvironment.loader(fixture); + component = fixture.componentInstance; + component.componentContent = { itemId: 'berkeley_HeLa', type: 'DialogGuidance' }; + fixture.detectChanges(); + }); + + it('should show selected item id', async () => { + const select = await loader.getHarness(MatSelectHarness); + expect(await select.getValueText()).toBe('berkeley_HeLa'); + }); + + it('should get rubric and update component when item id is changed', async () => { + const cRaterService = TestBed.inject(CRaterService); + const rubricSpy = spyOn(cRaterService, 'makeCRaterVerifyRequest').and.returnValue( + new Observable((observer) => { + observer.next({ + rubric: { + description: 'Test description', + ideas: [ + { name: '1', text: 'Idea 1 text' }, + { name: '2', text: 'Idea 2 text' } + ] + } + }); + observer.complete(); + }) + ); + const saveSpy = spyOn(TestBed.inject(TeacherProjectService), 'saveProject'); + const select = await loader.getHarness(MatSelectHarness); + await select.open(); + const options = await select.getOptions(); + await options[0].click(); // Select the first item (berkeley_BowlsInAFridge) + expect(rubricSpy).toHaveBeenCalled(); + expect(saveSpy).toHaveBeenCalled(); + expect(component.componentContent.itemId).toEqual('berkeley_BowlsInAFridge'); + expect(component.componentContent.cRaterRubric).toEqual({ + description: 'Test description', + ideas: [ + { name: '1', text: 'Idea 1 text' }, + { name: '2', text: 'Idea 2 text' } + ] + }); + }); +}); diff --git a/src/assets/wise5/components/common/cRater/crater-item-select/crater-item-select.component.ts b/src/assets/wise5/components/common/cRater/crater-item-select/crater-item-select.component.ts new file mode 100644 index 00000000000..a3f93fb8e6e --- /dev/null +++ b/src/assets/wise5/components/common/cRater/crater-item-select/crater-item-select.component.ts @@ -0,0 +1,59 @@ +import { Component, Input } from '@angular/core'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatOption, MatSelect } from '@angular/material/select'; +import { CRaterService } from '../../../../services/cRaterService'; +import { TeacherProjectService } from '../../../../services/teacherProjectService'; +import { FormsModule } from '@angular/forms'; + +@Component({ + imports: [FormsModule, MatFormFieldModule, MatSelect, MatOption], + selector: 'c-rater-item-select', + templateUrl: './crater-item-select.component.html' +}) +export class CRaterItemSelectComponent { + @Input() componentContent: any; + protected itemIds = [ + 'berkeley_BowlsInAFridge', + 'berkeley_CarOnAColdDay', + 'berkeley_COAL-II', + 'berkeley_CovidImpacts', + 'berkeley_FoodJustice', + 'berkeley_FoodJusticeShortLabelIdeaKI', + 'berkeley_GenEx-Siblings', + 'berkeley_HeLa', + 'berkeley_Impacts', + 'berkeley_Lizards', + 'berkeley_MusicalInstruments-Speed', + 'berkeley_PhotoEnergyStory', + 'berkeley_PlateTectonics_MtHood', + 'berkeley_SPOON-II' + ]; + protected selectedItemId: string; + + constructor( + private cRaterService: CRaterService, + private projectService: TeacherProjectService + ) {} + + ngOnInit(): void { + if (this.componentContent.type === 'OpenResponse') { + this.selectedItemId = this.componentContent.cRater.itemId; + } else if (this.componentContent.type === 'DialogGuidance') { + this.selectedItemId = this.componentContent.itemId; + } + } + + protected getItemRubric(): void { + this.cRaterService.makeCRaterVerifyRequest(this.selectedItemId).subscribe((response) => { + const cRaterRubric = response.rubric ?? { description: '', ideas: [] }; + if (this.componentContent.type === 'OpenResponse') { + this.componentContent.cRater.rubric = cRaterRubric; + this.componentContent.cRater.itemId = this.selectedItemId; + } else if (this.componentContent.type === 'DialogGuidance') { + this.componentContent.cRaterRubric = cRaterRubric; + this.componentContent.itemId = this.selectedItemId; + } + this.projectService.saveProject(); + }); + } +} diff --git a/src/assets/wise5/components/common/cRater/edit-crater-description/edit-crater-description.component.html b/src/assets/wise5/components/common/cRater/edit-crater-description/edit-crater-description.component.html index ded26635944..3cba69219bc 100644 --- a/src/assets/wise5/components/common/cRater/edit-crater-description/edit-crater-description.component.html +++ b/src/assets/wise5/components/common/cRater/edit-crater-description/edit-crater-description.component.html @@ -1,16 +1,9 @@ -
-
- Model Description -
- - - User-Friendly Description - - - -
+ + User-Friendly Description + + diff --git a/src/assets/wise5/components/common/cRater/edit-crater-description/edit-crater-description.component.ts b/src/assets/wise5/components/common/cRater/edit-crater-description/edit-crater-description.component.ts index 80e48ce78d0..d5001fb0dd8 100644 --- a/src/assets/wise5/components/common/cRater/edit-crater-description/edit-crater-description.component.ts +++ b/src/assets/wise5/components/common/cRater/edit-crater-description/edit-crater-description.component.ts @@ -3,7 +3,6 @@ import { Component, Input } from '@angular/core'; import { CRaterRubric } from '../CRaterRubric'; import { debounceTime, distinctUntilChanged } from 'rxjs/operators'; import { FormsModule } from '@angular/forms'; -import { MatCardModule } from '@angular/material/card'; import { MatFormFieldModule } from '@angular/material/form-field'; import { MatInputModule } from '@angular/material/input'; import { Subject, Subscription } from 'rxjs'; @@ -11,7 +10,7 @@ import { TeacherProjectService } from '../../../../services/teacherProjectServic @Component({ selector: 'edit-crater-description', - imports: [CdkTextareaAutosize, FormsModule, MatCardModule, MatFormFieldModule, MatInputModule], + imports: [CdkTextareaAutosize, FormsModule, MatFormFieldModule, MatInputModule], templateUrl: './edit-crater-description.component.html', styleUrl: './edit-crater-description.component.scss' }) diff --git a/src/assets/wise5/components/common/cRater/edit-crater-idea-descriptions/edit-crater-idea-descriptions.component.scss b/src/assets/wise5/components/common/cRater/edit-crater-idea-descriptions/edit-crater-idea-descriptions.component.scss index cf404f368ac..dd734466133 100644 --- a/src/assets/wise5/components/common/cRater/edit-crater-idea-descriptions/edit-crater-idea-descriptions.component.scss +++ b/src/assets/wise5/components/common/cRater/edit-crater-idea-descriptions/edit-crater-idea-descriptions.component.scss @@ -12,6 +12,8 @@ h5 { ul { margin: 16px 0 0 0; padding: 0 0 16px; + max-height: 60vh; + overflow: auto; } li { diff --git a/src/assets/wise5/components/common/cRater/edit-crater-info/edit-crater-info.component.ts b/src/assets/wise5/components/common/cRater/edit-crater-info/edit-crater-info.component.ts index f8915c5bc3c..67c3f336153 100644 --- a/src/assets/wise5/components/common/cRater/edit-crater-info/edit-crater-info.component.ts +++ b/src/assets/wise5/components/common/cRater/edit-crater-info/edit-crater-info.component.ts @@ -2,19 +2,13 @@ import { Component, Input } from '@angular/core'; import { CRaterRubric } from '../CRaterRubric'; import { EditCRaterDescriptionComponent } from '../edit-crater-description/edit-crater-description.component'; import { EditCRaterIdeaDescriptionsComponent } from '../edit-crater-idea-descriptions/edit-crater-idea-descriptions.component'; -import { MatCardModule } from '@angular/material/card'; @Component({ selector: 'edit-crater-info', - imports: [EditCRaterDescriptionComponent, EditCRaterIdeaDescriptionsComponent, MatCardModule], - styles: ['.wrapper { padding: 16px; }'], - template: ` -
- Edit CRater Information -
+ imports: [EditCRaterDescriptionComponent, EditCRaterIdeaDescriptionsComponent], + template: `
AI Model Details
- -
` + ` }) export class EditCRaterInfoComponent { @Input() cRaterRubric: CRaterRubric; diff --git a/src/assets/wise5/components/dialogGuidance/dialog-guidance-authoring/dialog-guidance-authoring.component.html b/src/assets/wise5/components/dialogGuidance/dialog-guidance-authoring/dialog-guidance-authoring.component.html index 51006080f35..aa3928fcff3 100644 --- a/src/assets/wise5/components/dialogGuidance/dialog-guidance-authoring/dialog-guidance-authoring.component.html +++ b/src/assets/wise5/components/dialogGuidance/dialog-guidance-authoring/dialog-guidance-authoring.component.html @@ -3,15 +3,7 @@ [componentContent]="componentContent" (promptChangedEvent)="promptChanged($event)" /> - - Item ID - - + + diff --git a/src/assets/wise5/components/dialogGuidance/dialog-guidance-authoring/dialog-guidance-authoring.component.spec.ts b/src/assets/wise5/components/dialogGuidance/dialog-guidance-authoring/dialog-guidance-authoring.component.spec.ts index 40804a3ee64..8bb69ace20a 100644 --- a/src/assets/wise5/components/dialogGuidance/dialog-guidance-authoring/dialog-guidance-authoring.component.spec.ts +++ b/src/assets/wise5/components/dialogGuidance/dialog-guidance-authoring/dialog-guidance-authoring.component.spec.ts @@ -1,4 +1,4 @@ -import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http'; +import { provideHttpClient } from '@angular/common/http'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { ProjectLocale } from '../../../../../app/domain/projectLocale'; import { ProjectAssetService } from '../../../../../app/services/projectAssetService'; @@ -8,6 +8,8 @@ import { TeacherNodeService } from '../../../services/teacherNodeService'; import { TeacherProjectService } from '../../../services/teacherProjectService'; import { TeacherProjectTranslationService } from '../../../services/teacherProjectTranslationService'; import { DialogGuidanceAuthoringComponent } from './dialog-guidance-authoring.component'; +import { MockComponent } from 'ng-mocks'; +import { EditComponentPrompt } from '../../../../../app/authoring-tool/edit-component-prompt/edit-component-prompt.component'; const componentContent = { id: 'i64ex48j1z', @@ -18,31 +20,31 @@ const componentContent = { showSubmitButton: false, isComputerAvatarEnabled: false }; - describe('DialogGuidanceAuthoringComponent', () => { let component: DialogGuidanceAuthoringComponent; let fixture: ComponentFixture; beforeEach(() => { TestBed.configureTestingModule({ - imports: [DialogGuidanceAuthoringComponent, StudentTeacherCommonServicesModule], + imports: [ + DialogGuidanceAuthoringComponent, + MockComponent(EditComponentPrompt), + StudentTeacherCommonServicesModule + ], providers: [ ProjectAssetService, TeacherNodeService, TeacherProjectService, TeacherProjectTranslationService, - provideHttpClient(withInterceptorsFromDi()) + provideHttpClient() ] }); - spyOn(TestBed.inject(TeacherProjectService), 'getLocale').and.returnValue( - new ProjectLocale({ default: 'en-US' }) - ); fixture = TestBed.createComponent(DialogGuidanceAuthoringComponent); component = fixture.componentInstance; - spyOn(TestBed.inject(TeacherProjectService), 'isDefaultLocale').and.returnValue(true); - spyOn(TestBed.inject(TeacherProjectService), 'getComponent').and.returnValue( - copy(componentContent) - ); + const projectService = TestBed.inject(TeacherProjectService); + spyOn(projectService, 'getLocale').and.returnValue(new ProjectLocale({ default: 'en-US' })); + spyOn(projectService, 'isDefaultLocale').and.returnValue(true); + spyOn(projectService, 'getComponent').and.returnValue(copy(componentContent)); component.componentContent = copy(componentContent); fixture.detectChanges(); }); diff --git a/src/assets/wise5/components/dialogGuidance/dialog-guidance-authoring/dialog-guidance-authoring.component.ts b/src/assets/wise5/components/dialogGuidance/dialog-guidance-authoring/dialog-guidance-authoring.component.ts index 43e585b547e..23989707b7e 100644 --- a/src/assets/wise5/components/dialogGuidance/dialog-guidance-authoring/dialog-guidance-authoring.component.ts +++ b/src/assets/wise5/components/dialogGuidance/dialog-guidance-authoring/dialog-guidance-authoring.component.ts @@ -2,7 +2,6 @@ import { Component } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { MatCheckbox } from '@angular/material/checkbox'; import { MatFormFieldModule } from '@angular/material/form-field'; -import { MatInput } from '@angular/material/input'; import { EditComponentMaxSubmitComponent } from '../../../../../app/authoring-tool/edit-component-max-submit/edit-component-max-submit.component'; import { EditComponentPrompt } from '../../../../../app/authoring-tool/edit-component-prompt/edit-component-prompt.component'; import { ProjectAssetService } from '../../../../../app/services/projectAssetService'; @@ -14,21 +13,23 @@ import { TeacherProjectService } from '../../../services/teacherProjectService'; import { CRaterRubric } from '../../common/cRater/CRaterRubric'; import { EditFeedbackRulesComponent } from '../../common/feedbackRule/edit-feedback-rules/edit-feedback-rules.component'; import { EditDialogGuidanceComputerAvatarComponent } from '../edit-dialog-guidance-computer-avatar/edit-dialog-guidance-computer-avatar.component'; +import { CRaterItemSelectComponent } from '../../common/cRater/crater-item-select/crater-item-select.component'; +import { EditCRaterInfoComponent } from '../../common/cRater/edit-crater-info/edit-crater-info.component'; @Component({ - selector: 'dialog-guidance-authoring', - templateUrl: './dialog-guidance-authoring.component.html', - styles: ['edit-feedback-rules { margin-bottom: 16px; } '], imports: [ + CRaterItemSelectComponent, + EditComponentMaxSubmitComponent, EditComponentPrompt, - MatFormFieldModule, - MatInput, + EditCRaterInfoComponent, + EditDialogGuidanceComputerAvatarComponent, + EditFeedbackRulesComponent, FormsModule, - EditComponentMaxSubmitComponent, MatCheckbox, - EditDialogGuidanceComputerAvatarComponent, - EditFeedbackRulesComponent - ] + MatFormFieldModule + ], + selector: 'dialog-guidance-authoring', + templateUrl: './dialog-guidance-authoring.component.html' }) export class DialogGuidanceAuthoringComponent extends AbstractComponentAuthoring { constructor( @@ -41,7 +42,7 @@ export class DialogGuidanceAuthoringComponent extends AbstractComponentAuthoring super(configService, nodeService, projectAssetService, projectService); } - ngOnInit() { + ngOnInit(): void { super.ngOnInit(); if (this.componentContent.computerAvatarSettings == null) { this.componentContent.computerAvatarSettings = diff --git a/src/assets/wise5/components/dialogGuidance/edit-dialog-guidance-advanced/edit-dialog-guidance-advanced.component.ts b/src/assets/wise5/components/dialogGuidance/edit-dialog-guidance-advanced/edit-dialog-guidance-advanced.component.ts index 9dd1e34f35b..c76214f2fb5 100644 --- a/src/assets/wise5/components/dialogGuidance/edit-dialog-guidance-advanced/edit-dialog-guidance-advanced.component.ts +++ b/src/assets/wise5/components/dialogGuidance/edit-dialog-guidance-advanced/edit-dialog-guidance-advanced.component.ts @@ -2,14 +2,12 @@ import { Component } from '@angular/core'; import { EditAdvancedComponentComponent } from '../../../../../app/authoring-tool/edit-advanced-component/edit-advanced-component.component'; import { EditComponentConstraintsComponent } from '../../../../../app/authoring-tool/edit-component-constraints/edit-component-constraints.component'; import { EditComponentJsonComponent } from '../../../../../app/authoring-tool/edit-component-json/edit-component-json.component'; -import { EditCRaterInfoComponent } from '../../common/cRater/edit-crater-info/edit-crater-info.component'; @Component({ - imports: [EditComponentConstraintsComponent, EditComponentJsonComponent, EditCRaterInfoComponent], + imports: [EditComponentConstraintsComponent, EditComponentJsonComponent], template: ` - ` }) export class EditDialogGuidanceAdvancedComponent extends EditAdvancedComponentComponent {} diff --git a/src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html b/src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html index a741d69d65b..c2e8c263386 100644 --- a/src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html +++ b/src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html @@ -24,38 +24,11 @@ (ngModelChange)="enableCRaterClicked()" i18n > - Enable CRater + Enable AI Model @if (componentContent.enableCRater) { -
- - Item Id - - -
- -
- @if (isVerifyingCRaterItemId) { - Verifying... - } - @if (cRaterItemIdIsValid) { - Valid - } @else { - Invalid - } -
+
Score On @@ -565,14 +538,8 @@ }
- @if (showIdeaDescriptions) { - - Hide - } @else { - Show Idea Descriptions + @if (componentContent.enableCRater) { + }
} diff --git a/src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.ts b/src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.ts index f45dd2f23fe..2619b3d9541 100644 --- a/src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.ts +++ b/src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.ts @@ -12,17 +12,12 @@ import { EditCommonAdvancedComponent } from '../../../../../app/authoring-tool/e import { EditComponentAddToNotebookButtonComponent } from '../../../../../app/authoring-tool/edit-component-add-to-notebook-button/edit-component-add-to-notebook-button.component'; import { TranslatableTextareaComponent } from '../../../authoringTool/components/translatable-textarea/translatable-textarea.component'; import { ComponentContent } from '../../../common/ComponentContent'; -import { CRaterService } from '../../../services/cRaterService'; -import { NotebookService } from '../../../services/notebookService'; -import { TeacherNodeService } from '../../../services/teacherNodeService'; -import { TeacherProjectService } from '../../../services/teacherProjectService'; -import { EditCRaterIdeaDescriptionsComponent } from '../../common/cRater/edit-crater-idea-descriptions/edit-crater-idea-descriptions.component'; import { EditFeedbackRulesComponent } from '../../common/feedbackRule/edit-feedback-rules/edit-feedback-rules.component'; import { OpenResponseContent } from '../OpenResponseContent'; +import { CRaterItemSelectComponent } from '../../common/cRater/crater-item-select/crater-item-select.component'; +import { EditCRaterInfoComponent } from '../../common/cRater/edit-crater-info/edit-crater-info.component'; @Component({ - styleUrl: 'edit-open-response-advanced.component.scss', - templateUrl: 'edit-open-response-advanced.component.html', imports: [ TranslatableTextareaComponent, MatCheckbox, @@ -34,15 +29,17 @@ import { OpenResponseContent } from '../OpenResponseContent'; EditFeedbackRulesComponent, MatTooltip, MatIcon, - EditCRaterIdeaDescriptionsComponent, EditComponentAddToNotebookButtonComponent, - EditCommonAdvancedComponent - ] + EditCommonAdvancedComponent, + EditCRaterInfoComponent, + CRaterItemSelectComponent + ], + styleUrl: 'edit-open-response-advanced.component.scss', + templateUrl: 'edit-open-response-advanced.component.html' }) export class EditOpenResponseAdvancedComponent extends EditAdvancedComponentComponent { protected allowedConnectedComponentTypes = ['OpenResponse']; componentContent: OpenResponseContent; - protected cRaterItemIdIsValid: boolean = null; private initialFeedbackRules = [ { id: 'isDefault', @@ -50,19 +47,8 @@ export class EditOpenResponseAdvancedComponent extends EditAdvancedComponentComp feedback: [$localize`Default feedback`] } ]; - protected isVerifyingCRaterItemId: boolean; protected nodeIds: string[] = []; useCustomCompletionCriteria: boolean; - protected showIdeaDescriptions = true; - - constructor( - protected cRaterService: CRaterService, - protected nodeService: TeacherNodeService, - protected notebookService: NotebookService, - protected teacherProjectService: TeacherProjectService - ) { - super(nodeService, notebookService, teacherProjectService); - } ngOnInit(): void { super.ngOnInit(); @@ -141,15 +127,6 @@ export class EditOpenResponseAdvancedComponent extends EditAdvancedComponentComp } } - verifyCRaterItemId(itemId: string): void { - this.cRaterItemIdIsValid = null; - this.isVerifyingCRaterItemId = true; - this.cRaterService.makeCRaterVerifyRequest(itemId).then((response: any) => { - this.isVerifyingCRaterItemId = false; - this.cRaterItemIdIsValid = response.available; - }); - } - addMultipleAttemptScoringRule(): void { if ( this.componentContent.cRater != null && @@ -301,10 +278,6 @@ export class EditOpenResponseAdvancedComponent extends EditAdvancedComponentComp } } - protected toggleShowIdeaDescriptions(): void { - this.showIdeaDescriptions = !this.showIdeaDescriptions; - } - getComponents(nodeId: string): ComponentContent[] { return this.teacherProjectService.getComponents(nodeId); } diff --git a/src/assets/wise5/services/cRaterService.ts b/src/assets/wise5/services/cRaterService.ts index ce7db17df4e..cda0e800f89 100644 --- a/src/assets/wise5/services/cRaterService.ts +++ b/src/assets/wise5/services/cRaterService.ts @@ -208,18 +208,10 @@ export class CRaterService { * @param itemId A string. * @return A promise that returns whether the item id is valid. */ - makeCRaterVerifyRequest(itemId: string): any { - const url = this.configService.getCRaterRequestURL() + '/verify'; - const params = new HttpParams().set('itemId', itemId); - const options = { - params: params - }; - return this.http - .get(url, options) - .toPromise() - .then((isAvailable: boolean) => { - return isAvailable; - }); + makeCRaterVerifyRequest(itemId: string): Observable { + return this.http.get(this.configService.getCRaterRequestURL() + '/verify', { + params: new HttpParams().set('itemId', itemId) + }); } getCRaterResponse(responses: RawCRaterResponse, submitCounter: number): CRaterResponse { diff --git a/src/messages.xlf b/src/messages.xlf index 9924a2d03ed..827f216047d 100644 --- a/src/messages.xlf +++ b/src/messages.xlf @@ -1663,11 +1663,11 @@ Click "Cancel" to keep the invalid JSON open so you can fix it. src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 66,68 + 39,41 src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 524,525 + 497,498 src/assets/wise5/vle/node/node.component.html @@ -1729,7 +1729,7 @@ Click "Cancel" to keep the invalid JSON open so you can fix it. src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 505,506 + 478,479 src/assets/wise5/components/summary/summary-authoring/summary-authoring.component.html @@ -1744,7 +1744,7 @@ Click "Cancel" to keep the invalid JSON open so you can fix it. src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 515,519 + 488,492 src/assets/wise5/components/showGroupWork/show-group-work-authoring/show-group-work-authoring.component.html @@ -1783,7 +1783,7 @@ Click "Cancel" to keep the invalid JSON open so you can fix it. src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 493,494 + 466,467 src/assets/wise5/components/summary/summary-authoring/summary-authoring.component.html @@ -2461,7 +2461,7 @@ Click "Cancel" to keep the invalid JSON open so you can fix it. src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 132,135 + 105,108 @@ -9008,11 +9008,11 @@ Click "Cancel" to keep the invalid JSON open so you can fix it. src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 67,69 + 40,42 src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 525,528 + 498,501 src/assets/wise5/vle/node/node.component.html @@ -14484,10 +14484,6 @@ The branches will be removed but the steps will remain in the unit. src/assets/wise5/classroomMonitor/classroomMonitorComponents/nodeGrading/node-grading/node-grading.component.html 32,33 - - src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 574,575 - Show @@ -15999,7 +15995,7 @@ Are you sure you want to proceed? src/assets/wise5/components/dialogGuidance/dialog-guidance-authoring/dialog-guidance-authoring.component.html - 21,24 + 13,16 @@ -16849,6 +16845,13 @@ Are you ready to receive feedback on this answer? 285 + + AI Model ID + + src/assets/wise5/components/common/cRater/crater-item-select/crater-item-select.component.html + 2,3 + + Idea detection rubric @@ -16870,18 +16873,11 @@ Are you ready to receive feedback on this answer? 17,20 - - Model Description - - src/assets/wise5/components/common/cRater/edit-crater-description/edit-crater-description.component.html - 3,5 - - User-Friendly Description src/assets/wise5/components/common/cRater/edit-crater-description/edit-crater-description.component.html - 7,10 + 2,5 src/assets/wise5/components/common/cRater/edit-crater-idea-descriptions/edit-crater-idea-descriptions.component.html @@ -16927,11 +16923,11 @@ Are you ready to receive feedback on this answer? 83 - - Edit CRater Information + + AI Model Details src/assets/wise5/components/common/cRater/edit-crater-info/edit-crater-info.component.ts - 13,15 + 9,11 @@ -17533,7 +17529,7 @@ Are you ready to receive feedback on this answer? src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 318,320 + 291,293 @@ -17743,13 +17739,6 @@ Category Name: 7,9 - - Item ID - - src/assets/wise5/components/dialogGuidance/dialog-guidance-authoring/dialog-guidance-authoring.component.html - 7,10 - - Detectable ideas @@ -19916,7 +19905,7 @@ Warning: This will delete all existing choices and buckets in this component. src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 90,94 + 63,67 @@ -20073,240 +20062,205 @@ Warning: This will delete all existing choices in this component. 16,22 - - Enable CRater + + Enable AI Model src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html 27,31 - - Item Id - - src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 33,36 - - - - Verify - - src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 47,51 - - - - Verifying... - - src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 51,54 - - - - Valid - - src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 54,57 - - - - Invalid - - src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 56,61 - - Score On src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 61,63 + 34,36 Change src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 68,73 + 41,46 Show Score src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 80,85 + 53,58 Enable Feedback Rules src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 100,102 + 73,75 Scoring Rule src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 111,114 + 84,87 Add Scoring Rule src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 116,119 + 89,92 Feedback Text src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 144,146 + 117,119 Move Scoring Rule Up src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 155,158 + 128,131 Move Scoring Rule Down src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 166,169 + 139,142 Delete Scoring Rule src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 176,179 + 149,152 Enable Multiple Attempt Feedback src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 196,199 + 169,172 Multiple Attempt Scoring Rules src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 201,204 + 174,177 Add Multiple Attempt Scoring Rule src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 206,209 + 179,182 Previous Score src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 222,225 + 195,198 src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 331,334 + 304,307 Current Score src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 231,234 + 204,207 src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 341,344 + 314,317 Feedback to Student src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 242,244 + 215,217 src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 429,431 + 402,404 Move Multiple Attempt Scoring Rule Up src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 258,261 + 231,234 Move Multiple Attempt Scoring Rule Down src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 274,277 + 247,250 Delet Multiple Attempt Scoring src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 284,287 + 257,260 Enable Notifications src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 304,307 + 277,280 Notifications src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 309,312 + 282,285 Move Notification Up src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 362,364 + 335,337 Move Notification Down src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 378,380 + 351,353 Delete Notification src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 388,390 + 361,363 Enable Ambient Display Dismiss Mode src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 403,405 + 376,378 Dismiss Code src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 407,410 + 380,383 src/assets/wise5/vle/dismiss-ambient-notification-dialog/dismiss-ambient-notification-dialog.component.html @@ -20317,77 +20271,70 @@ Warning: This will delete all existing choices in this component. Notify Student src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 423,425 + 396,398 Notify Teacher src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 443,445 + 416,418 Feedback to Teacher src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 449,451 + 422,424 Use Custom Completion Criteria src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 468,470 + 441,443 Custom Completion Criteria src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 472,475 + 445,448 Add Completion Criteria src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 477,480 + 450,453 Move Completion Criteria Up src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 535,538 + 508,511 Move Completion Criteria Down src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 546,549 + 519,522 Delete Completion Criteria src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 556,559 - - - - Show Idea Descriptions - - src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.html - 575,580 + 529,532 Default feedback src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.ts - 50 + 47 @@ -20398,7 +20345,7 @@ Score: Feedback Text: src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.ts - 136 + 122 @@ -20411,28 +20358,28 @@ Current Score: Feedback Text: src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.ts - 184 + 161 you got a score of src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.ts - 214 + 191 Please talk to your teacher src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.ts - 216 + 193 got a score of src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.ts - 218 + 195 @@ -20443,21 +20390,21 @@ Previous Score: Current Score: src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.ts - 232 + 209 Are you sure you want to delete the custom completion criteria? src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.ts - 266 + 243 Are you sure you want to delete this completion criteria? src/assets/wise5/components/openResponse/edit-open-response-advanced/edit-open-response-advanced.component.ts - 298 + 275