X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ecomp-portal-FE-common%2Fclient%2Fapp%2Fviews%2Fheader%2Fheader.controller.js;h=5950f8758efd3e91475b622ea52552f6a8e0850a;hb=dff56a7afc1720019d2a17887b1090d4bee33992;hp=33cb84546d2b322e8ed10609ec78587968b56b18;hpb=627badaf69987c01811c477219fd943757a635f5;p=portal.git diff --git a/ecomp-portal-FE-common/client/app/views/header/header.controller.js b/ecomp-portal-FE-common/client/app/views/header/header.controller.js index 33cb8454..5950f875 100644 --- a/ecomp-portal-FE-common/client/app/views/header/header.controller.js +++ b/ecomp-portal-FE-common/client/app/views/header/header.controller.js @@ -1,40 +1,83 @@ /*- - * ================================================================================ - * ECOMP Portal - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software except in compliance with the License. * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * + * + * 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. - * ================================================================================ + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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. + * + * ============LICENSE_END============================================ + * + * */ 'use strict'; (function () { class HeaderCtrl { - constructor($log, $window, userProfileService, menusService, $scope, ECOMP_URL_REGEX, $cookies, $state,auditLogService,notificationService,recommendationService,ngDialog) { - this.firstName = ''; - this.lastName = ''; - this.$log = $log; - this.menusService = menusService; - this.$scope = $scope; - this.favoritesMenuItems = ''; - $scope.favoriteItemsCount = 0; - $scope.favoritesMenuItems = ''; - $scope.showFavorites = false; - $scope.emptyFavorites = false; - $scope.favoritesWindow = false; - $scope.notificationCount=0; - $scope.recommendationCount=0; - $scope.showNotification = true; + constructor($log, $window, $translate, translateService,userProfileService, menusService, $scope, ECOMP_URL_REGEX, $cookies, $state,auditLogService,notificationService,ngDialog,$modal) { + this.firstName = ''; + this.lastName = ''; + this.$log = $log; + this.menusService = menusService; + this.$scope = $scope; + this.favoritesMenuItems = ''; + $scope.cur_lang = ''; + $scope.langList = [] + $scope.favoriteItemsCount = 0; + $scope.favoritesMenuItems = ''; + $scope.showFavorites = false; + $scope.emptyFavorites = false; + $scope.favoritesWindow = false; + $scope.notificationCount=0; + $scope.showNotification = true; + // get all languages + var loginId = sessionStorage.getItem('userId') + translateService.getCurrentLang(loginId).then(res => { + $scope.cur_lang = res.languageAlias + $translate.use($scope.cur_lang); + }) + translateService.getLangList().then(res => { + $scope.langList = res.languageList + }) + // switch language + $scope.switching = function(lang) { + $translate.use(lang); + var langs = $scope.langList + var langId = '' + var selectedLang = langs.find(function(item) { + return item.languageAlias === lang; + }); + langId = selectedLang.languageId + var loginId = sessionStorage.getItem('userId') + translateService.saveSelectedLang(loginId, {'languageId': langId}).then(res => { + window.location.reload(); + }) + } + $scope.cur_lang = $translate.use(); $scope.hideMenus = false; @@ -47,7 +90,6 @@ }; $scope.megaMenuDataObject =[]; $scope.notificationCount= notificationService.notificationCount; - $scope.recommendationCount= recommendationService.recommendationCount; this.isLoading = true; this.ECOMP_URL_REGEX = ECOMP_URL_REGEX; @@ -71,21 +113,16 @@ userProfileService.getFunctionalMenuStaticInfo() .then(res=> { - // $log.debug('HeaderCtrl::getFunctionalMenuStaticInfo: getting Functional Menu Static Info init'); if(res==null || res.firstName==null || res.firstName=='' || res.lastName==null || res.lastName=='' ){ - // $log.info('HeaderCtrl::getFunctionalMenuStaticInfo: failed getting userinfo from shared context.. '); $log.info('HeaderCtrl: failed to get all required data, trying user profile'); userProfileService.getUserProfile() .then(profile=> { - // $log.debug('HeaderCtrl:: getting userinfo from session success'); this.firstName = profile.firstName; this.lastName = profile.lastName; - // $log.debug('HeaderCtrl::getFunctionalMenuStaticInfo: user has the following roles: ' + profile.roles); }).catch(err=> { $log.error('Header Controller:: getUserProfile() failed: ' + err); }); } else { - // $log.debug('HeaderCtrl: fetched Functional Menu Static Info successfully',res); this.firstName = res.firstName; this.lastName = res.lastName; } @@ -110,17 +147,12 @@ $scope.loadFavorites = function () { $scope.hideMenus = false; - // $log.debug('HeaderCtrl::loadFavorites: loadFavorites has happened.'); if ($scope.favoritesMenuItems == '') { generateFavoriteItems(); - // $log.debug('HeaderCtrl::loadFavorites: loadFavorites is calling generateFavoriteItems()'); - } else { - // $log.debug('HeaderCtrl::loadFavorites: loadFavorites is NOT calling generateFavoriteItems()'); } } $scope.goToUrl = (item) => { - // $log.error('HeaderCtrl::goToUrl has started',item); let url = item.url; let restrictedApp = item.restrictedApp; if (!url) { @@ -131,44 +163,24 @@ $window.open(url, '_blank'); } else { if(item.url=="getAccess" || item.url=="contactUs"){ - // if (url = window.location.href) $state.go("root."+url); } else { var tabContent = { id: new Date(), title: item.text, url: item.url,appId:item.appid }; $cookies.putObject('addTab', tabContent ); } - // $log.debug('HeaderCtrl::goToUrl: url = ', url); } $scope.hideMenus = true; } - $scope.submenuLevelAction = function(index, column) { - if ($scope.favoritesMenuItems == '') { - generateFavoriteItems(); - // $log.debug('HeaderCtrl::submenuLevelAction: submenuLevelAction is calling generateFavoriteItems()'); - } else { - // $log.debug('submenuLevelAction is NOT calling generateFavoriteItems()'); - } - // $log.debug('item hovered: ' + index + '; column = ' + column); - // if (column == 2) { // 2 is Design - // // This is an admitted hack. See aw3218 for reasons why - // $log.debug('submenuLevelAction column == 2'); - // $scope.favoritesWindow = false; - // $scope.showFavorites = false; - // $scope.emptyFavorites = false; - // } + $scope.submenuLevelAction = function(index, column) { if (index=='Favorites' && $scope.favoriteItemsCount != 0) { - // $log.debug('HeaderCtrl::submenuLevelAction: Showing Favorites window'); - // generateFavoriteItems(); $scope.favoritesWindow = true; $scope.showFavorites = true; $scope.emptyFavorites = false; } if (index=='Favorites' && $scope.favoriteItemsCount == 0) { - // $log.debug('HeaderCtrl::submenuLevelAction: Hiding Favorites window in favor of No Favorites Window'); - // generateFavoriteItems(); $scope.favoritesWindow = true; $scope.showFavorites = false; $scope.emptyFavorites = true; @@ -178,27 +190,21 @@ $scope.showFavorites = false; $scope.emptyFavorites = false; } - }; $scope.hideFavoritesWindow = function() { $scope.showFavorites = false; $scope.emptyFavorites = false; - // $scope.thirdFourthMenus = true; } $scope.isUrlFavorite = function (menuId) { - // $log.debug('array objects in menu favorites = ' + $scope.favoriteItemsCount + '; menuId=' + menuId); var jsonMenu = JSON.stringify($scope.favoritesMenuItems); var isMenuFavorite = jsonMenu.indexOf('menuId\":' + menuId); - // $log.debug('jsonMenu.indexOf(menuId:' + jsonMenu.indexOf('menuId\":'+menuId)); - // $log.debug('isMenuFavorite= ' + isMenuFavorite); if (isMenuFavorite==-1) { return false; } else { return true; } - } /*Getting Ecomp portal Title*/ @@ -216,10 +222,8 @@ let generateFavoriteItems = () => { menusService.getFavoriteItems() .then(favorites=> { - // $log.debug('HeaderCtrl.getFavoriteItems:: ' + JSON.stringify(favorites)); $scope.favoritesMenuItems = favorites; $scope.favoriteItemsCount = Object.keys(favorites).length; - // $log.info('HeaderCtrl.getFavoriteItems:: number of favorite menus: ' + $scope.favoriteItemsCount); }).catch(err=> { $log.error('HeaderCtrl.getFavoriteItems:: Error retrieving Favorites menus: ' + err); }); @@ -227,11 +231,8 @@ $scope.setAsFavoriteItem = function(event, menuId){ var jsonMenuID = angular.toJson({'menuId': + menuId }); - // $log.debug('HeaderCtrl::setFavoriteItems: ' + jsonMenuID + " - " + event.target.id); - menusService.setFavoriteItem(jsonMenuID) .then(() => { - // var elementId = '#'+ event.currentTarget.id; angular.element('#' + event.target.id).css('color', '#fbb313'); generateFavoriteItems(); }).catch(err=> { @@ -240,7 +241,6 @@ }; $scope.removeAsFavoriteItem = function(event, menuId){ - // $log.debug('-----------------------------removeAsFavoriteItem: ' + menuId + " - " + event.target.id); menusService.removeFavoriteItem(menuId) .then(() => { angular.element('#' + event.target.id).css('color', '#666666'); @@ -256,7 +256,7 @@ return; } if (!ECOMP_URL_REGEX.test(url)) { - url = 'http://' + url; + url = 'https://' + url; } if(headerText.startsWith("vUSP")) { @@ -278,7 +278,6 @@ data: '' }).closePromise.then(needUpdate => { if(needUpdate.value === true){ - // $log.debug('AdminsCtrl:openAddNewAdminModal:: updating table data...'); updateTableData(); } }); @@ -312,12 +311,11 @@ try { userProfileService.getFunctionalMenuStaticInfo() .then(res=> { - // $log.info('HeaderCtrl::LoginSnippetCtrl: Login information: ' + JSON.stringify(res)); $scope.firstName = res.firstName; $scope.lastName = res.lastName; $scope.loginSnippetEmail = res.email; $scope.loginSnippetUserid = res.userId; - $scope.lastLogin = res.last_login; + $scope.lastLogin = Date.parse(res.last_login); }).catch(err=> { $log.error('HeaderCtrl::LoginSnippetCtrl: failed in getFunctionalMenuStaticInfo: ' + err); }); @@ -339,10 +337,9 @@ var userapprole ={ App:res[i].appName, Roles:res[i].roleNames, - }; - + }; $scope.userapproles.push(userapprole); - } + } }); @@ -350,7 +347,7 @@ } } class NotificationCtrl{ - constructor($log, $scope, $cookies, $timeout, sessionService,notificationService,$interval,ngDialog) { + constructor($log, $scope, $cookies, $timeout, sessionService,notificationService,$interval,ngDialog,$modal) { $scope.notifications=[]; var intervalPromise = null; $scope.notificationCount= notificationService.notificationCount; @@ -374,11 +371,12 @@ var data = res.data.response[i]; var notification ={ id:data.notificationId, - title:data.msgHeader, + msgHeader:data.msgHeader, message:data.msgDescription, - source:data.msgSource, + msgSource:data.msgSource, time:data.createdDate, - priority:data.priority + priority:data.priority, + notificationHyperlink:data.notificationHyperlink }; $scope.notifications.push(notification); } @@ -408,41 +406,27 @@ notificationService.getMessageRecipients(selectedAdminNotification.id).then(res =>{ $scope.messageRecipients = res; var messageObject=JSON.parse(selectedAdminNotification.message); - var html=""; - html+='

'+'Message Source'+' : '+selectedAdminNotification.source+'

'; - html+='

'+'Message Title'+' : '+selectedAdminNotification.title+'

'; - html+='

'+'Message Recipient'+' : '+$scope.messageRecipients+'

'; - - for(var field in messageObject){ - if(field=='eventDate'||field=='lastModifiedDate'){ - html+='

'+field+' : '+new Date(+messageObject[field])+'

'; - - }else{ - html+='

'+field+' : '+messageObject[field]+'

'; - - } - } - - var modalInstance = ngDialog.open({ - templateUrl: 'app/views/user-notifications-admin/user.notifications.Json.details.modal.page.html', - controller: 'userNotificationCtrl', - resolve: { - message: function () { - var message = { - title: '', - text: html - - }; - return message; - }, - - } - }); - - }).catch(err => { - $log.error('userNotificationsCtrl:getMessageRecipients:: error ', err); - $scope.isLoadingTable = false; - }); + var modalInstance = $modal.open({ + templateUrl: 'app/views/user-notifications-admin/user.notifications.json.details.modal.page.html', + controller: 'userNotificationCtrl', + sizeClass: 'modal-large', + resolve: { + items: function () { + var items = { + title: '', + selectedAdminNotification:selectedAdminNotification,messageObject:messageObject,messageRecipients:$scope.messageRecipients + + }; + return items; + } + } + }) + + + }).catch(err => { + $log.error('userNotificationsCtrl:getMessageRecipients:: error ', err); + $scope.isLoadingTable = false; + }); }; notificationService.getNotificationRate().then(res=> { @@ -474,85 +458,10 @@ } } - class RecommendationCtrl{ - constructor($log, $scope, $cookies, $timeout, sessionService,recommendationService,notificationService,$interval,ngDialog) { - $scope.recommendations=[]; - var intervalPromise = null; - $scope.recommendationCount= recommendationService.recommendationCount; - console.log("$",$); - $scope.getRecommendations = function(){ - $("#recommendation-bulb").removeClass('icon-misc-bulbL').addClass('icon-misc-bulb') - recommendationService.getRecommendations() - - .then(res=> { - $("#recommendation-bulb").removeClass('icon-misc-bulb').addClass('icon-misc-bulbL') - recommendationService.decrementRefreshCount(); - var count = recommendationService.getRefreshCount(); - if ( res.data==null) { - $log.error('RecommendationCtrl::update Recommendation: failed to get recommendation'); - if (intervalPromise != null) - $interval.cancel(intervalPromise); - } else if(count>=0){ - if (intervalPromise != null) - $interval.cancel(intervalPromise); - } else { - $scope.recommendations = []; - recommendationService.setRecommendationCount(res.data.recommendations.length); - for(var i=0;i { - $log.error('RecommendationCtrl::gatRecommendations: caught exception: ' + err); - if (intervalPromise != null) - $interval.cancel(intervalPromise); - }); - } - $scope.getRecommendations(); - - function updateRecommendations() { - $scope.getRecommendations(); - } - - notificationService.getNotificationRate().then(res=> { - if (res == null || res.response == null) { - $log.error('NotificationCtrl: failed to notification update rate or duration, check system.properties file.'); - } else { - var rate = parseInt(res.response.updateRate); - var duration = parseInt(res.response.updateDuration); - notificationService.setMaxRefreshCount(parseInt(duration/rate)+1); - notificationService.setRefreshCount(notificationService.maxCount); - if (rate != NaN && duration != NaN) { - $scope.updateRate=rate; - setInterval(function(){$scope.getRecommendations();},rate); - - } - } - }).catch(err=> { - $log.error('NotificationCtrl: getNotificationRate() failed: ' + err); - }); - $scope.deleteRecommendation = function(index){ - if ($scope.recommendations[index] == null || $scope.recommendations[index] == '') { - $log.error('RecommendationCtrl: failed to delete Recommendation.'); - return; - } - $scope.recommendations.splice(index,1); - recommendationService.setRecommendationCount($scope.recommendations.length); - } - } - } - NotificationCtrl.$inject = ['$log', '$scope', '$cookies', '$timeout', 'sessionService','notificationService','$interval','ngDialog']; - RecommendationCtrl.$inject = ['$log', '$scope', '$cookies', '$timeout', 'sessionService','recommendationService','notificationService','$interval','ngDialog']; + NotificationCtrl.$inject = ['$log', '$scope', '$cookies', '$timeout', 'sessionService','notificationService','$interval','ngDialog','$modal']; LoginSnippetCtrl.$inject = ['$log', '$scope', '$cookies', '$timeout','userProfileService', 'sessionService']; - HeaderCtrl.$inject = ['$log', '$window', 'userProfileService', 'menusService', '$scope', 'ECOMP_URL_REGEX','$cookies','$state','auditLogService','notificationService','recommendationService','ngDialog']; + HeaderCtrl.$inject = ['$log', '$window', '$translate', 'translateService', 'userProfileService', 'menusService', '$scope', 'ECOMP_URL_REGEX','$cookies','$state','auditLogService','notificationService','ngDialog','$modal']; angular.module('ecompApp').controller('HeaderCtrl', HeaderCtrl); angular.module('ecompApp').controller('loginSnippetCtrl', LoginSnippetCtrl); angular.module('ecompApp').controller('notificationCtrl', NotificationCtrl); - angular.module('ecompApp').controller('recommendationCtrl', RecommendationCtrl); - })();