Skip to content

Commit b483cce

Browse files
Merge branch 'organize-activity-advanced-authoring-using-tabs' into ai-summary-override-default-system-prompt
~ Conflicts: ~ src/messages.xlf
2 parents 276af92 + 94ec8b3 commit b483cce

38 files changed

Lines changed: 380 additions & 345 deletions

File tree

src/app/authoring-tool/edit-advanced-component/edit-advanced-component.component.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,11 @@ export abstract class EditAdvancedComponentComponent {
1212
protected aiEnabled: boolean;
1313
component: Component;
1414
componentContent: ComponentContent;
15+
protected selectedTabIndex: number = 0;
16+
1517
@Input() componentId: string;
1618
@Input() nodeId: string;
19+
@Input() tab: string = 'general';
1720

1821
private componentServiceLookupService = inject(ComponentServiceLookupService);
1922

@@ -40,6 +43,15 @@ export abstract class EditAdvancedComponentComponent {
4043
}
4144
}
4245
this.teacherProjectService.uiChanged();
46+
47+
switch (this.tab) {
48+
case 'visibility':
49+
this.selectedTabIndex = 1;
50+
break;
51+
default:
52+
this.selectedTabIndex = 0;
53+
break;
54+
}
4355
}
4456

4557
setShowSubmitButtonValue(show: boolean = false): void {

src/app/authoring-tool/edit-component-advanced/edit-component-advanced.component.spec.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,12 @@ describe('EditComponentAdvancedComponent', () => {
2020
{
2121
provide: MAT_DIALOG_DATA,
2222
useValue: {
23-
content: { type: 'ShowMyWork' },
24-
id: 'component1',
25-
nodeId: 'node1'
23+
component: {
24+
content: { type: 'ShowMyWork' },
25+
id: 'component1',
26+
nodeId: 'node1'
27+
},
28+
tab: 'general'
2629
}
2730
},
2831
{

src/app/authoring-tool/edit-component-advanced/edit-component-advanced.component.ts

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,22 @@ export class EditComponentAdvancedComponent {
2626
private componentRef: ComponentRef<WISEComponent>;
2727
constructor(
2828
private applicationRef: ApplicationRef,
29-
@Inject(MAT_DIALOG_DATA) protected component: WISEComponent,
29+
@Inject(MAT_DIALOG_DATA) protected data: { component: WISEComponent; tab?: string },
3030
private injector: EnvironmentInjector
3131
) {}
3232

3333
ngAfterViewInit(): void {
34-
this.componentRef = createComponent(components[this.component.content.type].authoringAdvanced, {
35-
hostElement: this.componentElementRef.nativeElement,
36-
environmentInjector: this.injector
37-
});
34+
this.componentRef = createComponent(
35+
components[this.data.component.content.type].authoringAdvanced,
36+
{
37+
hostElement: this.componentElementRef.nativeElement,
38+
environmentInjector: this.injector
39+
}
40+
);
3841
Object.assign(this.componentRef.instance, {
39-
nodeId: this.component.nodeId,
40-
componentId: this.component.id
42+
nodeId: this.data.component.nodeId,
43+
componentId: this.data.component.id,
44+
tab: this.data.tab
4145
});
4246
this.applicationRef.attachView(this.componentRef.hostView);
4347
}

src/assets/wise5/authoringTool/components/edit-component-advanced-button/edit-component-advanced-button.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export class EditComponentAdvancedButtonComponent {
2020

2121
protected showComponentAdvancedAuthoring(): void {
2222
this.dialog.open(EditComponentAdvancedComponent, {
23-
data: new WiseComponent(this.componentContent, this.nodeId),
23+
data: { component: new WiseComponent(this.componentContent, this.nodeId), tab: 'general' },
2424
width: '80%'
2525
});
2626
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import { Component, inject, Input } from '@angular/core';
2+
import { MatButtonModule } from '@angular/material/button';
3+
import { MatDialog } from '@angular/material/dialog';
4+
import { MatIconModule } from '@angular/material/icon';
5+
import { MatTooltipModule } from '@angular/material/tooltip';
6+
import { EditComponentAdvancedComponent } from '../../../../../app/authoring-tool/edit-component-advanced/edit-component-advanced.component';
7+
import { Component as WiseComponent } from '../../../common/Component';
8+
import { ComponentContent } from '../../../common/ComponentContent';
9+
10+
@Component({
11+
imports: [MatButtonModule, MatIconModule, MatTooltipModule],
12+
selector: 'visibility-constraint-icon',
13+
template: `<button
14+
mat-icon-button
15+
(click)="openVisibilityConstraintAuthoring()"
16+
[matTooltip]="tooltip"
17+
matTooltipPosition="above"
18+
>
19+
<mat-icon>visibility_off</mat-icon>
20+
</button>`
21+
})
22+
export class VisibilityConstraintIconComponent {
23+
private dialog = inject(MatDialog);
24+
25+
@Input() componentContent: ComponentContent;
26+
@Input() nodeId: string;
27+
28+
protected tooltip = $localize`This activity is displayed to the student when certain conditions are met. Click to view and edit the conditions.`;
29+
30+
protected openVisibilityConstraintAuthoring(): void {
31+
this.dialog.open(EditComponentAdvancedComponent, {
32+
data: { component: new WiseComponent(this.componentContent, this.nodeId), tab: 'visibility' },
33+
width: '80%'
34+
});
35+
}
36+
}

src/assets/wise5/authoringTool/node/node-authoring/node-authoring.component.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@
4949
<span class="heavy">{{ i + 1 }}. {{ getComponentTypeLabel(component.type) }}</span>
5050
</div>
5151
<toggle-component-tag [component]="component" />
52+
@if (hasVisibilityConstraint(component)) {
53+
<visibility-constraint-icon [componentContent]="component" [nodeId]="nodeId" />
54+
}
5255
<span class="flex grow"></span>
5356
<div class="text flex justify-end items-center">
5457
@if (component.id === editingComponentId) {

src/assets/wise5/authoringTool/node/node-authoring/node-authoring.component.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import { ComponentAuthoringComponent } from '../../components/component-authorin
2727
import { RouterModule } from '@angular/router';
2828
import { EditComponentAdvancedButtonComponent } from '../../components/edit-component-advanced-button/edit-component-advanced-button.component';
2929
import { ToggleComponentTagComponent } from '../../components/toggle-component-tag/toggle-component-tag.component';
30+
import { VisibilityConstraintIconComponent } from '../../components/visibility-constraint-icon/visibility-constraint-icon.component';
3031

3132
@Component({
3233
imports: [
@@ -47,7 +48,8 @@ import { ToggleComponentTagComponent } from '../../components/toggle-component-t
4748
MatTooltipModule,
4849
RouterModule,
4950
TeacherNodeIconComponent,
50-
ToggleComponentTagComponent
51+
ToggleComponentTagComponent,
52+
VisibilityConstraintIconComponent
5153
],
5254
styleUrl: './node-authoring.component.scss',
5355
templateUrl: './node-authoring.component.html'
@@ -227,6 +229,10 @@ export class NodeAuthoringComponent implements OnInit {
227229
return this.componentTypeService.getComponentTypeLabel(componentType);
228230
}
229231

232+
protected hasVisibilityConstraint(component: ComponentContent): boolean {
233+
return component.constraints?.length > 0;
234+
}
235+
230236
private setShowSaveButtonForAllComponents(node: Node, showSaveButton: boolean): void {
231237
node.components
232238
.filter((component) =>

src/assets/wise5/classroomMonitor/classroomMonitorComponents/component-summary/component-summary.component.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,9 +100,6 @@ export class ComponentSummaryComponent {
100100
(this.COMPONENTS_WITH_SUMMARY.includes(this.component.type) ||
101101
this.showScoreSummary ||
102102
this.hasIdeaRubricData);
103-
if (this.component.type === 'OpenResponse') {
104-
this.showSummary &&= this.aiEnabled;
105-
}
106103
}
107104

108105
private setSource(): void {

src/assets/wise5/components/aiChat/ai-chat-student-message/ai-chat-student-message.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
i18n-aria-label
77
>account_circle</mat-icon
88
>
9-
<div class="flex justify-end flex-grow">
9+
<div class="flex justify-end flex-1">
1010
<div class="response-text selected-bg-bg">
1111
<div class="mat-small secondary-text poster">{{ displayNames }}</div>
1212
<div [innerHtml]="message.content"></div>

src/assets/wise5/components/aiChat/aiChatService.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,10 @@ export class AiChatService extends ComponentService {
1717
createComponent(): any {
1818
const component: any = super.createComponent();
1919
component.type = 'AiChat';
20-
component.computerAvatarSettings = this.computerAvatarService.getDefaultComputerAvatarSettings();
20+
component.computerAvatarSettings =
21+
this.computerAvatarService.getDefaultComputerAvatarSettings();
2122
component.isComputerAvatarEnabled = false;
22-
component.model = 'gpt-4';
23+
component.model = 'gpt-5.4-mini';
2324
component.systemPrompt = '';
2425
return component;
2526
}

0 commit comments

Comments
 (0)