diff options
Diffstat (limited to 'vnfmarket-be/portal-marketplace/src/main/webapp/marketplace/modules/layouts/side-nav/sidenavCtrl.js')
-rw-r--r-- | vnfmarket-be/portal-marketplace/src/main/webapp/marketplace/modules/layouts/side-nav/sidenavCtrl.js | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/vnfmarket-be/portal-marketplace/src/main/webapp/marketplace/modules/layouts/side-nav/sidenavCtrl.js b/vnfmarket-be/portal-marketplace/src/main/webapp/marketplace/modules/layouts/side-nav/sidenavCtrl.js new file mode 100644 index 00000000..41756882 --- /dev/null +++ b/vnfmarket-be/portal-marketplace/src/main/webapp/marketplace/modules/layouts/side-nav/sidenavCtrl.js @@ -0,0 +1,114 @@ +/* + + Copyright 2016-2017, Huawei Technologies Co., Ltd. + + 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'; + + /** + * @ngdoc function + * @name app.controller:SidenavCtrl + * @description + * # SidenavCtrl + * Controller of the app + */ + angular + .module('vnfmarket') + .controller('SidenavCtrl', SidenavCtrl) + .controller('SettingsCtrl', SettingsCtrl); + + // Injecting Denpendencies + + SidenavCtrl.$inject = ['$mdSidenav', '$state', '$mdBottomSheet', '$mdToast', 'MenuService', '$scope']; + SettingsCtrl.$inject = ['$mdBottomSheet']; + + /* + * recommend + * Using function declarations + * and bindable members up top. + */ + + function SidenavCtrl($mdSidenav, $state, $mdBottomSheet, $mdToast, MenuService, $scope) { + /*jshint validthis: true */ + var vm = this; + + vm.toggleSidenav = function (menuId) { + $mdSidenav(menuId).toggle(); + }; + + vm.closeSidenav = function() { + $mdSidenav('left').close(); + }; + + // Close menu on small screen after click on menu item. + // Only use $scope in controllerAs when necessary; for example, publishing and subscribing events using $emit, $broadcast, $on or $watch. + $scope.$on('$stateChangeSuccess', vm.closeSidenav); + + vm.menu = MenuService.listMenu(); + + vm.admin = [ + { + link: 'showListBottomSheet($event)', + title: 'Settings', + icon: 'settings' + } + ]; + + vm.navigateTo = function (target) { + + var page = target; + + $state.go(page); + + }; + + vm.showSettingsBottom = function ($event) { + vm.alert = ''; + $mdBottomSheet.show({ + template: '<md-bottom-sheet class="md-grid" layout="column" ng-cloak><div layout="row" layout-align="center center"><h4>With clickOutsideToClose option, drag down or press ESC to close</h4></div><md-list flex layout="row" layout-align="center center"><md-list-item ng-repeat="item in vm.items"><md-button class="md-grid-item-content" ng-click="vm.listItemClick($index)"><md-icon class="md-48">{{item.icon}}</md-icon><div class="md-grid-text"> {{ item.name }} </div></md-button></md-list-item></md-list></md-bottom-sheet>', + controller: 'SettingsCtrl', + controllerAs: 'vm', + targetEvent: $event + }).then(function (clickedItem) { + $mdToast.show( + $mdToast.simple() + .content(clickedItem.name + ' clicked!') + .position('top right') + .hideDelay(2000) + ); + }); + }; + + } + + function SettingsCtrl($mdBottomSheet) { + /*jshint validthis: true */ + var vm = this; + + vm.items = [ + {name: 'Roles', icon: 'assignment_ind'}, + {name: 'Notes', icon: 'speaker_notes'}, + {name: 'Tasks', icon: 'view_list'}, + {name: 'Inbox', icon: 'inbox'} + ]; + + vm.listItemClick = function ($index) { + var clickedItem = vm.items[$index]; + $mdBottomSheet.hide(clickedItem); + }; + } + +})(); |