diff options
Diffstat (limited to 'testapi/opnfv_testapi/ui/components/scenarios/scenario')
-rw-r--r-- | testapi/opnfv_testapi/ui/components/scenarios/scenario/scenario.html | 458 | ||||
-rw-r--r-- | testapi/opnfv_testapi/ui/components/scenarios/scenario/scenarioController.js | 429 |
2 files changed, 384 insertions, 503 deletions
diff --git a/testapi/opnfv_testapi/ui/components/scenarios/scenario/scenario.html b/testapi/opnfv_testapi/ui/components/scenarios/scenario/scenario.html index d96986e..d6d4257 100644 --- a/testapi/opnfv_testapi/ui/components/scenarios/scenario/scenario.html +++ b/testapi/opnfv_testapi/ui/components/scenarios/scenario/scenario.html @@ -1,234 +1,234 @@ <legend>Scenario</legend> -<div style="padding-right:0px"> - <div class="table-responsive"> - <table class="table" ng-data="ctrl.data"> - <tbody> - <tr style="padding:9px"> - <td class="podsTableTd">Id :</td> - <td class="podsTableLeftTd">{{ctrl.data.scenarios[0]._id}}</td> - </tr> - <tr style="padding:9px"> - <td class="podsTableTd">Name :</td> - <td width="90%" class="podsTableLeftTd">{{ctrl.data.scenarios[0].name}}</td> - </tr> - <tr style="padding:9px"> - <td class="podsTableTd">Created at :</td> - <td width="90%" class="podsTableLeftTd">{{ctrl.data.scenarios[0].creation_date}}</td> - </tr> - <tr style="padding:9px"> - <td class="podsTableTd">Installers</td> - <td width="90%" class="podsTableLeftTd"> - <div class="col-md-1" style="padding:0px"> - <a ng-click="ctrl.expandInstallers()"> - <p ng-if="ctrl.collapeInstallers">Hide</p> - <p ng-if="!ctrl.collapeInstallers">Show</p> - </a> - </div> - <div class="col-md-1" style="padding:0px"> - <button type="button" class="btn btn-success btn-xs" ng-click="ctrl.openAddInstaller()" ><i class="fa fa-plus"></i>Add</button> - </div> - <div ng-class="{ 'hidden' : ! ctrl.collapeInstallers } "> - <div class="table-responsive"> - <table class="table " ng-data="ctrl.data.scenarios[0].installers"> - <tbody ng-repeat="(index, installer) in ctrl.data.scenarios[0].installers"> - <tr style="padding:9px"> - <td class="podsTableTd"> - {{index+1}}. Installer: - </td> - <td class="podsTableLeftTd" style="width:10%;padding-top: 7px;"> - <a ng-click="ctrl.expandInstaller(index)">{{installer.installer}}</a> - </td> - <td style="width:80%;border: none; padding: 0px;"> - <button type="button" class="btn btn-danger btn-xs" ng-click="ctrl.openDeleteInstallerModal(installer.installer)" ><i class="fa fa-minus"></i>Delete</button> - </td> - </tr> - <tr ng-class="{ 'hidden' : ! ctrl.collapeInstaller[index] }"> - <td class="podsTableTd"> - Versions: - </td> - <td width="90%" class="podsTableLeftTd"> - <div class="col-md-1" style="padding:0px"> - <a ng-click="ctrl.expandVersions(index)"> - <p ng-if="ctrl.collapeVersions[index]">Hide</p> - <p ng-if="!ctrl.collapeVersions[index]">Show</p> - </a> +<div style="padding-right:0px" class="col-md-12"> + <div class="table-responsive"> + <table class="table" ng-data="ctrl.data"> + <tbody> + <tr style="padding:9px"> + <td class="podsTableTd">Id :</td> + <td class="podsTableLeftTd">{{ctrl.data.scenarios[0]._id}}</td> + </tr> + <tr style="padding:9px"> + <td class="podsTableTd">Name :</td> + <td width="90%" class="podsTableLeftTd">{{ctrl.data.scenarios[0].name}}</td> + </tr> + <tr style="padding:9px"> + <td class="podsTableTd">Creator :</td> + <td width="90%" class="podsTableLeftTd">{{ctrl.data.scenarios[0].creator}}</td> + </tr> + <tr style="padding:9px"> + <td class="podsTableTd">Created at :</td> + <td width="90%" class="podsTableLeftTd">{{ctrl.data.scenarios[0].creation_date}}</td> + </tr> + <tr style="padding:9px"> + <td class="podsTableTd">Installers</td> + <td width="90%" class="podsTableLeftTd"> + <div class="col-md-1" style="padding:0px"> + <a ng-click="ctrl.expandInstallers()"> + <p ng-if="ctrl.collapeInstallers">Hide</p> + <p ng-if="!ctrl.collapeInstallers">Show</p> + </a> + </div> + <div class="col-md-1" style="padding:0px" ng-class="{'hidden' : !ctrl.buttonInstaller || (!auth.isAuthenticated && authenticate)}"> + <button type="button" class="btn btn-success btn-xs" ng-click="ctrl.openAddInstaller()" ><i class="fa fa-plus"></i>Add</button> + </div> + <div ng-class="{ 'hidden' : ! ctrl.collapeInstallers } "> + <div class="table-responsive"> + <table class="table " ng-data="ctrl.data.scenarios[0].installers"> + <tbody ng-repeat="(indexI, installer) in ctrl.data.scenarios[0].installers"> + <tr style="padding:9px"> + <td class="podsTableTd"> + {{indexI+1}}. Installer: + </td> + <td class="podsTableLeftTd" style="width:10%;padding-top: 7px;"> + <a ng-click="ctrl.expandInstaller(indexI)">{{installer.installer}}</a> + </td> + <td style="width:80%;border: none; padding: 0px;" ng-class="{'hidden' : !ctrl.buttonInstaller}"> + <button type="button" ng-class="{'hidden' : !auth.isAuthenticated && authenticate}" class="btn btn-danger btn-xs" ng-click="ctrl.openDeleteInstallerModal(installer.installer)" ><i class="fa fa-minus"></i>Delete</button> + </td> + </tr> + <tr ng-class="{ 'hidden' : ! ctrl.collapeInstaller[indexI] }"> + <td class="podsTableTd"> + Versions: + </td> + <td width="90%" class="podsTableLeftTd"> + <div class="col-md-1" style="padding:0px"> + <a ng-click="ctrl.expandVersions(indexI)"> + <p ng-if="ctrl.collapeVersions[indexI]">Hide</p> + <p ng-if="!ctrl.collapeVersions[indexI]">Show</p> + </a> + </div> + <div class="col-md-1" style="padding:0px" ng-class="{'hidden' : !ctrl.buttonVersion}"> + <button type="button" class="btn btn-success btn-xs" ng-class="{'hidden' : !auth.isAuthenticated && authenticate}" ng-click="ctrl.openAddVersionModal(installer.installer)" ><i class="fa fa-plus"></i>Add</button> + </div> + <div ng-class="{ 'hidden' : ! ctrl.collapeVersions[indexI] } " class="col-md-12"> + <div class="table-responsive"> + <table class="table " ng-data="inctrl.data.scenarios[0].installers"> + <tbody ng-repeat="(indexV, version) in installer.versions"> + <tr style="padding:9px"> + <td class="podsTableTd"> + {{indexV+1}}. Version: + </td> + <td class="podsTableLeftTd" style="width:10%;padding-top: 7px;"> + <a ng-click="ctrl.expandVersion(indexI,indexV)">{{version.version}}</a> + </td> + <td style="width:80%;border: none; padding: 0px;" ng-class="{'hidden' : !ctrl.buttonVersion}"> + <button type="button" class="btn btn-danger btn-xs" ng-class="{'hidden' : !auth.isAuthenticated && authenticate}" ng-click="ctrl.openDeleteVersionModal(version.version, installer.installer)" ><i class="fa fa-minus"></i>Delete</button> + </td> + </tr> + <tr style="padding:9px" ng-class="{ 'hidden' : ! ctrl.collapeVersion[indexI][indexV] } "> + <td class="podsTableTd"> + Owner: + </td> + <td class="podsTableLeftTd" style="width:90%">{{version.owner}}</td> + </tr> + <tr style="padding:9px" ng-class="{ 'hidden' : ! ctrl.collapeVersion[indexI][indexV] }"> + <td class="podsTableTd"> + Projects: + </td> + <td width="90%" class="podsTableLeftTd"> + <div class="col-md-1" style="padding:0px"> + <a ng-click="ctrl.expandProjects(indexI,indexV)"> + <p style="width:50%" ng-if="ctrl.collapeProjects[indexI][indexV]">Hide</p> + <p style="width:50%" ng-if="!ctrl.collapeProjects[indexI][indexV]">Show</p> + </a> + </div> + <div class="col-md-1" style="padding:0px" ng-class="{'hidden' : !ctrl.buttonProject }"> + <button type="button" ng-class="{'hidden' : !auth.isAuthenticated && authenticate}" class="btn btn-success btn-xs" ng-click="ctrl.openAddProjectModal(version.version,installer.installer)" ><i class="fa fa-plus"></i>Add</button> + </div> + <div ng-class="{ 'hidden' : ! ctrl.collapeProjects[indexI][indexV] } " class="col-md-12"> + <div class="table-responsive"> + <table class="table " ng-data="version.projects"> + <tbody ng-repeat="(indexP, project) in version.projects" > + <tr style="padding:9px"> + <td class="podsTableTd"> + {{indexP+1}}. Project: + </td> + <td class="podsTableLeftTd" style="width:10%;padding-top: 7px;"> + <a ng-click="ctrl.expandProject(indexI, indexV, indexP)">{{project.project}}</a> + </td> + <td style="width:80%;border: none; padding: 0px;" ng-class="{'hidden' : !ctrl.buttonProject}"> + <button type="button" class="btn btn-danger btn-xs" ng-class="{'hidden' : !auth.isAuthenticated && authenticate}" ng-click="ctrl.openDeleteProjectModal(project,version.version, installer.installer)" ><i class="fa fa-minus"></i>Delete</button> + </td> + </tr> + <tr ng-class="{ 'hidden' : ! ctrl.collapeProject[indexI][indexV][indexP] }"> + <td class="podsTableTd"> + Trust Indicators: + </td> + <td class="podsTableLeftTd" style="width:90%"> + <a ng-click="ctrl.expandTrustIndicator(indexI, indexV, indexP)"> + <p ng-if="ctrl.collapeTrustIndicator[indexI][indexV][indexP]">Hide</p> + <p ng-if="!ctrl.collapeTrustIndicator[indexI][indexV][indexP]">Show</p> + </a> + <table class="table " ng-class="{ 'hidden' : ! ctrl.collapeTrustIndicator[indexI][indexV][indexP] } " ng-data="project.trust_indicators"> + <tbody ng-repeat="(indexTI, trust_indicator) in project.trust_indicators" > + <tr style="padding:9px"> + <td class="podsTableTd"> + Status: + </td> + <td width="90%" class="podsTableLeftTd"> + {{trust_indicator.status}} + </td> + </tr> + <tr style="padding:9px"> + <td class="podsTableTd"> + Date: + </td> + <td width="90%" class="podsTableLeftTd"> + {{trust_indicator.date}} + </td> + </tr> + </tbody> + </table> + </td> + </tr> + <tr ng-class="{ 'hidden' : ! ctrl.collapeProject[indexI][indexV][indexP] }"> + <td class="podsTableTd"> + Scores: + </td> + <td class="podsTableLeftTd" style="width:90%"> + <a ng-click="ctrl.expandScore(indexI, indexV, indexP)"> + <p ng-if="ctrl.collapeScore[indexI][indexV][indexP]">Hide</p> + <p ng-if="!ctrl.collapeScore[indexI][indexV][indexP]">Show</p> + </a> + <table class="table" ng-class="{ 'hidden' : ! ctrl.collapeScore[indexI][indexV][indexP] } " ng-data="project.scores"> + <tbody ng-repeat="(indexSC, score) in project.scores" > + <tr style="padding:9px"> + <td class="podsTableTd"> + Score: + </td> + <td width="90%" class="podsTableLeftTd"> + {{score.score}} + </td> + </tr> + <tr style="padding:9px"> + <td class="podsTableTd"> + Date: + </td> + <td width="90%" class="podsTableLeftTd"> + {{score.date}} + </td> + </tr> + </tbody> + </table> + </td> + </tr> + <tr ng-class="{ 'hidden' : ! ctrl.collapeProject[indexI][indexV][indexP] }"> + <td class="podsTableTd"> + Customs: + </td> + <td class="podsTableLeftTd" style="width:90%"> + <a ng-click="ctrl.expandCustom(indexI, indexV, indexP)"> + <p ng-if="ctrl.collapeCustom[indexI][indexV][indexP]">Hide</p> + <p ng-if="!ctrl.collapeCustom[indexI][indexV][indexP]">Show</p> + </a> + <table class="table" ng-class="{ 'hidden' : ! ctrl.collapeCustom[indexI][indexV][indexP] } " ng-data="project.customs"> + <tbody> + <tr ng-repeat-start="(indexCU, custom) in project.customs" style="padding:9px"> + <td class="podsTableTd" style="float: none!important;"> + {{custom}} + </td> + <td width="90%" class="podsTableLeftTd"> + <button type="button" class="btn btn-danger btn-xs" ng-click="ctrl.openDeleteCustomModal(custom,project.project,version.version,installer.installer)" ng-class="{'hidden' : !auth.isAuthenticated && authenticate}" ><i class="fa fa-minus"></i>Delete</button> + </td> + </tr> + <tr ng-repeat-end=> + </tr> + <tr> + <button type="button" class="btn btn-success btn-xs" ng-click="ctrl.openAddCustomModal(project.project,version.version,installer.installer)" ng-class="{ 'hidden' : !ctrl.collapeCustom[indexI][indexV][indexP] || (!auth.isAuthenticated && authenticate)}"><i class="fa fa-plus"></i>Add</button> + </tr> + </tbody> + </table> + </td> + </tr> + <tr ng-repeat-end=> + </tr> + </tbody> + </table> + </div> + </div> + </td> + </tr> + </tbody> + </table> </div> - <div class="col-md-1" style="padding:0px"> - <button type="button" class="btn btn-success btn-xs" ng-click="ctrl.openAddVersionModal(installer.installer)" ><i class="fa fa-plus"></i>Add</button> - </div> - <div ng-class="{ 'hidden' : ! ctrl.collapeVersions[index] } " class="col-md-12"> - <div class="table-responsive"> - <table class="table " ng-data="inctrl.data.scenarios[0].installers"> - <tbody ng-repeat="(index, version) in installer.versions"> - <tr style="padding:9px"> - <td class="podsTableTd"> - {{index+1}}. Version: - </td> - <td class="podsTableLeftTd" style="width:10%;padding-top: 7px;"> - <a ng-click="ctrl.expandVersion(index)">{{version.version}}</a> - </td> - <td style="width:80%;border: none; padding: 0px;"> - <button type="button" class="btn btn-danger btn-xs" ng-click="ctrl.openDeleteVersionModal(version.version, installer.installer)" ><i class="fa fa-minus"></i>Delete</button> - </td> - </tr> - <tr style="padding:9px" ng-class="{ 'hidden' : ! ctrl.collapeVersion[index] } "> - <td class="podsTableTd"> - Owner: - </td> - <td class="podsTableLeftTd" style="width:90%">{{version.owner}}</td> - </tr> - <tr style="padding:9px" ng-class="{ 'hidden' : ! ctrl.collapeVersion[index] }"> - <td class="podsTableTd"> - Projects: - </td> - <td width="90%" class="podsTableLeftTd"> - <div class="col-md-1" style="padding:0px"> - <a ng-click="ctrl.expandProjects(index)"> - <p style="width:50%" ng-if="ctrl.collapeProjects[index]">Hide</p> - <p style="width:50%" ng-if="!ctrl.collapeProjects[index]">Show</p> - </a> - </div> - <div class="col-md-1" style="padding:0px"> - <button type="button" class="btn btn-success btn-xs" ng-click="ctrl.openAddProjectModal(version.version,installer.installer)" ><i class="fa fa-plus"></i>Add</button> - </div> - <div ng-class="{ 'hidden' : ! ctrl.collapeProjects[index] } " class="col-md-12"> - <div class="table-responsive"> - <table class="table " ng-data="version.projects"> - <tbody ng-repeat="(index, project) in version.projects" > - <tr style="padding:9px"> - <td class="podsTableTd"> - {{index+1}}. Project: - </td> - <td class="podsTableLeftTd" style="width:90%"> - <a ng-click="ctrl.expandProject(index)">{{project.project}}</a> - </td> - </tr> - <tr ng-class="{ 'hidden' : ! ctrl.collapeProject[index] }"> - <td class="podsTableTd"> - Trust Indicators: - </td> - <td class="podsTableLeftTd" style="width:90%"> - <a ng-click="ctrl.expandTrustIndicator(index)"> - <p ng-if="ctrl.collapeTrustIndicator[index]">Hide</p> - <p ng-if="!ctrl.collapeTrustIndicator[index]">Show</p> - </a> - <table class="table " ng-class="{ 'hidden' : ! ctrl.collapeTrustIndicator[index] } " ng-data="project.trust_indicators"> - <tbody ng-repeat="(index, trust_indicator) in project.trust_indicators" > - <tr style="padding:9px"> - <td class="podsTableTd"> - Status: - </td> - <td width="90%" class="podsTableLeftTd"> - {{trust_indicator.status}} - </td> - </tr> - <tr style="padding:9px"> - <td class="podsTableTd"> - Date: - </td> - <td width="90%" class="podsTableLeftTd"> - {{trust_indicator.date}} - </td> - </tr> - </tbody> - <tr> - <button type="button" class="btn btn-success btn-xs" ng-click="ctrl.openAddTrustIndicatorModal(project.project,version.version,installer.installer)" ng-class="{ 'hidden' : !ctrl.collapeTrustIndicator[index]}"> - <i class="fa fa-plus"></i>Add</button> - </tr> - </table> - </td> - </tr> - <tr ng-class="{ 'hidden' : ! ctrl.collapeProject[index] }"> - <td class="podsTableTd"> - Scores: - </td> - <td class="podsTableLeftTd" style="width:90%"> - <a ng-click="ctrl.expandScore(index)"> - <p ng-if="ctrl.collapeScore[index]">Hide</p> - <p ng-if="!ctrl.collapeScore[index]">Show</p> - </a> - <table class="table" ng-class="{ 'hidden' : ! ctrl.collapeScore[index] } " ng-data="project.scores"> - <tbody ng-repeat="(index, score) in project.scores" > - <tr style="padding:9px"> - <td class="podsTableTd"> - Score: - </td> - <td width="90%" class="podsTableLeftTd"> - {{score.score}} - </td> - </tr> - <tr style="padding:9px"> - <td class="podsTableTd"> - Date: - </td> - <td width="90%" class="podsTableLeftTd"> - {{score.date}} - </td> - </tr> - </tbody> - <tr> - <button type="button" class="btn btn-success btn-xs" ng-click="ctrl.openAddScoreModal(project.project,version.version,installer.installer)" ng-class="{ 'hidden' : !ctrl.collapeScore[index]}"><i class="fa fa-plus"></i>Add</button> - </tr> - </table> - </td> - </tr> - <tr ng-class="{ 'hidden' : ! ctrl.collapeProject[index] }"> - <td class="podsTableTd"> - Customs: - </td> - <td class="podsTableLeftTd" style="width:90%"> - <a ng-click="ctrl.expandCustom(index)"> - <p ng-if="ctrl.collapeCustom[index]">Hide</p> - <p ng-if="!ctrl.collapeCustom[index]">Show</p> - </a> - <table class="table" ng-class="{ 'hidden' : ! ctrl.collapeCustom[index] } " ng-data="project.customs"> - <tbody> - <tr ng-repeat-start="(index, custom) in project.customs" style="padding:9px"> - <td class="podsTableTd" style="float: none!important;"> - {{custom}} - </td> - <td width="90%" class="podsTableLeftTd"> - <button type="button" class="btn btn-danger btn-xs" ng-click="ctrl.openDeleteCustomModal(custom,project.project,version.version,installer.installer)" ><i class="fa fa-minus"></i>Delete</button> - </td> - </tr> - <tr ng-repeat-end=> - </tr> - <tr> - <button type="button" class="btn btn-success btn-xs" ng-click="ctrl.openAddCustomModal(project.project,version.version,installer.installer)" ng-class="{ 'hidden' : !ctrl.collapeCustom[index]}"><i class="fa fa-plus"></i>Add</button> - </tr> - </tbody> - </table> - </td> - </tr> - <!-- </div> --> - <tr ng-repeat-end=> - </tr> - </tbody> - </table> - </div> - </div> - </td> - </tr> - </tbody> - </table> - </div> - </div> - </td> - </tr> - </tbody> - </table> - </div> - </div> - </td> - </tr> - </tbody> - </table> - </div> + </div> + </td> + </tr> + </tbody> + </table> + </div> + </div> + </td> + </tr> + </tbody> + </table> </div> -<div class="row" style="margin-bottom:24px;"></div> -<div ng-show="ctrl.showError" class="alert alert-danger col-md-8" role="alert" style="margin-top:0px"> - <span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> - <span class="sr-only">Error:</span> - {{ctrl.error}} </div> +<div class="row" style="margin-bottom:24px;"></div> +<div ng-class="{'show': ctrl.showError}" id="toast" class="error"> + <span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true" ></span> + {{ctrl.error}}</div> +<div ng-class="{'show': ctrl.showSuccess}" id="toast" class="success"> + <span class="glyphicon glyphicon-ok" aria-hidden="true"></span> + {{ctrl.success}}</div> <div class="row" style="margin-bottom:24px;"></div>
\ No newline at end of file diff --git a/testapi/opnfv_testapi/ui/components/scenarios/scenario/scenarioController.js b/testapi/opnfv_testapi/ui/components/scenarios/scenario/scenarioController.js index eff1930..e17718f 100644 --- a/testapi/opnfv_testapi/ui/components/scenarios/scenario/scenarioController.js +++ b/testapi/opnfv_testapi/ui/components/scenarios/scenario/scenarioController.js @@ -21,7 +21,7 @@ ScenarioController.$inject = [ '$scope', '$http', '$filter', '$state', '$window', '$uibModal', 'testapiApiUrl','raiseAlert', - 'confirmModal' + 'confirmModal', 'authenticate', '$timeout' ]; /** @@ -30,7 +30,7 @@ * through Scenario declared in TestAPI. */ function ScenarioController($scope, $http, $filter, $state, $window, $uibModal, testapiApiUrl, - raiseAlert, confirmModal) { + raiseAlert, confirmModal, authenticate, $timeout) { var ctrl = this; ctrl.name = $state.params['name']; ctrl.url = testapiApiUrl + '/scenarios?name=' + ctrl.name; @@ -45,20 +45,16 @@ ctrl.expandTrustIndicator = expandTrustIndicator; ctrl.expandScore = expandScore; ctrl.expandCustom = expandCustom; - ctrl.collapeVersion = {}; - ctrl.collapeVersions = {}; - ctrl.collapeProjects = {}; - ctrl.collapeProject = {}; - ctrl.collapeTrustIndicator = {}; - ctrl.collapeScore = {}; - ctrl.collapeCustom = {}; - ctrl.collapeInstaller = {}; + ctrl.collapeVersion = []; + ctrl.collapeVersions = []; + ctrl.collapeProjects = []; + ctrl.collapeProject = []; + ctrl.collapeTrustIndicator = []; + ctrl.collapeScore = []; + ctrl.collapeCustom = []; + ctrl.collapeInstaller = []; ctrl.addCustom = addCustom; ctrl.openAddCustomModal = openAddCustomModal; - ctrl.openAddTrustIndicatorModal = openAddTrustIndicatorModal; - ctrl.addTrustindicator = addTrustindicator; - ctrl.addScore = addScore; - ctrl.openAddScoreModal = openAddScoreModal; ctrl.openDeleteCustomModal = openDeleteCustomModal; ctrl.deleteCustom = deleteCustom; ctrl.addProject = addProject @@ -71,7 +67,24 @@ ctrl.addInstaller = addInstaller ctrl.openDeleteInstallerModal = openDeleteInstallerModal ctrl.deleteInstaller = deleteInstaller + ctrl.openDeleteProjectModal = openDeleteProjectModal + ctrl.deleteProject = deleteProject + ctrl.buttonInstaller = true + ctrl.buttonVersion = true + ctrl.buttonProject = true + ctrl.toastError = toastError + ctrl.toastSuccess = toastSuccess + + function toastError() { + ctrl.showError = true + $timeout(function(){ ctrl.showError = false;}, 3000); + } + + function toastSuccess() { + ctrl.showSuccess = true + $timeout(function(){ ctrl.showSuccess = false;}, 3000); + } /** * This will contact the TestAPI to get a listing of declared projects. */ @@ -82,66 +95,102 @@ ctrl.data = data; }).catch(function (error) { ctrl.data = null; - ctrl.showError = true; ctrl.error = error.statusText + ctrl.toastError() }); } - function expandTrustIndicator(index){ - if(ctrl.collapeTrustIndicator[index]){ - ctrl.collapeTrustIndicator[index] = false; + function expandTrustIndicator(indexI, indexV, indexP){ + if(ctrl.collapeTrustIndicator[indexI]==undefined){ + ctrl.collapeTrustIndicator[indexI] = [] + if(ctrl.collapeTrustIndicator[indexI][indexV]==undefined){ + ctrl.collapeTrustIndicator[indexI][indexV] = [] + } + } + if(ctrl.collapeTrustIndicator[indexI][indexV][indexP]){ + ctrl.collapeTrustIndicator[indexI][indexV][indexP] = false; }else{ - ctrl.collapeTrustIndicator[index] = true; + ctrl.collapeTrustIndicator[indexI][indexV][indexP] = true; } } - function expandScore(index){ - if(ctrl.collapeScore[index]){ - ctrl.collapeScore[index] = false; + function expandScore(indexI, indexV, indexP){ + if(ctrl.collapeScore[indexI]==undefined){ + ctrl.collapeScore[indexI] = [] + if(ctrl.collapeScore[indexI][indexV]==undefined){ + ctrl.collapeScore[indexI][indexV] = [] + } + } + if(ctrl.collapeScore[indexI][indexV][indexP]){ + ctrl.collapeScore[indexI][indexV][indexP] = false; }else{ - ctrl.collapeScore[index] = true; + ctrl.collapeScore[indexI][indexV][indexP] = true; } } - function expandCustom(index){ - if(ctrl.collapeCustom[index]){ - ctrl.collapeCustom[index] = false; + function expandCustom(indexI, indexV, indexP){ + if(ctrl.collapeCustom[indexI]==undefined){ + ctrl.collapeCustom[indexI] = [] + if(ctrl.collapeCustom[indexI][indexV]==undefined){ + ctrl.collapeCustom[indexI][indexV] = [] + } + } + if(ctrl.collapeCustom[indexI][indexV][indexP]){ + ctrl.collapeCustom[indexI][indexV][indexP] = false; + ctrl.buttonProject = true }else{ - ctrl.collapeCustom[index] = true; + ctrl.collapeCustom[indexI][indexV][indexP] = true; + ctrl.buttonProject = false } } - function expandVersion(index){ - if(ctrl.collapeVersion[index]){ - ctrl.collapeVersion[index] = false; + function expandVersion(indexI, indexV){ + if(ctrl.collapeVersion[indexI]==undefined){ + ctrl.collapeVersion[indexI] = [] + } + if(ctrl.collapeVersion[indexI][indexV]){ + ctrl.collapeVersion[indexI][indexV] = false; }else{ - ctrl.collapeVersion[index] = true; + ctrl.collapeVersion[indexI][indexV] = true; } } function expandVersions(index){ if(ctrl.collapeVersions[index]){ ctrl.collapeVersions[index] = false; + ctrl.buttonInstaller = true }else{ ctrl.collapeVersions[index] = true; + ctrl.buttonInstaller = false } } - function expandProjects(index){ - if(ctrl.collapeProjects[index]){ - ctrl.collapeProjects[index] = false; + function expandProjects(indexI, indexV){ + if(ctrl.collapeProjects[indexI]==undefined){ + ctrl.collapeProjects[indexI] = [] + } + if(ctrl.collapeProjects[indexI][indexV]){ + ctrl.collapeProjects[indexI][indexV] = false; + ctrl.buttonVersion = true } else{ - ctrl.collapeProjects[index]= true; + ctrl.collapeProjects[indexI][indexV]= true; + ctrl.buttonVersion = false } } - function expandProject(index){ - if(ctrl.collapeProject[index]){ - ctrl.collapeProject[index] = false; + function expandProject(indexI, indexV, indexP){ + if(ctrl.collapeProject[indexI]==undefined){ + ctrl.collapeProject[indexI] = [] + if(ctrl.collapeProject[indexI][indexV]==undefined){ + ctrl.collapeProject[indexI][indexV] = [] + } + } + if(ctrl.collapeProject[indexI][indexV][indexP]){ + ctrl.collapeProject[indexI][indexV][indexP] = false; } else{ - ctrl.collapeProject[index]= true; + ctrl.collapeProject[indexI][indexV][indexP]= true; } } @@ -165,13 +214,13 @@ function deleteInstaller(data){ ctrl.installerReqest = testapiApiUrl+ "/scenarios/"+ ctrl.name + "/installers" $http.delete(ctrl.installerReqest, {data: data.installers, headers: {'Content-Type': 'application/json'}}).success(function (data){ - ctrl.showSuccess = true ; ctrl.success = "Installer is successfully deleted." + ctrl.toastSuccess(); ctrl.loadDetails(); }) .catch(function (data) { - ctrl.showError = true; ctrl.error = data.statusText; + ctrl.toastError() }); } @@ -181,22 +230,24 @@ var data = { "installers": installers } - confirmModal("Delete",ctrl.deleteInstaller,data); + confirmModal("Delete", 'installers', ctrl.deleteInstaller, data); } function addInstaller(installer){ var installers = [] installers.push(installer) - ctrl.installerReqest = testapiApiUrl+ "/scenarios/"+ ctrl.name + "/installers" - $http.post(ctrl.installerReqest, installers).success(function (data){ - ctrl.showSuccess = true ; + ctrl.installerRequestUrl = testapiApiUrl+ "/scenarios/"+ ctrl.name + "/installers" + ctrl.installerRequest = $http.post(ctrl.installerRequestUrl, installers) + ctrl.installerRequest.success(function (data){ ctrl.success = "Installers are successfully updated." ctrl.loadDetails(); + ctrl.toastSuccess(); }) .catch(function (data) { - ctrl.showError = true; ctrl.error = data.statusText; + ctrl.toastError(); }); + return ctrl.installerRequest } function openAddInstaller(){ @@ -216,16 +267,18 @@ } function addVersion(versions, installer){ - ctrl.versionReqest = testapiApiUrl+ "/scenarios/"+ ctrl.name + "/versions?installer="+installer - $http.post(ctrl.versionReqest, versions).success(function (data){ - ctrl.showSuccess = true ; + ctrl.versionRequestUrl = testapiApiUrl+ "/scenarios/"+ ctrl.name + "/versions?installer="+installer + ctrl.versionRequest = $http.post(ctrl.versionRequestUrl, versions) + ctrl.versionRequest.success(function (data){ ctrl.success = "Versions are successfully updated." ctrl.loadDetails(); + ctrl.toastSuccess() }) .catch(function (data) { - ctrl.showError = true; ctrl.error = data.statusText; + ctrl.toastError() }); + return ctrl.versionRequest; } function openDeleteVersionModal(version, installer){ @@ -235,19 +288,19 @@ "version": versions, "installer": installer } - confirmModal("Delete",ctrl.deleteVersion,data); + confirmModal("Delete", "version", ctrl.deleteVersion, data); } function deleteVersion(data){ ctrl.versionReqest = testapiApiUrl+ "/scenarios/"+ ctrl.name + "/versions?installer="+data.installer $http.delete(ctrl.versionReqest, {data: data.version, headers: {'Content-Type': 'application/json'}}).success(function (data){ - ctrl.showSuccess = true ; ctrl.success = "Versions are successfully deleted." ctrl.loadDetails(); + ctrl.toastSuccess(); }) .catch(function (data) { - ctrl.showError = true; ctrl.error = data.statusText; + ctrl.toastError(); }); } @@ -269,16 +322,18 @@ } function addProject(project, version, installer){ - ctrl.projectReqest = testapiApiUrl+ "/scenarios/"+ ctrl.name + "/projects?installer="+installer+"&version="+version - $http.post(ctrl.projectReqest, project).success(function (data){ - ctrl.showSuccess = true ; + ctrl.projectRequestUrl = testapiApiUrl+ "/scenarios/"+ ctrl.name + "/projects?installer="+installer+"&version="+version + ctrl.projectRequest= $http.post(ctrl.projectRequestUrl, project) + ctrl.projectRequest.success(function (data){ ctrl.success = "Projects are successfully updated." ctrl.loadDetails(); + ctrl.toastSuccess(); }) .catch(function (data) { - ctrl.showError = true; ctrl.error = data.statusText; + ctrl.toastError(); }); + return ctrl.projectRequest; } function openAddProjectModal(version, installer){ @@ -300,16 +355,18 @@ } function addCustom(custom,project,version,installer){ - ctrl.customReqest = testapiApiUrl+ "/scenarios/"+ ctrl.name + "/customs?installer="+installer+"&version="+version+"&project="+ project - $http.post(ctrl.customReqest, custom).success(function (data){ - ctrl.showSuccess = true ; + ctrl.customRequestUrl = testapiApiUrl+ "/scenarios/"+ ctrl.name + "/customs?installer="+installer+"&version="+version+"&project="+ project + ctrl.customRequest = $http.post(ctrl.customRequestUrl, custom) + ctrl.customRequest.success(function (data){ ctrl.success = "Customs are successfully updated." ctrl.loadDetails(); + ctrl.toastSuccess(); }) .catch(function (data) { - ctrl.showError = true; ctrl.error = data.statusText; + ctrl.toastError(); }); + return ctrl.customRequest } function openDeleteCustomModal(custom,project,version,installer){ @@ -321,19 +378,19 @@ "version": version, "installer": installer } - confirmModal("Delete",ctrl.deleteCustom,data); + confirmModal("Delete", 'customs', ctrl.deleteCustom, data); } function deleteCustom(data){ ctrl.customReqest = testapiApiUrl+ "/scenarios/"+ ctrl.name + "/customs?installer="+data.installer+"&version="+data.version+"&project="+ data.project $http.delete(ctrl.customReqest, {data: data.customs, headers: {'Content-Type': 'application/json'}}).success(function (data){ - ctrl.showSuccess = true ; ctrl.success = "Customs are successfully deleted." ctrl.loadDetails(); + ctrl.toastSuccess(); }) .catch(function (data) { - ctrl.showError = true; ctrl.error = data.statusText; + ctrl.toastError(); }); } @@ -356,67 +413,27 @@ }); } - function openAddTrustIndicatorModal(project, version, installer){ - $uibModal.open({ - templateUrl: 'testapi-ui/components/scenarios/modals/trustIndicatorModal.html', - controller: 'trustIndicatorAddModalCtrl as trustIndicatorModalCtrl', - size: 'md', - resolve: { - data: function () { - return { - text: "Add Trust Indicator", - successHandler: ctrl.addTrustindicator, - project: project, - version: version, - installer: installer - }; - } - } - }); - } - - function openAddScoreModal(project, version, installer){ - $uibModal.open({ - templateUrl: 'testapi-ui/components/scenarios/modals/scoreModal.html', - controller: 'scoreAddModalCtrl as scoreModalCtrl', - size: 'md', - resolve: { - data: function () { - return { - text: "Add Score", - successHandler: ctrl.addScore, - project: project, - version: version, - installer: installer - }; - } - } - }); - } - - function addTrustindicator(trust_indicator, project, version, installer){ - ctrl.customReqest = testapiApiUrl+ "/scenarios/"+ ctrl.name + "/trust_indicators?installer="+installer+"&version="+version+"&project="+ project - $http.post(ctrl.customReqest,trust_indicator ).success(function (data){ - ctrl.showSuccess = true ; - ctrl.success = "Trust indicators are successfully updated." - ctrl.loadDetails(); - }) - .catch(function (data) { - ctrl.showError = true; - ctrl.error = data.statusText; - }); + function openDeleteProjectModal(project, version, installer){ + var projects = [] + projects.push(project.project) + var data = { + "projects": projects, + "version": version, + "installer": installer + } + confirmModal("Delete", 'projects', ctrl.deleteProject, data); } - function addScore(score, project, version, installer){ - ctrl.customReqest = testapiApiUrl+ "/scenarios/"+ ctrl.name + "/scores?installer="+installer+"&version="+version+"&project="+ project - $http.post(ctrl.customReqest,score ).success(function (data){ - ctrl.showSuccess = true ; - ctrl.success = "Scores are successfully updated." + function deleteProject(data){ + ctrl.projectReqest = testapiApiUrl+ "/scenarios/"+ ctrl.name + "/projects?installer="+data.installer+"&version="+data.version + $http.delete(ctrl.projectReqest, {data: data.projects, headers: {'Content-Type': 'application/json'}}).success(function (data){ + ctrl.success = "Projects are successfully Deleted."; + ctrl.toastSuccess(); ctrl.loadDetails(); }) .catch(function (data) { - ctrl.showError = true; ctrl.error = data.statusText; + ctrl.toastError(); }); } @@ -436,52 +453,20 @@ ctrl.confirm = confirm; ctrl.cancel = cancel; ctrl.data = angular.copy(data); - ctrl.open = open; - - - /** - * Initiate confirmation and call the success handler with the - * inputs. - */ - function confirm() { - ctrl.customs = [] - ctrl.customs.push(ctrl.custom) - ctrl.data.successHandler(ctrl.customs,ctrl.data.project,ctrl.data.version,ctrl.data.installer); - $uibModalInstance.dismiss('cancel'); - - } - - /** - * Close the confirm modal without initiating changes. - */ - function cancel() { - $uibModalInstance.dismiss('cancel'); - } - } - - /** - * TestAPI Project Modal Controller - * This controller is for the create modal where a user can create - * the project information and for the edit modal where user can - * edit the project's details - */ - angular.module('testapiApp').controller('trustIndicatorAddModalCtrl', trustIndicatorAddModalCtrl); - trustIndicatorAddModalCtrl.$inject = ['$scope', '$uibModalInstance', 'data']; - function trustIndicatorAddModalCtrl($scope, $uibModalInstance, data) { - var ctrl = this; - ctrl.confirm = confirm; - ctrl.cancel = cancel; - ctrl.data = angular.copy(data); - ctrl.open = open; + ctrl.customs = []; - /** - * Initiate confirmation and call the success handler with the - * inputs. - */ function confirm() { - ctrl.data.successHandler(ctrl.ti, ctrl.data.project, ctrl.data.version, ctrl.data.installer); - $uibModalInstance.dismiss('cancel'); + var custom = ctrl.custom; + if(custom!="" && custom!=undefined ){ + ctrl.customs = custom.split(/[ ,]+/).filter(Boolean); + } + console.log(ctrl.customs) + ctrl.data.successHandler( + ctrl.customs, ctrl.data.project, + ctrl.data.version,ctrl.data.installer).success(function(){ + $uibModalInstance.dismiss('cancel'); + }); } @@ -491,75 +476,10 @@ function cancel() { $uibModalInstance.dismiss('cancel'); } - - function handleModalData(){ - - } - - /** - * This is called when the date filter calendar is opened. It - * does some event handling, and sets a scope variable so the UI - * knows which calendar was opened. - * @param {Object} $event - The Event object - * @param {String} openVar - Tells which calendar was opened - */ - function open($event, openVar) { - $event.preventDefault(); - $event.stopPropagation(); - ctrl[openVar] = true; - } } - /** - * TestAPI Project Modal Controller - * This controller is for the create modal where a user can create - * the project information and for the edit modal where user can - * edit the project's details - */ - angular.module('testapiApp').controller('scoreAddModalCtrl', scoreAddModalCtrl); - scoreAddModalCtrl.$inject = ['$scope', '$uibModalInstance', 'data']; - function scoreAddModalCtrl($scope, $uibModalInstance, data) { - var ctrl = this; - ctrl.confirm = confirm; - ctrl.cancel = cancel; - ctrl.data = angular.copy(data); - ctrl.open = open; - - /** - * Initiate confirmation and call the success handler with the - * inputs. - */ - function confirm() { - ctrl.data.successHandler(ctrl.score, ctrl.data.project, ctrl.data.version, ctrl.data.installer); - $uibModalInstance.dismiss('cancel'); - } - /** - * Close the confirm modal without initiating changes. - */ - function cancel() { - $uibModalInstance.dismiss('cancel'); - } - - function handleModalData(){ - - } - - /** - * This is called when the date filter calendar is opened. It - * does some event handling, and sets a scope variable so the UI - * knows which calendar was opened. - * @param {Object} $event - The Event object - * @param {String} openVar - Tells which calendar was opened - */ - function open($event, openVar) { - $event.preventDefault(); - $event.stopPropagation(); - ctrl[openVar] = true; - } - } - - /** + /** * TestAPI Project Modal Controller * This controller is for the create modal where a user can create * the project information and for the edit modal where user can @@ -572,11 +492,7 @@ ctrl.confirm = confirm; ctrl.cancel = cancel; ctrl.data = angular.copy(data); - ctrl.openScoreModal = openScoreModal; - ctrl.openTrustIndicatorModal = openTrustIndicatorModal; ctrl.openCustomModal = openCustomModal; - ctrl.handleScore = handleScore; - ctrl.handleModalTrustIndicator = handleModalTrustIndicator; ctrl.handleModalCustom = handleModalCustom; ctrl.projects = [] ctrl.project = { @@ -592,8 +508,10 @@ */ function confirm() { ctrl.projects.push(ctrl.project) - ctrl.data.successHandler(ctrl.projects, ctrl.data.version, ctrl.data.installer); - $uibModalInstance.dismiss('cancel'); + ctrl.data.successHandler( + ctrl.projects, ctrl.data.version, ctrl.data.installer).success( function(){ + $uibModalInstance.dismiss('cancel'); + }); } @@ -604,48 +522,10 @@ $uibModalInstance.dismiss('cancel'); } - function handleModalTrustIndicator(trustIndicator){ - ctrl.project.trust_indicators.push(trustIndicator) - } - - function handleScore(score){ - ctrl.project.scores.push(score); - } - function handleModalCustom(custom){ ctrl.project.customs.push(custom); } - function openScoreModal(){ - $uibModal.open({ - templateUrl: 'testapi-ui/components/scenarios/modals/scoreModal.html', - controller: 'scoreModalCtrl as scoreModalCtrl', - size: 'md', - resolve: { - data: function () { - return { - text: "Score", - successHandler: ctrl.handleScore, - }; - } - } - }); - } - function openTrustIndicatorModal(){ - $uibModal.open({ - templateUrl: 'testapi-ui/components/scenarios/modals/trustIndicatorModal.html', - controller: 'trustIndicatorModalCtrl as trustIndicatorModalCtrl', - size: 'md', - resolve: { - data: function () { - return { - text: "Trust Indicator", - successHandler: ctrl.handleModalTrustIndicator - }; - } - } - }); - } function openCustomModal(){ $uibModal.open({ templateUrl: 'testapi-ui/components/scenarios/modals/customModal.html', @@ -689,8 +569,9 @@ */ function confirm() { ctrl.versions.push(ctrl.version) - ctrl.data.successHandler(ctrl.versions, ctrl.data.installer); - $uibModalInstance.dismiss('cancel'); + ctrl.data.successHandler(ctrl.versions, ctrl.data.installer).success(function(){ + $uibModalInstance.dismiss('cancel'); + }); } |