-/*-\r
- * ================================================================================\r
- * ECOMP Portal\r
- * ================================================================================\r
- * Copyright (C) 2017 AT&T Intellectual Property\r
- * ================================================================================\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- * \r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- * \r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * ================================================================================\r
- */\r
-'use strict';\r
-(function () {\r
-\r
- class WidgetCatalogCtrl {\r
- constructor(widgetsService, $log, $cookies, $scope, conf, beReaderService, widgetsCatalogService, userProfileService,dashboardService,$compile, ngDialog) {\r
- \r
- $scope.editWidgetModalPopup = function(availableData, resourceType) {\r
- $scope.editData = JSON.stringify(availableData);\r
- $scope.availableDataTemp = $scope.availableData;\r
- ngDialog.open({\r
- templateUrl : 'app/views/dashboard/dashboard-widget-manage.html',\r
- controller : 'CommonWidgetController',\r
- resolve : {\r
- message : function message() {\r
- var message = {\r
- type : resourceType,\r
- availableData : $scope.editData\r
- };\r
- return message;\r
- }\r
- }\r
- }).closePromise.then(needUpdate => { \r
- if(resourceType=='NEWS'){\r
- $scope.updateNews();\r
- }else if(resourceType=='EVENTS'){\r
- $scope.updateEvents();\r
- }else if(resourceType=='IMPORTANTRESOURCES'){\r
- $scope.updateImportRes();\r
- }\r
- }); \r
- };\r
- \r
- $scope.WidgetCatView = []; \r
- $scope.applyPresentationDetailsToWidgetsCatalog = function(widgetsReturned){\r
- var rowNo = 0;\r
- for (var i = 0; i < widgetsReturned.length; i++) {\r
- $scope.WidgetCatView[i] = {\r
- sizeX : 2,\r
- sizeY : 2,\r
- headerText:'',\r
- widgetIdentifier : '',\r
- url : '',\r
- widgetid: '',\r
- attrb:'',\r
- select: false,\r
- };\r
- $scope.WidgetCatView[i].widgetid = widgetsReturned[i].id;\r
- $scope.WidgetCatView[i].headerText = widgetsReturned[i].headerName;\r
-\r
- if(widgetsReturned[i].headerName === 'widget-news'){\r
- $scope.WidgetCatView[i].widgetIdentifier = 'NEWS';\r
- }\r
- else\r
- if(widgetsReturned[i].headerName === 'widget-resources'){\r
- $scope.WidgetCatView[i].widgetIdentifier = 'IMPORTANTRESOURCES';\r
- }\r
- else\r
- if(widgetsReturned[i].headerName === 'widget-events'){\r
- $scope.WidgetCatView[i].widgetIdentifier = 'EVENTS';\r
- }\r
-\r
- $scope.WidgetCatView[i].url = widgetsReturned[i].url;\r
- $scope.WidgetCatView[i].attrb = widgetsReturned[i].attrs;\r
- $scope.WidgetCatView[i].select = widgetsReturned[i].select; \r
- }\r
-\r
- $scope.widgetViewData = $scope.WidgetCatView;\r
- \r
- }\r
- \r
- /** Widget code starts */\r
- let getUserWidgets = (loginName) => {\r
- \r
- this.isCommError = false;\r
- var conf = this.conf;\r
- widgetsCatalogService.getUserWidgets(loginName).then(res => {\r
- \r
- if(!(res instanceof Array)){\r
- this.isCommError = true;\r
- return;\r
- }\r
- for(var i = 0; i < res.length; i++){ \r
- var widget_id = res[i][0];\r
- var widget_name = res[i][1];\r
- let url = this.conf.api.widgetCommon + "/" + widget_id + "/framework.js";\r
- $scope.widgetsList.push({\r
- id: widget_id,\r
- name: widget_name,\r
- headerName: widget_name,\r
- url: url,\r
- attrs: [{attr: 'data-' + widget_id, value: ''}],\r
- status: res[i][4],\r
- select: (res[i][4] == 'S' || res[i][4] === null) ? true : false\r
- }); \r
- var script = document\r
- .createElement('script');\r
- script.src = url;\r
- script.async = true;\r
- var entry = document\r
- .getElementsByTagName('script')[0];\r
- entry.parentNode\r
- .insertBefore(script, entry);\r
- }\r
- $scope.applyPresentationDetailsToWidgetsCatalog($scope.widgetsList);\r
- }).catch(err => {\r
- $log.error('WidgetCatalogCtrl::getUserWidgets caught error', err);\r
- }).finally(()=> {\r
- \r
- });\r
- };\r
- \r
- let init = () => {\r
- userProfileService.getUserProfile()\r
- .then(profile=> {\r
- // $log.info('WidgetCatalogCtrl::getUserProfile: ',\r
- // profile);\r
- $scope.orgUserId = profile.orgUserId;\r
- $scope.widgetsViewData = [];\r
- $scope.widgetsView = []; \r
- getUserWidgets($scope.orgUserId); \r
- });\r
- this.conf = conf;\r
- $scope.widgetsList = [];\r
- };\r
- \r
- /** Widget code ends */\r
- \r
- $scope.activateThis = function(ele){\r
- $compile(ele.contents())($scope);\r
- $scope.$apply();\r
- };\r
- $scope.setCommonWidget = function() {\r
- /* News Events Resources */\r
- var widgetLength = ($scope.widgetsViewData==null || $scope.widgetsViewData.length==0) ? 0:$scope.widgetsViewData.length;\r
- $scope.widgetsViewData[widgetLength] = {\r
- sizeX: 2,\r
- sizeY: 2,\r
- headerText: 'News',\r
- width: '',\r
- height: '',\r
- url: '',\r
- selected:true\r
- };\r
- $scope.widgetsViewData[widgetLength+1] = {\r
- sizeX: 2,\r
- sizeY: 2,\r
- headerText: 'Calendar Events',\r
- width: '',\r
- height: '',\r
- url: '',\r
- selected:true\r
- };\r
- $scope.widgetsViewData[widgetLength+2] = {\r
- sizeX: 2,\r
- sizeY: 2,\r
- headerText: 'Resources',\r
- width: '',\r
- height: '',\r
- url: '',\r
- selected:true\r
- };\r
- \r
- /* Setting News data */\r
- $scope.newsData = [];\r
- $scope.updateNews = function() {\r
- $scope.newsData.length=0;\r
- dashboardService.getCommonWidgetData('NEWS').then(function(res) {\r
- // $log.info(res.message);\r
- var newsDataJsonArray = res.response.items;\r
- for (var i = 0; i < newsDataJsonArray.length; i++) {\r
- $scope.newsData.push(newsDataJsonArray[i]);\r
- }\r
- })['catch'](function(err) {\r
- $log.error('dashboard controller: failed to get news list', err); \r
- });\r
- }\r
- $scope.updateNews();\r
- /* Setting Events data */\r
-\r
- $scope.eventData = [];\r
- \r
- $scope.updateEvents = function() {\r
- $scope.eventData.length=0;\r
- dashboardService.getCommonWidgetData('EVENTS').then(function(res) {\r
- var eventDataJsonArray = res.response.items; \r
- for (var i = 0; i < eventDataJsonArray.length; i++) {\r
- if(eventDataJsonArray[i].eventDate !=null) {\r
- // yyyy-mm-dd\r
- eventDataJsonArray[i].year = eventDataJsonArray[i].eventDate.substring(2,4);\r
- eventDataJsonArray[i].mon = eventDataJsonArray[i].eventDate.substring(5,7);\r
- eventDataJsonArray[i].day = eventDataJsonArray[i].eventDate.substring(8,10);\r
- }\r
- $scope.eventData.push(eventDataJsonArray[i]);\r
- }\r
- })['catch'](function(err) {\r
- $log.error('dashboard controller: failed to get Events list', err); \r
- });\r
- }\r
- $scope.updateEvents();\r
- /* Setting Important Resources data */\r
-\r
- $scope.importResData = [];\r
- $scope.updateImportRes = function() {\r
- $scope.importResData.length=0;\r
- dashboardService.getCommonWidgetData('IMPORTANTRESOURCES').then(\r
- function(res) {\r
- // $log.info(res);\r
- var importResDataJSONArray = res.response.items;\r
- for (var i = 0; i < importResDataJSONArray.length; i++) {\r
- $scope.importResData.push(importResDataJSONArray[i]);\r
- }\r
- })['catch'](function(err) {\r
- $log.error('dashboard controller: failed to get resources list...', err);\r
- });\r
- }\r
- $scope.updateImportRes();\r
- \r
- /** ******End hardcoded news events and resources*************** */\r
- \r
- }\r
- \r
- $scope.newsGridsterItem = {\r
- headerText : 'Test',\r
- subHeaderText : ''\r
- };\r
- \r
- $scope.newsGridsterItem = {\r
- headerText : 'News',\r
- subHeaderText : ''\r
- };\r
- \r
- $scope.eventsGridsterItem = {\r
- headerText : 'Events',\r
- subHeaderText : ''\r
- };\r
-\r
- $scope.impoResGridsterItem = {\r
- headerText : 'Resources',\r
- subHeaderText : ''\r
- };\r
- \r
- this.gridsterOpts = {\r
- columns: 6,\r
- colWidth: 190,\r
- rowHeight: 190,\r
- margins: [20, 20],\r
- outerMargin: true,\r
- pushing: true,\r
- floating: true,\r
- swapping: true,\r
- draggable: {\r
- handle: '.icon-content-gridguide'\r
- }\r
- };\r
- \r
- // Run this function when user clicks on checkbox.\r
- $scope.storeSelection = function(widget) {\r
- \r
- // not needed as only 'SHOW' and 'HIDE' status_cd is expected from the micro service now\r
- /*var pendingFlag = false; \r
- if(widget.access) \r
- pendingFlag = false;\r
- else\r
- pendingFlag = widget.pending; */ \r
- \r
- var appData = { \r
- widgetId: widget.widgetid,\r
- select : widget.select,\r
- // pending : pendingFlag \r
- };\r
-\r
- widgetsCatalogService.updateWidgetCatalog(appData).then(\r
- function(result) {\r
- // $log.debug('CatalogCtrl:storeSelection result is ', result);\r
- })['catch'](function(err) {\r
- $log.error('CatalogCtrl:storeSelection: exception: ', err);\r
- });\r
- };\r
-\r
- init();\r
- }\r
- }\r
- \r
- \r
- \r
- WidgetCatalogCtrl.$inject = ['widgetsService', '$log', '$cookies', '$scope', 'conf', 'beReaderService', 'widgetsCatalogService', 'userProfileService','dashboardService','$compile','ngDialog'];\r
- angular.module('ecompApp').controller('WidgetCatalogCtrl', WidgetCatalogCtrl);\r
-\r
- angular.module('ecompApp').constant('refreshInterval', '30000');\r
-\r
- angular.module('ecompApp').directive('refreshIframe', ['$interval', 'refreshInterval', function ($interval, refreshInterval) {\r
-\r
- function link(scope, element, attrs) {\r
- var timeoutId;\r
-\r
- function updateIframe() {\r
- if(attrs.isEnlarged == "false")\r
- {\r
- element.attr('src', element.attr('src'));\r
- }\r
- }\r
-\r
- element.on('$destroy', function () {\r
- $interval.cancel(timeoutId);\r
- });\r
-\r
- // start the UI update process; save the timeoutId for cancelling\r
- /*\r
- * timeoutId = $interval(function () { updateIframe(); // update DOM },\r
- * refreshInterval);\r
- */\r
- }\r
-\r
- return {\r
- link: link\r
- };\r
- } ]);\r
-\r
-})();\r
-\r
-\r
-app.directive('dynAttr', function() {\r
- return {\r
- scope: { list: '=dynAttr' },\r
- link: function(scope, elem, attrs){\r
- for(var attr in scope.list){\r
- elem.attr(scope.list[attr].attr, scope.list[attr].value); \r
- }\r
- }\r
- };\r
-}); \r
+/*-
+ * ============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
+ *
+ * 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============================================
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+'use strict';
+(function () {
+
+ class WidgetCatalogCtrl {
+ constructor(widgetsService, $log, $cookies, $scope, conf, beReaderService, widgetsCatalogService, userProfileService,dashboardService,$compile, ngDialog) {
+
+ $scope.editWidgetModalPopup = function(availableData, resourceType) {
+ $scope.editData = JSON.stringify(availableData);
+ $scope.availableDataTemp = $scope.availableData;
+ ngDialog.open({
+ templateUrl : 'app/views/dashboard/dashboard-widget-manage.html',
+ controller : 'CommonWidgetController',
+ resolve : {
+ message : function message() {
+ var message = {
+ type : resourceType,
+ availableData : $scope.editData
+ };
+ return message;
+ }
+ }
+ }).closePromise.then(needUpdate => {
+ if(resourceType=='NEWS'){
+ $scope.updateNews();
+ }else if(resourceType=='EVENTS'){
+ $scope.updateEvents();
+ }else if(resourceType=='IMPORTANTRESOURCES'){
+ $scope.updateImportRes();
+ }
+ });
+ };
+
+ $scope.WidgetCatView = [];
+ $scope.applyPresentationDetailsToWidgetsCatalog = function(widgetsReturned){
+ var rowNo = 0;
+ for (var i = 0; i < widgetsReturned.length; i++) {
+ $scope.WidgetCatView[i] = {
+ sizeX : 2,
+ sizeY : 2,
+ headerText:'',
+ widgetIdentifier : '',
+ url : '',
+ widgetid: '',
+ attrb:'',
+ select: false,
+ };
+ $scope.WidgetCatView[i].widgetid = widgetsReturned[i].id;
+ $scope.WidgetCatView[i].headerText = widgetsReturned[i].headerName;
+
+ if(widgetsReturned[i].headerName === 'widget-news'){
+ $scope.WidgetCatView[i].widgetIdentifier = 'NEWS';
+ }
+ else
+ if(widgetsReturned[i].headerName === 'widget-resources'){
+ $scope.WidgetCatView[i].widgetIdentifier = 'IMPORTANTRESOURCES';
+ }
+ else
+ if(widgetsReturned[i].headerName === 'widget-events'){
+ $scope.WidgetCatView[i].widgetIdentifier = 'EVENTS';
+ }
+
+ $scope.WidgetCatView[i].url = widgetsReturned[i].url;
+ $scope.WidgetCatView[i].attrb = widgetsReturned[i].attrs;
+ $scope.WidgetCatView[i].select = widgetsReturned[i].select;
+ }
+
+ $scope.widgetViewData = $scope.WidgetCatView;
+
+ }
+
+ /** Widget code starts */
+ let getUserWidgets = (loginName) => {
+
+ this.isCommError = false;
+ var conf = this.conf;
+ widgetsCatalogService.getUserWidgets(loginName).then(res => {
+
+ if(!(res instanceof Array)){
+ this.isCommError = true;
+ return;
+ }
+ for(var i = 0; i < res.length; i++){
+ var widget_id = res[i][0];
+ var widget_name = res[i][1];
+ let url = this.conf.api.widgetCommon + "/" + widget_id + "/framework.js";
+ $scope.widgetsList.push({
+ id: widget_id,
+ name: widget_name,
+ headerName: widget_name,
+ url: url,
+ attrs: [{attr: 'data-' + widget_id, value: ''}],
+ status: res[i][4],
+ select: (res[i][4] == 'S' || res[i][4] === null) ? true : false
+ });
+ var script = document
+ .createElement('script');
+ script.src = url;
+ script.async = true;
+ var entry = document
+ .getElementsByTagName('script')[0];
+ entry.parentNode
+ .insertBefore(script, entry);
+ }
+ $scope.applyPresentationDetailsToWidgetsCatalog($scope.widgetsList);
+ }).catch(err => {
+ $log.error('WidgetCatalogCtrl::getUserWidgets caught error', err);
+ }).finally(()=> {
+
+ });
+ };
+
+ let init = () => {
+ userProfileService.getUserProfile()
+ .then(profile=> {
+ // $log.info('WidgetCatalogCtrl::getUserProfile: ',
+ // profile);
+ $scope.orgUserId = profile.orgUserId;
+ $scope.widgetsViewData = [];
+ $scope.widgetsView = [];
+ getUserWidgets($scope.orgUserId);
+ });
+ this.conf = conf;
+ $scope.widgetsList = [];
+ };
+
+ /** Widget code ends */
+
+ $scope.activateThis = function(ele){
+ $compile(ele.contents())($scope);
+ $scope.$apply();
+ };
+ $scope.setCommonWidget = function() {
+ /* News Events Resources */
+ var widgetLength = ($scope.widgetsViewData==null || $scope.widgetsViewData.length==0) ? 0:$scope.widgetsViewData.length;
+ $scope.widgetsViewData[widgetLength] = {
+ sizeX: 2,
+ sizeY: 2,
+ headerText: 'News',
+ width: '',
+ height: '',
+ url: '',
+ selected:true
+ };
+ $scope.widgetsViewData[widgetLength+1] = {
+ sizeX: 2,
+ sizeY: 2,
+ headerText: 'Calendar Events',
+ width: '',
+ height: '',
+ url: '',
+ selected:true
+ };
+ $scope.widgetsViewData[widgetLength+2] = {
+ sizeX: 2,
+ sizeY: 2,
+ headerText: 'Resources',
+ width: '',
+ height: '',
+ url: '',
+ selected:true
+ };
+
+ /* Setting News data */
+ $scope.newsData = [];
+ $scope.updateNews = function() {
+ $scope.newsData.length=0;
+ dashboardService.getCommonWidgetData('NEWS').then(function(res) {
+ // $log.info(res.message);
+ var newsDataJsonArray = res.response.items;
+ for (var i = 0; i < newsDataJsonArray.length; i++) {
+ $scope.newsData.push(newsDataJsonArray[i]);
+ }
+ })['catch'](function(err) {
+ $log.error('dashboard controller: failed to get news list', err);
+ });
+ }
+ $scope.updateNews();
+ /* Setting Events data */
+
+ $scope.eventData = [];
+
+ $scope.updateEvents = function() {
+ $scope.eventData.length=0;
+ dashboardService.getCommonWidgetData('EVENTS').then(function(res) {
+ var eventDataJsonArray = res.response.items;
+ for (var i = 0; i < eventDataJsonArray.length; i++) {
+ if(eventDataJsonArray[i].eventDate !=null) {
+ // yyyy-mm-dd
+ eventDataJsonArray[i].year = eventDataJsonArray[i].eventDate.substring(2,4);
+ eventDataJsonArray[i].mon = eventDataJsonArray[i].eventDate.substring(5,7);
+ eventDataJsonArray[i].day = eventDataJsonArray[i].eventDate.substring(8,10);
+ }
+ $scope.eventData.push(eventDataJsonArray[i]);
+ }
+ })['catch'](function(err) {
+ $log.error('dashboard controller: failed to get Events list', err);
+ });
+ }
+ $scope.updateEvents();
+ /* Setting Important Resources data */
+
+ $scope.importResData = [];
+ $scope.updateImportRes = function() {
+ $scope.importResData.length=0;
+ dashboardService.getCommonWidgetData('IMPORTANTRESOURCES').then(
+ function(res) {
+ // $log.info(res);
+ var importResDataJSONArray = res.response.items;
+ for (var i = 0; i < importResDataJSONArray.length; i++) {
+ $scope.importResData.push(importResDataJSONArray[i]);
+ }
+ })['catch'](function(err) {
+ $log.error('dashboard controller: failed to get resources list...', err);
+ });
+ }
+ $scope.updateImportRes();
+
+ /** ******End hardcoded news events and resources*************** */
+
+ }
+
+ $scope.newsGridsterItem = {
+ headerText : 'Test',
+ subHeaderText : ''
+ };
+
+ $scope.newsGridsterItem = {
+ headerText : 'News',
+ subHeaderText : ''
+ };
+
+ $scope.eventsGridsterItem = {
+ headerText : 'Events',
+ subHeaderText : ''
+ };
+
+ $scope.impoResGridsterItem = {
+ headerText : 'Resources',
+ subHeaderText : ''
+ };
+
+ this.gridsterOpts = {
+ columns: 6,
+ colWidth: 190,
+ rowHeight: 190,
+ margins: [20, 20],
+ outerMargin: true,
+ pushing: true,
+ floating: true,
+ swapping: true,
+ draggable: {
+ handle: '.icon-content-gridguide'
+ }
+ };
+
+ // Run this function when user clicks on checkbox.
+ $scope.storeSelection = function(widget) {
+
+ // not needed as only 'SHOW' and 'HIDE' status_cd is expected from the micro service now
+ /*var pendingFlag = false;
+ if(widget.access)
+ pendingFlag = false;
+ else
+ pendingFlag = widget.pending; */
+
+ var appData = {
+ widgetId: widget.widgetid,
+ select : widget.select,
+ // pending : pendingFlag
+ };
+
+ widgetsCatalogService.updateWidgetCatalog(appData).then(
+ function(result) {
+ // $log.debug('CatalogCtrl:storeSelection result is ', result);
+ })['catch'](function(err) {
+ $log.error('CatalogCtrl:storeSelection: exception: ', err);
+ });
+ };
+
+ init();
+ }
+ }
+
+
+
+ WidgetCatalogCtrl.$inject = ['widgetsService', '$log', '$cookies', '$scope', 'conf', 'beReaderService', 'widgetsCatalogService', 'userProfileService','dashboardService','$compile','ngDialog'];
+ angular.module('ecompApp').controller('WidgetCatalogCtrl', WidgetCatalogCtrl);
+
+ angular.module('ecompApp').constant('refreshInterval', '30000');
+
+ angular.module('ecompApp').directive('refreshIframe', ['$interval', 'refreshInterval', function ($interval, refreshInterval) {
+
+ function link(scope, element, attrs) {
+ var timeoutId;
+
+ function updateIframe() {
+ if(attrs.isEnlarged == "false")
+ {
+ element.attr('src', element.attr('src'));
+ }
+ }
+
+ element.on('$destroy', function () {
+ $interval.cancel(timeoutId);
+ });
+
+ // start the UI update process; save the timeoutId for cancelling
+ /*
+ * timeoutId = $interval(function () { updateIframe(); // update DOM },
+ * refreshInterval);
+ */
+ }
+
+ return {
+ link: link
+ };
+ } ]);
+
+})();
+
+
+app.directive('dynAttr', function() {
+ return {
+ scope: { list: '=dynAttr' },
+ link: function(scope, elem, attrs){
+ for(var attr in scope.list){
+ elem.attr(scope.list[attr].attr, scope.list[attr].value);
+ }
+ }
+ };
+});