import { Component, Input, Pipe, PipeTransform } from '@angular/core';
import { ProjectService, IProject, ProjectType } from '../services/project.service';
import { AlertService } from '../services/alert.service';
@Component({
selector: 'xds-project-card',
template: `
Project ID |
{{ project.id }} |
Sharing type |
{{ project.type | readableType }} |
Local path |
{{ project.pathClient }} |
Server path |
{{ project.pathServer }} |
Status |
{{ project.status }} - {{ project.isInSync ? "Up to Date" : "Out of Sync"}}
|
`,
styleUrls: ['../config/config.component.css']
})
export class ProjectCardComponent {
@Input() project: IProject;
constructor(
private alert: AlertService,
private projectSvr: ProjectService
) {
}
delete(prj: IProject) {
this.projectSvr.Delete(prj)
.subscribe(res => {
}, err => {
this.alert.error('Delete ERROR: ' + err);
});
}
sync(prj: IProject) {
this.projectSvr.Sync(prj)
.subscribe(res => {
}, err => {
this.alert.error('ERROR: ' + err);
});
}
}
// Remove APPS. prefix if translate has failed
@Pipe({
name: 'readableType'
})
export class ProjectReadableTypePipe implements PipeTransform {
transform(type: ProjectType): string {
switch (type) {
case ProjectType.NATIVE_PATHMAP: return 'Native (path mapping)';
case ProjectType.SYNCTHING: return 'Cloud (Syncthing)';
default: return String(type);
}
}
}