Project status bar using real data
This commit is contained in:
parent
f80639def1
commit
205fe57422
@ -1,5 +1,5 @@
|
|||||||
<div class="rectangle-container" [ngClass]="{ small: small }">
|
<div class="rectangle-container" [ngClass]="{ small: small }">
|
||||||
<div *ngFor="let rect of config" [className]="'section-wrapper flex-' + rect.length">
|
<div *ngFor="let rect of config" class="section-wrapper" [style]="'flex: ' + rect.length + ';'">
|
||||||
<div [className]="'rectangle ' + rect.color "></div>
|
<div [className]="'rectangle ' + rect.color "></div>
|
||||||
<div *ngIf="rect.label" [ngClass]="labelClass">{{ rect.label }}</div>
|
<div *ngIf="rect.label" [ngClass]="labelClass">{{ rect.label }}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -39,39 +39,39 @@
|
|||||||
.rectangle {
|
.rectangle {
|
||||||
height: 4px;
|
height: 4px;
|
||||||
|
|
||||||
&.unassigned {
|
&.UNASSIGNED {
|
||||||
background-color: $grey-5;
|
background-color: $grey-5;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.under-review {
|
&.UNDER_REVIEW {
|
||||||
background-color: $yellow-1;
|
background-color: $yellow-1;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.under-approval {
|
&.UNDER_APPROVAL {
|
||||||
background-color: $red-1;
|
background-color: $red-1;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.approved {
|
&.APPROVED {
|
||||||
background-color: $blue-2;
|
background-color: $blue-2;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.submitted {
|
&.SUBMITTED {
|
||||||
background-color: $blue-3;
|
background-color: $blue-3;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.efsa {
|
&.EFSA {
|
||||||
background-color: $blue-4;
|
background-color: $blue-4;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.finished {
|
&.FINISHED {
|
||||||
background-color: $green-2;
|
background-color: $green-2;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.active {
|
&.ACTIVE {
|
||||||
background-color: $primary;
|
background-color: $primary;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.archived {
|
&.ARCHIVED {
|
||||||
background-color: rgba($red-1, 0.1);
|
background-color: rgba($red-1, 0.1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -92,7 +92,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="status-container">
|
<div class="status-container">
|
||||||
<redaction-status-bar
|
<redaction-status-bar
|
||||||
[config]="[{ color: 'under-review', length: 2}, { length: 1, color: 'finished'}]"
|
[config]="getProjectStatusConfig(pw)"
|
||||||
></redaction-status-bar>
|
></redaction-status-bar>
|
||||||
|
|
||||||
<div class="action-buttons">
|
<div class="action-buttons">
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
import {Component, OnInit} from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
import {Project} from '@redaction/red-ui-http';
|
import { Project } from '@redaction/red-ui-http';
|
||||||
import {AppStateService, ProjectWrapper} from '../../state/app-state.service';
|
import { AppStateService, ProjectWrapper } from '../../state/app-state.service';
|
||||||
import {UserService} from '../../user/user.service';
|
import { UserService } from '../../user/user.service';
|
||||||
import {DoughnutChartConfig} from '../../components/simple-doughnut-chart/simple-doughnut-chart.component';
|
import { DoughnutChartConfig } from '../../components/simple-doughnut-chart/simple-doughnut-chart.component';
|
||||||
import {SortingOption} from '../../utils/types';
|
import { SortingOption } from '../../utils/types';
|
||||||
import {groupBy} from '../../utils/functions';
|
import { groupBy } from '../../utils/functions';
|
||||||
import {DialogService} from '../../dialogs/dialog.service';
|
import { DialogService } from '../../dialogs/dialog.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'redaction-project-listing-screen',
|
selector: 'redaction-project-listing-screen',
|
||||||
@ -99,4 +99,14 @@ export class ProjectListingScreenComponent implements OnInit {
|
|||||||
public openAssignProjectOwnerDialog($event: MouseEvent, project: Project) {
|
public openAssignProjectOwnerDialog($event: MouseEvent, project: Project) {
|
||||||
this._dialogService.openAssignProjectMembersAndOwnerDialog($event, project);
|
this._dialogService.openAssignProjectMembersAndOwnerDialog($event, project);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public getProjectStatusConfig(pw: ProjectWrapper) {
|
||||||
|
const obj = pw.files.reduce((acc, file) => {
|
||||||
|
const status = file.status;
|
||||||
|
acc[status]++ || (acc[status] = 1);
|
||||||
|
return acc;
|
||||||
|
}, {})
|
||||||
|
|
||||||
|
return Object.keys(obj).map(status => ({ length: obj[status], color: status }));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -88,22 +88,6 @@ html, body {
|
|||||||
flex: 2;
|
flex: 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
.flex-3 {
|
|
||||||
flex: 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex-4 {
|
|
||||||
flex: 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex-5 {
|
|
||||||
flex: 5;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex-6 {
|
|
||||||
flex: 6;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mt-5 {
|
.mt-5 {
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user