1angular 2 .module('pages.unSubscribe', ['Dating']) 3 .config([ 4 '$stateProvider', 5 function ($stateProvider) { 6 $stateProvider 7 .state('dating.pages.unSubscribe', { 8 url: 'emailUnsubscribe', 9 views: { 10 'sections@': { 11 templateUrl: globalParams.templateUrls.pages.un_subscribe, 12 controller: 'UnSubscribeCtrl as unSubscribeCtrl' 13 } 14 } 15 }) 16 .state('dating.pages.unsubscribeFromAll', { 17 url: 'emailUnsubscribeAll', 18 deepStateRedirect: { default: { state: 'dating.pages.unSubscribe' } } 19 }) 20 .state('dating.pages.unsubscribeFromSpecials', { 21 url: 'emailUnsubscribeSpecials', 22 deepStateRedirect: { default: { state: 'dating.pages.unSubscribe' } } 23 }); 24 } 25 ]) 26 .factory('sharedData', function () { 27 var userInfo = {}; 28 userInfo.safeMode = false; 29 userInfo.exoSubData = ''; 30 userInfo.adniumSubData = ''; 31 userInfo.goAdserverSubData = ''; 32 33 userInfo.safeModeChanged = function (value) { 34 this.safeMode = value; 35 }; 36 37 userInfo.exoSubDataChanged = function (value) { 38 this.exoSubData = value; 39 }; 40 41 userInfo.adniumSubDataChanged = function (value) { 42 this.adniumSubData = value; 43 }; 44 45 userInfo.goAdserverSubDataChanged = function (value) { 46 this.goAdserverSubData = value; 47 }; 48 49 return userInfo; 50 }) 51 .controller( 52 'UnSubscribeCtrl', 53 function ($rootScope, $location, $timeout, PagesModel, globalParamsService, sharedData) { 54 var GLOBALS = globalParamsService.GLOBALS; 55 var unSubscribeCtrl = this, 56 REDIRECT_COUNTER = 15, 57 object = $location.search(), 58 params = { 59 email: object.email, 60 category: object.category, 61 provider: object.provider 62 }; 63 64 unSubscribeCtrl.email = decodeIfValidBase64(object.email); 65 unSubscribeCtrl.isMobile = parseInt(GLOBALS.isMobile); 66 unSubscribeCtrl.siteShortName = GLOBALS.siteShortName; 67 unSubscribeCtrl.status = 'initial'; 68 unSubscribeCtrl.awsImagesUrl = GLOBALS.s3Path + 'images/'; 69 unSubscribeCtrl.removeOptimiserRedirects = GLOBALS.removeOptimiserRedirects; 70 unSubscribeCtrl.sendTrafficToIMLive = GLOBALS.sendTrafficToIMLive; 71 PagesModel.setCurrentPage('UnSubscribe'); 72 73 function decodeIfValidBase64(email) { 74 try { 75 var decodedEmail = atob(email); 76 return decodedEmail; 77 } catch (error) { 78 return email; 79 } 80 } 81 82 var redirectOnTimeOut = function () { 83 unSubscribeCtrl.redirectCounter--; 84 if (unSubscribeCtrl.redirectCounter == 0) { 85 if (unSubscribeCtrl.sendTrafficToIMLive) { 86 window.location.href = 'https://go.tbllad.com/redirect.go?spaceid=11733592&subid=&keywords='; 87 } else { 88 window.location.href = unSubscribeCtrl.unSubscribePageData.sRedirectLink; 89 } 90 } else { 91 $timeout(redirectOnTimeOut, 1000); 92 } 93 }; 94 95 var resubscribe = function () { 96 PagesModel.reSubscribe(params).then(function (result) { 97 unSubscribeCtrl.status = result.data.status; 98 }); 99 }; 100 101 PagesModel.unSubscribe(params).then(function (result) { 102 if (_.isEmpty(result.data)) { 103 window.location.href = '/'; 104 } else { 105 unSubscribeCtrl.unSubscribePageData = result.data; 106 unSubscribeCtrl.showAds = result.data.showAds; 107 unSubscribeCtrl.showAdvertisementLabel = result.data.markAdvert; 108 $rootScope.$broadcast('sign-out:success'); 109 unSubscribeCtrl.redirectCounter = REDIRECT_COUNTER; 110 sharedData.safeModeChanged(result.data.bSafeMode); 111 sharedData.exoSubDataChanged(result.data.exoSubData); 112 sharedData.adniumSubDataChanged(result.data.adniumSubData); 113 sharedData.goAdserverSubDataChanged(result.data.goAdserverSubData); 114 if (!unSubscribeCtrl.removeOptimiserRedirects) { 115 redirectOnTimeOut(); 116 } 117 } 118 $rootScope.$broadcast('unsubDataLoaded', { 119 safeMode: result.data.bSafeMode, 120 exoSubData: result.data.exoSubData, 121 exoSubUrlParams: result.data.exoSubUrlParams, 122 adniumSubData: result.data.adniumSubData, 123 adniumSubUrlParams: result.data.adniumSubUrlParams 124 }); 125 unSubscribeCtrl.isLoading = false; 126 }); 127 128 unSubscribeCtrl.isLoading = true; 129 unSubscribeCtrl.resubscribe = resubscribe; 130 $(window).on('resize', function () { 131 var w = window.innerWidth;
132 unSubscribeCtrl.isMobile = w <= 900; 133 }); 134 } 135 ) 136 .controller('SeparateUnsubscribeCtrl', function (PagesModel, globalParamsService, authService, $state) { 137 var GLOBALS = globalParamsService.GLOBALS; 138 var SeparateUnsubscribeCtrl = this; 139 SeparateUnsubscribeCtrl.isLoggedIn = authService.isAuthenticated; 140 if (!SeparateUnsubscribeCtrl.isLoggedIn) { 141 $state.go(window.globalParams.isMobileScreen ? 'dating.pages.datingCenterMobile' : 'dating.pages.datingCenter'); 142 return; 143 } 144 PagesModel.setCurrentPage('SeparateUnsubscribe'); 145 146 SeparateUnsubscribeCtrl.unsubscribeFromAll = GLOBALS.unsubscribeFromAll; 147 SeparateUnsubscribeCtrl.unsubscribeFromSpecials = GLOBALS.unsubscribeFromSpecials; 148 SeparateUnsubscribeCtrl.showCustomResponse = false; 149 SeparateUnsubscribeCtrl.userEmailAddress = GLOBALS.userInfo.emailCurrentUser; 150 });
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.