010b47603fd65e20083e17d7bc7379541afbe469
[src/xds/xds-server.git] / webapp / src / app / projects / projectCard.component.ts
1 import { Component, Input, Pipe, PipeTransform } from '@angular/core';
2 import { ConfigService, IProject, ProjectType } from "../common/config.service";
3
4 @Component({
5     selector: 'project-card',
6     template: `
7         <div class="row">
8             <div class="col-xs-12">
9                 <div class="text-right" role="group">
10                     <button class="btn btn-link" (click)="delete(project)"><span class="fa fa-trash fa-size-x2"></span></button>
11                 </div>
12             </div>
13         </div>
14
15         <table class="table table-striped">
16             <tbody>
17             <tr>
18                 <th><span class="fa fa-fw fa-id-badge"></span>&nbsp;<span>Project ID</span></th>
19                 <td>{{ project.id }}</td>
20             </tr>
21             <tr>
22                 <th><span class="fa fa-fw fa-folder-open-o"></span>&nbsp;<span>Folder path</span></th>
23                 <td>{{ project.path}}</td>
24             </tr>
25             <tr>
26                 <th><span class="fa fa-fw fa-exchange"></span>&nbsp;<span>Synchronization type</span></th>
27                 <td>{{ project.type | readableType }}</td>
28             </tr>
29
30             </tbody>
31         </table >
32     `,
33     styleUrls: ['./app/config/config.component.css']
34 })
35
36 export class ProjectCardComponent {
37
38     @Input() project: IProject;
39
40     constructor(private configSvr: ConfigService) {
41     }
42
43
44     delete(prj: IProject) {
45         this.configSvr.deleteProject(prj);
46     }
47
48 }
49
50 // Remove APPS. prefix if translate has failed
51 @Pipe({
52     name: 'readableType'
53 })
54
55 export class ProjectReadableTypePipe implements PipeTransform {
56   transform(type: ProjectType): string {
57     switch (+type) {
58         case ProjectType.NATIVE:    return "Native";
59         case ProjectType.SYNCTHING: return "Cloud (Syncthing)";
60         default:                    return String(type);
61     }
62   }
63 }