Skip to content

Commit ab67d1b

Browse files
committed
Extracted MilestoneDetailsDialog into its own ts and html files. #2897
1 parent 8d6cb15 commit ab67d1b

3 files changed

Lines changed: 104 additions & 99 deletions

File tree

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<md-dialog class="dialog--wider" aria-label="{{ 'MILESTONE_DETAILS_TITLE' | translate : { name: $ctrl.milestone.name } }}">
2+
<md-toolbar>
3+
<div class="md-toolbar-tools">
4+
<h2>{{ 'MILESTONE_DETAILS_TITLE' | translate : { name: $ctrl.milestone.name } }}</h2>
5+
</div>
6+
</md-toolbar>
7+
<md-dialog-content class="gray-lighter-bg md-dialog-content">
8+
<milestone-details milestone="$ctrl.milestone"
9+
hide-student-work="$ctrl.hideStudentWork"
10+
on-show-workgroup="$ctrl.onShowWorkgroup(value)"
11+
on-visit-node-grading="$ctrl.onVisitNodeGrading()"></milestone-details>
12+
</md-dialog-content>
13+
<md-dialog-actions layout="row" layout-align="start center">
14+
<span flex></span>
15+
<md-button class="md-primary"
16+
ng-click="$ctrl.close()"
17+
aria-label="{{ ::'CLOSE' | translate }}">
18+
{{ ::'CLOSE' | translate }}
19+
</md-button>
20+
</md-dialog-actions>
21+
</md-dialog>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
export class MilestoneDetailsDialog {
2+
title: string;
3+
4+
static $inject = [
5+
'$state',
6+
'$mdDialog',
7+
'$event',
8+
'milestone',
9+
'hideStudentWork',
10+
'TeacherDataService'
11+
];
12+
13+
constructor(
14+
private $state,
15+
private $mdDialog,
16+
private $event,
17+
private milestone,
18+
private hideStudentWork,
19+
private TeacherDataService
20+
) {}
21+
22+
$onInit() {
23+
this.saveMilestoneOpenedEvent();
24+
}
25+
26+
close() {
27+
this.saveMilestoneClosedEvent();
28+
this.$mdDialog.hide();
29+
}
30+
31+
edit() {
32+
this.$mdDialog.hide({
33+
milestone: this.milestone,
34+
action: 'edit',
35+
$event: this.$event
36+
});
37+
}
38+
39+
onShowWorkgroup(workgroup: any) {
40+
this.saveMilestoneClosedEvent();
41+
this.$mdDialog.hide();
42+
this.TeacherDataService.setCurrentWorkgroup(workgroup);
43+
this.$state.go('root.nodeProgress');
44+
}
45+
46+
onVisitNodeGrading() {
47+
this.$mdDialog.hide();
48+
}
49+
50+
saveMilestoneOpenedEvent() {
51+
this.saveMilestoneEvent('MilestoneOpened');
52+
}
53+
54+
saveMilestoneClosedEvent() {
55+
this.saveMilestoneEvent('MilestoneClosed');
56+
}
57+
58+
saveMilestoneEvent(event: any) {
59+
const context = 'ClassroomMonitor',
60+
nodeId = null,
61+
componentId = null,
62+
componentType = null,
63+
category = 'Navigation',
64+
data = { milestoneId: this.milestone.id },
65+
projectId = null;
66+
this.TeacherDataService.saveEvent(
67+
context,
68+
nodeId,
69+
componentId,
70+
componentType,
71+
category,
72+
event,
73+
data,
74+
projectId
75+
);
76+
}
77+
}

src/main/webapp/wise5/services/milestoneService.ts

Lines changed: 6 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { TeacherDataService } from './teacherDataService';
99
import { UtilService } from './utilService';
1010
import { Injectable } from '@angular/core';
1111
import { UpgradeModule } from '@angular/upgrade/static';
12+
import { MilestoneDetailsDialog } from '../classroomMonitor/classroomMonitorComponents/milestones/milestoneDetailsDialog/milestoneDetailsDialog';
1213

