Skip to content

Commit fcec718

Browse files
committed
create project-specific activities page component
1 parent 4e288be commit fcec718

File tree

3 files changed

+105
-0
lines changed

3 files changed

+105
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import { Component, OnInit } from '@angular/core';
2+
import { orderBy } from 'lodash';
3+
import { Observable } from 'rxjs';
4+
import { ProvenanceService } from 'components/provenance/provenance.service';
5+
import { Activity } from 'models/activities/activity.model';
6+
import { ProjectDataService } from '../project-data.service';
7+
import { Project } from 'models/project.model';
8+
import config from '../../app.constants';
9+
import { NotificationService } from 'components/notification/notification.service';
10+
11+
@Component({
12+
selector: 'project-activities',
13+
template: require('./project-activities.html'),
14+
styles: [require('./project-activities.scss')]
15+
})
16+
export class ProjectActivitiesComponent implements OnInit {
17+
private project: Project;
18+
private provenanceGraph: any;
19+
private activityTypeFilters = config.activityTypeFilters;
20+
private showNewActivityForm = false;
21+
22+
static parameters = [ProvenanceService, ProjectDataService, NotificationService];
23+
constructor(private provenanceService: ProvenanceService,
24+
private projectDataService: ProjectDataService,
25+
private notificationService: NotificationService) { }
26+
27+
ngOnInit() {
28+
this.projectDataService.project()
29+
.subscribe(project => {
30+
this.project = project;
31+
const selectedFilter = config.activityTypeFilters.find(filter => filter.active);
32+
const defaultQuery = { activityType: selectedFilter.value };
33+
this.onFilterChange(defaultQuery);
34+
}, err => console.error(err));
35+
}
36+
37+
onFilterChange(query) {
38+
if (this.project) {
39+
this.provenanceService.getProvenanceGraph('created_at', 'desc', 10)
40+
.subscribe(activity => {
41+
this.provenanceGraph = activity;
42+
}, err => {
43+
console.log(err);
44+
});
45+
}
46+
}
47+
48+
onNewActivity(activity: Activity): void {
49+
this.showNewActivityForm = false;
50+
this.notificationService.info('The Activity has been successfully created');
51+
}
52+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<div *ngIf="!showNewActivityForm; else activityForm">
2+
<div class="project-activities-container">
3+
<div class="activities-graph-container">
4+
<div class="activities-graph-filters-container">
5+
<h3>{{ entityName }} Type</h3>
6+
<radio-button-filter [filters]="activityTypeFilters" [group]="filterGroup"></radio-button-filter>
7+
</div>
8+
<div class="activities-graph-content-container">
9+
<div class="activities-graph-results">
10+
<provenance-graph class="provenance-graph" [graphData]="provenanceGraph" [rootId]=""></provenance-graph>
11+
</div>
12+
</div>
13+
</div>
14+
<div class="project-activities-actions">
15+
<a mat-raised-button color="primary" class="app-activity-list-new-project" (click)="showNewActivityForm=true" aria-label="Create activity">Create a New Activity</a>
16+
</div>
17+
</div>
18+
</div>
19+
20+
<ng-template #activityForm>
21+
<activity-new (newActivity)="onNewActivity($event)" (close)="showNewActivityForm=false"></activity-new>
22+
</ng-template>
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
.project-activities-container {
2+
.activities-graph-container {
3+
.activities-graph-filters-container {
4+
display: flex;
5+
flex-flow: column nowrap;
6+
flex-grow: 0;
7+
flex-shrink: 0;
8+
// min-width: 300px;
9+
margin: 25px;
10+
}
11+
.activities-graph-content-container {
12+
display: flex;
13+
flex-flow: column nowrap;
14+
flex-grow: 1;
15+
margin: 20px 50px;
16+
17+
.activities-graph-results {
18+
display: flex;
19+
flex-flow: column nowrap;
20+
flex-grow: 0;
21+
flex-shrink: 0;
22+
margin: 0 auto;
23+
}
24+
}
25+
}
26+
.project-activities-actions {
27+
display: flex;
28+
flex-flow: row wrap;
29+
justify-content: center;
30+
}
31+
}

0 commit comments

Comments
 (0)