Add folder interface and support native pathmap folder type.
[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 "../services/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-exchange"></span>&nbsp;<span>Sharing type</span></th>
23                 <td>{{ project.type | readableType }}</td>
24             </tr>
25             <tr>
26                 <th><span class="fa fa-fw fa-folder-open-o"></span>&nbsp;<span>Local path</span></th>
27                 <td>{{ project.pathClient }}</td>
28             </tr>
29             <tr *ngIf="project.pathServer != ''">
30                 <th><span class="fa fa-fw fa-folder-open-o"></span>&nbsp;<span>Server path</span></th>
31                 <td>{{ project.pathServer }}</td>
32             </tr>
33             <!--
34             <tr>
35                 <th><span class="fa fa-fw fa-status"></span>&nbsp;<span>Status</span></th>
36                 <td>{{ project.remotePrjDef.status }}</td>
37             </tr>
38             -->
39             </tbody>
40         </table >
41     `,
42     styleUrls: ['./app/config/config.component.css']
43 })
44
45 export class ProjectCardComponent {
46
47     @Input() project: IProject;
48
49     constructor(private configSvr: ConfigService) {
50     }
51
52
53     delete(prj: IProject) {
54         this.configSvr.deleteProject(prj);
55     }
56
57 }
58
59 // Remove APPS. prefix if translate has failed
60 @Pipe({
61     name: 'readableType'
62 })
63
64 export class ProjectReadableTypePipe implements PipeTransform {
65     transform(type: ProjectType): string {
66         switch (type) {
67             case ProjectType.NATIVE_PATHMAP: return "Native (path mapping)";
68             case ProjectType.SYNCTHING: return "Cloud (Syncthing)";
69             default: return String(type);
70         }
71     }
72 }