From 30b87f5d9c3fd3a27755e3974435afab2a42d081 Mon Sep 17 00:00:00 2001 From: SerenaFeng Date: Tue, 21 Nov 2017 14:54:15 +0800 Subject: move self-developed front-end codes to ui/ Change-Id: I0b64661e73d940a577f27ded9322086788e4f5f3 Signed-off-by: SerenaFeng --- testapi/3rd_party/static/testapi-ui/Gruntfile.js | 162 ------------- testapi/3rd_party/static/testapi-ui/app.js | 260 --------------------- testapi/3rd_party/static/testapi-ui/config.json | 1 - .../3rd_party/static/testapi-ui/favicon-16x16.png | Bin 638 -> 0 bytes .../3rd_party/static/testapi-ui/favicon-32x32.png | Bin 1540 -> 0 bytes testapi/3rd_party/static/testapi-ui/favicon.ico | Bin 318 -> 0 bytes testapi/3rd_party/static/testapi-ui/index.html | 62 ----- testapi/3rd_party/static/testapi-ui/package.json | 18 -- testapi/3rd_party/static/testapi-ui/robots.txt | 4 - .../testapi-ui/shared/alerts/alertModal.html | 8 - .../testapi-ui/shared/alerts/alertModalFactory.js | 74 ------ .../testapi-ui/shared/alerts/confirmModal.html | 23 -- .../shared/alerts/confirmModalFactory.js | 67 ------ .../3rd_party/static/testapi-ui/shared/filters.js | 55 ----- .../static/testapi-ui/shared/header/header.html | 55 ----- .../testapi-ui/shared/header/headerController.js | 63 ----- 16 files changed, 852 deletions(-) delete mode 100644 testapi/3rd_party/static/testapi-ui/Gruntfile.js delete mode 100644 testapi/3rd_party/static/testapi-ui/app.js delete mode 100644 testapi/3rd_party/static/testapi-ui/config.json delete mode 100755 testapi/3rd_party/static/testapi-ui/favicon-16x16.png delete mode 100755 testapi/3rd_party/static/testapi-ui/favicon-32x32.png delete mode 100644 testapi/3rd_party/static/testapi-ui/favicon.ico delete mode 100644 testapi/3rd_party/static/testapi-ui/index.html delete mode 100644 testapi/3rd_party/static/testapi-ui/package.json delete mode 100644 testapi/3rd_party/static/testapi-ui/robots.txt delete mode 100644 testapi/3rd_party/static/testapi-ui/shared/alerts/alertModal.html delete mode 100644 testapi/3rd_party/static/testapi-ui/shared/alerts/alertModalFactory.js delete mode 100644 testapi/3rd_party/static/testapi-ui/shared/alerts/confirmModal.html delete mode 100644 testapi/3rd_party/static/testapi-ui/shared/alerts/confirmModalFactory.js delete mode 100644 testapi/3rd_party/static/testapi-ui/shared/filters.js delete mode 100644 testapi/3rd_party/static/testapi-ui/shared/header/header.html delete mode 100644 testapi/3rd_party/static/testapi-ui/shared/header/headerController.js (limited to 'testapi/3rd_party/static') diff --git a/testapi/3rd_party/static/testapi-ui/Gruntfile.js b/testapi/3rd_party/static/testapi-ui/Gruntfile.js deleted file mode 100644 index 13f484f..0000000 --- a/testapi/3rd_party/static/testapi-ui/Gruntfile.js +++ /dev/null @@ -1,162 +0,0 @@ - -module.exports = function (grunt) { - require('load-grunt-tasks')(grunt); - require('grunt-protractor-coverage')(grunt); - grunt.loadNpmTasks('grunt-shell-spawn'); - grunt.loadNpmTasks('grunt-wait'); - grunt.loadNpmTasks('grunt-contrib-copy'); - grunt.loadNpmTasks('grunt-contrib-connect'); - grunt.initConfig({ - connect: { - server: { - options: { - port: 8000, - base: './', - middleware: function(connect, options, middlewares) { - middlewares.unshift(function(req, res, next) { - if (req.method.toUpperCase() == 'POST' || req.method.toUpperCase() == "PUT"){ - req.method='GET'; - } - return next(); - }); - return middlewares; - } - } - } - }, - copy: { - assets: { - expand: true, - cwd: 'assets', - src: '**', - dest: 'testapi-ui/assets', - }, - components: { - expand: true, - cwd: '../../../opnfv_testapi/ui', - src: '**', - dest: 'components', - }, - copyComponents: { - expand: true, - cwd: 'components', - src: '**', - dest: 'testapi-ui/components', - }, - shared: { - expand: true, - cwd: 'shared', - src: '**', - dest: 'testapi-ui/shared', - }, - filesPng: { - expand: true, - src: '*.png', - dest: 'testapi-ui/', - }, - filesIco: { - expand: true, - src: '*.ico', - dest: 'testapi-ui/', - }, - filesJs: { - expand: true, - src: 'app.js', - dest: 'testapi-ui/', - }, - filesJson: { - expand: true, - src: 'config.json', - dest: 'testapi-ui/', - } - }, - wait: { - default: { - options: { - delay: 3000 - } - } - }, - shell: { - updateSelenium: { - command: 'node_modules/protractor/bin/webdriver-manager update', - options: { - async: false - } - }, - startSelenium: { - command: 'node_modules/protractor/bin/webdriver-manager start', - options: { - async: true - } - }, - deleteFiles: { - command: 'rm -r testapi-ui && rm -r components', - options: { - async: false - } - }, - options: { - stdout: false, - stderr: false - } - }, - instrument: { - files: ['components/**/*.js'], - options: { - lazy: false, - basePath: "./testapi-ui/" - } - }, - karma: { - unit: { - configFile: '../../../opnfv_testapi/tests/UI/karma.conf.js' - } - }, - protractor_coverage: { - options: { - keepAlive: true, - noColor: false, - coverageDir: '../../../opnfv_testapi/tests/UI/coverage', - args: { - specs: ['../../../opnfv_testapi/tests/UI/e2e/podsControllerSpec.js', - '../../../opnfv_testapi/tests/UI/e2e/projectsControllerSpec.js', - '../../../opnfv_testapi/tests/UI/e2e/projectControllerSpec.js'] - } - }, - local: { - options: { - configFile: '../../../opnfv_testapi/tests/UI/protractor-conf.js' - } - } - }, - makeReport: { - src: '../../../opnfv_testapi/tests/UI/coverage/*.json', - options: { - print: 'detail' - } - } - }); - grunt.registerTask('test', [ - 'karma:unit' - ]); - grunt.registerTask('e2e', [ - 'copy:assets', - 'copy:components', - 'copy:copyComponents', - 'copy:shared', - 'copy:filesPng', - 'copy:filesIco', - 'copy:filesJs', - 'copy:filesJson', - 'instrument', - 'connect', - 'shell:updateSelenium', - 'shell:startSelenium', - 'wait:default', - 'protractor_coverage', - 'makeReport', - 'shell:deleteFiles' - - ]); -} diff --git a/testapi/3rd_party/static/testapi-ui/app.js b/testapi/3rd_party/static/testapi-ui/app.js deleted file mode 100644 index dbb56a6..0000000 --- a/testapi/3rd_party/static/testapi-ui/app.js +++ /dev/null @@ -1,260 +0,0 @@ -/* - * 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'; - - /** Main app module where application dependencies are listed. */ - angular - .module('testapiApp', [ - 'ui.router','ui.bootstrap', 'cgBusy', - 'ngResource', 'angular-confirm' - ]); - - angular - .module('testapiApp') - .config(configureRoutes); - - angular - .module('testapiApp') - .directive('dynamicModel', ['$compile', '$parse', function ($compile, $parse) { - return { - restrict: 'A', - terminal: true, - priority: 100000, - link: function (scope, elem) { - var name = $parse(elem.attr('dynamic-model'))(scope); - elem.removeAttr('dynamic-model'); - elem.attr('ng-model', name); - $compile(elem)(scope); - } - }; - }]); - - configureRoutes.$inject = ['$stateProvider', '$urlRouterProvider']; - - /** - * Handle application routing. Specific templates and controllers will be - * used based on the URL route. - */ - function configureRoutes($stateProvider, $urlRouterProvider) { - $urlRouterProvider.otherwise('/'); - $stateProvider. - state('home', { - url: '/', - templateUrl: 'testapi-ui/components/home/home.html' - }). - state('about', { - url: '/about', - templateUrl: 'testapi-ui/components/about/about.html' - }). - state('pods', { - url: '/pods', - templateUrl: 'testapi-ui/components/pods/pods.html', - controller: 'PodsController as ctrl' - }). - state('projects', { - url: '/projects', - templateUrl: 'testapi-ui/components/projects/projects.html', - controller: 'ProjectsController as ctrl' - }). - state('project', { - url: '/projects/:name', - templateUrl: 'testapi-ui/components/projects/project/project.html', - controller: 'ProjectController as ctrl' - }). - state('communityResults', { - url: '/community_results', - templateUrl: 'testapi-ui/components/results/results.html', - controller: 'ResultsController as ctrl' - }). - state('userResults', { - url: '/user_results', - templateUrl: 'testapi-ui/components/results/results.html', - controller: 'ResultsController as ctrl' - }). - state('resultsDetail', { - url: '/results/:testID', - templateUrl: 'testapi-ui/components/results-report' + - '/resultsReport.html', - controller: 'ResultsReportController as ctrl' - }). - state('profile', { - url: '/profile', - templateUrl: 'testapi-ui/components/profile/profile.html', - controller: 'ProfileController as ctrl' - }). - state('authFailure', { - url: '/auth_failure', - templateUrl: 'testapi-ui/components/home/home.html', - controller: 'AuthFailureController as ctrl' - }). - state('logout', { - url: '/logout', - templateUrl: 'testapi-ui/components/logout/logout.html', - controller: 'LogoutController as ctrl' - }). - state('userVendors', { - url: '/user_vendors', - templateUrl: '/testapi-ui/components/vendors/vendors.html', - controller: 'VendorsController as ctrl' - }). - state('publicVendors', { - url: '/public_vendors', - templateUrl: '/testapi-ui/components/vendors/vendors.html', - controller: 'VendorsController as ctrl' - }). - state('vendor', { - url: '/vendor/:vendorID', - templateUrl: '/swagger/testapi-ui/components/vendors/vendor.html', - controller: 'VendorController as ctrl' - }). - state('userProducts', { - url: '/user_products', - templateUrl: '/testapi-ui/components/products/products.html', - controller: 'ProductsController as ctrl' - }). - state('publicProducts', { - url: '/public_products', - templateUrl: '/testapi-ui/components/products/products.html', - controller: 'ProductsController as ctrl' - }). - state('cloud', { - url: '/cloud/:id', - templateUrl: '/testapi-ui/components/products/cloud.html', - controller: 'ProductController as ctrl' - }). - state('distro', { - url: '/distro/:id', - templateUrl: '/testapi-ui/components/products/distro.html', - controller: 'ProductController as ctrl' - }); - } - - angular - .module('testapiApp') - .config(disableHttpCache); - - disableHttpCache.$inject = ['$httpProvider']; - - /** - * Disable caching in $http requests. This is primarily for IE, as it - * tends to cache Angular IE requests. - */ - function disableHttpCache($httpProvider) { - if (!$httpProvider.defaults.headers.get) { - $httpProvider.defaults.headers.get = {}; - } - $httpProvider.defaults.headers.get['Cache-Control'] = 'no-cache'; - $httpProvider.defaults.headers.get.Pragma = 'no-cache'; - } - - angular - .module('testapiApp') - .run(setup); - - setup.$inject = [ - '$http', '$rootScope', '$window', '$state', 'testapiApiUrl' - ]; - - /** - * Set up the app with injections into $rootscope. This is mainly for auth - * functions. - */ - function setup($http, $rootScope, $window, $state, testapiApiUrl) { - - $rootScope.auth = {}; - $rootScope.auth.doSignIn = doSignIn; - $rootScope.auth.doSignOut = doSignOut; - $rootScope.auth.doSignCheck = doSignCheck; - $rootScope.auth.doSubmitterCheck = doSubmitterCheck; - - var sign_in_url = testapiApiUrl + '/auth/signin'; - var sign_out_url = testapiApiUrl + '/auth/signout'; - var profile_url = testapiApiUrl + '/profile'; - - /** This function initiates a sign in. */ - function doSignIn() { - $window.location.href = sign_in_url; - } - - /** This function will initate a sign out. */ - function doSignOut() { - $rootScope.auth.currentUser = null; - $rootScope.auth.isAuthenticated = false; - $rootScope.auth.projectNames = []; - $window.location.href = sign_out_url; - } - - /** - * This function checks to see if a user is logged in and - * authenticated. - */ - function doSignCheck() { - return $http.get(profile_url, {withCredentials: true}). - success(function (data) { - $rootScope.auth.currentUser = data; - $rootScope.auth.isAuthenticated = true; - $rootScope.auth.projectNames = $rootScope.auth.doSubmitterCheck(data.groups); - }). - error(function () { - $rootScope.auth.currentUser = null; - $rootScope.auth.isAuthenticated = false; - $rootScope.auth.projectNames = []; - }); - } - - function doSubmitterCheck(groups){ - var projectNames = [] - for(var index=0;index=0){ - projectNames.push(groups[index].split('-')[2]) - } - } - return projectNames; - } - - $rootScope.auth.doSignCheck(); - } - - angular - .element(document) - .ready(loadConfig); - - /** - * Load config and start up the angular application. - */ - function loadConfig() { - - var $http = angular.injector(['ng']).get('$http'); - - /** - * Store config variables as constants, and start the app. - */ - function startApp(config) { - // Add config options as constants. - angular.forEach(config, function(value, key) { - angular.module('testapiApp').constant(key, value); - }); - - angular.bootstrap(document, ['testapiApp']); - } - - $http.get('testapi-ui/config.json').success(function (data) { - startApp(data); - }).error(function () { - startApp({}); - }); - } -})(); diff --git a/testapi/3rd_party/static/testapi-ui/config.json b/testapi/3rd_party/static/testapi-ui/config.json deleted file mode 100644 index 5d48c7b..0000000 --- a/testapi/3rd_party/static/testapi-ui/config.json +++ /dev/null @@ -1 +0,0 @@ -{"testapiApiUrl": "http://localhost:8000/api/v1"} diff --git a/testapi/3rd_party/static/testapi-ui/favicon-16x16.png b/testapi/3rd_party/static/testapi-ui/favicon-16x16.png deleted file mode 100755 index e08c8a1..0000000 Binary files a/testapi/3rd_party/static/testapi-ui/favicon-16x16.png and /dev/null differ diff --git a/testapi/3rd_party/static/testapi-ui/favicon-32x32.png b/testapi/3rd_party/static/testapi-ui/favicon-32x32.png deleted file mode 100755 index 7bf57e2..0000000 Binary files a/testapi/3rd_party/static/testapi-ui/favicon-32x32.png and /dev/null differ diff --git a/testapi/3rd_party/static/testapi-ui/favicon.ico b/testapi/3rd_party/static/testapi-ui/favicon.ico deleted file mode 100644 index 156019a..0000000 Binary files a/testapi/3rd_party/static/testapi-ui/favicon.ico and /dev/null differ diff --git a/testapi/3rd_party/static/testapi-ui/index.html b/testapi/3rd_party/static/testapi-ui/index.html deleted file mode 100644 index ac29aca..0000000 --- a/testapi/3rd_party/static/testapi-ui/index.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - TestAPI - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - diff --git a/testapi/3rd_party/static/testapi-ui/package.json b/testapi/3rd_party/static/testapi-ui/package.json deleted file mode 100644 index dc99239..0000000 --- a/testapi/3rd_party/static/testapi-ui/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "devDependencies": { - "grunt": "~1.0.1", - "grunt-contrib-connect": "^1.0.2", - "grunt-contrib-copy": "^1.0.0", - "grunt-karma": "~2.0.0", - "grunt-protractor-coverage": "^0.2.18", - "grunt-protractor-runner": "~5.0.0", - "grunt-shell-spawn": "~0.3.10", - "grunt-wait": "~0.1.0", - "karma": "~1.7.1", - "karma-chrome-launcher": "~2.2.0", - "karma-coverage": "~1.1.1", - "karma-jasmine": "~1.1.0", - "load-grunt-tasks": "~3.5.2", - "protractor-http-mock": "^0.10.0" - } -} diff --git a/testapi/3rd_party/static/testapi-ui/robots.txt b/testapi/3rd_party/static/testapi-ui/robots.txt deleted file mode 100644 index 93c4420..0000000 --- a/testapi/3rd_party/static/testapi-ui/robots.txt +++ /dev/null @@ -1,4 +0,0 @@ -# robotstxt.org - -User-agent: * - diff --git a/testapi/3rd_party/static/testapi-ui/shared/alerts/alertModal.html b/testapi/3rd_party/static/testapi-ui/shared/alerts/alertModal.html deleted file mode 100644 index 59fd500..0000000 --- a/testapi/3rd_party/static/testapi-ui/shared/alerts/alertModal.html +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/testapi/3rd_party/static/testapi-ui/shared/alerts/alertModalFactory.js b/testapi/3rd_party/static/testapi-ui/shared/alerts/alertModalFactory.js deleted file mode 100644 index 929f543..0000000 --- a/testapi/3rd_party/static/testapi-ui/shared/alerts/alertModalFactory.js +++ /dev/null @@ -1,74 +0,0 @@ -/* - * 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') - .factory('raiseAlert', raiseAlert); - - raiseAlert.$inject = ['$uibModal']; - - /** - * This allows alert pop-ups to be raised. Just inject it as a dependency - * in the calling controller. - */ - function raiseAlert($uibModal) { - return function(mode, title, text) { - $uibModal.open({ - templateUrl: 'testapi-ui/shared/alerts/alertModal.html', - controller: 'RaiseAlertModalController as alert', - backdrop: true, - keyboard: true, - backdropClick: true, - size: 'md', - resolve: { - data: function () { - return { - mode: mode, - title: title, - text: text - }; - } - } - }); - }; - } - - angular - .module('testapiApp') - .controller('RaiseAlertModalController', RaiseAlertModalController); - - RaiseAlertModalController.$inject = ['$uibModalInstance', 'data']; - - /** - * This is the controller for the alert pop-up. - */ - function RaiseAlertModalController($uibModalInstance, data) { - var ctrl = this; - - ctrl.close = close; - ctrl.data = data; - - /** - * This method will close the alert modal. The modal will close - * when the user clicks the close button or clicks outside of the - * modal. - */ - function close() { - $uibModalInstance.close(); - } - } -})(); diff --git a/testapi/3rd_party/static/testapi-ui/shared/alerts/confirmModal.html b/testapi/3rd_party/static/testapi-ui/shared/alerts/confirmModal.html deleted file mode 100644 index e5397e0..0000000 --- a/testapi/3rd_party/static/testapi-ui/shared/alerts/confirmModal.html +++ /dev/null @@ -1,23 +0,0 @@ - - - diff --git a/testapi/3rd_party/static/testapi-ui/shared/alerts/confirmModalFactory.js b/testapi/3rd_party/static/testapi-ui/shared/alerts/confirmModalFactory.js deleted file mode 100644 index aba205e..0000000 --- a/testapi/3rd_party/static/testapi-ui/shared/alerts/confirmModalFactory.js +++ /dev/null @@ -1,67 +0,0 @@ -(function () { - 'use strict'; - - angular - .module('testapiApp') - .factory('confirmModal', confirmModal); - - confirmModal.$inject = ['$uibModal']; - - /** - * Opens confirm modal dialog with input textbox - */ - function confirmModal($uibModal) { - return function(text, successHandler) { - $uibModal.open({ - templateUrl: '/testapi-ui/shared/alerts/confirmModal.html', - controller: 'CustomConfirmModalController as confirmModal', - size: 'md', - resolve: { - data: function () { - return { - text: text, - successHandler: successHandler - }; - } - } - }); - }; - } - - angular - .module('testapiApp') - .controller('CustomConfirmModalController', - CustomConfirmModalController); - - CustomConfirmModalController.$inject = ['$uibModalInstance', 'data']; - - /** - * This is the controller for the alert pop-up. - */ - function CustomConfirmModalController($uibModalInstance, data) { - var ctrl = this; - - ctrl.confirm = confirm; - ctrl.cancel = cancel; - - ctrl.data = angular.copy(data); - - /** - * Initiate confirmation and call the success handler with the - * input text. - */ - function confirm() { - $uibModalInstance.close(); - if (angular.isDefined(ctrl.data.successHandler)) { - ctrl.data.successHandler(ctrl.inputText); - } - } - - /** - * Close the confirm modal without initiating changes. - */ - function cancel() { - $uibModalInstance.dismiss('cancel'); - } - } -})(); diff --git a/testapi/3rd_party/static/testapi-ui/shared/filters.js b/testapi/3rd_party/static/testapi-ui/shared/filters.js deleted file mode 100644 index 4a4b7bd..0000000 --- a/testapi/3rd_party/static/testapi-ui/shared/filters.js +++ /dev/null @@ -1,55 +0,0 @@ -/* - * 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'; - - /** - * Convert an object of objects to an array of objects to use with ng-repeat - * filters. - */ - angular - .module('testapiApp') - .filter('arrayConverter', arrayConverter); - - /** - * Convert an object of objects to an array of objects to use with ng-repeat - * filters. - */ - function arrayConverter() { - return function (objects) { - var array = []; - angular.forEach(objects, function (object, key) { - if (!('id' in object)) { - object.id = key; - } - array.push(object); - }); - return array; - }; - } - - angular - .module('testapiApp') - .filter('capitalize', capitalize); - - /** - * Angular filter that will capitalize the first letter of a string. - */ - function capitalize() { - return function (string) { - return string.substring(0, 1).toUpperCase() + string.substring(1); - }; - } -})(); diff --git a/testapi/3rd_party/static/testapi-ui/shared/header/header.html b/testapi/3rd_party/static/testapi-ui/shared/header/header.html deleted file mode 100644 index 4b3f8dd..0000000 --- a/testapi/3rd_party/static/testapi-ui/shared/header/header.html +++ /dev/null @@ -1,55 +0,0 @@ -
TestAPI -TestAPI -
- - diff --git a/testapi/3rd_party/static/testapi-ui/shared/header/headerController.js b/testapi/3rd_party/static/testapi-ui/shared/header/headerController.js deleted file mode 100644 index 0a14a41..0000000 --- a/testapi/3rd_party/static/testapi-ui/shared/header/headerController.js +++ /dev/null @@ -1,63 +0,0 @@ -/* - * 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('HeaderController', HeaderController); - - HeaderController.$inject = ['$location']; - - /** - * TestAPI Header Controller - * This controller is for the header template which contains the site - * navigation. - */ - function HeaderController($location) { - var ctrl = this; - - ctrl.isActive = isActive; - ctrl.isCatalogActive = isCatalogActive; - - /** Whether the Navbar is collapsed for small displays. */ - ctrl.navbarCollapsed = true; - - /** - * This determines whether a button should be in the active state based - * on the URL. - */ - function isActive(viewLocation) { - var path = $location.path().substr(0, viewLocation.length); - if (path === viewLocation) { - // Make sure "/" only matches when viewLocation is "/". - if (!($location.path().substr(0).length > 1 && - viewLocation.length === 1 )) { - return true; - } - } - return false; - } - - /** This determines the active state for the catalog dropdown. Type - * parameter should be passed in to specify if the catalog is the - * public or user one. - */ - function isCatalogActive(type) { - return ctrl.isActive('/' + type + '_vendors') - || ctrl.isActive('/' + type + '_products'); - } - } -})(); -- cgit 1.2.3-korg