diff --git a/src/app/centers/centers-view/center-actions/center-actions.component.html b/src/app/centers/centers-view/center-actions/center-actions.component.html index 1c2358737..6ddf41695 100644 --- a/src/app/centers/centers-view/center-actions/center-actions.component.html +++ b/src/app/centers/centers-view/center-actions/center-actions.component.html @@ -6,3 +6,4 @@ + diff --git a/src/app/centers/centers-view/center-actions/center-actions.component.ts b/src/app/centers/centers-view/center-actions/center-actions.component.ts index 747ed5cbf..68b2a2da9 100644 --- a/src/app/centers/centers-view/center-actions/center-actions.component.ts +++ b/src/app/centers/centers-view/center-actions/center-actions.component.ts @@ -21,7 +21,8 @@ export class CenterActionsComponent { 'Attach Meeting': boolean, 'Edit Meeting': boolean, 'Edit Meeting Schedule': boolean, - 'Manage Groups': boolean + 'Manage Groups': boolean, + 'Staff Assignment History': boolean } = { 'Activate': false, 'Assign Staff': false, @@ -30,7 +31,8 @@ export class CenterActionsComponent { 'Attach Meeting': false, 'Edit Meeting': false, 'Edit Meeting Schedule': false, - 'Manage Groups': false + 'Manage Groups': false, + 'Staff Assignment History': false }; /** diff --git a/src/app/centers/centers-view/center-actions/staff-assignment-history/staff-assignment-history.component.html b/src/app/centers/centers-view/center-actions/staff-assignment-history/staff-assignment-history.component.html new file mode 100644 index 000000000..7d371566a --- /dev/null +++ b/src/app/centers/centers-view/center-actions/staff-assignment-history/staff-assignment-history.component.html @@ -0,0 +1,11 @@ + + +
+ +
+ + + +
diff --git a/src/app/centers/centers-view/center-actions/staff-assignment-history/staff-assignment-history.component.scss b/src/app/centers/centers-view/center-actions/staff-assignment-history/staff-assignment-history.component.scss new file mode 100644 index 000000000..008b28446 --- /dev/null +++ b/src/app/centers/centers-view/center-actions/staff-assignment-history/staff-assignment-history.component.scss @@ -0,0 +1,7 @@ +.container { + max-width: 60rem; + .back-button { + max-height: 2%; + margin-bottom: 2%; + } +} diff --git a/src/app/centers/centers-view/center-actions/staff-assignment-history/staff-assignment-history.component.spec.ts b/src/app/centers/centers-view/center-actions/staff-assignment-history/staff-assignment-history.component.spec.ts new file mode 100644 index 000000000..e5e617604 --- /dev/null +++ b/src/app/centers/centers-view/center-actions/staff-assignment-history/staff-assignment-history.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { StaffAssignmentHistoryComponent } from './staff-assignment-history.component'; + +describe('StaffAssignmentHistoryComponent', () => { + let component: StaffAssignmentHistoryComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ StaffAssignmentHistoryComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(StaffAssignmentHistoryComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/centers/centers-view/center-actions/staff-assignment-history/staff-assignment-history.component.ts b/src/app/centers/centers-view/center-actions/staff-assignment-history/staff-assignment-history.component.ts new file mode 100644 index 000000000..4ed270d16 --- /dev/null +++ b/src/app/centers/centers-view/center-actions/staff-assignment-history/staff-assignment-history.component.ts @@ -0,0 +1,41 @@ +/** Angular Imports */ +import { Component, OnInit, Input } from '@angular/core'; +import { DomSanitizer } from '@angular/platform-browser'; +import { ActivatedRoute } from '@angular/router'; + +/** Custom Services */ +import { CentersService } from '../../../centers.service'; + +/** + * Staff Assignment History Component + */ +@Component({ + selector: 'mifosx-staff-assignment-history', + templateUrl: './staff-assignment-history.component.html', + styleUrls: ['./staff-assignment-history.component.scss'] +}) +export class StaffAssignmentHistoryComponent implements OnInit { + + /** Staff Assignment History Data */ + staffAssignmentHistoryData: any; + /** trusted resource url for pentaho output */ + pentahoUrl: any; + + /** + * @param {DomSanitizer} sanitizer DOM Sanitizer + */ + constructor(private sanitizer: DomSanitizer, + private route: ActivatedRoute) { + this.route.data.subscribe((data: { centersActionData: any }) => { + this.staffAssignmentHistoryData = data.centersActionData; + }); + } + + ngOnInit() { + const contentType = this.staffAssignmentHistoryData.headers.get('Content-Type'); + const file = new Blob([this.staffAssignmentHistoryData.body], { type: contentType }); + const filecontent = URL.createObjectURL(file); + this.pentahoUrl = this.sanitizer.bypassSecurityTrustResourceUrl(filecontent); + } + +} diff --git a/src/app/centers/centers-view/centers-view.component.html b/src/app/centers/centers-view/centers-view.component.html index 4b16badd3..0b835ddcb 100644 --- a/src/app/centers/centers-view/centers-view.component.html +++ b/src/app/centers/centers-view/centers-view.component.html @@ -83,7 +83,7 @@ - + diff --git a/src/app/centers/centers-view/centers-view.component.ts b/src/app/centers/centers-view/centers-view.component.ts index 12054cdbe..7c2d7c5c9 100644 --- a/src/app/centers/centers-view/centers-view.component.ts +++ b/src/app/centers/centers-view/centers-view.component.ts @@ -75,6 +75,7 @@ export class CentersViewComponent implements OnInit { case 'Attendance': case 'Attach Meeting': case 'Manage Groups': + case 'Staff Assignment History': this.router.navigate([`actions/${name}`], { relativeTo: this.route }); break; case 'Edit Meeting': diff --git a/src/app/centers/centers.module.ts b/src/app/centers/centers.module.ts index c86bc8c1f..09c4b91cb 100644 --- a/src/app/centers/centers.module.ts +++ b/src/app/centers/centers.module.ts @@ -25,6 +25,7 @@ import { AttachCenterMeetingComponent } from './centers-view/center-actions/atta import { EditCenterMeetingComponent } from './centers-view/center-actions/edit-center-meeting/edit-center-meeting.component'; import { EditCenterMeetingScheduleComponent } from './centers-view/center-actions/edit-center-meeting-schedule/edit-center-meeting-schedule.component'; import { ManageGroupsComponent } from './centers-view/center-actions/manage-groups/manage-groups.component'; +import { StaffAssignmentHistoryComponent } from './centers-view/center-actions/staff-assignment-history/staff-assignment-history.component'; /** * Centers Module @@ -55,7 +56,8 @@ import { ManageGroupsComponent } from './centers-view/center-actions/manage-grou AttachCenterMeetingComponent, EditCenterMeetingComponent, EditCenterMeetingScheduleComponent, - ManageGroupsComponent + ManageGroupsComponent, + StaffAssignmentHistoryComponent ] }) export class CentersModule { } diff --git a/src/app/centers/centers.service.ts b/src/app/centers/centers.service.ts index e601a1f02..d86534e10 100644 --- a/src/app/centers/centers.service.ts +++ b/src/app/centers/centers.service.ts @@ -246,4 +246,18 @@ export class CentersService { return this.http.put(`/centers/${centerId}/calendars/${calendarId}`, data); } + /** + * Run Report Data for Staff Assignement History. + * @param {any} reportName reportName object containing 'name' of the report + * @param {object} centerId CenterId. + * @returns {Observable} + */ + getStaffAssignmentHistoryData(reportName: any, centerId: any, tenantIdentifier: string, locale: string): Observable { + const httpParams = new HttpParams() + .set('tenantIdentifier', tenantIdentifier) + .set('locale', locale) + .set('R_centerId', centerId); + return this.http.get(`/runreports/${reportName}`, { responseType: 'arraybuffer', observe: 'response', params: httpParams }); + } + } diff --git a/src/app/centers/common-resolvers/center-actions.resolver.ts b/src/app/centers/common-resolvers/center-actions.resolver.ts index 36005890f..cb8255116 100644 --- a/src/app/centers/common-resolvers/center-actions.resolver.ts +++ b/src/app/centers/common-resolvers/center-actions.resolver.ts @@ -40,6 +40,8 @@ export class CenterActionsResolver implements Resolve { case 'Edit Meeting Schedule': const calendarId = route.queryParamMap.get('calendarId'); return this.centersService.getCalendarAndTemplate(centerId, calendarId); + case 'Staff Assignment History': + return this.centersService.getStaffAssignmentHistoryData('Staff Assignment History', centerId, 'default', 'en'); default: return undefined; }