summaryrefslogtreecommitdiffstats
path: root/utils/test/testapi/3rd_party/static/testapi-ui/components/results/results.html
diff options
context:
space:
mode:
authorSerenaFeng <feng.xiaowei@zte.com.cn>2017-05-12 01:49:57 +0800
committerSerenaFeng <feng.xiaowei@zte.com.cn>2017-05-12 10:11:57 +0800
commitf562c31e824f573d9a3254a1eacb4981b29290eb (patch)
treefd5526fc049fae9760da27b64318ad3fe5ce5767 /utils/test/testapi/3rd_party/static/testapi-ui/components/results/results.html
parenta16b903c9765049bd28102c812b8307090a97e16 (diff)
add web portal framework for TestAPI
Change-Id: I62cea8b59ffe6a6cde98051c130f4502c07d3557 Signed-off-by: SerenaFeng <feng.xiaowei@zte.com.cn>
Diffstat (limited to 'utils/test/testapi/3rd_party/static/testapi-ui/components/results/results.html')
-rw-r--r--utils/test/testapi/3rd_party/static/testapi-ui/components/results/results.html247
1 files changed, 247 insertions, 0 deletions
diff --git a/utils/test/testapi/3rd_party/static/testapi-ui/components/results/results.html b/utils/test/testapi/3rd_party/static/testapi-ui/components/results/results.html
new file mode 100644
index 000000000..2a43cd1e2
--- /dev/null
+++ b/utils/test/testapi/3rd_party/static/testapi-ui/components/results/results.html
@@ -0,0 +1,247 @@
+<h3>{{ctrl.pageHeader}}</h3>
+<p>{{ctrl.pageParagraph}}</p>
+
+<div class="result-filters">
+ <h4>Filters</h4>
+ <div class="row">
+ <div class="col-md-3">
+ <label for="cpid">Start Date</label>
+ <p class="input-group">
+ <input type="text" class="form-control"
+ uib-datepicker-popup="{{ctrl.format}}"
+ ng-model="ctrl.startDate" is-open="ctrl.startOpen"
+ close-text="Close" />
+ <span class="input-group-btn">
+ <button type="button" class="btn btn-default" ng-click="ctrl.open($event, 'startOpen')">
+ <i class="glyphicon glyphicon-calendar"></i>
+ </button>
+ </span>
+ </p>
+ </div>
+ <div class="col-md-3">
+ <label for="cpid">End Date</label>
+ <p class="input-group">
+ <input type="text" class="form-control"
+ uib-datepicker-popup="{{ctrl.format}}"
+ ng-model="ctrl.endDate" is-open="ctrl.endOpen"
+ close-text="Close" />
+ <span class="input-group-btn">
+ <button type="button" class="btn btn-default" ng-click="ctrl.open($event, 'endOpen')">
+ <i class="glyphicon glyphicon-calendar"></i>
+ </button>
+ </span>
+ </p>
+ </div>
+ <div class="col-md-3" style="margin-top:24px;">
+ <button type="submit" class="btn btn-primary" ng-click="ctrl.update()">Filter</button>
+ <button type="submit" class="btn btn-primary btn-danger" ng-click="ctrl.clearFilters()">Clear</button>
+ </div>
+ </div>
+</div>
+
+<div cg-busy="{promise:ctrl.authRequest,message:'Loading'}"></div>
+<div cg-busy="{promise:ctrl.resultsRequest,message:'Loading'}"></div>
+
+<div ng-show="ctrl.data" class="results-table">
+ <table ng-show="ctrl.data" class="table table-striped table-hover">
+ <thead>
+ <tr>
+ <th ng-if="ctrl.isUserResults"></th>
+ <th>Upload Date</th>
+ <th>Test Run ID</th>
+ <th ng-if="ctrl.isUserResults">Vendor</th>
+ <th ng-if="ctrl.isUserResults">Product (version)</th>
+ <th ng-if="ctrl.isUserResults">Target Program</th>
+ <th ng-if="ctrl.isUserResults">Guideline</th>
+ <th ng-if="ctrl.isUserResults">Verified</th>
+ <th ng-if="ctrl.isUserResults">Shared</th>
+ </tr>
+ </thead>
+
+ <tbody>
+ <tr ng-repeat-start="(index, result) in ctrl.data.results">
+ <td ng-if="ctrl.isUserResults">
+ <a ng-if="!result.expanded"
+ class="glyphicon glyphicon-plus"
+ ng-click="result.expanded = true">
+ </a>
+ <a ng-if="result.expanded"
+ class="glyphicon glyphicon-minus"
+ ng-click="result.expanded = false">
+ </a>
+ </td>
+ <td>{{result.created_at}}</td>
+ <td><a ui-sref="resultsDetail({testID: result.id})">
+ {{result.id.slice(0, 8)}}...{{result.id.slice(-8)}}
+ </a>
+ </td>
+ <td ng-if="ctrl.isUserResults">
+ {{ctrl.vendors[result.product_version.product_info.organization_id].name || '-'}}
+ </td>
+ <td ng-if="ctrl.isUserResults">{{result.product_version.product_info.name || '-'}}
+ <span ng-if="result.product_version.version">
+ ({{result.product_version.version}})
+ </span>
+ </td>
+ <td ng-if="ctrl.isUserResults">{{ctrl.targetMappings[result.meta.target] || '-'}}</td>
+ <td ng-if="ctrl.isUserResults">{{result.meta.guideline.slice(0, -5) || '-'}}</td>
+ <td ng-if="ctrl.isUserResults">
+ <span ng-if="result.verification_status" class="glyphicon glyphicon-ok"></span>
+ <span ng-if="!result.verification_status">-</span>
+
+ </td>
+ <td ng-if="ctrl.isUserResults">
+ <span ng-show="result.meta.shared" class="glyphicon glyphicon-share"></span>
+ </td>
+ </tr>
+ <tr ng-if="result.expanded" ng-repeat-end>
+ <td></td>
+ <td colspan="3">
+ <strong>Publicly Shared:</strong>
+ <span ng-if="result.meta.shared == 'true' && !result.sharedEdit">Yes</span>
+ <span ng-if="!result.meta.shared && !result.sharedEdit">
+ <em>No</em>
+ </span>
+ <select ng-if="result.sharedEdit"
+ ng-model="result.meta.shared"
+ class="form-inline">
+ <option value="true">Yes</option>
+ <option value="">No</option>
+ </select>
+ <a ng-if="!result.sharedEdit"
+ ng-click="result.sharedEdit = true"
+ title="Edit"
+ class="glyphicon glyphicon-pencil"></a>
+ <a ng-if="result.sharedEdit"
+ ng-click="ctrl.associateMeta(index,'shared',result.meta.shared)"
+ title="Save"
+ class="glyphicon glyphicon-floppy-disk"></a>
+ <br />
+
+ <strong>Associated Guideline:</strong>
+ <span ng-if="!result.meta.guideline && !result.guidelineEdit">
+ <em>None</em>
+ </span>
+ <span ng-if="result.meta.guideline && !result.guidelineEdit">
+ {{result.meta.guideline.slice(0, -5)}}
+ </span>
+ <select ng-if="result.guidelineEdit"
+ ng-model="result.meta.guideline"
+ ng-options="o as o.slice(0, -5) for o in ctrl.versionList"
+ class="form-inline">
+ <option value="">None</option>
+ </select>
+ <a ng-if="!result.guidelineEdit"
+ ng-click="ctrl.getVersionList();result.guidelineEdit = true"
+ title="Edit"
+ class="glyphicon glyphicon-pencil"></a>
+ <a ng-if="result.guidelineEdit"
+ ng-click="ctrl.associateMeta(index, 'guideline', result.meta.guideline)"
+ title="Save"
+ class="glyphicon glyphicon-floppy-disk">
+ </a>
+ <br />
+
+ <strong>Associated Target Program:</strong>
+ <span ng-if="!result.meta.target && !result.targetEdit">
+ <em>None</em>
+ </span>
+ <span ng-if="result.meta.target && !result.targetEdit">
+ {{ctrl.targetMappings[result.meta.target]}}</span>
+ <select ng-if="result.targetEdit"
+ ng-model="result.meta.target"
+ class="form-inline">
+ <option value="">None</option>
+ <option value="platform">OpenStack Powered Platform</option>
+ <option value="compute">OpenStack Powered Compute</option>
+ <option value="object">OpenStack Powered Object Storage</option>
+ </select>
+ <a ng-if="!result.targetEdit"
+ ng-click="result.targetEdit = true;"
+ title="Edit"
+ class="glyphicon glyphicon-pencil">
+ </a>
+ <a ng-if="result.targetEdit"
+ ng-click="ctrl.associateMeta(index, 'target', result.meta.target)"
+ title="Save"
+ class="glyphicon glyphicon-floppy-disk">
+ </a>
+ <br />
+
+ <strong>Associated Product:</strong>
+ <span ng-if="!result.product_version && !result.productEdit">
+ <em>None</em>
+ </span>
+ <span ng-if="result.product_version && !result.productEdit">
+ <span ng-if="ctrl.products[result.product_version.product_info.id].product_type == 0">
+ <a ui-sref="distro({id: result.product_version.product_info.id})">
+ {{ctrl.products[result.product_version.product_info.id].name}}
+ <small ng-if="result.product_version.version">
+ ({{result.product_version.version}})
+ </small>
+ </a>
+ </span>
+ <span ng-if="ctrl.products[result.product_version.product_info.id].product_type != 0">
+ <a ui-sref="cloud({id: result.product_version.product_info.id})">
+ {{ctrl.products[result.product_version.product_info.id].name}}
+ <small ng-if="result.product_version.version">
+ ({{result.product_version.version}})
+ </small>
+ </a>
+ </span>
+ </span>
+
+ <select ng-if="result.productEdit"
+ ng-options="product as product.name for product in ctrl.products | arrayConverter | orderBy: 'name' track by product.id"
+ ng-model="result.selectedProduct"
+ ng-change="ctrl.getProductVersions(result)">
+ <option value="">-- No Product --</option>
+ </select>
+
+ <span ng-if="result.productVersions.length && result.productEdit">
+ <span class="glyphicon glyphicon-arrow-right" style="padding-right:3px;color:#303030;"></span>
+ Version:
+ <select ng-options="version as version.version for version in result.productVersions | orderBy: 'version' track by version.id"
+ ng-model="result.selectedVersion">
+ </select>
+
+ </span>
+ <a ng-if="!result.productEdit"
+ ng-click="ctrl.prepVersionEdit(result)"
+ title="Edit"
+ class="glyphicon glyphicon-pencil">
+ </a>
+ <a ng-if="result.productEdit"
+ ng-click="ctrl.associateProductVersion(result)"
+ confirm="Once you associate this test to this product, ownership
+ will be transferred to the product's vendor admins.
+ Continue?"
+ title="Save"
+ class="glyphicon glyphicon-floppy-disk">
+ </a>
+ <br />
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="pages">
+ <uib-pagination
+ total-items="ctrl.totalItems"
+ ng-model="ctrl.currentPage"
+ items-per-page="ctrl.itemsPerPage"
+ max-size="ctrl.maxSize"
+ class="pagination-sm"
+ boundary-links="true"
+ rotate="false"
+ num-pages="ctrl.numPages"
+ ng-change="ctrl.update()">
+ </uib-pagination>
+ </div>
+</div>
+
+<div ng-show="ctrl.showError" class="alert alert-danger" role="alert">
+ <span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span>
+ <span class="sr-only">Error:</span>
+ {{ctrl.error}}
+</div>