blob: c34694c22b2a6c716a83aa9adb98767a2c7e0d7f [file] [log] [blame]
Sean Condona00bf382018-06-23 07:54:01 +01001<!--
2~ Copyright 2014-present Open Networking Foundation
3~
4~ Licensed under the Apache License, Version 2.0 (the "License");
5~ you may not use this file except in compliance with the License.
6~ You may obtain a copy of the License at
7~
8~ http://www.apache.org/licenses/LICENSE-2.0
9~
10~ Unless required by applicable law or agreed to in writing, software
11~ distributed under the License is distributed on an "AS IS" BASIS,
12~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13~ See the License for the specific language governing permissions and
14~ limitations under the License.
15-->
Sean Condon2bd11b72018-06-15 08:00:48 +010016<div id="ov-app" filedrop on-file-drop="appDropped()">
17 <div class="tabular-header">
18 <h2>
19 {{lionFn('title_apps')}}
20 ({{ tableData.length }}
21 {{ lionFn('total') }})
22 </h2>
23 <div class="ctrl-btns">
24 <div class="refresh" (click)="toggleRefresh()">
25 <onos-icon classes="{{ autoRefresh?'active refresh':'refresh' }}"
26 iconId="refresh" iconSize="42" toolTip="{{ autoRefreshTip }}"></onos-icon>
27 </div>
28 <div class="separator"></div>
29
30 <!--<form id="inputFileForm">-->
31 <!--<input id="uploadFile"-->
32 <!--type="file" size="50" accept=".oar,.jar"-->
33 <!--file-model="appFile">-->
34 <!--</form>-->
35
36 <div class="active" trigger-form>
37 <onos-icon classes="{{ 'active upload' }}"
38 iconId="upload" iconSize="42" toolTip="{{ uploadTip }}"></onos-icon>
39 </div>
40 <div (click)="appAction('activate')">
41 <onos-icon classes="{{ ctrlBtnState.installed?'active play':'play' }}"
42 iconId="play" iconSize="42" toolTip="{{ activateTip }}"></onos-icon>
43 </div>
44 <div (click)="appAction('deactivate')">
45 <onos-icon classes="{{ ctrlBtnState.active?'active stop':'stop' }}"
46 iconId="stop" iconSize="42" toolTip="{{ deactivateTip }}"></onos-icon>
47 </div>
48 <div (click)="appAction('uninstall')">
49 <!--[ngClass]="{active: ctrlBtnState.selection}">-->
50 <!--tooltip tt-msg="uninstallTip"-->
51 <onos-icon classes="{{ ctrlBtnState.selection?'active garbage':'garbage' }}"
52 iconId="garbage" iconSize="42" toolTip="{{ uninstallTip }}"></onos-icon>
53 </div>
54 <div (click)="downloadApp()">
55 <onos-icon classes="{{ ctrlBtnState.selection?'active download':'download' }}"
56 iconId="download" iconSize="42" toolTip="{{ downloadTip }}"></onos-icon>
57 </div>
58 </div>
59
60 <!--<div class="search">-->
61 <!--<input type="text" ng-model="queryTxt" placeholder="Search"/>-->
62 <!--<select ng-model="queryBy">-->
63 <!--<option value="" disabled>Search By</option>-->
64 <!--<option value="$">All Fields</option>-->
65 <!--<option value="title">{{lionFn('title')}}</option>-->
66 <!--<option value="id">{{lionFn('app_id')}}</option>-->
67 <!--<option value="version">{{lionFn('version')}}</option>-->
68 <!--<option value="category">{{lionFn('category')}}</option>-->
69 <!--<option value="apporiginName">{{lionFn('origin')}}</option>-->
70
71 <!--</select>-->
72 <!--</div>-->
73
74
75 </div>
76
77 <div class="summary-list" onos-table-resize>
78 <table onos-flash-changes id-prop="id" width="100%">
79 <tr class="table-header">
80 <th colId="state" class="table-icon" sortable></th>
81 <th colId="icon" class="table-icon"></th>
82 <th colId="title" [ngClass]="{width: '340'}" sortable> {{lionFn('title')}} </th>
83 <th colId="id" [ngClass]="{width: '320px'}"sortable> {{lionFn('app_id')}} </th>
84 <th colId="version" [ngClass]="{width: '140px'}"sortable> {{lionFn('version')}} </th>
85 <th colId="category" [ngClass]="{width: '136px'}"sortable> {{lionFn('category')}} </th>
86 <th colId="origin" sortable> {{lionFn('origin')}} </th>
87 </tr>
88
89 <tr *ngIf="tableData.length === 0" class="no-data">
90 <td colspan="5">
91 {{annots.no_rows_msg}}
92 </td>
93 </tr>
94 <!--&lt;!&ndash;TODO: Add back in | filter:queryFilter&ndash;&gt;-->
Sean Condona00bf382018-06-23 07:54:01 +010095 <tr class="table-body" *ngFor="let app of tableData"
Sean Condon2bd11b72018-06-15 08:00:48 +010096 (click)="selectCallback($event, app)"
97 [ngClass]="{selected: app.id === selId, 'data-change': isChanged(app.id)}">
98 <td class="table-icon">
99 <onos-icon iconId="{{app._iconid_state}}"></onos-icon>
100 </td>
101 <td class="table-icon">
102 <!--<img data-ng-src="./rs/applications/{{app.icon}}/icon"-->
103 <!--height="24px" width="24px" />-->
104 </td>
105 <td>{{ app.title }}</td>
106 <td>{{ app.id }}</td>
107 <td>{{ app.version }}</td>
108 <td>{{ app.category }}</td>
109 <td>{{ app.origin }}</td>
110 </tr>
111 </table>
112
113 </div>
114
115</div>