/*-
- * ================================================================================
- * 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;
};
$scope.megaMenuDataObject =[];
$scope.notificationCount= notificationService.notificationCount;
- $scope.recommendationCount= recommendationService.recommendationCount;
this.isLoading = true;
this.ECOMP_URL_REGEX = ECOMP_URL_REGEX;
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;
}
$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) {
$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;
$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*/
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);
});
$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=> {
};
$scope.removeAsFavoriteItem = function(event, menuId){
- // $log.debug('-----------------------------removeAsFavoriteItem: ' + menuId + " - " + event.target.id);
menusService.removeFavoriteItem(menuId)
.then(() => {
angular.element('#' + event.target.id).css('color', '#666666');
return;
}
if (!ECOMP_URL_REGEX.test(url)) {
- url = 'http://' + url;
+ url = 'https://' + url;
}
if(headerText.startsWith("vUSP")) {
data: ''
}).closePromise.then(needUpdate => {
if(needUpdate.value === true){
- // $log.debug('AdminsCtrl:openAddNewAdminModal:: updating table data...');
updateTableData();
}
});
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);
});
var userapprole ={
App:res[i].appName,
Roles:res[i].roleNames,
- };
-
+ };
$scope.userapproles.push(userapprole);
- }
+ }
});
}
}
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;
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);
}
notificationService.getMessageRecipients(selectedAdminNotification.id).then(res =>{
$scope.messageRecipients = res;
var messageObject=JSON.parse(selectedAdminNotification.message);
- var html="";
- html+='<p>'+'Message Source'+' : '+selectedAdminNotification.source+'</p>';
- html+='<p>'+'Message Title'+' : '+selectedAdminNotification.title+'</p>';
- html+='<p>'+'Message Recipient'+' : '+$scope.messageRecipients+'</p>';
-
- for(var field in messageObject){
- if(field=='eventDate'||field=='lastModifiedDate'){
- html+='<p>'+field+' : '+new Date(+messageObject[field])+'</p>';
-
- }else{
- html+='<p>'+field+' : '+messageObject[field]+'</p>';
-
- }
- }
-
- 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=> {
}
}
- 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<res.data.recommendations.length;i++){
- var data = res.data.recommendations[i];
- var recommendations ={
-
- recommendation:data
- };
- $scope.recommendations.push(recommendations);
- }
- }
- }).catch(err=> {
- $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);
-
})();