{"version":3,"sources":["../../../Assets/Scripts/App/logout.js","../../../Assets/Scripts/App/app.js","../../../Assets/Scripts/App/Services/WowTrackingService.js","../../../Assets/Scripts/App/Services/accountsService.js","../../../Assets/Scripts/App/Services/clientService.js","../../../Assets/Scripts/App/Services/companyService.js","../../../Assets/Scripts/App/Services/dashboardService.js","../../../Assets/Scripts/App/Services/exportAccountsService.js","../../../Assets/Scripts/App/Services/forceSSOService.js","../../../Assets/Scripts/App/Services/impersonateService.js","../../../Assets/Scripts/App/Services/loginService.js","../../../Assets/Scripts/App/Services/pagerService.js","../../../Assets/Scripts/App/Services/permissionsService.js","../../../Assets/Scripts/App/Services/registerService.js","../../../Assets/Scripts/App/Services/stateService.js","../../../Assets/Scripts/App/Services/thirdPartyCredentialsService.js","../../../Assets/Scripts/App/Services/thirdPartyService.js","../../../Assets/Scripts/App/Services/wizard2Service.js","../../../Assets/Scripts/App/Services/workbooksService.js","../../../Assets/Scripts/App/Factory/underscoreFactory.js","../../../Assets/Scripts/App/filters.js","../../../Assets/Scripts/App/Directives/directives.js"],"names":["SignOut","callback","$","post","always","SignOutGatorLeads","e","console","log","getScript","data","textStatus","jqxhr","hide","show","SignOutGatorMail","SignOutTheGators","SignOutGatorWorkflow","SignOutGatorSocial","SignOutPopup","SignOutGatorSurvey","AccountType","User","Company","Partner","PartnerSuperAdmin","Admin","SuperAdmin","ssoEndPoints","None","Authenticate","Unlink","ChangePassword","AttachClientUser","GetClientAccountsByEmail","AttachClientUsers","GetAdditionalAccounts","CreateAccount","gatorClients","Mail","Express","Leads","OldSocial","Workflow","Docs","SignOn","Creator","Survey","SendForensics","SEO","Popup","Report","Social","routes","$routeProvider","$httpProvider","$locationProvider","$provide","when","templateUrl","title","controller","controllerAs","otherwise","html5Mode","interceptors","push","$q","$location","$rootScope","responseError","rejection","status","url","response","errors","unhandled","currentError","reject","decorator","$sniffer","msie","parseInt","exec","navigator","userAgent","toLowerCase","hasEvent","event","call","this","window","history","pushState","app","angular","module","config","inputModifiedConfigProvider","disableGlobally","$sceDelegateProvider","resourceUrlWhitelist","service","trackPage","email","firstName","lastName","_wow","$http","getAccounts","filter","start","count","get","params","then","unlockAccount","accountId","getAccount","getPendingRequests","createAccount","account","clientToken","recaptcha","password","addEnvironment","enviroment","isAdmin","AddIpAddress","ipAddress","AccountId","IpAddress","updateAccount","deleteAccount","getAuthorizedAccount","verifyGoogleAuthenticator","code","secretKey","securityQuestionId","securityQuestionAnswer","SecretKey","SecurityQuestionId","toString","SecurityQuestionAnswer","getSecurityQuestions","includeDisabledQuestions","getGoogleAuthenticatorBarcode","getAuthenticatedAccount","activate","token","deactivate","reactivate","sendActivationEmail","authenticateIpAddress","resetPassword","adminResetPassword","resetAuthenticator","changePassword","currentPassword","newPassword","addSocialEnvironment","newSocialEnviromentRequest","createCannyUser","getCannySsoToken","getClients","companyService","companyId","displayName","uniqueId","ssoClientId","addEmailDomain","emailDomain","removeEmailDomain","addIpAddress","removeIpAddress","disableImpersonation","deactivateCompany","reactivateCompany","getCompanies","name","page","take","getCompanyById","id","saveCompany","company","createCompany","saveCompanyDetails","companyName","dynamicsId","workbooksOrganisationId","workbooksOrganisationName","partnerCode","checkDomain","domain","checkIpAddress","showProduct","clientId","hideProduct","createEnvironment","updateIntegrationCredentials","environmentId","username","GetClients","GetClientRedirectUrl","linkId","attachAccount","clientDetailsId","Username","Password","Type","ClientDetailsId","removeClientUser","delete","defaultClientUser","updateClientAccounts","accounts","put","exportAccounts","startDate","endDate","create","impersonateService","getUrl","login","googleAuthenticatorCode","secretQuestionAnswer","authenticatorRememberMe","redirectUrl","scope","GoogleAuthenticatorCode","SecretQuestionAnswer","AuthenticatorRememberMe","requestPassword","logOut","location","pagerService","_","getPager","totalItems","currentPage","pageSize","startPage","endPage","totalPages","Math","ceil","startIndex","endIndex","pages","range","GetPager","GetClientDetails","PostTokenRefresh","clientid","scopes","permissions","GetAllClientsforAccount","DeleteClientforAccount","accountClientId","GetAllClientsforCompany","CreateCompanyClient","enviromentId","DeleteCompanyClient","UpdateClientPassword","ShowClientSecret","registerService","addRegistration","registration","accountRegistration","error","getRegistrations","getRegistration","activateRegistration","productAccount","dynamicsLookup","states","Array","model","saveState","args","toJson","restoreState","undefined","fromJson","$on","thirdPartyCredentialsService","getThirdParties","getAll","request","update","thirdPartyService","getForensicsParams","urlParams","getForensicsToken","getSEO","attach","workbooksService","searchOrganisations","factory","$window","$filter","getValue","element","propertyArray","value","forEach","property","parseString","input","split","array","propertyString","target","properties","item","directive","require","link","elem","attrs","ctrl","otherInput","inheritedData","repeatPassword","$parsers","$viewValue","$setValidity","restrict","ngModel","rulesPassed","rule","description","validator","className","valid","passwordInput","ngPasswordInput","passed","rules","match","length","$interval","updateDidYouKnow","i","j","DidYouKnowMessages","html","stopWord","on","cancel","unshift","inputValue","digits","s","isNaN","join","$render","$validators","ipaddress","modelValue","viewValue","$isEmpty","matcher","bind","which","$apply","$eval","myEnter","preventDefault","$timeout","$parse","focusMe","$watch","focus","assign"],"mappings":"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","file":"app.min.js","sourcesContent":["function SignOut(callback) {\r\n try {\r\n $.post('api/authentication/logout', function () {\r\n\r\n }).always(function () {\r\n SignOutGatorLeads(callback);\r\n });\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n}\n\nfunction SignOutGatorLeads(callback) {\r\n try {\r\n $.getScript(\"https://leads.communigator.co.uk/Account/LogOff?actionValue=ssoLogOff\", function (data, textStatus, jqxhr) {\r\n $(\".GatorLeads img\").hide();\n $(\".GatorLeads i\").show();\r\n }).always(function () {\r\n SignOutGatorMail(callback);\r\n });\r\n } catch (e) {\r\n }\r\n}\r\n\r\nfunction SignOutGatorMail(callback) {\r\n try {\r\n $.getScript(\"https://gatormail.communigator.co.uk/default.aspx?action=logoff\", function (data, textStatus, jqxhr) {\r\n $(\".GatorMail img\").hide();\r\n $(\".GatorMail i\").show();\r\n }).always(function () {\r\n SignOutTheGators(callback);\r\n });\r\n } catch (e) {\r\n }\r\n}\n\nfunction SignOutTheGators(callback) {\r\n try {\r\n $.getScript(\"https://guru.communigator.co.uk/default.aspx?action=logoff\", function (data, textStatus, jqxhr) {\r\n \r\n }).always(function () {\r\n SignOutGatorWorkflow(callback);\r\n });\r\n } catch (e) {\r\n }\r\n}\n\n//function SignOutGatorExpress() {\r\n// try {\r\n// $.getScript(\"https://guru.communigator.co.uk/GatorExpress/api/Authentication/LogOut\", function (data, textStatus, jqxhr) {\r\n// $(\".GatorExpress img\").hide();\n// $(\".GatorExpress i\").show();\r\n// }).always(function () {\r\n// SignOutGatorWorkflow();\r\n// });\r\n// } catch (e) {\r\n\n// }\r\n//}\n\nfunction SignOutGatorWorkflow(callback) {\r\n try {\r\n $.getScript(\"https://productservices.communigator.co.uk/GatorWorkflow/api/authentication/log_out\", function () {\r\n $(\".GatorWorkflow img\").hide();\n $(\".GatorWorkflow i\").show();\r\n }).always(function () {\r\n SignOutGatorSocial(callback);\r\n });\r\n } catch (e) {\r\n\n }\r\n}\n\nfunction SignOutGatorSocial(callback) {\r\n try {\r\n $.getScript(\"https://gsocial.communigator.co.uk/auth/logout\", function (data, textStatus, jqxhr) {\r\n $(\".GatorSocial img\").hide();\r\n $(\".GatorSocial i\").show();\r\n }).always(function () {\r\n SignOutPopup(callback);\r\n });\r\n } catch (e) {\r\n\n }\r\n}\r\n\r\nfunction SignOutPopup(callback) {\r\n try {\r\n $.getScript(\"https://popup.communigator.co.uk/Account/LogOff?actionValue=ssoLogOff\", function (data, textStatus, jqxhr) {\r\n $(\".GatorPopup img\").hide();\r\n $(\".GatorPopup i\").show();\r\n }).always(function () {\r\n SignOutGatorSurvey(callback);\r\n });\r\n } catch (e) {\r\n }\r\n}\r\n\nfunction SignOutGatorSurvey(callback) {\r\n try {\r\n $.getScript(\"https://survey.communigator.co.uk/api/authentication/Logout\", function (data, textStatus, jqxhr) {\r\n $(\".GatorSurvey img\").hide();\r\n $(\".GatorSurvey i\").show();\r\n if (typeof callback !== 'undefined')\r\n callback();\r\n });\r\n } catch (e) {\r\n \n }\r\n \r\n}\r\n\r\n\r\n//function SignOutReport() {\r\n// try {\r\n// $.getScript(\"https://popup.communigator.co.uk/request/api/LogOff?actionValue=ssoLogOff\", function (data, textStatus, jqxhr) {\r\n// $(\".GatorReport img\").hide();\r\n// $(\".GatorReport i\").show();\r\n// }).always(function () {\r\n// SignOutGatorSurvey(callback);\r\n// });\r\n// } catch (e) {\r\n// }\r\n//}","/// \r\n/// \r\n\r\nvar AccountType = {\r\n User: 0,\r\n Company: 1,\r\n Partner: 2,\r\n PartnerSuperAdmin: 3,\r\n Admin: 4,\r\n SuperAdmin: 5\r\n};\r\n\r\nvar ssoEndPoints =\r\n{\r\n /// \r\n /// No Api's Available\r\n /// \r\n None: 0,\r\n\r\n /// \r\n /// Authenticate Api Available\r\n /// \r\n Authenticate: 1 << 0, // returns 1 = 2 to power of 0\r\n\r\n /// \r\n /// Unlink Api Available\r\n /// \r\n Unlink: 1 << 1, // returns 2 = 2 to power of 1\r\n\r\n /// \r\n /// The change password Api Available\r\n /// \r\n ChangePassword: 1 << 2, // returns 4 = 2 to power of 2\r\n\r\n /// \r\n /// Attach Client User Api Available\r\n /// \r\n AttachClientUser: 1 << 3, // returns 8 = 3 to power 3\r\n\r\n /// \r\n /// Get client accounts by email Api Available\r\n /// \r\n GetClientAccountsByEmail: 1 << 4, // returns 16 = 4 to power 4\r\n\r\n /// \r\n /// Get clients attached to user Api Available\r\n /// \r\n AttachClientUsers: 1 << 5,\r\n\r\n /// \r\n /// Get additional accounts Api Available\r\n /// \r\n GetAdditionalAccounts: 1 << 6,\r\n\r\n /// \r\n /// The create account Api Available\r\n /// \r\n CreateAccount: 1 << 7\r\n};\r\n\r\nvar gatorClients = {\r\n Mail: 1,\r\n Express: 2,\r\n Leads: 3,\r\n OldSocial: 4,\r\n Workflow: 5,\r\n Docs: 6,\r\n SignOn: 7,\r\n Creator: 8,\r\n Survey: 9,\r\n SendForensics: 10,\r\n SEO: 11,\r\n Popup: 12,\r\n Report: 13,\r\n Social: 14\r\n};\r\n\r\n(function () {\r\n\r\n 'use strict';\r\n\r\n var app = angular.module('app',\r\n [\r\n 'ngRoute',\r\n 'ngInputModified',\r\n 'ui.bootstrap',\r\n 'vcRecaptcha',\r\n 'mwl.confirm',\r\n 'underscore',\r\n 'angularLoad',\r\n 'ngBootbox',\r\n 'ngCookies'\r\n ]);\r\n\r\n app.config(['$routeProvider', '$httpProvider', '$locationProvider', '$provide', routes]);\r\n\r\n app.config([\r\n 'inputModifiedConfigProvider', function(inputModifiedConfigProvider) {\r\n inputModifiedConfigProvider\r\n .disableGlobally();\r\n }\r\n ]);\r\n app.config(['$sceDelegateProvider',function ($sceDelegateProvider) {\r\n $sceDelegateProvider.resourceUrlWhitelist([\r\n // Allow same origin resource loads.\r\n 'self',\r\n // Allow loading from our assets domain. Notice the difference between * and **.\r\n \"http://www.sendforensics.com/partners/communigator/**\",\r\n \"https://www.sendforensics.com/partners/communigator/**\"\r\n ]);\r\n }]);\r\n\r\n \r\n\r\n function routes($routeProvider, $httpProvider, $locationProvider, $provide) {\r\n\r\n\r\n $routeProvider.when('/',\r\n {\r\n templateUrl: 'assets/templates/blank.html'\r\n })\r\n .when('/GatorHome',\r\n {\r\n templateUrl: 'assets/templates/home.html',\r\n data: {\r\n title: 'Home'\r\n }\r\n })\r\n .when('/FeatureRequest',\r\n {\r\n templateUrl: 'assets/templates/FeatureRequest.html',\r\n controller: 'featureRequestController',\r\n controllerAs: 'vm',\r\n data: {\r\n title: 'Feature Request'\r\n }\r\n })\r\n .when('/SocialWizard',\r\n {\r\n controller: 'newSocialWizardController',\r\n controllerAs: 'vm',\r\n templateUrl: 'assets/templates/newSocialWizard.html',\r\n data: {\r\n title: 'Account Wizard'\r\n }\r\n })\r\n .when('/create',\r\n {\r\n controller: 'forceSSOController',\r\n controllerAs: 'vm',\r\n templateUrl: 'assets/templates/forceSSO.html',\r\n data: {\r\n title: 'Create Account'\r\n }\r\n })\r\n .when('/accounts',\r\n {\r\n controller: 'accountsController',\r\n templateUrl: 'assets/templates/accounts.html',\r\n data: {\r\n title: 'Accounts'\r\n }\r\n })\r\n .when('/login',\r\n {\r\n controller: 'loginController',\r\n templateUrl: 'assets/templates/login.html',\r\n data: {\r\n title: 'Login'\r\n }\r\n })\r\n .when('/account/password/request',\r\n {\r\n controller: 'requestPasswordController',\r\n templateUrl: 'assets/templates/request_password.html',\r\n data: {\r\n title: 'Request Password'\r\n }\r\n\r\n })\r\n .when('/account/ipauthentication',\r\n {\r\n controller: 'ipAuthenticationController',\r\n templateUrl: 'assets/templates/ip_authentication.html',\r\n data: {\r\n title: 'IP Authentication'\r\n }\r\n })\r\n .when('/account',\r\n {\r\n controller: 'createAccountController',\r\n templateUrl: 'assets/templates/create_account.html',\r\n controllerAs: 'vm',\r\n data: {\r\n title: 'Create Account'\r\n }\r\n })\r\n .when('/account/activate',\r\n {\r\n controller: 'activateAccountController',\r\n templateUrl: 'assets/templates/activate_account.html',\r\n data: {\r\n title: 'Activate Account'\r\n }\r\n })\r\n .when('/account/:accountId',\r\n {\r\n controller: 'editAccountController',\r\n templateUrl: 'assets/templates/edit_account.html',\r\n data: {\r\n title: 'Edit Account'\r\n }\r\n })\r\n .when('/account/password/reset',\r\n {\r\n controller: 'resetPasswordController',\r\n templateUrl: 'assets/templates/reset_password.html',\r\n data: {\r\n title: 'Reset Password'\r\n }\r\n\r\n })\r\n .when('/account/password/reset/:accountId',\r\n {\r\n controller: 'resetPasswordController',\r\n templateUrl: 'assets/templates/reset_password.html',\r\n data: {\r\n title: 'Reset Password'\r\n }\r\n })\r\n .when('/account/authenticator/reset',\r\n {\r\n controller: 'resetAuthenticatorController',\r\n templateUrl: 'assets/templates/reset_authenticator.html',\r\n data: {\r\n title: 'Reset Authenticator'\r\n }\r\n })\r\n .when('/account/password/change',\r\n {\r\n controller: 'changePasswordController',\r\n templateUrl: 'assets/templates/change_password.html',\r\n data: {\r\n title: 'Change Password'\r\n }\r\n })\r\n .when('/account/password/expired',\r\n {\r\n controller: 'changePasswordController',\r\n templateUrl: 'assets/templates/expired_password.html',\r\n data: {\r\n title: 'Expired Password'\r\n }\r\n })\r\n .when('/company/list',\r\n {\r\n controller: 'companiesController',\r\n controllerAs: 'vm',\r\n templateUrl: 'assets/templates/company/companies.html',\r\n data: {\r\n title: 'Company List'\r\n }\r\n })\r\n .when('/company/:companyId',\r\n {\r\n controller: 'editCompanyController',\r\n controllerAs: 'vm',\r\n templateUrl: 'assets/templates/company/edit_company.html',\r\n data: {\r\n title: 'Edit Company'\r\n }\r\n })\r\n .when('/error',\r\n {\r\n controller: 'errorController',\r\n templateUrl: 'assets/templates/error.html',\r\n data: {\r\n title: 'Error'\r\n }\r\n })\r\n .when('/dashboard',\r\n {\r\n controller: 'dashboardController',\r\n templateUrl: 'assets/templates/dashboard.html',\r\n data: {\r\n title: 'Dashboard'\r\n }\r\n })\r\n .when('/wizard',\r\n {\r\n controller: 'wizardController',\r\n controllerAs: 'vm',\r\n templateUrl: 'assets/templates/wizard2.html',\r\n data: {\r\n title: 'Account Wizard'\r\n }\r\n })\r\n .when('/home',\r\n {\r\n controller: 'marketingFrameController',\r\n templateUrl: 'assets/templates/signup/marketingframe.html',\r\n data: {\r\n title: 'GatorExpress Info'\r\n }\r\n })\r\n .when('/SignUp/GatorExpress',\r\n {\r\n controller: 'marketingFrameController',\r\n templateUrl: 'assets/templates/signup/marketingframe.html',\r\n data: {\r\n title: 'GatorExpress Info'\r\n }\r\n })\r\n .when('/SignUp/GatorMail',\r\n {\r\n controller: 'marketingFrameController',\r\n templateUrl: 'assets/templates/signup/marketingframe.html',\r\n data: {\r\n title: 'GatorMail Info'\r\n }\r\n })\r\n .when('/SignUp/GatorWorkflow',\r\n {\r\n controller: 'marketingFrameController',\r\n templateUrl: 'assets/templates/signup/marketingframe.html',\r\n data: {\r\n title: 'GatorWorkflow Info'\r\n }\r\n })\r\n .when('/SignUp/GatorLeads',\r\n {\r\n controller: 'marketingFrameController',\r\n templateUrl: 'assets/templates/signup/marketingframe.html',\r\n data: {\r\n title: 'GatorLeads Info'\r\n }\r\n })\r\n .when('/SignUp/GatorSocial',\r\n {\r\n controller: 'marketingFrameController',\r\n templateUrl: 'assets/templates/signup/marketingframe.html',\r\n data: {\r\n title: 'GatorSocial Info'\r\n }\r\n })\r\n .when('/SignUp/GatorDocs',\r\n {\r\n controller: 'marketingFrameController',\r\n templateUrl: 'assets/templates/signup/marketingframe.html',\r\n data: {\r\n title: 'GatorDocs Info'\r\n }\r\n })\r\n .when('/SignUp/GatorSurvey',\r\n {\r\n controller: 'marketingFrameController',\r\n templateUrl: 'assets/templates/signup/marketingframe.html',\r\n data: {\r\n title: 'GatorSurvey Info'\r\n }\r\n })\r\n .when('/SignUp/GatorSendforensics',\r\n {\r\n controller: 'marketingFrameController',\r\n templateUrl: 'assets/templates/signup/marketingframe.html',\r\n data: {\r\n title: 'GatorSendforensics Info'\r\n }\r\n })\r\n .when('/SignUp/GatorPopup',\r\n {\r\n controller: 'marketingFrameController',\r\n templateUrl: 'assets/templates/signup/marketingframe.html',\r\n data: {\r\n title: 'GatorPopup Info'\r\n }\r\n })\r\n .when('/SSOLogout',\r\n {\r\n templateUrl: 'assets/templates/ssologout.html',\r\n data: {\r\n title: 'SSO Logout'\r\n }\r\n })\r\n .when('/Logout',\r\n {\r\n //controller: 'loginController',\r\n //templateUrl: 'assets/templates/logout.html',\r\n //data: {\r\n // title: 'Logout'\r\n //}\r\n templateUrl: 'assets/templates/ssologout.html',\r\n data: {\r\n title: 'SSO Logout'\r\n }\r\n })\r\n .when('/Authenticator',\r\n {\r\n controller: 'authenticatorController',\r\n templateUrl: 'assets/templates/authenticator.html',\r\n data: {\r\n title: 'Authenticator'\r\n }\r\n })\r\n .when('/thirdparty/forensics',\r\n {\r\n controller: 'forensicsController',\r\n controllerAs: 'vm',\r\n templateUrl: 'assets/templates/thirdparty/forensics.html',\r\n data: {\r\n title: 'GatorForensics'\r\n }\r\n })\r\n .when('/impersonate/resetting',\r\n {\r\n templateUrl: 'assets/templates/reset_sso.html',\r\n data: {\r\n title: 'SSO Resetting User'\r\n }\r\n })\r\n .when('/impersonate/:accountId',\r\n {\r\n controller: 'impersonateController',\r\n controllerAs: 'vm',\r\n templateUrl: 'assets/templates/impersonate.html',\r\n data: {\r\n title: 'Impersonate'\r\n }\r\n })\r\n .when('/register',\r\n {\r\n controller: 'registerController',\r\n controllerAs: 'vm',\r\n templateUrl: 'assets/templates/register/create.html',\r\n data: {\r\n title: 'Register'\r\n }\r\n })\r\n .when('/registrations',\r\n {\r\n controller: 'registrationsController',\r\n controllerAs: 'vm',\r\n templateUrl: 'assets/templates/register/list.html',\r\n data: {\r\n title: 'Registrations'\r\n }\r\n })\r\n .when('/registration/:id',\r\n {\r\n controller: 'registrationController',\r\n controllerAs: 'vm',\r\n templateUrl: 'assets/templates/register/view.html',\r\n data: {\r\n title: 'Registration'\r\n }\r\n })\r\n .when('/permissions',\r\n {\r\n controller: 'oAuthPermissionsController',\r\n templateUrl: 'assets/templates/oAuthPermissions.html',\r\n data: {\r\n title: 'Permissions'\r\n }\r\n })\r\n .otherwise('/');\r\n $locationProvider.html5Mode(true);\r\n\r\n $httpProvider.interceptors.push(['$q', '$location', '$rootScope',\r\n function ($q, $location, $rootScope) {\r\n return {\r\n 'responseError': function (rejection) {\r\n\r\n if (rejection.status === 401) {\r\n $location.url('/login');\r\n } else {\r\n var response = rejection.data;\r\n\r\n if (response !== null && response !== void(0) && response.errors && response.unhandled) {\r\n $rootScope.currentError = response;\r\n\r\n $location.url('/error');\r\n }\r\n }\r\n\r\n return $q.reject(rejection);\r\n }\r\n };\r\n }\r\n ]\r\n );\r\n\r\n $provide.decorator('$sniffer',\r\n [\r\n '$delegate', function ($sniffer) {\r\n var msie = parseInt((/msie (\\d+)/.exec(navigator.userAgent.toLowerCase()) || [])[1], 10);\r\n var hasEvent = $sniffer.hasEvent;\r\n $sniffer.hasEvent = function (event) {\r\n if (event === 'input' && msie === 10) {\r\n return false;\r\n }\r\n hasEvent.call(this, event);\r\n };\r\n return $sniffer;\r\n }\r\n ]);\r\n\r\n if (window.history && window.history.pushState) {\r\n $locationProvider.html5Mode(true);\r\n }\r\n }\r\n\r\n})();","\n\n(function () {\r\n\n 'use strict';\n angular.module('app')\n .service('wowTrackingService',\n function () {\r\n this.trackPage = function (email, firstName, lastName, title, url) {\r\n\n _wow.push(['setEmailAddress', email]);\n _wow.push(['setName', firstName, lastName]);\n _wow.push(['trackPageView', title, url]);\r\n };\r\n });\r\n\n})();","\r\n(function() {\r\n\r\n 'use strict';\r\n angular.module('app')\r\n .service('accountsService',\r\n [\r\n '$http', function($http) {\r\n this.getAccounts = function(filter, start, count) {\r\n return $http.get('api/account/getaccounts',\r\n { params: { filter: filter, start: start, count: count } })\r\n .then(function(response) {\r\n return response.data;\r\n },\r\n function() {\r\n throw ('Accounts Retrieval Failure');\r\n });\r\n };\r\n this.unlockAccount = function(accountId) {\r\n return $http.post('api/account/unlock/' + accountId,{ })\r\n .then(function (response) {\r\n return response.data;\r\n },\r\n function (response) {\r\n throw (response.data);\r\n });\r\n };\r\n\r\n this.getAccount = function(accountId) {\r\n return $http.get('api/account/get?accountId=' + accountId)\r\n .then(function(response) {\r\n return response.data;\r\n },\r\n function() {\r\n throw ('Account Retrieval Failure');\r\n });\r\n };\r\n\r\n this.getPendingRequests = function(accountId) {\r\n return $http.get('api/account/getPendingRequests?accountId=' + accountId)\r\n .then(function(response) {\r\n return response.data;\r\n },\r\n function() {\r\n throw ('Pending Request Retrieval Failure');\r\n });\r\n };\r\n\r\n\r\n this.createAccount = function(account, clientToken, recaptcha) {\r\n return $http.post('api/account/create',\r\n {\r\n account: account,\r\n clientToken: clientToken,\r\n password: account.password,\r\n recaptcha:\r\n recaptcha\r\n })\r\n .then(function(response) {\r\n return response.data;\r\n },\r\n function(response) {\r\n throw (response.data);\r\n });\r\n };\r\n\r\n this.addEnvironment = function (accountId, enviroment, isAdmin) {\r\n return $http.post('api/account/addEnviroment',\r\n {\r\n account: accountId,\r\n enviroment: enviroment,\r\n isAdmin: isAdmin\r\n })\r\n .then(function (response) {\r\n return response.data;\r\n },\r\n function (response) {\r\n throw (response.data);\r\n });\r\n }\r\n\r\n this.AddIpAddress = function(ipAddress, accountId) {\r\n return $http.post('api/account/AuthenticateIp', { AccountId: accountId, IpAddress: ipAddress })\r\n .then(function(response) {\r\n return;\r\n },\r\n function(response) {\r\n throw (response.data);\r\n });\r\n\r\n\r\n }\r\n\r\n this.updateAccount = function(account) {\r\n return $http.post('api/account/update', { account: account })\r\n .then(function() {\r\n return;\r\n },\r\n function(response) {\r\n throw (response.data);\r\n });\r\n };\r\n\r\n this.deleteAccount = function(accountId) {\r\n return $http.post('api/account/delete', { accountId: accountId })\r\n .then(function() {\r\n return;\r\n },\r\n function() {\r\n throw ('Account Deletion Failure');\r\n });\r\n };\r\n\r\n\r\n this.getAuthorizedAccount = function() {\r\n return $http.get('api/account/getAuthorizedAccount')\r\n .then(function(response) {\r\n\r\n\r\n return response.data;\r\n },\r\n function() {\r\n throw ('Authorized Account Retrieval Failure');\r\n });\r\n };\r\n this\r\n .verifyGoogleAuthenticator =\r\n function (code, secretKey, securityQuestionId, securityQuestionAnswer, accountId) {\r\n\r\n return $http.post('api/account/verifyGoogleAuthenticator',\r\n {\r\n code: code,\r\n SecretKey: secretKey,\r\n SecurityQuestionId: securityQuestionId.toString(),\r\n SecurityQuestionAnswer: securityQuestionAnswer,\r\n AccountId: accountId\r\n })\r\n .then(function(response) {\r\n return response.data;\r\n },\r\n function() {\r\n throw ('Verifying two-factor authenticator failure');\r\n });\r\n };\r\n this.getSecurityQuestions = function(includeDisabledQuestions) {\r\n return $http.get('api/account/getSecurityQuestions?includeDisabledQuestions=' +\r\n includeDisabledQuestions)\r\n .then(function(response) {\r\n return response.data;\r\n },\r\n function() {\r\n throw ('getSecurityQuestions Retrieval Failure');\r\n });\r\n }\r\n this.getGoogleAuthenticatorBarcode = function(accountId) {\r\n return $http.get('api/account/getGoogleAuthenticatorBarcode?accountId=' + accountId)\r\n .then(function(response) {\r\n return response.data;\r\n },\r\n function() {\r\n throw ('getGoogleAuthenticatorBarcode Retrieval Failure');\r\n });\r\n }\r\n\r\n this.getAuthenticatedAccount = function() {\r\n return $http.get('api/account/getAuthenticated')\r\n .then(function(response) {\r\n return response.data;\r\n },\r\n function() {\r\n throw ('Active Account Retrieval Failure');\r\n });\r\n };\r\n\r\n this.activate = function(token) {\r\n return $http.post('api/account/activate', { token: token })\r\n .then(function() {\r\n return;\r\n },\r\n function() {\r\n throw ('Activation Failure');\r\n });\r\n };\r\n\r\n this.deactivate = function (accountId) {\r\n return $http.get('api/account/deactivate/' + accountId)\r\n .then(function() {\r\n return;\r\n },\r\n function() {\r\n throw ('Activation Failure');\r\n });\r\n };\r\n this.reactivate = function (accountId) {\r\n return $http.get('api/account/reactivate/' + accountId)\r\n .then(function() {\r\n return;\r\n },\r\n function() {\r\n throw ('Activation Failure');\r\n });\r\n };\r\n\r\n this.sendActivationEmail = function(accountId) {\r\n return $http.get('api/account/sendactivationemail/' + accountId)\r\n .then(function() {\r\n return;\r\n },\r\n function() {\r\n throw ('Send Activation Email Failure');\r\n });\r\n };\r\n\r\n this.authenticateIpAddress = function(token) {\r\n return $http.post('api/account/authenticateIpAddress', { token: token })\r\n .then(function() {\r\n return;\r\n },\r\n function() {\r\n throw ('IP Authentication Failure');\r\n });\r\n };\r\n\r\n this.resetPassword = function(token, password) {\r\n return $http.post('api/account/resetPassword', { token: token, password: password })\r\n .then(function() {\r\n return;\r\n },\r\n function(response) {\r\n throw (response.data);\r\n });\r\n };\r\n this.adminResetPassword = function(accountId, password) {\r\n return $http.post('api/account/adminResetPassword', { token: accountId, password: password })\r\n .then(function() {\r\n return;\r\n },\r\n function(response) {\r\n throw (response.data);\r\n });\r\n };\r\n this.resetAuthenticator = function(token, password) {\r\n return $http.post('api/account/resetAuthenticator', { token: token })\r\n .then(function() {\r\n return;\r\n },\r\n function(response) {\r\n throw (response.data);\r\n });\r\n };\r\n\r\n this.changePassword = function(currentPassword, newPassword) {\r\n return $http.post('api/account/changePassword',\r\n { currentPassword: currentPassword, newPassword: newPassword })\r\n .then(function(response) {\r\n return response.data;\r\n },\r\n function(response) {\r\n throw (response.data);\r\n });\r\n };\r\n this.addSocialEnvironment = function(newSocialEnviromentRequest) {\r\n return $http.post('api/account/addSocialEnviroment', newSocialEnviromentRequest).then(\r\n function(response) {\r\n return response.data;\r\n },\r\n function(response) {\r\n throw (response.data);\r\n });\r\n }\r\n this.createCannyUser = function(accountId) {\r\n return $http.post('api/account/' + accountId + '/createCannyUser').then(\r\n function (response) {\r\n return response.data;\r\n },\r\n function (response) {\r\n throw (response.data);\r\n });\r\n }\r\n this.getCannySsoToken = function(accountId) {\r\n return $http.get('api/account/' + accountId + '/getCannySsoToken').then(\r\n function (response) {\r\n return response.data;\r\n },\r\n function (response) {\r\n throw (response.data);\r\n });\r\n }\r\n }\r\n ]\r\n );\r\n})();","\r\n(function() {\r\n\r\n 'use strict';\r\n angular.module('app')\r\n .service('clientService',\r\n [\r\n '$http', function ($http) {\r\n\r\n this.getClients = function() {\r\n return $http.get('api/client/getclients')\r\n .then(function(response) {\r\n return response.data;\r\n },\r\n function() {\r\n throw ('Restricted Logins Failure');\r\n });\r\n\r\n };\r\n\r\n \r\n\r\n }\r\n ]\r\n );\r\n})();","(function () {\r\n 'use strict';\r\n\r\n var companyService = function ($http) {\r\n\r\n this.addEnvironment = function (companyId, displayName, uniqueId, ssoClientId) {\r\n return $http.post('api/company/addEnvironment', { companyId: companyId, displayName: displayName, uniqueId: uniqueId, ssoClientId: ssoClientId }).then(function (response) {\r\n return response;\r\n },\r\n function () {\r\n throw ('Companies Add environment failure');\r\n });\r\n };\r\n this.addEmailDomain = function (companyId, emailDomain) {\r\n return $http.post('api/company/addEmailDomain', { companyId: companyId, emailDomain: emailDomain }).then(function (response) {\r\n return response;\r\n },\r\n function () {\r\n throw ('Companies Add domain failure');\r\n });\r\n };\r\n this.removeEmailDomain = function (companyId, emailDomain) {\r\n return $http.post('api/company/removeEmailDomain', { companyId: companyId, emailDomain: emailDomain }).then(function (response) {\r\n return response;\r\n },\r\n function () {\r\n throw ('Companies Remove domain failure');\r\n });\r\n };\r\n this.addIpAddress = function (companyId, ipAddress) {\r\n return $http.post('api/company/addIpAddress', { companyId: companyId, ipAddress: ipAddress }).then(function (response) {\r\n return response;\r\n },\r\n function () {\r\n throw ('Companies Add ip failure');\r\n });\r\n };\r\n this.removeIpAddress = function (companyId, ipAddress) {\r\n return $http.post('api/company/removeIpAddress', { companyId: companyId, ipAddress: ipAddress }).then(function (response) {\r\n return response;\r\n },\r\n function () {\r\n throw ('Companies Remove ip failure');\r\n });\r\n };\r\n this.disableImpersonation = function (companyId) {\r\n return $http.post('api/company/disableimpersonation/' + companyId, { }).then(function (response) {\r\n \r\n\r\n return response;\r\n },\r\n function () {\r\n throw ('Companies Disable Impersonation Failure');\r\n });\r\n };\r\n this.deactivateCompany = function (companyId) {\r\n return $http.post('api/company/deactivateCompany/' + companyId, { }).then(function (response) {\r\n \r\n\r\n return response;\r\n },\r\n function () {\r\n throw ('Companies Deactivation Failure');\r\n });\r\n };\r\n this.reactivateCompany = function (companyId) {\r\n return $http.post('api/company/reactivateCompany/' + companyId, { }).then(function (response) {\r\n \r\n\r\n return response;\r\n },\r\n function () {\r\n throw ('Companies Reactivation Failure');\r\n });\r\n };\r\n\r\n this.getCompanies = function (name, page, take) {\r\n return $http.post('api/company/list',\r\n {\r\n name: name,\r\n page: page,\r\n take: take\r\n })\r\n .then(function (response) {\r\n var items = response.data;\r\n\r\n return items;\r\n },\r\n function () {\r\n throw ('Companies Retrieval Failure');\r\n });\r\n };\r\n\r\n this.getCompanyById = function (id) {\r\n return $http.get('api/company/' + id)\r\n .then(function (response) {\r\n var company = response.data;\r\n\r\n return company;\r\n },\r\n function () {\r\n throw ('Company Retrieval Failure');\r\n });\r\n };\r\n\r\n this.saveCompany = function (company) {\r\n return $http.post('api/company/save',\r\n company\r\n )\r\n .then(function (response) {\r\n var company = response.data;\r\n return company;\r\n },\r\n function () {\r\n throw ('Error Updating Company');\r\n });\r\n }\r\n this.createCompany = function (company) {\r\n return $http.post('api/company/create',\r\n company\r\n )\r\n .then(function (response) {\r\n var company = response.data;\r\n return company;\r\n },\r\n function (response) {\r\n throw (response.data.message);\r\n });\r\n }\r\n this.saveCompanyDetails = function (companyId, companyName, dynamicsId, workbooksOrganisationId, workbooksOrganisationName, partnerCode) {\r\n return $http.post('api/company/saveDetails', { companyId: companyId, companyName: companyName, dynamicsId: dynamicsId, workbooksOrganisationId: workbooksOrganisationId, workbooksOrganisationName: workbooksOrganisationName, partnerCode: partnerCode }).then(function (response) {\r\n var company = response.data;\r\n return company;\r\n },\r\n function () {\r\n throw ('Error Updating Company details');\r\n });\r\n }\r\n\r\n this.checkDomain = function (domain) {\r\n return $http.get('api/company/checkdomain?domain=' + domain)\r\n .then(function (response) {\r\n var errors = response.data;\r\n return errors;\r\n },\r\n function () {\r\n throw ('Error checking domain');\r\n });\r\n }\r\n\r\n this.checkIpAddress = function (ipAddress) {\r\n return $http.get('api/company/checkIpAddress?ipAddress=' + ipAddress)\r\n .then(function (response) {\r\n var errors = response.data;\r\n return errors;\r\n },\r\n function () {\r\n throw ('Error checking domain');\r\n });\r\n }\r\n\r\n this.showProduct = function (companyId, clientId) {\r\n return $http.post('api/company/showProduct',\r\n {\r\n companyId: companyId,\r\n clientId: clientId\r\n }\r\n )\r\n .then(function (response) {\r\n var data = response.data;\r\n return data;\r\n },\r\n function () {\r\n throw ('Error showing product');\r\n });\r\n }\r\n\r\n this.hideProduct = function (companyId, clientId) {\r\n return $http.post('api/company/hideProduct',\r\n {\r\n companyId: companyId,\r\n clientId: clientId\r\n }\r\n )\r\n .then(function (response) {\r\n var data = response.data;\r\n return data;\r\n },\r\n function () {\r\n throw ('Error hiding product');\r\n });\r\n }\r\n\r\n this.createEnvironment = function(companyId, clientId, displayName) {\r\n return $http.post('api/company/createEnvironment',\r\n {\r\n companyId: companyId,\r\n clientId: clientId,\r\n displayName: displayName\r\n }\r\n )\r\n .then(function(response) {\r\n var data = response.data;\r\n return data;\r\n },\r\n function() {\r\n throw ('Error creating environment');\r\n });\r\n };\r\n this.updateIntegrationCredentials = function (environmentId, username, password) {\r\n return $http.post('api/company/updateintegrationcredentials',\r\n {\r\n environmentId: environmentId,\r\n username: username,\r\n password: password\r\n }\r\n )\r\n .then(function (response) {\r\n var data = response.data;\r\n return data;\r\n },\r\n function () {\r\n throw ('Error updating credentials');\r\n });\r\n }\r\n }\r\n\r\n angular.module('app')\r\n .service('companyService', ['$http', companyService]);\r\n})();","\r\n(function () {\r\n\r\n 'use strict';\r\n angular.module('app')\r\n .service('dashboardService', ['$http', function ($http) {\r\n this.GetClients = function () {\r\n return $http.get('api/dashboard/getclients')\r\n .then(function (response) {\r\n return response.data;\r\n },\r\n function () {\r\n throw ('Restricted Logins Failure');\r\n });\r\n };\r\n this.GetClientRedirectUrl = function (clientId, linkId) {\r\n return $http.get('api/dashboard/getclientredirecturl',\r\n { params: { clientId: clientId, linkId: linkId } })\r\n .then(function (response) {\r\n return response.data;\r\n },\r\n function () {\r\n throw ('URL Retrieval Failure');\r\n });\r\n };\r\n this.attachAccount = function (username, password, clientId, clientDetailsId) {\r\n return $http.post('api/dashboard/attachClientUser',\r\n { Username: username, Password: password, Type: clientId, ClientDetailsId: clientDetailsId })\r\n .then(function (response) {\r\n return response.data;\r\n },\r\n function (response) {\r\n throw response;\r\n });\r\n };\r\n\r\n\r\n this.removeClientUser = function (id) {\r\n return $http.delete('api/dashboard/removeClientUser', { params: { id: id } });\r\n };\r\n\r\n this.defaultClientUser = function (id) {\r\n\r\n return $http.post('api/dashboard/defaultClientUser/' + id)\r\n .then(function (response) {\r\n return response.data;\r\n\r\n },\r\n function () {\r\n throw ('Accounts Attach Failure');\r\n });\r\n\r\n };\r\n this.updateClientAccounts = function (accounts) {\r\n\r\n return $http.put('api/dashboard/updateClientAccounts/', accounts)\r\n .then(function (response) {\r\n\r\n return response.data;\r\n\r\n },\r\n function () {\r\n throw ('Accounts update display name failure');\r\n });\r\n\r\n };\r\n\r\n }]\r\n );\r\n})();","\r\n(function () {\r\n\r\n 'use strict';\r\n angular.module('app')\r\n .service('exportAccountsService', ['$http', function ($http) {\r\n this.exportAccounts = function (startDate, endDate) {\r\n return $http.get('api/account/exportAccounts',\r\n { params: { startDate: startDate, endDate: endDate } })\r\n .then(function (response) {\r\n return response.data;\r\n },\r\n function () {\r\n throw ('Export Accounts Retrieval Failure');\r\n });\r\n };\r\n }]\r\n );\r\n})();","\r\n(function () {\r\n\r\n 'use strict';\r\n angular.module('app')\r\n .service('forceSSOService',\r\n [\r\n '$http', function ($http) {\r\n\r\n this.create = function(clientToken) {\r\n return $http.post('api/forceSSO/create',\r\n {\r\n clientToken: clientToken\r\n })\r\n .then(function(response) {\r\n return response.data;\r\n },\r\n function(response) {\r\n throw (response.data);\r\n });\r\n };\r\n \r\n }\r\n ]\r\n );\r\n})();\r\n","(function () {\r\n 'use strict';\r\n\r\n var impersonateService = function ($http) {\r\n\r\n this.getUrl = function (clientId, accountId, clientDetailsId) {\r\n return $http.post('api/impersonate/getclientredirecturl',\r\n {\r\n clientDetailsId: clientDetailsId,\r\n accountId: accountId,\r\n clientId: clientId\r\n })\r\n .then(function(response) {\r\n var url = response.data.url;\r\n\r\n return url;\r\n },\r\n function() {\r\n throw ('Error getting URL');\r\n });\r\n };\r\n\r\n\r\n }\r\n\r\n angular.module('app')\r\n .service('impersonateService', ['$http', impersonateService]);\r\n})();","\r\n(function () {\r\n\r\n 'use strict';\r\n angular.module('app')\r\n .service('loginService',\r\n [\r\n '$http', function ($http) {\r\n\r\n this.login = function (clientToken, email, password, googleAuthenticatorCode, secretQuestionAnswer, authenticatorRememberMe, clientId, redirectUrl, scope) {\r\n\r\n return $http.post('api/authentication/login',\r\n {\r\n clientToken: clientToken,\r\n email: email,\r\n password: password,\r\n GoogleAuthenticatorCode: googleAuthenticatorCode,\r\n SecretQuestionAnswer: secretQuestionAnswer,\r\n AuthenticatorRememberMe: authenticatorRememberMe,\r\n clientId: clientId,\r\n redirectUrl: redirectUrl,\r\n scope: scope\r\n\r\n })\r\n .then(function(response) {\r\n return response.data;\r\n },\r\n function(response) {\r\n throw (response.data);\r\n });\r\n };\r\n\r\n this.requestPassword = function(email, clientToken) {\r\n return $http.post('api/authentication/passwordReset',\r\n { email: email, clientToken: clientToken })\r\n .then(function() {\r\n return;\r\n },\r\n function() {\r\n throw ('Password Reset Failure');\r\n });\r\n };\r\n \r\n this.logOut = function() {\r\n return $http.post('api/authentication/logout')\r\n .then(function() {\r\n\r\n window.location = './SSOLogout';\r\n\r\n },\r\n function() {\r\n throw ('Log Out Failure');\r\n });\r\n };\r\n }\r\n ]\r\n );\r\n})();\r\n","(function() {\r\n 'use strict';\r\n\r\n var pagerService = function (_) {\r\n // service definition\r\n var service = {};\r\n\r\n service.GetPager = getPager;\r\n\r\n return service;\r\n\r\n // service implementation\r\n function getPager(totalItems, currentPage, pageSize) {\r\n // default to first page\r\n currentPage = currentPage || 1;\r\n\r\n // default page size is 10\r\n pageSize = pageSize || 10;\r\n\r\n // calculate total pages\r\n var totalPages = Math.ceil(totalItems / pageSize);\r\n\r\n var startPage, endPage;\r\n if (totalPages <= 10) {\r\n // less than 10 total pages so show all\r\n startPage = 1;\r\n endPage = totalPages;\r\n } else {\r\n // more than 10 total pages so calculate start and end pages\r\n if (currentPage <= 6) {\r\n startPage = 1;\r\n endPage = 10;\r\n } else if (currentPage + 4 >= totalPages) {\r\n startPage = totalPages - 9;\r\n endPage = totalPages;\r\n } else {\r\n startPage = currentPage - 5;\r\n endPage = currentPage + 4;\r\n }\r\n }\r\n\r\n // calculate start and end item indexes\r\n var startIndex = (currentPage - 1) * pageSize;\r\n var endIndex = startIndex + pageSize;\r\n\r\n // create an array of pages to ng-repeat in the pager control\r\n var pages = _.range(startPage, endPage + 1);\r\n\r\n // return object with all pager properties required by the view\r\n return {\r\n totalItems: totalItems,\r\n currentPage: currentPage,\r\n pageSize: pageSize,\r\n totalPages: totalPages,\r\n startPage: startPage,\r\n endPage: endPage,\r\n startIndex: startIndex,\r\n endIndex: endIndex,\r\n pages: pages\r\n };\r\n }\r\n }\r\n\r\n angular.module('app')\r\n .service('pagerService', ['_', pagerService]);\r\n})();\r\n\r\n\r\n","(function () {\n \"use strict\";\n angular.module(\"app\")\n .service(\"permissionsService\",\n [\n \"$http\", function ($http) {\n\n this.GetClientDetails = function (clientId) {\n return $http.get(\"api/permissions/clientDetails/\" + clientId)\n .then(function (response) {\n return response.data;\n }, function () {\n throw (\"Client Detail Retrieval Failure\");\n });\n };\n\n this.PostTokenRefresh = function (clientid, scopes, permissions) {\n return $http.post(\"core/connect/InternalToken/\",\n { clientId: clientid, scopes: scopes, permissions: permissions })\n .then(function (response) {\n return response.data;\n }, function () {\n throw (\"Client Detail Retrieval Failure\");\n });\n };\n\n this.GetAllClientsforAccount = function (accountId) {\n return $http.get(\"api/permissions/AllClientsforAccount/\" + accountId)\n .then(function (response) {\n return response.data;\n }, function () {\n throw (\"Could Not get clients for account\");\n });\n };\n\n\n this.DeleteClientforAccount = function (accountClientId) {\n return $http.delete(\"api/permissions/AccountClient/\" + accountClientId)\n .then(function (response) {\n return response.data;\n }, function () {\n throw (\"Could Not remove client form account\");\n });\n }\n\n this.GetAllClientsforCompany = function (companyId) {\n return $http.get(\"api/permissions/AllClientsforCompany/\" + companyId)\n .then(function (response) {\n return response.data;\n }, function () {\n throw (\"Could Not get clients for company\");\n });\n };\n\n this.CreateCompanyClient = function (companyId, enviromentId, name, password) {\n return $http.post(\"api/permissions/createCompanyClient\",\n { companyId: companyId, environmentId: enviromentId, name: name, password: password }\n )\n .then(function (response) {\n return response.data;\n }, function () {\n throw (\"Could create client for company\");\n });\n }\n\n this.DeleteCompanyClient = function (clientId) {\n return $http.delete(\"api/permissions/CompanyClient/\" + clientId)\n .then(function (response) {\n return response.data;\n }, function () {\n throw (\"Could Not remove client form Company\");\n });\n }\n\n this.UpdateClientPassword = function (enviromentId, password) {\n return $http.post(\"api/permissions/UpdateClientPassword/\",\n { environmentId: enviromentId, name: name, password: password })\n .then(function (response) {\n return response.data;\n }, function () {\n throw (\"Could Not update client password\");\n });\n }\n this.ShowClientSecret = function (companyId ,password) {\n return $http.post(\"api/permissions/SharedSecretForCompany/\",\n { companyId: companyId, environmentId: null, name: null, password: password })\n .then(function (response) {\n return response.data;\n }, function () {\n throw (response.data.message);;\n });\n }\n }\n ]);\n})();","(function () {\r\n 'use strict';\r\n\r\n var registerService = function ($http, $q) {\r\n\r\n // add registration\r\n this.addRegistration = function (registration) {\r\n return $http.post('api/registration/create', { accountRegistration: registration } ).then(function (response) {\r\n var company = response.data;\r\n return company;\r\n },\r\n function (error) {\r\n throw ('Error Adding Registration');\r\n });\r\n }\r\n\r\n this.getRegistrations = function (name, page, take) {\r\n return $http.post('api/registration/list',\r\n {\r\n name: name,\r\n page: page,\r\n take: take\r\n })\r\n .then(function (response) {\r\n var items = response.data;\r\n\r\n return items;\r\n },\r\n function () {\r\n throw ('Registrations Retrieval Failure');\r\n });\r\n };\r\n\r\n this.getRegistration = function (id) {\r\n return $http.get('api/registration/' + id)\r\n .then(function (response) {\r\n var items = response.data;\r\n\r\n return items;\r\n },\r\n function () {\r\n throw ('Registration Retrieval Failure');\r\n });\r\n };\r\n\r\n this.activateRegistration = function (productAccount) {\r\n return $http.post('api/registration/activate', productAccount)\r\n .then(function (response) {\r\n var items = response.data;\r\n\r\n return items;\r\n },\r\n function (response) {\r\n //throw ('Registration Retrieval Failure');\r\n return $q.reject(response.data);\r\n });\r\n };\r\n\r\n this.dynamicsLookup = function (name) {\r\n return $http.get('api/registration/checkdynamics/' + name)\r\n .then(function (response) {\r\n var items = response.data;\r\n\r\n return items;\r\n },\r\n function (response) {\r\n //throw ('Registration Retrieval Failure');\r\n return $q.reject(response.data);\r\n });\r\n };\r\n }\r\n\r\n angular.module('app')\r\n .service('registerService', ['$http', '$q', registerService]);\r\n})();","(function () {\r\n\r\n 'use strict';\r\n angular.module('app')\r\n .service('stateService', ['$rootScope', function ($rootScope) {\r\n var service = {\r\n states: new Array(),\r\n\r\n model: {},\r\n\r\n saveState: function (args, controller) {\r\n service.states[controller] = angular.toJson(service.model);\r\n },\r\n\r\n restoreState: function (args, controller) {\r\n if (service.states[controller] != undefined) {\r\n service.model = angular.fromJson(service.states[controller]);\r\n } else {\r\n service.model = {};\r\n }\r\n }\r\n };\r\n\r\n $rootScope.$on('saveState', service.saveState);\r\n $rootScope.$on('restoreState', service.restoreState);\r\n\r\n return service;\r\n }\r\n\r\n ]\r\n );\r\n})();\r\n","(function () {\n 'use strict';\n\n var thirdPartyCredentialsService = function ($http) {\n\n this.getThirdParties = function() {\n return $http.get('api/thirdpartycredentials/thirdparties/get')\n .then(function(response) {\n return response.data;\n },\n function() {\n throw ('Error getting third party credential parties');\n });\n };\n\n this.getAll = function (companyId) {\n return $http.get('api/thirdpartycredentials/get_all/' + companyId)\n .then(function (response) {\n return response.data;\n },\n function () {\n throw ('Error getting third party credentials');\n });\n };\n\n this.create = function (request) {\n return $http.post('api/thirdpartycredentials/create', request)\n .then(function (response) {\n return response.data;\n },\n function (response) {\n throw (response.data);\n });\n };\n\n this.update = function (request) {\n return $http.post('api/thirdpartycredentials/update', request)\n .then(function (response) {\n return response.data;\n },\n function (response) {\n throw (response.data);\n });\n };\n\n this.delete = function (id) {\n return $http.delete('api/thirdpartycredentials/delete/' + id)\n .then(function (response) {\n return response.data;\n },\n function (response) {\n throw (response.data);\n });\n };\n }\n\n angular.module('app')\n .service('thirdPartyCredentialsService', ['$http', thirdPartyCredentialsService]);\n})();","(function () {\r\n 'use strict';\r\n\r\n var thirdPartyService = function ($http) {\r\n\r\n this.getForensicsParams = function(token) {\r\n return $http.post('api/thirdparty/getForensicsUrl',\r\n {\r\n token: token\r\n })\r\n .then(function(response) {\r\n var urlParams = response.data.urlParams;\r\n\r\n return urlParams;\r\n },\r\n function() {\r\n throw ('Error getting Forensics URL');\r\n });\r\n };\r\n\r\n this.getForensicsToken = function (linkId) {\r\n return $http.get('api/thirdparty/getForensicsToken/' + linkId)\r\n .then(function(response) {\r\n var token = response.data.token;\r\n\r\n return token;\r\n },\r\n function() {\r\n throw ('Error getting Forensics token');\r\n });\r\n };\r\n\r\n this.getSEO = function () {\r\n return $http.get('api/thirdparty/seo')\r\n .then(function (response) {\r\n var url = response.data.url;\r\n\r\n return url;\r\n },\r\n function () {\r\n throw ('Error getting static url');\r\n });\r\n };\r\n }\r\n\r\n angular.module('app')\r\n .service('thirdPartyService', ['$http', thirdPartyService]);\r\n})();","\n(function() {\n\n \"use strict\";\n angular.module(\"app\")\n .service(\"wizardService\",\n [\n \"$http\", function($http) {\n\n this.attach = function() {\n return $http.post(\"api/forceSSO/attach\")\n .then(function(response) {\n return response.data;\n },\n function(response) {\n throw (response.data);\n });\n };\n\n }\n ]\n );\n})();","(function () {\n 'use strict';\n\n var workbooksService = function ($http) {\n this.searchOrganisations = function (filter) {\n return $http.post('api/thirdparty/workbooks/searchOrganisations', filter)\n .then(function (response) {\n return response.data;\n },\n function () {\n throw ('Workbooks organisations search failure');\n }\n );\n };\n }\n\n angular.module('app')\n .service('workbooksService', ['$http', workbooksService]);\n})();","\r\n(function() {\r\n 'use strict';\r\n\r\n var underscore = angular.module('underscore', []);\r\n underscore.factory('_', ['$window', function ($window) {\r\n return $window._;\r\n }]);\r\n})();","(function () {\r\n\r\n 'use strict';\r\n angular.module('app')\r\n .filter('propertyFilter',\r\n [\r\n '$filter', function ($filter) {\r\n var parseString = function (input) {\r\n return input.split('.');\r\n }\r\n\r\n function getValue(element, propertyArray) {\r\n var value = element;\r\n\r\n angular.forEach(propertyArray,\r\n function (property) {\r\n value = value[property];\r\n });\r\n\r\n return value;\r\n }\r\n\r\n return function (array, propertyString, target) {\r\n var properties = parseString(propertyString);\r\n\r\n return $filter('filter')(array,\r\n function (item) {\r\n return getValue(item, properties) == target;\r\n });\r\n }\r\n }\r\n ]);\r\n})();","\r\n(function () {\r\n\r\n 'use strict';\r\n angular.module('app')\r\n .directive('repeatPassword',\r\n function () {\r\n return {\r\n require: 'ngModel',\r\n link: function (scope, elem, attrs, ctrl) {\r\n var otherInput = elem.inheritedData('$formController')[attrs.repeatPassword];\r\n\r\n ctrl.$parsers.push(function (value) {\r\n if (value === otherInput.$viewValue) {\r\n ctrl.$setValidity('repeat', true);\r\n return value;\r\n }\r\n ctrl.$setValidity('repeat', false);\r\n });\r\n\r\n otherInput.$parsers.push(function (value) {\r\n ctrl.$setValidity('repeat', value === ctrl.$viewValue);\r\n return value;\r\n });\r\n }\r\n };\r\n });\r\n\r\n})();\r\n\r\n(function() {\r\n\r\n 'use strict';\r\n angular.module('app')\r\n .directive('ngPasswordStrengthIndicator',\r\n function() {\r\n return {\r\n restrict: 'A',\r\n templateUrl: 'assets/templates/password_strength_indicator.html',\r\n scope: {\r\n ngModel: '=',\r\n rulesPassed: '='\r\n },\r\n link: function(scope, element, attrs, ctrl) {\r\n scope.passwordInput = element.inheritedData('$formController')[attrs.ngPasswordInput];\r\n\r\n function rule(description, validator) {\r\n this.description = description;\r\n this.className = function() {\r\n return this.valid() ? 'fa fa-check-circle' : 'fa fa-exclamation-circle';\r\n };\r\n this.valid = validator;\r\n }\r\n\r\n scope.rulesPassed = function() {\r\n var passed = 0;\r\n\r\n angular.forEach(scope.rules,\r\n function(rule) {\r\n if (rule.valid()) {\r\n passed++;\r\n }\r\n });\r\n\r\n return passed;\r\n };\r\n\r\n scope.rules = [\r\n new rule('Contains a digit',\r\n function() {\r\n return scope.passwordInput.$viewValue == undefined\r\n ? false\r\n : scope.passwordInput.$viewValue.match(/[0-9]/);\r\n }),\r\n new rule('Contains an upper case character',\r\n function() {\r\n return scope.passwordInput.$viewValue == undefined\r\n ? false\r\n : scope.passwordInput.$viewValue.match(/[A-Z]/);\r\n }),\r\n new rule('Contains a lower case character',\r\n function() {\r\n return scope.passwordInput.$viewValue == undefined\r\n ? false\r\n : scope.passwordInput.$viewValue.match(/[a-z]/);\r\n }),\r\n new rule('Contains a symbol',\r\n function() {\r\n return scope.passwordInput.$viewValue == undefined\r\n ? false\r\n : scope.passwordInput.$viewValue\r\n .match(/[-!#$%^&*()_+|~=`{}\\[\\]:\";'<>?,.\\/\\\\@¬€¦£]/);\r\n }),\r\n new rule('12 or more characters',\r\n function () {\r\n return scope.passwordInput.$viewValue == undefined\r\n ? false\r\n : scope.passwordInput.$viewValue.length > 11;\r\n })\r\n ];\r\n\r\n \r\n\r\n }\r\n };\r\n });\r\n})();\r\n\r\n(function() {\r\n\r\n 'use strict';\r\n angular.module('app')\r\n .directive('rotateText',\r\n [\r\n '$interval', function($interval) {\r\n\r\n return function(scope, element, attrs) {\r\n\r\n\r\n function updateDidYouKnow(i) {\r\n var j = (i + 1) % scope.model.DidYouKnowMessages.length; //(i+1) to start at second word\r\n //console.log(j);\r\n element.html(scope.model.DidYouKnowMessages[j]);\r\n }\r\n\r\n element.html(scope.model.DidYouKnowMessages[0]); //displays \"fun\"\r\n var stopWord = $interval(updateDidYouKnow, 10000); //start rotating 1 second after, changes every sec\r\n\r\n // listen on DOM destroy (removal) event\r\n // to prevent updating word after the DOM element was removed.\r\n element.on('$destroy',\r\n function() {\r\n $interval.cancel(stopWord);\r\n });\r\n }\r\n }\r\n ]);\r\n})();\r\n\r\n(function() {\r\n\r\n 'use strict';\r\n angular.module('app')\r\n .directive('onlyDigits',\r\n function() {\r\n\r\n return {\r\n restrict: 'A',\r\n require: '?ngModel',\r\n link: function(scope, element, attrs, ngModel) {\r\n if (!ngModel) return;\r\n ngModel.$parsers.unshift(function(inputValue) {\r\n var digits = inputValue.split('')\r\n .filter(function(s) { return (!isNaN(s) && s != ' '); })\r\n .join('');\r\n ngModel.$viewValue = digits;\r\n ngModel.$render();\r\n return digits;\r\n });\r\n }\r\n }\r\n });\r\n})();\r\n\r\n\r\n(function() {\r\n\r\n 'use strict';\r\n angular.module('app')\r\n .directive('ipaddress',\r\n function() {\r\n return {\r\n require: 'ngModel',\r\n link: function(scope, elem, attrs, ctrl) {\r\n ctrl.$validators.ipaddress = function(modelValue, viewValue) {\r\n if (ctrl.$isEmpty(modelValue)) {\r\n ctrl.$setValidity('ipaddress', true);\r\n return true;\r\n }\r\n var matcher;\r\n if ((matcher = viewValue\r\n .match(/^([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})$/)) !=\r\n null) {\r\n var i;\r\n var previous = '255';\r\n for (i = 1; i < 5; i++) {\r\n var octet = parseInt(matcher[i]);\r\n if (octet > 255) {\r\n ctrl.$setValidity('ipaddress', false);\r\n return false;\r\n }\r\n }\r\n ctrl.$setValidity('ipaddress', true);\r\n return true;\r\n } else {\r\n ctrl.$setValidity('ipaddress', false);\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n})();\r\n\r\n(function() {\r\n\r\n 'use strict';\r\n angular.module('app')\r\n .directive('myEnter',\r\n function() {\r\n return function(scope, element, attrs) {\r\n element.bind('keydown keypress',\r\n function(event) {\r\n if (event.which === 13) {\r\n scope.$apply(function() {\r\n scope.$eval(attrs.myEnter);\r\n });\r\n\r\n event.preventDefault();\r\n }\r\n });\r\n };\r\n });\r\n})();\r\n\r\n(function () {\r\n\r\n 'use strict';\r\n angular.module('app').directive('focusMe', ['$timeout', '$parse', function ($timeout, $parse) {\r\n return {\r\n //scope: true, // optionally create a child scope\r\n link: function (scope, element, attrs) {\r\n var model = $parse(attrs.focusMe);\r\n scope.$watch(model, function (value) {\r\n console.log('value=', value);\r\n if (value === true) {\r\n $timeout(function () {\r\n element[0].focus();\r\n });\r\n }\r\n });\r\n // to address @blesh's comment, set attribute value to 'false'\r\n // on blur event:\r\n element.bind('blur', function () {\r\n console.log('blur');\r\n scope.$apply(model.assign(scope, false));\r\n });\r\n }\r\n };\r\n }]);\r\n})();"]}