c36ba02c21515da786c6172dcd8c1dfdbe1ec8db
[src/xds/xds-server.git] / webapp / src / app / config / config.component.html
1 <div class="panel panel-default">
2     <div class="panel-heading">
3         <h2 class="panel-title" (click)="gConfigIsCollapsed = !gConfigIsCollapsed">
4             Global Configuration
5             <div class="pull-right">
6                 <span class="fa fa-fw fa-exchange fa-size-x2" [style.color]="((serverStatus$ | async)?.WS_connected)?'green':'red'"></span>
7
8                 <button class="btn btn-link" (click)="gConfigIsCollapsed = !gConfigIsCollapsed; $event.stopPropagation()">
9                     <span class="fa fa-big" [ngClass]="{'fa-angle-double-down': gConfigIsCollapsed, 'fa-angle-double-right': !gConfigIsCollapsed}"></span>
10                 </button>
11             </div>
12         </h2>
13     </div>
14     <div class="panel-body" [collapse]="gConfigIsCollapsed && (agentStatus$ | async)?.connected">
15         <div class="row">
16             <div class="col-xs-12">
17                 <table class="table table-condensed">
18                     <tbody>
19                         <tr [ngClass]="{'info': (agentStatus$ | async)?.connected, 'danger': !(agentStatus$ | async)?.connected}">
20                             <th><label>XDS local Agent URL</label></th>
21                             <td> <input type="text" [(ngModel)]="xdsAgentUrl"></td>
22                             <td style="white-space: nowrap">
23                                 <div class="btn-group">
24                                     <button class="btn btn-link" (click)="xdsAgentRestartConn()"><span class="fa fa-refresh fa-size-x2"></span></button>
25                                     <dl-xds-agent class="button" [packageUrls]="(config$ | async).xdsAgentPackages"></dl-xds-agent>
26                                 </div>
27                             </td>
28                         </tr>
29                         <tr class="info">
30                             <th><label>Local Agent connection retry</label></th>
31                             <td> <input type="text" [(ngModel)]="xdsAgentRetry" (ngModelChange)="showApplyBtn['retry'] = true"></td>
32                             <td>
33                                 <button *ngIf="showApplyBtn['retry']" class="btn btn-primary btn-xs" (click)="submitGlobConf('retry')">APPLY</button>
34                             </td>
35                         </tr>
36                         <tr [ngClass]="{'info': (localSTStatus$ | async)?.connected, 'danger': !(localSTStatus$ | async)?.connected}">
37                             <th><label>Local Sync-tool URL</label></th>
38                             <td> <input type="text" [(ngModel)]="syncToolUrl"></td>
39                             <td>
40                                 <button class="btn btn-link" (click)="xdsAgentRestartConn()"><span class="fa fa-refresh fa-size-x2"></span></button>
41                             </td>
42                         </tr>
43                         <tr class="info">
44                             <th><label>Local Projects root directory</label></th>
45                             <td> <input type="text" [(ngModel)]="projectsRootDir" (ngModelChange)="showApplyBtn['rootDir'] = true"></td>
46                             <td>
47                                 <button *ngIf="showApplyBtn['rootDir']" class="btn btn-primary btn-xs" (click)="submitGlobConf('rootDir')">APPLY</button>
48                             </td>
49                         </tr>
50                     </tbody>
51                 </table>
52             </div>
53         </div>
54     </div>
55 </div>
56
57 <div class="panel panel-default">
58     <div class="panel-heading">
59         <h2 class="panel-title" (click)="sdksIsCollapsed = !sdksIsCollapsed">
60             Cross SDKs
61             <div class="pull-right">
62                 <button class="btn btn-link" (click)="childSdkModal.show(); $event.stopPropagation()"><span class="fa fa-plus fa-size-x2"></span></button>
63
64                 <button class="btn btn-link" (click)="sdksIsCollapsed = !sdksIsCollapsed; $event.stopPropagation()">
65                     <span class="fa fa-big" [ngClass]="{'fa-angle-double-down': sdksIsCollapsed, 'fa-angle-double-right': !sdksIsCollapsed}"></span>
66                 </button>
67             </div>
68         </h2>
69     </div>
70     <div class="panel-body" [collapse]="sdksIsCollapsed">
71         <div class="row col-xs-12">
72             <sdks-list-accordion [sdks]="(sdks$ | async)"></sdks-list-accordion>
73         </div>
74     </div>
75 </div>
76
77 <div class="panel panel-default">
78     <div class="panel-heading">
79         <h2 class="panel-title" (click)="projectsIsCollapsed = !projectsIsCollapsed; $event.stopPropagation()">
80             Projects
81             <div class="pull-right">
82                 <button class="btn btn-link" (click)="childProjectModal.show(); $event.stopPropagation()"><span class="fa fa-plus fa-size-x2"></span></button>
83
84                 <button class="btn btn-link" (click)="projectsIsCollapsed = !projectsIsCollapsed; $event.stopPropagation()">
85                        <span class="fa fa-big" [ngClass]="{'fa-angle-double-down': projectsIsCollapsed, 'fa-angle-double-right': !projectsIsCollapsed}"></span>
86                 </button>
87             </div>
88         </h2>
89     </div>
90     <div class="panel-body" [collapse]="projectsIsCollapsed">
91         <div class="row col-xs-12">
92             <projects-list-accordion [projects]="(config$ | async).projects"></projects-list-accordion>
93         </div>
94     </div>
95 </div>
96
97 <!-- Modals -->
98 <project-add-modal #childProjectModal [title]="'Add a new project'">
99 </project-add-modal>
100 <sdk-add-modal  #childSdkModal [title]="'Add a new SDK'">
101 </sdk-add-modal>
102
103 <!-- only for debug -->
104 <div *ngIf="false" class="row">
105     {{config$ | async | json}}
106 </div>