diff options
Diffstat (limited to 'reporting/pages')
-rw-r--r-- | reporting/pages/app/index.html | 1 | ||||
-rw-r--r-- | reporting/pages/app/scripts/config.router.js | 21 | ||||
-rw-r--r-- | reporting/pages/app/scripts/controllers/gating.controller.js | 119 | ||||
-rw-r--r-- | reporting/pages/app/scripts/factory/table.factory.js | 12 | ||||
-rw-r--r-- | reporting/pages/app/views/gating.html | 68 |
5 files changed, 215 insertions, 6 deletions
diff --git a/reporting/pages/app/index.html b/reporting/pages/app/index.html index 843a623..6ef1d02 100644 --- a/reporting/pages/app/index.html +++ b/reporting/pages/app/index.html @@ -87,6 +87,7 @@ <script src="scripts/controllers/auth.controller.js"></script> <script src="scripts/controllers/admin.controller.js"></script> <script src="scripts/controllers/main.controller.js"></script> + <script src="scripts/controllers/gating.controller.js"></script> <script src="scripts/controllers/testvisual.controller.js"></script> <!-- endbuild --> diff --git a/reporting/pages/app/scripts/config.router.js b/reporting/pages/app/scripts/config.router.js index d3724b7..45a6997 100644 --- a/reporting/pages/app/scripts/config.router.js +++ b/reporting/pages/app/scripts/config.router.js @@ -17,11 +17,11 @@ angular.module('opnfvApp') ]).config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) { - $urlRouterProvider.otherwise('/landingpage/table'); + $urlRouterProvider.otherwise('/home/gating'); $stateProvider - .state('landingpage', { - url: "/landingpage", + .state('home', { + url: "/home", controller: 'MainController', templateUrl: "views/main.html", data: { pageTitle: '首页', specialClass: 'landing-page' }, @@ -33,7 +33,7 @@ angular.module('opnfvApp') }] } }) - .state('landingpage.table', { + .state('home.table', { url: "/table", controller: 'TableController', templateUrl: "views/commons/table.html", @@ -47,6 +47,19 @@ angular.module('opnfvApp') }] } }) + .state('home.gating', { + url: "/gating", + controller: 'GatingController', + templateUrl: "views/gating.html", + data: { pageTitle: 'OPNFV Release Gating Page', specialClass: 'landing-page' }, + resolve: { + controller: ['$ocLazyLoad', function($ocLazyLoad) { + return $ocLazyLoad.load([ + + ]) + }] + } + }) .state('select', { url: '/select', templateUrl: "views/testcase.html", diff --git a/reporting/pages/app/scripts/controllers/gating.controller.js b/reporting/pages/app/scripts/controllers/gating.controller.js new file mode 100644 index 0000000..329f8e0 --- /dev/null +++ b/reporting/pages/app/scripts/controllers/gating.controller.js @@ -0,0 +1,119 @@ +'use strict'; + +angular.module('opnfvApp') + .controller('GatingController', ['$scope', '$state', '$stateParams', 'TableFactory', function($scope, $state, $stateParams, TableFactory) { + + init(); + + function init() { + $scope.goTest = goTest; + $scope.goLogin = goLogin; + + $scope.scenarios = {}; + + $scope.scenarioList = _toSelectList(['all']); + $scope.versionList = _toSelectList(['master', 'euphrates', 'fraser']); + $scope.installerList = _toSelectList(['all', 'apex', 'compass', 'daisy', 'fuel', 'joid']); + $scope.iterationList = _toSelectList([10, 20, 30]); + + $scope.selectScenario = 'all'; + $scope.selectVersion = 'master'; + $scope.selectInstaller = 'all'; + $scope.selectIteration = 10; + + $scope.ScenarioConfig = { + create: true, + valueField: 'title', + labelField: 'title', + delimiter: '|', + maxItems: 1, + placeholder: 'Scenario', + onChange: function(value) { + $scope.selectScenario = value; + } + } + + $scope.VersionConfig = { + create: true, + valueField: 'title', + labelField: 'title', + delimiter: '|', + maxItems: 1, + placeholder: 'Version', + onChange: function(value) { + $scope.selectVersion = value; + getScenarioResult(); + } + } + + $scope.InstallerConfig = { + create: true, + valueField: 'title', + labelField: 'title', + delimiter: '|', + maxItems: 1, + placeholder: 'Installer', + onChange: function(value) { + $scope.selectInstaller = value; + getScenarioResult(); + } + } + + $scope.IterationConfig = { + create: true, + valueField: 'title', + labelField: 'title', + delimiter: '|', + maxItems: 1, + placeholder: 'Iteration', + onChange: function(value) { + $scope.selectIteration = value; + getScenarioResult(); + } + } + getScenarioResult(); + } + + function getScenarioResult(){ + _getScenarioResult($scope.selectVersion, $scope.selectInstaller, $scope.selectIteration); + } + + function _getScenarioResult(version, installer, iteration){ + var data = { + 'version': version, + 'iteration': iteration + } + + if(installer != 'all'){ + data['installer'] = installer; + } + + TableFactory.getScenarioResult().get(data).$promise.then(function(resp){ + $scope.scenarios = resp; + _concat($scope.scenarioList, _toSelectList(Object.keys(resp))); + }, function(err){ + }); + } + + function _concat(aList, bList){ + angular.forEach(bList, function(ele){ + aList.push(ele); + }); + } + + function _toSelectList(arr){ + var tempList = []; + angular.forEach(arr, function(ele){ + tempList.push({'title': ele}); + }); + return tempList; + } + + function goTest() { + $state.go("select.selectTestCase"); + } + + function goLogin() { + $state.go("login"); + } + }]); diff --git a/reporting/pages/app/scripts/factory/table.factory.js b/reporting/pages/app/scripts/factory/table.factory.js index e715c5c..a2c5c76 100644 --- a/reporting/pages/app/scripts/factory/table.factory.js +++ b/reporting/pages/app/scripts/factory/table.factory.js @@ -6,7 +6,7 @@ angular.module('opnfvApp') .factory('TableFactory', function($resource, $rootScope, $http) { - var BASE_URL = 'http://testresults.opnfv.org/reporting2'; + var BASE_URL = ' http://testresults.opnfv.org/testing'; $.ajax({ url: 'config.json', async: false, @@ -15,11 +15,19 @@ angular.module('opnfvApp') BASE_URL = response.url; }, error: function (response){ - alert('fail to get api url, using default: http://testresults.opnfv.org/reporting2') + alert('fail to get api url, using default: http://testresults.opnfv.org/testing') } }); return { + getScenarioResult: function() { + return $resource(BASE_URL + '/scenarios/results', {'scenario': '@scenario', 'version': '@version', 'installer': '@installer', 'iteration': '@iteration'}, { + 'get': { + method: 'GET', + + } + }); + }, getFilter: function() { return $resource(BASE_URL + '/landing-page/filters', {}, { 'get': { diff --git a/reporting/pages/app/views/gating.html b/reporting/pages/app/views/gating.html new file mode 100644 index 0000000..0215c87 --- /dev/null +++ b/reporting/pages/app/views/gating.html @@ -0,0 +1,68 @@ +<section class="container-tablesize"> + <div class="row border-bottom white-bg dashboard-header"> + <div class="row"> + + <div class="ibox float-e-margins"> + <div class="ibox-title"> + <h5>OPNFV Release Gating Reporting </h5> + </div> + + <div class="ibox-content row"> + <div class="col-md-2" style="margin-top:5px;margin-right: 5px;"> + <selectize options="scenarioList" ng-model="selectScenario" config="ScenarioConfig"></selectize> + </div> + <div class="col-md-2" style="margin-top:5px;margin-right: 5px;"> + <selectize options="versionList" ng-model="selectVersion" config="VersionConfig"></selectize> + </div> + + <div class="col-md-2" style="margin-top:5px;margin-right: 5px;"> + <selectize options="installerList" ng-model="selectInstaller" config="InstallerConfig"></selectize> + + </div> + + <div class="col-md-2" style="margin-top:5px;margin-right: 5px;"> + <selectize options="iterationList" ng-model="selectIteration" config="IterationConfig"></selectize> + </div> + </div> + + <div class="table-responsive"> + <table class="table table-bordered" id="table"> + <thead class="thead"> + <tr> + <th>Scenario</th> + <th>Date</th> + <th>ID</th> + <th>Version</th> + <th>Installer</th> + <th>Deployment</th> + <th>Functest</th> + <th>Yardstick</th> + </tr> + </thead> + <tbody class="tbody" ng-show="selectScenario == 'all' || scenario == selectScenario" ng-repeat="(scenario,value) in scenarios"> + <tr ng-repeat="record in value"> + <td ng-if="$index == 0">{{ scenario }}</td> + <td ng-if="$index != 0"></td> + <td>{{ record.date }}</td> + <td>{{ record.id }}</td> + <td>{{ record.version }}</td> + <td>{{ record.installer }}</td> + <td>{{ record.projects.deployment.gating }}</td> + <td>{{ record.projects.functest.gating }}</td> + <td>{{ record.projects.yardstick.gating }}</td> + </tr> + </tbody> + </table> + + </div> + + </div> + </div> + </div> + +</section> +<style> +.selectize-input { + width: 200px !important; +} +</style> |