https://support.rowriter.com/App/Components/Administration/Adminis…?21ed1c0294cbf1b58a6d3e5849a35af4
1app.controller('administrationController', ['$scope', '$rootScope', '$http', '$timeout', 'Upload', 'administrationService', function ($scope, $rootScope, $http, $timeout, Upload, administrationService) { 2 $scope.hubForm = {}; 3 $scope.featureForm = {}; 4 $scope.authenticationForm = {}; 5 $scope.displayForm = {}; 6 $scope.logo = []; 7 8 $scope.displaySettingsForm = {}; 9 var migrationConfirmWarningMessage = 'Warning this will replace your current settings with any portal settings you defined in your old portal.\nDo you want to continue with this operation?'; 10 11 administrationService.GetAdminConfiguration(function (data) { 12 $scope.adminConfig = data; 13 $scope.hubSettingsForm = angular.copy($scope.adminConfig.CustomerHub); 14 $scope.hubSettingsForm.DisplaySAMLConfiguration = $scope.adminConfig.DisplaySAMLConfiguration; 15 $scope.hubSettingsForm.DisplayOAuth2Configuration = $scope.adminConfig.DisplayOAuth2Configuration; 16 $scope.hubSettingsForm.AllowExternalDomainCookies = $scope.adminConfig.AllowExternalDomainCookies; 17 $scope.hubSettingsForm.SAML = $scope.adminConfig.SAML; 18 $scope.hubSettingsForm.OAuth2Configuration = angular.copy($scope.adminConfig.OAuth2Configuration); 19 $scope.hubSettingsForm.associatedProductFamilies = angular.copy($scope.adminConfig.AssociatedProductFamilies); 20 $scope.authenticationSettingsForm = angular.copy($scope.adminConfig.AuthenticationSettings); 21 $scope.authenticationSettingsForm.RequireEmailVerificationForSignup = $scope.adminConfig.RequireEmailVerificationForSignup; 22 $scope.featureSettingsForm = angular.copy($scope.adminConfig.FeatureSettings); 23 $scope.displaySettingsForm = angular.copy($scope.adminConfig.DisplaySettings); 24 $scope.requestTicketTypes = $scope.adminConfig.TicketTypes; 25 $scope.requestGroups = $scope.adminConfig.Groups; 26 $scope.productLines = $scope.adminConfig.ProductLines; 27 $scope.sortOrderTypes = $scope.adminConfig.SortOrderTypes; 28 }); 29 30 $scope.submitHub = function (form) { 31 var r = confirm("Changing these settings can impact the ability for you and users to access the hub, please verify your settings are correct and click ok to continue."); 32 if (r == true) { 33 var formInfo = this.hubForm; 34 administrationService.UpdateCustomerHub(form, function (data) { 35 if (data.ClassName) { 36 alert(data.Message); 37 } 38 else { 39 $scope.adminConfig.CustomerHub = form; 40 $scope.adminConfig.SAML = form.SAML 41 $scope.adminConfig.AllowExternalDomainCookies = form.AllowExternalDomainCookies 42 $scope.adminConfig.OAuth2Configuration = angular.copy(form.OAuth2Configuration); 43 formInfo.$setPristine(); 44 } 45 }); 46 } 47 }; 48 49 $scope.resetHub = function () { 50 $scope.hubSettingsForm = angular.copy($scope.adminConfig.CustomerHub); 51 $scope.hubSettingsForm.DisplaySAMLConfiguration = $scope.adminConfig.DisplaySAMLConfiguration; 52 $scope.hubSettingsForm.DisplayOAuth2Configuration = $scope.adminConfig.DisplayOAuth2Configuration; 53 $scope.hubSettingsForm.AllowExternalDomainCookies = $scope.adminConfig.AllowExternalDomainCookies; 54 $scope.hubSettingsForm.SAML = $scope.adminConfig.SAML; 55 $scope.hubSettingsForm.OAuth2Configuration = angular.copy($scope.adminConfig.OAuth2Configuration); 56 57 this.hubForm.$setPristine(); 58 }; 59 60 $scope.submitAuthenticationSettings = function (form) { 61 var formInfo = this.authenticationForm; 62 administrationService.UpdateAuthenticationSettings(form, function (data) { 63 $scope.adminConfig.AuthenticationSettings = data.AuthenticationSettings; 64 $scope.adminConfig.RequireEmailVerificationForSignup = data.RequireEmailVerificationForSignup; 65 $scope.authenticationSettingsForm = angular.copy(data.AuthenticationSettings); 66 $scope.authenticationSettingsForm.RequireEmailVerificationForSignup = data.RequireEmailVerificationForSignup; 67 formInfo.$setPristine(); 68 }) 69 }; 70 71 $scope.resetAuthenticationSettings = function () { 72 $scope.authenticationSettingsForm = angular.copy($scope.adminConfig.AuthenticationSettings); 73 $scope.authenticationSettingsForm.RequireEmailVerificationForSignup = $scope.adminConfig.RequireEmailVerificationForSignup; 74 this.authenticationForm.$setPristine(); 75 }; 76 77 $scope.submitFeatureSettings = function (form) { 78 var formInfo = this.featureForm;
79 administrationService.UpdateFeatureSettings(form, function (data) { 80 $scope.adminConfig.FeatureSettings = data; 81 $scope.featureSettingsForm = angular.copy($scope.adminConfig.FeatureSettings); 82 formInfo.$setPristine(); 83 }); 84 }; 85 86 $scope.resetFeatureSettings = function () { 87 $scope.featureSettingsForm = angular.copy($scope.adminConfig.FeatureSettings); 88 this.featureForm.$setPristine(); 89 }; 90 91 $scope.submitDisplaySettings = function (form) { 92 var formInfo = this.displayForm; 93 administrationService.UpdateDisplaySettings(form, function (data) { 94 $rootScope.settings.Display = data; 95 $scope.adminConfig.DisplaySettings = data; 96 formInfo.$setPristine(); 97 }); 98 99 $scope.uploadLogo(function () { }); 100 }; 101 102 $scope.resetDisplaySettings = function () { 103 $scope.displaySettingsForm = angular.copy($scope.adminConfig.DisplaySettings); 104 this.displayForm.$setPristine(); 105 }; 106 107 $scope.toggleAllTicketing = function (val) { 108 $scope.featureSettingsForm.EnableTicketCreation = val; 109 $scope.featureSettingsForm.EnableMyTickets = val; 110 $scope.featureSettingsForm.EnableOrganizationTickets = val; 111 } 112 113 $scope.toggleAllAnonymous = function (val) { 114 $scope.authenticationSettingsForm.AnonymousKBAccess = val; 115 $scope.authenticationSettingsForm.AnonymousProductAccess = val; 116 $scope.authenticationSettingsForm.AnonymousTicketAccess = val; 117 $scope.authenticationSettingsForm.AnonymousWikiAccess = val; 118 } 119 120 $scope.toggleChildProductAssociation = function (val) { 121 if (val === false) { 122 $scope.featureSettingsForm.EnableAnonymousProductAssociation = val; 123 } 124 } 125 126 $scope.toggleParentProductAssociation = function (val) { 127 if (val === true) { 128 $scope.featureSettingsForm.EnableCustomerProductAssociation = val; 129 } 130 } 131 132 // On toggling off of the enable Contact additions, we want to also toggle off the filter contacts by same customer setting. 133 $scope.onToggleEnableContactAssociation = function (val) { 134 if (val === false) { 135 $scope.featureSettingsForm.AssociateContactsFromSameOrgOnly = false; 136 } 137 } 138 139 // When toggling the "Contacts must be part of the authenticated customer" setting, we also want to toggle other settings 140 $scope.onToggleFilterContactBySameCustomer = function (val) { 141 if (val === true) { 142 // toggle on the "enable Contact additions" setting since you cant have this feature turned on if you cannot add additional contacts. 143 $scope.featureSettingsForm.EnableTicketContactAdditions = true; 144 // toggle off the "anonymous ticketing" setting since you cant have both on at once. 145 $scope.authenticationSettingsForm.AnonymousTicketAccess = false; 146 this.authenticationForm.$setDirty(); 147 } 148 } 149 150 // When toggling the "Anonymous Ticketing" setting on, turn off "Contacts must be part of the authenticated customer" since you can't have both on at once 151 $scope.onToggleAnonymousTicketing = function (val) { 152 if (val === true) { 153 $scope.featureSettingsForm.AssociateContactsFromSameOrgOnly = false; 154 this.featureForm.$setDirty(); 155 } 156 } 157 158 // If contact/product Restriction is turned on, turn organization tickets on. 159 $scope.toggleParentOrganizationTickets = function (val) { 160 if (val === true) { $scope.featureSettingsForm.EnableOrganizationTickets = val; } 161 } 162 163 // If Organization Tickets is turned off, turn off also its children 164 $scope.toggleChildOrganizationTickets = function (val) { 165 if (val === false) { $scope.featureSettingsForm.EnableContactProductRestriction = val; } 166 } 167 168 $scope.addLogo = function (file) { 169 var filename = file[0].name.replace(" ", '%20'); 170 file = Upload.rename(file[0], filename) 171 $scope.logo = file; 172 $scope.uploadLogo(function () { 173 }); 174 }; 175 176 $scope.uploadLogo = function (callback) { 177 if ($scope.logo) { 178 Upload.upload({ 179 url: '../../api/Administration/UploadLogo', 180 data: { files: $scope.logo } 181 }).then(function (response) { 182 $timeout(function () { 183 var path = $rootScope.settings.TSAppURL + '/dc/' + $rootScope.settings.Hub.OrganizationID + '/images/hublogo/' + $rootScope.settings.Hub.CustomerHubID + '/' + response.data.Attachments[0].FileName; 184 $rootScope.settings.HubLogoURL = path; 185 $scope.logo = []; 186 callback(); 187 }); 188 }, function (response) { 189 if (response.status > 0) { 190 $scope.errorMsg = response.status + ': ' + response.data; 191 $scope.logo = []; 192 } 193 }, function (evt) { 194 $scope.progress = 195 Math.min(100, parseInt(100.0 * evt.loaded / evt.total)); 196 }); 197 } 198 }; 199 200}]);
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.