1314
@Injectable()
1415
export class MilestoneService {
@@ -511,40 +512,12 @@ export class MilestoneService {
511512
}
512513

513514
showMilestoneDetails(milestone: any, $event: any, hideStudentWork: boolean = false) {
514-
const title = this.getTranslation('MILESTONE_DETAILS_TITLE', {
515-
name: milestone.name
516-
});
517-
const template = `<md-dialog class="dialog--wider">
518-
<md-toolbar>
519-
<div class="md-toolbar-tools">
520-
<h2>${title}</h2>
521-
</div>
522-
</md-toolbar>
523-
<md-dialog-content class="gray-lighter-bg md-dialog-content">
524-
<milestone-details milestone="milestone"
525-
hide-student-work="hideStudentWork"
526-
on-show-workgroup="onShowWorkgroup(value)"
527-
on-visit-node-grading="onVisitNodeGrading()"></milestone-details>
528-
</md-dialog-content>
529-
<md-dialog-actions layout="row" layout-align="start center">
530-
<span flex></span>
531-
<md-button class="md-primary"
532-
ng-click="edit()"
533-
ng-if="milestone.type !== 'milestoneReport'"
534-
aria-label="{{ ::'EDIT' | translate }}">
535-
{{ ::'EDIT' | translate }}
536-
</md-button>
537-
<md-button class="md-primary"
538-
ng-click="close()"
539-
aria-label="{{ ::'CLOSE' | translate }}">
540-
{{ ::'CLOSE' | translate }}
541-
</md-button>
542-
</md-dialog-actions>
543-
</md-dialog>`;
544515
this.upgrade.$injector.get('$mdDialog').show({
545516
parent: angular.element(document.body),
546-
template: template,
547-
ariaLabel: title,
517+
templateUrl:
518+
'wise5/classroomMonitor/classroomMonitorComponents/milestones/milestoneDetailsDialog/milestoneDetailsDialog.html',
519+
controller: MilestoneDetailsDialog,
520+
controllerAs: '$ctrl',
548521
fullscreen: true,
549522
multiple: true,
550523
targetEvent: $event,
@@ -554,73 +527,7 @@ export class MilestoneService {
554527
$event: $event,
555528
milestone: milestone,
556529
hideStudentWork: hideStudentWork
557-
},
558-
controller: [
559-
'$scope',
560-
'$state',
561-
'$mdDialog',
562-
'milestone',
563-
'$event',
564-
'TeacherDataService',
565-
function DialogController(
566-
$scope,
567-
$state,
568-
$mdDialog,
569-
milestone,
570-
$event,
571-
TeacherDataService
572-
) {
573-
$scope.milestone = milestone;
574-
$scope.hideStudentWork = hideStudentWork;
575-
$scope.event = $event;
576-
$scope.close = function () {
577-
$scope.saveMilestoneClosedEvent();
578-
$mdDialog.hide();
579-
};
580-
$scope.edit = function () {
581-
$mdDialog.hide({
582-
milestone: $scope.milestone,
583-
action: 'edit',
584-
$event: $event
585-
});
586-
};
587-
$scope.onShowWorkgroup = function (workgroup: any) {
588-
$scope.saveMilestoneClosedEvent();
589-
$mdDialog.hide();
590-
TeacherDataService.setCurrentWorkgroup(workgroup);
591-
$state.go('root.nodeProgress');
592-
};
593-
$scope.onVisitNodeGrading = function () {
594-
$mdDialog.hide();
595-
};
596-
$scope.saveMilestoneOpenedEvent = function () {
597-
$scope.saveMilestoneEvent('MilestoneOpened');
598-
};
599-
$scope.saveMilestoneClosedEvent = function () {
600-
$scope.saveMilestoneEvent('MilestoneClosed');
601-
};
602-
$scope.saveMilestoneEvent = function (event: any) {
603-
const context = 'ClassroomMonitor',
604-
nodeId = null,
605-
componentId = null,
606-
componentType = null,
607-
category = 'Navigation',
608-
data = { milestoneId: $scope.milestone.id },
609-
projectId = null;
610-
TeacherDataService.saveEvent(
611-
context,
612-
nodeId,
613-
componentId,
614-
componentType,
615-
category,
616-
event,
617-
data,
618-
projectId
619-
);
620-
};
621-
$scope.saveMilestoneOpenedEvent();
622-
}
623-
]
530+
}
624531
});
625532
}
626533
}

0 commit comments

Comments
 (0)