diff options
Diffstat (limited to 'testapi/opnfv_testapi/ui')
-rw-r--r-- | testapi/opnfv_testapi/ui/projects/projects.html | 38 | ||||
-rw-r--r-- | testapi/opnfv_testapi/ui/projects/projectsController.js | 74 |
2 files changed, 112 insertions, 0 deletions
diff --git a/testapi/opnfv_testapi/ui/projects/projects.html b/testapi/opnfv_testapi/ui/projects/projects.html new file mode 100644 index 0000000..62a968b --- /dev/null +++ b/testapi/opnfv_testapi/ui/projects/projects.html @@ -0,0 +1,38 @@ +<h3>Projects</h3> +<p> </p> + +<div class="row" style="margin-bottom:24px;"></div> +<div class="project-create" ng-class="{ 'hidden': ! (auth.projectNames.length>0) }"> + <h4>Create</h4> + <div class="row"> + <div ng-repeat="require in ctrl.createRequirements"> + <div class="create-project" style="margin-left:24px;"> + <p class="input-group"> + <label for="cpid">{{require.label|capitalize}}: </label> + <a ng-if="require.type == 'text'"> + <input type="text" dynamic-model="'ctrl.' + require.label"/> + </a> + <a ng-if="require.type == 'textarea'"> + <textarea rows="2" cols="50" dynamic-model="'ctrl.' + require.label"> + </textarea> + </a> + </p> + </div> + </div> + + <div class="col-md-3" style="margin-top:12px; margin-left:8px;"> + <button type="submit" class="btn btn-primary" ng-click="ctrl.create()">Create</button> + </div> + </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> + +<div ng-show="ctrl.showSuccess" class="alert alert-success" role="alert"> + <span class="glyphicon glyphicon-ok" aria-hidden="true"></span> + Create Success +</div>
\ No newline at end of file diff --git a/testapi/opnfv_testapi/ui/projects/projectsController.js b/testapi/opnfv_testapi/ui/projects/projectsController.js new file mode 100644 index 0000000..d2640b6 --- /dev/null +++ b/testapi/opnfv_testapi/ui/projects/projectsController.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('ProjectsController', ProjectsController); + + ProjectsController.$inject = [ + '$scope', '$http', '$filter', '$state', 'testapiApiUrl','raiseAlert' + ]; + + /** + * TestAPI Project Controller + * This controller is for the '/projects' page where a user can browse + * through projects declared in TestAPI. + */ + function ProjectsController($scope, $http, $filter, $state, testapiApiUrl, + raiseAlert) { + var ctrl = this; + ctrl.url = testapiApiUrl + '/projects'; + ctrl.create = create; + + ctrl.createRequirements = [ + {label: 'name', type: 'text', required: true}, + {label: 'description', type: 'textarea', required: false} + ]; + + ctrl.name = ''; + ctrl.details = ''; + + /** + * This will contact the TestAPI to create a new project. + */ + function create() { + ctrl.showError = false; + ctrl.showSuccess = false; + if(ctrl.name != ""){ + var projects_url = ctrl.url; + var body = { + name: ctrl.name, + description: ctrl.description + }; + ctrl.projectsRequest = + $http.post(projects_url, body).success(function (data){ + ctrl.showSuccess = true ; + }) + .error(function (data) { + ctrl.showError = true; + ctrl.error = 'Error creating the new Project from server:' + angular.toJson(data); + }); + ctrl.name = ""; + ctrl.description=""; + } + else{ + ctrl.showError = true; + ctrl.error = 'Name is missing.' + } + } + } +})(); |