summaryrefslogtreecommitdiffstats
path: root/vnfmarket-be/portal-marketplace/src/main/webapp/marketplace/modules/layouts/side-nav/sidenavCtrl.js
diff options
context:
space:
mode:
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.js114
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);
+ };
+ }
+
+})();