1 <h3>{{ctrl.pageHeader}}</h3>
2 <p>{{ctrl.pageParagraph}}</p>
4 <div class="result-filters">
8 <label for="cpid">Start Date</label>
9 <p class="input-group">
10 <input type="text" class="form-control"
11 uib-datepicker-popup="{{ctrl.format}}"
12 ng-model="ctrl.startDate" is-open="ctrl.startOpen"
14 <span class="input-group-btn">
15 <button type="button" class="btn btn-default" ng-click="ctrl.open($event, 'startOpen')">
16 <i class="glyphicon glyphicon-calendar"></i>
21 <div class="col-md-3">
22 <label for="cpid">End Date</label>
23 <p class="input-group">
24 <input type="text" class="form-control"
25 uib-datepicker-popup="{{ctrl.format}}"
26 ng-model="ctrl.endDate" is-open="ctrl.endOpen"
28 <span class="input-group-btn">
29 <button type="button" class="btn btn-default" ng-click="ctrl.open($event, 'endOpen')">
30 <i class="glyphicon glyphicon-calendar"></i>
35 <div class="col-md-3" style="margin-top:24px;">
36 <button type="submit" class="btn btn-primary" ng-click="ctrl.update()">Filter</button>
37 <button type="submit" class="btn btn-primary btn-danger" ng-click="ctrl.clearFilters()">Clear</button>
42 <div cg-busy="{promise:ctrl.authRequest,message:'Loading'}"></div>
43 <div cg-busy="{promise:ctrl.resultsRequest,message:'Loading'}"></div>
45 <div ng-show="ctrl.data" class="results-table">
46 <table ng-show="ctrl.data" class="table table-striped table-hover">
49 <th ng-if="ctrl.isUserResults"></th>
52 <th ng-if="ctrl.isUserResults">Vendor</th>
53 <th ng-if="ctrl.isUserResults">Product (version)</th>
54 <th ng-if="ctrl.isUserResults">Target Program</th>
55 <th ng-if="ctrl.isUserResults">Guideline</th>
56 <th ng-if="ctrl.isUserResults">Verified</th>
57 <th ng-if="ctrl.isUserResults">Shared</th>
62 <tr ng-repeat-start="(index, result) in ctrl.data.results">
63 <td ng-if="ctrl.isUserResults">
64 <a ng-if="!result.expanded"
65 class="glyphicon glyphicon-plus"
66 ng-click="result.expanded = true">
68 <a ng-if="result.expanded"
69 class="glyphicon glyphicon-minus"
70 ng-click="result.expanded = false">
73 <td>{{result.created_at}}</td>
74 <td><a ui-sref="resultsDetail({testID: result.id})">
75 {{result.id.slice(0, 8)}}...{{result.id.slice(-8)}}
78 <td ng-if="ctrl.isUserResults">
79 {{ctrl.vendors[result.product_version.product_info.organization_id].name || '-'}}
81 <td ng-if="ctrl.isUserResults">{{result.product_version.product_info.name || '-'}}
82 <span ng-if="result.product_version.version">
83 ({{result.product_version.version}})
86 <td ng-if="ctrl.isUserResults">{{ctrl.targetMappings[result.meta.target] || '-'}}</td>
87 <td ng-if="ctrl.isUserResults">{{result.meta.guideline.slice(0, -5) || '-'}}</td>
88 <td ng-if="ctrl.isUserResults">
89 <span ng-if="result.verification_status" class="glyphicon glyphicon-ok"></span>
90 <span ng-if="!result.verification_status">-</span>
93 <td ng-if="ctrl.isUserResults">
94 <span ng-show="result.meta.shared" class="glyphicon glyphicon-share"></span>
97 <tr ng-if="result.expanded" ng-repeat-end>
100 <strong>Publicly Shared:</strong>
101 <span ng-if="result.meta.shared == 'true' && !result.sharedEdit">Yes</span>
102 <span ng-if="!result.meta.shared && !result.sharedEdit">
105 <select ng-if="result.sharedEdit"
106 ng-model="result.meta.shared"
108 <option value="true">Yes</option>
109 <option value="">No</option>
111 <a ng-if="!result.sharedEdit"
112 ng-click="result.sharedEdit = true"
114 class="glyphicon glyphicon-pencil"></a>
115 <a ng-if="result.sharedEdit"
116 ng-click="ctrl.associateMeta(index,'shared',result.meta.shared)"
118 class="glyphicon glyphicon-floppy-disk"></a>
121 <strong>Associated Guideline:</strong>
122 <span ng-if="!result.meta.guideline && !result.guidelineEdit">
125 <span ng-if="result.meta.guideline && !result.guidelineEdit">
126 {{result.meta.guideline.slice(0, -5)}}
128 <select ng-if="result.guidelineEdit"
129 ng-model="result.meta.guideline"
130 ng-options="o as o.slice(0, -5) for o in ctrl.versionList"
132 <option value="">None</option>
134 <a ng-if="!result.guidelineEdit"
135 ng-click="ctrl.getVersionList();result.guidelineEdit = true"
137 class="glyphicon glyphicon-pencil"></a>
138 <a ng-if="result.guidelineEdit"
139 ng-click="ctrl.associateMeta(index, 'guideline', result.meta.guideline)"
141 class="glyphicon glyphicon-floppy-disk">
145 <strong>Associated Target Program:</strong>
146 <span ng-if="!result.meta.target && !result.targetEdit">
149 <span ng-if="result.meta.target && !result.targetEdit">
150 {{ctrl.targetMappings[result.meta.target]}}</span>
151 <select ng-if="result.targetEdit"
152 ng-model="result.meta.target"
154 <option value="">None</option>
155 <option value="platform">OpenStack Powered Platform</option>
156 <option value="compute">OpenStack Powered Compute</option>
157 <option value="object">OpenStack Powered Object Storage</option>
159 <a ng-if="!result.targetEdit"
160 ng-click="result.targetEdit = true;"
162 class="glyphicon glyphicon-pencil">
164 <a ng-if="result.targetEdit"
165 ng-click="ctrl.associateMeta(index, 'target', result.meta.target)"
167 class="glyphicon glyphicon-floppy-disk">
171 <strong>Associated Product:</strong>
172 <span ng-if="!result.product_version && !result.productEdit">
175 <span ng-if="result.product_version && !result.productEdit">
176 <span ng-if="ctrl.products[result.product_version.product_info.id].product_type == 0">
177 <a ui-sref="distro({id: result.product_version.product_info.id})">
178 {{ctrl.products[result.product_version.product_info.id].name}}
179 <small ng-if="result.product_version.version">
180 ({{result.product_version.version}})
184 <span ng-if="ctrl.products[result.product_version.product_info.id].product_type != 0">
185 <a ui-sref="cloud({id: result.product_version.product_info.id})">
186 {{ctrl.products[result.product_version.product_info.id].name}}
187 <small ng-if="result.product_version.version">
188 ({{result.product_version.version}})
194 <select ng-if="result.productEdit"
195 ng-options="product as product.name for product in ctrl.products | arrayConverter | orderBy: 'name' track by product.id"
196 ng-model="result.selectedProduct"
197 ng-change="ctrl.getProductVersions(result)">
198 <option value="">-- No Product --</option>
201 <span ng-if="result.productVersions.length && result.productEdit">
202 <span class="glyphicon glyphicon-arrow-right" style="padding-right:3px;color:#303030;"></span>
204 <select ng-options="version as version.version for version in result.productVersions | orderBy: 'version' track by version.id"
205 ng-model="result.selectedVersion">
209 <a ng-if="!result.productEdit"
210 ng-click="ctrl.prepVersionEdit(result)"
212 class="glyphicon glyphicon-pencil">
214 <a ng-if="result.productEdit"
215 ng-click="ctrl.associateProductVersion(result)"
216 confirm="Once you associate this test to this product, ownership
217 will be transferred to the product's vendor admins.
220 class="glyphicon glyphicon-floppy-disk">
230 total-items="ctrl.totalItems"
231 ng-model="ctrl.currentPage"
232 items-per-page="ctrl.itemsPerPage"
233 max-size="ctrl.maxSize"
234 class="pagination-sm"
235 boundary-links="true"
237 num-pages="ctrl.numPages"
238 ng-change="ctrl.update()">
243 <div ng-show="ctrl.showError" class="alert alert-danger" role="alert">
244 <span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span>
245 <span class="sr-only">Error:</span>