[PORTAL-7] Rebase
[portal.git] / ecomp-portal-FE-common / client / app / views / support / contact-us / contact-us.controller.js
diff --git a/ecomp-portal-FE-common/client/app/views/support/contact-us/contact-us.controller.js b/ecomp-portal-FE-common/client/app/views/support/contact-us/contact-us.controller.js
new file mode 100644 (file)
index 0000000..0d39a65
--- /dev/null
@@ -0,0 +1,171 @@
+/*-\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
+\r
+(function () { \r
+               \r
+    class ContactUsCtrl {\r
+       constructor($log, contactUsService, applicationsService, $modal, ngDialog, $state,$anchorScroll,$location) {  \r
+               \r
+               contactUsService.getContactUSPortalDetails().then(res => {\r
+                       // $log.info('ContactUsCtrl:: contactUsService getContactUSPortalDetails res',res);\r
+                // $log.info('getting res',res);\r
+                var result = (typeof(res.response) != "undefined" && res.response!=null)?res.response:null;\r
+                //     $log.info('result',result);\r
+                //     $log.info('done');\r
+                var source = JSON.parse(result);\r
+                //     $log.info(source); \r
+                this.ush_TicketInfoUrl = source.ush_ticket_url; \r
+                this.portalInfo_Address = source.feedback_email_address; \r
+                this.feedback_Url = source.portal_info_url;                    \r
+               }).catch(err=> {\r
+                       $log.error('ContactUsCtrl:error:: ', err);\r
+            }).finally(() => {\r
+           });\r
+               \r
+               let init = () => {\r
+                // $log.info('ecomp app::contact-us-controller::initializing...');\r
+                this.appTable=[];\r
+                this.functionalTableData=[];\r
+            };\r
+            init();     \r
+            \r
+            let updateContactUsTable = () => {\r
+               contactUsService.getAppsAndContacts().then(res=> {\r
+                               // $log.info('ContactUsCtrl:: contactUsService getAppsAndContacts res',res);\r
+                       var tableData=[];\r
+                       // $log.info('getting res',res);\r
+                       var result = (typeof(res.response) != "undefined" && res.response!=null)?res.response:null;\r
+                       // $log.info('result',result);\r
+                       // $log.info('done');\r
+                       var source = result;\r
+                       // $log.info(source);\r
+                       // Drop Portal app, empty name entries\r
+                       for(var i=0;i<source.length; i++) {\r
+                               var dataArr = source[i];\r
+                               if ( !dataArr.appName  || dataArr.appId == 1) {\r
+                                       continue;\r
+                               }\r
+                       var dataTemp={\r
+                               app_name: dataArr.appName,\r
+                               contact_name: dataArr.contactName,\r
+                               contact_email: dataArr.contactEmail,\r
+                               desc: dataArr.description,\r
+                               url_Info: dataArr.url,\r
+                               app_Id: dataArr.appId,\r
+                       }\r
+                       tableData.push(dataTemp);\r
+                       }               \r
+                       this.appTable=tableData;\r
+                 }).catch(err=> {\r
+                                $log.error('ContactUsCtrl.updateContactUsTable:error:: ', err);\r
+                        })\r
+            };\r
+            \r
+            contactUsService.getAppCategoryFunctions().then(res=> {\r
+                       // $log.info('ContactUsCtrl:: contactUsService getAppCategoryFunctionsthen res',res);\r
+               var tablefunctionalData=[];\r
+               // $log.info('getting res',res);\r
+               var result = (typeof(res.response) != "undefined" && res.response!=null)?res.response:null;\r
+               // $log.info('result',result);\r
+               // $log.info('done');\r
+               var source = result;\r
+               // $log.info(source);                   \r
+               for(var i=0;i<source.length; i++) {\r
+                       var datafunctionalArr = source[i];\r
+                       var datafuntionalTemp={\r
+                               category: datafunctionalArr.category,\r
+                               app_Name: datafunctionalArr.application,\r
+                               functions: datafunctionalArr.functions,\r
+                               app_Id: datafunctionalArr.appId,\r
+                       }\r
+                       tablefunctionalData.push(datafuntionalTemp);\r
+               }               \r
+               this.functionalTableData=tablefunctionalData;\r
+             }).catch(err=> {\r
+                        $log.error('ContactUsCtrl:error:: ', err);\r
+                })\r
+            \r
+            updateContactUsTable();\r
+            this.editContactUsModalPopup = () => {\r
+                 // $log.debug('ContactUsCtrl::editContactUsModalPopup updating table data...');               \r
+                 var modalInstance = ngDialog.open({\r
+                     templateUrl: 'app/views/support/contact-us/contact-us-manage/contact-us-manage.html',\r
+                     controller: 'ContactUsManageController',\r
+                     resolve: {\r
+                         message: function message() {\r
+                             var message = {\r
+                                 type: 'Contact',\r
+                             };\r
+                             return message;\r
+                         }\r
+                     }\r
+                 }).closePromise.then(needUpdate => {                   \r
+                        updateContactUsTable();\r
+                    });       \r
+             };\r
+             \r
+             this.goToSection = (id) => {\r
+               \r
+                var targetDiv = document.getElementById(id);  \r
+                \r
+                var offSetHeight = 0;\r
+                for(var i=0;i<this.appTable.length;i++){  \r
+                        if(this.appTable[i].app_Id==id)\r
+                                break;\r
+                        if(this.appTable[i].showFlag==true){\r
+                                offSetHeight+=document.getElementById('collapse'+i).clientHeight;                              \r
+                        }\r
+                }\r
+                console.log(offSetHeight);\r
+                this.appTable.forEach(d => d.showFlag = false);\r
+               // let index = this.appTable.findIndex(a => a.app_Id == id);\r
+                var index =-1;\r
+                for(var i=0; i<this.appTable.length;i++){\r
+                        if(this.appTable[i].app_Id==id){\r
+                                index = i;\r
+                                break;\r
+                        }\r
+                }\r
+                console.log(index);\r
+                if (index > -1) {\r
+                        // setting the showFlag to true based on index comparing with the app_Id \r
+                        this.appTable[index].showFlag = true;\r
+                        $location.hash('appId'+index);\r
+                     $anchorScroll();\r
+               /*       $('#contentId').animate({\r
+                           scrollTop: targetDiv.offsetTop-offSetHeight\r
+                       }, 'fast');*/\r
+                }                               \r
+                \r
+             };\r
+             \r
+             // Take the user to the application on the get access page.\r
+             this.goGetAccess = (appName) => {\r
+                // $log.debug('ContactUsCtrl::goGetAccess received name ' + appName);\r
+                applicationsService.goGetAccessAppName = appName;\r
+                $state.go('root.getAccess');\r
+             };\r
+             \r
+        }\r
+    }\r
+    ContactUsCtrl.$inject = ['$log','contactUsService', 'applicationsService', '$modal', 'ngDialog', '$state','$anchorScroll','$location'];\r
+    angular.module('ecompApp').controller('ContactUsCtrl', ContactUsCtrl);\r
+})();\r