summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorthuva4 <tharma.thuva@gmail.com>2018-01-08 15:11:17 +0530
committerthuva4 <tharma.thuva@gmail.com>2018-01-09 13:49:55 +0530
commit9d07033a6949af2816fa4a7b234f2f3bcf027707 (patch)
tree604007ccaacac834f73c7ee1d5a1d0446ed6ce74
parent99b9c09aca0ff3bc9a723bc404ea6a0d09ee4ef3 (diff)
Add links in prods,projects and results pages
Add links for the redirection Created Result page Change-Id: I7ba80f6a8d774d6fde33280f701c1188cb5c32d9 Signed-off-by: thuva4 <tharma.thuva@gmail.com>
-rw-r--r--testapi/opnfv_testapi/tests/UI/e2e/testCasesControllerSpec.js10
-rw-r--r--testapi/opnfv_testapi/ui/app.js5
-rw-r--r--testapi/opnfv_testapi/ui/components/pods/pods.html13
-rw-r--r--testapi/opnfv_testapi/ui/components/projects/project/testCases/testCases.html11
-rw-r--r--testapi/opnfv_testapi/ui/components/projects/projects.html13
-rw-r--r--testapi/opnfv_testapi/ui/components/results/result/result.html115
-rw-r--r--testapi/opnfv_testapi/ui/components/results/result/resultController.js74
-rw-r--r--testapi/opnfv_testapi/ui/components/results/results.html2
-rw-r--r--testapi/opnfv_testapi/ui/components/results/resultsController.js5
-rw-r--r--testapi/opnfv_testapi/ui/index.html1
10 files changed, 217 insertions, 32 deletions
diff --git a/testapi/opnfv_testapi/tests/UI/e2e/testCasesControllerSpec.js b/testapi/opnfv_testapi/tests/UI/e2e/testCasesControllerSpec.js
index d6b5b9f..d509c57 100644
--- a/testapi/opnfv_testapi/tests/UI/e2e/testCasesControllerSpec.js
+++ b/testapi/opnfv_testapi/tests/UI/e2e/testCasesControllerSpec.js
@@ -538,14 +538,6 @@ describe('testing the test cases page for user who is in submitter group', funct
expect(editOperation.isDisplayed()).toBe(true);
});
- it('View Operation is visible for user ', function () {
- browser.get(baseURL+"#/projects/testproject");
- var testCases = element(by.linkText('Test Cases'));
- testCases.click();
- var viewOperation = element(by.css('a[class=text-info]'));
- expect(viewOperation.isDisplayed()).toBe(true);
- });
-
it('Create the test case', function () {
browser.get(baseURL+"#/projects/testproject");
var testCases = element(by.linkText('Test Cases'));
@@ -635,7 +627,7 @@ describe('testing the test cases page for user who is in submitter group', funct
browser.get(baseURL+"#/projects/testproject");
var testCases = element(by.linkText('Test Cases'));
testCases.click();
- var viewOperation = element(by.css('a[class=text-info]'));
+ var viewOperation = element(by.linkText('testCase'));
viewOperation.click();
var name = element(by.model('TestCaseModalCtrl.testcase.name'));
var EC = browser.ExpectedConditions;
diff --git a/testapi/opnfv_testapi/ui/app.js b/testapi/opnfv_testapi/ui/app.js
index 2a34838..3da12b1 100644
--- a/testapi/opnfv_testapi/ui/app.js
+++ b/testapi/opnfv_testapi/ui/app.js
@@ -89,6 +89,11 @@
templateUrl: 'testapi-ui/components/results/results.html',
controller: 'ResultsController as ctrl'
}).
+ state('result', {
+ url: '/result/:_id',
+ templateUrl: 'testapi-ui/components/results/result/result.html',
+ controller: 'ResultController as ctrl'
+ }).
state('profile', {
url: '/profile',
templateUrl: 'testapi-ui/components/profile/profile.html',
diff --git a/testapi/opnfv_testapi/ui/components/pods/pods.html b/testapi/opnfv_testapi/ui/components/pods/pods.html
index 02f4a48..e092699 100644
--- a/testapi/opnfv_testapi/ui/components/pods/pods.html
+++ b/testapi/opnfv_testapi/ui/components/pods/pods.html
@@ -48,11 +48,11 @@
<thead>
<tr style="
text-align: center;">
- <th>Bulk Select</th>
+ <th style="width:1%">Bulk Select</th>
<th>Name</th>
<th>Role</th>
<th>Mode</th>
- <th>Operation</th>
+ <th ng-class="{ 'hidden': !auth.isAuthenticated }">Operation</th>
</tr>
</thead>
<tbody>
@@ -62,16 +62,15 @@
<input type="checkbox" value="{{pod.name}}" ng-model="ctrl.checkBox[index]" >
</div>
</td>
- <td>{{pod.name}}</td>
+ <td><a class="text-info" ng-click="ctrl.viewPod(pod.name)">{{pod.name}}</a></td>
<td>{{pod.role}}</td>
<td>{{pod.mode}}</td>
- <td>
+ <td ng-class="{ 'hidden': !auth.isAuthenticated }">
<span class="podsTable-col">
- <a class="text-warning" title="Edit" ng-class="{ 'hidden': !auth.isAuthenticated }" >
+ <a class="text-warning" title="Edit">
<i class="fa fa-pencil-square-o"></i></a>
- <a class="text-danger" ng-click="ctrl.openDeleteModal(pod.name)" title="Delete" ng-class="{ 'hidden': !auth.isAuthenticated }">
+ <a class="text-danger" ng-click="ctrl.openDeleteModal(pod.name)" title="Delete">
<i class="fa fa-trash-o"></i></a>
- <a class="text-info" ng-click="ctrl.viewPod(pod.name)"><i class="fa fa-eye"></i></a>
</span>
</td>
</tr>
diff --git a/testapi/opnfv_testapi/ui/components/projects/project/testCases/testCases.html b/testapi/opnfv_testapi/ui/components/projects/project/testCases/testCases.html
index 34656f3..00dd0f1 100644
--- a/testapi/opnfv_testapi/ui/components/projects/project/testCases/testCases.html
+++ b/testapi/opnfv_testapi/ui/components/projects/project/testCases/testCases.html
@@ -32,7 +32,7 @@
<th style="width: 20%;">Tier</th>
<th style="width: 20%;">Blocking</th>
<th style="width: 20%;">CI&nbsp;Loop</th>
- <th style="width: 20%;">Operations</th>
+ <th style="width: 20%;" ng-class="{'hidden': ! ((auth.projectNames.length>0) && auth.isAuthenticated)}">Operations</th>
</tr>
</thead>
<tbody>
@@ -50,15 +50,12 @@
<td>{{ ctrl.data.tier}}</td>
<td>{{ctrl.data.blocking}}</td>
<td>{{ctrl.data.ci_loop}}</td>
- <td>
+ <td ng-class="{'hidden': ! ((auth.projectNames.length>0) && auth.isAuthenticated)}">
<span class="podsTable-col">
- <a class="text-warning" ng-click="testCasesCtrl.openUpdateTestModal(testcase.name)" title="Edit" ng-class="{'hidden': ! ((auth.projectNames.length>0) &&
- auth.isAuthenticated)}" >
+ <a class="text-warning" ng-click="testCasesCtrl.openUpdateTestModal(testcase.name)" title="Edit">
<i class="fa fa-pencil-square-o"></i></a>
- <a class="text-danger" ng-click="testCasesCtrl.openDeleteTestModal(testcase.name)" title="Delete" ng-class="{'hidden': ! ((auth.projectNames.length>0) &&
- auth.isAuthenticated)}">
+ <a class="text-danger" ng-click="testCasesCtrl.openDeleteTestModal(testcase.name)" title="Delete">
<i class="fa fa-trash-o"></i></a>
- <a class="text-info" ng-click="testCasesCtrl.viewTestCase(testcase.name, testcase.project_name)"><i class="fa fa-eye"></i></a>
</span>
</td>
</tr>
diff --git a/testapi/opnfv_testapi/ui/components/projects/projects.html b/testapi/opnfv_testapi/ui/components/projects/projects.html
index e8bb947..8a27a57 100644
--- a/testapi/opnfv_testapi/ui/components/projects/projects.html
+++ b/testapi/opnfv_testapi/ui/components/projects/projects.html
@@ -40,7 +40,7 @@
<th style="width: 1%;">Bulk Select</th>
<th style="width: 19%;">Name</th>
<th style="width: 70%;">Description</th>
- <th style="width: 10%;">Operations</th>
+ <th style="width: 10%;" ng-class="{'hidden': ! ((auth.projectNames.length>0) && auth.isAuthenticated)}">Operations</th>
</tr>
</thead>
<tbody>
@@ -50,17 +50,14 @@
<input type="checkbox" value="{{project.name}}" ng-model="ctrl.checkBox[index]" >
</div>
</td>
- <td>{{project.name}}</td>
+ <td><a class="text-info" ng-click="ctrl.viewProject(project.name)">{{project.name}}</a></td>
<td>{{project.description}}</td>
- <td>
+ <td ng-class="{'hidden': ! ((auth.projectNames.length>0) && auth.isAuthenticated)}">
<span class="podsTable-col">
- <a class="text-warning" ng-click="ctrl.openUpdateModal(project.name)" title="Edit" ng-class="{'hidden': ! ((auth.projectNames.length>0) &&
- auth.isAuthenticated)}" >
+ <a class="text-warning" ng-click="ctrl.openUpdateModal(project.name)" title="Edit" >
<i class="fa fa-pencil-square-o"></i></a>
- <a class="text-danger" ng-click="ctrl.openDeleteModal(project.name)" title="Delete" ng-class="{'hidden': ! ((auth.projectNames.length>0) &&
- auth.isAuthenticated)}">
+ <a class="text-danger" ng-click="ctrl.openDeleteModal(project.name)" title="Delete" >
<i class="fa fa-trash-o"></i></a>
- <a class="text-info" ng-click="ctrl.viewProject(project.name)"><i class="fa fa-eye"></i></a>
</span>
</td>
</tr>
diff --git a/testapi/opnfv_testapi/ui/components/results/result/result.html b/testapi/opnfv_testapi/ui/components/results/result/result.html
new file mode 100644
index 0000000..b435dce
--- /dev/null
+++ b/testapi/opnfv_testapi/ui/components/results/result/result.html
@@ -0,0 +1,115 @@
+<legend>Result</legend>
+<div style="padding-right:0px">
+ <div class="table-responsive">
+ <table class="table" ng-data="ctrl.data.pods">
+ <tbody>
+ <tr style="padding:9px">
+ <td class="podsTableTd">Id&nbsp;:</td>
+ <td class="podsTableLeftTd">{{ctrl.data._id}}</td>
+ </tr>
+ <tr style="padding:9px">
+ <td class="podsTableTd">Pod&nbsp;Name:</td>
+ <td width="90%" class="podsTableLeftTd">{{ctrl.data.pod_name}}</td>
+ </tr>
+ <tr style="padding:9px">
+ <td class="podsTableTd">Project&nbsp;Name:</td>
+ <td width="90%" class="podsTableLeftTd">{{ctrl.data.project_name}}</td>
+ </tr>
+ <tr style="padding:9px">
+ <td class="podsTableTd">Case&nbsp;Name&nbsp;:</td>
+ <td width="90%" class="podsTableLeftTd">{{ctrl.data.case_name}}</td>
+ </tr>
+ <tr style="padding:9px">
+ <td class="podsTableTd">Installer&nbsp;:</td>
+ <td width="90%" class="podsTableLeftTd">{{ctrl.data.installer}}</td>
+ </tr>
+ <tr style="padding:9px">
+ <td class="podsTableTd">Version&nbsp;:</td>
+ <td width="90%" class="podsTableLeftTd">{{ctrl.data.version}}</td>
+ </tr>
+ <tr style="padding:9px">
+ <td class="podsTableTd">Scenario&nbsp;:</td>
+ <td width="90%" class="podsTableLeftTd">{{ctrl.data.scenario}}</td>
+ </tr>
+ <tr style="padding:9px">
+ <td class="podsTableTd">Build&nbsp;tag&nbsp;:</td>
+ <td width="90%" class="podsTableLeftTd">{{ctrl.data['build_tag']}}</td>
+ </tr>
+ <tr style="padding:9px">
+ <td class="podsTableTd">Criteria&nbsp;:</td>
+ <td width="90%" class="podsTableLeftTd">{{ctrl.data.criteria}}</td>
+ </tr>
+ <tr style="padding:9px">
+ <td class="podsTableTd">Start&nbsp;Date:</td>
+ <td width="90%" class="podsTableLeftTd">{{ctrl.data.start_date}}</td>
+ </tr>
+ <tr style="padding:9px">
+ <td class="podsTableTd">Stop&nbsp;Date&nbsp;:</td>
+ <td width="90%" class="podsTableLeftTd">{{ctrl.data.stop_date}}</td>
+ </tr>
+ <tr style="padding:9px">
+ <td class="podsTableTd">Trust&nbsp;Indicator&nbsp;:</td>
+ <td width="90%" class="podsTableLeftTd">
+ <a ng-click="ctrl.showTrustIndicator()">
+ <p ng-if="ctrl.trust_indicator">Hide</p>
+ <p ng-if="!ctrl.trust_indicator">Show</p>
+ </a>
+ <table class="table" ng-class="{'hidden' : !ctrl.trust_indicator}" style="margin:10px">
+ <tbody>
+ <tr style="padding:9px"></tr>
+ <tr style="padding:9px" >
+ <td class="podsTableTd">Current&nbsp;:</td>
+ <td width="90%" class="podsTableLeftTd">{{ctrl.data.trust_indicator.current}}</td>
+ </tr>
+ <tr style="padding:9px" >
+ <td class="podsTableTd">Histories&nbsp;:</td>
+ <td width="90%" class="podsTableLeftTd">{{ctrl.data.trust_indicator.histories}}</td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
+ <tr style="padding:9px">
+ <td class="podsTableTd">Details&nbsp;:</td>
+ <td width="90%" class="podsTableLeftTd">
+ <a ng-click="ctrl.showDetails()">
+ <p ng-if="ctrl.details">Hide</p>
+ <p ng-if="!ctrl.details">Show</p>
+ </a>
+ <table class="table" ng-class="{'hidden' : !ctrl.details}" style="margin:10px">
+ <tbody>
+ <tr style="padding:9px"></tr>
+ <tr style="padding:9px">
+ <td class="podsTableTd">Failures&nbsp;:</td>
+ <td width="90%" class="podsTableLeftTd">{{ctrl.data.details.failures}}</td>
+ </tr>
+ <tr style="padding:9px">
+ <td class="podsTableTd">Details&nbsp;:</td>
+ <td width="90%" class="podsTableLeftTd">{{ctrl.data.details.errors}}</td>
+ </tr>
+ <tr style="padding:9px">
+ <td class="podsTableTd">Stream&nbsp;:</td>
+ <td width="90%" class="podsTableLeftTd"><p>{{ctrl.data.details.stream}}</p></td>
+ </tr>
+ <tr style="padding:9px">
+ <td class="podsTableTd">TestsRun&nbsp;:</td>
+ <td width="90%" class="podsTableLeftTd"><p>{{ctrl.data.details.testsRun}}</p></td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+</div>
+<div class="col-md-12">
+ <div ng-show="ctrl.showError" class="col-md-12 alert alert-danger" role="alert">
+ <span class="pull-right">&nbsp;{{ctrl.error}}</span>
+ <span class="glyphicon glyphicon-exclamation-sign pull-right" aria-hidden="true" >Error:</span>
+ </div>
+ <div ng-show="ctrl.showSuccess" class="col-md-12 alert alert-success" role="alert">
+ <span class="pull-right">&nbsp;{{ctrl.success}}</span>
+ <span class="glyphicon glyphicon-ok pull-right" aria-hidden="true"></span>
+ </div>
+ </div> \ No newline at end of file
diff --git a/testapi/opnfv_testapi/ui/components/results/result/resultController.js b/testapi/opnfv_testapi/ui/components/results/result/resultController.js
new file mode 100644
index 0000000..028e5d8
--- /dev/null
+++ b/testapi/opnfv_testapi/ui/components/results/result/resultController.js
@@ -0,0 +1,74 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+(function () {
+ 'use strict';
+
+ angular
+ .module('testapiApp')
+ .controller('ResultController', ResultController);
+
+ ResultController.$inject = [
+ '$scope', '$http', '$filter', '$state', '$window', '$uibModal', 'testapiApiUrl','raiseAlert',
+ 'confirmModal'
+ ];
+
+ /**
+ * TestAPI ResultController
+ * This controller is for the '/result/:_id' page where a user can browse
+ * through result declared in TestAPI.
+ */
+ function ResultController($scope, $http, $filter, $state, $window, $uibModal, testapiApiUrl,
+ raiseAlert, confirmModal) {
+ var ctrl = this;
+ ctrl.url = testapiApiUrl + '/results';
+ ctrl._id = $state.params['_id'];
+ ctrl.loadDetails = loadDetails
+ ctrl.showTrustIndicator = showTrustIndicator
+ ctrl.showDetails = showDetails
+
+ /**
+ *Contact the testapi and retrevie the result details
+ */
+ function loadDetails(){
+ var resultUrl = ctrl.url + '/' + ctrl._id;
+ ctrl.showError = false;
+ ctrl.podsRequest =
+ $http.get(resultUrl).success(function (data) {
+ ctrl.data = data;
+ }).catch(function (error) {
+ ctrl.data = null;
+ ctrl.showError = true;
+ ctrl.error = error.statusText;
+ });
+ }
+
+ function showTrustIndicator(){
+ if(ctrl.trust_indicator){
+ ctrl.trust_indicator = false
+ }else{
+ ctrl.trust_indicator = true
+ }
+ }
+
+ function showDetails(){
+ if(ctrl.details){
+ ctrl.details = false
+ }else{
+ ctrl.details = true
+ }
+ }
+ ctrl.loadDetails();
+ }
+})(); \ No newline at end of file
diff --git a/testapi/opnfv_testapi/ui/components/results/results.html b/testapi/opnfv_testapi/ui/components/results/results.html
index 0e7b8d5..7809065 100644
--- a/testapi/opnfv_testapi/ui/components/results/results.html
+++ b/testapi/opnfv_testapi/ui/components/results/results.html
@@ -110,7 +110,7 @@
<tbody>
<tr ng-repeat-start="(index, result) in ctrl.data.results">
- <td>{{ result._id }}</td>
+ <td><a ng-click="ctrl.viewResult(result._id)">{{ result._id }}</a></td>
<td>{{ result.pod_name }}</td>
<td>{{ result.project_name }}</td>
<td>{{ result.case_name }}</td>
diff --git a/testapi/opnfv_testapi/ui/components/results/resultsController.js b/testapi/opnfv_testapi/ui/components/results/resultsController.js
index e9b4443..55bf0ba 100644
--- a/testapi/opnfv_testapi/ui/components/results/resultsController.js
+++ b/testapi/opnfv_testapi/ui/components/results/resultsController.js
@@ -62,6 +62,7 @@
ctrl.deleteTag = deleteTag;
ctrl.filterList= filterList;
ctrl.testFilter = testFilter
+ ctrl.viewResult = viewResult;
ctrl.tagArray = {}
@@ -127,6 +128,10 @@
ctrl.filterList();
}
+ function viewResult(_id){
+ $state.go('result', {'_id':_id}, {reload: true});
+ }
+
function deleteTag(index){
delete ctrl.tagArray[index];
ctrl.filterList();
diff --git a/testapi/opnfv_testapi/ui/index.html b/testapi/opnfv_testapi/ui/index.html
index 98f1ed8..5e69e87 100644
--- a/testapi/opnfv_testapi/ui/index.html
+++ b/testapi/opnfv_testapi/ui/index.html
@@ -48,6 +48,7 @@
<script src="testapi-ui/components/projects/projectsController.js"></script>
<script src="testapi-ui/components/projects/project/projectController.js"></script>
<script src="testapi-ui/components/results/resultsController.js"></script>
+ <script src="testapi-ui/components/results/result/resultController.js"></script>
<script src="testapi-ui/components/profile/profileController.js"></script>
<script src="testapi-ui/components/auth-failure/authFailureController.js"></script>
<script src="testapi-ui/components/logout/logoutController.js"></script>