{"version":3,"file":"frontend.js","mappings":"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","sources":["webpack://bizpartengage.web/./FrontEnd/Core/Controllers/completeregister.js","webpack://bizpartengage.web/./FrontEnd/Core/Controllers/exthome.js","webpack://bizpartengage.web/./FrontEnd/Core/Controllers/forgotpassword.js","webpack://bizpartengage.web/./FrontEnd/Core/Controllers/login.js","webpack://bizpartengage.web/./FrontEnd/Core/Controllers/logout.js","webpack://bizpartengage.web/./FrontEnd/Core/Controllers/mypage.js","webpack://bizpartengage.web/./FrontEnd/Core/Controllers/notifications.js","webpack://bizpartengage.web/./FrontEnd/Core/Controllers/register.js","webpack://bizpartengage.web/./FrontEnd/Core/Controllers/terms.js","webpack://bizpartengage.web/./FrontEnd/Core/Controllers/themestest.js","webpack://bizpartengage.web/./FrontEnd/Core/Controllers/unsubscribe.js","webpack://bizpartengage.web/./FrontEnd/Core/Controllers/welcome.js","webpack://bizpartengage.web/./FrontEnd/Core/Directives/ActivityReminders.js","webpack://bizpartengage.web/./FrontEnd/Core/Directives/AdminBar.js","webpack://bizpartengage.web/./FrontEnd/Core/Directives/CookieSettings.js","webpack://bizpartengage.web/./FrontEnd/Core/Directives/CountdownTimer.js","webpack://bizpartengage.web/./FrontEnd/Core/Directives/CultureSelector.js","webpack://bizpartengage.web/./FrontEnd/Core/Directives/Engage.js","webpack://bizpartengage.web/./FrontEnd/Core/Directives/Favorites.js","webpack://bizpartengage.web/./FrontEnd/Core/Directives/Header.js","webpack://bizpartengage.web/./FrontEnd/Core/Directives/LayoutComponent.js","webpack://bizpartengage.web/./FrontEnd/Core/Directives/Leaderboard.js","webpack://bizpartengage.web/./FrontEnd/Core/Directives/LevelProgress.js","webpack://bizpartengage.web/./FrontEnd/Core/Directives/MainMenu.js","webpack://bizpartengage.web/./FrontEnd/Core/Directives/MyNotes.js","webpack://bizpartengage.web/./FrontEnd/Core/Directives/MyText.js","webpack://bizpartengage.web/./FrontEnd/Core/Directives/Notifications.js","webpack://bizpartengage.web/./FrontEnd/Core/Directives/OpenIdLoginBtns.js","webpack://bizpartengage.web/./FrontEnd/Core/Directives/ProfileMenu.js","webpack://bizpartengage.web/./FrontEnd/Core/Directives/Search.js","webpack://bizpartengage.web/./FrontEnd/Core/Directives/SimpleWelcomeGuide.js","webpack://bizpartengage.web/./FrontEnd/Core/Directives/SimulateUser.js","webpack://bizpartengage.web/./FrontEnd/Core/Directives/SocialShare.js","webpack://bizpartengage.web/./FrontEnd/Core/Directives/TipSomeone.js","webpack://bizpartengage.web/./FrontEnd/Core/Directives/Unsubscribe.js","webpack://bizpartengage.web/./FrontEnd/Core/Services/completeregisterService.js","webpack://bizpartengage.web/./FrontEnd/Core/Services/engageService.js","webpack://bizpartengage.web/./FrontEnd/Core/Services/eventStatisticsService.js","webpack://bizpartengage.web/./FrontEnd/Core/Services/favoriteService.js","webpack://bizpartengage.web/./FrontEnd/Core/Services/forgotpasswordService.js","webpack://bizpartengage.web/./FrontEnd/Core/Services/leaderboardService.js","webpack://bizpartengage.web/./FrontEnd/Core/Services/levelService.js","webpack://bizpartengage.web/./FrontEnd/Core/Services/myNotesService.js","webpack://bizpartengage.web/./FrontEnd/Core/Services/portalService.js","webpack://bizpartengage.web/./FrontEnd/Core/Services/register.js","webpack://bizpartengage.web/./FrontEnd/Core/Services/sessionService.js","webpack://bizpartengage.web/./FrontEnd/Core/Services/ssoService.js","webpack://bizpartengage.web/./FrontEnd/Core/Services/termsService.js","webpack://bizpartengage.web/./FrontEnd/Core/Services/unitService.js","webpack://bizpartengage.web/./FrontEnd/Core/Services/userService.js","webpack://bizpartengage.web/./FrontEnd/Core/routing.js","webpack://bizpartengage.web/./FrontEnd/Effects/effects.js","webpack://bizpartengage.web/./FrontEnd/Effects/fireworks.js","webpack://bizpartengage.web/./FrontEnd/Effects/pagetitlenotification.js","webpack://bizpartengage.web/./FrontEnd/Modules/Blog/controllers.js","webpack://bizpartengage.web/./FrontEnd/Modules/Blog/directives.js","webpack://bizpartengage.web/./FrontEnd/Modules/Blog/services.js","webpack://bizpartengage.web/./FrontEnd/Modules/CMS/controllers.js","webpack://bizpartengage.web/./FrontEnd/Modules/CMS/services.js","webpack://bizpartengage.web/./FrontEnd/Modules/Campaign/controllers.js","webpack://bizpartengage.web/./FrontEnd/Modules/Campaign/services.js","webpack://bizpartengage.web/./FrontEnd/Modules/Certifications/controllers.js","webpack://bizpartengage.web/./FrontEnd/Modules/Certifications/services.js","webpack://bizpartengage.web/./FrontEnd/Modules/Dictionary/controllers.js","webpack://bizpartengage.web/./FrontEnd/Modules/Dictionary/services.js","webpack://bizpartengage.web/./FrontEnd/Modules/Education/controllers.js","webpack://bizpartengage.web/./FrontEnd/Modules/Education/directives.js","webpack://bizpartengage.web/./FrontEnd/Modules/Education/services.js","webpack://bizpartengage.web/./FrontEnd/Modules/EngagementGoals/Directives/deactivateGoal.js","webpack://bizpartengage.web/./FrontEnd/Modules/EngagementGoals/Directives/managerGoals.js","webpack://bizpartengage.web/./FrontEnd/Modules/EngagementGoals/Directives/myGoals.js","webpack://bizpartengage.web/./FrontEnd/Modules/EngagementGoals/Directives/myRootGoals.js","webpack://bizpartengage.web/./FrontEnd/Modules/EngagementGoals/Directives/myTasks.js","webpack://bizpartengage.web/./FrontEnd/Modules/EngagementGoals/Directives/oneActivity.js","webpack://bizpartengage.web/./FrontEnd/Modules/EngagementGoals/Directives/oneGoal.js","webpack://bizpartengage.web/./FrontEnd/Modules/EngagementGoals/Directives/oneTask.js","webpack://bizpartengage.web/./FrontEnd/Modules/EngagementGoals/Directives/taskStatus.js","webpack://bizpartengage.web/./FrontEnd/Modules/EngagementGoals/Modules/Activities/controllers.js","webpack://bizpartengage.web/./FrontEnd/Modules/EngagementGoals/Modules/Calendar/controllers.js","webpack://bizpartengage.web/./FrontEnd/Modules/EngagementGoals/Modules/Calendar/services.js","webpack://bizpartengage.web/./FrontEnd/Modules/EngagementGoals/Modules/Dashboard/controllers.js","webpack://bizpartengage.web/./FrontEnd/Modules/EngagementGoals/Modules/Goals/controllers.js","webpack://bizpartengage.web/./FrontEnd/Modules/EngagementGoals/Modules/ManagerSettings/controllers.js","webpack://bizpartengage.web/./FrontEnd/Modules/EngagementGoals/Modules/Resultreport/controllers.js","webpack://bizpartengage.web/./FrontEnd/Modules/EngagementGoals/Modules/Tasks/controllers.js","webpack://bizpartengage.web/./FrontEnd/Modules/EngagementGoals/Modules/Team/controllers.js","webpack://bizpartengage.web/./FrontEnd/Modules/Event/controllers.js","webpack://bizpartengage.web/./FrontEnd/Modules/Event/services.js","webpack://bizpartengage.web/./FrontEnd/Modules/Forms/Plugins/questions.js","webpack://bizpartengage.web/./FrontEnd/Modules/Forum/controllers.js","webpack://bizpartengage.web/./FrontEnd/Modules/Forum/services.js","webpack://bizpartengage.web/./FrontEnd/Modules/Journey/controllers.js","webpack://bizpartengage.web/./FrontEnd/Modules/MasterRun/controllers.js","webpack://bizpartengage.web/./FrontEnd/Modules/Media/controllers.js","webpack://bizpartengage.web/./FrontEnd/Modules/Media/directives.js","webpack://bizpartengage.web/./FrontEnd/Modules/Media/services.js","webpack://bizpartengage.web/./FrontEnd/Modules/Missions/controllers.js","webpack://bizpartengage.web/./FrontEnd/Modules/Missions/directives.js","webpack://bizpartengage.web/./FrontEnd/Modules/Missions/services.js","webpack://bizpartengage.web/./FrontEnd/Modules/Search/controllers.js","webpack://bizpartengage.web/./FrontEnd/Modules/SpeedQuiz/controllers.js","webpack://bizpartengage.web/./FrontEnd/Modules/SpeedQuiz/services.js","webpack://bizpartengage.web/./FrontEnd/Modules/routing.js","webpack://bizpartengage.web/./FrontEnd/app.js","webpack://bizpartengage.web/./FrontEnd/controllers.js","webpack://bizpartengage.web/./FrontEnd/directives.js","webpack://bizpartengage.web/./FrontEnd/filters.js","webpack://bizpartengage.web/./FrontEnd/services.js","webpack://bizpartengage.web/./FrontEnd/templates.js","webpack://bizpartengage.web/webpack/bootstrap"],"sourcesContent":["(function (angular) {\r\n angular.module('bizPartEngage').controller('cleanbase.completeregister', completeRegister);\r\n\r\n completeRegister.$inject = ['$rootScope', '$scope', '$stateParams', 'core.completeregisterService', '$translate', '$timeout', '$filter', '$sce', 'core.users.service'];\r\n\r\n function completeRegister($rootScope, $scope, $stateParams, completeRegisterService, $translate, $timeout, $filter, $sce, userService) {\r\n var vm = this;\r\n\r\n vm.CompleteRegistrationGuid = $stateParams.guid;\r\n vm.Unauthorized = false;\r\n\r\n vm.MobilePattern = /^\\+[0-9]{10,}$/;\r\n\r\n vm.GetUser = GetUser;\r\n vm.CompleteRegistration = CompleteRegistration;\r\n vm.GenderClick = GenderClick;\r\n vm.GetGender = GetGender;\r\n vm.IsMobileValid = IsMobileValid;\r\n vm.LoadTranslations = LoadTranslations;\r\n vm.GetPassword = GetPassword;\r\n vm.IsEmailValid = IsEmailValid;\r\n vm.SendVerificationCode = SendVerificationCode;\r\n vm.IsPasswordSecure = IsPasswordSecure;\r\n\r\n function IsEmailValid() {\r\n if (!vm.User || !vm.User.Email) return false;\r\n if (!vm.EmailPattern) return true;\r\n\r\n return vm.EmailPattern.test(vm.User.Email);\r\n }\r\n\r\n function SendVerificationCode() {\r\n if (vm.IsEmailValid()) {\r\n completeRegisterService.SendVerificationCode(vm.CompleteRegistrationGuid, vm.User.Email).then(SendVerificationCodeCallback, SendVerificationCodeError);\r\n } else { \r\n vm.ShowEmailInvalid = true;\r\n }\r\n\r\n function SendVerificationCodeCallback(response) {\r\n var result = BizPartCoreHelpers.getResponseValue(response);\r\n if (result) {\r\n vm.VerificationCodeSent = true;\r\n } else {\r\n SendVerificationCodeError();\r\n }\r\n }\r\n\r\n function SendVerificationCodeError() {\r\n console.log(\"send verification code error\");\r\n }\r\n }\r\n\r\n function IsMobileValid() {\r\n if (!vm.User.Mobile) return false;\r\n\r\n return vm.MobilePattern.test(vm.User.Mobile)\r\n }\r\n\r\n function GenderClick(gender) {\r\n for (var i = 0; i < vm.Genders.length; i++) {\r\n vm.Genders[i].checked = vm.Genders[i] === gender;\r\n }\r\n }\r\n\r\n function GetUser() {\r\n completeRegisterService.GetUserByActionGuid(vm.CompleteRegistrationGuid).then(GetUserByActionGuidCallback, HandleError);\r\n\r\n function GetUserByActionGuidCallback(response) {\r\n var result = BizPartCoreHelpers.getResponseValue(response);\r\n vm.User = result.User;\r\n vm.FormSettings = result.Settings;\r\n console.log(\"formsettings\", vm.FormSettings);\r\n vm.Initialized = true;\r\n }\r\n\r\n function HandleError(response) { \r\n if (response.status === 401) {\r\n vm.Unauthorized = true;\r\n vm.UnauthorizedMessage = BizPartCoreHelpers.getResponseValue(response);\r\n }\r\n }\r\n }\r\n\r\n function GetGender() {\r\n for (var i = 0; i < vm.Genders.length; i++) {\r\n if (vm.Genders[i].checked) {\r\n return vm.Genders[i].SystemName;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n function IsPasswordSecure() {\r\n return !vm.GetPassword || $rootScope.PasswordRegex.test(vm.Password);\r\n }\r\n\r\n function GetPassword() {\r\n if (vm.IsPasswordSecure() && vm.Password && vm.Password === vm.RepeatPassword) {\r\n return vm.Password;\r\n } \r\n }\r\n\r\n function CompleteRegistration() { \r\n \r\n var gender = vm.GetGender();\r\n\r\n var password;\r\n var passwordValid = true;\r\n if (vm.FormSettings && vm.FormSettings.AllowSetPassword) {\r\n password = vm.GetPassword();\r\n if (!password) {\r\n passwordValid = false;\r\n }\r\n } \r\n \r\n if (vm.MyForm.$valid && gender && passwordValid && !vm.Submitting && !vm.Submitted) {\r\n console.log(\"submitted\");\r\n vm.ShowValidation = false;\r\n vm.Submitting = true;\r\n\r\n vm.User.Gender = gender; \r\n\r\n completeRegisterService.CompleteRegistration(vm.CompleteRegistrationGuid, vm.User, password, vm.ExtCustomFieldValues, vm.VerificationCode).then(CompleteRegistrationCallback, HandleError);\r\n\r\n function CompleteRegistrationCallback(response) {\r\n var result = BizPartCoreHelpers.getResponseValue(response);\r\n console.log(\"result\", result);\r\n vm.Submitted = true;\r\n vm.Success = result.Success;\r\n if (!vm.Success) {\r\n vm.Message = $sce.trustAsHtml(result.Message);\r\n } else {\r\n vm.SuccessMessage = $sce.trustAsHtml(result.Message)\r\n var redirectUrl = result.ExtraInfo.RedirectUrl;\r\n if (redirectUrl) {\r\n if (redirectUrl.startsWith('/') && redirectUrl.toLowerCase().indexOf('login') < 0) {\r\n setSessionStorage('highlightLogin', 'true');\r\n }\r\n\r\n vm.RedirectTimeout = $timeout(() => {\r\n location.href = $filter('siteroot')(redirectUrl);\r\n }, 20000);\r\n }\r\n }\r\n }\r\n\r\n function HandleError() {\r\n console.log(\"handle error\");\r\n vm.Success = false;\r\n vm.Submitted = true;\r\n vm.InternalError = true;\r\n vm.Message = \"Something went wrong, please try again later.\"\r\n }\r\n } else {\r\n console.log(\"not valid\");\r\n vm.ShowValidation = true;\r\n }\r\n \r\n }\r\n\r\n function LoadTranslations() {\r\n $translate([\r\n 'CORE.COMPLETEREGISTER.ERROR_MSG',\r\n 'CORE.COMPLETEREGISTER.MAILTO' \r\n\r\n ]).then(function (translations) {\r\n \r\n var msg = translations['CORE.COMPLETEREGISTER.ERROR_MSG']?.toString();\r\n var mail = translations['CORE.COMPLETEREGISTER.MAILTO']?.toString();\r\n if (msg && mail) {\r\n vm.ErrorMessage = msg.replace('##MAILTOLINK##', '' + mail + '');\r\n } else {\r\n vm.ErrorMessage = msg;\r\n }\r\n console.log(\"error msg\", vm.ErrorMessage);\r\n \r\n });\r\n }\r\n\r\n function Init() {\r\n \r\n userService.GetGenders().then(GetGendersCallback);\r\n vm.LoadTranslations();\r\n completeRegisterService.GetGuidInfo(vm.CompleteRegistrationGuid).then(GetGuidInfoCallback, HandleError);\r\n\r\n function GetGuidInfoCallback(response) {\r\n var result = BizPartCoreHelpers.getResponseValue(response);\r\n console.log(\"GetGuidInfoCallback\", result);\r\n if (result.Type === 'COMPLETE_REGISTRATION') {\r\n vm.GetUser();\r\n } else if (result.Type === 'CREATE_USER_FOR_UNIT') {\r\n vm.CreateUserForUnit = true;\r\n vm.FormSettings = result.Settings;\r\n\r\n if (vm.FormSettings.AllowEmailDomains && vm.FormSettings.AllowEmailDomains.length > 0) {\r\n var regexDomains = vm.FormSettings.AllowEmailDomains.join('|');\r\n //vm.EmailPattern = new RegExp(\"^\\\\w+([-+.']\\\\w+)*@(?=(?:\" + regexDomains + \")\\\\.\\\\w+$)\\\\w+([-.]\\\\w+)*\\\\.\\\\w+([-.]\\\\w+)*$\");\r\n vm.EmailPattern = new RegExp(\"^[a-zA-Z0-9._%+-]+@(?:\" + regexDomains + \")$\");\r\n } \r\n\r\n vm.Initialized = true;\r\n }\r\n } \r\n\r\n function HandleError(response) {\r\n if (response.status === 401) {\r\n vm.Unauthorized = true;\r\n vm.UnauthorizedMessage = BizPartCoreHelpers.getResponseValue(response);\r\n }\r\n }\r\n\r\n function GetGendersCallback(response) {\r\n vm.Genders = BizPartCoreHelpers.getResponseValue(response);\r\n }\r\n\r\n $scope.$on(\"$destroy\", () => {\r\n if (vm.RedirectTimeout) {\r\n $timeout.cancel(vm.RedirectTimeout);\r\n }\r\n });\r\n }\r\n\r\n vm.$onInit = Init;\r\n\r\n }\r\n})(window.angular);","(function (angular) {\r\n angular.module('bizPartEngage').controller('cleanbase.exthome', extHome);\r\n\r\n extHome.$inject = ['$rootScope', '$window'];\r\n\r\n function extHome($rootScope, $window) {\r\n var vm = this;\r\n\r\n //const width = 1600;\r\n const width = screen.width;\r\n const css = {\r\n height: width > 1600 ? '60%' : '80%',\r\n width: width > 1600 ? '60%' : '86%',\r\n top: '10%',\r\n left: width > 1600 ? '20%' : '7%',\r\n boxShadow:\r\n '0px 2px 1px -1px rgba(0,0,0,0.2), 0px 1px 1px 0px rgba(0,0,0,0.14), 0px 1px 3px 0px rgba(0,0,0,0.12)',\r\n borderRadius: '5px',\r\n };\r\n\r\n $rootScope.$on('WELCOMEGUIDE.COMPLETED', function (e, data) {\r\n vm.showWelcomeGuide = false;\r\n $window.parent.postMessage(\r\n { show: false, dimBackground: false, css: {} },\r\n '*'\r\n );\r\n });\r\n\r\n $rootScope.$on('WELCOMEGUIDE.SHOW', function (e, data) {\r\n vm.showWelcomeGuide = true;\r\n var showData = {\r\n show: true,\r\n dimBackground: true,\r\n css: css,\r\n };\r\n $window.parent.postMessage(showData, '*');\r\n });\r\n }\r\n})(window.angular);\r\n","(function (angular) {\r\n\tangular.module('bizPartEngage').controller('core.forgotpassword', forgotpasswordController);\r\n\tangular.module('bizPartEngage').controller('core.changepassword', changepasswordController);\r\n\r\n\tforgotpasswordController.$inject = [\"$rootScope\", \"core.forgotpasswordService\", \"$mdDialog\", \"$translate\", \"bizValidationService\", \"$mdToast\", \"bizCoreService\"];\r\n changepasswordController.$inject = [\"$rootScope\", \"core.forgotpasswordService\", \"$mdDialog\", \"$translate\", \"bizValidationService\", \"$mdToast\", \"$stateParams\", \"$state\", \"bizCoreService\"];\r\n\r\n\tfunction forgotpasswordController($rootScope, forgotpasswordService, $mdDialog, $translate, bizValidationService, $mdToast, bizCoreService) {\r\n\t\tvar vm = this;\r\n\t\tvm.IsIframed = false;\r\n\t\tvm.mode = 'requestpassword';\r\n\t\tvm.SendForgotPasswordWithEmail = SendForgotPasswordWithEmail;\r\n\t\tvm.Message = '';\r\n vm.ShowLogin = ShowLogin;\r\n vm.ErrorObject = null;\r\n\t\tvm.Portal;\r\n\r\n\t\tvm.BackgroundImage = 'Images/login-img.png';\r\n\t\tvm.IsImagesInitialized = false;\r\n\r\n\t\tvm.User = {\r\n\t\t\tEmail: ''\r\n\t\t};\r\n\r\n\t\tfunction ShowLogin() {\r\n\t\t\t$rootScope.$broadcast('SHOW-LOGIN-DIRECTIVE');\r\n\t\t}\r\n\r\n\t\tfunction SendForgotPasswordWithEmail() {\r\n\t\t\tvm.Message = '';\r\n\t\t\tif (vm.User.Email && vm.User.Email.indexOf('@') > 0) { // bizValidationService.FormValid(vm.MyForm1) == true && \r\n\r\n\t\t\t\tforgotpasswordService.SendPasswordRecoveryEmail(vm.User.Email).then(forgotpasswordSuccess);\r\n\r\n\t\t\t\tfunction forgotpasswordSuccess(response) {\r\n\t\t\t\t\tif (response.data.Success == true) {\r\n\t\t\t\t\t\tvm.User.Email = '';\r\n\t\t\t\t\t\t$translate('CORE.FORGOTPASSWORD.EMAILSENT').then(function(translation) {\r\n\t\t\t\t\t\t\tvm.Message = translation || 'E-mail sent!';\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (response.data.Message.length > 0) {\r\n\t\t\t\t\t\tvm.Message = response.data.Message;\r\n }\r\n\r\n vm.ErrorObject = response.data.Object;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t\r\n\t\t\t\t$translate('CORE.FORGOTPASSWORD.NOVALIDEMAILSUPPLIED').then(function (translation) {\r\n\t\t\t\t\tvm.Message = translation || 'No valid email was supplied';\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction GetInitData() {\r\n\t\t\tforgotpasswordService.GetBackgroundImage().then(function (response) {\r\n\t\t\t\tif (response.length > 0)\r\n\t\t\t\t\tvm.BackgroundImage = response;\r\n\r\n\t\t\t\tvm.IsImagesInitialized = true;\r\n\t\t\t});\r\n\r\n\t\t\t$rootScope.HasAcceptedCookies = getLocalStorage('HasAcceptedCookies');\r\n }\r\n\r\n\t\tfunction Init() {\r\n\t\t\tif (window.location.search.indexOf('framed') > -1) {\r\n\t\t\t\tvm.IsIframed = true;\r\n\t\t\t}\r\n\r\n\t\t\tGetInitData();\r\n\t\t}\r\n\r\n\t\tvm.$onInit = Init;\r\n\t}\r\n\r\n function changepasswordController($rootScope, forgotpasswordService, $mdDialog, $translate, bizValidationService, $mdToast, $stateParams, $state, bizCoreService) {\r\n\t\tvar vm = this;\r\n\t\tvm.Guid = $stateParams.guid;\r\n\t\tvm.mode = 'changepassword';\r\n\t\tvm.PasswordWasUpdated = false;\r\n\t\tvm.IsGuidValid = false;\r\n\r\n\t\tvm.BackgroundImage = 'Images/login-img.png';\r\n\t\tvm.IsImagesInitialized = false;\r\n\r\n\t\tvm.UpdatePassword = UpdatePassword;\r\n\t\tvm.Init = Init;\r\n\r\n function Init() {\r\n GetInitData();\r\n\r\n\t\t\tforgotpasswordService.IsResetPasswordGuidValid(vm.Guid).then(IsResetPasswordGuidValidSuccess);\r\n\r\n\t\t\tfunction IsResetPasswordGuidValidSuccess(response) {\r\n\t\t\t\tvm.IsGuidValid = response.data.Success;\r\n\r\n\t\t\t\tif (vm.IsGuidValid == false) {\r\n\t\t\t\t\t$translate('CORE.FORGOTPASSWORD.GUIDNOTVALID').then(function (translation) {\r\n\t\t\t\t\t\tvm.Message = translation || 'Supplied link is not valid!';\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n }\r\n\r\n function GetInitData() {\r\n\t\t\tforgotpasswordService.GetBackgroundImage().then(function (response) {\r\n\t\t\t\tif (response.length > 0)\r\n\t\t\t\t\tvm.BackgroundImage = response;\r\n\r\n\t\t\t\tvm.IsImagesInitialized = true;\r\n\t\t\t});\r\n }\r\n\t\t\r\n\t\tfunction UpdatePassword() {\r\n\t\t\tif (!vm.MyForm2.$valid || vm.Password != vm.RepeatPassword) {\r\n\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t//if (bizValidationService.FormValid(vm.MyForm2) == true) { // TODO more validation, regex...?\r\n\r\n\t\t\t\t//vm.Password = vm.Password.trim();\r\n\t\t\t\t//vm.RepeatPassword = vm.RepeatPassword.trim();\r\n\r\n\t\t\t\t//if (vm.Password != vm.RepeatPassword) {\r\n\t\t\t\t//\t$translate('CORE.FORGOTPASSWORD.PASSWORDNOTSAME').then(function (translation) {\r\n\t\t\t\t//\t\tvm.Message = translation || 'Passwords does not match!';\r\n\t\t\t\t//\t});\r\n\t\t\t\t//}\r\n\t\t\t\t//else {\r\n\t\t\t\t\tforgotpasswordService.UpdatePassword(vm.Guid, vm.Password).then(updateSuccess);\r\n\r\n\t\t\t\t\tfunction updateSuccess(response) {\r\n\t\t\t\t\t\tif (response.data.Success == true) {\r\n\t\t\t\t\t\t\t$translate('CORE.FORGOTPASSWORD.RESETSUCCESS').then(function (translation) {\r\n\t\t\t\t\t\t\t\tvm.Message = translation || 'Password updated!';\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tvm.PasswordWasUpdated = true;\r\n\t\t\t\t\t\t\tvm.Password = '';\r\n vm.RepeatPassword = '';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tvm.Message = response.data.Message;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t//}\r\n\t\t\t//}\r\n\t\t\t\r\n\t\t}\r\n\r\n\t\tvm.$onInit = vm.Init;\r\n\t}\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').controller('core.login', loginController);\r\n\r\n loginController.$inject = [\"$rootScope\", \"loginService\", \"core.forgotpasswordService\", \"$timeout\", \"$state\", \"$window\", \"bizLoaderService\", \r\n \"$stateParams\", \"bizValidationService\", \"$translate\", \"bizCoreService\"];\r\n\r\n function loginController($rootScope, loginService, forgotpasswordService, $timeout, $state, $window, bizLoaderService, \r\n $stateParams, bizValidationService, $translate, bizCoreService) {\r\n var vm = this;\r\n vm.IsInitialized = false;\r\n vm.IsImagesInitialized = false;\r\n vm.BackgroundImage = 'Images/login-img.png';\r\n vm.REMEMBER_ME_VAL_KEY = \"LOGIN_REMEMBER_ME_VAL\";\r\n vm.Message = '';\r\n vm.ErrorObject = null;\r\n vm.LoginError = false;\r\n vm.RememberMe = false; \r\n vm.PasswordWasUpdated = false;\r\n vm.OpenLoginActive = false;\r\n vm.ShowLogo = $rootScope.MiniSettings.Login.ShowLogo;\r\n vm.ShowPortalName = $rootScope.MiniSettings.Login.ShowPortalName;\r\n if ($stateParams.guid === 'init') {\r\n vm.ActivateAccountInit = true;\r\n } else {\r\n vm.ActivateAccountGuid = $stateParams.guid;\r\n }\r\n\r\n vm.PhraseSuffix = $stateParams.phraseSuffix;\r\n\r\n vm.Portal;\r\n\r\n vm.Login = Login;\r\n vm.SetRememberMeData = SetRememberMeData;\r\n vm.UpdatePassword = UpdatePassword;\r\n vm.SetHighlightLogin = SetHighlightLogin;\r\n vm.InitEmailVerification = InitEmailVerification;\r\n\r\n function SetHighlightLogin() {\r\n setSessionStorage('highlightLogin', 'true');\r\n }\r\n\r\n function Login() {\r\n vm.UserName = vm.UserName.trim();\r\n vm.Password = vm.Password.trim();\r\n\r\n if (vm.UserName.length == 0 || vm.Password.length == 0)\r\n return;\r\n\r\n bizLoaderService.RequestFullPageLoader();\r\n if(vm.RememberMe) vm.SetRememberMeData();\r\n else deleteLocalStorage(vm.REMEMBER_ME_VAL_KEY);\r\n\r\n \tloginService.Login(vm.UserName, vm.Password).then(LoginCallback, bizLoaderService.RequestFullPageLoaderFinish);\r\n\r\n function LoginCallback(response) {\r\n if (response.data.Token && response.data.Token != \"\") {\r\n deleteStorage(\"BizPartAuthToken\");\r\n setBizPartAuthToken(response.data.Token, response.data.Id);\r\n }\r\n\r\n vm.ErrorObject = response.data.Object;\r\n\r\n if (response.data.Id > -1) {\r\n if (response.data.RedirectUrl) {\r\n if (response.data.RedirectUrl === '/') {\r\n $window.location = siteRootPath;\r\n } else {\r\n $window.location = siteRootPath + response.data.RedirectUrl;\r\n }\r\n \r\n }\r\n else if(response.data.HasAdminAccess) {\r\n //$window.location = siteRootPath + \"admin\";\r\n $window.location = $rootScope.MiniSettings.Login.LoginAdminUrl;\r\n } \r\n else if (initialUrl) {\r\n $window.location = siteRootPath + initialUrl;\r\n }\r\n else {\r\n $window.location = siteRootPath;\r\n } \r\n }\r\n else {\r\n \tbizLoaderService.RequestFullPageLoaderFinish();\r\n vm.LoginError = true;\r\n }\r\n }\r\n }\r\n\r\n function SetRememberMeData() {\r\n setLocalStorage(vm.REMEMBER_ME_VAL_KEY, vm.UserName);\r\n }\r\n\r\n function InitEmailVerification() {\r\n if (bizValidationService.FormValid(vm.ActivateAccountInitForm) == true) {\r\n\r\n //We can set it right away as the backend will give no indication of success anyway due to security\r\n vm.AcctivateAccountInitSent = true;\r\n loginService.InitEmailVerification(vm.InitEmail).then(InitEmailVerificationCallback);\r\n\r\n function InitEmailVerificationCallback(response) {\r\n //vm.AcctivateAccountInitSent = true;\r\n }\r\n } \r\n }\r\n\r\n function UpdatePassword() {\r\n if (!vm.MyForm2.$valid || vm.Password != vm.RepeatPassword) {\r\n\r\n return;\r\n }\r\n\r\n //if (bizValidationService.FormValid(vm.MyForm2) == true) { // TODO more validation, regex...?\r\n\r\n //if (vm.Password != vm.RepeatPassword) {\r\n // $translate('CORE.FORGOTPASSWORD.PASSWORDNOTSAME').then(function (translation) {\r\n // vm.Message = translation || 'Passwords does not match!';\r\n // });\r\n //}\r\n //else {\r\n forgotpasswordService.UpdatePassword(vm.ActivateAccountGuid, vm.Password).then(updateSuccess);\r\n\r\n function updateSuccess(response) {\r\n if (response.data.Success == true) {\r\n $translate('CORE.FORGOTPASSWORD.RESETSUCCESS').then(function (translation) {\r\n vm.Message = translation || 'Password updated!';\r\n });\r\n\r\n vm.PasswordWasUpdated = true;\r\n vm.Password = '';\r\n vm.RepeatPassword = '';\r\n\r\n if (response.data.Object) {\r\n if (response.data.Object.redirectUrl) {\r\n vm.RedirectUrl = response.data.Object.redirectUrl;\r\n }\r\n }\r\n }\r\n else {\r\n vm.Message = response.data.Message;\r\n }\r\n\r\n vm.ErrorObject = response.data.Object;\r\n }\r\n // }\r\n //}\r\n }\r\n\r\n function GetInitData() {\r\n forgotpasswordService.GetBackgroundImage().then(function (response) {\r\n if (response.length > 0)\r\n vm.BackgroundImage = response;\r\n\r\n vm.IsImagesInitialized = true;\r\n });\r\n\r\n bizCoreService.GetCurrentPortal().then(function(response) {\r\n vm.Portal = response.data;\r\n });\r\n\r\n bizCoreService.GetPortalsetting(\"IsOpenIdLoginEnabled\").then(function (response) {\r\n vm.OpenLoginActive = response.data === 'True';\r\n });\r\n\r\n var openIdOnly = portalSettings[\"IsOpenIdLoginOnly\"];\r\n if (openIdOnly) {\r\n var overrideOpenIdOnly = getParameterByNameFromUrl('s', location.href) === '91af1798-35b0-4974-9ef5-0fcf52fbe355';\r\n if (!overrideOpenIdOnly) {\r\n vm.OpenIdOnly = true;\r\n }\r\n }\r\n }\r\n\r\n function Init() {\r\n\r\n GetInitData();\r\n\r\n $rootScope.HasAcceptedCookies = getLocalStorage('HasAcceptedCookies');\r\n\r\n if (vm.ActivateAccountGuid) {\r\n loginService.ActivateAccount(vm.ActivateAccountGuid).then(ActivateAccountCallback);\r\n\r\n function ActivateAccountCallback(response) {\r\n console.log(response);\r\n vm.Message = response.data.Message;\r\n vm.ActivateAccountSuccess = response.data.Success;\r\n vm.ErrorObject = response.data.Object;\r\n\r\n if (response.data.Success && response.data.ExtraInfo?.UserName) {\r\n setSessionStorage('ACTIVATED_EMAIL_USERNAME', response.data.ExtraInfo.UserName);\r\n } else if (response.data.ExtraInfo?.UserName) {\r\n setSessionStorage('ACTIVATED_EMAIL_USERNAME', response.data.ExtraInfo.UserName);\r\n $window.location = siteRootPath + $rootScope.MiniSettings[\"Login\"][\"AlreadyVerifiedRedirectUrl\"];\r\n }\r\n }\r\n }\r\n else {\r\n var rememberMeVal = getLocalStorage(vm.REMEMBER_ME_VAL_KEY);\r\n var activatedEmailUserName = getSessionStorage('ACTIVATED_EMAIL_USERNAME');\r\n if (activatedEmailUserName) {\r\n deleteSessionStorage('ACTIVATED_EMAIL_USERNAME');\r\n }\r\n\r\n if (rememberMeVal || activatedEmailUserName) {\r\n vm.UserName = rememberMeVal || activatedEmailUserName;\r\n if (rememberMeVal) {\r\n vm.RememberMe = true;\r\n }\r\n setTimeout(function () {\r\n document.getElementById(\"password\").focus();\r\n }, 10);\r\n } \r\n }\r\n\r\n vm.IsInitialized = true;\r\n }\r\n\r\n vm.$onInit = Init;\r\n }\r\n\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').controller('core.logout', logoutController);\r\n\r\n logoutController.$inject = [\"$rootScope\", \"core.users.service\"];\r\n\r\n function logoutController($rootScope, userService) {\r\n var vm = this;\r\n\r\n function Init() {\r\n userService.Logout();\r\n }\r\n\r\n $rootScope.Initialized.then(Init);\r\n }\r\n}(window.angular));","(function(angular) {\r\n angular.module('bizPartEngage').controller('core.mypage', mypageController);\r\n angular.module('bizPartEngage').controller('core.mysettings', mysettingsController);\r\n angular.module('bizPartEngage').controller('core.mysecurity', mysecurityController);\r\n angular.module('bizPartEngage').controller('core.mycustomsettings', mycustomsettingsController);\r\n angular.module('bizPartEngage').controller('core.mycolleagues', mycolleaguesController);\r\n angular.module('bizPartEngage').controller('core.myleaderboards', myleaderboardsController);\r\n\r\n mypageController.$inject = [\"$rootScope\", \"$state\", \"modules.education.service\", \"core.users.service\", \"core.level.serivce\", \r\n \"core.event.statistics.service\", \"core.engage.service\", \"modules.certifications.service\"];\r\n mysettingsController.$inject = [\"$rootScope\", \"core.users.service\", \"$mdDialog\", \"$translate\", \"bizMediabankService\", \r\n \"bizMediabankUploadService\", \"$mdToast\", \"$q\", \"bizCoreService\", \"bizCore\", \"$filter\"];\r\n mysecurityController.$inject = [\"$rootScope\", \"core.users.service\", \"$mdToast\"];\r\n mycustomsettingsController.$inject = [\"$rootScope\", \"core.users.service\", \"$mdToast\"];\r\n mycolleaguesController.$inject = [\"$rootScope\", \"core.unit.service\"];\r\n myleaderboardsController.$inject = [\"$rootScope\", \"core.unit.service\", \"core.leaderboard.service\"];\r\n\r\n function mycustomsettingsController($rootScope, userService, $mdToast) {\r\n var vm = this;\r\n vm.MyForm = null;\r\n vm.Initialized = false;\r\n \r\n vm.Init = Init;\r\n vm.Save = Save;\r\n vm.IsFieldRestricted = IsFieldRestricted;\r\n\r\n function IsFieldRestricted(field) {\r\n if (!vm.RestrictedFields) return false;\r\n\r\n var f = vm.RestrictedFields.find(rf => rf.FieldType === 2 && rf.Name.toLowerCase() === field.toLowerCase());\r\n return f !== undefined;\r\n }\r\n\r\n function Save() {\r\n userService.SaveCustomProfileData(vm.User).then(SuccessCallback);\r\n \r\n function SuccessCallback(response) {\r\n vm.MyForm.$setPristine();\r\n vm.MyForm.$setUntouched();\r\n \r\n $mdToast.show($mdToast.simple().content('Successfully saved').position(\"bottom right\"));\r\n }\r\n }\r\n\r\n function Init()\r\n {\r\n userService.GetProfile().then(SuccessCallback);\r\n userService.GetProfileRestrictedFields().then(GetProfileRestrictedFieldsSuccess);\r\n \r\n function SuccessCallback(response) {\r\n vm.Initialized = true;\r\n vm.User = response.data;\r\n console.log(\"vm.User\", vm.User);\r\n }\r\n\r\n function GetProfileRestrictedFieldsSuccess(response) {\r\n vm.RestrictedFields = response.data;\r\n }\r\n }\r\n\r\n $rootScope.Initialized.then(vm.Init);\r\n }\r\n\r\n function mysecurityController($rootScope, userService, $mdToast) {\r\n var vm = this;\r\n vm.MyForm = null;\r\n vm.OldPassword;\r\n vm.NewPassword;\r\n vm.NewPasswordRepeat;\r\n vm.ShowPasswords = false;\r\n\r\n vm.Save = Save;\r\n vm.ToggleShowPassword = ToggleShowPassword;\r\n\r\n function ToggleShowPassword() {\r\n vm.ShowPasswords = !vm.ShowPasswords;\r\n \r\n document.getElementById('newPassword').setAttribute('type', vm.ShowPasswords ? 'text' : 'password');\r\n document.getElementById('newPasswordRepeat').setAttribute('type', vm.ShowPasswords ? 'text' : 'password');\r\n }\r\n\r\n function IsPasswordValidToSave() {\r\n if (vm.OldPassword && vm.OldPassword != \"\" && vm.NewPassword && vm.NewPassword != \"\" && vm.NewPassword === vm.NewPasswordRepeat)\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n function Save() {\r\n if (IsPasswordValidToSave() === false)\r\n return false;\r\n\r\n userService.UpdateMyPassword(vm.NewPassword, vm.OldPassword).then(UpdateMyPasswordSuccess);\r\n\r\n function UpdateMyPasswordSuccess(response) {\r\n \t$mdToast.show($mdToast.simple().content(response.data).position(\"bottom right\"));\r\n\r\n \tvm.OldPassword = undefined;\r\n \tvm.NewPassword = undefined;\r\n vm.NewPasswordRepeat = undefined;\r\n\r\n vm.MyForm.$setPristine();\r\n vm.MyForm.$setUntouched();\r\n\r\n return true;\r\n }\r\n }\r\n }\r\n \r\n function mypageController($rootScope, $state, educationService, userService, levelService, eventStatisticsService, engageService, certificationsService) {\r\n var vm = this;\r\n vm.PageMax = 20;\r\n vm.UserStats = undefined;\r\n vm.AuthToken = getBizPartAuthToken();\r\n vm.Mascot = mascot;\r\n\r\n vm.EducationCount = -1;\r\n vm.BlogCount = -1;\r\n vm.VideoCount = -1;\r\n vm.ScormCount = -1;\r\n vm.QuizCount = -1;\r\n vm.TotalEducationCount = -1;\r\n\r\n vm.Notifications = [];\r\n vm.NotificationsPage = 1;\r\n vm.ActivityLog = [];\r\n vm.ActivityLogPage = 1;\r\n vm.GainMoreExperience = [];\r\n vm.GainMoreExperiencePage = 1;\r\n vm.LastGainedExperience = [];\r\n vm.LastGainedExperiencePage = 1;\r\n vm.CertificationCount = 0;\r\n vm.CompletedEducationCount = 0;\r\n\r\n vm.GetCompletedCount = GetCompletedCount;\r\n vm.GetLoggedInUserNotifications = GetLoggedInUserNotifications;\r\n vm.GetLoggedInUserExperiencePointHistory = GetLoggedInUserExperiencePointHistory;\r\n vm.GetAllEventStatisticsForUser = GetAllEventStatisticsForUser;\r\n vm.GetSuggestions = GetSuggestions;\r\n vm.GoToSuggestion = GoToSuggestion;\r\n vm.GetSuggestionIcon = GetSuggestionIcon;\r\n vm.ShowCertificates = ShowCertificates;\r\n vm.GetUserLogStats = GetUserLogStats;\r\n vm.GetStatCount = GetStatCount;\r\n vm.Initialize = Initialize;\r\n vm.GoToItem = GoToItem;\r\n\r\n function GoToItem(item) { \r\n //The types that only should be clickable for the users own items\r\n if ((item.Settings && ~~item.Settings.ObjectOwnerUserId > 0 && item.Settings.ObjectOwnerUserId === $rootScope.LoggedInUser.Id)) {\r\n switch (item.ObjectType) {\r\n case 'GOAL':\r\n $state.go(\"base.modules.goals.onegoal\", { id: ~~item.ObjectId > 0 ? ~~item.ObjectId : 'new' });\r\n break;\r\n case 'TODO':\r\n $state.go(\"base.modules.goals.onetask\", { id: ~~item.ObjectId > 0 ? ~~item.ObjectId : 'new' });\r\n break;\r\n case 'ACTIVITY':\r\n $state.go(\"base.modules.goals.activity\", { id: ~~item.ObjectId > 0 ? ~~item.ObjectId : 'new' });\r\n break;\r\n }\r\n }\r\n\r\n //The types that should be clickable for any user (as long as they have access, which should be fixed on backend)\r\n switch (item.ObjectType) {\r\n case 'HTML5':\r\n $state.go(\"base.modules.html5education\", { id: item.ObjectId });\r\n break;\r\n case 'MediabankFile':\r\n $state.go(\"base.modules.mediafile\", { id: item.ObjectId });\r\n break;\r\n case 'Blog':\r\n $state.go(\"base.modules.blog\", { id: item.ObjectId });\r\n break;\r\n case 'SCORM':\r\n location.href = siteRootPath + \"SCORM/\" + item.ObjectId;\r\n break;\r\n } \r\n }\r\n\r\n function GetStatCount(types) {\r\n var count = -1;\r\n if(types && vm.UserStats) {\r\n //We handle multiple types...\r\n if(types.length > 1) {\r\n for(var i = 0; i < types.length; i++) {\r\n for(var y = 0; y < vm.UserStats.EngageObjectLogs.length; y++) {\r\n if(vm.UserStats.EngageObjectLogs[y].EngageObjectType === types[i] && vm.UserStats.EngageObjectLogs[y].Passed === true) {\r\n count++;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n for(var i = 0; i < vm.UserStats.EngageObjectLogs.length; i++) {\r\n if(vm.UserStats.EngageObjectLogs[i].EngageObjectType === types && vm.UserStats.EngageObjectLogs[i].Passed === true) {\r\n count++;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return count;\r\n }\r\n\r\n function GetUserLogStats() {\r\n userService.GetUserLogStats().then(function(response) {\r\n vm.UserStats = response.data;\r\n\r\n var eduCount = 0;\r\n var blogCount = 0;\r\n var videoCount = 0;\r\n var scormCount = 0;\r\n var quizCount = 0;\r\n for (var i = 0; i < vm.UserStats.EngageObjectLogs.length; i++) {\r\n if (vm.UserStats.EngageObjectLogs[i].Passed === true) {\r\n switch (vm.UserStats.EngageObjectLogs[i].EngageObjectType) {\r\n case 1:\r\n eduCount++;\r\n break;\r\n case 2:\r\n blogCount++;\r\n break;\r\n case 3:\r\n videoCount++;\r\n break;\r\n case 4:\r\n scormCount++;\r\n break;\r\n case 5:\r\n quizCount++;\r\n break;\r\n }\r\n\r\n } \r\n }\r\n \r\n vm.EducationCount = eduCount;\r\n vm.BlogCount = blogCount;\r\n vm.VideoCount = videoCount;\r\n vm.ScormCount = scormCount;\r\n vm.QuizCount = quizCount;\r\n vm.TotalEducationCount = eduCount + scormCount;\r\n\r\n console.log(\"count done\"); \r\n });\r\n }\r\n\r\n function ShowCertificates(){\r\n \t$mdDialog.show({\r\n \t\ttemplateUrl: siteRootPath + \"Frontend/Core/Views/mypagecertificates.html\",\r\n \t\tcontrollerAs: \"vm\",\r\n \t\tcontroller: certificateController,\r\n\t\t\t\tbindToController: true\r\n \t});\r\n\t\t\t\r\n \tcertificateController.$inject = [\"$mdDialog\"];\r\n\r\n \tfunction certificateController($mdDialog) {\r\n \t\tvar vm = this;\r\n\r\n \t\tvm.GetCertificates = GetCertificates;\r\n\r\n \t\tfunction GetCertificates() {\r\n\r\n \t\t}\r\n \t}\r\n }\r\n\r\n function GetCompletedCount() {\r\n educationService.GetCompletedCount().then(GetCompletedCountSuccess);\r\n\r\n function GetCompletedCountSuccess(response) {\r\n vm.CompletedEducationCount = response.data.Education;\r\n vm.CompletedEducationCount += response.data.CertificationEducation;\r\n\r\n vm.CertificationCount = response.data.Certification;\r\n }\r\n }\r\n\r\n function GetLoggedInUserNotifications(page) {\r\n userService.GetLoggedInUserNotifications(vm.PageMax, page).then(GetLoggedInUserNotificationsSuccess);\r\n\r\n function GetLoggedInUserNotificationsSuccess(response) {\r\n vm.Notifications = response.data;\r\n }\r\n }\r\n\r\n function GetLoggedInUserExperiencePointHistory(page) {\r\n levelService.GetLoggedInUserExperiencePointHistory(vm.PageMax, page).then(GetLoggedInUserExperiencePointHistorySuccess);\r\n\r\n function GetLoggedInUserExperiencePointHistorySuccess(response) {\r\n vm.LastGainedExperience = response.data;\r\n }\r\n }\r\n\r\n function GetAllEventStatisticsForUser(page) {\r\n eventStatisticsService.GetAllEventStatisticsForUser(page, vm.PageMax).then(GetAllEventStatisticsForUserSuccess);\r\n\r\n function GetAllEventStatisticsForUserSuccess(response) {\r\n vm.ActivityLog = response.data;\r\n }\r\n }\r\n\r\n function GetSuggestions(page) {\r\n engageService.GetSuggestions(page, vm.PageMax).then(GetSuggestionsSuccess);\r\n\r\n function GetSuggestionsSuccess(response) {\r\n vm.GainMoreExperience = response.data;\r\n }\r\n }\r\n\r\n function GoToSuggestion(item) {\r\n switch (item.ControlType) {\r\n case \"HTML5EDUCATION\":\r\n $state.go('base.modules.html5education', {id: item.Value.Id});\r\n break;\r\n case \"MISSION\":\r\n $state.go('base.modules.missionsview', {id: item.Value.Id});\r\n break;\r\n }\r\n }\r\n\r\n function GetSuggestionIcon(item) {\r\n switch (item.ControlType) {\r\n case \"HTML5EDUCATION\":\r\n return \"fa-graduation-cap\";\r\n case \"MISSION\":\r\n return \"fa-star\";\r\n }\r\n }\r\n\r\n function GetCertificationsForUser() {\r\n certificationsService.GetCertificationsForUser().then(function(response) {\r\n vm.UserCerts = response.data;\r\n });\r\n }\r\n\r\n function Initialize() {\r\n vm.GetCompletedCount();\r\n vm.GetLoggedInUserNotifications(vm.NotificationsPage);\r\n vm.GetAllEventStatisticsForUser(vm.ActivityLogPage);\r\n vm.GetSuggestions(vm.GainMoreExperiencePage);\r\n\r\n vm.GetUserLogStats();\r\n GetCertificationsForUser();\r\n\r\n if (IsPortalSettingTrue('IsLevelSystemEnabled')) {\r\n vm.GetLoggedInUserExperiencePointHistory(vm.LastGainedExperiencePage);\r\n }\r\n }\r\n\r\n vm.Initialize();\r\n }\r\n\r\n function mysettingsController($rootScope, userService, $mdDialog, $translate, bizMediabankService, bizMediabankUploadService, $mdToast, $q, bizCoreService, bizCoreProvider, $filter) {\r\n var vm = this;\r\n vm.MyForm = null;\r\n vm.Initialized = false;\r\n \r\n vm.GetUser = GetUser;\r\n vm.UpdateCustomFieldValue = UpdateCustomFieldValue;\r\n vm.GetCustomFieldValue = GetCustomFieldValue;\r\n \r\n vm.AllowSms = false;\r\n vm.PortalCustomerName = portalCustomerName;\r\n vm.NotificationSettings = notificationSettings;\r\n \r\n vm.SaveMyDetails = SaveMyDetails;\r\n vm.Unregister = Unregister;\r\n vm.AskToUnregister = AskToUnregister;\r\n vm.UpdateAllowSMSForLoggedInUser = UpdateAllowSMSForLoggedInUser;\r\n vm.GetLoggedInUserSetting = GetLoggedInUserSetting;\r\n vm.GetLoggedInUserSettingAsBoolean = GetLoggedInUserSettingAsBoolean;\r\n vm.SetFile = SetFile;\r\n vm.SetTempFile = SetTempFile;\r\n vm.GetProfileImageUrl = GetProfileImageUrl;\r\n vm.FavoriteTagFilter = FavoriteTagFilter;\r\n vm.SetSelectedUserType = SetSelectedUserType;\r\n vm.GetProfileRestrictedFields = GetProfileRestrictedFields;\r\n vm.IsFieldRestricted = IsFieldRestricted;\r\n \r\n vm.Initialize = Initialize;\r\n\r\n function GetProfileImageUrl() {\r\n if (!vm.User)\r\n return $filter('siteroot')('Images/Common/no_user_photo.png');\r\n\r\n return (vm.TempFile ? ($filter('ngfDataUrl')(vm.TempFile)) : ($filter('siteroot')(vm.User.Photo ? vm.User.Photo : 'Images/Common/no_user_photo.png')));\r\n }\r\n\r\n function IsFieldRestricted(field) {\r\n if (!vm.RestrictedFields) return false;\r\n\r\n var f = vm.RestrictedFields.find(rf => rf.FieldType === 1 && rf.Name.toLowerCase() === field.toLowerCase());\r\n return f !== undefined;\r\n }\r\n\r\n function GetProfileRestrictedFields() {\r\n userService.GetProfileRestrictedFields().then(GetProfileRestrictedFieldsSuccess);\r\n\r\n function GetProfileRestrictedFieldsSuccess(response) {\r\n vm.RestrictedFields = response.data;\r\n }\r\n }\r\n\r\n function GetUser() {\r\n userService.GetProfile().then(GetLoggedInUserSuccess); //GetLoggedInUserFromDB\r\n \r\n function GetLoggedInUserSuccess(response) {\r\n vm.Initialized = true;\r\n vm.User = response.data;\r\n vm.GetCustomFieldValue();\r\n vm.SetSelectedUserType();\r\n }\r\n }\r\n\r\n function GetCustomFieldValue() {\r\n userService.GetCustomFieldValue(1, vm.User.Id).then(GetCustomFieldValueSuccess);\r\n\r\n function GetCustomFieldValueSuccess(response) {\r\n if(response.data)\r\n vm.CompanyNumber = response.data.Value ? response.data.Value : undefined;\r\n }\r\n }\r\n\r\n function UpdateCustomFieldValue() {\r\n userService.UpdateCustomFieldValue(1, vm.User.Id, vm.CompanyNumber).then(UpdateCustomFieldValueSuccess);\r\n\r\n function UpdateCustomFieldValueSuccess(response) {\r\n }\r\n }\r\n\r\n function SetTempFile(files) {\r\n \tif (!files.length)\r\n \t\treturn;\r\n\t\t\t\t\r\n \tvm.TempFile = files[0];\r\n \tconsole.log(vm.TempFile);\r\n }\r\n\r\n function SetFile(file) {\r\n \tif (file.length > 0) {\r\n \t\tvm.File = file[0];\r\n\r\n \t\tvar settings = {\r\n \t\t\tFileType: bizMediabankService.FileTypes.Image,\r\n \t\t\tFileLocation: bizMediabankService.UploadLocations.UserProfile,\r\n \t\t\tFilePattern: '',\r\n \t\t\tIsPrivate: true,\r\n \t\t\tIsInvisible: true,\r\n \t\t\tIsPrivateControlHidden: true,\r\n \t\t\tIsInvisibleControlHidden: true,\r\n \t\t\tIsUser: true\r\n \t\t}\r\n\r\n \t\tvar promise = bizMediabankUploadService.UploadFile(vm.File, vm.File.name, '', bizMediabankService.UploadLocations.UserProfile, true, true, settings, [], []);\r\n \t\tpromise.then(UploadFileSuccessCallback);\r\n\r\n \t\treturn promise;\r\n\r\n \t\tfunction UploadFileSuccessCallback(response) {\r\n \t\t\tif (response) {\r\n \t\t\t\tvar status = response.data;\r\n \t\t\t\tvm.File = status.Object;\r\n \t\t\t\tvm.User.Photo = vm.File.FileUrl;\r\n \t\t\t\t$rootScope.LoggedInUser.Photo = vm.File.FileUrl;\r\n \t\t\t\tvm.TempFile = undefined;\r\n \t\t\t\tuserService.SaveMyProfile(vm.User);\r\n \t\t\t}\r\n \t\t}\r\n \t}\r\n }\r\n\r\n function SaveMyDetails(showToast) {\r\n if (vm.TempFile)\r\n vm.SetFile([vm.TempFile]).then(SuccessCallback);\r\n else {\r\n vm.User.UserTypeId = (vm.SelectedUserType && vm.SelectedUserType.Id > 0 ? vm.SelectedUserType.Id : -1);\r\n userService.SaveBasicProfile(vm.User).then(SuccessCallback);\r\n }\r\n\r\n \tvm.UpdateAllowSMSForLoggedInUser();\r\n\r\n if (vm.CompanyNumber && vm.CompanyNumber != \"\")\r\n vm.UpdateCustomFieldValue();\r\n\r\n function SuccessCallback(response) {\r\n \t$rootScope.LoggedInUser = angular.copy(vm.User);\r\n\r\n vm.IsEditMode = false;\r\n\r\n vm.MyForm.$setPristine();\r\n vm.MyForm.$setUntouched();\r\n\r\n \tif (showToast){\r\n \t\t$translate('CORE.DETAILSUPDATED').then(function(translation) {\r\n \t\t\t$mdToast.show($mdToast.simple().content(translation).position(\"bottom right\"));\r\n \t\t});\r\n \t}\r\n }\r\n }\r\n\r\n function Unregister() {\r\n userService.DeleteMe().then(DeleteMeSuccess);\r\n\r\n function DeleteMeSuccess() {\r\n window.location.href = siteRootPath;\r\n }\r\n }\r\n\r\n function AskToUnregister() {\r\n $translate('CORE.ASKTOUNREGISTER').then(function(translation) {\r\n $mdDialog.show({\r\n templateUrl: bizCoreProvider.getView('base.dialog', 'FrontEnd/Views/Dialogs/dialog-primary.html'),\r\n controller: profileDialogController,\r\n controllerAs: \"vm\",\r\n locals: {\r\n Text: translation,\r\n IsSureCheck: true\r\n },\r\n bindToController: true\r\n }).then(function (response) {\r\n if (response) {\r\n vm.Unregister();\r\n }\r\n });\r\n });\r\n }\r\n\r\n function UpdateAllowSMSForLoggedInUser() {\r\n userService.UpdateAllowSMSForLoggedInUser(vm.AllowSms).then(UpdateAllowSMSForLoggedInUserSuccess).catch(UpdateAllowSMSForLoggedInUserError);\r\n\r\n function UpdateAllowSMSForLoggedInUserSuccess(response) {\r\n\r\n }\r\n\r\n function UpdateAllowSMSForLoggedInUserError(err) {\r\n vm.AllowSms = !vm.AllowSms;\r\n\r\n $translate('CORE.ERROR.SOMETHING').then(function (translation) {\r\n $mdDialog.show({\r\n templateUrl: bizCoreProvider.getView('base.dialog', 'FrontEnd/Views/Dialogs/dialog-primary.html'),\r\n controller: profileDialogController,\r\n controllerAs: \"vm\",\r\n locals: {\r\n Text: translation\r\n },\r\n bindToController: true\r\n }).then(function (response) {\r\n });\r\n });\r\n }\r\n }\r\n\r\n function GetLoggedInUserSetting(key, callback) {\r\n userService.GetLoggedInUserSetting(key).then(callback);\r\n }\r\n\r\n function GetLoggedInUserSettingAsBoolean(key, callback) {\r\n userService.GetLoggedInUserSettingAsBoolean(key).then(callback);\r\n }\r\n\r\n function FavoriteTagFilter(tag) {\r\n \treturn vm.ShowMoreFavorites || tag.Favorite === undefined || tag.Favorite;\r\n }\r\n\r\n function SetSelectedUserType() {\r\n if (vm.UserTypes && vm.User) {\r\n vm.SelectedUserType = vm.UserTypes.GetItemByValue('Id', vm.User.UserTypeId);\r\n }\r\n }\r\n\r\n function Initialize() {\r\n\r\n vm.GetProfileRestrictedFields();\r\n \tvm.GetUser();\r\n\r\n vm.GetLoggedInUserSettingAsBoolean('blnAllowSMS', function(response) {\r\n vm.AllowSms = response.data;\r\n });\r\n\r\n bizCoreService.GetAllTags($rootScope.LoggedInUser.CurrentCultureId).then(GetTagsCallback);\r\n\r\n function GetTagsCallback(response) {\r\n \tvm.Tags = response.data;\r\n }\r\n\r\n userService.GetUserTypes().then(GetUserTypesCallback);\r\n\r\n function GetUserTypesCallback(response) {\r\n vm.UserTypes = response.data;\r\n vm.UserTypes = $filter('orderBy')(vm.UserTypes, 'Name');\r\n vm.SetSelectedUserType();\r\n }\r\n }\r\n\r\n profileDialogController.$inject = [\"$mdDialog\"];\r\n\r\n function profileDialogController($mdDialog) {\r\n var vm = this;\r\n\r\n vm.Close = Close;\r\n vm.Ok = Ok;\r\n\r\n function Close() {\r\n $mdDialog.cancel();\r\n }\r\n\r\n function Ok() {\r\n $mdDialog.hide(true);\r\n }\r\n }\r\n\r\n $rootScope.Initialized.then(vm.Initialize);\r\n }\r\n\r\n function mycolleaguesController($rootScope, unitService) {\r\n var vm = this;\r\n vm.MyUnit = {};\r\n vm.UnitUsers = [];\r\n vm.Units = [];\r\n vm.ShowSpecificUnit = false;\r\n\r\n vm.GetUsersInUnit = GetUsersInUnit;\r\n vm.Initialize = Initialize;\r\n\r\n function InitializeUnit() {\r\n if ($rootScope.LoggedInUser.Units.length == 1) {\r\n vm.MyUnit = $rootScope.LoggedInUser.Units[0];\r\n\r\n if (~~vm.MyUnit.ParentId > 0) {\r\n GetUnitsByParent(~~vm.MyUnit.ParentId);\r\n }\r\n else {\r\n GetUsersInUnit(vm.MyUnit.Id);\r\n }\r\n }\r\n else {\r\n //Handle multiple units...\r\n }\r\n }\r\n\r\n function GetUsersInUnit(unitId) {\r\n vm.UnitUsers = [];\r\n unitService.GetUsersInUnit(unitId).then(GetUsersInUnitSuccess);\r\n\r\n function GetUsersInUnitSuccess(response) {\r\n vm.UnitUsers = response.data;\r\n }\r\n }\r\n\r\n function GetUnitsByParent(parentId) {\r\n unitService.GetUnitsByParent(parentId).then(GetUnitsByParentSuccess);\r\n\r\n function GetUnitsByParentSuccess(response) {\r\n vm.Units = response.data;\r\n }\r\n }\r\n\r\n function Initialize() {\r\n InitializeUnit();\r\n }\r\n\r\n vm.Initialize();\r\n }\r\n\r\n function myleaderboardsController($rootScope, unitService, leaderboardService) {\r\n var vm = this;\r\n vm.MyUnit = {};\r\n vm.MainUnitLeaderboard = [];\r\n vm.MainUnitLeaderboardMonth = [];\r\n vm.MainUnitLeaderboardYear = [];\r\n vm.UnitLeaderboard = [];\r\n vm.UnitLeaderboardMonth = [];\r\n vm.UnitLeaderboardYear = [];\r\n vm.Limit = 5;\r\n\r\n vm.Initialize = Initialize;\r\n vm.InitializeUnit = InitializeUnit;\r\n vm.GetMainUnitLeaderboard = GetMainUnitLeaderboard;\r\n vm.GetMainUnitLeaderboardBetweenDates = GetMainUnitLeaderboardBetweenDates;\r\n vm.GetUnitLeaderboard = GetUnitLeaderboard;\r\n vm.GetUnitLeaderboardBetweenDates = GetUnitLeaderboardBetweenDates;\r\n\r\n function InitializeUnit() {\r\n if ($rootScope.LoggedInUser.Units.length <= 1) {\r\n \tvm.MyUnit = $rootScope.LoggedInUser.Units[0];\r\n }\r\n else {\r\n //Handle multiple units...\r\n }\r\n }\r\n\r\n function GetMainUnitLeaderboard() {\r\n leaderboardService.GetMainUnitLeaderboard(vm.Limit).then(GetMainUnitLeaderboardSuccess);\r\n\r\n function GetMainUnitLeaderboardSuccess(response) {\r\n vm.MainUnitLeaderboard = response.data;\r\n\r\n console.log('vm.MainUnitLeaderboard', vm.MainUnitLeaderboard);\r\n }\r\n }\r\n\r\n function GetMainUnitLeaderboardBetweenDates(startTime, endTime, callback) {\r\n leaderboardService.GetMainUnitLeaderboardBetweenDates(vm.Limit, startTime, endTime).then(callback);\r\n }\r\n\r\n function GetUnitLeaderboard() {\r\n leaderboardService.GetUnitLeaderboard(vm.Limit).then(GetUnitLeaderboardSuccess);\r\n\r\n function GetUnitLeaderboardSuccess(response) {\r\n vm.UnitLeaderboard = response.data;\r\n }\r\n }\r\n\r\n function GetUnitLeaderboardBetweenDates(startTime, endTime, callback) {\r\n leaderboardService.GetUnitLeaderboardBetweenDates(vm.Limit, startTime, endTime).then(callback);\r\n }\r\n\r\n function Initialize() {\r\n \tInitializeUnit();\r\n\r\n\t\t\tif (vm.MyUnit && vm.MyUnit.ParentId){\r\n\t\t\t\tvm.GetMainUnitLeaderboard();\r\n\t\t\t\tvm.GetMainUnitLeaderboardBetweenDates(moment().startOf('month').format('YYYY-MM-DD hh:mm'), moment().endOf('month').format('YYYY-MM-DD hh:mm'), MonthLeaderboardCallback);\r\n\t\t\t\tvm.GetMainUnitLeaderboardBetweenDates(moment().startOf('year').format('YYYY-MM-DD hh:mm'), moment().endOf('year').format('YYYY-MM-DD hh:mm'), YearLeaderboardCallback);\r\n\t\t\t}\r\n\r\n\t\t\tif (vm.MyUnit){\r\n\t\t\t\tvm.GetUnitLeaderboard();\r\n\t\t\t\tvm.GetUnitLeaderboardBetweenDates(moment().startOf('month').format('YYYY-MM-DD hh:mm'), moment().endOf('month').format('YYYY-MM-DD hh:mm'), MonthUnitLeaderboardCallback);\r\n\t\t\t\tvm.GetUnitLeaderboardBetweenDates(moment().startOf('year').format('YYYY-MM-DD hh:mm'), moment().endOf('year').format('YYYY-MM-DD hh:mm'), YearUnitLeaderboardCallback);\r\n\t\t\t}\r\n\r\n\t\t\tif (!vm.MyUnit) {\r\n\t\t\t\tleaderboardService.GetCountryLeaderboard(vm.Limit).then(function (response) { vm.CountryLeaderboard = response.data; });\r\n\r\n\t\t\t\tleaderboardService.GetCountryLeaderboard(vm.Limit, moment().startOf('month').format('YYYY-MM-DD hh:mm'), moment().endOf('month').format('YYYY-MM-DD hh:mm'))\r\n\t\t\t\t\t.then(function (response) { vm.CountryLeaderboardMonth = response.data; });\r\n\r\n\t\t\t\tleaderboardService.GetCountryLeaderboard(vm.Limit, moment().startOf('year').format('YYYY-MM-DD hh:mm'), moment().endOf('year').format('YYYY-MM-DD hh:mm'))\r\n\t\t\t\t\t.then(function (response) { vm.CountryLeaderboardYear = response.data; });\r\n\t\t\t}\r\n }\r\n\r\n function MonthLeaderboardCallback(response) {\r\n vm.MainUnitLeaderboardMonth = response.data;\r\n }\r\n\r\n function YearLeaderboardCallback(response) {\r\n vm.MainUnitLeaderboardYear = response.data;\r\n }\r\n\r\n function MonthUnitLeaderboardCallback(response) {\r\n vm.UnitLeaderboardMonth = response.data;\r\n }\r\n\r\n function YearUnitLeaderboardCallback(response) {\r\n vm.UnitLeaderboardYear = response.data;\r\n }\r\n\r\n $rootScope.Initialized.then(vm.Initialize);\r\n }\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').controller('core.notifications', notificationsController);\r\n\r\n notificationsController.$inject = [\"core.users.service\", \"$state\", \"bizUser\"];\r\n\r\n function notificationsController(userService, $state, bizUser) {\r\n var vm = this;\r\n vm.PageMax = 2000;\r\n vm.NotificationsPage = 1;\r\n\r\n vm.Settings = notificationSettings;\r\n\r\n vm.Init = Init;\r\n vm.GetLoggedInUserNotifications = GetLoggedInUserNotifications;\r\n vm.GoToItem = GoToItem;\r\n vm.Back = Back; \r\n\r\n function Back() {\r\n window.history.back();\r\n }\r\n\r\n function GoToItem(item) { \r\n //The types that only should be clickable for the users own items\r\n if ((item.Settings && ~~item.Settings.ObjectOwnerUserId > 0 && item.Settings.ObjectOwnerUserId === $rootScope.LoggedInUser.Id)) {\r\n switch (item.ObjectType) {\r\n case 'GOAL':\r\n $state.go(\"base.modules.goals.onegoal\", { id: ~~item.ObjectId > 0 ? ~~item.ObjectId : 'new' });\r\n break;\r\n case 'TODO':\r\n $state.go(\"base.modules.goals.onetask\", { id: ~~item.ObjectId > 0 ? ~~item.ObjectId : 'new' });\r\n break;\r\n case 'ACTIVITY':\r\n $state.go(\"base.modules.goals.activity\", { id: ~~item.ObjectId > 0 ? ~~item.ObjectId : 'new' });\r\n break;\r\n }\r\n }\r\n\r\n //The types that should be clickable for any user (as long as they have access, which should be fixed on backend)\r\n switch (item.ObjectType) {\r\n case 'HTML5':\r\n $state.go(\"base.modules.html5education\", { id: item.ObjectId });\r\n break;\r\n case 'MediabankFile':\r\n $state.go(\"base.modules.mediafile\", { id: item.ObjectId });\r\n break;\r\n case 'Blog':\r\n $state.go(\"base.modules.blog\", { id: item.ObjectId });\r\n break;\r\n case 'SCORM':\r\n location.href = siteRootPath + \"SCORM/\" + item.ObjectId;\r\n break;\r\n } \r\n }\r\n\r\n function GetLoggedInUserNotifications(page) {\r\n userService.GetLoggedInUserNotifications(vm.PageMax, page).then(GetLoggedInUserNotificationsSuccess);\r\n\r\n function GetLoggedInUserNotificationsSuccess(response) {\r\n vm.Notifications = response.data;\r\n }\r\n }\r\n\r\n function Init() {\r\n vm.GetLoggedInUserNotifications(vm.NotificationsPage);\r\n }\r\n\r\n vm.$onInit = vm.Init;\r\n }\r\n}(window.angular));","(function (angular) {\r\n angular.module('bizPartEngage').controller('core.register', registerController);\r\n\r\n registerController.$inject = [\"$rootScope\", \"core.registerService\", \"$mdDialog\", \"$translate\", \"bizValidationService\", \"$mdToast\"];\r\n\r\n function registerController($rootScope, registerService, $mdDialog, $translate, bizValidationService, $mdToast) {\r\n var vm = this;\r\n vm.Register = Register;\r\n vm.AcceptedConditions = false;\r\n vm.Init = Init;\r\n vm.Roles = [];\r\n vm.User = {};\r\n vm.Message = '';\r\n\r\n vm.Init();\r\n function Init() {\r\n \r\n }\r\n\r\n function Register()\r\n {\r\n if (bizValidationService.FormValid(vm.MyForm) == true && vm.AcceptedConditions == true)\r\n {\r\n vm.User.IsActive = true;\r\n vm.User.CultureId = $rootScope.LoggedInUser.CurrentCultureId;\r\n vm.User.strCulture = $rootScope.Cultures.GetItemByValue('Id', $rootScope.LoggedInUser.CurrentCultureId).CultureCode;\r\n vm.Password = vm.Password.trim();\r\n\r\n registerService.CreateUser(vm.User, vm.Password).then(registerSuccess);\r\n\r\n function registerSuccess(response)\r\n {\r\n if (response.data.Success == true)\r\n {\r\n //$mdToast.show($mdToast.simple()\r\n // .content('User Created, you can now use the information entered to log on to the site')\r\n // .position('bottom right')\r\n //);\r\n $translate('CORE.REGISTER.USERCREATED').then(function (translation) {\r\n \tvm.Message = translation || 'User Created, you can now use the information entered to log on to the site';\r\n });\r\n }\r\n else {\r\n //$mdToast.show($mdToast.simple()\r\n // .content(response.data.Message)\r\n // .position('bottom right')\r\n //);\r\n vm.Message = response.data.Message;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n})(window.angular);\r\n","(function (angular) {\r\n\tangular.module('bizPartEngage').controller('core.terms.show', showTermsController);\r\n\r\n\tshowTermsController.$inject = [\"core.terms.service\"];\r\n\r\n\tfunction showTermsController(termsService) {\r\n\t\tvar vm = this;\r\n\t\tvm.GetTerms = GetTerms;\r\n\r\n\t\tfunction GetTerms() {\r\n\t\t\tvm.GettingsTerms = true;\r\n\t\t\ttermsService.GetSystemTerms().then(GetTermsCallback);\r\n\r\n\t\t\tfunction GetTermsCallback(response) {\r\n\t\t\t\tvm.GettingsTerms = false;\r\n\t\t\t\tvar terms = BizPartCoreHelpers.getResponseValue(response, []);\r\n\t\t\t\tfor (var i = 0; i < terms.length; i++)\r\n\t\t\t\t\tterms[i].InteractionsDisabled = true;\r\n\r\n\t\t\t\tvm.Terms = terms;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.GetTerms();\r\n\t}\r\n}(window.angular));","(function (angular) {\r\n angular.module('bizPartEngage').controller('core.themestest', themestestController);\r\n\r\n themestestController.$inject = [];\r\n\r\n function themestestController() {\r\n var vm = this;\r\n\r\n vm.Init = Init;\r\n\r\n function Init() {\r\n console.log('ThemesTest init...')\r\n }\r\n\r\n vm.$onInit = Init;\r\n }\r\n}(window.angular));","(function (angular) {\r\n angular.module('bizPartEngage').controller('cleanbase.unsubscribe', unsubscribe);\r\n\r\n unsubscribe.$inject = ['$rootScope'];\r\n\r\n function unsubscribe($rootScope) {\r\n var vm = this;\r\n\r\n \r\n }\r\n})(window.angular);","(function (angular) {\r\n angular.module('bizPartEngage').controller('core.welcome', welcomeController);\r\n\r\n welcomeController.$inject = [\"$rootScope\", \"bizCoreService\"];\r\n\r\n function welcomeController($rootScope, bizCoreService) {\r\n var vm = this; \r\n\r\n vm.Init = Init;\r\n vm.Back = Back;\r\n\r\n function Back() {\r\n window.history.back();\r\n }\r\n\r\n function Init() {\r\n bizCoreService.GetWelcomeGuide().then(function (response) {\r\n var showAdvanced = true;//backwards compatibility, if setting is missing\r\n var pages;\r\n if (response.data && response.data !== \"\" && response.data !== null) {\r\n const data = JSON.parse(response.data);\r\n showAdvanced = data.useAdvanced;\r\n pages = data.pages; \r\n }\r\n vm.showAdvanced = showAdvanced;\r\n vm.pages = pages;\r\n }); \r\n }\r\n\r\n $rootScope.Initialized.then(vm.Init);\r\n }\r\n}(window.angular));","(function (angular) {\r\n\tangular.module('bizPartEngage').directive('bizActivityReminder', bizActivityReminder);\r\n\tangular.module('bizPartEngage').service('bizActivityReminderService', bizActivityReminderService);\r\n\r\n\tbizActivityReminderService.$inject = [\"$http\"];\r\n\r\n\tfunction bizActivityReminder() {\r\n\t\treturn {\r\n\t\t\trestrict: 'AE',\r\n\t\t\ttemplateUrl: siteRootPath + 'FrontEnd/Core/Directives/Views/ActivityReminders.html',\r\n\t\t\tcontrollerAs: 'vm',\r\n\t\t\tcontroller: bizActivityReminderController\r\n\t\t};\r\n\r\n\t\tbizActivityReminderController.$inject = [\"bizActivityReminderService\", \"bizPhraseLoaderService\", \"$filter\", \"$q\", \"$rootScope\"];\r\n\r\n\t\tfunction bizActivityReminderController(bizActivityReminderService, bizPhraseLoaderService, $filter, $q, $rootScope) {\r\n\t\t\tvar vm = this;\r\n\r\n\t\t\tvm.Initialize = Initialize;\r\n\t\t\tvm.GetPhrasePlaceholders = GetPhrasePlaceholders;\r\n\r\n\t\t\tbizPhraseLoaderService.LoadPart(\"activityreminder\");\r\n\r\n\t\t\tfunction GetPhrasePlaceholders(reminder) {\r\n\t\t\t\tif (reminder.PhrasePlaceholders)\r\n\t\t\t\t\treturn reminder.PhrasePlaceholders;\r\n\r\n\t\t\t\tvar unitName = $rootScope.LoggedInUser.Units.length ? $rootScope.LoggedInUser.Units[0].Name : \"\";\r\n\t\t\t\tvar parentUnitName = $rootScope.LoggedInUser.ParentUnits.length ? $rootScope.LoggedInUser.ParentUnits[0].Name : \"\";\r\n\r\n\t\t\t\treminder.PhrasePlaceholders = {\r\n\t\t\t\t\t'#USER#': reminder.UserInfo.FirstName + ' ' + reminder.UserInfo.LastName,\r\n\t\t\t\t\t'#UNIT#': reminder.UserIdListUsedIndex == 0 ? unitName : parentUnitName,\r\n\t\t\t\t\t'#USERCOUNT#': reminder.UserIds.length - 1\r\n\t\t\t\t};\r\n\r\n\t\t\t\treturn reminder.PhrasePlaceholders;\r\n\t\t\t}\r\n\r\n\t\t\tfunction Initialize() {\r\n\t\t\t\tif ($rootScope.LoggedInUser.Id <= 0)\r\n\t\t\t\t\treturn;\r\n\r\n\t\t\t\tbizActivityReminderService.GetActivityReminders(1).then(InitializeCallback);\r\n\r\n\t\t\t\tfunction InitializeCallback(response) {\r\n\t\t\t\t\tvar reminders = BizPartCoreHelpers.getResponseValue(response, []);\r\n\r\n\t\t\t\t\tfor (var i = 0; i < reminders.length; i++) {\r\n\t\t\t\t\t\tif (!reminders[i].ImageUrl)\r\n\t\t\t\t\t\t\tcontinue\r\n\r\n\t\t\t\t\t\tvm.FirstImageUrl = reminders[i].ImageUrl;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvm.Reminders = reminders;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvm.Initialize();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction bizActivityReminderService($http) {\r\n\t\tvar baseUrl = siteRootPath + 'api/ActivityReminder/'\r\n\r\n\t\treturn {\r\n\t\t\tGetActivityReminders: GetActivityReminders,\r\n\t\t\tSetActivityReminderViewed: SetActivityReminderViewed\r\n\t\t}\r\n\r\n\t\tfunction GetActivityReminders(maxReminders) {\r\n\t\t\treturn $http.get(baseUrl + 'GetActivityReminders', {\r\n\t\t\t\tparams: {\r\n\t\t\t\t\tmaxReminders: maxReminders\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction SetActivityReminderViewed(reminder) {\r\n\t\t\treturn $http.post(baseUrl + 'SetActivityReminderViewed', reminder);\r\n\t\t}\r\n\t}\r\n})(window.angular);\r\n","(function (angular) {\r\n\tangular.module('bizPartEngage').directive('bizAdminBar', bizAdminBar);\r\n\tangular.module('bizPartEngage').service('bizAdminBarService', bizAdminBarService);\r\n\r\n\tbizAdminBar.$inject = [];\r\n\tbizAdminBarService.$inject = [\"$http\"];\r\n\r\n\tfunction bizAdminBar() {\r\n\t\treturn {\r\n\t\t\trestrict: \"E\",\r\n\t\t\ttemplateUrl: siteRootPath + \"FrontEnd/Core/Directives/Views/AdminBar.html\",\r\n\t\t\tcontrollerAs: \"vm\",\r\n\t\t\tcontroller: bizAdminBarController,\r\n\t\t\tbindToController: true,\r\n\t\t\tscope: {\r\n\t\t\t\tsimulating: \"=\",\r\n\t\t\t\tisAllowedToSimulate: \"=?\"\r\n\t\t\t}\r\n\t\t}\t\t\r\n }\r\n\r\n bizAdminBarController.$inject = [\"$rootScope\", \"bizCoreService\", \"$window\", \"$filter\", \"$mdDialog\", \"bizAdminBarService\", \"bizUser\", \"$transitions\", \"$state\", \"$stateParams\", \"$q\"];\r\n\r\n function bizAdminBarController($rootScope, bizCoreService, $window, $filter, $mdDialog, bizAdminBarService, bizUser, $transitions, $state, $stateParams, $q) {\r\n var vm = this; \r\n\r\n vm.Init = Init;\r\n vm.GetCultures = GetCultures;\r\n vm.ChangeCulture = ChangeCulture;\r\n vm.CancelSimulation = CancelSimulation;\r\n vm.ShowSimulateUser = ShowSimulateUser;\r\n vm.GetAdminUrl = GetAdminUrl;\r\n vm.ShowAdminButton = ShowAdminButton;\r\n vm.SetEditButton = SetEditButton;\r\n vm.GotoAdminEdit = GotoAdminEdit;\r\n\r\n vm.SimulatingDate = BizPartCoreHelpers.getSimulatedDate(); \r\n \r\n function ShowAdminButton() {\r\n //if (!vm.simulating || (vm.simulating && bizUser.HasModuleAccess('DASHBOARD', 20)))\r\n return true;\r\n\r\n //return false;\r\n }\r\n\r\n function GetAdminUrl() {\r\n return bizAdminBarService.AdminUrl || $filter(\"siteroot\")(\"Admin\");\r\n }\r\n\r\n function CancelSimulation() {\r\n bizAdminBarService.CancelSimulation().then(CancelSimulationCallback);\r\n\r\n function CancelSimulationCallback(response) {\r\n var simulation = response.data;\r\n deleteCookie(\"BizPartAuthToken\");\r\n setBizPartAuthToken(simulation.SimulatedByUserToken, simulation.SimulatedByUserId, true);\r\n deleteSessionStorage(\"SimulateDate\");\r\n $window.location.href = $filter('siteroot')('/');\r\n }\r\n }\r\n\r\n function ShowSimulateUser() {\r\n $mdDialog.show({\r\n templateUrl: \"simulate-user\",\r\n controller: simulateUserDialogController,\r\n controllerAs: \"vm\",\r\n bindToController: true\r\n });\r\n\r\n simulateUserDialogController.$inject = [\"$mdDialog\"];\r\n\r\n function simulateUserDialogController($mdDialog) {\r\n var vm = this;\r\n\r\n vm.Users = [];\r\n vm.SearchTerm = \"\";\r\n vm.PageIndex = 0;\r\n vm.PageLength = 20;\r\n vm.IncludeInactive = false;\r\n\r\n vm.Close = Close;\r\n vm.SearchUsers = SearchUsers;\r\n vm.SimulateUser = SimulateUser;\r\n vm.SearchMoreUsers = SearchMoreUsers;\r\n\r\n function SearchUsers(pageIndex) {\r\n vm.PageIndex = pageIndex || 0;\r\n vm.GettingUsers = true;\r\n bizAdminBarService.SearchUsers(vm.SearchTerm, vm.PageIndex, vm.PageLength, vm.IncludeInactive).then(SearchUsersCallback);\r\n\r\n function SearchUsersCallback(response) {\r\n vm.UserData = response.data;\r\n\r\n if (vm.PageIndex == 0)\r\n vm.Users = vm.UserData.CurrentPageEntries;\r\n else\r\n vm.Users = vm.Users.concat(vm.UserData.CurrentPageEntries);\r\n\r\n vm.GettingUsers = false;\r\n }\r\n }\r\n\r\n function SearchMoreUsers() {\r\n vm.SearchUsers(vm.PageIndex + 1);\r\n }\r\n\r\n function SimulateUser(user) {\r\n vm.PreparingSimulation = true;\r\n bizAdminBarService.SimulateUser(user.Id, vm.Date).then(SimulateUserCallback);\r\n\r\n function SimulateUserCallback(response) {\r\n\r\n var userSession = response.data;\r\n if (!userSession)\r\n return;\r\n\r\n setBizPartAuthToken(userSession.Token, userSession.UserId);\r\n if (vm.Date) {\r\n setSessionStorage(\"SimulateDate\", moment(vm.Date).format('YYYY-MM-DD HH:mm'));\r\n }\r\n $window.location.href = $filter('siteroot')('/');\r\n }\r\n }\r\n\r\n function Close() {\r\n $mdDialog.hide();\r\n }\r\n\r\n vm.SearchUsers();\r\n }\r\n }\r\n\r\n function ChangeCulture(culture) {\r\n $window.location.href = $filter('siteroot')('/?lang=' + culture.CultureCode.substring(0, 2));\r\n }\r\n\r\n function GetCultures() {\r\n bizCoreService.GetCultures().then(GetCulturesCallback);\r\n\r\n function GetCulturesCallback(response) {\r\n vm.Cultures = response.data;\r\n vm.CurrentCulture = vm.Cultures.GetItemByValue(\"Id\", ~~currentCultureId);\r\n }\r\n }\r\n\r\n function SetEditButton() {\r\n console.log(\"state\", $state.current)\r\n let showBtn = false;\r\n const stateName = $state.current.name;\r\n if (vm.AdminPageMap.has(stateName)) {\r\n const adminInfo = vm.AdminPageMap.get(stateName);\r\n if (!adminInfo.accessTypeKey || $rootScope.HasWriteOrHigherAccess(adminInfo.accessTypeKey)) {\r\n showBtn = true;\r\n } else {\r\n console.log(\"no access\");\r\n }\r\n } \r\n vm.ShowEditButton = showBtn; \r\n }\r\n\r\n function GotoAdminEdit() {\r\n const stateName = $state.current.name;\r\n\r\n if (vm.AdminPageMap.has(stateName)) {\r\n const adminInfo = vm.AdminPageMap.get(stateName);\r\n if (adminInfo.dynamic) {\r\n adminInfo.getFinalUrl(adminInfo.url).then(url => {\r\n $window.location = siteRootPath + url;\r\n }); \r\n } else {\r\n $window.location = siteRootPath + adminInfo.url;\r\n } \r\n }\r\n }\r\n\r\n function Init() {\r\n vm.GetCultures();\r\n\r\n const populateId = (url, moduleType, urlRewrite) => {\r\n const deferred = $q.defer();\r\n bizAdminBarService.GetIdByUrlRewrite(moduleType, urlRewrite).then(response => {\r\n const id = BizPartCoreHelpers.getResponseValue(response);\r\n if (~~id > 0) {\r\n const fUrl = url.replace('##id##', id);\r\n deferred.resolve(fUrl);\r\n } else {\r\n deferred.reject('Id not found');\r\n }\r\n });\r\n return deferred.promise;\r\n }\r\n\r\n vm.AdminPageMap = new Map([\r\n [\"base.home\", {\r\n url: \"Admin#/admin/portal/startpage\",\r\n accessTypeKey: \"PORTAL\"\r\n }],\r\n [\"base.modules.blog\", {\r\n url: \"Admin#/admin/modules/blog/index\",\r\n accessTypeKey: \"BLOG\"\r\n }],\r\n [\"base.modules.blogtitle\", {\r\n url: \"Admin#/admin/modules/blog/edit/##id##\",\r\n accessTypeKey: \"BLOG\",\r\n dynamic: true,\r\n getFinalUrl: url => populateId(url, 'Blog', $stateParams.title)\r\n }],\r\n [\"base.modules.media\", {\r\n url: \"Admin#/admin/modules/mediabank/general\",\r\n accessTypeKey: \"MEDIABANK\"\r\n }],\r\n [\"base.modules.mediafile\", {\r\n url: \"Admin#/admin/modules/mediabank/view/##id##\",\r\n accessTypeKey: \"MEDIABANK\",\r\n dynamic: true,\r\n getFinalUrl: url => populateId(url, 'MediabankFile', $stateParams.id)\r\n }],\r\n [\"base.modules.journey\", {\r\n url: \"Admin#/admin/journey\",\r\n accessTypeKey: \"JOURNEY\"\r\n }]\r\n ]);\r\n\r\n vm.SetEditButton();\r\n\r\n $transitions.onSuccess({}, ($transition) => {\r\n vm.SetEditButton();\r\n })\r\n }\r\n\r\n $rootScope.Initialized.then(vm.Init);\r\n }\r\n\r\n\tfunction bizAdminBarService($http) {\r\n\t\treturn {\r\n\t\t\tSearchUsers: SearchUsers,\r\n\t\t\tSimulateUser: SimulateUser,\r\n CancelSimulation: CancelSimulation,\r\n GetIdByUrlRewrite: GetIdByUrlRewrite\r\n\t\t};\r\n\r\n\t\tfunction SimulateUser(userId, date) {\r\n return $http.post(siteRootPath + 'api/UserAdmin/SimulateUser', {\r\n UserId: userId,\r\n Date: date\r\n });\r\n\t\t}\r\n\r\n\t\tfunction CancelSimulation() {\r\n\t\t\treturn $http.post(siteRootPath + 'api/User/CancelUserSimulation');\r\n\t\t}\r\n\r\n\t\tfunction SearchUsers(searchTerm, pageIndex, pageLength, includeInactive) {\r\n\t\t\treturn $http.post(siteRootPath + 'api/UserAdmin/SearchUsersPaged', {\r\n\t\t\t\tsearchTerm: searchTerm,\r\n\t\t\t\tpageIndex: pageIndex,\r\n\t\t\t\tpageLength: pageLength,\r\n\t\t\t\tincludeInactive: includeInactive\r\n\t\t\t});\r\n }\r\n\r\n function GetIdByUrlRewrite(objectType, urlRewrite) {\r\n return $http.get(siteRootPath + 'api/Engage/GetIdByUrlRewrite', {\r\n params: {\r\n objectType,\r\n urlRewrite\r\n },\r\n headers: { \r\n IgnoreLoader: true\r\n }\r\n })\r\n }\r\n\t}\r\n})(window.angular);","(function (angular) {\r\n\tangular.module('bizPartEngage').directive('bizCookieSettings', bizCookieSettingsDirective);\r\n\r\n\tbizCookieSettingsDirective.$inject = [\"bizCore\"];\r\n\r\n\tfunction bizCookieSettingsDirective(bizCoreProvider) {\r\n\t\tvar directive = {\r\n\t\t\trestrict: \"E\",\r\n\t\t\tscope: {\r\n\r\n\t\t\t},\r\n\t\t\ttemplateUrl: function (element, attr) {\r\n\t\t\t\tif (attr.templateurl) {\r\n\t\t\t\t\treturn siteRootPath + attr.templateurl;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn bizCoreProvider.getView('core.directives.cookiesettings', \"FrontEnd/Core/Directives/Views/CookieSettings.html\");\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tbindToController: true,\r\n\t\t\tcontroller: bizCookieSettingsController,\r\n\t\t\tcontrollerAs: \"vm\"\r\n\t\t};\r\n\r\n\t\tbizCookieSettingsController.$inject = [\"$rootScope\", \"bizCoreService\"];\r\n\r\n\t\tfunction bizCookieSettingsController($rootScope, bizCoreService) {\r\n\t\t\tvar vm = this;\r\n\r\n\t\t\t//vm.Cookies = [{\r\n\t\t\t//\tName: \"Bizpart\",\r\n\t\t\t//\tValue: \"\",\r\n\t\t\t//\tGroup: \"Functional\",\r\n\t\t\t//\tMandatory: true\r\n\t\t\t//}, {\r\n\t\t\t//\tName: \"Google\",\r\n\t\t\t//\tValue: \"\",\r\n\t\t\t//\tGroup: \"Tracking\",\r\n\t\t\t//\tMandatory: false\r\n\t\t\t//}\r\n\t\t\t//];\r\n\r\n\t\t\tvm.ToogleCookie = ToogleCookie;\r\n\r\n\t\t\tfunction ToogleCookie(item) {\r\n\t\t\t\t$rootScope.HasAcceptedCookies = !$rootScope.HasAcceptedCookies;\r\n\t\t\t\tsetLocalStorage(\"HasAcceptedCookies\", $rootScope.HasAcceptedCookies);\r\n\r\n\t\t\t\tif ($rootScope.IsLoggedIn) {\r\n\t\t\t\t\tbizCoreService.UpdateUserSetting(\"HasAcceptedCookies\", $rootScope.HasAcceptedCookies).then(function (response) {\r\n\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n }\r\n\r\n function Init() {\r\n }\r\n\r\n\t\t\tvm.$onInit = function () {\r\n\t\t\t\tInit();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn directive;\r\n\t}\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').directive('bizCountdownTimer', bizCountdownTimer);\r\n angular.module('bizPartEngage').service('bizCountdownService', bizCountdownService);\r\n\r\n bizCountdownTimer.$inject = [\"bizCore\", \"bizCountdownService\", \"bizUser\"];\r\n bizCountdownService.$inject = [\"$http\"];\r\n\r\n function bizCountdownTimer(bizCore, bizCountdownService, bizUser) {\r\n var directive = {\r\n restrict: \"E\",\r\n scope: {\r\n },\r\n templateUrl: bizCore.getView('core.directives.countdowntimer', \"FrontEnd/Core/Directives/Views/CountdownTimer.html\"),\r\n link: linkController,\r\n bindToController: true,\r\n controller: bizMyNotesController,\r\n controllerAs: \"vm\"\r\n }\r\n\r\n function linkController(scope, element, attrs) {\r\n //Remove directive if we don't have access to it.\r\n if(!bizUser.HasModuleAccess(\"COUNTDOWN\", 10)) {\r\n scope.$destroy();\r\n element.remove();\r\n }\r\n }\r\n\r\n bizMyNotesController.$inject = [\"$rootScope\", \"$interval\"];\r\n\r\n function bizMyNotesController($rootScope, $interval) {\r\n var vm = this;\r\n vm.Countdown = {};\r\n vm.interval;\r\n\r\n vm.StartTimer = StartTimer;\r\n vm.CancelTimer = CancelTimer;\r\n vm.ResetTime = ResetTime;\r\n\r\n function StartTimer(ignoreUpdate) {\r\n if(vm.HasAccessToStartTimer && !ignoreUpdate) {\r\n vm.Countdown.StartTime = moment().utc().format();\r\n bizCountdownService.StartCountdown(vm.Countdown).then(function(response) {\r\n vm.Countdown.Id = response.data.Id;\r\n });\r\n }\r\n\r\n vm.interval = $interval(function() {\r\n if(~~vm.Countdown.Seconds <= 0) {\r\n vm.Countdown.Seconds = 59;\r\n vm.Countdown.Minutes = (~~vm.Countdown.Minutes - 1).toString();\r\n }\r\n else {\r\n vm.Countdown.Seconds = (~~vm.Countdown.Seconds - 1).toString();\r\n if(~~vm.Countdown.Seconds < 10) vm.Countdown.Seconds = \"0\" + (~~vm.Countdown.Seconds).toString();\r\n }\r\n\r\n if(~~vm.Countdown.Minutes < 10) vm.Countdown.Minutes = \"0\" + (~~vm.Countdown.Minutes).toString();\r\n\r\n if(~~vm.Countdown.Minutes <= 0 && vm.Countdown.Seconds <= 0) {\r\n $interval.cancel(vm.interval);\r\n vm.TimerStarted = false;\r\n }\r\n \r\n }, 1000, 0, true, vm);\r\n vm.TimerStarted = true;\r\n }\r\n\r\n function CancelTimer() {\r\n if(vm.HasAccessToStartTimer) {\r\n bizCountdownService.CancelCountdown(vm.Countdown);\r\n }\r\n\r\n $interval.cancel(vm.interval);\r\n vm.TimerStarted = false;\r\n }\r\n\r\n function ResetTime() {\r\n vm.Countdown.Minutes = \"10\";\r\n vm.Countdown.Seconds = \"00\";\r\n }\r\n\r\n function Init() {\r\n vm.ResetTime();\r\n vm.HasAccessToStartTimer = bizUser.HasModuleAccess(\"COUNTDOWN\", 20);\r\n\r\n if(bizUser.HasModuleAccess(\"COUNTDOWN\", 10)) {\r\n bizCountdownService.GetCountdownForLoggedinUser().then(GetCountdownForLoggedinUserSuccess);\r\n }\r\n\r\n function GetCountdownForLoggedinUserSuccess(response) {\r\n if(response.data) {\r\n var countdown = response.data;\r\n vm.Countdown.Id = countdown.Id;\r\n vm.Countdown.CreatedByUserFullName = countdown.CreatedByUserFullName;\r\n var elapsedSeconds = moment(moment().utc()).diff(countdown.StartTime, 'seconds');\r\n var elapsedMinutes = Math.floor(elapsedSeconds / 60);\r\n elapsedSeconds = Math.floor(elapsedSeconds % 60);\r\n \r\n vm.Countdown.Minutes = countdown.Minutes - elapsedMinutes;\r\n\r\n var secondsLeft = countdown.Seconds - elapsedSeconds;\r\n\r\n if(secondsLeft < 0) {\r\n vm.Countdown.Minutes--;\r\n vm.Countdown.Seconds = 60 + secondsLeft;\r\n }\r\n else {\r\n vm.Countdown.Seconds = secondsLeft;\r\n }\r\n\r\n vm.StartTimer(true);\r\n }\r\n }\r\n }\r\n\r\n var hubListender = $rootScope.$on('HUB_COUNTDOWN', function(event, args) {\r\n var c = JSON.parse(args.Content);\r\n if(!vm.TimerStarted && !c.Cancelled) {\r\n vm.Countdown = c;\r\n vm.StartTimer(true);\r\n }\r\n else if(vm.TimerStarted === true && c.Cancelled === true) {\r\n vm.CancelTimer();\r\n }\r\n });\r\n\r\n function Destroy() {\r\n //Unsubscribe for the hub event...\r\n hubListender();\r\n }\r\n\r\n vm.$onInit = Init;\r\n vm.$onDestroy = Destroy;\r\n }\r\n\r\n return directive;\r\n }\r\n\r\n function bizCountdownService($http) {\r\n var servicePath = siteRootPath + \"api/Countdown/\";\r\n\r\n this.GetCountdownForLoggedinUser = function() {\r\n return $http.get(servicePath + \"GetCountdownForLoggedinUser\");\r\n };\r\n\r\n this.StartCountdown = function(countdown) {\r\n return $http.post(servicePath + \"StartCountdown\", countdown);\r\n };\r\n\r\n this.CancelCountdown = function(countdown) {\r\n return $http.post(servicePath + \"CancelCountdown\", countdown);\r\n }; \r\n }\r\n\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').directive('bizCultureSelector', bizCultureSelectorDirective);\r\n\r\n bizCultureSelectorDirective.$inject = [\"bizCore\"];\r\n\r\n function bizCultureSelectorDirective(bizCoreProvider) {\r\n var directive = {\r\n restrict: \"E\",\r\n scope: {\r\n useGbflagForUs: '@?'\r\n },\r\n templateUrl: function (element, attr) {\r\n if (attr.templateurl) {\r\n return siteRootPath + attr.templateurl;\r\n }\r\n else {\r\n return bizCoreProvider.getView('core.directives.cultureselector', \"FrontEnd/Core/Directives/Views/CultureSelector.html\");\r\n }\r\n },\r\n bindToController: true,\r\n controller: bizCultureSelectorController,\r\n controllerAs: \"vm\"\r\n };\r\n\r\n bizCultureSelectorController.$inject = [\"bizCoreService\", \"$rootScope\"];\r\n\r\n function bizCultureSelectorController(bizCoreService, $rootScope) {\r\n var vm = this; \r\n\r\n vm.GetCultures = GetCultures;\r\n vm.ChangeLanguage = ChangeLanguage;\r\n\r\n function GetCultures() {\r\n bizCoreService.GetCultures().then(GetCulturesCallback);\r\n\r\n function GetCulturesCallback(response) {\r\n vm.Cultures = response.data;\r\n vm.CurrentCulture = vm.Cultures.GetItemByValue(\"Id\", ~~currentCultureId);\r\n //console.log(\"cultures\", vm.Cultures);\r\n \r\n for (var i = 0; i < vm.Cultures.length; i++) {\r\n vm.Cultures[i].Flag = 'Images/StatFlags/' + GetImageName(vm.Cultures[i].CultureCode);\r\n vm.Cultures[i].ShortCultureCode = GetShortCountryCode(vm.Cultures[i].CultureCode);\r\n }\r\n\r\n function GetShortCountryCode(cultureCode) {\r\n var ccParts = cultureCode.split('-');\r\n if (ccParts.length > 0) {\r\n return ccParts[0];\r\n }\r\n return cultureCode;\r\n }\r\n\r\n function GetImageName(cultureCode) {\r\n var ccParts = cultureCode.split('-');\r\n if (ccParts.length > 1) {\r\n var countryCode = ccParts[1];\r\n //console.log(\"useGbflagForUs\", vm.useGbflagForUs);\r\n if (vm.useGbflagForUs) {\r\n if (countryCode.toLowerCase() == \"us\") {\r\n countryCode = \"GB\";\r\n }\r\n }\r\n return countryCode + \".png\";\r\n }\r\n console.log(\"culture selector, could not split country code\", cultureCode);\r\n }\r\n }\r\n }\r\n\r\n function ChangeLanguage(cultureCode) {\r\n var url = window.location.href;\r\n var qs;\r\n var parts = url.split('?');\r\n if (parts.length >= 2) {\r\n url = parts[0];\r\n\r\n var qsParts = parts[1].split(/[&;]/g);\r\n for (var i = 0; i < qsParts.length; i++) {\r\n if (qsParts[i].indexOf('lang=') === -1) {\r\n if (qs) {\r\n qs = qs + \"&\" + qsParts[i];\r\n } else {\r\n qs = qsParts[i];\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (qs) qs = \"?\" + qs + \"&\";\r\n else qs = \"?\";\r\n\r\n var ccParts = cultureCode.split('-');\r\n window.location.href = url + qs + \"lang=\" + ccParts[0];\r\n } \r\n\r\n function Init() {\r\n vm.GetCultures();\r\n }\r\n\r\n vm.$onInit = function () {\r\n Init();\r\n }\r\n }\r\n\r\n return directive;\r\n }\r\n})(window.angular);\r\n","(function (angular) {\r\n\tangular.module('bizPartEngage').directive('bizEngageJourney', bizEngageJourneyDirective);\r\n\tangular.module('bizPartEngage').directive('bizEngageProgress', bizEngageProgressDirective);\r\n\tangular.module('bizPartEngage').directive('bizEngageProgressBar', bizEngageProgressBarDirective);\r\n\tangular.module('bizPartEngage').directive('bizEngageJourneyProgressBar', bizEngageJourneyProgressBarDirective);\r\n angular.module('bizPartEngage').directive('bizEngageProgressSettings', bizEngageProgressSettingsDirective);\r\n angular.module('bizPartEngage').directive('bizEngageStackedObjects', bizEngageStackedObjectsDirective);\r\n\r\n\tbizEngageJourneyDirective.$inject = [\"bizCore\"];\r\n\tbizEngageProgressDirective.$inject = [\"bizCore\"];\r\n\tbizEngageProgressBarDirective.$inject = [\"bizCore\"]\r\n bizEngageProgressSettingsDirective.$inject = [\"bizCore\"];\r\n bizEngageStackedObjectsDirective.$inject = [\"bizCore\"]; \r\n\r\n function bizEngageStackedObjectsDirective(bizCoreProvider) {\r\n var directive = {\r\n restrict: \"E\",\r\n scope: {\r\n engageObjects: '=',\r\n categoryId: '=',\r\n horizontal: '=?',\r\n gotoFunc: '&',\r\n bigImage: '=?'\r\n },\r\n templateUrl: bizCoreProvider.getView('core.directives.engagestackedobjects', \"FrontEnd/Core/Directives/Views/EngageStackedObjects.html\"),\r\n bindToController: true,\r\n controller: bizEngageStackedObjectsController,\r\n controllerAs: \"vm\",\r\n }\r\n\r\n bizEngageStackedObjectsController.$inject = ['$filter'];\r\n\r\n function bizEngageStackedObjectsController($filter) {\r\n var vm = this;\r\n\r\n vm.ImageList = [];\r\n\r\n vm.Init = Init;\r\n vm.SetSelected = SetSelected;\r\n vm.SetSelectedImageFirst = SetSelectedImageFirst;\r\n vm.Goto = Goto;\r\n\r\n function Goto() {\r\n vm.gotoFunc()(vm.Selected);\r\n }\r\n\r\n function SetSelected(obj) {\r\n vm.Selected = obj;\r\n vm.SetSelectedImageFirst();\r\n }\r\n\r\n function SetSelectedImageFirst() { \r\n var index = 0;\r\n for (var i = 0; i < vm.ImageList.length; i++) {\r\n if (vm.ImageList[i].Id === vm.Selected.Id) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n\r\n if (index === 0)\r\n return;\r\n\r\n var first = vm.ImageList[index];\r\n var newList = [first];\r\n for (var i = 0; i < vm.ImageList.length; i++) {\r\n if (i !== index) {\r\n newList.push(vm.ImageList[i]);\r\n }\r\n }\r\n vm.ImageList = newList;\r\n }\r\n\r\n function Init() {\r\n\r\n if (!vm.engageObjects || !vm.engageObjects.length)\r\n return;\r\n \r\n var category;\r\n for (var i = 0; i < vm.engageObjects.length && !category; i++) {\r\n category = vm.engageObjects[i].GenericCategories.GetItemByValue('Id', vm.categoryId); \r\n }\r\n\r\n if (!category)\r\n return;\r\n\r\n for (var i = 0; i < vm.engageObjects.length; i++) {\r\n var catObj = category.Objects.GetItemByValue('Id', vm.engageObjects[i].Id);\r\n vm.engageObjects[i].Order = catObj.Order;\r\n }\r\n \r\n vm.engageObjects = $filter('orderBy')(vm.engageObjects, 'Order');\r\n\r\n vm.Selected = vm.engageObjects[0]; \r\n\r\n for (var i = 0; i < vm.engageObjects.length; i++) { \r\n vm.ImageList.push(vm.engageObjects[i]);\r\n }\r\n }\r\n\r\n vm.$onInit = vm.Init;\r\n }\r\n\r\n return directive;\r\n }\r\n\r\n\tfunction bizEngageProgressBarDirective(bizCoreProvider) {\r\n\t\tvar directive = {\r\n\t\t\trestrict: \"E\",\r\n\t\t\tscope: {\r\n\t\t\t\tlabel: '@',\r\n progress: '=',\r\n showProfileImage: '=?'\r\n\t\t\t},\r\n\t\t\ttemplateUrl: bizCoreProvider.getView('core.directives.engageprogressbar', \"FrontEnd/Core/Directives/Views/EngageProgressBar.html\"),\r\n\t\t\tbindToController: true,\r\n\t\t\tcontroller: bizEngageProgressBarController,\r\n\t\t\tcontrollerAs: \"vm\",\r\n\t\t}\r\n\r\n\t\tbizEngageProgressBarController.$inject = ['core.engage.service'];\r\n\r\n\t\tfunction bizEngageProgressBarController(engageService) {\r\n\t\t\tvar vm = this;\r\n\t\t}\r\n\r\n\t\treturn directive;\r\n\t}\r\n\r\n\tfunction bizEngageJourneyProgressBarDirective() {\r\n\t\tvar directive = {\r\n\t\t\trestrict: \"E\",\r\n\t\t\tscope: {\r\n\t\t\t\tlabel: '@',\r\n showCustomJourney: '=?',//favorites not used atm\r\n showProfileImage: '=?'\r\n\t\t\t},\r\n template: '',\r\n\t\t\tbindToController: true,\r\n\t\t\tcontroller: bizEngageJourneyProgressBarController,\r\n\t\t\tcontrollerAs: \"vm\",\r\n\t\t}\r\n\r\n\t\tbizEngageJourneyProgressBarController.$inject = ['$rootScope', 'core.engage.service'];\r\n\r\n\t\tfunction bizEngageJourneyProgressBarController($rootScope, engageService) {\r\n\t\t\tvar vm = this;\r\n\t\t\tvm.progress = 0;\r\n\r\n\t\t\tvm.Init = Init;\r\n\r\n function GetJourneys() {\r\n\r\n $rootScope.JourneysInitialized.then(InitJourneys);\r\n\r\n function InitJourneys() {\r\n vm.Journeys = $rootScope.Journeys;\r\n\r\n var objectCount = 0;\r\n var finishedObjectCount = 0;\r\n for (var i = 0; i < vm.Journeys.length; i++) {\r\n for (var j = 0; j < vm.Journeys[i].EngageObjects.length; j++) {\r\n objectCount++;\r\n if (vm.Journeys[i].EngageObjects[j].Status === 3) {\r\n finishedObjectCount++;\r\n }\r\n }\r\n } \r\n\r\n var progress = 0;\r\n if (objectCount > 0) {\r\n progress = Math.round((finishedObjectCount * 100) / objectCount);\r\n }\r\n vm.progress = progress;\r\n }\t\t\t\t\r\n\t\t\t}\r\n\r\n\t\t\tfunction Init() {\r\n\t\t\t\tGetJourneys();\r\n\r\n\t\t\t\t//REGISTER FOR UPDATES\r\n\t\t\t\tif(vm.showCustomJourney) {\r\n\t\t\t\t\t$rootScope.$on('favorites.change', function() {\r\n\t\t\t\t\t\tGetJourneys();\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvm.$onInit = vm.Init;\r\n\t\t}\r\n\r\n\t\treturn directive;\r\n\t}\r\n\r\n\tfunction bizEngageProgressSettingsDirective(bizCoreProvider) {\r\n\t\tvar directive = {\r\n\t\t\trestrict: \"E\",\r\n\t\t\tscope: {\r\n\t\t\t\tsettingsHandler: '='\r\n\t\t\t},\r\n\t\t\ttemplateUrl: bizCoreProvider.getView('core.directives.engageprogresssettings', \"FrontEnd/Core/Directives/Views/EngageProgressSettings.html\"),\r\n\t\t\tbindToController: true,\r\n\t\t\tcontroller: bizEngageProgressSettingsController,\r\n\t\t\tcontrollerAs: \"vm\",\r\n\t\t}\r\n\r\n\t\tbizEngageProgressSettingsController.$inject = ['core.engage.service'];\r\n\r\n\t\tfunction bizEngageProgressSettingsController(engageService) {\r\n\t\t\tvar vm = this;\r\n\r\n\t\t\tvm.Init = Init;\r\n\t\t\tvm.Save = Save;\r\n\t\t\tvm.GetSettings = GetSettings;\r\n\r\n\t\t\tfunction Init() {\r\n\t\t\t\tvm.settingsHandler = {\r\n\t\t\t\t\tSave: vm.Save\r\n\t\t\t\t};\r\n\t\t\t\tvm.GetSettings();\r\n\t\t\t}\r\n\r\n\t\t\tfunction GetSettings() {\r\n\t\t\t\tengageService.GetSettings().then(GetSettingsCallback);\r\n\r\n\t\t\t\tfunction GetSettingsCallback(response) {\r\n\t\t\t\t\tvm.Settings = response.data;\r\n\t\t\t\t\tvm.OriginalSettings = angular.copy(vm.Settings);\r\n\t\t\t\t\tvm.settingsHandler.Settings = vm.Settings;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction Save() {\r\n\t\t\t\tvm.SavedSettings = true;\r\n\t\t\t\tengageService.SaveSettings(vm.Settings);\r\n\t\t\t}\r\n\r\n\t\t\tvm.$onDestroy = function () {\r\n\t\t\t\tif (!vm.SavedSettings)\r\n\t\t\t\t\tObject.assign(vm.Settings, vm.OriginalSettings);\r\n\t\t\t}\r\n\r\n\t\t\tvm.$onInit = vm.Init;\r\n\t\t}\r\n\r\n\t\treturn directive;\r\n\t}\r\n\r\n\tfunction bizEngageProgressDirective(bizCoreProvider) {\r\n\t\tvar directive = {\r\n\t\t\trestrict: \"E\",\r\n\t\t\tscope: {\r\n\t\t\t\twidth: '@',\r\n\t\t\t\tdata: '=?',\r\n settings: '=?',\r\n showProfileImage: '=?'\r\n\t\t\t},\r\n\t\t\ttemplateUrl: bizCoreProvider.getView('core.directives.engageprogress', \"FrontEnd/Core/Directives/Views/EngageProgress.html\"),\r\n\t\t\tbindToController: true,\r\n\t\t\tcontroller: bizEngageProgressController,\r\n\t\t\tcontrollerAs: \"vm\",\r\n\t\t}\r\n\r\n bizEngageProgressController.$inject = ['core.engage.service', '$scope', 'bizUser', '$rootScope'];\r\n\r\n function bizEngageProgressController(engageService, $scope, bizUser, $rootScope) {\r\n\t\t\tvar vm = this;\r\n\r\n vm.Mascot = mascot;\r\n vm.BackgroundImage;\r\n\r\n vm.Init = Init;\r\n vm.SetProgress = SetProgress;\r\n\t\t\t//vm.GetEngageJourneys = GetEngageJourneys;\r\n\r\n\t\t\t//function GetEngageJourneys(useCache) {\r\n\t\t\t//\tengageService.GetEngageJourneysForUser(!useCache).then(GetEngageJourneysCallback);\r\n\r\n\t\t\t//\tfunction GetEngageJourneysCallback(journeys) {\r\n // vm.data = {};\r\n // console.log(\"journeys\", journeys)\r\n\r\n\t\t\t//\t\tif (journeys.Custom && journeys.Custom.length)\r\n\t\t\t//\t\t\tvm.data.Custom = journeys.Custom[0].TotalProgress;\r\n\r\n\t\t\t//\t\tif (journeys.General && journeys.General.length)\r\n\t\t\t//\t\t\tvm.data.General = journeys.General[0].TotalProgress;\r\n\t\t\t//\t}\r\n // } \r\n\r\n function SetProgress() {\r\n $rootScope.GetAllJourneysTotalProgress().then((progress) => { \r\n vm.data = {};\r\n vm.data.General = progress;\r\n });\r\n }\r\n\r\n\t\t\tfunction Init() {\r\n \r\n\r\n\t\t\t\tif (!vm.settings) {\r\n\r\n\t\t\t\t\tvm.settings = {\r\n\t\t\t\t\t\tHideGeneralJourneyProgress: true,\r\n\t\t\t\t\t\tHideCustomJourneyProgress: true\r\n\t\t\t\t\t};\r\n\t\t\t\t\t\r\n\t\t\t\t\tengageService.GetSettings().then(GetSettingsCallback);\r\n }\r\n\r\n if (vm.showProfileImage) {\r\n vm.LoggedInUser = bizUser.getLoggedInUser();\r\n if (vm.LoggedInUser) {\r\n vm.BackgroundImage = vm.LoggedInUser.Photo || 'Images/Common/no_user_photo.png';\r\n }\r\n }\r\n\r\n if (!vm.BackgroundImage) {\r\n vm.BackgroundImage = vm.Mascot.Image;\r\n }\r\n\r\n\t\t\t\tif (vm.data) return;\r\n\r\n vm.settings.HideCustomJourneyProgress = true;\r\n vm.SetProgress();\r\n \r\n\t\t\t\t//vm.GetEngageJourneys(true);\r\n\r\n $scope.$on('favorites.change', vm.SetProgress);\r\n $scope.$on('engageobject.finished', vm.SetProgress);\r\n\r\n\t\t\t\tfunction GetSettingsCallback(response) {\r\n\t\t\t\t\tvm.settings = response.data;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t\r\n\t\t\t}\r\n\r\n\t\t\tvm.$onInit = vm.Init;\r\n\t\t}\r\n\r\n\t\treturn directive;\r\n\t}\r\n\r\n\tfunction bizEngageJourneyDirective(bizCoreProvider) {\r\n\t\tvar directive = {\r\n\t\t\trestrict: \"E\",\r\n\t\t\tscope: {\r\n\t\t\t},\r\n\t\t\ttemplateUrl: bizCoreProvider.getView('core.directives.engagejourney', \"FrontEnd/Core/Directives/Views/EngageJourney.html\"),\r\n\t\t\tbindToController: true,\r\n\t\t\tcontroller: bizEngageJourneyController,\r\n\t\t\tcontrollerAs: \"vm\"\r\n\t\t}\r\n\r\n\t\tbizEngageJourneyController.$inject = ['core.engage.service'];\r\n\r\n\t\tfunction bizEngageJourneyController(engageService) {\r\n\t\t\tvar vm = this;\r\n\r\n\t\t\tvm.Init = Init;\r\n\t\t\tvm.GetEngageState = GetEngageState;\r\n\r\n\t\t\tfunction GetEngageState(engageObject) {\r\n\t\t\t\tswitch (engageObject.EngageObjectType) {\r\n\t\t\t\t\tcase 1:\r\n\t\t\t\t\t\treturn \"base.modules.html5education({id: \" + engageObject.Id + \"})\";\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 2:\r\n\t\t\t\t\t\treturn engageObject.UrlRewrite ? \"base.modules.blogtitle({title: '\" + engageObject.UrlRewrite + \"'})\" : \"base.modules.blog({id: \" + engageObject.Id + \"})\";\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 3:\r\n\t\t\t\t\t\treturn \"base.modules.mediafile({id: '\" + (engageObject.UrlRewrite || engageObject.Id) + \"'})\";\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction Init() {\r\n\t\t\t\tengageService.GetEngageJourneys(false).then(GetJourneysCallback);\r\n\r\n\t\t\t\tfunction GetJourneysCallback(response) {\r\n\t\t\t\t\tvm.EngageJourneys = response.data;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvm.$onInit = vm.Init;\r\n\t\t}\r\n\r\n\t\treturn directive;\r\n\t}\r\n})(window.angular);\r\n","(function (angular) {\r\n\tangular.module('bizPartEngage').directive('bizFavorite', bizFavorite);\r\n\tangular.module('bizPartEngage').directive('bizFavoriteList', bizFavoriteList);\r\n\tangular.module('bizPartEngage').directive('bizFavoriteEditList', bizFavoriteEditList);\r\n\r\n\tbizFavorite.$inject = [\"bizCore\"];\r\n\tbizFavoriteList.$inject = [\"bizCore\"];\r\n\tbizFavoriteEditList.$inject = [\"bizCore\"];\r\n\r\n\tfunction bizFavorite(bizCore) {\r\n\t\tvar directive = {\r\n\t\t\trestrict: \"E\",\r\n\t\t\tscope: {\r\n\t\t\t\tobjectType: '@',\r\n\t\t\t\tobjectId: '@',\r\n\t\t\t\tlabel: '@',\r\n\t\t\t\tfavorite: '=?'\r\n\t\t\t},\r\n\t\t\ttemplateUrl: bizCore.getView('core.directives.favorite', \"FrontEnd/Core/Directives/Views/Favorite.html\"),\r\n\t\t\tbindToController: true,\r\n\t\t\tcontroller: bizFavoriteController,\r\n\t\t\tcontrollerAs: \"vm\"\r\n\t\t}\r\n\r\n\t\tbizFavoriteController.$inject = ['core.services.favorite', '$rootScope'];\r\n\r\n\t\tfunction bizFavoriteController(favoriteService, $rootScope) {\r\n\t\t\tvar vm = this;\r\n\r\n\t\t\tvm.Init = Init;\r\n\t\t\tvm.ToggleFavorite = ToggleFavorite;\r\n\r\n\t\t\tfunction ToggleFavorite() {\r\n\t\t\t\tvm.favorite = !vm.favorite;\r\n\r\n\t\t\t\tif (vm.favorite)\r\n\t\t\t\t\tfavoriteService.AddFavorite(vm.objectType, vm.objectId).then(FavoriteChangeCallback);\r\n\t\t\t\telse\r\n\t\t\t\t\tfavoriteService.RemoveFavorite(vm.objectType, vm.objectId).then(FavoriteChangeCallback);\r\n\r\n\t\t\t\tfunction FavoriteChangeCallback(){\r\n\t\t\t\t\tfavoriteService.GetFavorites(false).then(function(response) {\r\n\t\t\t\t\t\t$rootScope.$broadcast('favorites.change', response.data);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction Init() {\r\n\t\t\t\tif (vm.favorite !== undefined) return;\r\n\r\n\t\t\t\tif ($rootScope.FavMarkedCssClass === undefined)\r\n\t\t\t\t\t$rootScope.FavMarkedCssClass = 'fa fa-heart biz-primary-icon';\r\n\r\n\t\t\t\tif ($rootScope.FavUnmarkedCssClass === undefined)\r\n\t\t\t\t\t$rootScope.FavUnmarkedCssClass = 'fa fa-heart-o';\r\n\r\n\t\t\t\tfavoriteService.IsFavorite(vm.objectType, vm.objectId).then(IsFavoriteCallback);\r\n\r\n\t\t\t\tfunction IsFavoriteCallback(response) {\r\n\t\t\t\t\tvm.favorite = !!response.data;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvm.$onInit = vm.Init;\r\n\t\t}\r\n\r\n\t\treturn directive;\r\n\t}\r\n\r\n\tfunction bizFavoriteList(bizCore) {\r\n\t\tvar directive = {\r\n\t\t\trestrict: \"E\",\r\n\t\t\tscope: {\r\n\t\t\t\tobjectType: '@',\r\n\t\t\t\tfavorites: '=?'\r\n\t\t\t},\r\n\t\t\ttemplateUrl: bizCore.getView('core.directives.favoritelist', \"FrontEnd/Core/Directives/Views/FavoriteList.html\"),\r\n\t\t\tbindToController: true,\r\n\t\t\tcontroller: bizFavoriteListController,\r\n\t\t\tcontrollerAs: \"vm\"\r\n\t\t}\r\n\r\n\t\tbizFavoriteListController.$inject = ['core.services.favorite'];\r\n\r\n\t\tfunction bizFavoriteListController(favoriteService) {\r\n\t\t\tvar vm = this;\r\n\r\n\t\t\tvm.Init = Init;\r\n\t\t\tvm.RemoveFavorite = RemoveFavorite;\r\n\r\n\t\t\tfunction RemoveFavorite(favorite) {\r\n\t\t\t\tfavoriteService.RemoveFavorite(favorite.ObjectType, favorite.ObjectId);\r\n\t\t\t\tvm.favorites.Remove(favorite);\r\n\t\t\t}\r\n\r\n\t\t\tfunction Init() {\r\n\t\t\t\tif (vm.favorites) return;\r\n\r\n\t\t\t\tif ($rootScope.FavMarkedCssClass === undefined)\r\n\t\t\t\t\t$rootScope.FavMarkedCssClass = 'fa fa-heart biz-primary-icon';\r\n\r\n\t\t\t\tif ($rootScope.FavUnmarkedCssClass === undefined)\r\n\t\t\t\t\t$rootScope.FavUnmarkedCssClass = 'fa fa-heart-o';\r\n\r\n\t\t\t\tfavoriteService.GetFavorites(false, vm.objectType).then(GetFavoritesCallback);\r\n\r\n\t\t\t\tfunction GetFavoritesCallback(response) {\r\n\t\t\t\t\tvm.favorites = response.data;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvm.$onInit = vm.Init;\r\n\t\t}\r\n\r\n\t\treturn directive;\r\n\t}\r\n\r\n\tfunction bizFavoriteEditList(bizCore) {\r\n\t\tvar directive = {\r\n\t\t\trestrict: \"E\",\r\n\t\t\tscope: {\r\n\t\t\t},\r\n\t\t\ttemplateUrl: bizCore.getView('core.directives.favoritelist', \"FrontEnd/Core/Directives/Views/FavoriteEditList.html\"),\r\n\t\t\tbindToController: true,\r\n\t\t\tcontroller: bizFavoriteEditListController,\r\n\t\t\tcontrollerAs: \"vm\"\r\n\t\t}\r\n\r\n\t\tbizFavoriteEditListController.$inject = ['core.services.favorite', 'bizCoreService', '$rootScope'];\r\n\r\n\t\tfunction bizFavoriteEditListController(favoriteService, bizCoreService, $rootScope) {\r\n\t\t\tvar vm = this;\r\n\t\t\tvm.Tags = [];\r\n\t\t\tvm.Init = Init;\r\n\r\n\t\t\tfunction Init() {\r\n\t\t\t\tbizCoreService.GetAllTags($rootScope.LoggedInUser.CurrentCultureId).then(GetTagsCallback);\r\n\r\n\t\t\t\tfunction GetTagsCallback(response) {\r\n\t\t\t\t\tvm.Tags = response.data;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// if (vm.favorites) return;\r\n\r\n\t\t\t\t// favoriteService.GetFavorites(false, vm.objectType).then(GetFavoritesCallback);\r\n\r\n\t\t\t\t// function GetFavoritesCallback(response) {\r\n\t\t\t\t// \tvm.favorites = response.data;\r\n\t\t\t\t// }\r\n\t\t\t}\r\n\r\n $rootScope.Initialized.then(vm.Init);\r\n\r\n\t\t\t//vm.$onInit = vm.Init;\r\n\t\t}\r\n\r\n\t\treturn directive;\r\n\t}\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').directive('bizHeader', bizHeaderDirective);\r\n angular.module('bizPartEngage').directive('bizGlobalSiteTitle', bizGlobalSiteTitleDirective);\r\n\r\n bizHeaderDirective.$inject = [\"bizCore\"];\r\n bizGlobalSiteTitleDirective.$inject = [];\r\n\r\n function bizGlobalSiteTitleDirective() {\r\n var directive = {\r\n restrict: \"E\",\r\n scope: {\r\n },\r\n template: '',\r\n controller: bizGlobalSiteTitleController,\r\n controllerAs: \"vm\"\r\n }\r\n\r\n bizGlobalSiteTitleController.$inject = [\"base.service\"];\r\n\r\n function bizGlobalSiteTitleController(baseService) {\r\n var vm = this;\r\n\r\n baseService.GetGlobalSiteTitle().then(function (response) {\r\n vm.SiteTitle = response.data;\r\n });\r\n }\r\n\r\n return directive;\r\n }\r\n\r\n function bizHeaderDirective(bizCoreProvider) {\r\n var directive = {\r\n restrict: \"E\",\r\n scope: {\r\n },\r\n templateUrl: bizCoreProvider.getView('core.directives.header', \"FrontEnd/Core/Directives/Views/Header.html\"),\r\n controller: bizHeaderController,\r\n controllerAs: \"vm\"\r\n }\r\n\r\n bizHeaderController.$inject = [\"core.users.service\", \"bizCoreService\", \"$window\", \"$filter\", \"$rootScope\", \"$element\"];\r\n\r\n function bizHeaderController(userService, bizCoreService, $window, $filter, $rootScope, $element) {\r\n var vm = this;\r\n vm.logo = portalSettings['logo'];\r\n vm.lastScrollTop = 0;\r\n vm.scrollTop = 0;\r\n vm.scrollDirection = '';\r\n\r\n vm.ShowLogin = false;\r\n vm.ShowFavorites = false;\r\n vm.ShowSearch = false;\r\n vm.ShowCultures = false;\r\n\r\n this.GoToAdmin = GoToAdmin;\r\n this.Logout = Logout;\r\n this.Search = Search;\r\n this.ChangeCulture = ChangeCulture;\r\n this.ToggleCollapseHeader = ToggleCollapseHeader;\r\n this.Init = Init;\r\n this.HideLogin = HideLogin;\r\n\r\n $rootScope.$watch('MiniSettings.Header.KeepBgClass',\r\n function (newVal, oldVal) {\r\n if (newVal && newVal != oldVal) {\r\n if ($rootScope.MiniSettings.Header.KeepBgClass === true)\r\n AddBgClass();\r\n else\r\n RemoveBgClass();\r\n }\r\n }\r\n );\r\n\r\n $rootScope.$on('CLOSE_ALL_MENUS', function (event, args) {\r\n CloseAllMenus();\r\n });\r\n\r\n $rootScope.$on('HIDE-LOGIN-DIRECTIVE', function (event, args) {\r\n vm.ShowLogin = false;\r\n $rootScope.$digest();\r\n });\r\n\r\n $rootScope.$on('SHOW-LOGIN-DIRECTIVE', function (event, args) {\r\n vm.ShowLogin = true;\r\n $rootScope.$digest();\r\n });\r\n\r\n function HighLightItem(showOverlay) {\r\n if (showOverlay === true) {\r\n angular.element('#base-home').addClass('highlight-header-item');\r\n }\r\n else {\r\n angular.element('#base-home').removeClass('highlight-header-item');\r\n }\r\n }\r\n\r\n function HideLogin() {\r\n vm.ShowLogin = false;\r\n HighLightItem(false);\r\n }\r\n\r\n function CloseAllMenus() {\r\n if (vm.ShowLogin || vm.ShowFavorites || vm.ShowSearch || vm.ShowCultures) {\r\n vm.ShowLogin = false;\r\n vm.ShowFavorites = false;\r\n vm.ShowSearch = false;\r\n vm.ShowCultures = false;\r\n }\r\n\r\n $rootScope.$digest();\r\n }\r\n\r\n function GoToAdmin() {\r\n $window.location.href = $filter('siteroot')('/admin');\r\n }\r\n\r\n function Logout() {\r\n console.log(\"logout btn\")\r\n userService.Logout();\r\n }\r\n\r\n function Search(searchText) {\r\n \treturn bizCoreService.Search(searchText).then(function (response) {\r\n \t\treturn response.data;\r\n \t});\r\n }\r\n\r\n function ChangeCulture(culture) {\r\n if (culture.QueryString)\r\n { \r\n $window.location.href = $filter('siteroot')('/' + culture.QueryString);\r\n }\r\n }\r\n\r\n function ToggleCollapseHeader() {\r\n $element.parent().toggleClass('collapsed');\r\n }\r\n\r\n function onScroll() {\r\n vm.scrollTop = $window.pageYOffset || document.documentElement.scrollTop;\r\n vm.scrollDirection = vm.lastScrollTop < vm.scrollTop ? 'down' : 'up';\r\n\r\n if (vm.scrollDirection === 'down' && vm.scrollTop > 5 && $rootScope.MiniSettings[\"Header\"][\"PreventHideOnScroll\"] === false) { // iOS fix 5px\r\n angular.element('.biz-header').addClass('hide-menu');\r\n }\r\n else {\r\n angular.element('.biz-header').removeClass('hide-menu');\r\n }\r\n\r\n var offsetLimit = 0;\r\n var offsetElement = angular.element('#header-bg-offset');\r\n if (offsetElement.length > 0 && offsetElement[0].offsetTop > 0) {\r\n var logoHeight = angular.element('.biz-site-logo-wrapper')[0].clientHeight;\r\n offsetLimit = offsetElement[0].offsetTop - (logoHeight !== undefined ? logoHeight : 0);\r\n }\r\n\r\n if (vm.scrollTop > offsetLimit) {\r\n AddBgClass();\r\n CloseAllMenus();\r\n }\r\n else if ($rootScope.MiniSettings[\"Header\"][\"KeepBgClass\"] === false) {\r\n RemoveBgClass();\r\n }\r\n vm.lastScrollTop = vm.scrollTop;\r\n }\r\n\r\n function Init() {\r\n vm.ShowTipSomeone = portalSettings['IsShowTipSomeoneEnabled'];\r\n vm.OpenIdProviderId = portalSettings[\"loginopenidp\"];\r\n\r\n if ($rootScope.MiniSettings.Header.KeepBgClass === true)\r\n AddBgClass();\r\n\r\n $window.addEventListener('scroll', onScroll);\r\n\r\n if (getSessionStorage('highlightLogin') === 'true') {\r\n vm.ShowLogin = true;\r\n HighLightItem(true);\r\n deleteSessionStorage('highlightLogin');\r\n }\r\n }\r\n\r\n function AddBgClass() {\r\n //console.log('AddBgClass');\r\n angular.element('.biz-header').addClass('menu-w-bg');\r\n }\r\n\r\n function RemoveBgClass() {\r\n //console.log('RemoveBgClass');\r\n angular.element('.biz-header').removeClass('menu-w-bg');\r\n }\r\n\r\n this.$onInit = vm.Init; \r\n }\r\n\r\n return directive;\r\n }\r\n})(window.angular);\r\n","(function (angular) {\r\n\tangular.module('bizPartEngage').directive('bizLayoutComponent', bizLayoutComponent);\r\n\tangular.module('bizPartEngage').service('bizLayoutComponentService', bizLayoutComponentService);\r\n\r\n\tbizLayoutComponent.$inject = [\"bizLayoutComponentService\", \"$compile\", \"container\"];\r\n\tbizLayoutComponentService.$inject = [\"$http\"]\r\n\r\n\tfunction bizLayoutComponent(bizLayoutComponentService, $compile, container) {\r\n\t\tvar directive = {\r\n\t\t\trestrict: \"A\",\r\n\t\t\tlink: bizLayoutComponentLink\r\n\t\t}\r\n\r\n\t\tfunction bizLayoutComponentLink(scope, element, attrs) {\r\n\t\t\tvar htm = '';\r\n\r\n\t\t\tif (!attrs.bizLayoutComponent)\r\n\t\t\t\treturn;\r\n\r\n\t\t\tbizLayoutComponentService.GetLayoutComponent(attrs.bizLayoutComponent).then(GetLayoutComponentCallback);\r\n\r\n\t\t\tfunction GetLayoutComponentCallback(response) {\r\n\t\t\t\tscope.LayoutComponent = BizPartCoreHelpers.getResponseValue(response, {});\r\n\r\n\t\t\t\tif (scope.LayoutComponent.Container) {\r\n\t\t\t\t\tscope.LayoutComponent.Container = new container(scope.LayoutComponent.Container);\r\n\t\t\t\t\tvar compiled = $compile(htm)(scope);\r\n\t\t\t\t\telement.html(compiled);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn directive;\r\n\t}\r\n\r\n\tfunction bizLayoutComponentService($http) {\r\n\t\tvar servicepath = siteRootPath + \"api/layout/\";\r\n\r\n\t\tthis.GetLayoutComponent = function (type) {\r\n\t\t\treturn $http.get(servicepath + \"GetLayoutComponentForUser\", {\r\n\t\t\t\tparams: {\r\n\t\t\t\t\ttype: type\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').directive('bizLeaderboard', bizLeaderboardDirective);\r\n\r\n bizLeaderboardDirective.$inject = [\"bizCore\"];\r\n\r\n function bizLeaderboardDirective(bizCoreProvider) {\r\n var directive = {\r\n restrict: \"E\",\r\n scope: {\r\n leaderboard: \"=\",\r\n header: \"@\"\r\n },\r\n templateUrl: bizCoreProvider.getView('core.directives.leaderboard', \"FrontEnd/Core/Directives/Views/Leaderboard.html\"),\r\n controller: bizHeaderController,\r\n controllerAs: \"vm\",\r\n bindToController: true\r\n }\r\n\r\n bizHeaderController.$inject = [\"bizUser\"];\r\n\r\n function bizHeaderController(bizUser) {\r\n var vm = this;\r\n\r\n vm.IsMe = IsMe;\r\n\r\n function IsMe(user) {\r\n return user.UserId == bizUser.getLoggedInUser().Id;\r\n }\r\n }\r\n\r\n return directive;\r\n }\r\n})(window.angular);\r\n","(function(angular) {\r\n angular.module('bizPartEngage').directive('bizDefaultLevelProgress', bizDefaultLevelProgressDirective);\r\n\r\n bizDefaultLevelProgressDirective.$inject = [\"bizCore\"];\r\n\r\n function bizDefaultLevelProgressDirective(bizCoreProvider) {\r\n var directive = {\r\n restrict: \"E\",\r\n scope: true,\r\n templateUrl: function (element, attrs) {\r\n \tif (!attrs.templateUrl)\r\n \t\treturn bizCoreProvider.getView('core.directives.defaultlevelprogress', \"FrontEnd/Core/Directives/Views/DefaultLevelProgress.html\");\r\n\t\t\t\t\r\n \treturn siteRootPath + attrs.templateUrl;\r\n },\r\n controller: bizDefaultLevelProgressController,\r\n controllerAs: \"vm\"\r\n };\r\n\r\n bizDefaultLevelProgressController.$inject = [\"$rootScope\", \"core.users.service\"];\r\n\r\n function bizDefaultLevelProgressController($rootScope, userService) {\r\n var vm = this;\r\n vm.CurrentLevel;\r\n vm.NextLevel;\r\n vm.UserExperienceSum = 0;\r\n vm.PercentageCompleted = 0;\r\n vm.ExpLeftToNextLevel = 0;\r\n\r\n vm.GetLoggedInUserDefaultLevelProgress = GetLoggedInUserDefaultLevelProgress;\r\n vm.CalculateExperience = CalculateExperience;\r\n\r\n function GetLoggedInUserDefaultLevelProgress() {\r\n userService.GetLoggedInUserDefaultLevelProgress().then(GetLoggedInUserDefaultLevelProgressSuccess);\r\n\r\n function GetLoggedInUserDefaultLevelProgressSuccess(response) {\r\n vm.CurrentLevel = response.data.m_Item1;\r\n vm.AllLevels = response.data.m_Item2;\r\n vm.UserExperienceSum = response.data.m_Item3;\r\n\r\n vm.CurrentLevelIndex = vm.AllLevels.GetIndexByValue('Id', vm.CurrentLevel.Id);\r\n\r\n for (var i = 0; i < vm.AllLevels.length; i++) {\r\n \tif (vm.AllLevels[i].RequiredExp > vm.CurrentLevel.RequiredExp) {\r\n \t\tvm.NextLevel = vm.AllLevels[i];\r\n \t\tbreak;\r\n \t}\r\n }\r\n\r\n vm.CalculateExperience();\r\n }\r\n }\r\n\r\n function CalculateExperience() {\r\n var sum = vm.UserExperienceSum - vm.CurrentLevel.RequiredExp;\r\n var needed = vm.NextLevel !== undefined ? vm.NextLevel.RequiredExp - vm.CurrentLevel.RequiredExp : 0;\r\n\r\n if(~~needed > 0) {\r\n vm.PercentageCompleted = (sum / needed) * 100;\r\n }\r\n else {\r\n vm.PercentageCompleted = 100;\r\n }\r\n\r\n vm.ExpLeftToNextLevel = needed > 0 ? needed - sum : 0;\r\n\r\n if (vm.PercentageCompleted > 100)\r\n \tvm.PercentageCompleted = 100;\r\n\r\n if(vm.ExpLeftToNextLevel < 0) {\r\n vm.ExpLeftToNextLevel = 0;\r\n }\r\n }\r\n\r\n if (IsPortalSettingTrue('IsLevelSystemEnabled'))\r\n vm.GetLoggedInUserDefaultLevelProgress();\r\n }\r\n\r\n return directive;\r\n }\r\n})(window.angular);\r\n","(function(angular) {\r\n angular.module('bizPartEngage').directive('bizMainMenu', bizMainMenuDirective);\r\n angular.module('bizPartEngage').directive('bizMenuJourney', bizMenuJourney);\r\n angular.module('bizPartEngage').directive('bizMenuJourneyCollection', bizMenuJourneyCollection);\r\n angular.module('bizPartEngage').directive('bizMenuJourneyStatus', bizMenuJourneyStatus);\r\n angular.module('bizPartEngage').service('bizMainMenuService', bizMainMenuService);\r\n\r\n bizMainMenuDirective.$inject = [\"bizCore\"];\r\n bizMenuJourney.$inject = [\"bizCore\"];\r\n bizMenuJourneyCollection.$inject = [\"bizCore\"];\r\n bizMenuJourneyStatus.$inject = [\"bizCore\"];\r\n bizMainMenuService.$inject = [\"$http\"];\r\n\r\n function bizMenuJourneyStatus(bizCoreProvider) {\r\n var directive = {\r\n restrict: \"E\",\r\n scope: { \r\n },\r\n templateUrl: bizCoreProvider.getView('core.directives.menu.journey', \"FrontEnd/Core/Directives/Views/MenuJourneyStatus.html\"),\r\n controller: bizMenuJourneyStatusController,\r\n controllerAs: \"vm\",\r\n bindToController: true\r\n }\r\n\r\n bizMenuJourneyStatusController.$inject = [\"$rootScope\", \"bizJourneyService\"];\r\n\r\n function bizMenuJourneyStatusController($rootScope, bizJourneyService) {\r\n var vm = this;\r\n\r\n vm.Init = Init;\r\n\r\n vm.SetCurrentJourney = SetCurrentJourney;\r\n vm.GoToNextJourneyObject = GoToNextJourneyObject;\r\n vm.SetNextJourneyObject = SetNextJourneyObject;\r\n vm.CloseJourneyPanel = CloseJourneyPanel;\r\n\r\n vm.JourneyPanelOpen = false;\r\n\r\n function CloseJourneyPanel() {\r\n vm.JourneyPanelOpen = false;\r\n }\r\n\r\n function GoToNextJourneyObject(event) {\r\n event.stopPropagation();\r\n\r\n bizJourneyService.GoToEngageItem(vm.NextJourneyObject);\r\n }\r\n\r\n function SetCurrentJourney() {\r\n $rootScope.JourneysInitialized.then(() => {\r\n if ($rootScope.Journeys) {\r\n for (var i = 0; i < $rootScope.Journeys.length; i++) {\r\n if ($rootScope.Journeys[i].IsCurrentJourney) {\r\n vm.CurrentJourney = $rootScope.Journeys[i];\r\n }\r\n }\r\n }\r\n\r\n vm.SetNextJourneyObject();\r\n });\r\n }\r\n\r\n function SetNextJourneyObject() {\r\n if (vm.CurrentJourney) {\r\n var nextObject;\r\n for (var i = 0; i < vm.CurrentJourney.EngageObjects.length; i++) {\r\n if (!nextObject && vm.CurrentJourney.EngageObjects[i].Status !== 3) {\r\n nextObject = vm.CurrentJourney.EngageObjects[i];\r\n }\r\n }\r\n vm.NextJourneyObject = nextObject;\r\n }\r\n }\r\n\r\n function Init() { \r\n vm.SetCurrentJourney();\r\n\r\n $rootScope.$on('CURRENT_JOURNEY_CHANGED', (event, args) => {\r\n vm.SetCurrentJourney();\r\n });\r\n\r\n $rootScope.$on('JOURNEY_OBJECT_UPDATED', (event, args) => {\r\n vm.SetNextJourneyObject();\r\n }); \r\n } \r\n\r\n this.$onInit = vm.Init;\r\n }\r\n\r\n return directive;\r\n }\r\n\r\n function bizMenuJourney(bizCoreProvider) {\r\n var directive = {\r\n restrict: \"E\",\r\n scope: {\r\n journey: \"=?\",\r\n fromCollection: \"@?\"\r\n },\r\n templateUrl: bizCoreProvider.getView('core.directives.menu.journey', \"FrontEnd/Core/Directives/Views/MenuJourney.html\"),\r\n controller: bizMenuJourneyController,\r\n controllerAs: \"vm\",\r\n bindToController: true\r\n }\r\n\r\n bizMenuJourneyController.$inject = [\"$rootScope\"];\r\n\r\n function bizMenuJourneyController($rootScope) {\r\n var vm = this;\r\n vm.Init = Init;\r\n vm.Round = Round;\r\n\r\n function Init() {\r\n\r\n }\r\n\r\n function Round(p) {\r\n return Math.round(p);\r\n }\r\n\r\n this.$onInit = vm.Init;\r\n }\r\n\r\n return directive;\r\n }\r\n\r\n function bizMenuJourneyCollection(bizCoreProvider) {\r\n var directive = {\r\n restrict: \"E\",\r\n scope: {\r\n closeFunc: \"&\"\r\n },\r\n templateUrl: bizCoreProvider.getView('core.directives.menu.journey', \"FrontEnd/Core/Directives/Views/MenuJourneyCollection.html\"),\r\n controller: bizMenuJourneyCollectionController,\r\n controllerAs: \"vm\",\r\n bindToController: true\r\n }\r\n\r\n bizMenuJourneyCollectionController.$inject = [\"$rootScope\", \"bizJourneyService\", \"$state\"];\r\n\r\n function bizMenuJourneyCollectionController($rootScope, bizJourneyService, $state) {\r\n var vm = this;\r\n vm.Init = Init;\r\n vm.GoToJourneyPage = GoToJourneyPage;\r\n vm.SetCurrentJourney = SetCurrentJourney;\r\n\r\n function SetCurrentJourney(id) {\r\n if ($rootScope.Journeys && $rootScope.Journeys.length) {\r\n $rootScope.SetCurrentJourney(id, true);\r\n vm.closeFunc();\r\n }\r\n }\r\n\r\n function GoToJourneyPage() {\r\n vm.closeFunc();\r\n $state.go(\"base.modules.journey\");\r\n }\r\n\r\n function Init() {\r\n \r\n }\r\n\r\n this.$onInit = vm.Init;\r\n }\r\n\r\n return directive;\r\n }\r\n\r\n function bizMainMenuDirective(bizCoreProvider) {\r\n var directive = {\r\n restrict: \"E\",\r\n scope: {\r\n menuItems: \"=\"\r\n },\r\n templateUrl: bizCoreProvider.getView('core.directives.main.menu', \"FrontEnd/Core/Directives/Views/MainMenu.html\"),\r\n controller: bizMainMenuController,\r\n controllerAs: \"vm\",\r\n\t\t\tbindToController: true\r\n }\r\n\r\n bizMainMenuController.$inject = [\"$state\", \"$stateParams\", \"scrollService\", \"$rootScope\", \"bizMainMenuService\", \"core.users.service\", \"bizCoreService\", \"$window\", \"$filter\"];\r\n\r\n function bizMainMenuController($state, $stateParams, scrollService, $rootScope, bizMainMenuService, userService, bizCoreService, $window, $filter) {\r\n var vm = this;\r\n \tvm.GetItemLink = GetItemLink;\r\n vm.Navigate = Navigate;\r\n vm.IsActiveItem = IsActiveItem;\r\n vm.IsAnchorLink = IsAnchorLink;\r\n vm.HandleMenuClick = HandleMenuClick;\r\n vm.CurrentLocation = CurrentLocation;\r\n vm.Logout = Logout;\r\n vm.Login = Login;\r\n vm.ChangeCulture = ChangeCulture;\r\n vm.Init = Init;\r\n \r\n vm.ShowInstallPWA = ShowInstallPWA;\r\n vm.InstallPWA = InstallPWA;\r\n vm.HasInstalledPwa = false; \r\n vm.ShowJourneyWidget = false;\r\n\r\n vm.lastScrollTop = 0;\r\n vm.scrollTop = 0;\r\n vm.scrollDirection = '';\r\n vm.hasSentCloseEvent = false; \r\n\r\n \tvar objectTypeSettings = {\r\n \t\t100: {\r\n \t\t\tName: \"CMSPage\",\r\n \t\t\tState: \"base.modules.cms\",\r\n \t\t\tIdentifier: \"id\"\r\n \t\t}\r\n };\r\n\r\n function Logout() {\r\n userService.Logout();\r\n }\r\n\r\n function Login() {\r\n console.log(\"login\");\r\n if (vm.OpenIdProviderId) {\r\n $window.location.href = $filter('siteroot')('OpenIdLogin/' + vm.OpenIdProviderId);\r\n }\r\n }\r\n\r\n function ChangeCulture(culture) {\r\n if (culture.QueryString) {\r\n $window.location.href = $filter('siteroot')('/' + culture.QueryString);\r\n }\r\n }\r\n\r\n function HandleMenuClick(item, parentItem) {\r\n // Show/Hide sub-menus\r\n if (item.Children.length > 0) {\r\n if (item.Expanded === true) {\r\n item.Expanded = false;\r\n return;\r\n }\r\n\r\n for (var i = 0; i < $rootScope.MenuItems.length; i++) {\r\n $rootScope.MenuItems[i].Expanded = false;\r\n }\r\n\r\n item.Expanded = !item.Expanded;\r\n return;\r\n }\r\n\r\n if (parentItem)\r\n parentItem.Expanded = false;\r\n\r\n $rootScope.ExpandMainMenu = false;\r\n\r\n // External/http links\r\n if (item.Link.indexOf(window.location.hostname) > -1) {\r\n window.location.href = item.Link;\r\n return;\r\n }\r\n else if(item.Link.startsWith('http')) {\r\n window.open(item.Link, '_blank');\r\n return;\r\n }\r\n\r\n // Anchor links\r\n if (IsAnchorLink(item)) {\r\n\r\n if (item.Link.indexOf('#') == 0) {\r\n scrollService.ScrollTo($(item.Link), 0);\r\n }\r\n else {\r\n location.href = item.Link;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n function CurrentLocation() {\r\n return location.href.replace(location.hash, '');\r\n } \r\n\r\n function IsActiveItem(item) {\r\n if(!item) return;\r\n\r\n var state = $state.current;\r\n\r\n if (typeof item === 'string') {\r\n if (item == state.name || (state.data && state.data.parentState === item)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n else if (item.Link == state.name ||\r\n state.data !== undefined && item.Link == state.data.parentState ||\r\n item.ControllerScope == state.name ||\r\n state.data !== undefined && item.ControllerScope === state.data.parentState) {\r\n return true;\r\n }\r\n else if (item.ObjectType == 100 && $stateParams !== undefined && $stateParams.id == item.ObjectIdentifier) {\r\n return true;\r\n }\r\n else { \r\n return false;\r\n }\r\n }\r\n\r\n function IsAnchorLink(item) {\r\n if (item.Link.indexOf('#') > -1) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n function GetItemLink(item) {\r\n\r\n \tif (!item.ObjectType)\r\n \t\treturn item.Link;\r\n\r\n \tvar setting = objectTypeSettings[item.ObjectType];\r\n \tif (setting) {\r\n \t\tvar link = String.format('{0}({{1}:\"{2}\"})', setting.State, setting.Identifier, item.ObjectIdentifier);\r\n \t\treturn link;\r\n \t}\r\n }\r\n\r\n function Navigate(url) {\r\n $state.go(url);\r\n }\r\n\r\n function ShowInstallPWA() {\r\n if (IsPortalSettingTrue('IsPWAEnabled') && $rootScope.mobile && pwaDeferredPrompt !== undefined && !vm.HasInstalledPwa) { \r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n function InstallPWA(e) {\r\n vm.HasInstalledPwa = true;\r\n installPWA(e);\r\n } \r\n\r\n function onScroll() {\r\n // only for desktop\r\n\r\n vm.scrollTop = $window.pageYOffset || document.documentElement.scrollTop;\r\n vm.scrollDirection = vm.lastScrollTop < vm.scrollTop ? 'down' : 'up';\r\n\r\n if (vm.scrollDirection === 'down' && vm.scrollTop > 5 && vm.hasSentCloseEvent === false) { // iOS fix 5px\r\n $rootScope.ExpandMainMenu = false;\r\n vm.hasSentCloseEvent = true;\r\n $rootScope.$digest();\r\n }\r\n\r\n if (vm.scrollDirection === 'up') {\r\n vm.hasSentCloseEvent = false;\r\n }\r\n\r\n vm.lastScrollTop = vm.scrollTop;\r\n }\r\n\r\n function Init() {\r\n if (IsPortalSettingTrue('IsJourneyEnabled')) {\r\n vm.ShowJourneyWidget = IsPortalSettingTrue('IsJourneyMenuWidgetEnabled');\r\n }\r\n vm.ShowTipSomeone = IsPortalSettingTrue('IsShowTipSomeoneEnabled');\r\n vm.OpenIdProviderId = portalSettings[\"loginopenidp\"];\r\n\r\n if ($rootScope.mobile === false)\r\n $window.addEventListener('scroll', onScroll);\r\n }\r\n\r\n this.$onInit = vm.Init; \r\n }\r\n\r\n return directive;\r\n }\r\n\r\n function bizMainMenuService($http) {\r\n var servicePath = siteRootPath + 'api/menu/'; \r\n }\r\n\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').directive('bizMyNotes', bizMyNotes);\r\n angular.module('bizPartEngage').controller('biz.my.notes.edit.dialog', bizMyNotesEditDialogController);\r\n\r\n bizMyNotes.$inject = [\"bizCore\", \"core.users.service\"];\r\n bizMyNotesEditDialogController.$inject = [\"$mdDialog\", \"bizMediabankService\", \"bizCoreService\", \"core.mynotes.service\", \"$q\", \"$translate\"];\r\n\r\n function bizMyNotes(bizCore, userService) {\r\n var directive = {\r\n restrict: \"E\",\r\n scope: {\r\n limit: '@',\r\n limitDateFrom: '=?',\r\n limitDateTo: '=?'\r\n },\r\n templateUrl: bizCore.getView('core.directives.mynotes', \"FrontEnd/Core/Directives/Views/MyNotes.html\"),\r\n bindToController: true,\r\n controller: bizMyNotesController,\r\n controllerAs: \"vm\"\r\n }\r\n\r\n bizMyNotesController.$inject = ['$mdDialog', 'core.mynotes.service'];\r\n\r\n function bizMyNotesController($mdDialog, myNotesService) {\r\n var vm = this;\r\n vm.Notes = [];\r\n\r\n vm.EditMyNotesDialog = EditMyNotesDialog;\r\n vm.GetMyNotes = GetMyNotes;\r\n\r\n function EditMyNotesDialog() {\r\n $mdDialog.show({\r\n parent: angular.element(document.body),\r\n templateUrl: siteRootPath + \"FrontEnd/Core/Directives/Views/MyNotesEditDialog.html\",\r\n controller: 'biz.my.notes.edit.dialog',\r\n controllerAs: \"vm\",\r\n bindToController: true,\r\n locals: {\r\n limit: vm.limit,\r\n fromDate: vm.limitDateFrom, \r\n toDate: vm.limitDateTo,\r\n notes: angular.copy(vm.Notes),\r\n data: angular.copy(vm.Data)\r\n }\r\n }).then(EditClose);\r\n\r\n function EditClose(data) {\r\n vm.GetMyNotes();\r\n if (data) {\r\n vm.Data = data;\r\n }\r\n }\r\n }\r\n\r\n function GetMyNotes() {\r\n \r\n var from = BizPartCoreHelpers.getDateNow().subtract(100, 'days').toDate();\r\n var to = BizPartCoreHelpers.getDateNow().add(100, 'days').toDate();\r\n\r\n if (vm.limitDateFrom) { \r\n from = moment(vm.limitDateFrom).toDate();\r\n }\r\n\r\n if (vm.limitDateTo) { \r\n to = moment(vm.limitDateTo).toDate();\r\n }\r\n\r\n var limit = 4;\r\n if (vm.limit) {\r\n limit = ~~vm.limit;\r\n } \r\n\r\n myNotesService.GetMyNotes(limit, from, to).then(GetMyNotesSuccess);\r\n function GetMyNotesSuccess(response) {\r\n vm.Notes = response.data;\r\n }\r\n }\r\n\r\n function Init() {\r\n vm.GetMyNotes();\r\n userService.GetLoggedInUserSetting(\"MY_NOTES\").then(GetSettingCallback);\r\n\r\n function GetSettingCallback(response) {\r\n var data = BizPartCoreHelpers.getResponseValue(response);\r\n if (data) {\r\n vm.Data = JSON.parse(data);\r\n } else {\r\n vm.Data = {\r\n ImageUrl: \"https://qeeptest.bizpart.com/Upload/5/Mediabank/Files/39210552-2472-4021-8ac8-06b0e9b59d0f.jpg\",\r\n Color: \"#FFF\"\r\n };\r\n }\r\n }\r\n }\r\n\r\n vm.$onInit = Init;\r\n }\r\n\r\n return directive;\r\n }\r\n\r\n function bizMyNotesEditDialogController($mdDialog, bizMediabankService, bizCoreService, myNotesService, $q, $translate) {\r\n var vm = this;\r\n\r\n vm.AddNote = AddNote;\r\n vm.Save = Save;\r\n vm.Close = Close;\r\n vm.SelectImage = SelectImage; \r\n\r\n //todo: fix some general color translations\r\n vm.Colors = [\r\n {\r\n Name: 'Svart',\r\n Id: '#000'\r\n },\r\n {\r\n Name: 'Vit',\r\n Id: '#FFF'\r\n }\r\n ];\r\n\r\n function AddNote() {\r\n var note = {\r\n Id: 0,\r\n Text: \"\"\r\n };\r\n\r\n vm.notes.unshift(note);\r\n }\r\n\r\n function Save() {\r\n vm.data.ImageUrl = vm.image ? vm.image.FileUrl : undefined;\r\n vm.data.Color = vm.selectedColor.Id;\r\n $q.all([\r\n bizCoreService.UpdateUserSetting(\"MY_NOTES\", JSON.stringify(vm.data)),\r\n myNotesService.SaveMyNotes(vm.notes)\r\n ])\r\n .then(function (response) {\r\n myNotesService.ClearPromiseCache();\r\n $mdDialog.hide(vm.data);\r\n }); \r\n }\r\n\r\n function Close(data) {\r\n $mdDialog.hide(data);\r\n }\r\n\r\n function SelectImage() {\r\n bizMediabankService.ShowMediabankDialog(vm.image, null, vm.uploadSettings).then(ShowMediabankDialogCallback);\r\n\r\n function ShowMediabankDialogCallback(file) {\r\n if (!file)\r\n return;\r\n vm.image = file;\r\n }\r\n } \r\n\r\n \r\n\r\n vm.$onInit = function () { \r\n vm.selectedColor = vm.Colors.GetItemByValue('Id', vm.data.Color);\r\n vm.image = {\r\n FileUrl: vm.data.ImageUrl\r\n };\r\n\r\n vm.uploadSettings = {\r\n FileType: bizMediabankService.FileTypes.Image,\r\n FileLocation: bizMediabankService.UploadLocations.MyText,\r\n FilePattern: '',\r\n IsPrivate: true,\r\n IsInvisible: false,\r\n IsPrivateControlHidden: true,\r\n IsInvisibleControlHidden: true,\r\n IsUser: true\r\n }; \r\n\r\n $translate('BIZMYNOTES_EDIT_NOTE_HEADER').then(function (translation) { \r\n var header = translation.toString(); \r\n header = header.replace('##FROM##', moment(vm.fromDate).format('DD MMMM'));\r\n header = header.replace('##TO##', moment(vm.toDate).format('DD MMMM'));\r\n vm.header = header;\r\n });\r\n }\r\n }\r\n\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').directive('bizMyText', bizMyText); \r\n\r\n bizMyText.$inject = [\"bizCore\", \"core.users.service\"]; \r\n\r\n function bizMyText(bizCore, userService) {\r\n var directive = {\r\n restrict: \"E\",\r\n scope: {\r\n settingKey: '@' \r\n },\r\n templateUrl: bizCore.getView('core.directives.mytext', \"FrontEnd/Core/Directives/Views/MyText.html\"),\r\n bindToController: true,\r\n controller: bizMyTextController,\r\n controllerAs: \"vm\" \r\n }\r\n\r\n bizMyTextController.$inject = ['$mdDialog'];\r\n\r\n function bizMyTextController($mdDialog) {\r\n var vm = this;\r\n\r\n vm.DefaultData = {\r\n ImageUrl: '~/Images/mytext-default.png',\r\n Text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras vulputate sodales consectetur. Proin gravida felis vel dolor ornare, eu cursus est maximus.',\r\n Color: '#000'\r\n }; \r\n\r\n vm.Init = Init; \r\n vm.OpenEdit = OpenEdit; \r\n\r\n function OpenEdit() {\r\n $mdDialog.show({\r\n parent: angular.element(document.body),\r\n templateUrl: siteRootPath + \"FrontEnd/Core/Directives/Views/MyTextEdit.html\",\r\n controller: EditDialogController,\r\n controllerAs: \"vm\", \r\n bindToController: true, \r\n locals: {\r\n settingKey: vm.settingKey,\r\n data: angular.copy(vm.Data),\r\n settingKey: vm.settingKey\r\n }\r\n }).then(EditClose);\r\n\r\n function EditClose(data) { \r\n if (data) {\r\n vm.Data = data;\r\n }\r\n }\r\n\r\n EditDialogController.$inject = [\"$mdDialog\", \"bizMediabankService\", \"bizCoreService\"];\r\n\r\n function EditDialogController($mdDialog, bizMediabankService, bizCoreService) {\r\n var vm = this;\r\n vm.Save = Save;\r\n vm.Cancel = Cancel;\r\n\r\n vm.Colors = [\r\n {\r\n Name: 'Svart',\r\n Id: '#000'\r\n },\r\n {\r\n Name: 'Vit',\r\n Id: '#FFF'\r\n }\r\n ];\r\n\r\n vm.selectedColor = vm.Colors.GetItemByValue('Id', vm.data.Color);\r\n vm.image = {\r\n FileUrl: vm.data.ImageUrl\r\n };\r\n\r\n vm.uploadSettings = {\r\n FileType: bizMediabankService.FileTypes.Image,\r\n FileLocation: bizMediabankService.UploadLocations.MyText,\r\n FilePattern: '',\r\n IsPrivate: true,\r\n IsInvisible: false,\r\n IsPrivateControlHidden: true,\r\n IsInvisibleControlHidden: true,\r\n IsUser: true\r\n };\r\n\r\n function Save() {\r\n vm.data.ImageUrl = vm.image ? vm.image.FileUrl : undefined;\r\n vm.data.Color = vm.selectedColor.Id;\r\n bizCoreService.UpdateUserSetting(vm.settingKey, JSON.stringify(vm.data)).then(function (response) {\r\n $mdDialog.hide(vm.data);\r\n }); \r\n }\r\n\r\n function Cancel() {\r\n $mdDialog.hide();\r\n }\r\n }\r\n }\r\n\r\n function Init() {\r\n userService.GetLoggedInUserSetting(vm.settingKey).then(GetSettingCallback);\r\n\r\n function GetSettingCallback(response) { \r\n var data = BizPartCoreHelpers.getResponseValue(response); \r\n if (data) {\r\n vm.Data = JSON.parse(data);\r\n } else {\r\n vm.Data = vm.DefaultData;\r\n }\r\n }\r\n }\r\n\r\n vm.$onInit = vm.Init;\r\n }\r\n\r\n return directive;\r\n }\r\n \r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').directive('bizNotifications', bizNotifications);\r\n angular.module('bizPartEngage').constant('notificationSettingType', {\r\n FAB: 1,\r\n STANDARD: 2,\r\n DIALOG: 3\r\n });\r\n angular.module('bizPartEngage').constant('notificationPosition', {\r\n TOPLEFT: 1,\r\n TOPRIGHT: 2,\r\n BOTTOMLEFT: 3,\r\n BOTTOMRIGHT: 4,\r\n CENTER: 5\r\n });\r\n angular.module('bizPartEngage').provider('bizNotificationProvider', bizNotificationProvider);\r\n angular.module('bizPartEngage').service('bizNotificationService', bizNotificationService);\r\n\r\n bizNotifications.$inject = [\"bizCore\", \"bizNotificationProvider\", \"notificationSettingType\", \"notificationPosition\", \"bizNotificationService\"];\r\n bizNotificationProvider.$inject = [\"notificationSettingType\"];\r\n bizNotificationService.$inject = [\"$http\", \"$mdDialog\", \"$mdToast\"];\r\n\r\n function bizNotificationProvider(notificationSettingType) {\r\n function getView() {\r\n switch (notificationSettings.Type) {\r\n case notificationSettingType.FAB:\r\n return \"FrontEnd/Core/Directives/Views/NotificationsFAB.html\";\r\n case notificationSettingType.STANDARD:\r\n return \"FrontEnd/Core/Directives/Views/Notifications.html\";\r\n case notificationSettingType.DIALOG:\r\n return \"FrontEnd/Core/Directives/Views/NotificationsDialog.html\";\r\n break;\r\n }\r\n }\r\n\r\n return {\r\n getView: getView,\r\n $get: function () {\r\n return {\r\n getView: getView,\r\n };\r\n }\r\n };\r\n }\r\n\r\n\tfunction bizNotifications(bizCoreProvider, bizNotificationProvider, notificationSettingType, notificationPosition, bizNotificationService) {\r\n var directive = {\r\n restrict: \"E\",\r\n scope: {\r\n },\r\n templateUrl: bizCoreProvider.getView('core.directives.notifications', bizNotificationProvider.getView()),\r\n controller: bizNotificationsController,\r\n controllerAs: \"vm\"\r\n }\r\n\r\n bizNotificationsController.$inject = [\"$rootScope\", \"$timeout\", \"$translate\", \"bizNotificationService\", \"$state\", \"bizEffects\", \"$transitions\", \"core.engage.service\", \"bizJourneyService\", \"bizUser\"]\r\n\r\n function bizNotificationsController($rootScope, $timeout, $translate, bizNotificationService, $state, bizEffects, $transitions, coreEngageService, bizJourneyService, bizUser) {\r\n var vm = this;\r\n vm.Fade = false;\r\n vm.CanFade = true;\r\n vm.DoGroup = false;\r\n vm.FadeTimer = 6000;\r\n vm.ShowNotifications = false;\r\n vm.Notifications = [];\r\n vm.GroupedNotifications = [];\r\n vm.FirstItemOfType = [];\r\n vm.Settings = notificationSettings;\r\n vm.Settings.Mascot = mascot; \r\n vm.MaxSubItemsLength = 5; \r\n vm.SubItemsGroupWithinSecounds = 3600; \r\n vm.MaxNotificationsToShow = 1;\r\n\r\n vm.AddNotification = AddNotification;\r\n vm.StartFadeTimer = StartFadeTimer;\r\n vm.CancelFadeTimer = CancelFadeTimer;\r\n vm.GetNotifications = GetNotifications;\r\n vm.GetPositionClass = GetPositionClass;\r\n vm.SetFade = SetFade;\r\n vm.GetHighestId = GetHighestId;\r\n vm.Pulsate = Pulsate;\r\n vm.StopPulsating = StopPulsating;\r\n vm.SetProperties = SetProperties;\r\n vm.GoToItem = GoToItem;\r\n vm.IsHighlighted = IsHighlighted;\r\n vm.InitSlick = InitSlick;\r\n vm.ExistInSubitems = ExistInSubitems;\r\n vm.GroupNotifications = GroupNotifications;\r\n vm.UnHighlightAllNotifications = UnHighlightAllNotifications;\r\n vm.NavigateTo = NavigateTo;\r\n vm.SetUrlRewrite = SetUrlRewrite;\r\n\r\n //keeping this method around, useful for testing\r\n vm.FakeMessageForTesting = FakeMessageForTesting;\r\n function FakeMessageForTesting(key, msg, objectType, settings) {\r\n var content = {\r\n Key: key || 'ENGAGE_OBJECT_DONE',\r\n Message: msg || 'You have completed X',\r\n NotificationId: getRandomInt(),\r\n ObjectType: objectType || 'MediabankFile',\r\n Settings: settings,\r\n Show: true \r\n }\r\n\r\n vm.AddNotification(undefined, {\r\n Content: JSON.stringify(content)\r\n })\r\n\r\n function getRandomInt(min, max) {\r\n var min = 1000000;\r\n var max = 9999999;\r\n return Math.floor(Math.random() * (max - min) + min);\r\n }\r\n }\r\n\r\n function InitSlick() {\r\n vm.SlickLoaded = false;\r\n vm.SlickSettings = {\r\n arrows: false,\r\n dots: true,\r\n infinite: false,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n }\r\n $timeout(function () {\r\n vm.SlickLoaded = true;\r\n });\r\n }\r\n\r\n // $timeout(function() {\r\n // vm.AddNotification(null, {\r\n // NotificationId: 'abc',\r\n // HubKey: \"USER_NOTIFICATION\",\r\n // Content: JSON.stringify({\r\n // Key: \"ENGAGE_OBJECT_DONE\",\r\n // Message: \"Detta är ett test meddelande...\",\r\n // Subject: \"Test subject\"\r\n // }),\r\n // Settings: JSON.stringify({\r\n\r\n // })\r\n // });\r\n // }, 2500);\r\n\r\n function AddNotification(event, not) { \r\n \tif (!not.Content)\r\n \t\treturn;\r\n \r\n var notification = JSON.parse(not.Content); \r\n\r\n //to avoid dupes and/or missing notifications (as they also arrive via ws)\r\n if (vm.Notifications.GetItemByValue('NotificationId', notification.NotificationId) || vm.ExistInSubitems(notification.NotificationId))\r\n return;\r\n \r\n if (vm.LatestNotification?.Show) { \r\n if (!vm.Queue)\r\n vm.Queue = []; \r\n vm.Queue.push(not);\r\n return;\r\n }\r\n\r\n notification.Show = true; \r\n if (notification.Settings) {\r\n notification.Settings = JSON.parse(notification.Settings);\r\n }\r\n\r\n vm.Notifications.unshift(notification);\r\n vm.GroupNotifications();\r\n\r\n vm.StartFadeTimer(notification); \r\n vm.SetFade(false);\r\n vm.Pulsate();\r\n\r\n vm.SetUrlRewrite(notification);\r\n\r\n vm.LatestNotification = angular.copy(notification);\r\n\r\n if(notification.Settings && notification.Settings.Effect) {\r\n TriggerEffect(notification.Settings.Effect);\r\n }\r\n \r\n $timeout(function() {\r\n vm.LatestNotification.Show = false;\r\n if (vm.Queue?.length > 0) {\r\n var queueNotification = vm.Queue.shift(); \r\n $timeout(() => {\r\n vm.AddNotification(undefined, queueNotification);\r\n }, 1000);\r\n }\r\n }, 8000); \r\n }\r\n\r\n function TriggerEffect(effect) {\r\n bizEffects.Show(effect);\r\n }\r\n\r\n function GetHighestId() {\r\n var id = 0;\r\n for (var i = 0; i < vm.Notifications.length; i++) {\r\n if (vm.Notifications[i].NotificationId > id) {\r\n id = vm.Notifications[i].NotificationId;\r\n }\r\n }\r\n return id;\r\n }\r\n\r\n function StartFadeTimer(notification) {\r\n \tnotification.FadeTimer = $timeout(function () {\r\n \t\tnotification.FadeTimer = undefined;\r\n \t\tnotification.Fading = $timeout(function () {\r\n notification.Fading = undefined;\r\n notification.Show = false;\r\n \t\t}, 2000);\r\n \t}, vm.FadeTimer)\r\n }\r\n\r\n function CancelFadeTimer(notification) {\r\n \tif (notification.FadeTimer) {\r\n \t\t$timeout.cancel(notification.FadeTimer);\r\n \t\tnotification.FadeTimer = undefined;\r\n \t}\r\n \tif (notification.Fading) {\r\n \t\t$timeout.cancel(notification.Fading);\r\n \t\tnotification.Fading = undefined;\r\n \t}\r\n }\r\n\r\n function ExistInSubitems(id) { \r\n \r\n for (var g = 0; g < vm.GroupedNotifications.length; g++) {\r\n if (vm.GroupedNotifications[g].Items !== undefined) {\r\n for (var gi = 0; gi < vm.GroupedNotifications[g].Items.length; gi++) {\r\n if (vm.GroupedNotifications[g].Items[gi].NotificationId == id) {\r\n return true\r\n }\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n function GroupNotifications() {\r\n\r\n if (!vm.DoGroup) {\r\n vm.GroupedNotifications = vm.Notifications.slice();\r\n return;\r\n }\r\n\r\n var grouped = [];\r\n \r\n for (var index = 0; index < vm.Notifications.length; index++) {\r\n \r\n var not = vm.Notifications[index];\r\n var subItems = [not]; \r\n\r\n var nextIndex;\r\n var groupNext = true;\r\n for (nextIndex = index + 1; nextIndex < vm.Notifications.length && groupNext; nextIndex++) { \r\n var nextNot = vm.Notifications[nextIndex];\r\n var sameKey = not.Key === nextNot.Key;\r\n var duration = moment.duration(moment(not.DateSent).diff(nextNot.DateSent));\r\n var seconds = duration.asSeconds();\r\n var withinTime = seconds < vm.SubItemsGroupWithinSecounds;\r\n\r\n if (sameKey && withinTime && subItems.length < vm.MaxSubItemsLength) {\r\n subItems.push(nextNot);\r\n } else if(sameKey && withinTime) {\r\n //DO NOTHING... ELSE WE GROUP THE NEXT ONES BELOW...\r\n } \r\n else {\r\n groupNext = false; \r\n }\r\n } \r\n\r\n if (subItems.length == 1) {\r\n grouped.push(subItems[0]);\r\n } else {\r\n grouped.push({\r\n \"NotificationId\": not.NotificationId,\r\n \"Items\": subItems\r\n });\r\n var extraItemsAddedInMainLoop = subItems.length - 1;\r\n index = index + extraItemsAddedInMainLoop;\r\n }\r\n }\r\n vm.GroupedNotifications = grouped;\r\n console.log(vm.GroupedNotifications);\r\n\r\n vm.InitSlick();\r\n }\r\n\r\n function GetNotifications() {\r\n if (IsPortalSettingTrue('IsUserNotificationsEnabled') && bizUser.IsLoggedIn())\r\n bizNotificationService.GetLoggedInUserNotifications(10, 1).then(GetLoggedInUserNotificationsSuccess);\r\n\r\n function GetLoggedInUserNotificationsSuccess(response) {\r\n var notificationsFromServer = response.data; \r\n if (vm.Notifications.length > 0) {\r\n //to avoid dupes and/or missing notifications (as they also arrive via signalr)\r\n for (var i = 0; i < notificationsFromServer.length; i++) {\r\n if (!vm.Notifications.GetItemByValue('NotificationId', notificationsFromServer[i].NotificationId)) {\r\n vm.Notifications.push(notificationsFromServer[i]);\r\n }\r\n }\r\n } else {\r\n vm.Notifications = response.data;\r\n } \r\n\r\n vm.GroupNotifications();\r\n \r\n vm.SetProperties();\r\n vm.SetUrlRewrite();\r\n }\r\n }\r\n\r\n function GetPositionClass() {\r\n switch(vm.Settings.Position) {\r\n case notificationPosition.TOPLEFT:\r\n return \"top-left\";\r\n case notificationPosition.TOPRIGHT:\r\n return \"top-right\";\r\n case notificationPosition.BOTTOMLEFT:\r\n return \"bottom-left\";\r\n case notificationPosition.BOTTOMRIGHT:\r\n return \"bottom-right\";\r\n case notificationPosition.CENTER:\r\n return \"center\";\r\n }\r\n }\r\n\r\n function SetFade(val) {\r\n if(val === true && vm.CanFade === true && vm.ShowNotifications === false && vm.IsPulsating === false) {\r\n vm.Fade = true;\r\n }\r\n else {\r\n vm.Fade = false;\r\n $timeout(function(vm) {\r\n vm.SetFade(true);\r\n }, vm.FadeTimer, true, vm);\r\n }\r\n }\r\n\r\n function Pulsate(time) {\r\n vm.IsPulsating = true;\r\n\r\n if(~~time > 0) {\r\n $timeout(function(vm) {\r\n vm.StopPulsating();\r\n }, time, true, vm);\r\n }\r\n }\r\n\r\n function StopPulsating() {\r\n vm.IsPulsating = false;\r\n }\r\n\r\n function SetProperties() {\r\n for(var i = 0; i < vm.Notifications.length; i++) {\r\n if(vm.Notifications[i].ConfirmRead == false || moment(vm.Notifications[i].DateSent).isAfter(moment().subtract(1, 'minutes'))) {\r\n vm.Pulsate();\r\n } \r\n }\r\n }\r\n\r\n function SetUrlRewrite(item) {\r\n var engageObjectList = [];\r\n for (var i = 0; i < vm.Notifications.length; i++) {\r\n if ((!item || (item.ObjectType === vm.Notifications[i].ObjectType && item.ObjectId === vm.Notifications[i].ObjectId)) && coreEngageService.IsEngageObject(vm.Notifications[i].ObjectType)) {\r\n engageObjectList.push({\r\n Id: vm.Notifications[i].ObjectId,\r\n EngageObjectType: vm.Notifications[i].ObjectType\r\n });\r\n } \r\n }\r\n \r\n coreEngageService.GetEngageObjectsByObjectIdAndType(engageObjectList).then(GetEngageObjectsCallback);\r\n\r\n function GetEngageObjectsCallback(response) { \r\n var result = BizPartCoreHelpers.getResponseValue(response);\r\n for (var i = 0; i < result.length; i++) {\r\n if (result[i].UrlRewrite) {\r\n for (var j = 0; j < vm.Notifications.length; j++) {\r\n if (vm.Notifications[j].ObjectId === result[i].Id && coreEngageService.GetEngageObjectTypeId(vm.Notifications[j].ObjectType) === result[i].EngageObjectType) {\r\n vm.Notifications[j].ObjectUrlRewrite = result[i].UrlRewrite;\r\n if (vm.LatestNotification && vm.Notifications[j].NotificationId === vm.LatestNotification.NotificationId) {\r\n vm.LatestNotification.ObjectUrlRewrite = result[i].UrlRewrite;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n function GoToItem(item) { \r\n\r\n //The types that should be clickable for any user (as long as they have access, which should be fixed on backend)\r\n if (coreEngageService.IsEngageObject(item.ObjectType)) { \r\n if (item.ObjectUrlRewrite) {\r\n coreEngageService.RedirectToEngageObject(item.ObjectType, item.ObjectUrlRewrite);\r\n } else {\r\n coreEngageService.RedirectToEngageObject(item.ObjectType, item.ObjectId);\r\n } \r\n return;\r\n } \r\n\r\n //The types that only should be clickable for the users own items\r\n if ((item.Settings && ~~item.Settings.ObjectOwnerUserId > 0 && item.Settings.ObjectOwnerUserId === $rootScope.LoggedInUser.Id)) { \r\n switch (item.ObjectType) {\r\n case 'GOAL':\r\n vm.NavigateTo(\"base.modules.goals.onegoal\", { id: ~~item.ObjectId > 0 ? ~~item.ObjectId : 'new' });\r\n break;\r\n case 'TODO':\r\n vm.NavigateTo(\"base.modules.goals.onetask\", { id: ~~item.ObjectId > 0 ? ~~item.ObjectId : 'new' });\r\n break;\r\n case 'ACTIVITY':\r\n vm.NavigateTo(\"base.modules.goals.activity\", { id: ~~item.ObjectId > 0 ? ~~item.ObjectId : 'new' });\r\n break;\r\n case 'ACTIVITYFORGOAL':\r\n vm.NavigateTo(\"base.modules.goals.activityforgoal\", { goalId: ~~item.ObjectId }); \r\n break;\r\n }\r\n }\r\n\r\n if (item.Key === \"JOURNEY_COMPLETED\") {\r\n if (item.Settings && item.Settings.Data && !item.Settings.Data.FeedbackLink) return;\r\n bizJourneyService.GetJourneySettings().then(GetJourneySettingsCallback);\r\n function GetJourneySettingsCallback(response) {\r\n var journeySettings = response.data;\r\n var feedbackPage = journeySettings.FeedbackPage;\r\n if (feedbackPage) {\r\n vm.NavigateTo(\"base.modules.cms\", { id: feedbackPage, params: { objectKey: 'JOURNEY', objectId: ~~item.ObjectId} });\r\n } \r\n } \r\n }\r\n }\r\n\r\n function NavigateTo(state, params) { \r\n $state.go(state, params);\r\n //vm.ShowNotifications = false;\r\n //if(vm.LatestNotification) {\r\n // vm.LatestNotification.Show = false; \r\n //}\r\n }\r\n\r\n function UnHighlightAllNotifications() {\r\n for (var i = 0; i < vm.SortedNotifications.length; i++) {\r\n vm.SortedNotifications[i].NoHighlight = true;\r\n }\r\n }\r\n\r\n function IsHighlighted(index) {\r\n if (vm.MaxNotificationsToShow <= 1) {\r\n return false;\r\n }\r\n\r\n if (vm.SortedNotifications) {\r\n if (vm.SortedNotifications[index].NoHighlight) {\r\n return false;\r\n }\r\n\r\n if (index == 0) \r\n return true;\r\n\r\n if (index > 0 && vm.SortedNotifications[index].Key !== undefined) { \r\n var duration = moment.duration(moment(vm.SortedNotifications[0].DateSent).diff(vm.SortedNotifications[index].DateSent));\r\n var seconds = duration.asSeconds(); \r\n\r\n if (seconds < 120) \r\n return true;\r\n }\r\n \r\n }\r\n\r\n return false;\r\n }\r\n\r\n function Init() {\r\n $rootScope.$on(\"HUB_USER_NOTIFICATION\", vm.AddNotification);\r\n\r\n vm.GetNotifications();\r\n\r\n $timeout(function(vm) {\r\n vm.SetFade(true);\r\n }, vm.FadeTimer, true, vm);\r\n\r\n //$timeout(() => {\r\n // var settings = {\r\n // EmojiIcon: '🥳'\r\n // };\r\n // vm.FakeMessageForTesting(undefined, undefined, undefined, JSON.stringify(settings));\r\n //}, 2000);\r\n\r\n //$timeout(() => {\r\n // vm.FakeMessageForTesting(undefined, \"Another new message\");\r\n //}, 5000);\r\n }\r\n\r\n vm.$onInit = Init;\r\n\r\n //hide notifications when going to another page\r\n $transitions.onStart({}, function () { \r\n vm.ShowNotifications = false; \r\n if(vm.LatestNotification) {\r\n vm.LatestNotification.Show = false; \r\n }\r\n }); \r\n }\r\n\r\n return directive;\r\n\t}\r\n\r\n\tfunction bizNotificationService($http, $mdDialog, $mdToast) {\r\n\r\n this.GetLoggedInUserNotifications = function(max, page) {\r\n return $http.get(siteRootPath + 'api/user/GetLoggedInUserNotifications?' + $.param({ max: max, page: page }));\r\n };\r\n\r\n\t\tthis.CustomNotificationHandlers = {\r\n\t\t\t\"POPUP\": {\r\n\t\t\t\tEnabled: true,\r\n\t\t\t\tHandler: PopupNotificationHandler\r\n\t\t\t},\r\n\t\t\t\"CUSTOM\": {\r\n\t\t\t\tEnabled: true,\r\n\t\t\t\tHandler: CustomNotificationHandler\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction CustomNotificationHandler(notification) {\r\n\t\t\tvar template = '' + notification.Message + '';\r\n\t\t\t$mdToast.show({\r\n\t\t\t\tposition: 'top center',\r\n\t\t\t\tparent: angular.element(document.body),\r\n\t\t\t\thideDelay: 20000,\r\n\t\t\t\ttemplate: template,\r\n\t\t\t\tautoWrap: true,\r\n\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\tcontroller: function ($mdToast) {\r\n\t\t\t\t\tvar vm = this;\r\n\t\t\t\t\tvm.close = function () {\r\n\t\t\t\t\t\t$mdToast.hide();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction PopupNotificationHandler(notification) {\r\n\t\t\t$mdDialog.show({\r\n\t\t\t\tparent: angular.element(document.body),\r\n\t\t\t\tclickOutsideToClose: true,\r\n\t\t\t\ttemplateUrl: siteRootPath + \"FrontEnd/Core/Directives/Views/PopupNotification.html\",\r\n\t\t\t\tcontrollerAs: \"vm\",\r\n\t\t\t\tbindToController: true,\r\n\t\t\t\tmultiple: true,\r\n\t\t\t\tskipHide: true,\r\n\t\t\t\tcontroller: PopupNotificationController,\r\n\t\t\t\tlocals: {\r\n\t\t\t\t\tNotification: notification\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tfunction PopupNotificationController() {\r\n\t\t\t\tvar vm = this;\r\n\r\n\t\t\t\tvm.Close = Close;\r\n\r\n\t\t\t\tfunction Close() {\r\n\t\t\t\t\t$mdDialog.hide();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').directive('bizOpenLoginBtns', bizOpenLoginBtnsDirective);\r\n\r\n bizOpenLoginBtnsDirective.$inject = [\"bizCore\", \"$filter\", \"loginService\"];\r\n\r\n function bizOpenLoginBtnsDirective(bizCore, $filter, loginService) {\r\n var directive = {\r\n restrict: \"E\",\r\n scope: {\r\n openIdOnly: \"@?\"\r\n },\r\n templateUrl: bizCore.getView('core.directives.openidloginbtns', \"FrontEnd/Core/Directives/Views/OpenIdLoginBtns.html\"),\r\n bindToController: true,\r\n controller: bizOpenLoginBtnsController,\r\n controllerAs: \"vm\"\r\n };\r\n\r\n function bizOpenLoginBtnsController() {\r\n var vm = this;\r\n\r\n \r\n vm.GoToOpenIdLogin = GoToOpenIdLogin; \r\n\r\n function GoToOpenIdLogin(provider) {\r\n window.location.href = $filter('siteroot')('~/OpenIdLogin/' + provider.Id);\r\n }\r\n\r\n vm.$onInit = function () { \r\n loginService.GetActiveOpenIdProviders().then(GetActiveOpenIdProvidersSuccess);\r\n\r\n function GetActiveOpenIdProvidersSuccess(response) {\r\n vm.Providers = response.data;\r\n } \r\n }\r\n }\r\n\r\n return directive;\r\n }\r\n})(window.angular);","(function(angular) {\r\n angular.module('bizPartEngage').directive('bizProfileMenu', bizProfileMenuDirective);\r\n\r\n bizProfileMenuDirective.$inject = [\"bizCore\"];\r\n\r\n function bizProfileMenuDirective(bizCoreProvider) {\r\n var directive = {\r\n restrict: \"E\",\r\n scope: true,\r\n templateUrl: bizCoreProvider.getView('core.directives.profilemenu', \"FrontEnd/Core/Directives/Views/ProfileMenu.html\"),\r\n controller: bizCoreProvider.getController('core.directives.profilemenu', bizProfileMenuController),\r\n controllerAs: \"vm\"\r\n };\r\n\r\n bizProfileMenuController.$inject = [\"$rootScope\"];\r\n\r\n function bizProfileMenuController($rootScope) {\r\n \tvar vm = this;\r\n\t\t\tvm.IsActive = IsActive;\r\n\r\n\t\t\tfunction IsActive(m) {\r\n\t\t\t\tif(m.State === $rootScope.CurrentState.name || m.State === $rootScope.CurrentState.data.parentState)\r\n\t\t\t\t\treturn true;\r\n\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n \t$rootScope.Initialized.then(function () {\r\n \t\tvm.States = [{\r\n \t\t\tPhrase: \"CORE.MYPAGE\",\r\n \t\t\tState: \"base.core.profile.home\",\r\n \t\t\tIcon: \"fa fa-user\"\r\n \t\t}, {\r\n \t\t\tPhrase: \"CORE.LEADERBOARDS\",\r\n \t\t\tState: \"base.core.profile.leaderboards\",\r\n \t\t\tIcon: \"fa fa-bar-chart\",\r\n \t\t\tEnabled: $rootScope.HasModuleAccess('LEVEL_SYSTEM', $rootScope.AccessTypeRight.Read),\r\n \t\t\tPortalSettingForEnable: \"IsLevelSystemEnabled\"\r\n \t\t}, {\r\n \t\t\tPhrase: \"CORE.MYCOLLEAGUES\",\r\n \t\t\tState: \"base.core.profile.colleagues\",\r\n \t\t\tIcon: \"fa fa-users\",\r\n \t\t\tEnabled: $rootScope.HasModuleAccess('UNITS', $rootScope.AccessTypeRight.Read),\r\n \t\t\tPortalSettingForEnable: \"IsUnitEnabled\"\r\n \t\t}, {\r\n Phrase: \"CORE.WELCOMEPAGE\",\r\n \t\t\tState: \"base.core.welcome\",\r\n \t\t\tIcon: \"fas fa-door-open\"\r\n }, {\r\n Phrase: \"CORE.MYSETTINGS\",\r\n State: \"base.core.profile.settings\",\r\n Icon: \"fa fa-cog\"\r\n }];\r\n \t})\r\n }\r\n\r\n return directive;\r\n }\r\n})(window.angular);\r\n","(function (angular) {\r\n\tangular.module('bizPartEngage').directive('bizSearch', bizSearchDirective);\r\n\tangular.module('bizPartEngage').service('bizSearchService', bizSearchService);\r\n\r\n\tbizSearchDirective.$inject = [\"bizCore\"];\r\n\tbizSearchService.$inject = [\"$state\"];\r\n\r\n function bizSearchDirective(bizCoreProvider) {\r\n var directive = {\r\n restrict: \"E\",\r\n scope: {\r\n \tReferrerType: \"@referrerType\",\r\n\t\t\t\tReferrerId: \"@referrerId\",\r\n\t\t\t\tExpand: \"=?expand\"\r\n },\r\n templateUrl: bizCoreProvider.getView('core.directives.search', \"FrontEnd/Core/Directives/Views/Search.html\"),\r\n controller: bizSearchController,\r\n controllerAs: \"vm\",\r\n bindToController: true\r\n }\r\n\r\n bizSearchController.$inject = [\"core.users.service\", \"bizCoreService\", \"bizSearchService\", \"$state\"];\r\n\r\n function bizSearchController(userService, bizCoreService, bizSearchService, $state) {\r\n \tvar vm = this;\r\n\t\t\tvm.MaxHits = 20;\r\n\t\t\tvm.CanSearch = true;\r\n\r\n \tvm.Search = Search; \t\r\n \tvm.GoToResult = GoToResult;\r\n \tvm.GoToResults = GoToResults;\r\n\r\n \tvm.HitsIncement = 4;\r\n\r\n \tfunction GoToResults() {\r\n \t\tvm.Expand = false;\r\n\r\n \t\tif (!vm.SearchText)\r\n \t\t\treturn;\r\n\r\n \t\t$state.go('base.modules.search', { query: vm.SearchText});\r\n \t}\r\n\r\n \tfunction Search() {\r\n \t\tif (!vm.SearchText || vm.SearchText.length < 3 || !vm.CanSearch)\r\n \t\t return;\r\n\r\n \t\tif (!vm.SearchIndexList) {\r\n \t\t vm.SearchIndexList = [\r\n { Index: 2, SearchIndexExternalName: \"Page\", TotalHits: vm.HitsIncement },\r\n { Index: 3, SearchIndexExternalName: \"Blog\", TotalHits: vm.HitsIncement },\r\n { Index: 4, SearchIndexExternalName: \"Dictionary\", TotalHits: vm.HitsIncement },\r\n { Index: 5, SearchIndexExternalName: \"Video\", TotalHits: vm.HitsIncement },\r\n \t\t { Index: 6, SearchIndexExternalName: \"Educations\", TotalHits: vm.HitsIncement }];\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tvm.CanSearch = false;\r\n\t\t\t\tconsole.log('CAN SEARCH: ', vm.CanSearch);\r\n\t\t\t\tsetTimeout(function(vm) {\r\n\t\t\t\t\tvm.CanSearch = true;\r\n\t\t\t\t\tconsole.log('CAN SEARCH: ', vm.CanSearch);\r\n\t\t\t\t}, 500, vm);\r\n\r\n \t\treturn bizCoreService.Search(vm.SearchText, vm.MaxHits, vm.ReferrerType, vm.ReferrerId, [], vm.SearchIndexList).then(SearchCallback);\r\n\r\n \tfunction SearchCallback(response) {\r\n \t\tvar results = BizPartCoreHelpers.getResponseValue(response, {});\r\n\r\n \t\tfor (var i = 0; i < results.IndexList.length; i++) {\r\n \t\t results.IndexList[i].Items = results.ResultItems.GetItemsByValue('Index', results.IndexList[i].Index);\r\n \t\t vm.SearchIndexList[i].TotalHits = results.IndexList[i].Items;\r\n \t\t vm.SearchIndexList[i].TotalHits = vm.HitsIncement;\r\n \t\t}\r\n\r\n \t\tvm.Results = results;\r\n \t\tvm.Expand = true;\r\n \t}\r\n \t}\r\n\r\n function GoToResult(item) {\r\n\t\t\t\tvm.Expand = false;\r\n \tbizCoreService.LogSearch(item);\r\n \twindow.location.href = bizSearchService.GetItemUrl(item);\r\n\t\t\t}\r\n\r\n\t\t\tfunction Init() {\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tthis.$onInit = Init;\r\n }\r\n\r\n return directive;\r\n }\r\n\r\n function bizSearchService($state) {\r\n \tthis.CustomIndexUrls = {};\r\n\r\n this.GetItemUrl = function (item) {\r\n if (item.State == 'base.modules.educations') {\r\n // temphack for scorm\r\n return url = $state.href(item.State);\r\n }\r\n\r\n \t\tvar url = $state.href(item.State, JSON.parse(item.StateParameters));\r\n\r\n \t\tif (!this.CustomIndexUrls[item.SearchIndexExternalName])\r\n \t\t\treturn url;\r\n\r\n \t\tfor (var i = 0; i < this.CustomIndexUrls[item.SearchIndexExternalName].length; i++) {\r\n \t\t\tif (this.CustomIndexUrls[item.SearchIndexExternalName][i].ItemIds.indexOf(item.ItemId) > -1) {\r\n \t\t\t\treturn $state.href(this.CustomIndexUrls[item.SearchIndexExternalName][i].State, this.CustomIndexUrls[item.SearchIndexExternalName][i].StateParams)\r\n\t\t\t\t\t\t+ this.CustomIndexUrls[item.SearchIndexExternalName][i].Query.replace(\"#ITEMID#\", item.ItemId);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn url;\r\n \t}\r\n }\r\n})(window.angular);\r\n","angular.module('bizPartEngage').directive('bizSimpleWelcomeGuide', bizSimpleWelcomeGuide);\r\nangular.module('bizPartEngage').directive('bizWelcomeGuideJourneySelector', bizWelcomeGuideJourneySelector);\r\nangular.module('bizPartEngage').service('bizWelcomeGuideService', bizWelcomeGuideService);\r\n\r\nbizWelcomeGuideJourneySelector.$inject = [\"bizCore\"];\r\nbizSimpleWelcomeGuide.$inject = [\"bizCore\"];\r\nbizWelcomeGuideService.$inject = [\"$http\"];\r\n\r\nfunction bizWelcomeGuideJourneySelector(bizCoreProvider) {\r\n var directive = {\r\n restrict: \"E\",\r\n scope: {\r\n \r\n },\r\n templateUrl: function (element, attr) {\r\n if (attr.templateurl) {\r\n return siteRootPath + attr.templateurl;\r\n }\r\n else {\r\n return bizCoreProvider.getView('core.directives.welcomeguidejourneyselector', \"FrontEnd/Core/Directives/Views/WelcomeGuideJourneySelector.html\");\r\n }\r\n },\r\n bindToController: true,\r\n controller: bizWelcomeGuideJourneySelectorController,\r\n controllerAs: \"vm\"\r\n };\r\n\r\n bizWelcomeGuideJourneySelectorController.$inject = [\"$rootScope\", \"bizWelcomeGuideService\", \"$q\", \"$attrs\"];\r\n\r\n function bizWelcomeGuideJourneySelectorController($rootScope, bizWelcomeGuideService, $q, $attrs) {\r\n var vm = this;\r\n vm.Init = Init;\r\n vm.SelectJourney = SelectJourney;\r\n vm.MaxJourneys = 99;\r\n\r\n function SelectJourney(journey) {\r\n vm.SelectedJourney = journey;\r\n $rootScope.$broadcast('WELCOMEGUIDE.SELECT_JOURNEY', journey);\r\n }\r\n\r\n function Init() {\r\n var qsPermFilter = getParameterByNameFromUrl('perms', location.href);\r\n var pList = [];\r\n pList.push($rootScope.JourneysInitialized);\r\n if (qsPermFilter) {\r\n qsPermFilter = decodeURI(qsPermFilter);\r\n pList.push(bizWelcomeGuideService.GetItemsByPermissionCombination(qsPermFilter));\r\n }\r\n \r\n $q.all(pList).then((result) => {\r\n var filterJourneyCollectionIds;\r\n if (result.length > 1) {\r\n filterJourneyCollectionIds = BizPartCoreHelpers.getResponseValue(result[1]);\r\n }\r\n\r\n if ($attrs.max) {\r\n vm.MaxJourneys = ~~$attrs.max;//cant get this working via scope for textviewer :(\r\n }\r\n\r\n if ($attrs.col == 2) {\r\n vm.Wrap = true;\r\n }\r\n\r\n if ($rootScope.Journeys) {\r\n vm.Journeys = [];\r\n for (var i = 0; i < $rootScope.Journeys.length; i++) {\r\n var journey = $rootScope.Journeys[i];\r\n if (!filterJourneyCollectionIds || filterJourneyCollectionIds.indexOf(journey.JourneyCollectionId) >= 0) {\r\n vm.Journeys.push(journey);\r\n } \r\n }\r\n }\r\n });\r\n }\r\n\r\n vm.$onInit = vm.Init;\r\n }\r\n\r\n return directive;\r\n}\r\n\r\nfunction bizSimpleWelcomeGuide(bizCoreProvider) {\r\n var directive = {\r\n restrict: \"E\",\r\n scope: {\r\n pages: \"=\"\r\n },\r\n templateUrl: function (element, attr) {\r\n if (attr.templateurl) {\r\n return siteRootPath + attr.templateurl;\r\n }\r\n else {\r\n return bizCoreProvider.getView('core.directives.simplewelcomeguide', \"FrontEnd/Core/Directives/Views/SimpleWelcomeGuide.html\");\r\n }\r\n }, \r\n bindToController: true,\r\n controller: bizSimpleWelcomeGuideController,\r\n controllerAs: \"vm\"\r\n };\r\n\r\n bizSimpleWelcomeGuideController.$inject = [\"$rootScope\", \"$scope\", \"$timeout\", \"core.portal.service\", \"$filter\"];\r\n\r\n function bizSimpleWelcomeGuideController($rootScope, $scope, $timeout, portalService, $filter) {\r\n var vm = this; \r\n\r\n vm.Init = Init;\r\n vm.LoadWelcomeGuide = LoadWelcomeGuide;\r\n vm.TriggerNext = TriggerNext;\r\n vm.TriggerPrev = TriggerPrev;\r\n vm.LoadCustomPlaceholders = LoadCustomPlaceholders;\r\n \r\n vm.SlickSettings = {\r\n autoplay: false, \r\n dots: false,\r\n arrows: false,\r\n infinite: false,\r\n mobileFirst: true, \r\n method: {}\r\n }\r\n\r\n function TriggerNext(last) { \r\n if (last) { \r\n $rootScope.$broadcast('WELCOMEGUIDE.COMPLETED', { SelectedJourney: vm.SelectedJourney });\r\n } else { \r\n $timeout(function () {\r\n $(\"#welcome-guide-slick\").slick('slickNext');\r\n });\r\n } \r\n }\r\n\r\n function TriggerPrev() { \r\n $timeout(function () {\r\n $(\"#welcome-guide-slick\").slick('slickPrev');\r\n });\r\n }\r\n\r\n function LoadCustomPlaceholders() { \r\n\r\n vm.CustomPlaceholders = [\r\n {\r\n Name: \"Journey selection\",\r\n Regex: /##JOURNEYSELECTION-COL(.*?)-MAX(.*?)##/gmi,\r\n Content: ''\r\n }\r\n ];\r\n }\r\n\r\n function LoadWelcomeGuide() {\r\n if (vm.pages) { \r\n InitWelcomeGuide();\r\n } else {\r\n portalService.GetPortalSetting(\"WELCOMEGUIDE_DATA\").then(GetPagesCallback); \r\n function GetPagesCallback(response) {\r\n var data = JSON.parse(response.data);\r\n vm.pages = data.pages;\r\n InitWelcomeGuide();\r\n }\r\n }\r\n\r\n function InitWelcomeGuide() { \r\n $timeout(function () {\r\n vm.SlickDataLoaded = true;\r\n });\r\n }\r\n \r\n }\r\n\r\n function Init() { \r\n vm.LoadCustomPlaceholders();\r\n vm.LogoUrl = $filter('siteroot')(portalSettings['logo']);\r\n vm.LoadWelcomeGuide();\r\n\r\n $rootScope.$on('WELCOMEGUIDE.SELECT_JOURNEY', function (e, journey) {\r\n vm.SelectedJourney = journey;\r\n }); \r\n }\r\n\r\n vm.$onInit = vm.Init;\r\n }\r\n\r\n return directive;\r\n}\r\n\r\nfunction bizWelcomeGuideService($http) {\r\n this.GetItemsByPermissionCombination = function (combStr) {\r\n return $http.get(siteRootPath + \"api/permission/GetItemsByPermissionCombination?key=JOURNEY_COLLECTION&permCombId=\" + combStr);\r\n }\r\n}","(function (angular) {\r\n angular.module('bizPartEngage').directive('bizSimulateUser', bizSimulateUser);\r\n angular.module('bizPartEngage').service('bizSimulateUserService', bizSimulateUserService);\r\n\r\n bizSimulateUser.$inject = [];\r\n bizSimulateUserService.$inject = [\"$http\"];\r\n\r\n function bizSimulateUser() {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: siteRootPath + \"FrontEnd/Core/Directives/Views/SimulateUser.html\",\r\n controllerAs: \"vm\",\r\n controller: bizSimulateUserController,\r\n bindToController: true,\r\n scope: {\r\n simulating: \"=?\",\r\n isAllowedToSimulate: \"=?\"\r\n }\r\n }\r\n }\r\n\r\n bizSimulateUserController.$inject = [\"$rootScope\", \"$window\", \"$filter\", \"bizSimulateUserService\"];\r\n\r\n function bizSimulateUserController($rootScope, $window, $filter, bizSimulateUserService) {\r\n var vm = this;\r\n\r\n vm.Init = Init; \r\n vm.CancelSimulation = CancelSimulation;\r\n vm.SimulateShadowUser = SimulateShadowUser; \r\n\r\n function CancelSimulation() {\r\n vm.Preparing = true;\r\n bizSimulateUserService.CancelSimulation().then(CancelSimulationCallback);\r\n\r\n function CancelSimulationCallback(response) {\r\n var simulation = response.data;\r\n deleteCookie(\"BizPartAuthToken\");\r\n setBizPartAuthToken(simulation.SimulatedByUserToken, simulation.SimulatedByUserId, true);\r\n deleteSessionStorage(\"SimulateDate\");\r\n $window.location.href = $filter('siteroot')('/');\r\n }\r\n }\r\n\r\n function SimulateShadowUser(key) {\r\n vm.Preparing = true;\r\n bizSimulateUserService.SimulateShadowUser(key).then(SimulateUserCallback);\r\n\r\n function SimulateUserCallback(response) {\r\n\r\n var userSession = response.data;\r\n if (!userSession)\r\n return;\r\n\r\n setBizPartAuthToken(userSession.Token, userSession.UserId);\r\n deleteLocalStorage('HasShownWelcomeGuide');\r\n $window.location.href = $filter('siteroot')('/');\r\n }\r\n }\r\n \r\n function Init() {\r\n if ($rootScope.HasModuleAccess('SHADOW_USER_SIMULATION', '10') || isSimulatingShadowUser) {\r\n bizSimulateUserService.GetShadowUserSimulationInfo().then(GetShadowUserSimulationInfoCallback);\r\n\r\n function GetShadowUserSimulationInfoCallback(response) {\r\n vm.ShadowUserSimulationInfo = response.data;\r\n }\r\n }\r\n }\r\n\r\n $rootScope.Initialized.then(vm.Init);\r\n }\r\n\r\n function bizSimulateUserService($http) {\r\n return {\r\n GetShadowUserSimulationInfo: GetShadowUserSimulationInfo,\r\n SimulateShadowUser: SimulateShadowUser,\r\n CancelSimulation: CancelSimulation\r\n };\r\n\r\n function GetShadowUserSimulationInfo() {\r\n return $http.get(siteRootPath + 'api/UserSimulation/GetShadowUserSimulationInfo', {});\r\n }\r\n\r\n function SimulateShadowUser(key) {\r\n return $http.post(siteRootPath + 'api/UserSimulation/SimulateUser', {\r\n ShadowUserConfigKey: key\r\n });\r\n }\r\n\r\n function CancelSimulation() {\r\n return $http.post(siteRootPath + 'api/User/CancelUserSimulation');\r\n } \r\n }\r\n})(window.angular);","(function (angular) {\r\n\tangular.module('bizPartEngage').directive('bizSocialShare', bizSocialShareDirective);\r\n\tangular.module('bizPartEngage').service('bizSocialShareService', bizSocialShareService);\r\n\r\n\tbizSocialShareDirective.$inject = [\"bizCore\", \"Socialshare\"];\r\n\tbizSocialShareService.$inject = [\"$http\"];\r\n\r\n\tfunction bizSocialShareDirective(bizCoreProvider, Socialshare) {\r\n\t\tvar directive = {\r\n\t\t\trestrict: \"E\",\r\n\t\t\tscope: {\r\n\t\t\t\tobjectId: \"@\",\r\n\t\t\t\tobjectType: \"@\",\r\n\t\t\t\tobjectName: \"@\",\r\n\t\t\t\tuiStateName: \"@\",\r\n\t\t\t\tuiStateParams: \"=\",\r\n\t\t\t\tobject: \"=?\",\r\n\t\t\t\tdisabledProviders: \"=?\",\r\n\t\t\t\tlikeActions: \"@\",\r\n likeActionObjectType: \"@\",\r\n useMenu: '=?'\r\n\t\t\t},\r\n\t\t\ttemplateUrl: function (element, attr) {\r\n\t\t\t\tif (attr.templateurl) {\r\n\t\t\t\t\treturn siteRootPath + attr.templateurl;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn bizCoreProvider.getView('core.directives.socialshare', \"FrontEnd/Core/Directives/Views/SocialShare.html\");\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tbindToController: true,\r\n\t\t\tcontroller: bizSocialShareController,\r\n\t\t\tcontrollerAs: \"vm\"\r\n\t\t};\r\n\r\n bizSocialShareController.$inject = [\"$rootScope\", \"$scope\", \"$state\", \"bizSocialShareService\", \"$mdToast\"];\r\n\r\n function bizSocialShareController($rootScope, $scope, $state, bizSocialShareService, $mdToast) {\r\n\t\t\tvar vm = this;\r\n\r\n\t\t\tvm.Providers = [{\r\n\t\t\t\tName: \"Twitter\",\r\n Value: \"twitter\",\r\n Icon: \"fab fa-twitter-square\"\r\n\t\t\t}, {\r\n\t\t\t\tName: \"Facebook\",\r\n Value: \"facebook\",\r\n Icon: \"fab fa-facebook-square\"\r\n\t\t\t}, {\r\n\t\t\t\tName: \"Linkedin\",\r\n Value: \"linkedin\",\r\n Icon: \"fab fa-linkedin\"\r\n\t\t\t}, {\r\n\t\t\t\tName: \"Email\",\r\n Value: \"email\",\r\n Icon: \"fas fa-envelope-square\"\r\n\t\t\t}, {\r\n\t\t\t\tName: \"Messenger\",\r\n Value: \"facebook-messenger\",\r\n Icon: \"fab fa-facebook-messenger\",\r\n\t\t\t\tMobileOnly: true\r\n\t\t\t}, {\r\n\t\t\t\tName: \"Whatsapp\",\r\n Value: \"whatsapp\",\r\n Icon: \"fab fa-whatsapp-square\",\r\n\t\t\t\tMobileOnly: true\r\n\t\t\t}\r\n\t\t\t];\r\n\r\n\t\t\tvm.Share = Share;\r\n\t\t\tvm.SetUrl = SetUrl;\r\n\t\t\tvm.GetShareUrl = GetShareUrl;\r\n\t\t\tvm.ShowShare = false;\r\n vm.PerformLikeAction = PerformLikeAction;\r\n vm.OnCopySuccess = OnCopySuccess;\r\n\r\n function OnCopySuccess(e) {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent('Länk kopierad') \r\n );\r\n }\r\n\r\n\t\t\tfunction GetShareUrl() {\r\n\t\t\t\treturn vm.Url + '?s=' + vm.TrackingId;\r\n\t\t\t}\r\n\r\n\t\t\tfunction SetUrl() {\r\n\t\t\t\tvar state = vm.uiStateName || $state.current.name;\r\n\t\t\t\tvar params = vm.uiStateParams || $state.params;\r\n\r\n\t\t\t\tvm.Url = $state.href(state, params, { absolute: true });\r\n\t\t\t}\r\n\r\n\t\t\tfunction Share(provider) {\r\n\t\t\t\tvm.Sharing = true;\r\n\r\n\t\t\t\tvar share = {\r\n\t\t\t\t\tTrackingId: vm.TrackingId,\r\n\t\t\t\t\tProvider: provider.Value,\r\n\t\t\t\t\tObjectId: vm.objectId,\r\n\t\t\t\t\tObjectType: vm.objectType,\r\n\t\t\t\t\tUrl: vm.Url\r\n\t\t\t\t}\r\n\r\n\t\t\t\tbizSocialShareService.AddSocialShare(share).then(AddSocialShareCallback);\r\n\r\n\t\t\t\tfunction AddSocialShareCallback() {\r\n\t\t\t\t\tvm.Sharing = false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvm.TrackingId = Math.random().toString(36).substr(2, 10);\r\n\t\t\t}\r\n\r\n\t\t\tfunction PerformLikeAction(action) {\r\n\t\t\t if (!action.LikeActionPerformedByUser) {\r\n\t\t\t var LikeActionModel =\r\n {\r\n LikedUserId: vm.object.CreatedByUsr,\r\n LikeKey: vm.likeActionObjectType,\r\n ObjectId: vm.object.Id,\r\n ActionId: action.Action.Id,\r\n Comment: \"Like action performed from social share directive.\"\r\n\t\t\t }\r\n\t\t\t bizSocialShareService.PerformLikeAction(LikeActionModel);\r\n\t\t\t action.LikeActionPerformedByUser = true;\r\n\t\t\t action.Count++;\r\n\t\t\t }\r\n\t\t\t}\r\n\r\n\t\t\tvm.$onInit = function () {\r\n\t\t\t\tvm.TrackingId = Math.random().toString(36).substr(2, 10);\r\n\t\t\t\tvm.SetUrl();\r\n\t\t\t\tif (!vm.object && bizSocialShareService.loadedObject) {\r\n\t\t\t\t console.log(bizSocialShareService.loadedObject);\r\n\t\t\t\t vm.object = bizSocialShareService.loadedObject;\r\n\t\t\t\t vm.likeActionObjectType = \"BLOGENTRY\";\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (vm.disabledProviders) {\r\n\t\t\t\t\tvm.Providers = vm.Providers.Where(function (provider) {\r\n\t\t\t\t\t\treturn vm.disabledProviders.indexOf(provider.Value) == -1;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn directive;\r\n\t}\r\n\r\n\tfunction bizSocialShareService($http) {\r\n\r\n\t this.loadedObject = {};\r\n\r\n\t var controllerPath = siteRootPath + \"api/SocialShareUser/\";\r\n\t var likeActionPath = siteRootPath + \"api/LikeAction/\";\r\n\r\n\t\tthis.AddSocialShare = function (share) {\r\n\t\t\treturn $http.post(controllerPath + \"AddSocialShare\", share, {\r\n\t\t\t\theaders: {\r\n\t\t\t\t\tIgnoreLoader: true\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.AddSocialShareClick = function (click) {\r\n\t\t\treturn $http.post(controllerPath + \"AddSocialShareClick\", click, {\r\n\t\t\t\theaders: {\r\n\t\t\t\t\tIgnoreLoader: true\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.PerformLikeAction = function (LikeActionModel) {\r\n\t\t return $http.post(likeActionPath + \"PerformLikeAction\", LikeActionModel, {\r\n\t\t headers: {\r\n\t\t IgnoreLoader: true\r\n\t\t }\r\n\t\t });\r\n\t\t}\r\n\t}\r\n})(window.angular);\r\n","(function (angular) {\r\n\tangular.module(\"bizPartEngage\").directive(\"bizTipSomeone\", bizTipSomeone);\r\n\r\n\tbizTipSomeone.$inject = [\"bizCore\"];\r\n\r\n\tfunction bizTipSomeone(bizCore) {\r\n\t\tvar directive = {\r\n\t\t\trestrict: 'E',\r\n\t\t\tscope: {\r\n\t\t\t\tfromMobileMenu: '@?'\r\n\t\t\t},\r\n\t\t\ttemplateUrl: bizCore.getView('core.directives.tipsomeone', \"FrontEnd/Core/Directives/Views/tip-someone.html\"),\r\n\t\t\tbindToController: true,\r\n\t\t\tcontrollerAs: 'vm',\r\n\t\t\tcontroller: bizTipSomeoneController\r\n\t\t};\r\n\r\n\t\tbizTipSomeoneController.$inject = [\"$rootScope\", \"$http\", \"$mdDialog\", \"$timeout\"];\r\n\r\n\t\tfunction bizTipSomeoneController($rootScope, $http, $mdDialog, $timeout) {\r\n\t\t\tvar vm = this;\r\n\r\n\t\t\tvm.Initialize = Initialize;\r\n\t\t\tvm.OpenPanel = OpenPanel;\r\n\t\t\t\r\n\r\n\t\t\tfunction OpenPanel() {\r\n\t\t\t\t$mdDialog.show({\r\n\t\t\t\t\tparent: angular.element(document.body),\r\n\t\t\t\t\ttemplateUrl: siteRootPath + \"FrontEnd/Core/Directives/Views/tip-someone-popup.html\",\r\n\t\t\t\t\tclickOutsideToClose: true,\r\n\t\t\t\t\tescapeToClose: true,\r\n\t\t\t\t\tcontroller: popupController,\r\n\t\t\t\t\tcontrollerAs: \"vm\",\r\n\t\t\t\t\tlocals: {\r\n\t\t\t\t\t},\r\n\t\t\t\t\tbindToController: true\r\n\t\t\t\t});\r\n\r\n\t\t\t\tpopupController.$inject = [\"$mdDialog\"];\r\n\t\t\t\tfunction popupController($mdDialog) {\r\n\t\t\t\t\tvar vm = this;\r\n\t\t\t\t\tvm.OnBtnClick = OnBtnClick;\r\n\t\t\t\t\tvm.Close = Close;\r\n\t\t\t\t\tvm.Init = Init;\r\n\r\n\t\t\t\t\tfunction Init() {\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction Close() {\r\n\t\t\t\t\t\t$mdDialog.hide();\r\n\t\t\t\t\t}\t\t\t\t\t\r\n\r\n\t\t\t\t\tfunction OnBtnClick() {\r\n\t\t\t\t\t\tif (!vm.Email) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvm.Clicked = true;\r\n\t\t\t\t\t\tvm.Error = '';\r\n\t\t\t\t\t\t$http.get(siteRootPath + 'api/User/TipSomeone', {\r\n\t\t\t\t\t\t\tparams: {\r\n\t\t\t\t\t\t\t\temail: vm.Email,\r\n\t\t\t\t\t\t\t\tmessage: vm.Message || ''\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\theaders: {\r\n\t\t\t\t\t\t\t\tIgnoreLoader: true\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}).then(function (response) {\r\n\t\t\t\t\t\t\tvar result = BizPartCoreHelpers.getResponseValue(response);\r\n\t\t\t\t\t\t\tif (result.Success) {\r\n\t\t\t\t\t\t\t\tvm.Sent = true;\r\n\t\t\t\t\t\t\t\t$timeout(() => {\r\n\t\t\t\t\t\t\t\t\tvm.Clicked = false;\r\n\t\t\t\t\t\t\t\t\tvm.Sent = false;\r\n\t\t\t\t\t\t\t\t\tvm.Email = '';\r\n\t\t\t\t\t\t\t\t\tvm.Message = '';\r\n\t\t\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tvm.Clicked = false;\r\n\t\t\t\t\t\t\t\tvm.Error = result.Message;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tInit();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (vm.fromMobileMenu) {\r\n\t\t\t\t\t$rootScope.ExpandMainMenu = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t\r\n\r\n\t\t\tfunction Initialize() {\r\n\r\n\t\t\t}\r\n\r\n\t\t\t$rootScope.Initialized.then(vm.Initialize);\r\n\t\t}\r\n\r\n\t\treturn directive;\r\n\t}\r\n})(window.angular);","(function (angular) {\r\n angular.module('bizPartEngage').directive('bizUnsubscribe', bizUnsubscribeDirective);\r\n angular.module('bizPartEngage').service('bizUnsubscribeService', bizUnsubscribeService);\r\n\r\n bizUnsubscribeDirective.$inject = [\"bizCore\"];\r\n bizUnsubscribeService.$inject = [\"$http\"]\r\n\r\n function bizUnsubscribeDirective(bizCore) {\r\n var directive = {\r\n restrict: \"E\",\r\n scope: {\r\n },\r\n templateUrl: bizCore.getView('core.directives.unsubscribe', \"FrontEnd/Core/Directives/Views/Unsubscribe.html\"),\r\n bindToController: true,\r\n controller: bizUnsubscribeController,\r\n controllerAs: \"vm\"\r\n };\r\n\r\n bizUnsubscribeController.$inject = [\"bizUnsubscribeService\"];\r\n\r\n function bizUnsubscribeController(bizUnsubscribeService) {\r\n var vm = this;\r\n\r\n vm.Logo = portalSettings['logo']; \r\n\r\n vm.Init = Init;\r\n vm.GetEncodedQS = GetEncodedQS;\r\n vm.GetCategoriesByCode = GetCategoriesByCode;\r\n vm.ConfirmCategories = ConfirmCategories;\r\n vm.GetCategoryIdsToLink = GetCategoryIdsToLink;\r\n vm.IsCategoryOptIn = IsCategoryOptIn;\r\n\r\n function IsCategoryOptIn(category) {\r\n return category.CategoryType === 1;\r\n }\r\n\r\n function GetCategoryIdsToLink() {\r\n var catIds = [];\r\n for (var i = 0; i < vm.Categories.length; i++) {\r\n var cat = vm.Categories[i];\r\n var isChecked = cat.Checked;\r\n var isOptIn = IsCategoryOptIn(cat);\r\n\r\n //the user selects which categories they are NOT interested in\r\n if (isOptIn && !isChecked) {\r\n //if category is opt in, they should be added if they have not checked\r\n catIds.push(cat.Id);\r\n } else if (!isOptIn && isChecked) {\r\n //if category is opt out, they should be added if they have checked\r\n catIds.push(cat.Id);\r\n }\r\n }\r\n return catIds;\r\n }\r\n\r\n function ConfirmCategories() {\r\n vm.Result = false;\r\n var catIds = vm.GetCategoryIdsToLink();\r\n\r\n if (vm.Code) {\r\n bizUnsubscribeService.SaveCategoriesByCode(vm.Code, catIds).then((response) => {\r\n console.log(\"SaveCategoriesByCode\", response);\r\n vm.Result = true;\r\n var result = BizPartCoreHelpers.getResponseValue(response);\r\n if (result.Success) {\r\n vm.Success = true;\r\n } else {\r\n vm.Success = false;\r\n } \r\n });\r\n } else {\r\n console.log(\"not implemented yet\");\r\n } \r\n };\r\n\r\n function GetEncodedQS() {\r\n return getParameterByNameFromUrl('c', location.href);\r\n }\r\n\r\n function GetCategoriesByCode(code) {\r\n bizUnsubscribeService.GetCategoriesByCode(code).then((response) => {\r\n var categories = BizPartCoreHelpers.getResponseValue(response, []);\r\n for (var i = 0; i < categories.length; i++) {\r\n var cat = categories[i];\r\n var isOptIn = vm.IsCategoryOptIn(cat);\r\n if (isOptIn) {\r\n //inverse opt in, as the user selects what they are NOT interested in.\r\n cat.Checked = !cat.Checked;\r\n }\r\n }\r\n vm.Categories = categories;\r\n console.log(\"categories\", vm.Categories);\r\n });\r\n }\r\n\r\n function Init() {\r\n vm.Code = vm.GetEncodedQS();\r\n console.log(\"code\", vm.Code);\r\n\r\n if (vm.Code) {\r\n GetCategoriesByCode(vm.Code);\r\n }\r\n }\r\n\r\n vm.$onInit = function () {\r\n vm.Init();\r\n }\r\n }\r\n\r\n return directive;\r\n }\r\n\r\n function bizUnsubscribeService($http) {\r\n var servicepath = siteRootPath + \"api/genericsendcategory/\";\r\n\r\n this.GetCategoriesByCode = function (code) {\r\n return $http.get(servicepath + \"GetCategoriesForUserByCode\", {\r\n params: {\r\n code: code\r\n }\r\n });\r\n }\r\n\r\n this.SaveCategoriesByCode = function (code, catIds) {\r\n return $http.post(servicepath + \"LinkCategoriesToUserByCode\", {\r\n Code: code, CategoryIds: catIds\r\n });\r\n }\r\n }\r\n\r\n})(window.angular);","(function (angular) {\r\n angular.module('bizPartEngage').service('core.completeregisterService', completeRegisterService);\r\n\r\n completeRegisterService.$inject = [\"$http\"];\r\n\r\n function completeRegisterService($http) {\r\n this.GetUserByActionGuid = function (guid) {\r\n return $http.get(siteRootPath + 'api/user/GetUserByActionGuid', { params: { guid } });\r\n };\r\n\r\n this.GetGuidInfo = function (guid) {\r\n return $http.get(siteRootPath + 'api/user/GetGuidInfo', { params: { guid } });\r\n }\r\n\r\n this.CompleteRegistration = function (guid, user, password, extCustomFields, code) {\r\n return $http.post(siteRootPath + 'api/user/CompleteRegistration', { Guid: guid, User: user, Password: password || '', ExtCustomFields: extCustomFields, Code: code || '' });\r\n };\r\n\r\n this.SendVerificationCode = function (guid, email) {\r\n return $http.post(siteRootPath + 'api/user/SendVerificationForCreateUserForUnit', { Guid: guid, Email: email });\r\n };\r\n }\r\n})(window.angular);","(function (angular) {\r\n angular.module('bizPartEngage').service('core.engage.service', engageService);\r\n\r\n engageService.$inject = [\"$http\", \"$q\", \"$state\"];\r\n\r\n function engageService($http, $q, $state) {\r\n \tvar apiPath = siteRootPath + \"api/engage/\";\r\n \tvar settingsPromise;\r\n \tvar engageJourneyPromise;\r\n\r\n \treturn {\r\n \t\tClearPromiseCache: ClearPromiseCache,\r\n \t\tGetSettings: GetSettings,\r\n\t\t\tSaveSettings: SaveSettings,\r\n \t\tGetSuggestions: GetSuggestions,\r\n \t\tGetEngageJourneys: GetEngageJourneys,\r\n \t\tGetEngageJourneysByFavoriteTags: GetEngageJourneysByFavoriteTags,\r\n GetEngageJourneysForUser: GetEngageJourneysForUser,\r\n HandleEngageObjectCancelled: HandleEngageObjectCancelled,\r\n RedirectToEngageObject: RedirectToEngageObject,\r\n IsEngageObject: IsEngageObject,\r\n GetEngageObjectsByObjectIdAndType: GetEngageObjectsByObjectIdAndType,\r\n GetEngageObjectTypeId: GetEngageObjectTypeId,\r\n GetEngageObjectTypeById: GetEngageObjectTypeById \r\n };\r\n\r\n function GetEngageObjectTypeId(objectTypeName) {\r\n var ot = objectTypeName.toLowerCase();\r\n switch (ot) {\r\n case 'html5':\r\n return 1; \r\n case 'mediabankfile':\r\n return 3; \r\n case 'blog':\r\n return 2; \r\n case 'scorm':\r\n return 4;\r\n case 'speedquiz':\r\n return 5;\r\n case 'certification':\r\n return 6;\r\n case 'mission':\r\n return 7;\r\n default:\r\n return 0;\r\n } \r\n }\r\n\r\n function GetEngageObjectTypeById(objectTypeId) {\r\n switch (objectTypeId) {\r\n case 1:\r\n return 'html5';\r\n case 3:\r\n return 'mediabankfile';\r\n case 2:\r\n return 'blog';\r\n case 4:\r\n return 'scorm';\r\n case 5:\r\n return 'speedquiz';\r\n case 6:\r\n return 'certification';\r\n case 7:\r\n return 'mission';\r\n default:\r\n return 'None';\r\n } \r\n }\r\n\r\n function IsEngageObject(objectType) {\r\n var engageObjectTypes = ['html5', 'mediabankfile', 'blog', 'scorm']; \r\n return engageObjectTypes.indexOf(objectType.toLowerCase()) >= 0; \r\n }\r\n\r\n function RedirectToEngageObject(objectType, objectId) {\r\n var ot = objectType.toLowerCase();\r\n switch (ot) {\r\n case 'html5':\r\n $state.go(\"base.modules.html5education\", { id: objectId });\r\n break;\r\n case 'mediabankfile':\r\n $state.go(\"base.modules.mediafile\", { id: objectId });\r\n break;\r\n case 'blog':\r\n $state.go(\"base.modules.blogtitle\", { title: objectId });\r\n break;\r\n case 'scorm':\r\n location.href = siteRootPath + \"SCORM/\" + objectId;\r\n break;\r\n } \r\n } \r\n\r\n \tfunction ClearPromiseCache() {\r\n \t\tsettingsPromise = null;\r\n \t\tengageJourneyPromise = null;\r\n \t}\r\n\r\n \tfunction SaveSettings(settings) {\r\n \t\treturn $http.post(apiPath + 'SaveEngageSettingsForUser', settings);\r\n \t}\r\n\r\n \tfunction GetSettings(force) {\r\n \t\tif (!force && settingsPromise) return settingsPromise;\r\n\r\n \t\tsettingsPromise = $http.get(apiPath + 'GetEngageSettingsForUser');\r\n \t\treturn settingsPromise;\r\n \t}\r\n\r\n \tfunction GetEngageJourneysForUser(force) {\r\n \t\t// if (!force && engageJourneyPromise) return engageJourneyPromise;\r\n\r\n \t\tvar deferrer = $q.defer();\r\n \t\tengageJourneyPromise = deferrer.promise;\r\n\r\n \t\t$q.all([GetEngageJourneys(false),\r\n\t\t\t\t\tGetEngageJourneysByFavoriteTags(false)])\r\n\t\t\t\t.then(function (responses) {\r\n \t\t\t\tdeferrer.resolve({\r\n \t\t\t\t\tGeneral: responses[0].data,\r\n \t\t\t\t\tCustom: responses[1].data\r\n \t\t\t\t});\r\n \t\t\t});\r\n\r\n \t\treturn engageJourneyPromise;\r\n \t}\r\n\r\n \tfunction GetEngageJourneysByFavoriteTags(deepload) {\r\n \t\treturn $http.get(apiPath + \"GetEngageJourneysByFavoriteTags\", {\r\n \t\t\tparams: {\r\n \t\t\t\tdeepload: deepload\r\n \t\t\t}\r\n \t\t});\r\n \t}\r\n\r\n \tfunction GetEngageJourneys(deepload) {\r\n \t\treturn $http.get(apiPath + \"GetEngageJourneys\", {\r\n \t\t\tparams: {\r\n\t\t\t\t\tdeepload: deepload\r\n \t\t\t}\r\n \t\t});\r\n \t}\r\n\r\n \tfunction GetSuggestions (max, page) {\r\n \t\treturn $http.get(apiPath + \"GetSuggestions\", {\r\n \t\tparams: {\r\n \t\t\tmax: max,\r\n \t\t\tpage: page\r\n \t\t}\r\n \t});\r\n }\r\n\r\n function HandleEngageObjectCancelled(objectId, objectType) { \r\n\r\n var params = {\r\n objectId: objectId,\r\n objectType: objectType \r\n };\r\n\r\n $http.post(apiPath + 'HandleEngageObjectCancelled', {}, {\r\n params: params,\r\n headers: {\r\n IgnoreLoader: true\r\n }\r\n });\r\n }\r\n\r\n function GetEngageObjectsByObjectIdAndType(objects) { \r\n\r\n return $http.post(apiPath + 'GetEngageObjectsByObjectIdAndType', objects, { \r\n headers: {\r\n IgnoreLoader: true\r\n }\r\n });\r\n }\r\n }\r\n})(window.angular);\r\n","(function(angular) {\r\n angular.module('bizPartEngage').service('core.event.statistics.service', eventStatisticsService);\r\n\r\n eventStatisticsService.$inject = [\"$http\"];\r\n\r\n function eventStatisticsService($http) {\r\n this.GetAllEventStatisticsForUser = function(page, limit) {\r\n return $http.get(siteRootPath + 'api/eventstatistics/GetAllEventStatisticsForUser?' + $.param({page: page, limit: limit}));\r\n }\r\n }\r\n //GetAllEventStatisticsForUser\r\n})(window.angular);\r\n","(function (angular) {\r\n\tangular.module('bizPartEngage').service('core.services.favorite', favoriteService);\r\n\r\n\tfavoriteService.$inject = [\"$http\"];\r\n\r\n\tfunction favoriteService($http) {\r\n\t\tvar apiPath = siteRootPath + 'api/favorites/';\r\n\r\n\t\treturn {\r\n\t\t\tIsFavorite: IsFavorite,\r\n\t\t\tAddFavorite: AddFavorite,\r\n\t\t\tRemoveFavorite: RemoveFavorite,\r\n\t\t\tGetFavorites: GetFavorites\r\n\t\t};\r\n\r\n\t\tfunction IsFavorite(objectType, objectId) {\r\n\t\t\treturn $http.get(apiPath + 'IsFavorite', {\r\n\t\t\t\tparams: {\r\n\t\t\t\t\tobjectType: objectType,\r\n\t\t\t\t\tobjectId: objectId\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction AddFavorite(objectType, objectId) {\r\n\t\t\treturn $http.post(apiPath + 'AddFavorite', {}, {\r\n\t\t\t\tparams: {\r\n\t\t\t\t\tobjectType: objectType,\r\n\t\t\t\t\tobjectId: objectId\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction RemoveFavorite(objectType, objectId) {\r\n\t\t\treturn $http.delete(apiPath + 'RemoveFavorite', {\r\n\t\t\t\tparams: {\r\n\t\t\t\t\tobjectType: objectType,\r\n\t\t\t\t\tobjectId: objectId\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction GetFavorites(deepload, objectType) {\r\n\t\t\tvar params = {\r\n\t\t\t\tdeepload: deepload\r\n\t\t\t};\r\n\r\n\t\t\tif (objectType)\r\n\t\t\t\tparams.objectType = objectType;\r\n\r\n\t\t\treturn $http.get(apiPath + 'GetFavorites', {\r\n\t\t\t\tparams: params\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n})(window.angular);\r\n","(function (angular) {\r\n\tangular.module('bizPartEngage').service('core.forgotpasswordService', forgotpasswordService);\r\n\r\n\tforgotpasswordService.$inject = [\"$http\", \"$rootScope\", \"bizCoreService\"];\r\n\r\n\tfunction forgotpasswordService($http, $rootScope, bizCoreService) {\r\n\t\tthis.IsResetPasswordGuidValid = function (guid) {\r\n\t\t\treturn $http.get(siteRootPath + 'api/user/IsResetPasswordGuidValid', { params: { guid: guid } });\r\n\t\t}\r\n\r\n\t\tthis.SendPasswordRecoveryEmail = function (email) {\r\n\t\t\treturn $http.get(siteRootPath + 'api/user/SendPasswordRecoveryEmail', { params: { email: email } });\r\n\t\t};\r\n\r\n\t\tthis.UpdatePassword = function (guid, newPassword) {\r\n\t\t\treturn $http.post(siteRootPath + 'api/user/UpdatePasswordFromGuid', { guid: guid, newPassword: newPassword });\r\n\t\t};\r\n\r\n\t\tthis.GetBackgroundImage = function () {\r\n\t\t\treturn bizCoreService.GetPortalsetting(\"LoginBackgroundImages\").then(function (response) {\r\n\t\t\t\tvar res = response.data;\r\n\t\t\t\tvar backgroundImages = [];\r\n\r\n\t\t\t\timages = res.replace(/^(,)+|(,)+$/g, '');\r\n\r\n\t\t\t\tif (images.length > 0) {\r\n\t\t\t\t\tif (images.indexOf(',') === -1) {\r\n\t\t\t\t\t\tbackgroundImages.push(images);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tbackgroundImages = images.split(',');\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (backgroundImages.length > 0)\r\n\t\t\t\t\t\treturn backgroundImages[$rootScope.RandomBetween(0, backgroundImages.length - 1)];\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn '';\t\t\t\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').service('core.leaderboard.service', leaderboardService);\r\n\r\n leaderboardService.$inject = [\"$http\"];\r\n\r\n function leaderboardService($http) {\r\n \tvar servicePath = siteRootPath + \"api/Leaderboards/\";\r\n\r\n \tthis.GetGlobalLeaderboard = function (limit, startTime, endTime) {\r\n \t\tvar method = (startTime && endTime) ? \"GetGlobalLeaderboardBetweenDates\" : \"GetGlobalLeaderboard\";\r\n \t\treturn $http.get(servicePath + method, {\r\n \t\t\tparams: {\r\n \t\t\t\tlimit: limit,\r\n \t\t\t\tstartTime: startTime,\r\n \t\t\t\tendTime: endTime\r\n \t\t\t}\r\n \t\t});\r\n \t}\r\n\r\n \tthis.GetCountryLeaderboard = function (limit, startTime, endTime) {\r\n \t\tvar method = (startTime && endTime) ? \"GetCountryLeaderboardBetweenDates\" : \"GetCountryLeaderboard\";\r\n \t\treturn $http.get(servicePath + method, {\r\n \t\t\tparams: {\r\n \t\t\t\tlimit: limit,\r\n \t\t\t\tstartTime: startTime,\r\n \t\t\t\tendTime: endTime\r\n \t\t\t}\r\n \t\t});\r\n \t}\r\n\r\n this.GetMainUnitLeaderboard = function (limit) {\r\n return $http.get(siteRootPath + 'api/Leaderboards/GetMainUnitLeaderboard?' + $.param({ limit: limit }));\r\n };\r\n\r\n this.GetMainUnitLeaderboardBetweenDates = function (limit, startTime, endTime) {\r\n return $http.get(siteRootPath + 'api/Leaderboards/GetMainUnitLeaderboardBetweenDates?' + $.param({ limit: limit, startTime: startTime, endTime: endTime }));\r\n };\r\n\r\n this.GetUnitLeaderboard = function (limit) {\r\n return $http.get(siteRootPath + 'api/Leaderboards/GetUnitLeaderboard?' + $.param({ limit: limit }));\r\n };\r\n\r\n this.GetUnitLeaderboardBetweenDates = function (limit, startTime, endTime) {\r\n return $http.get(siteRootPath + 'api/Leaderboards/GetUnitLeaderboardBetweenDates?' + $.param({ limit: limit, startTime: startTime, endTime: endTime }));\r\n };\r\n }\r\n})(window.angular);\r\n","(function(angular) {\r\n angular.module('bizPartEngage').service('core.level.serivce', levelService);\r\n\r\n levelService.$inject = [\"$http\"];\r\n\r\n function levelService($http) {\r\n this.GetLoggedInUserExperiencePointHistory = function(max, page) {\r\n return $http.get(siteRootPath + 'api/level/GetLoggedInUserExperiencePointHistory?' + $.param({max: max, page:page}));\r\n };\r\n\r\n this.GetExperienceValueFromLastCheck = function() {\r\n return $http.get(siteRootPath + 'api/level/GetExperienceValueFromLastCheck');\r\n };\r\n\r\n this.CheckForLevelUp = function() {\r\n return $http.get(siteRootPath + 'api/level/CheckForLevelUp');\r\n };\r\n }\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').service('core.mynotes.service', myNotesService);\r\n\r\n myNotesService.$inject = [\"$http\"];\r\n\r\n function myNotesService($http) {\r\n \tvar apiPath = siteRootPath + \"api/mynotes/\";\r\n \tvar settingsPromise = [];\r\n\r\n \treturn {\r\n \t\tClearPromiseCache: ClearPromiseCache,\r\n GetMyNotes: GetMyNotes,\r\n SaveMyNotes: SaveMyNotes,\r\n SaveMyNote: SaveMyNote\r\n };\r\n\r\n \tfunction ClearPromiseCache() {\r\n \t\tsettingsPromise = [];\r\n \t}\r\n\r\n\r\n \tfunction GetMyNotes(limit, startTime, endTime, force) {\r\n var key = \"MY_NOTES\";\r\n \t\tif (!force && settingsPromise[key]) return settingsPromise[key];\r\n\r\n \t\tsettingsPromise[key] = $http.get(apiPath + 'GetMyNotes?' + $.param({limit: limit, startTime: moment(startTime).format(), endTime: moment(endTime).format()}));\r\n \t\treturn settingsPromise[key];\r\n }\r\n \r\n function SaveMyNotes(notes) {\r\n return $http.post(apiPath + \"SaveMyNotes\", notes);\r\n }\r\n\r\n function SaveMyNote(note) {\r\n return $http.post(apiPath + \"SaveMyNote\", note);\r\n }\r\n }\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').service('core.portal.service', portalService);\r\n\r\n portalService.$inject = [\"$http\", \"$q\", \"$state\"];\r\n\r\n function portalService($http, $q, $state) {\r\n \tvar apiPath = siteRootPath + \"api/portal/\";\r\n \tvar settingsPromise = [];\r\n\r\n \treturn {\r\n \t\tClearPromiseCache: ClearPromiseCache,\r\n \t\tGetPortalSetting: GetPortalSetting,\r\n };\r\n\r\n \tfunction ClearPromiseCache() {\r\n \t\tsettingsPromise = null;\r\n \t}\r\n\r\n\r\n \tfunction GetPortalSetting(key, force) {\r\n \t\tif (!force && settingsPromise[key]) return settingsPromise[key];\r\n\r\n \t\tsettingsPromise[key] = $http.get(apiPath + 'GetPortalSettingValue?' + $.param({key: key}));\r\n \t\treturn settingsPromise[key];\r\n \t}\r\n }\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').service('core.registerService', registerService);\r\n\r\n registerService.$inject = [\"$http\"];\r\n\r\n function registerService($http) {\r\n this.CreateUser = function (user, password) {\r\n return $http.post(siteRootPath + 'api/user/CreateUser', { user: user, password: password });\r\n }; \r\n }\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').service('core.session.service', sessionService);\r\n\r\n sessionService.$inject = [\"$mdDialog\", \"$interval\", \"core.users.service\", \"$q\", \"$translate\"];\r\n\r\n function sessionService($mdDialog, $interval, userService, $q, $translate) {\r\n this.SessionTime; \r\n this.SessionTimeEnd; \r\n this.ShowingWarning; \r\n this.Timer;\r\n\r\n this.Initialize = function(time) {\r\n this.SessionTime = time;\r\n this.ShowingWarning = false;\r\n this.Refresh();\r\n localStorage.setItem('BIZEXTPAGE_SESSION_TIMEOUT', time);\r\n };\r\n\r\n this.Start = function() {\r\n Timer = $interval(Tick, 5000, 0, false, this);\r\n };\r\n\r\n this.Stop = function() {\r\n $interval.cancel(Timer);\r\n };\r\n\r\n this.Refresh = function(updateBackend) {\r\n this.SessionTimeEnd = moment().add(this.SessionTime, 's');\r\n\r\n if(updateBackend) {\r\n userService.UpdateUserSession().then(function() {\r\n console.log('Session timer refreshed!');\r\n });\r\n }\r\n };\r\n\r\n this.TimeToShowWarning = function() {\r\n return moment().add(1, 'm') > this.SessionTimeEnd;\r\n };\r\n\r\n this.TimeOut = function() {\r\n return moment() > this.SessionTimeEnd;\r\n };\r\n\r\n function Tick(sessionTimer) {\r\n if (sessionTimer.TimeToShowWarning()) {\r\n if (sessionTimer.ShowingWarning == false) {\r\n $mdDialog.show($mdDialog.alert({\r\n title: $translate.instant(\"CORE.Session.Warning.Title\"),\r\n textContent: $translate.instant(\"CORE.Session.Warning.Content\"),\r\n ok: \"Ok\"\r\n })).then(function() {\r\n sessionTimer.Refresh(true);\r\n sessionTimer.ShowingWarning = false;\r\n });\r\n \r\n sessionTimer.ShowingWarning = true;\r\n }\r\n \r\n if (sessionTimer.TimeOut()) {\r\n sessionTimer.Stop(); \r\n userService.Logout();\r\n }\r\n }\r\n }\r\n }\r\n})(window.angular);\r\n","(function(angular) {\r\n angular.module('bizPartEngage').service('core.sso.serivce', ssoService);\r\n\r\n ssoService.$inject = [\"$http\"];\r\n\r\n function ssoService($http) {\r\n this.SSOCheckIfUserExists = function(ssoKey, ssoToken) {\r\n return $http.post(siteRootPath + 'api/loginapi/SSOCheckIfUserExists', {SSOKey: ssoKey, SSOToken: ssoToken});\r\n };\r\n\r\n this.Login = function(ssoKey, ssoToken) {\r\n return $http.post(siteRootPath + 'api/loginapi/SSO', {SSOKey: ssoKey, SSOToken: ssoToken});\r\n };\r\n\r\n this.RegisterSSOUser = function(ssoKey, ssoToken, userName, firstName, lastName, email, countryIsoCode) {\r\n return $http.post(siteRootPath + 'api/loginapi/RegisterSSOUser', \r\n {\r\n SSOKey: ssoKey, \r\n SSOToken: ssoToken,\r\n UserName: userName,\r\n FirstName: firstName,\r\n LastName: lastName,\r\n Email: email,\r\n CountryIsoCode: countryIsoCode\r\n });\r\n };\r\n }\r\n})(window.angular);\r\n","(function (angular) {\r\n\tangular.module('bizPartEngage').service('core.terms.service', termsService);\r\n\r\n\ttermsService.$inject = [\"$http\"];\r\n\r\n\tfunction termsService($http) {\r\n\t\tthis.GetSystemTerms = function (unitId) {\r\n\t\t\treturn $http.get(siteRootPath + 'api/Terms/GetSystemTerms', {\r\n\t\t\t\tparams: {\r\n\t\t\t\t\tincludeAccepted: true\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\t}\r\n})(window.angular);\r\n","(function(angular){\r\n angular.module('bizPartEngage').service('core.unit.service', unitService);\r\n\r\n unitService.$inject = [\"$http\"];\r\n\r\n function unitService($http) {\r\n this.GetUsersInUnit = function(unitId) {\r\n return $http.get(siteRootPath + 'api/Unit/GetUsersInUnit?' + $.param({unitId: unitId}));\r\n };\r\n\r\n this.GetUnitsByParent = function(parentId) {\r\n return $http.get(siteRootPath + 'api/Unit/GetUnitsByParent?' + $.param({ parentId: parentId }));\r\n };\r\n }\r\n})(window.angular);\r\n","(function(angular) {\r\n angular.module('bizPartEngage').service('core.users.service', userService);\r\n\r\n userService.$inject = [\"$http\", \"$window\"];\r\n\r\n function userService($http, $window) {\r\n this.Logout = function() {\r\n $http.post(siteRootPath + \"api/user/logout\", {}).then(function(response) {\r\n deleteStorage(\"BizPartAuthToken\");\r\n if (response.data) {\r\n window.location.href = response.data;\r\n } else {\r\n window.location.href = siteRootPath;\r\n }\r\n \r\n //$window.location.reload();\r\n }, function() {\r\n //PROBABLY ALREADY LOGGED OUT...\r\n \twindow.location.href = siteRootPath;\r\n //$window.location.reload();\r\n });\r\n };\r\n\r\n this.AddUserActivity = function (url, refererUrl, activityGroup) {\r\n return $http.post(siteRootPath + 'api/user/AddUserActivity', {url: url,refererUrl: refererUrl,activityGroup: activityGroup});\r\n };\r\n\r\n this.GetLoggedInUserDefaultLevelProgress = function() {\r\n return $http.get(siteRootPath + 'api/user/GetLoggedInUserDefaultLevelProgress');\r\n };\r\n\r\n this.GetLoggedInUserNotifications = function(max, page) {\r\n return $http.get(siteRootPath + 'api/user/GetLoggedInUserNotifications?' + $.param({ max: max, page: page }));\r\n };\r\n\r\n this.SaveMyProfile = function(user) {\r\n return $http.post(siteRootPath + 'api/user/SaveMyProfile', user);\r\n };\r\n\r\n this.GetUserGenericCustomFields = function (user) {\r\n return $http.get(siteRootPath + 'api/user/GetUserGenericCustomFields');\r\n };\r\n\r\n this.GetCustomFieldValue = function (customFieldId, objectId) {\r\n return $http.get(siteRootPath + 'api/user/GetCustomFieldValue?' + $.param({ customFieldId: customFieldId, objectId: objectId }));\r\n };\r\n\r\n this.UpdateCustomFieldValue = function (customFieldId, objectId, value) {\r\n \treturn $http.get(siteRootPath + 'api/user/UpdateCustomFieldValue?' + $.param({ customFieldId: customFieldId, objectId: objectId, value: value }));\r\n };\r\n\r\n this.UpdateMyPassword = function(password, oldPassword) {\r\n \treturn $http.post(siteRootPath + 'api/user/UpdateMyPassword', {password: password, oldPassword: oldPassword });\r\n };\r\n\r\n this.DeleteMe = function() {\r\n return $http.delete(siteRootPath + 'api/user/DeleteMe');\r\n }\r\n\r\n this.UpdateAllowSMSForLoggedInUser = function(allowSms) {\r\n return $http.post(siteRootPath + 'api/user/UpdateAllowSMSForLoggedInUser', allowSms);\r\n };\r\n\r\n this.GetLoggedInUserSetting = function(key) {\r\n return $http.get(siteRootPath + 'api/user/GetLoggedInUserSetting?' + $.param({key: key}));\r\n };\r\n\r\n this.GetLoggedInUserSettingAsBoolean = function(key) {\r\n return $http.get(siteRootPath + 'api/user/GetLoggedInUserSettingAsBoolean?' + $.param({ key: key }));\r\n };\r\n\r\n this.GetLoggedInUser = function () {\r\n return $http.get(siteRootPath + 'api/user/GetLoggedInUser');\r\n };\r\n\r\n this.GetLoggedInUserFromDB = function () {\r\n return $http.get(siteRootPath + 'api/user/GetUser');\r\n };\r\n\r\n this.GetProfile = function () {\r\n return $http.get(siteRootPath + 'api/profile/GetProfile');\r\n };\r\n\r\n this.GetProfileRestrictedFields = function () {\r\n return $http.get(siteRootPath + 'api/profile/GetRestrictedFields');\r\n };\r\n\r\n this.SaveBasicProfile = function(user) {\r\n \treturn $http.post(siteRootPath + 'api/profile/SaveBasicProfile', user);\r\n };\r\n\r\n this.SaveCustomProfileData = function(user) {\r\n \treturn $http.post(siteRootPath + 'api/profile/SaveCustomProfileData', user);\r\n };\r\n\r\n this.UpdateUserSession = function() {\r\n return $http.get(siteRootPath + \"api/user/UpdateUserSession\");\r\n };\r\n \r\n this.GetUserLogStats = function () {\r\n return $http.get(siteRootPath + 'api/EngageObjectStatistics/GetUserLogStats');\r\n };\r\n this.GetUserTypes = function () {\r\n return $http.get(siteRootPath + 'api/usertype/GetUserTypes');\r\n }\r\n this.SubscribeToNewsletter = function (key, email) {\r\n return $http.get(siteRootPath + 'api/user/SubscribeToNewsletter?' + $.param({ key: key, email: email }));\r\n };\r\n this.GetGenders = function () {\r\n return $http.get(siteRootPath + 'api/user/GetGenders');\r\n };\r\n }\r\n})(window.angular);\r\n","(function(angular) {\r\n angular.module('bizPartEngage').config(configCoreFunction);\r\n configCoreFunction.$inject = [\"$stateProvider\", \"bizUserProvider\", \"bizCoreProvider\", \"$translatePartialLoaderProvider\"];\r\n function configCoreFunction($stateProvider, bizUserProvider, bizCoreProvider, $translatePartialLoaderProvider) {\r\n\r\n $stateProvider\r\n .state('base.core', {\r\n template: '
'\r\n })\r\n .state('base.core.profile', {\r\n url: \"/profile\",\r\n templateUrl: bizCoreProvider.getView('base.core.profile', 'FrontEnd/Core/Views/profile.html')\r\n })\r\n .state('base.core.profile.home', {\r\n url: \"/home\",\r\n templateUrl: bizCoreProvider.getView('base.core.profile.home', 'FrontEnd/Core/Views/mypage.html'),\r\n controller: bizCoreProvider.getController('base.core.profile.home', 'core.mypage'),\r\n controllerAs: \"vm\",\r\n data: {\r\n rule: function () { return bizUserProvider.IsLoggedIn(); },\r\n parentState: \"base.core.profile\"\r\n }\r\n })\r\n .state('base.core.profile.settings', {\r\n url: \"/settings\",\r\n templateUrl: bizCoreProvider.getView('base.core.profile.settings', 'FrontEnd/Core/Views/mysettings.html'),\r\n controller: bizCoreProvider.getController('base.core.profile.settings', 'core.mysettings'),\r\n controllerAs: \"vm\",\r\n data: {\r\n rule: function () { return bizUserProvider.IsLoggedIn(); },\r\n parentState: \"base.core.profile\"\r\n }\r\n })\r\n .state('base.core.profile.security', {\r\n url: \"/security\",\r\n templateUrl: bizCoreProvider.getView('base.core.profile.security', 'FrontEnd/Core/Views/mysecurity.html'),\r\n controller: bizCoreProvider.getController('base.core.profile.security', 'core.mysecurity'),\r\n controllerAs: \"vm\",\r\n data: {\r\n rule: function () { return bizUserProvider.IsLoggedIn(); },\r\n parentState: \"base.core.profile.settings\"\r\n }\r\n })\r\n .state('base.core.profile.customsettings', {\r\n url: \"/customsettings\",\r\n templateUrl: bizCoreProvider.getView('base.core.profile.customsettings', 'FrontEnd/Core/Views/mycustomsettings.html'),\r\n controller: bizCoreProvider.getController('base.core.profile.customsettings', 'core.mycustomsettings'),\r\n controllerAs: \"vm\",\r\n data: {\r\n rule: function () { return bizUserProvider.IsLoggedIn(); },\r\n parentState: \"base.core.profile.settings\"\r\n }\r\n })\r\n .state('base.core.profile.leaderboards', {\r\n url: \"/leaderboards\",\r\n templateUrl: bizCoreProvider.getView('base.core.profile.leaderboards', 'FrontEnd/Core/Views/myleaderboards.html'),\r\n controller: bizCoreProvider.getController('base.core.profile.leaderboards', 'core.myleaderboards'),\r\n controllerAs: \"vm\",\r\n data: {\r\n rule: function () { return bizUserProvider.IsLoggedIn(); },\r\n parentState: \"base.core.profile\"\r\n }\r\n })\r\n .state('base.core.profile.colleagues', {\r\n url: \"/colleagues\",\r\n templateUrl: bizCoreProvider.getView('base.core.profile.colleagues', 'FrontEnd/Core/Views/mycolleagues.html'),\r\n controller: bizCoreProvider.getController('base.core.profile.colleagues', 'core.mycolleagues'),\r\n controllerAs: \"vm\",\r\n data: {\r\n rule: function () { return bizUserProvider.HasModuleAccess('UNITS', bizUserProvider.AccessTypeRight.Read); },\r\n parentState: \"base.core.profile\"\r\n }\r\n })\r\n .state('base.core.register', {\r\n url: \"/register\",\r\n templateUrl: bizCoreProvider.getView('core.register', 'FrontEnd/Core/Views/register.html'),\r\n controller: bizCoreProvider.getController('core.register', 'core.register'),\r\n controllerAs: \"vm\",\r\n data: {\r\n isPublic: IsPortalSettingTrue('IsCreateUserPublic')\r\n }\r\n })\r\n .state('base.core.showterms', {\r\n url: \"/terms\",\r\n templateUrl: bizCoreProvider.getView('base.core.showterms', 'FrontEnd/Core/Views/showterms.html'),\r\n controller: \"core.terms.show\",//bizCoreProvider.getController('core.terms.show', 'core.terms'),\r\n controllerAs: \"vm\"\r\n })\r\n .state('base.core.privacypolicy', {\r\n url: \"/privacy-policy\",\r\n templateUrl: bizCoreProvider.getView('base.core.privacypolicy', 'FrontEnd/Core/Views/privacypolicy.html'),\r\n data: {\r\n rule: function () { return bizUserProvider.IsLoggedIn(); }\r\n }\r\n })\r\n .state('cleanbase.privacypolicy', {\r\n url: \"/public-privacy-policy\",\r\n templateUrl: bizCoreProvider.getView('cleanbase.privacypolicy', 'FrontEnd/Core/Views/privacypolicy.html'),\r\n data: {\r\n isPublic: true\r\n }\r\n })\r\n .state('base.core.welcome', {\r\n url: \"/welcome\",\r\n templateUrl: bizCoreProvider.getView('base.core.welcome', 'FrontEnd/Core/Views/welcome.html'),\r\n controller: bizCoreProvider.getController('base.core.welcome', 'core.welcome'),\r\n controllerAs: \"vm\"\r\n })\r\n .state('base.core.themestest', {\r\n url: \"/themestest\",\r\n templateUrl: bizCoreProvider.getView('base.core.themestest', 'FrontEnd/Core/Views/themestest.html'),\r\n controller: bizCoreProvider.getController('base.core.themestest', 'core.themestest'),\r\n controllerAs: \"vm\"\r\n })\r\n .state('base.core.notifications', {\r\n url: \"/notifications\",\r\n templateUrl: bizCoreProvider.getView('base.core.notifications', 'FrontEnd/Core/Views/notifications.html'),\r\n controller: bizCoreProvider.getController('base.core.notifications', 'core.notifications'),\r\n controllerAs: \"vm\"\r\n })\r\n .state('cleanbase.exthome', {\r\n url: \"/exthome\",\r\n params: {\r\n extmode: true\r\n },\r\n templateUrl: bizCoreProvider.getView('cleanbase.exthome', 'FrontEnd/Core/Views/exthome.html'),\r\n controller: \"cleanbase.exthome\",\r\n controllerAs: \"vm\",\r\n data: {\r\n rule: function () { return bizUserProvider.IsLoggedIn(); }\r\n }\r\n })\r\n .state('cleanbase.unsubscribe', {\r\n url: \"/unsubscribe\",\r\n templateUrl: bizCoreProvider.getView('cleanbase.unsubscribe', 'FrontEnd/Core/Views/unsubscribe.html'),\r\n controller: \"cleanbase.unsubscribe\",\r\n controllerAs: \"vm\",\r\n data: {\r\n isPublic: true\r\n }\r\n })\r\n .state('cleanbase.completeregister', {\r\n url: \"/complete-registration/:guid\",\r\n templateUrl: bizCoreProvider.getView('cleanbase.completeregister', 'FrontEnd/Core/Views/completeregister.html'),\r\n controller: \"cleanbase.completeregister\",\r\n controllerAs: \"vm\",\r\n data: {\r\n isPublic: true,\r\n onlyLoggedOut: true,\r\n }\r\n });\r\n }\r\n\r\n}(window.angular));","(function (angular) {\r\n angular.module('bizPartEngage').provider('bizEffects', effectsProvider);\r\n\r\n effectsProvider.$inject = ['fireworksProvider'];\r\n\r\n function effectsProvider(fireworks) {\r\n\r\n function Show(effectSystemName) {\r\n if (effectSystemName === 'CONFETTI') {\r\n confetti();\r\n } else if (effectSystemName === 'FIREWORKS') {\r\n fireworks.showFireworks();\r\n }\r\n } \r\n \r\n return {\r\n Show: Show, \r\n $get: function () {\r\n return {\r\n Show: Show\r\n };\r\n }\r\n }\r\n }\r\n})(window.angular);","(function (angular) {\r\n\tvar SCREEN_WIDTH = window.innerWidth;\r\n\tvar SCREEN_HEIGHT = window.innerHeight;\r\n\tvar DEFAULT_FIREWORKS_TIMEOUT = 10000;\r\n\tvar particles = [];\r\n\tvar rockets = [];\r\n\tvar MAX_PARTICLES = 400;\r\n\tvar mousePos = {\r\n\t\tx: 400,\r\n\t\ty: 300\r\n\t};\r\n\r\n\tvar canvas = document.createElement('canvas');\r\n\tvar context = canvas.getContext('2d');\r\n\r\n\tvar launchInterval;\r\n\tvar loopInterval;\r\n\r\n\tangular.module('bizPartEngage').provider('fireworks', fireworksProvider);\r\n\r\n\tfunction fireworksProvider() {\r\n\t\tvar showingFireworks = false;\r\n\t\tfunction showFireworks(timeout) {\r\n\t\t\tif(!showingFireworks) {\r\n\t\t\t\tangular.element(document.body).append('
');\r\n\t\t\t\tangular.element(\".fireworks\").append(canvas);\r\n\t\r\n\t\t\t\tcanvas.width = SCREEN_WIDTH;\r\n\t\t\t\tcanvas.height = SCREEN_HEIGHT;\r\n\t\r\n\t\t\t\tlaunchInterval = setInterval(launch, 250);\r\n\t\t\t\tloopInterval = setInterval(loop, 1000 / 50);\r\n\t\t\t\tshowingFireworks = true;\r\n\t\t\t\tsetTimeout(hideFireworks, timeout || DEFAULT_FIREWORKS_TIMEOUT);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction hideFireworks() {\r\n\t\t\tangular.element(\".fireworks\").addClass(\"fade\");\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tclearInterval(launchInterval);\r\n\t\t\t\tclearInterval(loopInterval);\r\n\t\t\t\tangular.element(\".fireworks\").remove();\r\n\t\t\t\tshowingFireworks = false;\r\n\t\t\t}, 1500)\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tshowFireworks: showFireworks,\r\n\t\t\thideFireworks: hideFireworks,\r\n\t\t\t$get: function () {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tshow: showFireworks,\r\n\t\t\t\t\thide: hideFireworks\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\t//FUNCTIONS\r\n\tfunction launch() {\r\n\t\tlaunchFrom(Math.random() * SCREEN_WIDTH);\r\n\t}\r\n\r\n\tfunction launchFrom(x) {\r\n\t\tif (rockets.length < 10) {\r\n\t\t\tvar rocket = new Rocket(x);\r\n\t\t\trocket.explosionColor = Math.floor(Math.random() * 360 / 10) * 10;\r\n\t\t\trocket.vel.y = Math.random() * -3 - 4;\r\n\t\t\trocket.vel.x = Math.random() * 6 - 3;\r\n\t\t\trocket.size = 8;\r\n\t\t\trocket.shrink = 0.999;\r\n\t\t\trocket.gravity = 0.01;\r\n\t\t\trockets.push(rocket);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction loop() {\r\n\t\t// update screen size\r\n\t\tif (SCREEN_WIDTH != window.innerWidth) {\r\n\t\t\tcanvas.width = SCREEN_WIDTH = window.innerWidth;\r\n\t\t}\r\n\t\tif (SCREEN_HEIGHT != window.innerHeight) {\r\n\t\t\tcanvas.height = SCREEN_HEIGHT = window.innerHeight;\r\n\t\t}\r\n\r\n\t\t// clear canvas\r\n\t\tcontext.fillStyle = \"rgba(0, 0, 0, 0.05)\";\r\n\t\tcontext.fillRect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);\r\n\r\n\t\tvar existingRockets = [];\r\n\r\n\t\tfor (var i = 0; i < rockets.length; i++) {\r\n\t\t\t// update and render\r\n\t\t\trockets[i].update();\r\n\t\t\trockets[i].render(context);\r\n\r\n\t\t\t// calculate distance with Pythagoras\r\n\t\t\tvar distance = Math.sqrt(Math.pow(mousePos.x - rockets[i].pos.x, 2) + Math.pow(mousePos.y - rockets[i].pos.y, 2));\r\n\r\n\t\t\t// random chance of 1% if rockets is above the middle\r\n\t\t\tvar randomChance = rockets[i].pos.y < (SCREEN_HEIGHT * 2 / 3) ? (Math.random() * 100 <= 1) : false;\r\n\r\n\t\t\t/* Explosion rules\r\n - 80% of screen\r\n - going down\r\n - close to the mouse\r\n - 1% chance of random explosion\r\n */\r\n\t\t\tif (rockets[i].pos.y < SCREEN_HEIGHT / 5 || rockets[i].vel.y >= 0 || distance < 50 || randomChance) {\r\n\t\t\t\trockets[i].explode();\r\n\t\t\t} else {\r\n\t\t\t\texistingRockets.push(rockets[i]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\trockets = existingRockets;\r\n\r\n\t\tvar existingParticles = [];\r\n\r\n\t\tfor (var i = 0; i < particles.length; i++) {\r\n\t\t\tparticles[i].update();\r\n\r\n\t\t\t// render and save particles that can be rendered\r\n\t\t\tif (particles[i].exists()) {\r\n\t\t\t\tparticles[i].render(context);\r\n\t\t\t\texistingParticles.push(particles[i]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// update array with existing particles - old particles should be garbage collected\r\n\t\tparticles = existingParticles;\r\n\r\n\t\twhile (particles.length > MAX_PARTICLES) {\r\n\t\t\tparticles.shift();\r\n\t\t}\r\n\t}\r\n\r\n\t//FIREWORKS CLASSES\r\n\tfunction Particle(pos) {\r\n\t\tthis.pos = {\r\n\t\t\tx: pos ? pos.x : 0,\r\n\t\t\ty: pos ? pos.y : 0\r\n\t\t};\r\n\t\tthis.vel = {\r\n\t\t\tx: 0,\r\n\t\t\ty: 0\r\n\t\t};\r\n\t\tthis.shrink = .97;\r\n\t\tthis.size = 2;\r\n\r\n\t\tthis.resistance = 1;\r\n\t\tthis.gravity = 0;\r\n\r\n\t\tthis.flick = false;\r\n\r\n\t\tthis.alpha = 1;\r\n\t\tthis.fade = 0;\r\n\t\tthis.color = 0;\r\n\t}\r\n\r\n\tParticle.prototype.update = function () {\r\n\t\t// apply resistance\r\n\t\tthis.vel.x *= this.resistance;\r\n\t\tthis.vel.y *= this.resistance;\r\n\r\n\t\t// gravity down\r\n\t\tthis.vel.y += this.gravity;\r\n\r\n\t\t// update position based on speed\r\n\t\tthis.pos.x += this.vel.x;\r\n\t\tthis.pos.y += this.vel.y;\r\n\r\n\t\t// shrink\r\n\t\tthis.size *= this.shrink;\r\n\r\n\t\t// fade out\r\n\t\tthis.alpha -= this.fade;\r\n\t};\r\n\r\n\tParticle.prototype.render = function (c) {\r\n\t\tif (!this.exists()) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tc.save();\r\n\r\n\t\tc.globalCompositeOperation = 'lighter';\r\n\r\n\t\tvar x = this.pos.x,\r\n y = this.pos.y,\r\n r = this.size / 2;\r\n\r\n\t\tvar gradient = c.createRadialGradient(x, y, 0.1, x, y, r);\r\n\t\tgradient.addColorStop(0.1, \"rgba(255,255,255,\" + this.alpha + \")\");\r\n\t\tgradient.addColorStop(0.8, \"hsla(\" + this.color + \", 100%, 50%, \" + this.alpha + \")\");\r\n\t\tgradient.addColorStop(1, \"hsla(\" + this.color + \", 100%, 50%, 0.1)\");\r\n\r\n\t\tc.fillStyle = gradient;\r\n\r\n\t\tc.beginPath();\r\n\t\tc.arc(this.pos.x, this.pos.y, this.flick ? Math.random() * this.size : this.size, 0, Math.PI * 2, true);\r\n\t\tc.closePath();\r\n\t\tc.fill();\r\n\r\n\t\tc.restore();\r\n\t};\r\n\r\n\tParticle.prototype.exists = function () {\r\n\t\treturn this.alpha >= 0.1 && this.size >= 1;\r\n\t};\r\n\r\n\tfunction Rocket(x) {\r\n\t\tParticle.apply(this, [{\r\n\t\t\tx: x,\r\n\t\t\ty: SCREEN_HEIGHT\r\n\t\t}]);\r\n\r\n\t\tthis.explosionColor = 0;\r\n\t}\r\n\r\n\tRocket.prototype = new Particle();\r\n\tRocket.prototype.constructor = Rocket;\r\n\r\n\tRocket.prototype.explode = function () {\r\n\t\tvar count = Math.random() * 10 + 80;\r\n\r\n\t\tfor (var i = 0; i < count; i++) {\r\n\t\t\tvar particle = new Particle(this.pos);\r\n\t\t\tvar angle = Math.random() * Math.PI * 2;\r\n\r\n\t\t\t// emulate 3D effect by using cosine and put more particles in the middle\r\n\t\t\tvar speed = Math.cos(Math.random() * Math.PI / 2) * 15;\r\n\r\n\t\t\tparticle.vel.x = Math.cos(angle) * speed;\r\n\t\t\tparticle.vel.y = Math.sin(angle) * speed;\r\n\r\n\t\t\tparticle.size = 10;\r\n\r\n\t\t\tparticle.gravity = 0.2;\r\n\t\t\tparticle.resistance = 0.92;\r\n\t\t\tparticle.shrink = Math.random() * 0.05 + 0.93;\r\n\r\n\t\t\tparticle.flick = true;\r\n\t\t\tparticle.color = this.explosionColor;\r\n\r\n\t\t\tparticles.push(particle);\r\n\t\t}\r\n\t};\r\n\r\n\tRocket.prototype.render = function (c) {\r\n\t\tif (!this.exists()) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tc.save();\r\n\r\n\t\tc.globalCompositeOperation = 'lighter';\r\n\r\n\t\tvar x = this.pos.x,\r\n y = this.pos.y,\r\n r = this.size / 2;\r\n\r\n\t\tvar gradient = c.createRadialGradient(x, y, 0.1, x, y, r);\r\n\t\tgradient.addColorStop(0.1, \"rgba(255, 255, 255 ,\" + this.alpha + \")\");\r\n\t\tgradient.addColorStop(1, \"rgba(0, 0, 0, \" + this.alpha + \")\");\r\n\r\n\t\tc.fillStyle = gradient;\r\n\r\n\t\tc.beginPath();\r\n\t\tc.arc(this.pos.x, this.pos.y, this.flick ? Math.random() * this.size / 2 + this.size / 2 : this.size, 0, Math.PI * 2, true);\r\n\t\tc.closePath();\r\n\t\tc.fill();\r\n\r\n\t\tc.restore();\r\n\t};\r\n})(window.angular);","(function(angular) {\r\n angular.module('bizPartEngage').provider('pageTitleNotification', pageTitleNotificationProvider);\r\n\r\n function pageTitleNotificationProvider() {\r\n var Vars = {\r\n OriginalTitle: document.title,\r\n Interval: null\r\n };\r\n\r\n function On(notification, intervalSpeed) {\r\n Vars.Interval = setInterval(function () {\r\n document.title = (Vars.OriginalTitle == document.title)\r\n ? notification\r\n : Vars.OriginalTitle;\r\n }, (intervalSpeed) ? intervalSpeed : 1000);\r\n }\r\n\r\n function Off() {\r\n clearInterval(Vars.Interval);\r\n document.title = Vars.OriginalTitle;\r\n }\r\n\r\n return {\r\n On: On,\r\n Off: Off,\r\n $get: function() {\r\n return {\r\n On: On,\r\n Off: Off,\r\n };\r\n }\r\n }\r\n }\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').controller('modules.blogs.list', blogsListController);\r\n angular.module('bizPartEngage').controller('modules.blogs.show', blogsShowController);\r\n angular.module('bizPartEngage').controller('modules.blogs.showbytag', blogsShowByTagController);\r\n\r\n blogsListController.$inject = [\"modules.blog.service\", \"$translate\", \"MetadataService\", \"$filter\", \"bizCoreService\", \"container\", \"bizEngageService\"];\r\n blogsShowController.$inject = [\"$rootScope\", \"modules.blog.service\", \"$stateParams\", \"MetadataService\", \"container\",\r\n \"bizContainerSettings\", \"bizEngageService\", \"bizCoreService\", \"$filter\"];\r\n blogsShowByTagController.$inject = [\"$rootScope\", \"modules.blog.service\", \"$stateParams\", \"MetadataService\", \"container\", \"bizEngageService\"];\r\n\r\n function blogsListController(blogService, $translate, MetadataService, $filter, bizCoreService, container, bizEngageService) {\r\n var vm = this;\r\n\r\n vm.BlogItems = [];\r\n vm.GUISettings = {};\r\n\r\n vm.GetBlogEntries = GetBlogEntries;\r\n vm.GetSettings = GetSettings;\r\n\r\n vm.SortMostCommented = SortMostCommented;\r\n vm.SortMostLiked = SortMostLiked;\r\n\r\n function SortMostCommented() {\r\n var items = angular.copy(vm.BlogItems);\r\n vm.BlogItemsCommented = items.sort(function (a, b) { return b.Comments.length - a.Comments.length }).slice(0, 6);\r\n }\r\n\r\n function SortMostLiked() {\r\n var items = angular.copy(vm.BlogItems);\r\n vm.BlogItemsLiked = items.sort(function (a, b) { return b.LikeValue - a.LikeValue }).slice(0, 6);\r\n }\r\n\r\n function GetBlogEntries(ignoreLoader) { \r\n var bsMethod = blogService.GetNewestBlogEntries; \r\n if (journeySettings?.UseJourneyOrderInLists?.GetItemByValue('Key', 2)?.Value) {\r\n bsMethod = blogService.GetBlogEntriesByJourneyOrder;\r\n } \r\n bsMethod(0, true, ignoreLoader, undefined, -1).then(GetBlogEntriesSuccess);\r\n function GetBlogEntriesSuccess(response) {\r\n vm.ItemsFetched = true;\r\n vm.BlogItems = response.data;\r\n vm.SortMostLiked();\r\n vm.SortMostCommented();\r\n\r\n //Populate Images and description\r\n HandleBlogData();\r\n }\r\n }\r\n\r\n function HandleBlogData() {\r\n for (var i = 0; i < vm.BlogItems.length; i++) {\r\n if (vm.BlogItems[i].ContainerId > 0) {\r\n vm.BlogItems[i].Container = new container(vm.BlogItems[i].Container);\r\n var modules = vm.BlogItems[i].Container.getModules(\"Image\");\r\n if (modules && modules.length > 0) {\r\n vm.BlogItems[i].ImageUrl = modules[0].Content.ImageUrl;\r\n }\r\n else {\r\n var modules = vm.BlogItems[i].Container.getModules(\"Video\");\r\n if (modules && modules.length > 0) {\r\n if (vm.BlogItems[i].ImageUrl)\r\n vm.BlogItems[i].ImageUrl = modules[0].Content.VideoUrl.replace('~/', \"\") + \".jpg\";\r\n else\r\n vm.BlogItems[i].ImageUrl = \"https://img.youtube.com/vi/\" + modules[0].Content.YoutubeId + \"/0.jpg\";\r\n }\r\n }\r\n\r\n if (vm.BlogItems[i].Description == null || vm.BlogItems[i].Description == \"\") {\r\n var modules = vm.BlogItems[i].Container.getModules(\"Text\");\r\n if (modules != null && modules.length > 0) {\r\n vm.BlogItems[i].Description = $filter('bizPlaceholders')(modules[0].Content.Text);\r\n }\r\n }\r\n }\r\n //vm.InitSlick(vm.BlogItems[i], 2);\r\n }\r\n }\r\n\r\n function GetSettings() {\r\n bizCoreService.Admin.GetGenericSetting(\"BLOG\", \"GUI_SETTINGS\", 0).then(GetSettingsSuccess);\r\n\r\n function GetSettingsSuccess(response) {\r\n if (response.data && response.data.Value) {\r\n vm.GUISettings = JSON.parse(response.data.Value);\r\n\r\n if (vm.GUISettings.RelatedSettings && vm.SelectedItem) {\r\n vm.GUISettings.RelatedSettings.RelatedId = vm.SelectedItem.Id;\r\n }\r\n }\r\n }\r\n }\r\n\r\n function Init() {\r\n vm.GetBlogEntries();\r\n vm.GetSettings();\r\n\r\n $translate(['BLOG.META.TITLE', 'BLOG.META.DESCRIPTION']).then(function (translations) {\r\n MetadataService.setMetaTags({\r\n title: translations['BLOG.META.TITLE'],\r\n description: translations['BLOG.META.DESCRIPTION']\r\n })\r\n });\r\n\r\n bizEngageService.GetMiniJourneySetting('Blog').then(function (response) {\r\n vm.MiniJourneySettings = response;\r\n });\r\n }\r\n\r\n vm.$onInit = Init;\r\n }\r\n\r\n function blogsShowController($rootScope, blogService, $stateParams, MetadataService, container,\r\n bizContainerSettings, bizEngageService, bizCoreService, $filter) {\r\n var vm = this;\r\n vm.SelectedItem = {};\r\n vm.EventSource = \"BLOG\";\r\n bizContainerSettings.ContainerRefererType = \"BLOG\";\r\n bizContainerSettings.ContainerRefererObjectId = vm.EntryId;\r\n vm.Preview = getParameterByNameFromUrl('preview', window.location.href) === 'true';\r\n\r\n vm.EntryTitle = $stateParams.title;\r\n\r\n vm.GetOneBlogEntry = GetOneBlogEntry;\r\n vm.GetDate = GetDate;\r\n\r\n function GetDate(date) {\r\n var momentDate = moment(date);\r\n if (momentDate.isValid() && (momentDate.hours() > 0 || momentDate.minutes() > 0))\r\n return moment(date).format('dddd D MMM YYYY HH:mm');\r\n else\r\n return moment(date).format('dddd D MMM YYYY');\r\n }\r\n\r\n function GetOneBlogEntry() {\r\n vm.AllItemsFetched = true;\r\n\r\n //handle if we give it the ID instead of the urlRewrite.\r\n if (~~vm.EntryTitle > 0) { \r\n blogService.GetOneBlogEntry(~~vm.EntryTitle, vm.Preview).then(GetOneBlogEntrySuccess, GetOneBlogEntryError);\r\n } else {\r\n blogService.GetOneBlogEntryByTitle(vm.EntryTitle).then(GetOneBlogEntrySuccess, GetOneBlogEntryError);\r\n }\r\n\r\n function GetOneBlogEntryError(err) {\r\n if (err.status == 401 || err.status == 404 || err.status == 500)\r\n vm.NoAccess = true;\r\n }\r\n\r\n function GetOneBlogEntrySuccess(response) {\r\n var blogItem = response.data;\r\n vm.EntryId = blogItem.Id;\r\n bizContainerSettings.ContainerRefererObjectId = vm.EntryId;\r\n bizContainerSettings.ContainerRefererCreatedByUserId = blogItem.UserId;\r\n vm.ItemsFetched = true\r\n vm.GettingMoreItems = false;\r\n\r\n blogItem.Container = new container(blogItem.Container);\r\n bizEngageService.HandleContainer(blogItem.Container, blogItem.Id, bizEngageService.Types.Blog, 7, vm.EventSource); \r\n\r\n vm.SelectedItem = blogItem;\r\n\r\n HandleMetaData();\r\n GetSettings(); \r\n }\r\n }\r\n\r\n function HandleMetaData() {\r\n var imageModules = vm.SelectedItem.Container.getModules(\"IMAGE\");\r\n var imageUrl = \"\";\r\n if (imageModules.length > 0 && imageModules[0].Content.ImageUrl.length > 0) {\r\n imageUrl = imageModules[0].Content.ImageUrl;\r\n }\r\n\r\n var videoModules = vm.SelectedItem.Container.getModules(\"VIDEO\");\r\n var videoUrl = \"\";\r\n if (videoModules.length > 0) {\r\n videoUrl = videoModules[0].Content.VideoUrl;\r\n }\r\n\r\n MetadataService.setMetaTags({\r\n title: vm.SelectedItem.Title,\r\n description: vm.SelectedItem.Description,\r\n img: imageUrl,\r\n video: videoUrl\r\n });\r\n }\r\n\r\n function GetSettings() {\r\n bizCoreService.Admin.GetGenericSetting(\"BLOG\", \"GUI_SETTINGS\", 0).then(GetSettingsSuccess);\r\n\r\n function GetSettingsSuccess(response) {\r\n if (response.data && response.data.Value) {\r\n vm.GUISettings = JSON.parse(response.data.Value);\r\n\r\n if (vm.GUISettings.RelatedSettings) {\r\n vm.GUISettings.RelatedSettings.RelatedId = vm.SelectedItem.Id;\r\n }\r\n }\r\n }\r\n } \r\n\r\n function Init() {\r\n vm.GetOneBlogEntry();\r\n\r\n bizEngageService.GetMiniJourneySetting('Blog').then(function (response) {\r\n vm.MiniJourneySettings = response;\r\n });\r\n }\r\n\r\n vm.$onInit = Init;\r\n }\r\n\r\n function blogsShowByTagController($rootScope, blogService, $stateParams, MetadataService, container, bizEngageService) {\r\n var vm = this;\r\n vm.TagSystemName = $stateParams.tagSystemName;\r\n\r\n vm.EntriesPerPage = 10;\r\n\r\n vm.GetTag = GetTag;\r\n\r\n function GetTag(callback) {\r\n if (vm.TagSystemName) {\r\n blogService.GetTagBySystemName(vm.TagSystemName).then(GetTagSuccess);\r\n } else {\r\n blogService.GetTag(vm.TagId).then(GetTagSuccess);\r\n }\r\n\r\n function GetTagSuccess(response) {\r\n vm.SelectedTag = vm.TagSystemName ? response.data : response.data[0];\r\n vm.TagId = vm.SelectedTag.Id;\r\n vm.Tag = response.data || response.data[0];\r\n \r\n MetadataService.setMetaTags({\r\n title: vm.Tag.Name,\r\n description: vm.Tag.Description\r\n });\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n }\r\n\r\n function GetBlogEntries(ignoreLoader) {\r\n var tagIds = vm.TagId ? [vm.TagId] : undefined;\r\n blogService.GetNewestBlogEntries(0, true, ignoreLoader, tagIds, -1).then(GetBlogEntriesSuccess);\r\n function GetBlogEntriesSuccess(response) {\r\n vm.ItemsFetched = true;\r\n vm.BlogItems = response.data;\r\n vm.GettingMoreItems = false;\r\n vm.BlogItemsToShow = vm.BlogItems.slice(0, vm.EntriesPerPage);\r\n vm.AllItemsFetched = vm.TotalEntries > vm.BlogItems.length;\r\n\r\n HandleBlogPosts();\r\n }\r\n }\r\n\r\n function HandleBlogPosts() {\r\n //Populate Images and description\r\n for (var i = 0; i < vm.BlogItems.length; i++) {\r\n if (vm.BlogItems[i].ContainerId > 0) {\r\n vm.BlogItems[i].Container = new container(vm.BlogItems[i].Container);\r\n var modules = vm.BlogItems[i].Container.getModules(\"Image\");\r\n if (modules && modules.length > 0) {\r\n vm.BlogItems[i].ImageUrl = modules[0].Content.ImageUrl;\r\n }\r\n else {\r\n var modules = vm.BlogItems[i].Container.getModules(\"Video\");\r\n if (modules && modules.length > 0) {\r\n if (vm.BlogItems[i].ImageUrl)\r\n vm.BlogItems[i].ImageUrl = modules[0].Content.VideoUrl.replace('~/', \"\") + \".jpg\";\r\n else\r\n vm.BlogItems[i].ImageUrl = \"https://img.youtube.com/vi/\" + modules[0].Content.YoutubeId + \"/0.jpg\";\r\n }\r\n }\r\n\r\n if (vm.BlogItems[i].Description == null || vm.BlogItems[i].Description == \"\") {\r\n var modules = vm.BlogItems[i].Container.getModules(\"Text\");\r\n if (modules != null && modules.length > 0) {\r\n vm.BlogItems[i].Description = $filter('bizPlaceholders')(modules[0].Content.Text);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n function Init() {\r\n vm.GetTag(GetBlogEntries);\r\n\r\n bizEngageService.GetMiniJourneySetting('Blog').then(function (response) {\r\n vm.MiniJourneySettings = response;\r\n });\r\n }\r\n\r\n vm.$onInit = Init;\r\n }\r\n\r\n //DEPRECATED\r\n angular.module('bizPartEngage').controller('modules.blog', blogController);\r\n blogController.$inject = [\"modules.blog.service\", \"$stateParams\", \"$sce\", \"container\", \"$timeout\", \"$mdDialog\",\r\n \"MetadataService\", \"$filter\", \"$translate\", \"$rootScope\", \"bizContainerSettings\", \"bizSocialShareService\",\r\n \"$state\", \"bizEngageService\", \"bizCoreService\"];\r\n function blogController(blogService, $stateParams, $sce, container, $timeout, $mdDialog,\r\n MetadataService, $filter, $translate, $rootScope, bizContainerSettings, bizSocialShareService,\r\n $state, bizEngageService, bizCoreService) {\r\n\r\n var vm = this;\r\n vm.BlogItems = [];\r\n vm.EntryId = ~~$stateParams.id;\r\n vm.EntryTitle = $stateParams.title;\r\n vm.TagId = ~~$stateParams.tagId;\r\n vm.TagSystemName = $stateParams.tagSystemName;\r\n vm.GUISettings = {};\r\n\r\n vm.GetBlogEntries = GetBlogEntries;\r\n vm.TotalLikeActions = TotalLikeActions;\r\n vm.GetLikeActionsByValue = GetLikeActionsByValue;\r\n vm.PerformLikeAction = PerformLikeAction;\r\n vm.ExpandItem = ExpandItem;\r\n vm.GetImageUrl = GetImageUrl;\r\n vm.GetDate = GetDate;\r\n vm.InitSlick = InitSlick;\r\n vm.GetMoreItems = GetMoreItems;\r\n vm.GetOneBlogEntry = GetOneBlogEntry;\r\n vm.GetTimeTo = GetTimeTo;\r\n vm.StartEducation = StartEducation;\r\n vm.IsUnpublished = IsUnpublished;\r\n vm.NavigateToBlogEntry = NavigateToBlogEntry;\r\n vm.RedirectToUrlRewrite = RedirectToUrlRewrite;\r\n\r\n vm.GetRelatedBlogEntries = GetRelatedBlogEntries;\r\n vm.GetTag = GetTag;\r\n\r\n bizContainerSettings.ContainerRefererType = \"BLOG\";\r\n bizContainerSettings.ContainerRefererObjectId = vm.EntryId;\r\n\r\n vm.EntriesPerPage = 10;\r\n vm.TotalEntries = vm.EntriesPerPage;\r\n\r\n vm.AddBlogComment = AddBlogComment;\r\n\r\n vm.NotVisible = NotVisible;\r\n\r\n vm.GetSettings = GetSettings;\r\n\r\n function GetSettings() {\r\n bizCoreService.Admin.GetGenericSetting(\"BLOG\", \"GUI_SETTINGS\", 0).then(GetSettingsSuccess);\r\n\r\n function GetSettingsSuccess(response) {\r\n if (response.data && response.data.Value) {\r\n vm.GUISettings = JSON.parse(response.data.Value);\r\n\r\n if (vm.GUISettings.RelatedSettings) {\r\n vm.GUISettings.RelatedSettings.RelatedId = vm.SelectedItem.Id;\r\n }\r\n }\r\n }\r\n }\r\n\r\n function NotVisible(item) {\r\n var now = moment();\r\n var expire = moment(item.ExpireDate);\r\n var publish = moment(item.PublishDate);\r\n\r\n if (publish > now || (moment(expire).isValid() && expire < now))\r\n return true;\r\n }\r\n\r\n function GetTag(callback) {\r\n if (vm.TagSystemName) {\r\n blogService.GetTagBySystemName(vm.TagSystemName).then(GetTagSuccess);\r\n } else {\r\n blogService.GetTag(vm.TagId).then(GetTagSuccess);\r\n }\r\n\r\n function GetTagSuccess(response) {\r\n vm.SelectedTag = vm.TagSystemName ? response.data : response.data[0];\r\n vm.TagId = vm.SelectedTag.Id;\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n }\r\n\r\n function AddBlogComment(item) {\r\n if (item && $root.LoggedInUser.Id > 0)\r\n blogService.AddBlogComment(vm.NewComment, item.Id).then(AddBlogCommentSuccess);\r\n if (!item.Comments)\r\n item.Comments = [];\r\n\r\n function AddBlogCommentSuccess(response) {\r\n item.Comments.push(response.data);\r\n vm.NewComment = undefined;\r\n }\r\n }\r\n\r\n function StartEducation(education) {\r\n window.open(education.Url, '_blank');\r\n }\r\n\r\n function GetTimeTo(date) {\r\n var now = moment();\r\n var then = moment(date);\r\n var hours = moment.duration(then.diff(now)).asHours();\r\n return Math.round(hours);\r\n }\r\n\r\n function GetMoreItems() {\r\n vm.GettingMoreItems = true;\r\n vm.TotalEntries += vm.EntriesPerPage;\r\n vm.BlogItemsToShow = vm.BlogItems.slice(0, vm.TotalEntries)\r\n vm.AllItemsFetched = vm.TotalEntries > vm.BlogItems.length;\r\n vm.GettingMoreItems = false;\r\n }\r\n\r\n function GetDate(date) { \r\n return moment(date).format('dddd D MMM YYYY HH:mm');\r\n }\r\n\r\n function PerformLikeAction(item, action) {\r\n if (!action.LikeActionPerformedByUser) {\r\n blogService.AddLikeActionToBlogEntry(item.Id, action.Action.Id).then(AddLikeActionToBlogEntrySuccess);\r\n }\r\n\r\n function AddLikeActionToBlogEntrySuccess(response) {\r\n action.LikeActionPerformedByUser = true; // changed from item\r\n action.Count++;\r\n\r\n var totalCount = 0;\r\n var totalValue = 0;\r\n\r\n for (var i = 0; i < item.LikeActions.length; i++) {\r\n totalCount += item.LikeActions[i].Count;\r\n totalValue += item.LikeActions[i].Action.Value * item.LikeActions[i].Count;\r\n }\r\n\r\n item.AverageLikeValue = totalValue / totalCount;\r\n }\r\n }\r\n\r\n function IsUnpublished(entry) {\r\n if (entry && entry.PublishDate) {\r\n return moment(entry.PublishDate).isAfter(moment());\r\n }\r\n\r\n return false;\r\n }\r\n\r\n function GetImageUrl(url) {\r\n if (url) {\r\n if (url.startsWith('/'))\r\n url = url.substr(1, url.length - 1);\r\n\r\n return siteRootPath + url.replace('~', '');\r\n }\r\n }\r\n\r\n function NavigateToBlogEntry(entry) {\r\n return $state.go(\"base.modules.blogtitle\", { title: entry.UrlRewrite }); // || entry.Id\r\n }\r\n\r\n function InitSlick(entry, overrideSlides) {\r\n entry.SlickLoaded = false;\r\n entry.SlickSettings = {\r\n arrows: false,\r\n dots: true,\r\n infinite: false,\r\n slidesToShow: overrideSlides || 4,\r\n slidesToScroll: overrideSlides || 4,\r\n customPaging: function () {\r\n return '';\r\n },\r\n responsive: [{\r\n breakpoint: 960,\r\n settings: {\r\n slidesToShow: vm.SlickOverrideResponsiveSlides || 2,\r\n slidesToScroll: vm.SlickOverrideResponsiveSlides || 2\r\n }\r\n }]\r\n }\r\n $timeout(function () {\r\n entry.SlickLoaded = true;\r\n });\r\n }\r\n\r\n function GetLikeActionsByValue(entry, positive) {\r\n var result = 0;\r\n for (var i = 0; i < entry.LikeActions.length; i++) {\r\n if ((positive && entry.LikeActions[i].Action.Value > 0) || (!positive && entry.LikeActions[i].Action.Value < 0)) {\r\n result += entry.LikeActions[i].Count;\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n function TotalLikeActions(entry) {\r\n var count = 0;\r\n for (var i = 0; i < entry.LikeActions.length; i++) {\r\n count += entry.LikeActions[i].Count;\r\n }\r\n return count;\r\n }\r\n\r\n function ExpandItem(item) {\r\n vm.GetRelatedBlogEntries(item);\r\n\r\n if (item.Expanded)\r\n return;\r\n\r\n if (vm.ExpandedItem)\r\n vm.ExpandedItem.Expanded = false;\r\n\r\n vm.ExpandedItem = item;\r\n vm.ExpandedItem.Expanded = true;\r\n window.scrollTo(0, 0);\r\n\r\n bizSocialShareService.loadedObject = item;\r\n }\r\n\r\n function GetRelatedBlogEntries(item) {\r\n if (!item.RelatedEntries) {\r\n blogService.GetRelatedBlogPosts(item.Id).then(GetRelatedBlogPostsSuccess);\r\n }\r\n\r\n function GetRelatedBlogPostsSuccess(response) {\r\n item.RelatedEntries = response.data;\r\n\r\n //Populate Images...\r\n for (var i = 0; i < item.RelatedEntries.length; i++) {\r\n if (item.RelatedEntries[i].ContainerId > 0) {\r\n item.RelatedEntries[i].Container = new container(item.RelatedEntries[i].Container);\r\n var modules = item.RelatedEntries[i].Container.getModules(\"Image\");\r\n if (modules && modules.length > 0) {\r\n item.RelatedEntries[i].ImageUrl = modules[0].Content.ImageUrl;\r\n }\r\n else {\r\n var modules = item.RelatedEntries[i].Container.getModules(\"Video\");\r\n if (modules && modules.length > 0) {\r\n if (item.RelatedEntries[i].ImageUrl)\r\n item.RelatedEntries[i].ImageUrl = modules[0].Content.VideoUrl.replace('~/', \"\") + \".jpg\";\r\n else\r\n item.RelatedEntries[i].ImageUrl = \"https://img.youtube.com/vi/\" + modules[0].Content.YoutubeId + \"/0.jpg\";\r\n }\r\n }\r\n }\r\n }\r\n\r\n vm.InitSlick(item);\r\n }\r\n }\r\n\r\n\r\n function GetOneBlogEntry(entryId, entryTitle) {\r\n vm.AllItemsFetched = true;\r\n\r\n if (entryId > 0) {\r\n blogService.GetOneBlogEntry(entryId, false).then(GetOneBlogEntrySuccess);\r\n } else if (entryTitle) {\r\n blogService.GetOneBlogEntryByTitle(entryTitle, false).then(GetOneBlogEntrySuccess, GetOneBlogEntryError);\r\n }\r\n\r\n function GetOneBlogEntryError(err) {\r\n if (err.status == 401 || err.status == 404 || err.status == 500)\r\n vm.NoAccess = true;\r\n }\r\n\r\n function GetOneBlogEntrySuccess(response) {\r\n var blogItem = response.data;\r\n vm.EntryId = blogItem.Id;\r\n bizContainerSettings.ContainerRefererObjectId = vm.EntryId;\r\n bizContainerSettings.ContainerRefererCreatedByUserId = blogItem.UserId;\r\n vm.BlogItems.push(blogItem);\r\n vm.ItemsFetched = true\r\n vm.GettingMoreItems = false;\r\n\r\n blogItem.Container = new container(blogItem.Container);\r\n bizEngageService.HandleContainer(blogItem.Container, blogItem.Id, bizEngageService.Types.Blog);\r\n\r\n vm.SelectedItem = blogItem;\r\n vm.ExpandItem(blogItem);\r\n\r\n var imageModules = vm.BlogItems[0].Container.getModules(\"IMAGE\");\r\n var imageUrl = \"\";\r\n if (imageModules.length > 0 && imageModules[0].Content.ImageUrl.length > 0) {\r\n imageUrl = imageModules[0].Content.ImageUrl;\r\n }\r\n\r\n var videoModules = vm.BlogItems[0].Container.getModules(\"VIDEO\");\r\n var videoUrl = \"\";\r\n if (videoModules.length > 0) {\r\n videoUrl = videoModules[0].Content.VideoUrl;\r\n }\r\n\r\n MetadataService.setMetaTags({\r\n title: blogItem.Title,\r\n description: blogItem.Description,\r\n img: imageUrl,\r\n video: videoUrl\r\n });\r\n\r\n vm.GetBlogEntries(true);\r\n\r\n vm.GetSettings();\r\n }\r\n }\r\n\r\n function GetBlogEntries(ignoreLoader) {\r\n if (vm.TagSystemName) {\r\n GetTag(GetBlogEntriesLocal);\r\n } else {\r\n GetBlogEntriesLocal(ignoreLoader);\r\n }\r\n\r\n vm.SortMostCommented = SortMostCommented;\r\n vm.SortMostLiked = SortMostLiked;\r\n\r\n function SortMostCommented() {\r\n var items = angular.copy(vm.BlogItems);\r\n vm.BlogItemsCommented = items.sort(function (a, b) { return b.Comments.length - a.Comments.length }).slice(0, 6);\r\n }\r\n\r\n function SortMostLiked() {\r\n var items = angular.copy(vm.BlogItems);\r\n vm.BlogItemsLiked = items.sort(function (a, b) { return b.LikeValue - a.LikeValue }).slice(0, 6);\r\n }\r\n\r\n function GetBlogEntriesLocal(ignoreLoader) {\r\n var tagIds = vm.TagId ? [vm.TagId] : undefined;\r\n blogService.GetNewestBlogEntries(0, true, ignoreLoader, tagIds, -1).then(GetBlogEntriesSuccess);\r\n function GetBlogEntriesSuccess(response) {\r\n vm.ItemsFetched = true;\r\n vm.BlogItems = response.data;\r\n vm.SortMostLiked();\r\n vm.SortMostCommented();\r\n vm.GettingMoreItems = false;\r\n vm.BlogItemsToShow = vm.BlogItems.slice(0, vm.EntriesPerPage);\r\n console.log(vm.BlogItemsToShow);\r\n vm.AllItemsFetched = vm.TotalEntries > vm.BlogItems.length;\r\n\r\n //Populate Images and description\r\n for (var i = 0; i < vm.BlogItems.length; i++) {\r\n if (vm.BlogItems[i].ContainerId > 0) {\r\n vm.BlogItems[i].Container = new container(vm.BlogItems[i].Container);\r\n var modules = vm.BlogItems[i].Container.getModules(\"Image\");\r\n if (modules && modules.length > 0) {\r\n vm.BlogItems[i].ImageUrl = modules[0].Content.ImageUrl;\r\n }\r\n else {\r\n var modules = vm.BlogItems[i].Container.getModules(\"Video\");\r\n if (modules && modules.length > 0) {\r\n if (vm.BlogItems[i].ImageUrl)\r\n vm.BlogItems[i].ImageUrl = modules[0].Content.VideoUrl.replace('~/', \"\") + \".jpg\";\r\n else\r\n vm.BlogItems[i].ImageUrl = \"https://img.youtube.com/vi/\" + modules[0].Content.YoutubeId + \"/0.jpg\";\r\n }\r\n }\r\n\r\n if (vm.BlogItems[i].Description == null || vm.BlogItems[i].Description == \"\") {\r\n var modules = vm.BlogItems[i].Container.getModules(\"Text\");\r\n if (modules != null && modules.length > 0) {\r\n vm.BlogItems[i].Description = $filter('bizPlaceholders')(modules[0].Content.Text);\r\n }\r\n }\r\n }\r\n vm.InitSlick(vm.BlogItems[i], 2);\r\n }\r\n if (!vm.ExpandedItem && (vm.EntryId > 0 || vm.EntryTitle)) {\r\n var entry;\r\n if (vm.EntryId > 0) {\r\n entry = vm.BlogItems.GetItemByValue('Id', vm.EntryId);\r\n } else if (vm.EntryTitle) {\r\n entry = vm.BlogItems.GetItemByValue('UrlRewrite', vm.EntryTitle);\r\n }\r\n if (!entry)\r\n vm.GetOneBlogEntry(vm.EntryId, vm.EntryTitle);\r\n else {\r\n vm.EntryId = entry.Id;\r\n vm.SelectedItem = entry;\r\n vm.ExpandItem(entry);\r\n }\r\n }\r\n else if (vm.TagId > 0 || vm.TagSystemName) {\r\n GetTag();\r\n }\r\n else if (!vm.SelectedItem) {\r\n vm.SelectedItem = vm.BlogItems[0];\r\n }\r\n }\r\n }\r\n }\r\n\r\n function RedirectToUrlRewrite(id) {\r\n blogService.GetEntryUrlRewriteById(id).then(GetEntryUrlRewriteByIdCallback);\r\n\r\n function GetEntryUrlRewriteByIdCallback(response) {\r\n var urlRewrite = BizPartCoreHelpers.getResponseValue(response);\r\n $state.go(\"base.modules.blogtitle\", { title: urlRewrite })\r\n }\r\n }\r\n\r\n angular.element(document).ready(function () {\r\n var id = ~~$stateParams.id;\r\n if (id > 0) {\r\n\r\n vm.RedirectToUrlRewrite(id);\r\n return;\r\n }\r\n\r\n if (vm.EntryTitle) {\r\n GetOneBlogEntry(vm.EntryId, vm.EntryTitle);\r\n }\r\n else {\r\n vm.GetBlogEntries();\r\n }\r\n\r\n $translate(['BLOG.META.TITLE', 'BLOG.META.DESCRIPTION']).then(function (translations) {\r\n MetadataService.setMetaTags({\r\n title: translations['BLOG.META.TITLE'],\r\n description: translations['BLOG.META.DESCRIPTION']\r\n })\r\n });\r\n });\r\n }\r\n})(window.angular);\r\n","(function(angular) {\r\n angular.module('bizPartEngage').directive('bizModuleBlogList', bizModuleBlogListDirective);\r\n\r\n bizModuleBlogListDirective.$inject = [];\r\n\r\n function bizModuleBlogListDirective() {\r\n var directive = {\r\n restrict: \"E\",\r\n scope: {\r\n settings: \"=\"\r\n },\r\n templateUrl: function(element, attr) {\r\n if (attr.templateurl) {\r\n return siteRootPath + attr.templateurl;\r\n } else {\r\n return siteRootPath + \"FrontEnd/Modules/Blog/Views/blog-list.html\"\r\n }\r\n },\r\n controller: bizModuleBlogListController,\r\n controllerAs: \"vm\",\r\n bindToController: true\r\n };\r\n\r\n bizModuleBlogListController.$inject = [\"$rootScope\", \"modules.blog.service\", \"$timeout\", \"$sce\", \"core.services.favorite\"];\r\n\r\n function bizModuleBlogListController($rootScope, blogService, $timeout, $sce, favoritesService) {\r\n var vm = this;\r\n vm.BlogItems = [];\r\n\r\n vm.Init = Init;\r\n\r\n function Init() {\r\n var ids = [];\r\n\r\n if(!vm.settings) {\r\n console.warn('No settings provided...');\r\n return;\r\n }\r\n \r\n if(!vm.settings.Filter && vm.settings.SelectedFilter) vm.settings.Filter = vm.settings.SelectedFilter.Value;\r\n if(!vm.settings.Limit && vm.settings.SelectedLimit) vm.settings.Limit = vm.settings.SelectedLimit.Value;\r\n\r\n if(vm.settings.Filter == 'newest') {\r\n blogService.GetNewestBlogEntries(0, true, true, null, vm.settings.Limit + 1).then(GetBlogPostsSuccess);\r\n }\r\n else if(vm.settings.Filter == 'journey') {\r\n blogService.GetBlogEntriesByJourneyOrder(0, true, true, $rootScope.FavoriteTagIds, vm.settings.Limit + 1).then(GetBlogPostsSuccess);\r\n }\r\n else if(vm.settings.Filter == 'related') {\r\n blogService.GetRelatedBlogPosts(vm.settings.RelatedId).then(GetBlogPostsSuccess);\r\n }\r\n else if(vm.settings.Filter == 'mostcommented') {\r\n blogService.GetMostCommentedPosts(vm.settings.Limit).then(GetBlogPostsSuccess);\r\n }\r\n else if(vm.settings.Filter == 'mostliked') {\r\n blogService.GetMostLikedPosts(vm.settings.Limit).then(GetBlogPostsSuccess);\r\n }\r\n else if(vm.settings.Filter == 'featured') {\r\n\r\n for(var i = 0; i < vm.settings.Limit; i++) {\r\n ids.push(vm.settings.SelectedBlogs[i].Id);\r\n }\r\n \r\n blogService.GetBlogPosts(ids).then(GetBlogPostsSuccess);\r\n }\r\n\r\n function GetBlogPostsSuccess(response) {\r\n if(vm.settings.Filter == 'featured') {\r\n vm.BlogItems = [];\r\n\r\n for(var i = 0; i < ids.length; i++) {\r\n vm.BlogItems.push(response.data.GetItemByValue('Id', ids[i]));\r\n }\r\n }\r\n else {\r\n vm.BlogItems = response.data;\r\n }\r\n }\r\n }\r\n\r\n vm.$onInit = vm.Init;\r\n\r\n if (angular.version.major === 1 && angular.version.minor < 5) {\r\n vm.$onInit();\r\n }\r\n }\r\n\r\n return directive;\r\n }\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').service('modules.blog.service', blogService);\r\n\r\n blogService.$inject = [\"$http\"];\r\n\r\n function blogService($http) {\r\n \tthis.GetBlogEntries = function () {\r\n \t\treturn $http.get(siteRootPath + \"api/BlogUser/GetBlogPostsForUser\");\r\n \t};\r\n\r\n\t\tthis.GetRelatedBlogPosts = function (relatedToId) {\r\n\t\t\treturn $http.get(siteRootPath + \"api/BlogUser/GetRelatedBlogPosts\", {\r\n\t\t\t\tparams: {\r\n\t\t\t\t\trelatedToId: relatedToId\r\n\t\t\t\t},\r\n\t\t\t\tignoreLoadingBar: true\r\n\t\t\t}, {\r\n \t\t\theaders: {\r\n \t\t\t\tIgnoreLoader: true\r\n \t\t\t}\r\n \t\t});\r\n };\r\n\r\n this.GetEntryUrlRewriteById = function (id) {\r\n return $http.get(siteRootPath + \"api/BlogUser/GetEntryUrlRewriteById\", {\r\n params: {\r\n id: id\r\n }\r\n });\r\n }\r\n\r\n \tthis.GetOneBlogEntry = function (id, preview) {\r\n \t\treturn $http.get(siteRootPath + \"api/BlogUser/GetBlogPost\", {\r\n \t\t\tparams: {\r\n id: id,\r\n preview: preview || false\r\n \t\t\t}\r\n \t\t});\r\n \t}\r\n\r\n \tthis.GetOneBlogEntryByTitle = function (title) {\r\n \t\treturn $http.get(siteRootPath + \"api/BlogUser/GetBlogPostByTitle\", {\r\n \t\t\tparams: {\r\n \t\t\t\ttitle: title\r\n \t\t\t}\r\n \t\t});\r\n \t}\r\n\r\n \tthis.AddLikeActionToBlogEntry = function (entryId, actionId) {\r\n\t\t\treturn $http.post(siteRootPath + 'api/BlogUser/AddLikeActionToBlogEntry', { objectId: entryId, actionId: actionId }, { ignoreLoadingBar: true });\r\n \t}\r\n\r\n \tthis.AddBlogComment = function (comment, entryId, parentId) {\r\n \t return $http.post(siteRootPath + 'api/BlogUser/AddBlogComment', {Comment: comment, ObjectId: entryId});\r\n \t}\r\n\r\n \t//this.DeleteBlogComment = function (commentId) {\r\n \t// return $http.get(siteRootPath + 'api/BlogAdmin/DeleteBlogComment', {\r\n \t// params: {\r\n \t// commentId: commentId\r\n \t// }\r\n \t// });\r\n \t//};\r\n\r\n \tthis.GetRelatedEntries = function (entryId, pageSize, pageIndex, overrideCache) {\r\n \t\treturn $http.post(servicePath + 'GetBlogPostsByRelatedEntryLoggedInUser', {\r\n \t\t\tentryId: entryId,\r\n \t\t\tpageSize: pageSize,\r\n \t\t\tpageIndex: pageIndex,\r\n \t\t\toverrideCache: overrideCache\r\n \t\t}, {\r\n \t\t\theaders: {\r\n \t\t\t\tIgnoreLoader: true\r\n \t\t\t}\r\n \t\t});\r\n \t}\r\n \tthis.GetEntriesByTags = function (tagIds, pageIndex, pageSize, overrideCache, ignoreLoader) {\r\n \t\treturn $http.post(servicePath + 'GetBlogPostsByTagsForLoggedInUser', {\r\n \t\t\ttagIds: tagIds,\r\n \t\t\tpageIndex: pageIndex,\r\n \t\t\tpageSize: pageSize,\r\n \t\t\toverrideCache: overrideCache\r\n \t\t}, {\r\n \t\t\theaders: {\r\n \t\t\t\tIgnoreLoader: ignoreLoader || false\r\n \t\t\t}\r\n \t\t});\r\n }\r\n\r\n const GetBlogEntriesByOrder = (pageIndex, overrideCache, ignoreLoader, tagIds, pageSize, order) => {\r\n var parameters = {\r\n tagIds: tagIds,\r\n order: order,\r\n pageIndex: pageIndex,\r\n overrideCache: overrideCache,\r\n updateLatest: true,\r\n pageSize: pageSize\r\n }\r\n return $http.post('api/BlogUser/GetBlogPostsInOrderForLoggedInUser', parameters, {\r\n headers: {\r\n IgnoreLoader: ignoreLoader || false\r\n }\r\n });\r\n }\r\n\r\n \tthis.GetNewestBlogEntries = function (pageIndex, overrideCache, ignoreLoader, tagIds, pageSize) {\r\n return GetBlogEntriesByOrder(pageIndex, overrideCache, ignoreLoader, tagIds, pageSize, 0)\r\n }\r\n\r\n this.GetBlogEntriesByJourneyOrder = function (pageIndex, overrideCache, ignoreLoader, tagIds, pageSize) {\r\n return GetBlogEntriesByOrder(pageIndex, overrideCache, ignoreLoader, tagIds, pageSize, 5)\r\n } \r\n\r\n \tthis.GetTag = function (id) {\r\n \t\treturn $http.get(siteRootPath + \"api/generictag/getTags?\" + $.param({ tagIds: id }));\r\n \t}\r\n\r\n \tthis.GetTagBySystemName = function (systemName) {\r\n \t\treturn $http.get(siteRootPath + \"api/generictag/getTagBySystemName?\" + $.param({ tagSystemName: systemName }));\r\n\t\t};\r\n\t\t\r\n\t\tthis.GetBlogPosts = function(ids) {\r\n\t\t\treturn $http.post(siteRootPath + \"api/BlogUser/GetBlogPosts\", {\r\n \t\t\tSpecificIds: ids\r\n \t\t});\r\n\t\t};\r\n\r\n\t\tthis.GetMostCommentedPosts = function(limit) {\r\n\t\t\treturn $http.post(siteRootPath + \"api/BlogUser/GetBlogPosts\", {\r\n\t\t\t\tOrder: 4,\r\n\t\t\t\tPageSize: limit,\r\n\t\t\t\tPageIndex: 0,\r\n\t\t\t\tUseComments: true\r\n \t\t});\r\n\t\t};\r\n\r\n\t\tthis.GetMostLikedPosts = function(limit) {\r\n\t\t\treturn $http.post(siteRootPath + \"api/BlogUser/GetBlogPosts\", {\r\n\t\t\t\tOrder: 2,\r\n\t\t\t\tPageSize: limit,\r\n\t\t\t\tPageIndex: 0,\r\n \t\t});\r\n\t\t};\r\n }\r\n})(window.angular);\r\n","(function(angular) {\r\n\tangular.module('bizPartEngage').controller('modules.cms.page', pageController);\r\n pageController.$inject = [\"$rootScope\", \"modules.cms.service\", \"$stateParams\", \"container\", \"bizContainerService\", \"bizContainerUrls\", \"bizContainerSettings\", \"MetadataService\", \"$filter\"];\r\n\r\n function pageController($rootScope, cmsService, $stateParams, container, bizContainerService, bizContainerUrls, bizContainerSettings, MetadataService, $filter) {\r\n var vm = this;\r\n vm.PageIdentifier = $stateParams.id;\r\n\r\n vm.GetCMSPage = GetCMSPage;\r\n\r\n bizContainerSettings.ContainerRefererType = \"CMS\";\r\n\r\n vm.uiOnParamsChanged = function (changedParams, transition) {\r\n \t$rootScope.$broadcast('DYNAMIC_PARAMS_CHANGED', changedParams);\r\n }\r\n\r\n function GetCMSPage() {\r\n \tvm.GettingCMSPage = true;\r\n\r\n cmsService.GetCMSPage(vm.PageIdentifier).then(GetCmsPageSuccess, GetCmsPageReject);\r\n\r\n function GetCmsPageReject(response) {\r\n \r\n }\r\n\r\n \tfunction GetCmsPageSuccess(response) {\r\n \t\tvm.Page = response.data;\r\n \t\tvm.Page.Container = new container(vm.Page.Container);\r\n \r\n \t\t$rootScope.DisableMainMenuSticky = !$rootScope.menuSettings.IsSticky;\r\n \t\tvm.GettingCMSPage = false;\r\n\r\n \t\tif (vm.Page.Container.hasStickyNavigation())\r\n \t\t\t$rootScope.DisableMainMenuSticky = true;\r\n\r\n var imageModules = vm.Page.Container.getModules(\"IMAGE\");\r\n var imageUrl = \"\";\r\n if (imageModules.length > 0 && imageModules[0].Content.ImageUrl.length > 0) {\r\n imageUrl = imageModules[0].Content.ImageUrl;\r\n }\r\n \r\n MetadataService.setMetaTags({\r\n title: vm.Page.Title,\r\n description: vm.Page.Description,\r\n keywords: vm.Page.Keywords,\r\n img: imageUrl\r\n });\r\n }\r\n }\r\n\r\n vm.$onInit = function() {\r\n \tvm.GetCMSPage();\r\n }\r\n }\r\n\r\n})(window.angular);\r\n","(function (angular) {\r\n\tangular.module('bizPartEngage').service('modules.cms.service', cmsService);\r\n\r\n\tcmsService.$inject = [\"$http\"];\r\n\r\n\tfunction cmsService($http) {\r\n var basePath = siteRootPath + \"api/cmsuser/\";\r\n\r\n this.GetCMSPage = function (urlRewrite) {\r\n return $http.get(basePath + \"GetCMSPage\", {\r\n \tparams: {\r\n \t\turlRewrite: urlRewrite\r\n \t},\r\n ignoreLoadingBar: true\r\n });\r\n }\r\n\r\n this.HasCMSPage = function (urlRewrite) {\r\n return $http.get(basePath + \"HasCMSPage\", {\r\n params: {\r\n urlRewrite: urlRewrite\r\n },\r\n ignoreLoadingBar: true\r\n });\r\n }\r\n\r\n this.GetCMSPageById = function (id) {\r\n return $http.get(basePath + \"GetCMSPageById\", {\r\n params: {\r\n id: id\r\n },\r\n ignoreLoadingBar: true\r\n });\r\n }\r\n }\r\n})(window.angular);\r\n","(function (angular) {\r\n\tangular.module('bizPartEngage').controller('modules.campaign', campaignController);\r\n\tangular.module('bizPartEngage').controller('modules.campaign.page', campaignPageController);\r\n\r\n\tcampaignController.$inject = [\"BizCampaignService\", \"$stateParams\", \"$rootScope\", \"$state\",\r\n\t\t\"bizContainerSettings\", \"bizCoreService\"];\r\n\tcampaignPageController.$inject = [\"BizCampaignService\", \"$stateParams\", \"$rootScope\", \"$state\", \"$window\",\r\n\t\t\"bizContainerService\", \"container\", \"$scope\"];\r\n\r\n\tfunction campaignController(campaignService, $stateParams, $rootScope, $state, bizContainerSettings, bizCoreService) {\r\n var vm = this;\r\n\r\n vm.GetCampaign = GetCampaign;\r\n vm.GoToCampaignStart = GoToCampaignStart;\r\n\r\n function GetCampaign() {\r\n \tcampaignService.GettingCampaign = campaignService.GetCampaign($stateParams.urlRewrite);\r\n \tcampaignService.GettingCampaign.then(GetCampaignCallback);\r\n\r\n \tfunction GetCampaignCallback(response) {\r\n \t\tvm.Campaign = response.data;\r\n \t\tcampaignService.Campaign = vm.Campaign;\r\n\r\n \t\tbizContainerSettings.ContainerRefererType = \"CAMPAIGN\";\r\n \t\tbizContainerSettings.ContainerRefererObjectId = vm.Campaign.Id;\r\n\r\n \t\tif ($stateParams.referer)\r\n \t\t\tbizCoreService.LogGenericObjectVisit(\"CAMPAIGN\", vm.Campaign.Id, $stateParams.referer);\r\n\r\n \t\tif (!$stateParams.pageUrlRewrite)\r\n \t\t\tvm.GoToCampaignStart();\r\n \t}\r\n }\r\n\r\n function GoToCampaignStart() {\r\n \tvar startPage = vm.Campaign.CampaignPages.GetItemByValue('CampaignPageTypeId', 1);\r\n \tif (!startPage || $rootScope.LoggedInUser.Id > 0) {\r\n \t\tstartPage = vm.Campaign.CampaignPages.GetItemByValue('CampaignPageTypeId', 2);\r\n \t\tif (!startPage) {\r\n \t\t\tfor (var i = 0; i < vm.Campaign.CampaignPages.length; i++) {\r\n \t\t\t\tif (vm.Campaign.CampaignPages[i].CampaignPageTypeId > 1) {\r\n \t\t\t\t\tstartPage = vm.Campaign.CampaignPages[i];\r\n \t\t\t\t\tbreak;\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t}\r\n \t}\r\n \t\r\n \tif (startPage)\r\n \t\t$state.go($rootScope.CurrentState.name + \".page\", { pageUrlRewrite: startPage.UrlRewrite });\r\n \telse\r\n \t\tconsole.warn(\"No access to campaign pages\");\r\n }\r\n\r\n $rootScope.Initialized.then(vm.GetCampaign);\r\n }\r\n\r\n\tfunction campaignPageController(campaignService, $stateParams, $rootScope, $state, $window, bizContainerService, container, $scope) {\r\n \tvar vm = this;\r\n\r\n \tvm.GoToStart = GoToStart;\r\n \tvm.GetCampaignPage = GetCampaignPage;\r\n \tcampaignService.ChangePage = ChangePage;\r\n\r\n \tfunction ChangePage(pageId) {\r\n \t\tif ($rootScope.LoggedInUser.Id > 0) {\r\n \t\t\tvar page = campaignService.Campaign.CampaignPages.GetItemByValue('Id', pageId);\r\n \t\t\tif (page)\r\n \t\t\t\t$state.go($rootScope.CurrentState.name, { pageUrlRewrite: page.UrlRewrite });\r\n \t\t}\r\n \t\telse\r\n \t\t\t$window.location.reload();\r\n \t}\r\n\r\n \tfunction GoToStart() {\r\n \t\tvar startPage = campaignService.Campaign.CampaignPages.GetItemByValue('CampaignPageTypeId', 1);\r\n \t\tif (!startPage || $rootScope.LoggedInUser.Id > 0) {\r\n \t\t\tstartPage = campaignService.Campaign.CampaignPages.GetItemByValue('CampaignPageTypeId', 2);\r\n \t\t\tif (!startPage) {\r\n \t\t\t\tfor (var i = 0; i < campaignService.Campaign.CampaignPages.length; i++) {\r\n \t\t\t\t\tif (campaignService.Campaign.CampaignPages[i].CampaignPageTypeId > 1) {\r\n \t\t\t\t\t\tstartPage = campaignService.Campaign.CampaignPages[i];\r\n \t\t\t\t\t\tbreak;\r\n \t\t\t\t\t}\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\tif (startPage)\r\n \t\t\t$state.go($rootScope.CurrentState.name, { pageUrlRewrite: startPage.UrlRewrite });\r\n \t}\r\n\r\n \tfunction GetCampaignPage() {\r\n \t\tvm.GettingCampaignPage = true;\r\n\r\n \t\tcampaignService.GettingCampaign.then(PerformGetCampaignPage);\r\n\r\n \t\tfunction PerformGetCampaignPage() {\r\n \t\t\tif (!campaignService.Campaign)\r\n \t\t\t\treturn;\r\n\r\n \t\t\tvar page = campaignService.Campaign.CampaignPages.GetItemByValue(\"UrlRewrite\", $stateParams.pageUrlRewrite);\r\n \t\t\tif (!page) {\r\n \t\t\t\tvm.GoToStart();\r\n \t\t\t\treturn;\r\n \t\t\t}\r\n\r\n \t\t\tcampaignService.GetCampaignPage(page.Id).then(GetCampaignPageCallback);\r\n\r\n \t\t\tfunction GetCampaignPageCallback(response) {\r\n \t\t\t\tvar page = response.data;\r\n \t\t\t\tif (page && page.Container) {\r\n \t\t\t\t\tpage.Container = new container(page.Container);\r\n \t\t\t\t\tvm.CampaignPage = page;\r\n \t\t\t\t}\r\n\r\n \t\t\t\tvm.GettingCampaignPage = false;\r\n \t\t\t}\r\n \t\t}\r\n \t}\r\n\r\n \tvar destroyOnModuleFinish = $rootScope.$on('MODULE_FINISH', function (e, module) {\r\n \t\tif (module.UseSettings) {\r\n \t\t\tbizContainerService.SetContainerModuleInstanceFinished(module.Id).then(ModuleInstanceFinishedSuccess);\r\n \t\t}\r\n \t});\r\n\r\n \t$scope.$on(\"$destroy\", destroyOnModuleFinish);\r\n\r\n \t$rootScope.Initialized.then(vm.GetCampaignPage);\r\n }\r\n})(window.angular);\r\n","(function (angular) {\r\n\tangular.module('bizPartEngage').service('BizCampaignService', campaignService);\r\n\r\n\tcampaignService.$inject = [\"$http\"];\r\n\r\n function campaignService($http) {\r\n \tvar controllerPath = siteRootPath + \"api/CampaignUser/\";\r\n\r\n \treturn {\r\n \t\tGetCampaign: GetCampaign,\r\n \t\tGetCampaignPage: GetCampaignPage\r\n \t};\r\n\r\n \tfunction GetCampaign(urlRewrite) {\r\n \t\treturn $http.get(controllerPath + \"GetCampaign\", {\r\n \t\t\tparams: {\r\n \t\t\t\turlRewrite: urlRewrite\r\n \t\t\t}\r\n \t\t});\r\n \t}\r\n\r\n \tfunction GetCampaignPage(pageId) {\r\n \t\treturn $http.get(controllerPath + \"GetCampaignPage\", {\r\n \t\t\tparams: {\r\n \t\t\t\tid: pageId\r\n \t\t\t}\r\n \t\t});\r\n \t}\r\n }\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').controller('modules.certifications', indexController);\r\n\r\n indexController.$inject = [\"$stateParams\", \"$state\", \"modules.certifications.service\", \"$rootScope\"];\r\n\r\n function indexController($stateParams, $state, certService, $rootScope) {\r\n var vm = this;\r\n\r\n vm.AuthToken = $rootScope.AuthToken;\r\n vm.CertList = [];\r\n vm.NoImageUrl = 'Images/Common/no_img.svg';\r\n\r\n vm.Init = Init;\r\n vm.GetCertifications = GetCertifications; \r\n\r\n function GetCertifications() {\r\n certService.GetCertificationsForUser().then(GetCertificationsForUserSuccess);\r\n\r\n function GetCertificationsForUserSuccess(response) { \r\n vm.CertList = BizPartCoreHelpers.getResponseValue(response, []);\r\n for (var i = 0; i < vm.CertList.length; i++) { \r\n \r\n var totalXp = 0;\r\n for (var j = 0; j < vm.CertList[i].Items.length; j++) { \r\n totalXp = totalXp + vm.CertList[i].Items[j].Item.ExperienceGive; \r\n }\r\n vm.CertList[i].ExperienceGive = totalXp;\r\n } \r\n }\r\n }\r\n\r\n function Init() { \r\n vm.GetCertifications();\r\n }\r\n\r\n this.$onInit = vm.Init;\r\n }\r\n\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').service('modules.certifications.service', certificationsService);\r\n\r\n certificationsService.$inject = [\"$http\"];\r\n\r\n function certificationsService($http) {\r\n\r\n var servicePath = siteRootPath + 'api/certificationsuser/';\r\n\r\n this.GetCertificationsForUser = function () {\r\n return $http.get(servicePath + 'GetCertificatesForUser');\r\n }; \r\n }\r\n})(window.angular);","(function (angular) {\r\n\tangular.module('bizPartEngage').controller('modules.dictionary', indexController);\r\n\r\n indexController.$inject = [\"modules.dictionary.service\", \"$stateParams\"];\r\n\r\n function indexController(dictionaryService, $stateParams) {\r\n\t\tvar vm = this;\r\n vm.SelectedItemId = ~~$stateParams.id;\r\n\r\n\t\tvm.Dictionary = [];\r\n\t\tvm.LettersWithWords = [];\r\n vm.GetDictionary = GetDictionary;\r\n\r\n\t\tfunction GetDictionary() {\r\n\t\t\tdictionaryService.GetAllEntries(-1).then(GetDictionarySuccess);\r\n\r\n\t\t\tfunction GetDictionarySuccess(response) {\r\n\t\t\t\tvar dictionary = (response.data.d || response.data);\r\n\r\n\t\t\t\tfor (var i = 0; i < dictionary.length; i++) {\r\n\t\t\t\t\tvar fl = dictionary[i].Word.substring(0, 1);\r\n\t\t\t\t\tdictionary[i].FirstLetter = fl;\r\n\t\t\t\t\tif (vm.LettersWithWords.indexOf(fl) < 1) {\r\n\t\t\t\t\t\tvm.LettersWithWords.push(fl);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvm.Dictionary = dictionary;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.$onInit = function () {\r\n\t\t\tvm.GetDictionary();\r\n\t\t}\r\n\t}\r\n\r\n})(window.angular);\r\n","(function (angular) {\r\n\tangular.module('bizPartEngage').service('modules.dictionary.service', dictionaryService);\r\n\r\n\tdictionaryService.$inject = [\"$http\"];\r\n\r\n\tfunction dictionaryService($http) {\r\n\t\tthis.GetAllEntries = function (id) {\r\n\t\t\treturn $http.get(siteRootPath + 'api/dictionary/GetAllEntries?' + $.param({ cultureId: id }));\r\n\t\t};\r\n\t\tthis.GetAllEntriesWCategories = function () {\r\n\t\t\treturn $http.get(siteRootPath + 'api/dictionary/GetAllEntriesWCategories');\r\n\t\t};\r\n\r\n\t}\r\n\r\n})(window.angular);\r\n","(function(angular) {\r\n angular.module('bizPartEngage').controller('modules.educations', indexController);\r\n angular.module('bizPartEngage').controller('modules.educations.html5', html5Controller);\r\n\r\n indexController.$inject = [\"modules.education.service\", \"$state\", \"$stateParams\", \"container\", \"$filter\", \"$translate\", \"MetadataService\", \"bizEngageService\"];\r\n html5Controller.$inject = [\"$rootScope\", \"$scope\", \"$q\", \"modules.education.service\", \"BizOnlineEducationReplyService\", \"$stateParams\", \"container\", \r\n \"bizContainerSettings\", \"$translate\", \"MetadataService\", \"bizEngageService\", \"core.engage.service\"];\r\n\r\n function indexController(educationService, $state, $stateParams, container, $filter, $translate, MetadataService, bizEngageService) {\r\n var vm = this;\r\n vm.TagId = ~~$stateParams.tagId;\r\n vm.TagSystemName = $stateParams.tagSystemName;\r\n\r\n function GetTag() {\r\n if (vm.TagSystemName) {\r\n educationService.GetTagBySystemName(vm.TagSystemName).then(GetTagSuccess);\r\n } else if (vm.TagId) {\r\n educationService.GetTag(vm.TagId).then(GetTagSuccess);\r\n } \r\n\r\n function GetTagSuccess(response) {\r\n vm.SelectedTag = vm.TagSystemName ? response.data : response.data[0];\r\n vm.TagId = vm.SelectedTag.Id;\r\n }\r\n }\r\n\r\n angular.element(document).ready(function () {\r\n $translate(['EDUCATION.META.TITLE', 'EDUCATION.META.DESCRIPTION']).then(function (translations) {\r\n MetadataService.setMetaTags({\r\n title: translations['EDUCATION.META.TITLE'],\r\n description: translations['EDUCATION.META.DESCRIPTION']\r\n })\r\n });\r\n });\r\n\r\n vm.$onInit = function () {\r\n GetTag();\r\n bizEngageService.GetMiniJourneySetting('HTML5').then(function (response) { \r\n vm.MiniJourneySettings = response;\r\n });\r\n }\r\n }\r\n\r\n function html5Controller($rootScope, $scope, $q, educationService, replyService, $stateParams, container, \r\n bizContainerSettings, $translate, MetadataService, bizEngageService, engageService) {\r\n var vm = this;\r\n vm.OnlineEducation = undefined;\r\n vm.ShowOnlineEducation = false;\r\n vm.ModulesRequiringFinish = [];\r\n vm.OnlineEducationId = ~~$stateParams.id;\r\n vm.OnlineEducationFinished = false;\r\n\r\n bizContainerSettings.ContainerRefererType = \"HTML5\";\r\n bizContainerSettings.ContainerRefererObjectId = vm.OnlineEducationId; \r\n\r\n vm.GetOnlineEducation = GetOnlineEducation;\r\n\r\n function GetOnlineEducation() {\r\n if (vm.OnlineEducationId > 0) {\r\n $q.all([\r\n educationService.GetHTML5Education(vm.OnlineEducationId),\r\n educationService.GetHTML5EducationReply(vm.OnlineEducationId)\r\n ]).then(GetOnlineEducationSuccess, GetOnlineEducationError);\r\n }\r\n else {\r\n vm.OnlineEducationId = $stateParams.id;\r\n\r\n educationService.GetHTML5EducationByUrlRewrite(vm.OnlineEducationId).then(function(response) {\r\n vm.OnlineEducation = response.data; \r\n bizContainerSettings.ContainerRefererCreatedByUserId = vm.OnlineEducation.CreatedByUserId;\r\n\r\n vm.OnlineEducation.Container = new container(vm.OnlineEducation.Container);\r\n vm.OnlineEducation.Container.setModuleFinishHandler(ModuleFinishHandler);\r\n\r\n var modulesWithSettings = vm.OnlineEducation.Container.getModulesWithSettings();\r\n\r\n bizEngageService.HandleContainer(vm.OnlineEducation.Container, vm.OnlineEducation.Id, bizEngageService.Types.HTML5);\r\n \r\n educationService.GetHTML5EducationReply(vm.OnlineEducation.Id).then(function(reply) {\r\n replyService.OnlineEducationReply = reply.data;\r\n replyService.UserStatus = vm.OnlineEducation.UserStatus;\r\n\r\n if(replyService.UserStatus) {\r\n for (var i = 0; i < replyService.UserStatus.length; i++) {\r\n if (replyService.UserStatus[i].IsFinished === true) {\r\n var mod = modulesWithSettings.GetItemByValue('Id', replyService.UserStatus[i].ContainerModuleInstanceId);\r\n if (mod) {\r\n mod.IsFinished = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n vm.ShowOnlineEducation = true;\r\n });\r\n });\r\n }\r\n\r\n function GetOnlineEducationError(err) {\r\n if(err.status == 401)\r\n vm.NoAccess = true;\r\n }\r\n\r\n function GetOnlineEducationSuccess(response) {\r\n vm.OnlineEducation = response[0].data; \r\n bizContainerSettings.ContainerRefererCreatedByUserId = vm.OnlineEducation.CreatedByUserId;\r\n\r\n replyService.OnlineEducationReply = response[1].data;\r\n replyService.UserStatus = vm.OnlineEducation.UserStatus;\r\n\r\n vm.OnlineEducation.Container = new container(vm.OnlineEducation.Container);\r\n vm.OnlineEducation.Container.setModuleFinishHandler(ModuleFinishHandler);\r\n\r\n var modulesWithSettings = vm.OnlineEducation.Container.getModulesWithSettings();\r\n for (var i = 0; i < replyService.UserStatus.length; i++) {\r\n if (replyService.UserStatus[i].IsFinished === true) {\r\n var mod = modulesWithSettings.GetItemByValue('Id', replyService.UserStatus[i].ContainerModuleInstanceId);\r\n if (mod) {\r\n mod.IsFinished = true;\r\n }\r\n\r\n }\r\n }\r\n\r\n vm.ShowOnlineEducation = true;\r\n\r\n bizEngageService.HandleContainer(vm.OnlineEducation.Container, vm.OnlineEducation.Id, bizEngageService.Types.HTML5);\r\n }\r\n }\r\n\r\n function ModuleFinishHandler(module) {\r\n educationService.HTML5ModuleInstanceFinished(replyService.OnlineEducationReply.Id, module.Id).then(ModuleInstanceFinishedSuccess);\r\n\r\n function ModuleInstanceFinishedSuccess(response) {\r\n \t$rootScope.$broadcast('QUESTION_MODULE_RESULT', { module: module, result: response.data });\r\n \tvar modules = vm.OnlineEducation.Container.getModulesWithSettings();\r\n \tvar unfinished = modules.GetItemsByValue(\"IsFinished\", false);\r\n if (unfinished.length == 0 && !vm.IsSubmitted) {\r\n educationService.SubmitHTML5Education(replyService.OnlineEducationReply.Id).then(SubmitEducationSuccess);\r\n vm.IsSubmitted = true;//prevent double submission when last module is within a segment, because both the last module and segment will trigger finish events\r\n }\r\n\r\n function SubmitEducationSuccess(response) {\r\n $rootScope.$broadcast('EDUCATION_FINISHED', response.data);\r\n if (response.data.Success) {\r\n $rootScope.$broadcast('EDUCATION_FINISHED_SUCCESS', response.data);\r\n vm.OnlineEducationFinished = true;\r\n //$timeout(vm.ShowForm, 2500);\r\n }\r\n else {\r\n $rootScope.$broadcast('EDUCATION_FINISHED_FAILED', response.data);\r\n }\r\n }\r\n }\r\n }\r\n\r\n vm.$onInit = function() {\r\n vm.GetOnlineEducation();\r\n\r\n bizEngageService.GetMiniJourneySetting('HTML5').then(function (response) {\r\n vm.MiniJourneySettings = response;\r\n });\r\n }\r\n\r\n angular.element(document).ready(function () {\r\n $translate(['EDUCATION.META.TITLE', 'EDUCATION.META.DESCRIPTION']).then(function (translations) {\r\n MetadataService.setMetaTags({\r\n title: translations['EDUCATION.META.TITLE'],\r\n description: translations['EDUCATION.META.DESCRIPTION']\r\n })\r\n });\r\n }); \r\n }\r\n\r\n})(window.angular);\r\n","(function(angular) {\r\n angular.module('bizPartEngage').controller('modules.educationsList', bizEducationsListController);\r\n angular.module('bizPartEngage').controller('modules.educationsListModule', bizEducationsListModuleController);\r\n angular.module('bizPartEngage').directive('bizModuleEducationList', bizModuleEducationListDirective);\r\n angular.module('bizPartEngage').directive('bizEducationsList', bizEducationsListDirective);\r\n \r\n bizEducationsListDirective.$inject = [\"bizCore\"];\r\n bizModuleEducationListDirective.$inject = [\"bizCore\"];\r\n bizEducationsListController.$inject = [\"modules.education.service\", \"$state\", \"$stateParams\", \"container\", \"$filter\", \"$translate\", \"MetadataService\"];\r\n\r\n bizEducationsListModuleController.$inject = [\"$rootScope\", \"modules.education.service\", \"$translate\"];\r\n\r\n function bizEducationsListDirective(bizCoreProvider) {\r\n var directive = {\r\n restrict: \"E\",\r\n scope: {\r\n settings: \"=?\"\r\n },\r\n templateUrl: bizCoreProvider.getView('core.directives.educationlist', 'FrontEnd/Modules/Education/Views/educationslistdirective.html'),\r\n controller: bizCoreProvider.getController('base.modules.educationsList', 'modules.educationsList'),\r\n controllerAs: 'vm',\r\n bindToController: true\r\n };\r\n\r\n return directive;\r\n }\r\n\r\n function bizModuleEducationListDirective(bizCoreProvider) {\r\n var directive = {\r\n restrict: \"E\",\r\n scope: {\r\n settings: \"=?\"\r\n },\r\n templateUrl: function (element, attr) {\r\n if (attr.templateurl) {\r\n return siteRootPath + attr.templateurl;\r\n } else {\r\n return bizCoreProvider.getView('core.directives.educationlist', 'FrontEnd/Modules/Education/Views/education-list.html');\r\n }\r\n },\r\n controller: bizCoreProvider.getController('base.modules.educationsListModule', 'modules.educationsListModule'),\r\n controllerAs: 'vm',\r\n bindToController: true\r\n };\r\n\r\n return directive;\r\n }\r\n\r\n function bizEducationsListController(educationService, $state, $stateParams, container, $filter, $translate, MetadataService) {\r\n var vm = this;\r\n\r\n vm.DataLoaded = false;\r\n\r\n vm.TagId = ~~$stateParams.tagId;\r\n vm.TagSystemName = $stateParams.tagSystemName;\r\n\r\n vm.useJourneyOrder = journeySettings?.UseJourneyOrderInLists?.GetItemByValue('Key', 1)?.Value || false;\r\n\r\n \tvm.SCORMUserStatus = {\r\n \t\tNotStarted: 0,\r\n \t\tStarted: 1,\r\n \t\tPassed: 2,\r\n \t\tFailed: 3\r\n \t};\r\n\r\n var skipLoadContainer = true;\r\n\r\n\t\t//todo merge, same list?\r\n vm.HTML5Educations = [];\r\n vm.SCORMEducations = []; \r\n\r\n vm.GetAllEducationTypes = GetAllEducationTypes;\r\n vm.GetHTML5EducationsForLoggedInUser = GetHTML5EducationsForLoggedInUser;\r\n vm.GetSCORMEducations = GetSCORMEducations;\r\n vm.OpenHTML5Education = OpenHTML5Education;\r\n vm.HandleCategoryForEduction = HandleCategoryForEduction;\r\n\r\n vm.TagFilter = TagFilter;\r\n vm.GetTag = GetTag;\r\n\r\n function GetHTML5EducationsForLoggedInUser() {\r\n var tagIds = vm.TagId ? [vm.TagId] : undefined;\r\n\r\n if (tagIds !== undefined) {\r\n educationService.GetHTML5EducationsForLoggedInUserByTagId(tagIds, vm.useJourneyOrder).then(GetHTML5EducationsForLoggedInUserSuccess);\r\n }\r\n else {\r\n educationService.GetHTML5EducationsForLoggedInUser(skipLoadContainer, vm.useJourneyOrder).then(GetHTML5EducationsForLoggedInUserSuccess);\r\n }\r\n \r\n\r\n function GetHTML5EducationsForLoggedInUserSuccess(response) {\r\n var list = response.data;\r\n vm.Tags = [];\r\n vm.Categories = [];\r\n vm.HTML5Educations = [];\r\n\r\n for (var i = 0; i < list.length; i++) {\r\n var edu = list[i];\r\n if ((edu.Description == null || edu.Description == \"\") && skipLoadContainer == false) {\r\n edu.Container = new container(edu.Container);\r\n var modules = edu.Container.getModules(\"Text\");\r\n\r\n if (modules == null || modules.length <= 0) {\r\n modules = edu.Container.getModules(\"ImageText\");\r\n }\r\n\r\n if (modules != null && modules.length > 0) {\r\n edu.Description = $filter('bizPlaceholders')(modules[0].Content.Text);\r\n }\r\n }\r\n\r\n if (vm.HandleCategoryForEduction(edu)) {\r\n \r\n } else {\r\n vm.HTML5Educations.push(edu);\r\n }\r\n\r\n if (!edu.Tags || !edu.Tags.length)\r\n continue;\r\n\r\n for (var j = 0; j < edu.Tags.length; j++) {\r\n if (!vm.Tags.GetItemByValue(\"Id\", edu.Tags[j].Id))\r\n vm.Tags.push(edu.Tags[j]);\r\n }\r\n } \r\n\r\n vm.DataLoaded = true;\r\n }\r\n }\r\n\r\n function HandleCategoryForEduction(edu) {\r\n if (!edu.GenericCategories || !edu.GenericCategories.length)\r\n return false;\r\n\r\n for (var i = 0; i < edu.GenericCategories.length; i++) {\r\n var category = vm.Categories.GetItemByValue('Id', edu.GenericCategories[i].Id);\r\n if (!category) {\r\n category = edu.GenericCategories[i];\r\n category.Entries = [];\r\n category.Selected = edu;\r\n category.IsCategory = true;\r\n vm.Categories.push(category);\r\n vm.HTML5Educations.push(category);\r\n }\r\n category.Entries.push(edu);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function GetTag(callback) {\r\n if (vm.TagSystemName || vm.TagId) {\r\n if (vm.TagSystemName) {\r\n educationService.GetTagBySystemName(vm.TagSystemName).then(GetTagSuccess);\r\n } else {\r\n educationService.GetTag(vm.TagId).then(GetTagSuccess);\r\n }\r\n\r\n function GetTagSuccess(response) {\r\n vm.SelectedTag = vm.TagSystemName ? response.data : response.data[0];\r\n vm.TagId = vm.SelectedTag.Id;\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n }\r\n else {\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n }\r\n\r\n function TagFilter(tagId) {\r\n \treturn function (item) {\r\n \t\treturn item.Tags && item.Tags.GetItemByValue('Id', tagId);\r\n \t}\r\n }\r\n\r\n function GetSCORMEducations() {\r\n \teducationService.GetSCORMEducations().then(GetSCORMEducationsSuccess);\r\n\r\n \tfunction GetSCORMEducationsSuccess(response) {\r\n \t\tvm.SCORMEducations = BizPartCoreHelpers.getResponseValue(response, []);\r\n \t\tfor (var i = 0; i < vm.SCORMEducations.length; i++) {\r\n \t\t\tvar edu = vm.SCORMEducations[i];\r\n edu.UserHasPassed = edu.Status == vm.SCORMUserStatus.Passed;\r\n \t\t\tedu.Url = siteRootPath + 'scorm/' + edu.Id;\r\n \t\t}\r\n \t}\r\n }\r\n\r\n function OpenHTML5Education(education) {\r\n $state.go('base.modules.html5education', {id: education.Id});\r\n }\r\n\r\n function GetAllEducationTypes() {\r\n vm.GetHTML5EducationsForLoggedInUser();\r\n vm.GetSCORMEducations(); \r\n }\r\n\r\n vm.$onInit = function () {\r\n vm.GetTag(GetAllEducationTypes);\r\n }\r\n }\r\n\r\n function bizEducationsListModuleController($rootScope, educationService, $translate) {\r\n var vm = this;\r\n vm.HTML5Educations = [];\r\n \r\n\r\n vm.Init = Init;\r\n\r\n function Init() {\r\n if(!vm.settings.Filter && vm.settings.SelectedFilter) vm.settings.Filter = vm.settings.SelectedFilter.Value;\r\n if(!vm.settings.Limit && vm.settings.SelectedLimit) vm.settings.Limit = vm.settings.SelectedLimit.Value;\r\n\r\n if(vm.settings.Filter == 'newest') {\r\n educationService.GetHTML5EducationsForLoggedInUser().then(GetEducationsSuccess);\r\n }\r\n else if(vm.settings.Filter == 'journey') {\r\n if($rootScope.FavoriteTagIds.length > 0) {\r\n educationService.GetHTML5EducationsForLoggedInUserByTagId($rootScope.FavoriteTagIds, true).then(GetEducationsSuccess);\r\n }\r\n else {\r\n educationService.GetHTML5EducationsForLoggedInUser(false, true).then(GetEducationsSuccess);\r\n }\r\n }\r\n\r\n function GetEducationsSuccess(response) {\r\n vm.HTML5Educations = response.data;\r\n }\r\n }\r\n\r\n vm.$onInit = vm.Init;\r\n\r\n if (angular.version.major === 1 && angular.version.minor < 5) {\r\n vm.$onInit();\r\n }\r\n }\r\n\r\n})(window.angular);","(function(angular) {\r\n angular.module('bizPartEngage').service('modules.education.service', educationService);\r\n //THIS FOR BACKWORDS COMPABILITY\r\n angular.module('bizPartEngage').service('BizOnlineEducationReplyService', educationService);\r\n //angular.module('bizPartEngage').service('modules.education.service.reply', [replyService]);\r\n //THIS FOR BACKWORDS COMPABILITY\r\n angular.module('bizPartEngage').service('BizOnlineEducationReplyService', [replyService]);\r\n\r\n educationService.$inject = [\"$http\"];\r\n\r\n function educationService($http) {\r\n this.GetCompletedCount = function() {\r\n return $http.get(siteRootPath + 'api/education/GetCompletedCount');\r\n };\r\n\r\n this.GetHTML5EducationsForLoggedInUser = function (skipLoadContainer, journeyOrder) {\r\n return $http.get(siteRootPath + 'api/education/GetHTML5EducationsForLoggedInUser?' + $.param({ skipLoadContainer: skipLoadContainer === undefined ? false : true, journeyOrder: journeyOrder || false }));\r\n };\r\n\r\n this.GetHTML5EducationsForLoggedInUserByTagId = function (id, journeyOrder) {\r\n return $http.get(siteRootPath + \"api/education/GetHTML5EducationsForLoggedInUserByTagId?\" + $.param({ tagIds: id, journeyOrder: journeyOrder || false }));\r\n }\r\n\r\n this.GetSCORMEducations = function () {\r\n \treturn $http.get(siteRootPath + 'api/scormuser/GetEducations');\r\n };\r\n\r\n this.GetHTML5Education = function(id) {\r\n return $http.get(siteRootPath + 'api/education/GetHTML5Education?' + $.param({ id: id }));\r\n };\r\n\r\n this.GetHTML5EducationByUrlRewrite = function(urlRewrite) {\r\n return $http.get(siteRootPath + 'api/education/GetHTML5EducationByUrlRewrite?' + $.param({ urlRewrite: urlRewrite }));\r\n };\r\n\r\n this.GetHTML5EducationReply = function(educationId) {\r\n return $http.get(siteRootPath + 'api/education/GetHTML5EducationReply?' + $.param({ educationId: educationId }));\r\n };\r\n\r\n this.HTML5ModuleInstanceFinished = function (replyId, containerModuleInstanceId) {\r\n return $http.post(siteRootPath + 'api/education/HTML5ModuleInstanceFinished?' + $.param({ containerModuleInstanceId: containerModuleInstanceId}), replyId);\r\n };\r\n\r\n this.SubmitHTML5Education = function (replyId) {\r\n return $http.post(siteRootPath + 'api/education/SubmitHTML5Education', replyId);\r\n };\r\n\r\n this.GetTag = function (id) {\r\n return $http.get(siteRootPath + \"api/generictag/getTags?\" + $.param({ tagIds: id }));\r\n }\r\n\r\n this.GetTagBySystemName = function (systemName) {\r\n return $http.get(siteRootPath + \"api/generictag/getTagBySystemName?\" + $.param({ tagSystemName: systemName }));\r\n }\r\n }\r\n\r\n function replyService() {\r\n this.OnlineEducationReply = {};\r\n }\r\n})(window.angular);\r\n","(function () { \r\n angular.module('bizPartEngage').directive('bizDeactivateGoal', bizDeactivateGoalDirective);\r\n \r\n bizDeactivateGoalDirective.$inject = [\"bizCore\"];\r\n\r\n function bizDeactivateGoalDirective(bizCoreProvider) {\r\n var directive = {\r\n restrict: 'E',\r\n scope: {\r\n goal: '=',\r\n cancel: '&?',\r\n postInactivateAction: '&?',\r\n deleteMode: '=?'\r\n },\r\n templateUrl: bizCoreProvider.getView('bizMyGoalsDirective', 'FrontEnd/Modules/EngagementGoals/Views/Directives/deactivateGoal.html'),\r\n bindToController: true,\r\n controller: bizDeactivateGoalController,\r\n controllerAs: 'vm'\r\n };\r\n\r\n bizDeactivateGoalController.$inject = [\"modules.goals.service\"];\r\n\r\n return directive;\r\n\r\n function bizDeactivateGoalController(engagementGoalsService) {\r\n var vm = this;\r\n\r\n vm.Init = Init;\r\n vm.Cancel = Cancel;\r\n vm.Inactivate = Inactivate;\r\n vm.SelectGoal = SelectGoal; \r\n vm.FilterGoals = FilterGoals;\r\n\r\n function Cancel() {\r\n if (vm.cancel) {\r\n vm.cancel();\r\n }\r\n }\r\n\r\n function SelectGoal(goal) {\r\n if (goal.selected) {\r\n goal.selected = false;\r\n } else {\r\n for (var i = 0; i < vm.MoveToGoalList.length; i++) {\r\n if (vm.MoveToGoalList[i].selected) {\r\n vm.MoveToGoalList[i].selected = false;\r\n }\r\n }\r\n goal.selected = true;\r\n }\r\n } \r\n\r\n function Inactivate() {\r\n\r\n var goalIdToMoveTo = -1;\r\n for (var i = 0; i < vm.MoveToGoalList.length; i++) {\r\n if (vm.MoveToGoalList[i].selected) {\r\n goalIdToMoveTo = vm.MoveToGoalList[i].Id;\r\n }\r\n }\r\n\r\n engagementGoalsService.InactivateGoal(vm.goal.Id, goalIdToMoveTo, vm.deleteMode).then(InactivateGoalCallback);\r\n\r\n function InactivateGoalCallback(response) {\r\n if (vm.postInactivateAction) {\r\n vm.postInactivateAction();\r\n }\r\n }\r\n }\r\n\r\n function FilterGoals() {\r\n return function (goal) {\r\n return goal.Id !== vm.goal.Id && goal.ParentGoalId > 0;\r\n }\r\n }\r\n\r\n function Init() {\r\n engagementGoalsService.GetGoals().then(GetGoalsCallback);\r\n\r\n function GetGoalsCallback(response) {\r\n vm.MoveToGoalList = BizPartCoreHelpers.getResponseValue(response, []);\r\n if (vm.goal.ParentGoalId <= 0) {\r\n vm.ChildGoals = vm.MoveToGoalList.GetItemsByValue('ParentGoalId', vm.goal.Id);\r\n }\r\n }\r\n }\r\n\r\n vm.$onInit = vm.Init;\r\n }\r\n }\r\n\r\n}());","(function () {\r\n angular.module('bizPartEngage').directive('bizManagerGoals', bizManagerGoalsDirective);\r\n\r\n bizManagerGoalsDirective.$inject = [\"bizCore\"];\r\n\r\n function bizManagerGoalsDirective(bizCoreProvider) {\r\n var directive = {\r\n restrict: 'E',\r\n scope: {\r\n },\r\n templateUrl: bizCoreProvider.getView('bizMyGoalsDirective', 'FrontEnd/Modules/EngagementGoals/Views/Directives/managerGoals.html'),\r\n bindToController: true,\r\n controller: bizManagerGoalsController,\r\n controllerAs: 'vm'\r\n };\r\n\r\n bizManagerGoalsController.$inject = [\"modules.goals.service\", \"$state\", \"$rootScope\", \"$mdToast\", \"$mdDialog\", \"bizCoreService\", \"core.unit.service\", \"$q\"];\r\n\r\n return directive;\r\n\r\n function bizManagerGoalsController(engagementGoalsService, $state, $rootScope, $mdToast, $mdDialog, bizCoreService, unitService, $q) {\r\n var vm = this;\r\n vm.Statuses = [{ Id: 1, Text: 'Positiv' }, { Id: 2, Text: 'Neutral' }, { Id: 3, Text: 'Negativ' }];\r\n vm.ManagerGoals = [];\r\n\r\n vm.GetGoals = GetGoals;\r\n vm.Init = Init;\r\n vm.GotoToGoal = GotoToGoal;\r\n vm.OpenEdit = OpenEdit;\r\n\r\n function OpenEdit() {\r\n\r\n $q.all(\r\n [\r\n engagementGoalsService.GetGoals(false),\r\n unitService.GetUsersInUnit($rootScope.LoggedInUser.Units[0].Id)\r\n ]).then(LoadDataDone);\r\n\r\n function LoadDataDone(response) {\r\n var managerGoals = response[0].data;\r\n var usersInUnit = response[1].data;\r\n \r\n vm.ManagerGoals = [];\r\n for (var i = 0; i < managerGoals.length; i++) {\r\n if (managerGoals[i].ParentGoalId > 0) {\r\n vm.ManagerGoals.push(managerGoals[i]);\r\n }\r\n }\r\n\r\n vm.Users = [];\r\n for (var i = 0; i < usersInUnit.length; i++) {\r\n if (usersInUnit[i].Id != $rootScope.LoggedInUser.Id) {\r\n vm.Users.push(usersInUnit[i]);\r\n }\r\n }\r\n\r\n $mdDialog.show({\r\n parent: angular.element(document.body),\r\n templateUrl: siteRootPath + \"FrontEnd/Modules/EngagementGoals/Views/Directives/mangagerGoalsEdit.html\",\r\n controller: EditDialogController,\r\n controllerAs: \"vm\",\r\n bindToController: true,\r\n locals: {\r\n Statuses: vm.Statuses,\r\n GoalSettings: vm.GoalSettings,\r\n ManagerGoals: vm.ManagerGoals,\r\n Users: vm.Users\r\n }\r\n }).then(EditClose);\r\n }\r\n\r\n function EditClose(data) {\r\n if (data) {\r\n vm.GoalSettings = data;\r\n }\r\n }\r\n\r\n EditDialogController.$inject = [\"$mdDialog\", \"bizCoreService\"];\r\n\r\n function EditDialogController($mdDialog, bizCoreService) {\r\n var vm = this;\r\n\r\n vm.Save = Save;\r\n vm.Cancel = Cancel;\r\n vm.AddGoal = AddGoal;\r\n vm.Remove = Remove;\r\n vm.GetStatusName = GetStatusName;\r\n vm.UserSelected = UserSelected;\r\n\r\n function UserSelected() {\r\n vm.UserGoals = [];\r\n\r\n if (vm.SelectedUser && vm.SelectedUser.Id > 0) {\r\n engagementGoalsService.GetGoals(false, null, null, vm.SelectedUser.Id).then(DataCallback);\r\n\r\n function DataCallback(response) {\r\n var userGoals = BizPartCoreHelpers.getResponseValue(response, []);\r\n\r\n for (var i = 0; i < userGoals.length; i++) {\r\n if (userGoals[i].ParentGoalId > 0) {\r\n vm.UserGoals.push(userGoals[i]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n function Save() {\r\n engagementGoalsService.SaveManagerGoals(vm.GoalSettings).then(SaveCallback);\r\n\r\n function SaveCallback(response) {\r\n var goalSettings = BizPartCoreHelpers.getResponseValue(response, []);\r\n $mdDialog.hide(vm.GoalSettings);\r\n }\r\n }\r\n\r\n function Cancel() {\r\n $mdDialog.hide();\r\n }\r\n\r\n function AddGoal(isManagerGoal) {\r\n var data = {\r\n Id: isManagerGoal ? vm.SelectedGoal.Id : vm.SelectedUserGoal.Id,\r\n Goal: isManagerGoal ? vm.SelectedGoal : vm.SelectedUserGoal,\r\n Status: vm.SelectedStatus.Id,\r\n IsManagerGoal: isManagerGoal ? true : false,\r\n ShowIcon: isManagerGoal ? true : false,\r\n Comment: ''\r\n }\r\n\r\n vm.GoalSettings.Goals.push(data);\r\n }\r\n\r\n function Remove(id, isManagerGoal) {\r\n if (id > 0) {\r\n for (var i = 0; i < vm.GoalSettings.Goals.length; i++) {\r\n if (id == vm.GoalSettings.Goals[i].Id && (isManagerGoal && vm.GoalSettings.Goals[i].IsManagerGoal || isManagerGoal == false && vm.GoalSettings.Goals[i].IsManagerGoal == false)) {\r\n vm.GoalSettings.Goals.splice(i, 1);\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n\r\n function GetStatusName(id) {\r\n if (id > 0) {\r\n return vm.Statuses[id - 1].Text;\r\n }\r\n\r\n return '';\r\n }\r\n }\r\n }\r\n\r\n function GotoToGoal(goal) {\r\n $state.go(\"base.modules.goals.onegoal\", { id: goal.Id });\r\n }\r\n\r\n function GetGoals() {\r\n engagementGoalsService.GetManagerGoals().then(GetGoalsCallback);\r\n\r\n function GetGoalsCallback(response) {\r\n vm.GoalSettings = BizPartCoreHelpers.getResponseValue(response, []);\r\n\r\n if (!vm.GoalSettings.ManagerGoalOverrideHeader || vm.GoalSettings.ManagerGoalOverrideHeader.length == 0)\r\n vm.GoalSettings.ManagerGoalOverrideHeader = 'Företagsmål'\r\n\r\n if (!vm.GoalSettings.GoalOverrideHeader || vm.GoalSettings.GoalOverrideHeader.length == 0)\r\n vm.GoalSettings.GoalOverrideHeader = 'Individuella mål'\r\n }\r\n }\r\n\r\n function Init() {\r\n if (vm.GoalSettings === undefined) {\r\n vm.GetGoals();\r\n }\r\n }\r\n\r\n vm.$onInit = vm.Init;\r\n }\r\n }\r\n\r\n}());","(function () {\r\n angular.module('bizPartEngage').directive('bizMyGoals', bizMyGoalsDirective); \r\n\r\n bizMyGoalsDirective.$inject = [\"bizCore\"]; \r\n\r\n function bizMyGoalsDirective(bizCoreProvider) {\r\n var directive = {\r\n restrict: 'E',\r\n scope: {\r\n showActiveFilter: '@?',\r\n goalFilter: '@?',\r\n hideActivities: '@?',\r\n hideEdit: '@?',\r\n hideTasks: '@?',\r\n selectedGoal: '=?',\r\n Goals: '=?goals',\r\n editProgress: '@?',\r\n parentId: '=?',\r\n rootGoals: '=?'\r\n },\r\n templateUrl: bizCoreProvider.getView('bizMyGoalsDirective', 'FrontEnd/Modules/EngagementGoals/Views/Directives/myGoals.html'),\r\n bindToController: true,\r\n controller: bizMyGoalsController,\r\n controllerAs: 'vm'\r\n };\r\n\r\n bizMyGoalsController.$inject = [\"modules.goals.service\", \"$state\", \"$rootScope\", \"$mdToast\"];\r\n\r\n return directive;\r\n\r\n function bizMyGoalsController(engagementGoalsService, $state, $rootScope, $mdToast) {\r\n var vm = this;\r\n\r\n vm.ActiveStatus = [\r\n {\r\n Name: 'Aktiva',\r\n Active: true,\r\n Icon: \"fas fa-check-square\"\r\n },\r\n {\r\n Name: 'Inaktiva',\r\n Active: false,\r\n Icon: \"fas fa-times-square\"\r\n }\r\n ];\r\n\r\n vm.ProgressObjectTypes = {\r\n Goal: 200,\r\n Activity: 201,\r\n Task: 202, \r\n };\r\n\r\n vm.GetGoals = GetGoals;\r\n vm.FilterGoals = FilterGoals;\r\n vm.CompleteToDo = CompleteToDo;\r\n vm.Init = Init;\r\n vm.GotoToGoal = GotoToGoal;\r\n vm.GotoActivity = GotoActivity;\r\n vm.IsExpired = IsExpired; \r\n vm.SaveProgress = SaveProgress;\r\n\r\n function IsExpired(task) {\r\n return !task.IsCompleted && moment(task.DateLocal) < BizPartCoreHelpers.getDateNow();\r\n }\r\n\r\n function GotoToGoal(goal) {\r\n $state.go(\"base.modules.goals.onegoal\", { id: goal.Id });\r\n }\r\n\r\n function GotoActivity(activity) {\r\n $state.go(\"base.modules.goals.activity\", { id: activity.Id });\r\n }\r\n\r\n function FilterGoals() {\r\n return function (goal) {\r\n if (vm.rootGoals) {\r\n return goal.ParentGoalId <= 0;\r\n } else if (goal.ParentGoalId <= 0) { \r\n return false;\r\n } else if (vm.parentId > 0) {\r\n return vm.parentId === goal.ParentGoalId;\r\n } else if (vm.goalFilter && ~~vm.goalFilter > 0) {\r\n return ~~vm.goalFilter === goal.Id;\r\n } else {\r\n return vm.SelectedActiveStatus.Active === goal.IsActive;\r\n }\r\n }\r\n }\r\n\r\n function GetGoals() {\r\n if (vm.parentId) { \r\n engagementGoalsService.GetChildGoals(vm.parentId).then(GetGoalsCallback);\r\n } else {\r\n engagementGoalsService.GetGoals(true).then(GetGoalsCallback); \r\n }\r\n \r\n\r\n function GetGoalsCallback(response) {\r\n var goals = BizPartCoreHelpers.getResponseValue(response, []); \r\n for (var i = 0; i < goals.length; i++) {\r\n goals[i].ReportProgress = goals[i].ProgressSum;\r\n for (var j = 0; j < goals[i].Activities.length; j++) { \r\n var act = goals[i].Activities[j];\r\n act.ReportProgress = act.ProgressSum;\r\n\r\n for (var k = 0; k < act.ToDoList.length; k++) {\r\n var tsk = act.ToDoList[k];\r\n tsk.ReportProgress = tsk.ProgressSum;\r\n }\r\n }\r\n }\r\n vm.Goals = goals; \r\n }\r\n }\r\n\r\n function CompleteToDo(todo, act) {\r\n engagementGoalsService.CompleteTask(todo).then(CompleteToDoCallback);\r\n\r\n function CompleteToDoCallback(response) {\r\n var index = act.ToDoList.indexOf(todo);\r\n act.ToDoList.splice(index, 1);\r\n }\r\n } \r\n\r\n function SaveProgress(object, objectType) {\r\n //Remove spaces to make it a valit integer.\r\n var rp = ~~object.ReportProgress.replace(/\\s/g, '');\r\n var pList = [];\r\n if (object.ProgressSum !== rp) {\r\n var diff = rp - object.ProgressSum;\r\n pList.push({\r\n LinkedObjectType: objectType,\r\n LinkedObjectId: object.Id,\r\n Value: diff,\r\n DateLocal: moment()\r\n });\r\n\r\n engagementGoalsService.CreateProgress(pList).then(CreateProgressCallback);\r\n }\r\n\r\n function CreateProgressCallback(response) {\r\n object.ProgressSum = ~~object.ReportProgress.replace(/\\s/g, '');\r\n\r\n object.Saved = true;\r\n\r\n $rootScope.$broadcast('GOALPROGRESSUPDATED');\r\n\r\n if($rootScope.mobile) {\r\n $mdToast.show({\r\n parent: $(\".bizpart-engage\"),\r\n template: \"

Sparat!

\",\r\n autoWrap: true\r\n });\r\n }\r\n }\r\n }\r\n\r\n function Init() {\r\n vm.SelectedActiveStatus = vm.ActiveStatus[0];\r\n if(vm.Goals === undefined) {\r\n vm.GetGoals();\r\n }\r\n }\r\n\r\n vm.$onInit = vm.Init;\r\n\r\n $rootScope.$on('GOAL_NEW_DATE_SELECTED', function () {\r\n vm.GetGoals();\r\n });\r\n\r\n $rootScope.$on('GOALACTIVITYCREATED', function (event, activity) { \r\n var goal = vm.Goals.GetItemByValue('Id', activity.GoalId);\r\n if (goal) {\r\n activity.ReportProgress = 0;\r\n goal.Activities.push(activity); \r\n } \r\n });\r\n\r\n $rootScope.$on('GOALCREATED', function (event, goal) {\r\n vm.Goals.push(goal);\r\n goal.ReportProgress = 0; \r\n });\r\n }\r\n } \r\n\r\n}());","(function () {\r\n angular.module('bizPartEngage').directive('bizMyRootGoals', bizMyRootGoalsDirective);\r\n\r\n bizMyRootGoalsDirective.$inject = [\"bizCore\"];\r\n\r\n function bizMyRootGoalsDirective(bizCoreProvider) {\r\n var directive = {\r\n restrict: 'E',\r\n scope: { \r\n Goals: '=?goals' \r\n },\r\n templateUrl: bizCoreProvider.getView('bizMyRootGoalsDirective', 'FrontEnd/Modules/EngagementGoals/Views/Directives/myRootGoals.html'),\r\n bindToController: true,\r\n controller: bizMyRootGoalsDirectiveController,\r\n controllerAs: 'vm'\r\n };\r\n\r\n bizMyRootGoalsDirectiveController.$inject = [\"modules.goals.service\", \"$state\", \"$rootScope\", \"$filter\"];\r\n\r\n return directive;\r\n\r\n function bizMyRootGoalsDirectiveController(engagementGoalsService, $state, $rootScope, $filter) {\r\n var vm = this; \r\n\r\n vm.GetGoals = GetGoals; \r\n vm.Init = Init;\r\n vm.GotoToGoal = GotoToGoal; \r\n\r\n function GotoToGoal(goal) {\r\n $state.go(\"base.modules.goals.onegoal\", { id: goal.Id });\r\n } \r\n\r\n function GetGoals() {\r\n engagementGoalsService.GetGoals(true).then(GetGoalsCallback);\r\n\r\n function GetGoalsCallback(response) {\r\n var goals = BizPartCoreHelpers.getResponseValue(response, []); \r\n vm.Goals = $filter('filter')(goals, { ParentGoalId: -1 });\r\n }\r\n }\r\n \r\n function Init() { \r\n if (vm.Goals === undefined) {\r\n vm.GetGoals();\r\n }\r\n }\r\n\r\n vm.$onInit = vm.Init;\r\n\r\n $rootScope.$on('GOAL_NEW_DATE_SELECTED', function () {\r\n vm.GetGoals();\r\n });\r\n \r\n\r\n $rootScope.$on('GOALCREATED', function (event, goal) {\r\n if (goal.ParentGoalId <= 0) {\r\n vm.Goals.push(goal);\r\n }\r\n });\r\n }\r\n }\r\n\r\n}());","(function () { \r\n angular.module('bizPartEngage').directive('bizMyTasks', bizMyTasksDirective); \r\n\r\n bizMyTasksDirective.$inject = [\"bizCore\"]; \r\n\r\n function bizMyTasksDirective(bizCoreProvider) {\r\n var directive = {\r\n restrict: 'E',\r\n scope: {\r\n activity: '=?',\r\n includeCompleted: '@?',\r\n showFilter: '@?',\r\n ignoreTaskId: '@?'\r\n },\r\n templateUrl: bizCoreProvider.getView('bizMyTasksDirective', 'FrontEnd/Modules/EngagementGoals/Views/Directives/myTasks.html'),\r\n controller: bizMyTasksController,\r\n controllerAs: 'vm',\r\n bindToController: true\r\n };\r\n\r\n bizMyTasksController.$inject = [\"$scope\", \"modules.goals.service\", \"$state\"];\r\n\r\n return directive;\r\n\r\n function bizMyTasksController($scope, engagementGoalsService, $state) {\r\n var vm = this;\r\n vm.OrderBy = ['Status', 'Deadline'];\r\n vm.OrderDesc = false;\r\n\r\n vm.ChangeOrderBy = ChangeOrderBy;\r\n vm.SetCurrentFilterMode = SetCurrentFilterMode;\r\n\r\n function ChangeOrderBy(order, desc) {\r\n switch(order) {\r\n case 'Task':\r\n if(vm.OrderBy == 'Text' && desc === undefined) {\r\n vm.OrderDesc = !vm.OrderDesc;\r\n }\r\n else {\r\n vm.OrderBy = 'Text';\r\n vm.OrderDesc = desc || false;\r\n }\r\n break;\r\n case 'Activity':\r\n if(vm.OrderBy == 'LinkedObject.Text' && desc === undefined) {\r\n vm.OrderDesc = !vm.OrderDesc;\r\n }\r\n else {\r\n vm.OrderBy = 'LinkedObject.Text';\r\n vm.OrderDesc = desc || false;\r\n }\r\n break;\r\n case 'Goal':\r\n if(vm.OrderBy == 'LinkedObject.GoalName' && desc === undefined) {\r\n vm.OrderDesc = !vm.OrderDesc;\r\n }\r\n else {\r\n vm.OrderBy = 'LinkedObject.GoalName';\r\n vm.OrderDesc = desc || false;\r\n }\r\n break; \r\n case 'Deadline':\r\n if(vm.OrderBy == 'DateLocal' && desc === undefined) {\r\n vm.OrderDesc = !vm.OrderDesc;\r\n }\r\n else {\r\n vm.OrderBy = 'DateLocal';\r\n vm.OrderDesc = desc || false;\r\n }\r\n break; \r\n case 'Status':\r\n if(vm.OrderBy[0] == 'Status' && vm.OrderBy[1] == 'Deadline' && desc === undefined) {\r\n vm.OrderDesc = !vm.OrderDesc;\r\n }\r\n else {\r\n vm.OrderBy = ['Status', 'Deadline'];\r\n vm.OrderDesc = desc || false;\r\n }\r\n break; \r\n }\r\n }\r\n\r\n vm.FilterMode = {\r\n All: { \r\n Match: function (task) { \r\n return ~~vm.ignoreTaskId !== task.Id;\r\n }\r\n },\r\n Upcoming: { \r\n Match: function (task) {\r\n return ~~vm.ignoreTaskId !== task.Id && !IsExpired(task) && !task.IsCompleted;\r\n }\r\n },\r\n Expired: { \r\n Match: function (task) {\r\n return ~~vm.ignoreTaskId !== task.Id && IsExpired(task);\r\n }\r\n },\r\n Completed: { \r\n Match: function (task) {\r\n return ~~vm.ignoreTaskId !== task.Id && task.IsCompleted;\r\n }\r\n }\r\n };\r\n\r\n function SetCurrentFilterMode(mode) {\r\n vm.CurrentFilterMode = vm.FilterMode[mode];\r\n setLocalStorage('myTaskFilterMode', mode);\r\n }\r\n\r\n vm.CurrentFilterMode = vm.FilterMode.All;\r\n\r\n vm.GetTasks = GetTasks;\r\n vm.CompleteToDo = CompleteToDo;\r\n vm.Init = Init;\r\n vm.GotoTask = GotoTask;\r\n vm.IsExpired = IsExpired; \r\n vm.FilterTasks = FilterTasks;\r\n vm.GetTaskCount = GetTaskCount;\r\n vm.AddTaskStatus = AddTaskStatus;\r\n\r\n function FilterTasks() {\r\n return function (tsk) {\r\n return vm.CurrentFilterMode.Match(tsk); \r\n }\r\n }\r\n\r\n function GetTaskCount(filterMode) {\r\n var count = 0;\r\n if (!vm.tasks) {\r\n return count;\r\n }\r\n for (var i = 0; i < vm.tasks.length; i++) {\r\n if (filterMode.Match(vm.tasks[i])) {\r\n count++;\r\n }\r\n }\r\n return count;\r\n }\r\n\r\n function GotoTask(task) {\r\n $state.go(\"base.modules.goals.tasks\", { id: task.Id });\r\n }\r\n\r\n function GetTasks() {\r\n var inclCompleted = vm.includeCompleted === 'true';\r\n engagementGoalsService.GetTasks(inclCompleted).then(GetTasksCallback);\r\n\r\n function GetTasksCallback(response) {\r\n if (!vm.tasks) {\r\n var tasks = BizPartCoreHelpers.getResponseValue(response, []);\r\n vm.tasks = tasks;\r\n\r\n vm.AddTaskStatus(vm.tasks);\r\n\r\n console.log(vm.tasks);\r\n }\r\n }\r\n }\r\n\r\n function AddTaskStatus(tasks) {\r\n // 30 = Completed, 20 = Upcomming, 10 = Too late\r\n\r\n for(var i = 0; i < tasks.length; i++) {\r\n if(tasks[i].IsCompleted) {\r\n tasks[i].Status = 30;\r\n }\r\n else if(vm.IsExpired(tasks[i])) {\r\n tasks[i].Status = 10;\r\n }\r\n else if(!vm.IsExpired(tasks[i]) && !tasks[i].IsCompleted) {\r\n tasks[i].Status = 20;\r\n }\r\n }\r\n }\r\n\r\n function CompleteToDo(todo) {\r\n if (!todo.IsCompleted) {\r\n engagementGoalsService.CompleteTask(todo).then(CompleteToDoCallback);\r\n }\r\n\r\n function CompleteToDoCallback(response) {\r\n var index = vm.tasks.indexOf(todo);\r\n if (vm.includeCompleted === 'true') {\r\n todo.IsCompleted = true;\r\n todo.Status = 30;\r\n } else {\r\n vm.tasks.splice(index, 1);\r\n }\r\n }\r\n }\r\n\r\n function IsExpired(task) {\r\n return !task.IsCompleted && moment(task.DateLocal) < BizPartCoreHelpers.getDateNow();\r\n } \r\n\r\n function Init() {\r\n var currentFilterMode = getLocalStorage('myTaskFilterMode');\r\n if(currentFilterMode) {\r\n vm.CurrentFilterMode = vm.FilterMode[currentFilterMode];\r\n }\r\n\r\n if (vm.activity && vm.activity.ToDoList) {\r\n vm.tasks = vm.activity.ToDoList;\r\n vm.AddTaskStatus(vm.tasks);\r\n } else {\r\n vm.GetTasks();\r\n }\r\n }\r\n\r\n vm.$onInit = vm.Init;\r\n\r\n $scope.$watch(\"vm.activity\", function () {\r\n if (vm.activity && vm.activity.ToDoList) {\r\n vm.tasks = vm.activity.ToDoList;\r\n }\r\n });\r\n }\r\n }\r\n\r\n}());","(function () { \r\n angular.module('bizPartEngage').directive('bizOneGoalActivity', bizOneGoalActivityDirective);\r\n \r\n bizOneGoalActivityDirective.$inject = [\"bizCore\"]; \r\n\r\n function bizOneGoalActivityDirective(bizCoreProvider) {\r\n var directive = {\r\n restrict: 'E',\r\n scope: {\r\n activity: '='\r\n },\r\n templateUrl: bizCoreProvider.getView('bizOneGoalActivityDirective', 'FrontEnd/Modules/EngagementGoals/Views/Directives/oneActivity.html'),\r\n bindToController: true,\r\n controller: bizOneGoalActivityController,\r\n controllerAs: 'vm'\r\n };\r\n\r\n bizOneGoalActivityController.$inject = [\"modules.goals.service\", \"$scope\", \"$q\", \"$mdToast\", \"$timeout\", \"bizValidationService\", \"$rootScope\", \"$mdDialog\", \"$state\"];\r\n\r\n return directive;\r\n\r\n function bizOneGoalActivityController(engagementGoalsService, $scope, $q, $mdToast, $timeout, bizValidationService, $rootScope, $mdDialog, $state) {\r\n var vm = this;\r\n\r\n vm.Init = Init;\r\n vm.GetGoalTypes = GetGoalTypes;\r\n vm.GetGoals = GetGoals;\r\n vm.Save = Save;\r\n vm.SetActivityLoaded = SetActivityLoaded;\r\n\r\n vm.activityIsLoadedDefer = $q.defer();\r\n vm.activityIsLoaded = vm.activityIsLoadedDefer.promise;\r\n vm.Back = Back;\r\n vm.DeleteActivity = DeleteActivity;\r\n\r\n function Back() {\r\n window.history.back();\r\n }\r\n\r\n function GetGoals() {\r\n var pGetGoals = engagementGoalsService.GetGoals();\r\n $q.all([pGetGoals, vm.activityIsLoaded]).then(GetGoalsCallback);\r\n\r\n function GetGoalsCallback(result) {\r\n var goals = BizPartCoreHelpers.getResponseValue(result[0], []); \r\n goals = goals.filter(g => g.ParentGoalId > 0);\r\n var activityGoal;\r\n\r\n for (var i = 0; i < goals.length; i++) {\r\n if (goals[i].Id == vm.activity.GoalId) { \r\n activityGoal = goals[i];\r\n } \r\n }\r\n\r\n if (activityGoal) {\r\n vm.SelectedGoal = activityGoal;\r\n }\r\n else if (goals.length) {\r\n //vm.SelectedGoal = goals[0];\r\n }\r\n \r\n vm.Goals = goals;\r\n }\r\n }\r\n\r\n function Save() {\r\n if (vm.MyForm && !bizValidationService.FormValid(vm.MyForm))\r\n \t\t return;\r\n\r\n vm.activity.DateLocal = moment(vm.activity.DateLocalDate);\r\n vm.activity.GoalId = vm.SelectedGoal.Id;\r\n vm.activity.GoalTypeId = vm.SelectedType ? vm.SelectedType.Id : 0;\r\n var saveData = {\r\n Activity: vm.activity,\r\n Comment: vm.NewComment\r\n };\r\n if (saveData.Activity.GoalValue && typeof saveData.Activity.GoalValue !== \"number\")\r\n saveData.Activity.GoalValue = ~~saveData.Activity.GoalValue.replace(/\\s/g, '');\r\n\r\n if (saveData.Activity.GoalValue && saveData.Activity.GoalValue <= 0) {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent('Nyckelområdets tal måste vara större än 0')\r\n .position('bottom right')\r\n );\r\n return;\r\n }\r\n\r\n engagementGoalsService.CreateUpdateActivity(saveData).then(SaveActivityCallback);\r\n\r\n function SaveActivityCallback(response) {\r\n var newCreated = vm.activity.Id <= 0;\r\n var activity = BizPartCoreHelpers.getResponseValue(response); \r\n vm.NewComment = undefined; \r\n if (newCreated) {\r\n vm.activity = {\r\n Id: 0,\r\n GoalId: activity.GoalId,\r\n GoalValue: activity.GoalValue,\r\n GoalTypeId: vm.SelectedType ? vm.SelectedType.Id : 0,\r\n DateLocalDate: moment(activity.DateLocal).format('YYYY-MM-DD'),\r\n };\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent('Nyckelområde sparat, lägg till ännu fler om du vill!')\r\n .position('bottom right')\r\n ); \r\n \r\n $rootScope.$broadcast('GOALACTIVITYCREATED', activity);\r\n } else {\r\n vm.activity = activity;\r\n vm.activity.DateLocalDate = moment(vm.activity.DateLocal).format('YYYY-MM-DD');\r\n vm.EditMode = false;\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent('Nyckelområde sparat')\r\n .position('bottom right')\r\n ); \r\n } \r\n\r\n //$timeout(function () {\r\n // vm.Back();\r\n //}, 1000);\r\n } \r\n }\r\n\r\n function GetGoalTypes() {\r\n engagementGoalsService.GetGoalTypes().then(GetGoalTypesCallback);\r\n\r\n function GetGoalTypesCallback(response) {\r\n vm.GoalTypes = BizPartCoreHelpers.getResponseValue(response, []); \r\n\r\n $q.when(vm.activityIsLoaded).then(function () {\r\n if (vm.activity.GoalTypeId) {\r\n vm.SelectedType = vm.GoalTypes.GetItemByValue('Id', vm.activity.GoalTypeId);\r\n }\r\n });\r\n }\r\n }\r\n\r\n function DeleteActivity() {\r\n var confirm = $mdDialog.confirm()\r\n .title('Radera')\r\n .textContent('Är du säker på att du vill radera detta \"nyckelområde\"?')\r\n .ok('Ja')\r\n .cancel('Avbryt');\r\n\r\n $mdDialog.show(confirm).then(function () {\r\n engagementGoalsService.DeleteActivity(vm.activity.Id).then(function (response) {\r\n $state.go('base.modules.goals.engagementgoals');\r\n }); \r\n }, function () {\r\n \r\n });\r\n }\r\n\r\n function Init() {\r\n vm.GetGoalTypes();\r\n\r\n if (vm.activity) {\r\n var period = engagementGoalsService.GetSelectedPeriod();\r\n if (vm.activity.Id === 0) {\r\n vm.activity.Text = ''\r\n vm.EditMode = true;\r\n vm.activity.DateLocal = period.IsCurrentPeriod ? BizPartCoreHelpers.getDateNow() : period.EndDate;\r\n }\r\n vm.SetActivityLoaded();\r\n }\r\n\r\n vm.GetGoals();\r\n }\r\n\r\n function SetActivityLoaded() {\r\n vm.activity.DateLocalDate = moment(vm.activity.DateLocal).format('YYYY-MM-DD');\r\n vm.activityIsLoadedDefer.resolve('');\r\n vm.unbindActivityWatch();\r\n }\r\n\r\n $scope.$watch(\"vm.SelectedGoal\", function () {\r\n if (vm.SelectedGoal && ~~vm.activity.Id <= 0) { \r\n vm.activity.DateLocalDate = moment(vm.SelectedGoal.DateToLocal).format('YYYY-MM-DD');\r\n }\r\n });\r\n\r\n vm.unbindActivityWatch = $scope.$watch(\"vm.activity\", function () {\r\n if (vm.activity !== undefined) {\r\n vm.SetActivityLoaded();\r\n }\r\n });\r\n\r\n vm.$onInit = vm.Init;\r\n }\r\n }\r\n\r\n}());","(function () { \r\n angular.module('bizPartEngage').directive('bizOneGoal', bizOneGoalDirective); \r\n \r\n bizOneGoalDirective.$inject = [\"bizCore\"];\r\n\r\n function bizOneGoalDirective(bizCoreProvider) {\r\n var directive = {\r\n restrict: 'E',\r\n scope: {\r\n goalId: '=',\r\n isRoot: '=?'\r\n },\r\n templateUrl: bizCoreProvider.getView('bizOneGoalDirective', 'FrontEnd/Modules/EngagementGoals/Views/Directives/oneGoal.html'),\r\n bindToController: true,\r\n controller: bizOneGoalController,\r\n controllerAs: 'vm',\r\n };\r\n\r\n bizOneGoalController.$inject = [\"modules.goals.service\", \"$mdDialog\", \"$scope\", \"$mdToast\", \"$timeout\", \"bizValidationService\", \"$state\", \"$q\", \"$rootScope\", \"$filter\", \"bizMediabankService\"];\r\n\r\n function bizOneGoalController(engagementGoalsService, $mdDialog, $scope, $mdToast, $timeout, bizValidationService, $state, $q, $rootScope, $filter, bizMediabankService) {\r\n var vm = this;\r\n\r\n vm.DefaultNewProgressSteps = 5;\r\n vm.NewProgressSteps = 5;\r\n\r\n vm.EditDate = moment();\r\n\r\n vm.deleteMode = true;\r\n vm.UploadSettings = {\r\n FileType: bizMediabankService.FileTypes.Image,\r\n FileLocation: bizMediabankService.UploadLocations.Goal,\r\n FilePattern: '',\r\n IsPrivate: true,\r\n IsInvisible: false,\r\n IsPrivateControlHidden: true,\r\n IsInvisibleControlHidden: true,\r\n IsUser: true\r\n };\r\n\r\n vm.labels = [\"Utfall\", \"Återstående\"];\r\n vm.colors = [\"#0079EA\", \"#65AEF2\"];\r\n vm.options = { cutoutPercentage: 75, title: {\r\n display: false,\r\n text: 'Utfallsrapportering'\r\n } };\r\n vm.data = [0, 100];\r\n \r\n vm.SelectedPeriod = engagementGoalsService.GetSelectedPeriod();\r\n vm.Date = BizPartCoreHelpers.getDateNow();\r\n vm.Years = [\r\n {\r\n Name: moment(vm.Date).year() + '',\r\n Id: moment(vm.Date).year(),\r\n StartDate: moment(vm.Date).startOf('year'),\r\n EndDate: moment(vm.Date).endOf('year')\r\n },\r\n {\r\n Name: moment(vm.Date).add(1, 'years').year() + '',\r\n Id: moment(vm.Date).add(1, 'years').year(),\r\n StartDate: moment(vm.Date).add(1, 'years').startOf('year'),\r\n EndDate: moment(vm.Date).add(1, 'years').endOf('year')\r\n }\r\n ]; \r\n\r\n vm.SelectedYear = vm.Years[0]; \r\n\r\n vm.goalTypesLoadedDefer = $q.defer();\r\n vm.goalTypesLoaded = vm.goalTypesLoadedDefer.promise;\r\n vm.rootGoalsLoadedDefer = $q.defer();\r\n vm.rootGoalsLoaded = vm.rootGoalsLoadedDefer.promise;\r\n\r\n vm.EditMode = false;\r\n vm.FirstTimeCreate = false;\r\n vm.Save = Save;\r\n vm.LockGoal = LockGoal;\r\n vm.Init = Init;\r\n vm.ShowDeactivate = ShowDeactivate;\r\n vm.Back = Back;\r\n vm.IsExpired = IsExpired;\r\n vm.CompleteTask = CompleteTask;\r\n vm.IncreaseNewProgress = IncreaseNewProgress;\r\n vm.DecreaseNewProgress = DecreaseNewProgress; \r\n vm.FixSortingToDoList = FixSortingToDoList; \r\n vm.GoToActivity = GoToActivity;\r\n vm.GoToTask = GoToTask;\r\n vm.GetGoalTypes = GetGoalTypes; \r\n vm.GetRootGoals = GetRootGoals;\r\n vm.GetGoal = GetGoal;\r\n vm.SetProgressStep = SetProgressStep;\r\n vm.CreateChildGoalSuggestion = CreateChildGoalSuggestion;\r\n vm.RemoveChildGoalSuggestion = RemoveChildGoalSuggestion; \r\n vm.SelectImage = SelectImage;\r\n vm.SetEditMode = SetEditMode;\r\n vm.CancelEdit = CancelEdit;\r\n \r\n vm.lblFunction = lblFunction;\r\n\r\n function SelectImage() {\r\n bizMediabankService.ShowMediabankDialog(vm.Image, null, vm.UploadSettings).then(ShowMediabankDialogCallback);\r\n\r\n function ShowMediabankDialogCallback(file) { \r\n if (!file)\r\n return;\r\n vm.Image = file;\r\n }\r\n } \r\n\r\n function lblFunction(val, max) {\r\n return Math.round(val) + vm.goal.GoalType.Suffix;\r\n }\r\n\r\n function RemoveChildGoalSuggestion(index) {\r\n vm.ChildGoalSuggestions.splice(index, 1);\r\n }\r\n\r\n function CreateChildGoalSuggestion(split) {\r\n var suggestions = [];\r\n\r\n var monthsPerSplit = 12 / split; \r\n var goalValueReminder = vm.goal.GoalValue % split; \r\n\r\n for (var i = 0; i < split; i++) {\r\n var periodStart = moment(vm.SelectedYear.StartDate).startOf('month').add((i * monthsPerSplit), 'M');\r\n var periodEnd = moment(periodStart).add(monthsPerSplit - 1, 'M').endOf('month');\r\n var textSuffix = (split == 4 ? 'Q' : split === 3 ? 'T' : '') + (i + 1) + '';\r\n var goalValue = Math.floor(vm.goal.GoalValue / split);\r\n var endList = [];\r\n for (var j = 0; j < monthsPerSplit; j++) {\r\n var month = moment(periodEnd).add(-j, 'M');\r\n endList.push({\r\n Name: moment(month).format('DD MMMM'),\r\n Date: month\r\n });\r\n }\r\n suggestions.push({\r\n Text: vm.goal.Text + ' ' + textSuffix,\r\n DateFromLocal: moment(periodStart).format('YYYY-MM-DD'),\r\n SelectedToDate: endList[0],\r\n GoalValue: goalValue,\r\n EndList: endList\r\n });\r\n }\r\n\r\n console.log(suggestions);\r\n\r\n for (var i = 0; i < suggestions.length && goalValueReminder > 0; i++) {\r\n suggestions[i].GoalValue++;\r\n goalValueReminder--;\r\n }\r\n\r\n vm.ChildGoalSuggestions = suggestions;\r\n } \r\n\r\n function GoToActivity(id) {\r\n if (id > 0) {\r\n $state.go(\"base.modules.goals.activity\", { id: id });\r\n }\r\n }\r\n\r\n function GoToTask(id) {\r\n if (id > 0) {\r\n $state.go(\"base.modules.goals.onetask\", { id: id });\r\n }\r\n }\r\n\r\n function SetProgressStep() {\r\n vm.NewProgressSteps = vm.DefaultNewProgressSteps;\r\n if (vm.SelectedType.SystemName !== 'PERCENT') {\r\n if (vm.goal.GoalValue < 100) {\r\n vm.NewProgressSteps = 1;\r\n } else if (vm.goal.GoalValue > 1000) {\r\n vm.NewProgressSteps = vm.DefaultNewProgressSteps * 100;\r\n }\r\n } \r\n }\r\n\r\n function IncreaseNewProgress() {\r\n if (vm.Date > vm.SelectedPeriod.StartDate) {\r\n vm.EditMode = true;\r\n vm.SetProgressStep();\r\n var newValue = vm.NewProgress + 1;\r\n while (newValue % vm.NewProgressSteps != 0) {\r\n newValue++;\r\n }\r\n vm.NewProgress = newValue; \r\n \r\n vm.Dirty = true;\r\n }\r\n }\r\n\r\n function DecreaseNewProgress() {\r\n if (vm.Date > vm.SelectedPeriod.StartDate) {\r\n vm.EditMode = true;\r\n vm.SetProgressStep();\r\n var newValue = vm.NewProgress - 1;\r\n while (newValue % vm.NewProgressSteps != 0) {\r\n newValue--;\r\n }\r\n vm.NewProgress = newValue;\r\n\r\n vm.Dirty = true;\r\n } \r\n } \r\n\r\n function CompleteTask(task, act) {\r\n engagementGoalsService.CompleteTask(task).then(CompleteToDoCallback);\r\n\r\n function CompleteToDoCallback(response) {\r\n var index = act.ToDoList.indexOf(task);\r\n act.ToDoList.splice(index, 1);\r\n }\r\n }\r\n\r\n function IsExpired(task) {\r\n return !task.IsCompleted && moment(task.DateLocal) < BizPartCoreHelpers.getDateNow();\r\n }\r\n\r\n function FixSortingToDoList(toDoList) {\r\n for(var i = 0; i < toDoList.length; i++) {\r\n var item = toDoList[i];\r\n\r\n if(vm.IsExpired(item)) {\r\n item.Status = 10;\r\n }\r\n else if(!item.IsCompleted) {\r\n item.Status = 20;\r\n }\r\n else if(item.IsCompleted) {\r\n item.Status = 30;\r\n }\r\n }\r\n }\r\n\r\n function Back() {\r\n window.history.back();\r\n }\r\n\r\n function ShowDeactivate() {\r\n var parentEl = angular.element(document.querySelector('#goal-progress'));\r\n $mdDialog.show({\r\n parent: parentEl,\r\n targetEvent: parentEl,\r\n templateUrl: siteRootPath + 'FrontEnd/Modules/EngagementGoals/Views/deactivateGoalPopup.html',\r\n controller: ShowDeactivateController,\r\n controllerAs: \"vm\",\r\n bindToController: true,\r\n clickOutsideToClose: true,\r\n locals: {\r\n goal: vm.goal,\r\n deleteMode: vm.deleteMode\r\n }\r\n }).then(ShowDeactivateCallback, function (response) { });\r\n\r\n function ShowDeactivateCallback() {\r\n if (vm.deleteMode) {\r\n $state.go('base.modules.goals.engagementgoals');\r\n } else {\r\n engagementGoalsService.GetGoal(vm.goal.Id).then(function (response) {\r\n vm.goal = BizPartCoreHelpers.getResponseValue(response);\r\n });\r\n }\r\n }\r\n\r\n ShowDeactivateController.$inject = [\"$mdDialog\"];\r\n\r\n function ShowDeactivateController($mdDialog) {\r\n var vm = this;\r\n\r\n vm.Close = Close;\r\n\r\n function Close() {\r\n $mdDialog.hide();\r\n }\r\n }\r\n }\r\n\r\n function GetGoalTypes() {\r\n engagementGoalsService.GetGoalTypes().then(GetGoalTypesCallback);\r\n\r\n function GetGoalTypesCallback(response) {\r\n vm.GoalTypes = BizPartCoreHelpers.getResponseValue(response, []);\r\n vm.goalTypesLoadedDefer.resolve(''); \r\n }\r\n }\r\n\r\n function GetRootGoals() {\r\n engagementGoalsService.GetGoals().then(GetGoalsCallback);\r\n\r\n function GetGoalsCallback(response) {\r\n var goals = BizPartCoreHelpers.getResponseValue(response, []); \r\n vm.RootGoals = $filter('filter')(goals, { ParentGoalId: -1 });\r\n vm.rootGoalsLoadedDefer.resolve('');\r\n }\r\n }\r\n\r\n function SetEditMode() {\r\n vm.PreEditGoal = angular.copy(vm.goal);\r\n vm.PreEditImage = angular.copy(vm.Image);\r\n vm.EditMode = true;\r\n }\r\n\r\n function CancelEdit() {\r\n vm.EditMode = false;\r\n vm.goal = vm.PreEditGoal;\r\n vm.Image = vm.PreEditImage;\r\n vm.NewProgress = vm.goal.ProgressSum;\r\n }\r\n\r\n function Save() { \r\n\r\n if (vm.MyForm && !bizValidationService.FormValid(vm.MyForm))\r\n return; \r\n \r\n vm.goal.ImageMediabankId = vm.Image ? vm.Image.Id : -1;\r\n vm.goal.GoalTypeId = vm.SelectedType.Id;\r\n vm.goal.ParentGoalId = vm.SelectedRootGoal ? vm.SelectedRootGoal.Id : -1;\r\n\r\n var saveData = {};\r\n if (vm.goal.Id <= 0 || !vm.goal.IsLocked) {\r\n saveData.Goal = vm.goal;\r\n }\r\n\r\n if (vm.ChildGoalSuggestions) {\r\n for (var i = 0; i < vm.ChildGoalSuggestions.length; i++) {\r\n vm.ChildGoalSuggestions[i].GoalTypeId = vm.goal.GoalTypeId;\r\n vm.ChildGoalSuggestions[i].IsNegative = vm.goal.IsNegative;\r\n vm.ChildGoalSuggestions[i].DateToLocal = vm.ChildGoalSuggestions[i].SelectedToDate.Date;\r\n }\r\n\r\n saveData.ChildGoals = vm.ChildGoalSuggestions;\r\n }\r\n\r\n if (vm.NewProgress) {\r\n var change = vm.NewProgress - vm.goal.ProgressSum;\r\n var progressDate = vm.NewProgressDate;\r\n if (moment(progressDate).isSame(new Date(), \"day\")) {\r\n progressDate = moment();\r\n }\r\n if (change != 0) {\r\n saveData.Progress = {\r\n Value: change,\r\n DateLocal: progressDate,\r\n LinkedObjectId: vm.goal.Id\r\n };\r\n }\r\n }\r\n\r\n if (vm.NewComment) {\r\n saveData.Comment = {\r\n Comment: vm.NewComment,\r\n ObjectId: vm.goal.Id\r\n };\r\n } \r\n\r\n if (!saveData.Goal && !saveData.Progress && !saveData.Comment) {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent('Inget ändrat')\r\n .position('bottom right')\r\n );\r\n } else {\r\n //We need to trim spaces to make it a valit int.\r\n if (saveData.goal && typeof saveData.Goal.GoalValue !== \"number\")\r\n saveData.Goal.GoalValue = ~~saveData.Goal.GoalValue.replace(/\\s/g, '');\r\n\r\n // Added support for min/max values in bizValidation\r\n //if (saveData.goal && saveData.Goal.GoalValue <= 0) {\r\n // $mdToast.show(\r\n // $mdToast.simple()\r\n // .textContent('Målets tal måste vara större än 0')\r\n // .position('bottom right')\r\n // );\r\n // return;\r\n //}\r\n \r\n if (vm.isRoot && vm.goal.Id > 0 && ((vm.OriginalType && vm.OriginalType !== vm.goal.GoalTypeId)\r\n || (vm.OriginalIsNegative !== undefined && vm.OriginalIsNegative !== vm.goal.IsNegative))) {\r\n\r\n var confirm = $mdDialog.confirm()\r\n .title('Ändring')\r\n .textContent('Du har ändrat typ och/eller negativ-status. Samtliga kvartalsmål kommer också att uppdateras med den nya typen och/eller negativ-status.')\r\n .ok('Ok')\r\n .cancel('Avbryt');\r\n\r\n $mdDialog.show(confirm).then(function () {\r\n CreateUpdateGoal(saveData);\r\n }, function () {\r\n\r\n });\r\n\r\n } else {\r\n CreateUpdateGoal(saveData);\r\n }\r\n\r\n function CreateUpdateGoal(saveData) {\r\n engagementGoalsService.CreateUpdateGoal(saveData).then(CreateUpdateGoalCallback);\r\n\r\n function CreateUpdateGoalCallback(response) {\r\n //var isCreated = vm.goal.Id <= 0;\r\n vm.goal = BizPartCoreHelpers.getResponseValue(response);\r\n if (vm.goal.ImageUrl) {\r\n vm.Image = {\r\n FileUrl: vm.goal.ImageUrl\r\n }; \r\n }\r\n vm.NewComment = undefined;\r\n vm.OriginalType = vm.goal.GoalTypeId;\r\n vm.OriginalIsNegative = vm.goal.IsNegative;\r\n if (vm.FirstTimeCreate) {\r\n $rootScope.$broadcast('GOALCREATED', vm.goal);\r\n vm.goal = {\r\n DateFromLocal: vm.SelectedPeriod.StartDate.format('YYYY-MM-DD'),\r\n DateToLocal: vm.SelectedPeriod.EndDate.format('YYYY-MM-DD'),\r\n IsActive: true,\r\n Text: '',\r\n IsLocked: false,\r\n Id: 0\r\n };\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent('Mål skapat')\r\n .position('bottom right')\r\n );\r\n } else {\r\n vm.EditMode = false;\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent('Mål uppdaterat')\r\n .position('bottom right')\r\n );\r\n }\r\n }\r\n } \r\n } \r\n }\r\n\r\n function LockGoal(ev) {\r\n var confirm = $mdDialog.confirm()\r\n .title('Vill du låsa målet?')\r\n .textContent('Du kan inte redigera målet igen efter att det låsts')\r\n .ariaLabel('Vill du låsa målet?')\r\n .targetEvent(ev)\r\n .ok('Lås')\r\n .cancel('Avbryt');\r\n\r\n $mdDialog.show(confirm).then(function () {\r\n engagementGoalsService.LockGoal(vm.goal.Id).then(LockGoalCallback); \r\n }, function () {\r\n \r\n });\r\n \r\n function LockGoalCallback(response) {\r\n vm.goal.IsLocked = true;\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent('The goal is now locked')\r\n .position('bottom right')\r\n );\r\n }\r\n }\r\n\r\n function GenerateEditMonths() {\r\n var months = moment(vm.goal.DateToLocal).diff(vm.goal.DateFromLocal, 'months') + 1;\r\n\r\n vm.EditMonths = [];\r\n\r\n for(var i = 0; i < months; i++) {\r\n var date = moment(vm.goal.DateFromLocal).endOf('month');\r\n if(i > 0) {\r\n date = moment(vm.goal.DateFromLocal).add(i, 'months').endOf('month');\r\n }\r\n vm.EditMonths.push({\r\n Name: moment(date).format('DD MMMM'),\r\n Value: moment(date).format('YYYY-MM-DD HH:mm:ss')\r\n });\r\n }\r\n\r\n vm.SelectedNewMonth = vm.EditMonths[vm.EditMonths.length - 1];\r\n\r\n $rootScope.$watch(function() { return vm.SelectedNewMonth; }, function(newVal, oldVal) {\r\n if(!vm.isRoot && newVal) {\r\n vm.goal.DateToLocal = newVal.Value;\r\n }\r\n });\r\n }\r\n\r\n function GetGoal() {\r\n engagementGoalsService.GetGoal(vm.goalId).then(GetGoalCallback);\r\n\r\n function GetGoalCallback(response) {\r\n vm.goal = BizPartCoreHelpers.getResponseValue(response); \r\n \r\n GenerateEditMonths();\r\n\r\n if (vm.goal.ImageUrl) {\r\n vm.Image = {\r\n FileUrl: vm.goal.ImageUrl\r\n }; \r\n }\r\n\r\n vm.isRoot = vm.goal.ParentGoalId <= 0;\r\n\r\n vm.OriginalType = vm.goal.GoalTypeId;\r\n vm.OriginalIsNegative = vm.goal.IsNegative;\r\n\r\n $q.when(vm.goalTypesLoaded).then(function () {\r\n if (vm.goal.GoalTypeId) {\r\n vm.SelectedType = vm.GoalTypes.GetItemByValue('Id', vm.goal.GoalTypeId);\r\n }\r\n });\r\n\r\n $q.when(vm.rootGoalsLoaded).then(function () {\r\n if (vm.goal.ParentGoalId > 0) {\r\n vm.SelectedRootGoal = vm.RootGoals.GetItemByValue('Id', vm.goal.ParentGoalId);\r\n }\r\n });\r\n }\r\n } \r\n\r\n function Init() { \r\n vm.GetGoalTypes();\r\n vm.GetRootGoals();\r\n\r\n if (vm.goalId) {\r\n vm.GetGoal();\r\n } else {\r\n vm.goal = {\r\n DateFromLocal: vm.SelectedPeriod.StartDate.format('YYYY-MM-DD'),\r\n DateToLocal: vm.SelectedPeriod.EndDate.format('YYYY-MM-DD'),\r\n IsActive: true,\r\n Text: '',\r\n IsLocked: false,\r\n Id: 0\r\n };\r\n vm.EditMode = true;\r\n vm.FirstTimeCreate = true;\r\n }\r\n \r\n vm.NewProgressDate = BizPartCoreHelpers.getDateNow().format('YYYY-MM-DD');\r\n } \r\n\r\n $scope.$watch(\"vm.goal.ProgressSum\", function () {\r\n if (vm.goal) {\r\n vm.NewProgress = vm.goal.ProgressSum;\r\n\r\n var percent = vm.goal.ProgressSumInPercent;\r\n if (percent > 100) {\r\n percent = 100;\r\n }\r\n vm.data = [Math.round(percent), Math.round(100 - percent)];\r\n }\r\n }); \r\n\r\n $scope.$watch(\"vm.NewProgress\", function () {\r\n if (vm.goal && !vm.EditMode && vm.NewProgress !== vm.goal.ProgressSum) {\r\n vm.EditMode = true;\r\n }\r\n }); \r\n\r\n $scope.$watch(\"vm.SelectedYear\", function () {\r\n if (vm.goal && vm.goal.Id <= 0 && !vm.SelectedRootGoal && vm.SelectedYear) {\r\n vm.goal.DateFromLocal = vm.SelectedYear.StartDate.format('YYYY-MM-DD');\r\n vm.goal.DateToLocal = vm.SelectedYear.EndDate.format('YYYY-MM-DD');\r\n }\r\n }); \r\n\r\n $scope.$watch(\"vm.SelectedRootGoal\", function () {\r\n if (vm.goal && vm.goal.Id <= 0) {\r\n if (vm.SelectedRootGoal) {\r\n vm.goal.DateFromLocal = vm.SelectedPeriod.StartDate.format('YYYY-MM-DD');\r\n vm.goal.DateToLocal = vm.SelectedPeriod.EndDate.format('YYYY-MM-DD');\r\n vm.goal.IsNegative = vm.SelectedRootGoal.IsNegative;\r\n vm.SelectedType = vm.SelectedRootGoal.GoalType;\r\n } else {\r\n vm.goal.DateFromLocal = vm.SelectedYear.StartDate.format('YYYY-MM-DD');\r\n vm.goal.DateToLocal = vm.SelectedYear.EndDate.format('YYYY-MM-DD');\r\n } \r\n }\r\n }); \r\n\r\n vm.SelectedRootGoal\r\n\r\n vm.$onInit = vm.Init;\r\n }\r\n\r\n return directive;\r\n }\r\n\r\n}());","(function () {\r\n angular\r\n .module('bizPartEngage')\r\n .directive('bizOneGoalTask', bizOneGoalTaskDirective);\r\n\r\n bizOneGoalTaskDirective.$inject = ['bizCore'];\r\n\r\n function bizOneGoalTaskDirective(bizCoreProvider) {\r\n var directive = {\r\n restrict: 'E',\r\n scope: {\r\n task: '=',\r\n },\r\n templateUrl: bizCoreProvider.getView(\r\n 'bizOneGoalTaskDirective',\r\n 'FrontEnd/Modules/EngagementGoals/Views/Directives/oneTask.html'\r\n ),\r\n bindToController: true,\r\n controller: bizOneGoalTaskController,\r\n controllerAs: 'vm',\r\n };\r\n\r\n bizOneGoalTaskController.$inject = [\r\n 'modules.goals.service',\r\n '$q',\r\n '$scope',\r\n '$state',\r\n '$mdToast',\r\n 'bizValidationService',\r\n '$mdDialog',\r\n ];\r\n\r\n return directive;\r\n\r\n function bizOneGoalTaskController(\r\n engagementGoalsService,\r\n $q,\r\n $scope,\r\n $state,\r\n $mdToast,\r\n bizValidationService,\r\n $mdDialog\r\n ) {\r\n var vm = this;\r\n\r\n vm.SelectedPeriod = engagementGoalsService.GetSelectedPeriod();\r\n vm.DateSettings = {\r\n min: moment(vm.SelectedPeriod.StartDate),\r\n max: moment(vm.SelectedPeriod.EndDate),\r\n };\r\n\r\n vm.EditMode = false;\r\n vm.taskIsLoadedDefer = $q.defer();\r\n vm.taskIsLoaded = vm.taskIsLoadedDefer.promise;\r\n\r\n vm.Settings = {\r\n display: 'bubble',\r\n touchUi: false,\r\n buttons: ['Ok', 'Cancel'],\r\n dateWheels: 'mmyy',\r\n max: moment().add(1, 'day'),\r\n };\r\n\r\n vm.Init = Init;\r\n vm.GetActivities = GetActivities;\r\n vm.Save = Save;\r\n vm.CancelEdit = CancelEdit;\r\n vm.SetTaskLoaded = SetTaskLoaded;\r\n vm.SetTaskDates = SetTaskDates;\r\n vm.CompleteTask = CompleteTask;\r\n vm.GetGoalTypes = GetGoalTypes;\r\n vm.DeleteTask = DeleteTask;\r\n vm.UncompleteTask = UncompleteTask;\r\n\r\n function CompleteTask() {\r\n engagementGoalsService\r\n .CompleteTask(vm.task)\r\n .then(CompleteTaskCallback);\r\n\r\n function CompleteTaskCallback(response) {\r\n vm.task.IsCompleted = true;\r\n $state.reload();\r\n //$mdToast.show(\r\n // $mdToast.simple()\r\n // .textContent('The task has been completed')\r\n // .position('bottom right')\r\n //);\r\n }\r\n }\r\n\r\n function UncompleteTask() {\r\n engagementGoalsService\r\n .UncompleteTask(vm.task.Id)\r\n .then(UncompleteTaskCallback);\r\n\r\n function UncompleteTaskCallback(response) {\r\n vm.task.IsCompleted = false;\r\n $state.reload();\r\n }\r\n }\r\n\r\n function CancelEdit() {\r\n if (~~vm.task.Id > 0) {\r\n vm.EditMode = false;\r\n } else {\r\n $state.go('base.modules.goals.tasks');\r\n }\r\n }\r\n\r\n function GetActivities() {\r\n engagementGoalsService\r\n .GetActivitiesByGoalDate()\r\n .then(GetActivitiesCallback);\r\n\r\n function GetActivitiesCallback(response) {\r\n var activities = BizPartCoreHelpers.getResponseValue(\r\n response,\r\n []\r\n );\r\n //for (var i = 0; i < activities.length; i++) {\r\n // //activities[i].Name = activities[i].GoalName + ': ' + activities[i].Text;\r\n //}\r\n vm.AllActivities = activities;\r\n\r\n //if (vm.AllActivities.length) {\r\n // vm.SelectedActivity = vm.AllActivities[0];\r\n //}\r\n\r\n $q.when(vm.taskIsLoaded).then(function () {\r\n var goalFilteredActivities = [];\r\n for (var i = 0; i < vm.AllActivities.length; i++) {\r\n if (\r\n vm.AllActivities[i].Id ===\r\n vm.task.LinkedObjectId\r\n ) {\r\n vm.SelectedActivity = vm.AllActivities[i];\r\n goalFilteredActivities.push(\r\n vm.AllActivities[i]\r\n );\r\n } else if (\r\n vm.AllActivities[i].GoalId === vm.task.GoalId\r\n ) {\r\n goalFilteredActivities.push(\r\n vm.AllActivities[i]\r\n );\r\n }\r\n }\r\n\r\n if (vm.task.GoalId) {\r\n vm.AllActivities = goalFilteredActivities;\r\n }\r\n });\r\n }\r\n }\r\n\r\n function DeleteTask() {\r\n var confirm = $mdDialog\r\n .confirm()\r\n .title('Radera')\r\n .textContent(\r\n 'Är du säker på att du vill radera denna \"Att göra\"?'\r\n )\r\n .ok('Ja')\r\n .cancel('Avbryt');\r\n\r\n $mdDialog.show(confirm).then(\r\n function () {\r\n engagementGoalsService\r\n .DeleteTask(vm.task.Id)\r\n .then(function (response) {\r\n $state.go('base.modules.goals.engagementgoals');\r\n });\r\n },\r\n function () {}\r\n );\r\n }\r\n\r\n function Save() {\r\n if (vm.MyForm && !bizValidationService.FormValid(vm.MyForm))\r\n return;\r\n\r\n vm.task.DateLocal = vm.EditDate;\r\n vm.task.LinkedObjectId = vm.SelectedActivity.Id;\r\n vm.task.GoalTypeId = vm.SelectedType ? vm.SelectedType.Id : 0;\r\n\r\n var saveData = {\r\n Todo: vm.task,\r\n Comment: vm.NewComment,\r\n };\r\n\r\n if (\r\n saveData.Todo.GoalValue &&\r\n typeof saveData.Todo.GoalValue !== 'number'\r\n )\r\n saveData.Todo.GoalValue = ~~saveData.Todo.GoalValue.replace(\r\n /\\s/g,\r\n ''\r\n );\r\n\r\n engagementGoalsService\r\n .CreateUpdateTask(saveData)\r\n .then(CreateUpdateTaskCallback);\r\n\r\n function CreateUpdateTaskCallback(response) {\r\n // if(~~vm.task.Id <= 0) {\r\n\r\n // }\r\n\r\n window.history.back();\r\n\r\n // vm.NewComment = undefined;\r\n // vm.task = BizPartCoreHelpers.getResponseValue(response);\r\n // vm.SetTaskDates();\r\n // vm.EditMode = false;\r\n\r\n // $mdToast.show(\r\n // $mdToast.simple()\r\n // .textContent('The task has been saved')\r\n // .position('bottom right')\r\n // );\r\n }\r\n }\r\n\r\n function SetTaskDates() {\r\n if (vm.task.DateLocal) {\r\n vm.EditDate = moment(vm.task.DateLocal);\r\n }\r\n }\r\n\r\n function GetGoalTypes() {\r\n engagementGoalsService\r\n .GetGoalTypes()\r\n .then(GetGoalTypesCallback);\r\n\r\n function GetGoalTypesCallback(response) {\r\n vm.GoalTypes = BizPartCoreHelpers.getResponseValue(\r\n response,\r\n []\r\n );\r\n\r\n $q.when(vm.taskIsLoaded).then(function () {\r\n if (vm.task.GoalTypeId) {\r\n vm.SelectedType = vm.GoalTypes.GetItemByValue(\r\n 'Id',\r\n vm.task.GoalTypeId\r\n );\r\n }\r\n });\r\n }\r\n }\r\n\r\n function Init() {\r\n vm.GetGoalTypes();\r\n if (vm.task && vm.task.Id === 'new') {\r\n vm.task = {\r\n Text: '',\r\n GoalId: vm.task.GoalId,\r\n LinkedObjectId: vm.task.ActivityId,\r\n };\r\n //vm.EditDate = engagementGoalsService.GetSelectedQuarter().Date,\r\n vm.EditMode = true;\r\n }\r\n vm.GetActivities();\r\n }\r\n\r\n function SetTaskLoaded() {\r\n vm.SetTaskDates();\r\n vm.taskIsLoadedDefer.resolve('');\r\n vm.unbindTaskWatch();\r\n }\r\n\r\n vm.unbindTaskWatch = $scope.$watch('vm.task', function () {\r\n if (vm.task !== undefined) {\r\n vm.SetTaskLoaded();\r\n }\r\n });\r\n\r\n //does not work :()\r\n //$scope.$watch(\"vm.SelectedActivity\", function () {\r\n // if (vm.SelectedActivity) {\r\n // vm.TaskDatePicker.settings.min = moment(vm.SelectedActivity.GoalFromDate);\r\n // vm.TaskDatePicker.settings.max = moment(vm.SelectedActivity.GoalToDate);\r\n // }\r\n //});\r\n\r\n vm.$onInit = vm.Init;\r\n }\r\n }\r\n})();\r\n","(function () {\r\n angular.module('bizPartEngage').directive('bizGoalTaskStatus', bizGoalTaskStatusDirective);\r\n\r\n bizGoalTaskStatusDirective.$inject = [\"bizCore\"];\r\n\r\n function bizGoalTaskStatusDirective(bizCoreProvider) {\r\n var directive = {\r\n restrict: 'E',\r\n scope: {\r\n task: '=task'\r\n },\r\n templateUrl: bizCoreProvider.getView('bizGoalTaskStatus', 'FrontEnd/Modules/EngagementGoals/Views/Directives/taskStatus.html'),\r\n bindToController: true,\r\n controller: bizGoalTaskStatusController,\r\n controllerAs: 'vm'\r\n };\r\n\r\n bizGoalTaskStatusController.$inject = [];\r\n\r\n return directive;\r\n\r\n function bizGoalTaskStatusController() {\r\n var vm = this;\r\n\r\n vm.Init = Init;\r\n vm.IsExpired = IsExpired;\r\n\r\n function IsExpired(task) {\r\n return !task.IsCompleted && moment(task.DateLocal) < BizPartCoreHelpers.getDateNow();\r\n } \r\n \r\n\r\n function Init() {\r\n if (vm.task.IsCompleted) {\r\n vm.task.Status = 30;\r\n }\r\n else if (vm.IsExpired(vm.task)) {\r\n vm.task.Status = 10;\r\n }\r\n else if (!vm.IsExpired(vm.task) && !vm.task.IsCompleted) {\r\n vm.task.Status = 20;\r\n }\r\n }\r\n\r\n vm.$onInit = vm.Init; \r\n }\r\n }\r\n\r\n}());","(function (angular) {\r\n angular.module('bizPartEngage').controller('modules.goals.activitylist', indexController);\r\n angular.module('bizPartEngage').controller('modules.goals.activity', activityController);\r\n\r\n indexController.$inject = [\"modules.goals.service\", \"$stateParams\"];\r\n activityController.$inject = [\"modules.goals.service\", \"$stateParams\"];\r\n\r\n function indexController(engagementGoalsService, $stateParams) {\r\n var vm = this;\r\n \r\n \r\n vm.$onInit = function () { \r\n \r\n }\r\n }\r\n\r\n function activityController(engagementGoalsService, $stateParams) {\r\n var vm = this; \r\n\r\n vm.activityId = ~~$stateParams.id;\r\n vm.goalId = ~~$stateParams.goalId;\r\n\r\n vm.SelectedPeriod = engagementGoalsService.GetSelectedPeriod();\r\n vm.Date = BizPartCoreHelpers.getDateNow();\r\n\r\n vm.GetOneActivity = GetOneActivity;\r\n vm.Back = Back;\r\n\r\n function Back() {\r\n window.history.back();\r\n }\r\n\r\n function GetOneActivity(id) { \r\n engagementGoalsService.GetOneActivity(id).then(GetOneActivityCallback);\r\n\r\n function GetOneActivityCallback(response) {\r\n vm.activity = BizPartCoreHelpers.getResponseValue(response); \r\n }\r\n }\r\n\r\n\r\n vm.$onInit = function () {\r\n if (vm.activityId > 0) {\r\n vm.GetOneActivity(vm.activityId);\r\n } else { \r\n vm.activity = {\r\n Id: 0,\r\n GoalId: vm.goalId\r\n };\r\n } \r\n }\r\n }\r\n\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').controller('modules.goals.calendar', indexController);\r\n\r\n indexController.$inject = [\"modules.goals.calendar.service\", \"modules.goals.service\", \"$stateParams\", \"mobiEvent\"];\r\n\r\n function indexController(calendarService, engagementGoalsService, $stateParams, event) {\r\n var vm = this;\r\n\r\n vm.Tasks = [];\r\n vm.events = [];\r\n\r\n vm.GetTasks = GetTasks;\r\n\r\n function GetTasks() { \r\n engagementGoalsService.GetTasks(true, BizPartCoreHelpers.getDateNow().subtract(3, 'months'), BizPartCoreHelpers.getDateNow().add(3, 'months')).then(GetTasksCallback);\r\n\r\n function GetTasksCallback(response) {\r\n vm.Tasks = BizPartCoreHelpers.getResponseValue(response, []);\r\n\r\n vm.events = [];\r\n for (var i = 0; i < vm.Tasks.length; i++) {\r\n var task = vm.Tasks[i];\r\n var color = \"#65AEF2\";\r\n \r\n if(task.IsCompleted) {\r\n color = \"#3dd452\";\r\n }\r\n\r\n vm.events.push(new event(task.Id, \"TASK\", task.Text, task.DateLocal, null, color));\r\n }\r\n }\r\n }\r\n\r\n vm.$onInit = function () {\r\n vm.GetTasks();\r\n }\r\n }\r\n\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').service('modules.goals.calendar.service', calendarService);\r\n\r\n calendarService.$inject = [\"$http\"];\r\n\r\n function calendarService($http) {\r\n\r\n\r\n }\r\n\r\n})(window.angular);","(function (angular) {\r\n angular.module('bizPartEngage').controller('modules.goals.dashboard', indexController);\r\n\r\n indexController.$inject = [\"modules.goals.service\", \"bizUser\", \"mobiEvent\", \"$rootScope\", \"$filter\"];\r\n\r\n function indexController(engagementGoalsService, bizUser, event, $rootScope, $filter) {\r\n var vm = this;\r\n vm.Tasks = [];\r\n\r\n vm.labels = [\"Framsteg\", \"Kvar\"];\r\n vm.colors = [\"#0079EA\", \"#65AEF2\"];\r\n vm.options = { cutoutPercentage: 75 };\r\n vm.data = [0, 100];\r\n vm.UserProgressSum = {};\r\n vm.UserProgressSum.ProgressValue = 0;\r\n\r\n vm.events = [];\r\n\r\n vm.LoggedInUserId = bizUser.getLoggedInUser().Id; \r\n\r\n vm.Init = Init;\r\n\r\n vm.GetProgressSum = GetProgressSum;\r\n vm.GetTasks = GetTasks;\r\n vm.GoToNextPeriod = GoToNextPeriod;\r\n vm.GoToPreviousPeriod = GoToPreviousPeriod;\r\n vm.IsSelectedPeriodInCurrentYear = IsSelectedPeriodInCurrentYear;\r\n vm.GetGoals = GetGoals;\r\n\r\n function GoToNextPeriod() {\r\n engagementGoalsService.IncreaseSelectedPeriod();\r\n $rootScope.$broadcast('GOAL_NEW_DATE_SELECTED');\r\n vm.Init();\r\n }\r\n\r\n function GoToPreviousPeriod() {\r\n engagementGoalsService.DecreaseSelectedPeriod();\r\n $rootScope.$broadcast('GOAL_NEW_DATE_SELECTED');\r\n vm.Init();\r\n }\r\n\r\n function IsSelectedPeriodInCurrentYear() {\r\n var selected = engagementGoalsService.GetSelectedPeriod().StartDate;\r\n return BizPartCoreHelpers.getDateNow().year() == moment(selected).year();\r\n }\r\n \r\n\r\n function GetProgressSum() {\r\n \r\n engagementGoalsService.GetProgressSum(true).then(GetProgressSumCallback);\r\n\r\n function GetProgressSumCallback(response) {\r\n vm.ProgressSum = BizPartCoreHelpers.getResponseValue(response);\r\n console.log(vm.ProgressSum);\r\n\r\n if (vm.ProgressSum.length > 0) {\r\n vm.UserProgressSum = vm.ProgressSum.GetItemByValue('UserId', vm.LoggedInUserId);\r\n var progressValue = vm.UserProgressSum.ProgressValue; \r\n if (progressValue > 100) {\r\n progressValue = 100;\r\n }\r\n vm.data = [Math.round(progressValue), Math.round(100 - progressValue)];\r\n } \r\n } \r\n }\r\n\r\n function GetTasks() {\r\n engagementGoalsService.GetTasks(true, moment().subtract(3, 'months'), moment().add(3, 'months')).then(GetTasksCallback);\r\n\r\n function GetTasksCallback(response) {\r\n vm.Tasks = BizPartCoreHelpers.getResponseValue(response, []);\r\n\r\n vm.events = [];\r\n for(var i = 0; i < vm.Tasks.length; i++) {\r\n var task = vm.Tasks[i];\r\n var color = \"#65AEF2\";\r\n \r\n if(task.IsCompleted) {\r\n color = \"#3dd452\";\r\n }\r\n\r\n vm.events.push(new event(task.Id, \"TASK\", task.Text, task.DateLocal, null, color));\r\n }\r\n }\r\n }\r\n\r\n function GetGoals() {\r\n engagementGoalsService.GetGoals().then(GetGoalsCallback);\r\n\r\n function GetGoalsCallback(response) {\r\n var goals = BizPartCoreHelpers.getResponseValue(response, []); \r\n vm.NegativeGoals = $filter('filter')(goals, { IsNegative: true });\r\n }\r\n }\r\n\r\n function Init() {\r\n vm.SelectedPeriod = engagementGoalsService.GetSelectedPeriod();\r\n vm.GetProgressSum();\r\n vm.GetTasks();\r\n vm.GetGoals();\r\n }\r\n \r\n vm.$onInit = function () {\r\n vm.Init();\r\n }\r\n\r\n $rootScope.$on('GOALPROGRESSUPDATED', function (event) { \r\n vm.GetProgressSum();\r\n });\r\n }\r\n\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').controller('modules.goals.engagementgoals', indexController);\r\n angular.module('bizPartEngage').controller('modules.goals.onegoal', oneGoalController);\r\n\r\n indexController.$inject = [\"modules.goals.service\", \"$filter\"];\r\n oneGoalController.$inject = [\"modules.goals.service\", \"$stateParams\"];\r\n\r\n function indexController(engagementGoalsService, $filter) {\r\n var vm = this; \r\n vm.RootGoals = []; \r\n\r\n vm.SelectedPeriod = engagementGoalsService.GetSelectedPeriod();\r\n\r\n vm.GetRootGoals = GetRootGoals;\r\n\r\n vm.lblFunction = lblFunction;\r\n\r\n function lblFunction(val, max, goal) {\r\n return Math.round(val) + goal.GoalType.Suffix;\r\n }\r\n\r\n function GetRootGoals() {\r\n engagementGoalsService.GetGoals(true).then(GetRootGoalsCallback);\r\n\r\n function GetRootGoalsCallback(response) {\r\n var goals = BizPartCoreHelpers.getResponseValue(response, []); \r\n vm.RootGoals = $filter('filter')(goals, { ParentGoalId: -1 });\r\n }\r\n }\r\n\r\n vm.$onInit = function () { \r\n vm.GetRootGoals();\r\n }\r\n }\r\n\r\n function oneGoalController(engagementGoalsService, $stateParams) {\r\n var vm = this;\r\n //vm.GetOneGoal = GetOneGoal;\r\n\r\n vm.goalId = ~~$stateParams.id; \r\n vm.newRoot = $stateParams.id === 'new-root'; \r\n\r\n //function GetOneGoal(id) {\r\n // engagementGoalsService.GetGoal(id).then(GetGoalCallback);\r\n\r\n // function GetGoalCallback(response) {\r\n // vm.goal = BizPartCoreHelpers.getResponseValue(response); \r\n // }\r\n //}\r\n\r\n vm.$onInit = function () {\r\n //if (vm.goalId > 0) {\r\n // vm.GetOneGoal(vm.goalId);\r\n //} else {\r\n // vm.goal = {\r\n // Id: 'new'\r\n // };\r\n //}\r\n }\r\n }\r\n\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').controller('modules.goals.managersettings', indexController); \r\n\r\n indexController.$inject = [\"modules.goals.service\", \"base.service\", \"$mdToast\", \"$rootScope\", \"$mdDialog\"]; \r\n\r\n function indexController(engagementGoalsService, baseService, $mdToast, $rootScope, $mdDialog) {\r\n var vm = this; \r\n\r\n vm.ReportPeriodTypes = [\r\n {\r\n Name: 'Vecka',\r\n Id: 1\r\n },\r\n {\r\n Name: 'Månad',\r\n Id: 2\r\n }\r\n ];\r\n\r\n vm.DatePickerSettings = {\r\n min: BizPartCoreHelpers.getDateNow().startOf('year')\r\n };\r\n\r\n vm.DayList = [];\r\n\r\n vm.Init = Init; \r\n vm.GetMeetingInfo = GetMeetingInfo;\r\n vm.SavePeriodMode = SavePeriodMode;\r\n vm.SaveMeetingInfo = SaveMeetingInfo;\r\n vm.GetMeetings = GetMeetings;\r\n vm.SaveMeeting = SaveMeeting;\r\n vm.DeleteMeeting = DeleteMeeting;\r\n vm.MeetingHasPassed = MeetingHasPassed;\r\n\r\n function SavePeriodMode() {\r\n engagementGoalsService.SetPeriodMode(vm.PeriodMode, vm.SelectedUnit.Id).then(SetPeriodModeCallback);\r\n\r\n function SetPeriodModeCallback(response) {\r\n vm.OriginalPeriodMode = vm.PeriodMode;\r\n\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent('Period ändrad')\r\n .position('bottom right')\r\n );\r\n }\r\n }\r\n\r\n function SaveMeetingInfo() {\r\n\r\n engagementGoalsService.SetMeetingInfo(vm.MeetingInfo.PeriodType, vm.MeetingInfo.MeetingDay, vm.SelectedUnit.Id).then(SetMeetingInfoCallback);\r\n\r\n function SetMeetingInfoCallback(response) {\r\n vm.OriginalMeetingInfo = angular.copy(vm.MeetingInfo);\r\n\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent('Rapportinställningar ändrad')\r\n .position('bottom right')\r\n );\r\n }\r\n }\r\n\r\n function SaveMeeting() {\r\n \r\n engagementGoalsService.CreateUpdateMeeting({\r\n Date: vm.AddMeetingDate,\r\n UnitId: vm.SelectedUnit.Id\r\n }).then(CreateUpdateMeetingCallback);\r\n\r\n function CreateUpdateMeetingCallback(response) {\r\n var meeting = BizPartCoreHelpers.getResponseValue(response);\r\n vm.MeetingList.push(meeting);\r\n\r\n vm.ShowNewMeeting = false;\r\n vm.AddMeetingDate = undefined;\r\n }\r\n }\r\n\r\n function GetMeetingInfo() {\r\n engagementGoalsService.GetMeetingInfo().then(GetMeetingInfoCallback);\r\n\r\n function GetMeetingInfoCallback(response) {\r\n vm.MeetingInfo = BizPartCoreHelpers.getResponseValue(response);\r\n vm.OriginalMeetingInfo = angular.copy(vm.MeetingInfo);\r\n }\r\n }\r\n\r\n function GetMeetings() {\r\n engagementGoalsService.GetMeetings(vm.SelectedUnit.Id).then(GetMeetingsCallback);\r\n\r\n function GetMeetingsCallback(response) {\r\n vm.MeetingList = BizPartCoreHelpers.getResponseValue(response);\r\n }\r\n }\r\n\r\n function DeleteMeeting(meeting) { \r\n \r\n var confirm = $mdDialog.confirm()\r\n .title('Radera')\r\n .textContent('Är du säker på att du vill radera detta \"mötet\"?')\r\n .ok('Ja')\r\n .cancel('Avbryt');\r\n\r\n $mdDialog.show(confirm).then(function () {\r\n engagementGoalsService.DeleteMeeting(meeting.Id).then(DeleteMeetingCallback);\r\n }, function () {\r\n\r\n });\r\n \r\n \r\n function DeleteMeetingCallback(response) {\r\n var index = vm.MeetingList.indexOf(meeting);\r\n vm.MeetingList.splice(index, 1);\r\n }\r\n }\r\n\r\n function MeetingHasPassed(meeting) { \r\n return BizPartCoreHelpers.getDateNow().startOf('day') > moment(meeting.Date).startOf('day'); \r\n }\r\n\r\n function Init() { \r\n vm.User = $rootScope.LoggedInUser;\r\n if (vm.User.Units.length > 0) {\r\n vm.SelectedUnit = vm.User.Units[0];\r\n }\r\n\r\n for (var i = 1; i < 8; i++) {\r\n vm.DayList.push({\r\n Name: moment.weekdays(i),\r\n Id: i\r\n });\r\n }\r\n\r\n vm.GetMeetingInfo();\r\n vm.PeriodModeList = engagementGoalsService.GetPeriodModes();\r\n vm.PeriodMode = vm.OriginalPeriodMode = baseService.GetFrontEndModuleSettingValue('Goals', 'PeriodMode');\r\n vm.GetMeetings(); \r\n }\r\n\r\n $rootScope.Initialized.then(vm.Init);\r\n }\r\n \r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').controller('modules.goals.resultreport', indexController);\r\n\r\n indexController.$inject = [\"modules.goals.service\", \"$q\", \"bizUser\", \"$stateParams\", \"$filter\", \"mobiEvent\", \"$mdToast\"];\r\n\r\n function indexController(goalService, $q, bizUser, $stateParams, $filter, event, $mdToast) {\r\n var vm = this\r\n\r\n vm.PeriodTypes = ['Week', 'Month']; \r\n vm.PeriodType = vm.PeriodTypes[0]\r\n vm.PeriodDayBreak = 5;\r\n\r\n vm.labels = [\"Framsteg\", \"Kvar\"];\r\n vm.colors = [\"#0079EA\", \"#65AEF2\"];\r\n vm.options = { cutoutPercentage: 75 };\r\n vm.data = [0, 100];\r\n vm.userData = [0, 100];\r\n vm.UserProgressSum = {};\r\n vm.UserProgressSum.ProgressValue = 0;\r\n vm.ToolTipDateFormat = \"DD MMM\";\r\n vm.RootGoals = [];\r\n vm.Goals = [];\r\n\r\n vm.CommentCount = 0;\r\n\r\n vm.UserId = ~~$stateParams.userid;\r\n if (vm.UserId <= 0) {\r\n vm.UserId = bizUser.getLoggedInUser().Id;\r\n } \r\n\r\n vm.PeriodCommentSettings = {\r\n NewCommentData: {\r\n PreventReplies: true\r\n }\r\n };\r\n\r\n vm.NextPeriodCommentSettings = {\r\n PreventReplies: true,\r\n HideDate: true\r\n };\r\n \r\n vm.CurrentDate = BizPartCoreHelpers.getDateNow();\r\n vm.SelectedPeriod = goalService.GetSelectedPeriod();\r\n\r\n //not used anymore?\r\n //vm.IsFirstWeekInQuarter = goalService.GetIsFirstWeekInQuarter(vm.CurrentDate);\r\n\r\n vm.PeriodLengthInDays = 7;\r\n\r\n vm.TasksInPeriod = [];\r\n vm.TasksInPreviousPeriod = [];\r\n\r\n vm.LoadTasks = LoadTasks; \r\n //vm.GetCurrentProgress = GetCurrentProgress;\r\n //vm.GetProgressPeriodCompare = GetProgressPeriodCompare;\r\n vm.GetTodoCount = GetTodoCount;\r\n //vm.PopulateProgressChart = PopulateProgressChart; \r\n //vm.GetUserProgressSum = GetUserProgressSum; \r\n //vm.IsExpired = IsExpired;\r\n vm.GetGoalAndActivityComments = GetGoalAndActivityComments;\r\n vm.GetGoals = GetGoals;\r\n vm.lblFunction = lblFunction; \r\n\r\n function lblFunction(val, max, goal) {\r\n return Math.round(val) + goal.GoalType.Suffix;\r\n }\r\n vm.GetGoalsForUsersInSameUnit = GetGoalsForUsersInSameUnit;\r\n\r\n function GetGoalsForUsersInSameUnit() {\r\n goalService.GetGoalsForUsersInSameUnit().then(GetDataCallback);\r\n\r\n function GetDataCallback(response) {\r\n vm.UsersInSameUnit = response.data;\r\n }\r\n }\r\n\r\n function GetGoals() {\r\n goalService.GetGoals(true).then(GetGoalsCallback); \r\n \r\n function GetGoalsCallback(response) {\r\n var allGoals = response.data;\r\n vm.Goals = [];\r\n vm.RootGoals = [];\r\n \r\n for(var i = 0; i < allGoals.length; i++) {\r\n if(allGoals[i].ParentGoalId > 0) {\r\n vm.Goals.push(allGoals[i]);\r\n }\r\n else {\r\n vm.RootGoals.push(allGoals[i]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n //function IsExpired(task) {\r\n // return !task.IsCompleted && moment(task.DateLocal) < moment();\r\n //} \r\n\r\n //function PopulateProgressChart() {\r\n // vm.ProgressChartOptions = {\r\n // maintainAspectRatio: false,\r\n // legend: {\r\n // display: true\r\n // },\r\n // scales: {\r\n // yAxes: [{\r\n // ticks: {\r\n // beginAtZero: true,\r\n // suggestedMax: 100\r\n // }\r\n // }]\r\n // },\r\n // layout: {\r\n // padding: {\r\n // left: 10\r\n // }\r\n // }\r\n // };\r\n \r\n // goalService.GetProgressByWeek(vm.UserId, vm.CurrentDate).then(GetProgressByWeekCallback); \r\n\r\n // function GetProgressByWeekCallback(response) {\r\n // var progressByWeek = BizPartCoreHelpers.getResponseValue(response); \r\n\r\n // vm.ProgressChartLabels = [];\r\n // vm.ProgressChartData = [];\r\n // vm.ProgressChartSeries = [];\r\n\r\n // var thisWeek = moment().week();\r\n // var thisYear = moment().year();\r\n \r\n // var data = []; \r\n // //starting point\r\n // vm.ProgressChartLabels.push('');\r\n // data.push(0);\r\n // for (var i = 0; i < progressByWeek.length; i++) {\r\n // vm.ProgressChartLabels.push('v' + progressByWeek[i].Week);\r\n // if (progressByWeek[i].Week <= thisWeek && progressByWeek[i].Year <= thisYear) {\r\n // data.push(progressByWeek[i].ProgressSumAggregated); \r\n // } \r\n // } \r\n\r\n // vm.ProgressChartSeries.push('Summering av dina inrapporterade målutfall per vecka.');\r\n // vm.ProgressChartData.push(data); \r\n // vm.ThisWeekData = progressByWeek.GetItemByValue('Week', moment().week()); \r\n // } \r\n //}\r\n\r\n function LoadTasks() { \r\n goalService.GetTasks(true, vm.PeriodStart, vm.PeriodEnd, vm.UserId).then(GetTasksCallback);\r\n goalService.GetTasks(false, vm.NextPeriodStart, vm.NextPeriodEnd, vm.UserId).then(GetTasksNextPeriodCallback);\r\n\r\n function GetTasksCallback(response) { \r\n vm.TasksInPeriod = BizPartCoreHelpers.getResponseValue(response);\r\n var completedTasks = 0;\r\n var notCompletedTasks = 0;\r\n vm.events = [];\r\n\r\n for (var i = 0; i < vm.TasksInPeriod.length; i++) {\r\n var task = vm.TasksInPeriod[i];\r\n var color = \"#65AEF2\";\r\n\r\n if (vm.TasksInPeriod[i].IsCompleted) {\r\n completedTasks++;\r\n color = \"#3dd452\";\r\n } else {\r\n notCompletedTasks++;\r\n }\r\n \r\n vm.events.push(new event(task.Id, \"TASK\", task.Text, task.DateLocal, null, color));\r\n }\r\n vm.CompletedTasksForUser = completedTasks;\r\n vm.NotCompletedTasksForUser = notCompletedTasks;\r\n } \r\n\r\n function GetTasksNextPeriodCallback(response) {\r\n vm.TasksInNextPeriod = BizPartCoreHelpers.getResponseValue(response);\r\n }\r\n }\r\n\r\n //function GetProgressPeriodCompare() {\r\n // goalService.GetProgressSum(true, vm.CurrentDate, vm.PeriodStart, vm.PeriodEnd, vm.PreviousPeriodStart, vm.PreviousPeriodEnd).then(GetProgressForPeriodCompareCallback);\r\n\r\n // function GetProgressForPeriodCompareCallback(response) {\r\n // vm.ProgressForPeriodCompare = BizPartCoreHelpers.getResponseValue(response); \r\n // vm.UserProgressForPeriodCompare = vm.ProgressForPeriodCompare.GetItemByValue('UserId', vm.UserId); \r\n // }\r\n //}\r\n\r\n //function GetCurrentProgress() {\r\n // goalService.GetProgressSum(true).then(GetProgressSumForUserCallback);\r\n\r\n // function GetProgressSumForUserCallback(response) {\r\n // var unitProgress = BizPartCoreHelpers.getResponseValue(response); \r\n // vm.CurrentProgressPercent = unitProgress.GetItemByValue('UserId', vm.UserId);\r\n\r\n // var totalProgressSum = 0;\r\n // for (var i = 0; i < unitProgress.length; i++) {\r\n // totalProgressSum += unitProgress[i].ProgressValue;\r\n // }\r\n // vm.TotalProgressSum = unitProgress.length > 0 ? totalProgressSum / unitProgress.length : 0;\r\n\r\n // var totalProgress = vm.TotalProgressSum;\r\n // if (totalProgress > 100) {\r\n // totalProgress = 100;\r\n // }\r\n // vm.data = [Math.round(totalProgress), Math.round(100 - totalProgress)];\r\n // }\r\n //}\r\n\r\n function GetTodoCount() {\r\n $q.all([\r\n goalService.GetTodoCountForUsersInSameUnit(vm.PeriodStart, vm.PeriodEnd),\r\n goalService.GetTodoCountForUsersInSameUnit(vm.PreviousPeriodStart, vm.PreviousPeriodEnd)\r\n ]).then(GetTodoCountsCallback);\r\n\r\n function GetTodoCountsCallback(result) {\r\n var inPeriod = BizPartCoreHelpers.getResponseValue(result[0]);\r\n var prevPeriod = BizPartCoreHelpers.getResponseValue(result[1]);\r\n\r\n vm.TasksCompletedInPeriod = inPeriod.Completed;\r\n vm.TasksNotCompletedInPeriod = inPeriod.NotCompleted;\r\n\r\n var completedInPreviousPeriod = prevPeriod.Completed;\r\n var notCompletedInPreviousPeriod = prevPeriod.NotCompleted; \r\n\r\n vm.TasksCompletedInPreviousPeriod = completedInPreviousPeriod;\r\n vm.TasksNotCompletedInPreviousPeriod = notCompletedInPreviousPeriod;\r\n\r\n vm.TasksCompletedChange = vm.TasksCompletedInPeriod - completedInPreviousPeriod;\r\n vm.TaksNotCompletedChange = vm.TasksNotCompletedInPeriod - notCompletedInPreviousPeriod;\r\n\r\n vm.TasksCompletedChangePercent = completedInPreviousPeriod > 0 ? (vm.TasksCompletedChange / completedInPreviousPeriod) * 100 : 0;\r\n vm.TasksNotCompletedChangePercent = notCompletedInPreviousPeriod > 0 ? (vm.TaksNotCompletedChange / notCompletedInPreviousPeriod) * 100 : 0;\r\n }\r\n } \r\n \r\n //function GetUserProgressSum() {\r\n // goalService.GetProgressSum(true).then(GetProgressSumCallback);\r\n\r\n // function GetProgressSumCallback(response) {\r\n \r\n // var progressSum = BizPartCoreHelpers.getResponseValue(response);\r\n\r\n // if (progressSum.length > 0) {\r\n // vm.UserProgressSum = progressSum.GetItemByValue('UserId', vm.UserId);\r\n // var progressValue = vm.UserProgressSum.ProgressValue;\r\n // if (progressValue > 100) {\r\n // progressValue = 100;\r\n // }\r\n // vm.userData = [Math.round(progressValue), Math.round(100 - progressValue)];\r\n // }\r\n // }\r\n //}\r\n\r\n function GetGoalAndActivityComments() {\r\n goalService.GetGoalAndActivityComments(vm.PeriodStart, vm.PeriodEnd).then(GetGoalAndActivityCommentsCallback);\r\n\r\n function GetGoalAndActivityCommentsCallback(response) {\r\n vm.GoalAndActivityComments = BizPartCoreHelpers.getResponseValue(response);\r\n }\r\n } \r\n \r\n vm.$onInit = function () { \r\n\r\n goalService.GetMeetingInfo().then(function (response) {\r\n \r\n var meetingInfo = BizPartCoreHelpers.getResponseValue(response);\r\n\r\n if (meetingInfo.PeriodType === 1) {\r\n var periodEnd = BizPartCoreHelpers.getDateNow();\r\n while (periodEnd.isoWeekday() !== meetingInfo.MeetingDay) {\r\n periodEnd.add(1, 'days');\r\n }\r\n\r\n vm.PeriodEnd = moment(periodEnd).endOf('day');\r\n vm.PeriodStart = moment(vm.PeriodEnd).add(-6, 'days').startOf('day');\r\n\r\n vm.PreviousPeriodEnd = moment(vm.PeriodStart).add(-1, 'days').endOf('day');\r\n vm.PreviousPeriodStart = moment(vm.PreviousPeriodEnd).add(-6, 'days').startOf('day');\r\n\r\n vm.NextPeriodStart = moment(vm.PeriodEnd).add(1, 'days').startOf('day');\r\n vm.NextPeriodEnd = moment(vm.NextPeriodStart).add(6, 'days').endOf('day');\r\n } else {\r\n\r\n if (!meetingInfo.CurrentMeeting) {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent('Inget möte finns inlagt. Kontakta din teamleader.')\r\n .position('bottom right')\r\n );\r\n } else {\r\n \r\n vm.PeriodStart = moment(meetingInfo.CurrentMeeting.PeriodStart); \r\n vm.PeriodEnd = moment(meetingInfo.CurrentMeeting.PeriodEnd);\r\n\r\n if (meetingInfo.PreviousMeeting && meetingInfo.PreviousMeeting.PeriodEnd) {\r\n vm.PreviousPeriodEnd = moment(meetingInfo.PreviousMeeting.PeriodEnd);\r\n } else {\r\n vm.PreviousPeriodEnd = moment(vm.PeriodStart).add(-1, 'days').endOf('day');\r\n }\r\n\r\n if (meetingInfo.PreviousMeeting && meetingInfo.PreviousMeeting.PeriodStart) {\r\n vm.PreviousPeriodStart = moment(meetingInfo.PreviousMeeting.PeriodStart);\r\n } else {\r\n vm.PreviousPeriodStart = moment(vm.PreviousPeriodEnd).add(-30, 'days').startOf('day');\r\n }\r\n\r\n if (meetingInfo.NextMeeting && meetingInfo.NextMeeting.PeriodStart) {\r\n vm.NextPeriodStart = moment(meetingInfo.NextMeeting.PeriodStart);\r\n } else {\r\n vm.NextPeriodStart = moment(vm.PeriodEnd).add(1, 'days').startOf('day');\r\n }\r\n\r\n if (meetingInfo.NextMeeting && meetingInfo.NextMeeting.PeriodEnd) {\r\n vm.NextPeriodEnd = moment(meetingInfo.NextMeeting.PeriodEnd);\r\n } else {\r\n vm.NextPeriodEnd = moment(vm.NextPeriodStart).add(30, 'days').endOf('day');\r\n }\r\n \r\n \r\n }\r\n }\r\n\r\n vm.LoadTasks();\r\n vm.GetTodoCount(); \r\n vm.GetGoalAndActivityComments(); \r\n });\r\n\r\n //vm.GetCurrentProgress();\r\n //vm.GetUserProgressSum();\r\n vm.GetGoals();\r\n vm.GetGoalsForUsersInSameUnit();\r\n \r\n //vm.GetProgressPeriodCompare();\r\n //vm.PopulateProgressChart(); \r\n }\r\n }\r\n\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').controller('modules.goals.tasks', indexController);\r\n angular.module('bizPartEngage').controller('modules.goals.onetask', oneTaskController);\r\n\r\n indexController.$inject = [\"modules.goals.service\", \"$stateParams\"];\r\n oneTaskController.$inject = [\"modules.goals.service\", \"$stateParams\"];\r\n\r\n function indexController(engagementGoalsService) {\r\n var vm = this; \r\n\r\n vm.SelectedPeriod = engagementGoalsService.GetSelectedPeriod();\r\n\r\n vm.$onInit = function () {\r\n \r\n }\r\n }\r\n\r\n function oneTaskController(engagementGoalsService, $stateParams) {\r\n var vm = this;\r\n\r\n vm.GetOneTask = GetOneTask;\r\n\r\n vm.taskId = ~~$stateParams.id;\r\n vm.goalId = ~~$stateParams.goalId;\r\n vm.activityId = ~~$stateParams.activityId;\r\n\r\n vm.Back = Back;\r\n\r\n function Back() {\r\n window.history.back();\r\n }\r\n\r\n function GetOneTask(id) {\r\n engagementGoalsService.GetOneTask(id).then(GetOneTaskCallback);\r\n\r\n function GetOneTaskCallback(response) {\r\n vm.task = BizPartCoreHelpers.getResponseValue(response);\r\n }\r\n }\r\n\r\n vm.$onInit = function () {\r\n if (vm.taskId > 0) {\r\n vm.GetOneTask(vm.taskId);\r\n } else {\r\n vm.task = {\r\n Id: 'new',\r\n EditDate: engagementGoalsService.GetSelectedPeriod().Date,\r\n EditMode: true,\r\n GoalId: vm.goalId,\r\n ActivityId: vm.activityId\r\n };\r\n }\r\n }\r\n }\r\n\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').controller('modules.goals.team', indexController);\r\n\r\n indexController.$inject = [\"modules.goals.service\", \"bizUser\"];\r\n\r\n function indexController(goalService, bizUser) {\r\n var vm = this\r\n vm.UserId = bizUser.getLoggedInUser().Id;\r\n vm.ExpandStatusStorageKey = 'TEAM_USERPROGRESS_EXPAND_STATUS_' + vm.UserId;\r\n vm.ExpandedUserProgress = [];\r\n\r\n vm.GetCurrentProgress = GetCurrentProgress;\r\n vm.GetGoalsForUsers = GetGoalsForUsers;\r\n vm.ToggleUserProgressExpanded = ToggleUserProgressExpanded;\r\n vm.StoreUserProgressExpandStatus = StoreUserProgressExpandStatus; \r\n vm.RetrieveUserProgressExpandStatus = RetrieveUserProgressExpandStatus;\r\n\r\n function GetCurrentProgress() {\r\n goalService.GetProgressSum(true).then(GetProgressSumForUserCallback);\r\n\r\n function GetProgressSumForUserCallback(response) {\r\n var prg = BizPartCoreHelpers.getResponseValue(response); \r\n for (var i = 0; i < prg.length; i++) {\r\n prg[i].Expanded = vm.ExpandedUserProgress.indexOf(prg[i].UserId) >= 0;\r\n } \r\n\r\n vm.UsersProgress = prg;\r\n }\r\n }\r\n\r\n function GetGoalsForUsers() {\r\n goalService.GetGoalsForUsersInSameUnit().then(GetGoalsForUsersInSameUnitCallback);\r\n\r\n function GetGoalsForUsersInSameUnitCallback(response) {\r\n vm.UserGoals = BizPartCoreHelpers.getResponseValue(response);\r\n }\r\n }\r\n\r\n function ToggleUserProgressExpanded(progressItem) {\r\n progressItem.Expanded = !progressItem.Expanded;\r\n if (progressItem.Expanded) {\r\n if (vm.ExpandedUserProgress.indexOf(progressItem.UserId) < 0) {\r\n vm.ExpandedUserProgress.push(progressItem.UserId);\r\n }\r\n } else {\r\n var index = vm.ExpandedUserProgress.indexOf(progressItem.UserId);\r\n if (index >= 0) {\r\n vm.ExpandedUserProgress.splice(index, 1);\r\n }\r\n }\r\n\r\n vm.StoreUserProgressExpandStatus();\r\n }\r\n\r\n function StoreUserProgressExpandStatus() {\r\n setLocalStorage(vm.ExpandStatusStorageKey, JSON.stringify(vm.ExpandedUserProgress));\r\n }\r\n\r\n function RetrieveUserProgressExpandStatus() {\r\n var data = getLocalStorage(vm.ExpandStatusStorageKey);\r\n if (data) {\r\n vm.ExpandedUserProgress = JSON.parse(data);\r\n }\r\n }\r\n\r\n vm.$onInit = function () { \r\n vm.RetrieveUserProgressExpandStatus();\r\n vm.GetCurrentProgress();\r\n vm.GetGoalsForUsers();\r\n }\r\n }\r\n\r\n})(window.angular);\r\n","(function (angular) {\r\n\tangular.module('bizPartEngage').controller('modules.event', indexController);\r\n\r\n\tindexController.$inject = [\"modules.event.service\", \"bizContainerSettings\", \"$stateParams\", \"bizContainerModuleEventListService\"];\r\n\r\n\tfunction indexController(eventService, bizContainerSettings, $stateParams, bizContainerModuleEventListService) {\r\n\t\tvar vm = this;\r\n\r\n\t\tvm.Event = {};\r\n\t\tvm.GetEvent = GetEvent;\r\n\t\tvm.EventId = ~~$stateParams.id;\r\n\t\tvm.IsLoggedIn = false;\r\n\t\tvm.IsInFuture = IsInFuture;\r\n\t\tvm.IsToday = IsToday;\r\n\t\tvm.ChangeStatus = ChangeStatus;\r\n\t\tvm.IsAllowedToBook = IsAllowedToBook;\r\n\t\tvm.IsAllowedToCancel = IsAllowedToCancel;\r\n\t\tvm.Email = '';\r\n\t\tvm.Cancel = '';\r\n\r\n\t\tfunction GetEvent() {\r\n\t\t\tvm.DataLoaded = false;\r\n\t\t\teventService.GetOneEvent(vm.EventId).then(GetEventSuccess);\r\n\r\n\t\t\tfunction GetEventSuccess(response) {\r\n\t\t\t\tvm.DataLoaded = true;\r\n\t\t\t\tvm.Event = response.data;\r\n\r\n\t\t\t\tif (bizContainerSettings[\"CurrentUserId\"] > 0) {\r\n\t\t\t\t\tvm.IsLoggedIn = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction IsAllowedToBook(event) {\r\n\t\t\tif (!vm.DataLoaded) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif (event.ParticipantCount < event.MaxParticipants\r\n\t\t\t\t&& (event.UserStatus == 4 || event.UserStatus == 0)\r\n\t\t\t\t&& vm.IsInFuture(event.RSVPDateTimeUtc) == true) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tfunction IsAllowedToCancel(event) {\r\n\t\t\tif (!vm.DataLoaded) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif (event.UserStatus == 3 && vm.IsInFuture(event.RSVPDateTimeUtc) == true) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tfunction IsToday(datetimeUtc) {\r\n\t\t\tif (vm.DataLoaded) {\r\n\t\t\t\tif (moment(datetimeUtc).isSame(moment.utc(), 'day')) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction IsInFuture(datetimeUtc) {\r\n\t\t\tif (vm.DataLoaded) {\r\n\t\t\t\tif (moment(datetimeUtc).isAfter(moment.utc())) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction ChangeStatus(event, newStatus) {\r\n\r\n\t\t\tif (bizContainerSettings[\"CurrentUserId\"] > 0) {\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (vm.Email != '' && vm.Email.indexOf('@')) { // TODO some kind of validation.\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tbizContainerModuleEventListService.UpdateParticipationStatus(event.Id, newStatus, vm.Email, vm.Comment).then(UpdateParticipationStatusSuccess);\r\n\t\t}\r\n\r\n\t\tfunction UpdateParticipationStatusSuccess(response) {\r\n\t\t\tvar result = (response.data.d || response.data);\r\n\t\t\tvm.GetEvent();\r\n\t\t}\r\n\r\n\t\tvm.$onInit = function () {\r\n\t\t\tvm.GetEvent();\r\n\t\t}\r\n\t}\r\n\r\n})(window.angular);\r\n","(function (angular) {\r\n\tangular.module('bizPartEngage').service('modules.event.service', eventService);\r\n\r\n\teventService.$inject = [\"$http\"];\r\n\r\n\tfunction eventService($http) {\r\n\t\tthis.GetOneEvent = function (id) {\r\n\t\t\treturn $http.get(siteRootPath + 'api/event/GetOneEventForUser?' + $.param({ eventId: id }));\r\n\t\t};\r\n\r\n\t\tthis.UpdateParticipationStatus = function (eventId, newStatus, email, comment) {\r\n\t\t\treturn $http.post(getServicePath() + 'UpdateParticipationStatus', {\r\n\t\t\t\tEventId: eventId,\r\n\t\t\t\tStatus: newStatus,\r\n\t\t\t\tEmail: email,\r\n\t\t\t\tComment: comment\r\n\t\t\t}, {\r\n\t\t\t\theaders: {\r\n\t\t\t\t\tIgnoreLoader: true\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n})(window.angular);\r\n","angular.module('bizFormly').controller('questionFreetextController', questionFreetextController);\r\nangular.module('bizFormly').controller('questionController', questionController);\r\nangular.module('bizFormly').controller('questionScaleController', questionScaleController);\r\nangular.module('bizFormly').controller('questionYesNoController', questionYesNoController);\r\n\r\nquestionFreetextController.$inject = [\"$rootScope\", \"$scope\", \"bizCoreService\"];\r\nquestionController.$inject = [\"$rootScope\", \"$scope\", \"bizCoreService\"];\r\nquestionScaleController.$inject = [\"$rootScope\", \"$scope\", \"bizCoreService\"];\r\nquestionYesNoController.$inject = [\"$rootScope\", \"$scope\", \"bizCoreService\", \"$timeout\"];\r\n\r\nfunction questionFreetextController($rootScope, $scope, bizCoreService) {\r\n var vm = this;\r\n}\r\n\r\nfunction questionController($rootScope, $scope, bizCoreService) {\r\n\r\n $scope.SetSelectedValues = function(){\r\n \t$scope.model[$scope.options.key] = $scope.options.data.options.GetItemsByValue('selected', true).GetValues('Id').join();\r\n }\r\n\r\n $scope.GetOptionTranslation = function (option) {\r\n var cultureId = $rootScope.LoggedInUser.CultureId;\r\n var translation = option.NameTranslations.GetItemByValue('CultureId', cultureId);\r\n if (!translation) {\r\n translation = {\r\n ObjectId: option.id,\r\n CultureId: cultureId,\r\n Type: '',\r\n Value: \"\"\r\n };\r\n }\r\n return translation;\r\n }\r\n\r\n}\r\n\r\nfunction questionScaleController($rootScope, $scope, bizCoreService) {\r\n var field = $scope.fields.GetItemByValue(\"key\", $scope.options.key);\r\n\r\n if (!field.data.options) {\r\n \tfield.data.options = [];\r\n }\r\n\r\n $scope.GetOptionTranslation = function (option) {\r\n var cultureId = $rootScope.LoggedInUser.CultureId;\r\n\r\n var translation = option.NameTranslations.GetItemByValue('CultureId', cultureId);\r\n if (!translation) {\r\n translation = {\r\n ObjectId: option.id,\r\n CultureId: cultureId,\r\n Type: '',\r\n Value: \"\"\r\n };\r\n }\r\n return translation;\r\n }\r\n}\r\n\r\nfunction questionYesNoController($rootScope, $scope, bizCoreService, $timeout) {\r\n var field = $scope.fields.GetItemByValue(\"key\", $scope.options.key);\r\n\r\n if (!field.data.options) {\r\n \tfield.data.options = [];\r\n\r\n \tfield.data.options.push({\r\n FormFieldId: field.Id, Name: \"\", Value: 'false', NameTranslations: [{\r\n FieldKey: field.key,\r\n CultureId: 1,\r\n Type: 'option',\r\n Value: \"Yes\"\r\n }, {\r\n FieldKey: field.key,\r\n CultureId: 2,\r\n Type: 'option',\r\n Value: \"Yes\"\r\n }]\r\n });\r\n \tfield.data.options.push({\r\n FormFieldId: field.Id, Name: \"\", Value: 'false', NameTranslations: [{\r\n FieldKey: field.key,\r\n CultureId: 1,\r\n Type: 'option',\r\n Value: \"No\"\r\n }, {\r\n FieldKey: field.key,\r\n CultureId: 2,\r\n Type: 'option',\r\n Value: \"No\"\r\n }]\r\n });\r\n }\r\n $scope.GetOptionTranslation = function (option) {\r\n var cultureId = $rootScope.LoggedInUser.CultureId;\r\n\r\n var translation = option.NameTranslations.GetItemByValue('CultureId', cultureId);\r\n if (!translation) {\r\n translation = {\r\n ObjectId: option.id,\r\n CultureId: cultureId,\r\n Type: '',\r\n Value: \"\"\r\n };\r\n }\r\n return translation;\r\n }\r\n}\r\n\r\n\r\nvar evt = document.createEvent(\"CustomEvent\");\r\nevt.initCustomEvent(\"FORMS_PLUGIN_QUESTIONS_INIT\", true, true, { Key: \"QUESTIONS\" });\r\nwindow.dispatchEvent(evt);","(function(angular) {\r\n angular.module('bizPartEngage').controller('modules.forums', forumsController);\r\n angular.module('bizPartEngage').controller('modules.forum', forumController);\r\n angular.module('bizPartEngage').controller('modules.forum.thread', forumThreadController);\r\n\r\n forumsController.$inject = [\"$rootScope\", \"modules.forum.service\", \"$state\"];\r\n forumController.$inject = [\"$rootScope\", \"modules.forum.service\", \"$stateParams\", \"$state\"];\r\n forumThreadController.$inject = [\"$rootScope\", \"modules.forum.service\", \"$stateParams\", \"$mdDialog\", \"$translate\", \"bizUser\", \"bizCore\"];\r\n\r\n function forumsController($rootScope, forumService, $state) {\r\n var vm = this;\r\n vm.Forums = [];\r\n\r\n vm.GetForums = GetForums;\r\n vm.GoToForum = GoToForum;\r\n\r\n function GetForums() {\r\n forumService.GetForums().then(GetForumsSuccess);\r\n\r\n function GetForumsSuccess(response) {\r\n vm.Forums = response.data;\r\n }\r\n }\r\n\r\n function GoToForum(forum) {\r\n $state.go(\"base.modules.forum\", {id: forum.Id});\r\n }\r\n\r\n function Init() {\r\n vm.GetForums();\r\n }\r\n\r\n this.$onInit = Init;\r\n }\r\n\r\n function forumController($rootScope, forumService, $stateParams, $state) {\r\n var vm = this;\r\n vm.ForumId = ~~$stateParams.id;\r\n vm.Forum = {\r\n Threads: []\r\n };\r\n\r\n vm.GetForum = GetForum;\r\n vm.GoToThread = GoToThread;\r\n\r\n function GetForum() {\r\n forumService.GetForum(vm.ForumId).then(GetForumSuccess);\r\n\r\n function GetForumSuccess(response) {\r\n vm.Forum = response.data;\r\n }\r\n }\r\n\r\n function GoToThread(thread) {\r\n $state.go(\"base.modules.forumthread\", {id: thread.Id});\r\n }\r\n\r\n function Init() {\r\n if(vm.ForumId > 0) {\r\n vm.GetForum();\r\n }\r\n }\r\n\r\n this.$onInit = Init;\r\n }\r\n\r\n function forumThreadController($rootScope, forumService, $stateParams, $mdDialog, $translate, bizUserProvider, bizCoreProvider) {\r\n var vm = this;\r\n vm.ThreadId = ~~$stateParams.id;\r\n vm.Thread = {};\r\n vm.Post = {\r\n ForumThreadId: vm.ThreadId,\r\n UserId: bizUserProvider.getLoggedInUser().Id,\r\n Text: \"\"\r\n };\r\n\r\n vm.GetThread = GetThread;\r\n vm.SubmitPost = SubmitPost;\r\n vm.EditPost = EditPost;\r\n vm.DeletePost = DeletePost;\r\n vm.ThreadRead = ThreadRead;\r\n\r\n function GetThread() {\r\n if(vm.ThreadId > 0) {\r\n forumService.GetThread(vm.ThreadId).then(GetThreadSuccess);\r\n }\r\n\r\n function GetThreadSuccess(response) {\r\n vm.Thread = response.data;\r\n }\r\n }\r\n\r\n function SubmitPost(post) {\r\n forumService.SubmitPost(post).then(SubmitPostSuccess);\r\n\r\n function SubmitPostSuccess(response) {\r\n //Vi sätter tråden till läst när man postar i den. \r\n vm.ThreadRead();\r\n if(response.data.Success == true && ~~post.Id <= 0) {\r\n vm.Thread.ThreadEntrys.push(response.data.ExtraInfo);\r\n\r\n vm.Post = {\r\n ForumThreadId: vm.ThreadId,\r\n UserId: $rootScope.LoggedInUser.Id,\r\n Text: \"\"\r\n };\r\n }\r\n else if(~~post.Id > 0) {\r\n post.IsEditing = false;\r\n console.log('Saved post successfully!');\r\n }\r\n else {\r\n console.error(response.data.Message);\r\n }\r\n }\r\n }\r\n\r\n function EditPost(post) {\r\n post.IsEditing = true;\r\n }\r\n\r\n function DeletePost(post) {\r\n $translate('FORUM.ASKDELETEPOST').then(function (translation) {\r\n $mdDialog.show({\r\n templateUrl: bizCoreProvider.getView('base.dialog', 'FrontEnd/Views/Dialogs/dialog-primary.html'),\r\n controller: deletePostController,\r\n controllerAs: \"vm\",\r\n locals: {\r\n Text: translation\r\n },\r\n bindToController: true\r\n }).then(function (response) {\r\n if(response) {\r\n forumService.DeletePost(post.Id).then(DeletePostSuccess);\r\n }\r\n });\r\n });\r\n\r\n function DeletePostSuccess(response) {\r\n if(response.data.Success) {\r\n vm.Thread.ThreadEntrys.splice(vm.Thread.ThreadEntrys.indexOf(post), 1);\r\n }\r\n }\r\n }\r\n\r\n deletePostController.$inject = [\"$mdDialog\"];\r\n\r\n function deletePostController($mdDialog) {\r\n var vm = this;\r\n\r\n vm.Close = Close;\r\n vm.Ok = Ok;\r\n\r\n function Close() {\r\n $mdDialog.cancel();\r\n }\r\n\r\n function Ok() {\r\n $mdDialog.hide(true);\r\n }\r\n }\r\n\r\n function ThreadRead() {\r\n if (~~bizUserProvider.getLoggedInUser().Id > 0 && ~~vm.ThreadId > 0) {\r\n forumService.ThreadRead(vm.ThreadId);\r\n }\r\n }\r\n\r\n function Init() {\r\n vm.GetThread();\r\n vm.ThreadRead();\r\n }\r\n\r\n this.$onInit = Init;\r\n }\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').service('modules.forum.service', forumService);\r\n\r\n forumService.$inject = [\"$http\"];\r\n\r\n function forumService($http) {\r\n this.GetForums = function() {\r\n return $http.get(siteRootPath + \"api/forum/GetForums\");\r\n };\r\n\r\n this.GetForum = function(id) {\r\n return $http.get(siteRootPath + \"api/forum/GetForum?\" + $.param({id: id}));\r\n };\r\n\r\n this.GetThread = function(id) {\r\n return $http.get(siteRootPath + \"api/forum/GetThread?\" + $.param({ id: id }));\r\n };\r\n\r\n this.SubmitPost = function(post) {\r\n return $http.post(siteRootPath + \"api/forum/SubmitPost\", post);\r\n };\r\n\r\n this.DeletePost = function(id) {\r\n return $http.delete(siteRootPath + \"api/forum/DeletePost?\" + $.param({ id: id }));\r\n };\r\n\r\n this.ThreadRead = function(threadId) {\r\n return $http.get(siteRootPath + \"api/forum/ThreadRead?\" + $.param({ threadId: threadId }));\r\n };\r\n }\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').controller('modules.journey', journeyController);\r\n\r\n journeyController.$inject = [];\r\n\r\n function journeyController() {\r\n var vm = this;\r\n vm.IsJourneyLocked = IsPortalSettingTrue('IsJourneyLocked');\r\n }\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').controller('modules.masterrun', masterrunController);\r\n\r\n masterrunController.$inject = [\"$filter\", \"bizUser\"];\r\n\r\n function masterrunController($filter, bizUser) {\r\n var vm = this;\r\n vm.MasterRunUrl = undefined;\r\n\r\n function Init() {\r\n if(isMobile.any()) {\r\n vm.MasterRunUrl = $filter('siteroot')(\"MasterRunMobile/index.html?session=\" + getBizPartAuthToken());\r\n }\r\n else {\r\n vm.MasterRunUrl = $filter('siteroot')(\"MasterRun/index.html?session=\" + getBizPartAuthToken());\r\n }\r\n }\r\n\r\n this.$onInit = Init;\r\n }\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').controller('modules.media', mediaController);\r\n angular.module('bizPartEngage').controller('modules.mediatags', mediatagsController);\r\n\r\n mediaController.$inject = [\"$rootScope\", \"modules.media.service\", \"$stateParams\", \"$state\", \"container\", \"$timeout\", \"$mdDialog\", \"MetadataService\",\r\n \"$filter\", \"bizCoreService\", \"$q\", \"$translate\", \"bizEngageService\", \"core.engage.service\", \"$scope\", \"$sce\"];\r\n mediatagsController.$inject = [\"modules.media.service\", \"$stateParams\", \"$state\", \"container\", \"$timeout\", \"$mdDialog\", \"MetadataService\", \"$filter\", \"bizCoreService\", \"$translate\", \"$rootScope\", \"$q\", \"bizEngageService\"];\r\n\r\n function mediaController($rootScope, mediaService, $stateParams, $state, container, $timeout, $mdDialog, MetadataService, $filter, bizCoreService,\r\n $q, $translate, bizEngageService, engageService, $scope, $sce) {\r\n var vm = this;\r\n vm.MediaFiles = [];\r\n vm.MediaFileTypes = [];\r\n vm.SelectedTypes = [];\r\n\r\n vm.playClicked = false;\r\n vm.VideoPlaying = false;\r\n vm.Extended = false;\r\n vm.LikedExtended = false;\r\n vm.SeenExtended = false;\r\n vm.showLatest = false;\r\n vm.showMostLiked = false;\r\n vm.showMostViewed = false;\r\n vm.showMostCommented = false;\r\n vm.showRelated = false;\r\n vm.useJourneyOrder = journeySettings?.UseJourneyOrderInLists?.GetItemByValue('Key', 3)?.Value || false;\r\n\r\n vm.EventSource = \"MEDIA\";\r\n\r\n vm.fileId = ~~$stateParams.id;\r\n\r\n\t\tif (!vm.fileId)\r\n\t\t\tvm.fileUrlRewrite = $stateParams.id;\r\n\r\n vm.OnInit = OnInit;\r\n vm.OnPlay = OnPlay;\r\n vm.OnEnded = OnEnded;\r\n vm.GetMediaFiles = GetMediaFiles;\r\n vm.GetMediaFileTypes = GetMediaFileTypes;\r\n vm.GetFileImage = GetFileImage;\r\n vm.ToggleMediaTypes = ToggleMediaTypes;\r\n vm.PerformLikeAction = PerformLikeAction;\r\n vm.GetShowingSettings = GetShowingSettings;\r\n vm.InitSlick = InitSlick;\r\n vm.GetOneMediaFile = GetOneMediaFile;\r\n vm.GetRelatedMediaFiles = GetRelatedMediaFiles;\r\n vm.FilterLiked = FilterLiked;\r\n vm.GetYoutubeEmbedUrl = GetYoutubeEmbedUrl;\r\n vm.FilterAlreadyVisibleFiles = FilterAlreadyVisibleFiles;\r\n vm.PauseVideo = PauseVideo;\r\n vm.PlayVideo = PlayVideo;\r\n vm.PlayYoutube = PlayYoutube\r\n vm.YoutubePlayer = YoutubePlayer;\r\n vm.player;\r\n vm.GetFileTypeTranslations = GetFileTypeTranslations;\r\n vm.NavigateToMediaFile = NavigateToMediaFile; \r\n\r\n function GetFileTypeTranslations(type) {\r\n if (!type)\r\n return;\r\n\r\n var value = type.FileType;\r\n var translation = type.NameOverrideTranslations.GetItemByValue('CultureId', $rootScope.LoggedInUser.CurrentCultureId);\r\n\r\n if (translation) {\r\n value = translation.Value;\r\n }\r\n \r\n return value;\r\n }\r\n \r\n function GetShowingSettings() {\r\n var settings = [];\r\n settings.push('showLatest');\r\n settings.push('showMostLiked');\r\n settings.push('showMostViewed');\r\n settings.push('showMostCommented');\r\n settings.push('showRelated');\r\n\r\n mediaService.GetGenericSettings(settings).then(LoadSettingsDone);\r\n\r\n function LoadSettingsDone(response) {\r\n console.log(\"LoadSettingsDone\", response);\r\n vm.showLatest = (response.data.GetItemByValue('Key', 'showLatest').Value == 'true' ? true : false);\r\n vm.showMostLiked = (response.data.GetItemByValue('Key', 'showMostLiked').Value == 'true' ? true : false);\r\n vm.showMostViewed = (response.data.GetItemByValue('Key', 'showMostViewed').Value == 'true' ? true : false);\r\n vm.showMostCommented = (response.data.GetItemByValue('Key', 'showMostCommented').Value == 'true' ? true : false);\r\n vm.showRelated = (response.data.GetItemByValue('Key', 'showRelated').Value == 'true' ? true : false);\r\n }\r\n }\r\n\r\n function PauseVideo() {\r\n \tvm.VideoPlaying = false;\r\n \tvar video = angular.element('#video-module-' + vm.MediaFile.Id);\r\n \tvideo[0].pause();\r\n }\r\n\r\n function PlayYoutube() { \r\n \tvm.VideoPlaying = true;\r\n \tvm.VideoEnded = false;\r\n \tif (vm.player) {\r\n \t\tvar fn = function () { vm.player.playVideo(); }\r\n \t\tsetTimeout(fn, 1000);\r\n \t}\r\n }\r\n\r\n function PlayVideo() {\r\n \tvm.VideoPlaying = true;\r\n \tvm.VideoEnded = false;\r\n \tvar video = angular.element('#video-module-' + vm.MediaFile.Id);\r\n \tif (vm.VideoEnded) {\r\n \t\tif (video.length) {\r\n \t\t\tvideo[0].pause();\r\n \t\t\tvideo[0].currentTime = '0';\r\n \t\t\tvideo[0].play();\r\n \t\t\tvm.PlayedVideo = true;\r\n \t\t}\r\n \t}\r\n \telse {\r\n \t\tif (video.length) {\r\n \t\t\tvideo[0].play();\r\n \t\t\tvm.PlayedVideo = true;\r\n \t\t}\r\n \t}\r\n }\r\n\r\n function YoutubePlayer(videoId) { \r\n \tvar id = \"youtube-\" + vm.MediaFile.Id;\r\n \tif (window.matchMedia(\"(min-width: 720px)\").matches) {\r\n \t\tvm.player = new YT.Player(id, {\r\n \t\t\twidth: '100%',\r\n \t\t\tvideoId: videoId,\r\n playerVars: { rel: 0 },\r\n \t\t\tevents: {\r\n \t\t\t\t'onStateChange': onPlayerStateChange\r\n \t\t\t}\r\n \t\t});\r\n \t} else {\r\n \t\tvm.player = new YT.Player(id, {\r\n \t\t\theight: '100%',\r\n \t\t\twidth: '100%',\r\n \t\t\tvideoId: videoId,\r\n playerVars: { rel: 0 },\r\n \t\t\tevents: {\r\n \t\t\t\t'onStateChange': onPlayerStateChange\r\n \t\t\t}\r\n \t\t});\r\n \t}\r\n }\r\n\r\n \t// Youtube player change event...\r\n function onPlayerStateChange(event) {\r\n \r\n \tif (event.data === -1) {\r\n \t\tvm.OnPlay();\r\n \t}\r\n \telse if (event.data === 0) {\r\n \t\tvm.VideoEnded = true;\r\n \t\tvm.OnEnded();\r\n \t}\r\n \telse if (event.data === 3) {\r\n \t\t// pause\r\n \t}\r\n }\r\n\r\n function FilterAlreadyVisibleFiles(file) {\r\n if (file == undefined || vm.MediaFile == undefined) {\r\n return false;\r\n }\r\n\r\n \t// remove other types?\r\n \tif (file.Type != vm.MediaFile.Type) {\r\n \t\treturn false;\r\n \t}\r\n\r\n \t// remove current viewed file\r\n \tif (file.Id == vm.MediaFile.Id) {\r\n \t\treturn false;\r\n \t}\r\n\r\n\t\t\t// remove related files\r\n \tif (vm.RelatedMediaFiles) {\r\n \t\tfor (var i = 0; i < vm.RelatedMediaFiles.length; i++) {\r\n \t\t\tif (file.Id == vm.RelatedMediaFiles[i].Id) {\r\n \t\t\t\treturn false;\r\n \t\t\t}\r\n \t\t}\r\n \t}\r\n \t\t\r\n \treturn true;\r\n }\r\n\r\n function FilterLiked(a)\r\n {\r\n if (a.LikeActions.length == 1)\r\n return a.LikeActions[0].Count;\r\n\r\n if (a.LikeActions.length > 1)\r\n return TotalLikeActions(a);\r\n\r\n return 0;\r\n }\r\n\r\n function OnInit(source) { \r\n \tbizCoreService.EventInit(vm.MediaFile.Id, 14, vm.EventSource);\r\n\r\n \tif (vm.MediaFile.Type == 1 && vm.VideoType == vm.VideoTypes.Youtube) {\r\n \t\tsetTimeout(function () {\r\n \t\t\tvm.YoutubePlayer(GetYoutubeId(vm.MediaFile.FileUrl));\r\n \t\t}, 0)\r\n \t}\r\n }\r\n\r\n function OnPlay() { \r\n \tvm.playClicked = true;\r\n \tbizCoreService.EventStart(vm.MediaFile.Id, 12, vm.EventSource);\r\n }\r\n\r\n function OnEnded() { \r\n \tbizCoreService.EventEnd(vm.MediaFile.Id, 13, vm.EventSource);\r\n }\r\n\r\n function GetFileImage(file)\r\n {\r\n switch(file.Type) {\r\n case 1:\r\n return file.Thumbnail;\r\n case 2:\r\n return file.FileUrl;\r\n default:\r\n return file.Thumbnail;\r\n }\r\n }\r\n\r\n function ToggleMediaTypes(typeId) {\r\n if (vm.SelectedTypes.indexOf(typeId) > -1)\r\n vm.SelectedTypes.splice(vm.SelectedTypes.lastIndexOf(typeId), 1)\r\n else\r\n vm.SelectedTypes.push(typeId);\r\n\r\n if (vm.SelectedTypes.length == 0) {\r\n for (var i = 0; i < vm.MediaFileTypes.length; i++) {\r\n vm.SelectedTypes.push(vm.MediaFileTypes[i].Id);\r\n }\r\n }\r\n\r\n vm.GetMediaFiles(vm.SelectedTypes, [], false, true);\r\n }\r\n\r\n function PerformLikeAction(item, action) {\r\n \tif (!action.LikeActionPerformedByUser) {\r\n mediaService.AddLikeActionToMediaFile(item.Id, action.Action.Id).then(AddLikeActionToMediaFileSuccess);\r\n }\r\n\r\n \tfunction AddLikeActionToMediaFileSuccess(response) {\r\n \t action.LikeActionPerformedByUser = true;\r\n \t action.Count++;\r\n\r\n \t var totalCount = 0;\r\n \t var totalValue = 0;\r\n\r\n \t for (var i = 0; i < item.LikeActions.length; i++) {\r\n \t totalCount += item.LikeActions[i].Count;\r\n \t totalValue += item.LikeActions[i].Action.Value * item.LikeActions[i].Count;\r\n \t }\r\n\r\n \t item.AverageLikeValue = totalValue / totalCount;\r\n \t}\r\n }\r\n\r\n function GetLikeActionsByValue(entry, positive) {\r\n var result = 0;\r\n for (var i = 0; i < entry.LikeActions.length; i++) {\r\n if ((positive && entry.LikeActions[i].Action.Value > 0) || (!positive && entry.LikeActions[i].Action.Value < 0)) {\r\n result += entry.LikeActions[i].Count;\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n function TotalLikeActions(entry) {\r\n var count = 0;\r\n for (var i = 0; i < entry.LikeActions.length; i++) {\r\n count += entry.LikeActions[i].Count;\r\n }\r\n return count;\r\n }\r\n\r\n function GetOneMediaFile(fileId, urlRewrite) {\r\n \tbizEngageService.GetObject(fileId > 0 ? fileId : urlRewrite, bizEngageService.Types.MediabankFile, true)\r\n\t\t\t\t.then(GetOneMediaFileSuccess);\r\n\r\n function GetOneMediaFileSuccess(response) {\r\n vm.MediaFile = response.data;\r\n \r\n if (vm.MediaFile.Tags && vm.showRelated) {\r\n var tagIds = [];\r\n for (var i = 0; i < vm.MediaFile.Tags.length; i++)\r\n {\r\n tagIds.push(vm.MediaFile.Tags[i].Id);\r\n }\r\n vm.GetRelatedMediaFiles(tagIds); \r\n }\r\n\r\n MetadataService.setMetaTags({\r\n title: vm.MediaFile.Name,\r\n description: vm.MediaFile.Description,\r\n img: vm.MediaFile.Thumbnail\r\n });\r\n \r\n if (vm.MediaFile.Type == 1) {\r\n vm.VideoTypes = {\r\n Native: 1,\r\n Youtube: 2,\r\n Vimeo: 3\r\n };\r\n\r\n var regExp = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=)([^#\\&\\?]*).*/;\r\n var match = vm.MediaFile.FileUrl.match(regExp);\r\n if (match) {\r\n vm.VideoType = vm.VideoTypes.Youtube;\r\n }\r\n else {\r\n vm.VideoType = vm.VideoTypes.Native;\r\n }\r\n }\r\n\r\n OnInit('GetOneMediaFileSuccess');\r\n }\r\n }\r\n\r\n function GetYoutubeEmbedUrl(url) {\r\n \treturn \"https://www.youtube.com/embed/\" + GetYoutubeId(url); // ?autoplay=1&controls=0\r\n }\r\n\r\n function GetYoutubeId(url) {\r\n var regExp = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=)([^#\\&\\?]*).*/;\r\n var match = url.match(regExp);\r\n\r\n if (match && match[2].length == 11) {\r\n return match[2];\r\n } else {\r\n return 'error';\r\n }\r\n }\r\n\r\n function InitSlick(overrideToShow) {\r\n vm.SlickLoaded = false;\r\n vm.SlickSettings = {\r\n arrows: false,\r\n dots: true,\r\n infinite: false,\r\n slidesToShow: overrideToShow || 4,\r\n slidesToScroll: overrideToShow || 4,\r\n customPaging: function () {\r\n return '';\r\n },\r\n responsive: [{\r\n breakpoint: 960,\r\n settings: {\r\n slidesToShow: vm.SlickOverrideResponsiveSlides || 2,\r\n slidesToScroll: vm.SlickOverrideResponsiveSlides || 2,\r\n }\r\n }]\r\n }\r\n $timeout(function () {\r\n vm.SlickLoaded = true;\r\n });\r\n }\r\n\r\n function GetRelatedMediaFiles(tagIds) {\r\n mediaService.GetMediaFiles([], tagIds, true).then(GetRelatedMediaFilesSuccess);\r\n function GetRelatedMediaFilesSuccess(response) {\r\n vm.RelatedMediaFiles = response.data;\r\n vm.InitSlick();\r\n }\r\n }\r\n\r\n function GetMediaFiles() {\r\n \r\n if (vm.SelectedTypes.length) {\r\n mediaService.GetMediaFiles(vm.SelectedTypes, [], false, true, vm.useJourneyOrder).then(GetMediaFilesSuccess);\r\n }\r\n else {\r\n vm.MediaFiles = [];\r\n vm.DataLoaded = true;\r\n console.error('No mediabank file types selected to show here...');\r\n }\r\n\r\n function GetMediaFilesSuccess(response) {\r\n vm.ItemsFetched = true;\r\n vm.MediaFiles = response.data;\r\n vm.DataLoaded = true;\r\n vm.InitSlick(2);\r\n }\r\n }\r\n\r\n function GetMediaFileTypes() {\r\n mediaService.GetMediaFileTypes().then(GetMediaFileTypesSuccess);\r\n function GetMediaFileTypesSuccess(response) {\r\n vm.MediaFileTypes = response.data;\r\n for (var i = 0; i < vm.MediaFileTypes.length; i++) {\r\n vm.SelectedTypes.push(vm.MediaFileTypes[i].Id);\r\n }\r\n vm.GetMediaFiles([], [], false, true);\r\n \t}\r\n }\r\n\r\n function NavigateToMediaFile(file) {\r\n return $state.go(\"base.modules.mediafile\", { id: file.UrlRewrite || file.Id });\r\n }\r\n\r\n angular.element(document).ready(function () {\r\n $translate(['MEDIA.META.TITLE', 'MEDIA.META.DESCRIPTION']).then(function (translations) {\r\n MetadataService.setMetaTags({\r\n title: translations['MEDIA.META.TITLE'],\r\n description: translations['MEDIA.META.DESCRIPTION']\r\n })\r\n }); \r\n\r\n vm.GetShowingSettings();\r\n vm.GetMediaFileTypes();\r\n \tif (!vm.fileId && !vm.fileUrlRewrite) {\r\n \r\n //vm.InitSlick();\r\n }\r\n else\r\n vm.GetOneMediaFile(vm.fileId, vm.fileUrlRewrite);\r\n\r\n bizEngageService.GetMiniJourneySetting('MediabankFile').then(function (response) {\r\n vm.MiniJourneySettings = response;\r\n });\r\n }); \r\n\r\n //disabled until vm.VideoEnded works properly, probably something to do with mediaplayer-directive that is used, need to connect the on-played-method, but cant get it to work...\r\n //$scope.$on(\"$destroy\", function () { \r\n // if (vm.MediaFile && vm.MediaFile.Type == 1 && !vm.VideoEnded) { \r\n // engageService.HandleEngageObjectCancelled(vm.MediaFile.Id, 'MediabankFile');//fire and forget\r\n // }\r\n //});\r\n }\r\n\r\n function mediatagsController(mediaService, $stateParams, $state, container, $timeout, $mdDialog, MetadataService, $filter, bizCoreService, $translate, $rootScope, $q, bizEngageService) {\r\n var vm = this;\r\n\r\n vm.tagId = ~~$stateParams.tagId;\r\n vm.tagSystemName = $stateParams.tagSystemName;\r\n vm.fileId = $stateParams.fileId;\r\n vm.defaultFileTypes = $stateParams.fileTypes;\r\n vm.setFirstSelected = $stateParams.setFirstSelected;\r\n \r\n vm.EventSource = \"MEDIA\";\r\n\r\n vm.playClicked = false; // TODO: Same as vm.VideoPlaying\r\n vm.MediaFiles = [];\r\n vm.MediaFileTypes = [];\r\n if (!vm.defaultFileTypes) {\r\n \tvm.defaultFileTypes = [];\r\n }\r\n\r\n vm.OnInit = OnInit;\r\n vm.OnPlay = OnPlay;\r\n vm.OnEnded = OnEnded;\r\n vm.VideoPlaying = false;\r\n\r\n vm.SelectedFile = undefined;\r\n vm.GetMediaFiles = GetMediaFiles;\r\n vm.GetFileImage = GetFileImage;\r\n vm.PerformLikeAction = PerformLikeAction;\r\n vm.GetTag = GetTag;\r\n vm.InitSlick = InitSlick;\r\n vm.SetSelectedFile = SetSelectedFile;\r\n vm.GetMediaFileTypes = GetMediaFileTypes;\r\n vm.GetYoutubeEmbedUrl = GetYoutubeEmbedUrl;\r\n vm.FilterAlreadyVisibleFiles = FilterAlreadyVisibleFiles;\r\n vm.FilterByTag = FilterByTag;\r\n vm.NavigateToMediaFileForTag = NavigateToMediaFileForTag;\r\n vm.PauseVideo = PauseVideo;\r\n vm.PlayVideo = PlayVideo;\r\n vm.PlayYoutube = PlayYoutube\r\n vm.YoutubePlayer = YoutubePlayer;\r\n vm.player;\r\n vm.GetFileTypeTranslations = GetFileTypeTranslations;\r\n\r\n function GetFileTypeTranslations(type) {\r\n if (!type.FileType)\r\n return;\r\n\r\n var value = type.FileType;\r\n var translation = type.NameOverrideTranslations.GetItemByValue('CultureId', $rootScope.LoggedInUser.CurrentCultureId);\r\n\r\n if (translation) {\r\n value = translation.Value;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n function PauseVideo() {\r\n \tvm.VideoPlaying = false;\r\n \tvar video = angular.element('#video-module-' + vm.SelectedFile.Id);\r\n \tvideo[0].pause();\r\n }\r\n\r\n function PlayYoutube() {\r\n \tvm.VideoPlaying = true;\r\n \tvm.VideoEnded = false;\r\n \tif (vm.player) {\r\n \t\tvar fn = function () { vm.player.playVideo(); }\r\n \t\tsetTimeout(fn, 1000);\r\n \t}\r\n }\r\n\r\n function PlayVideo() { \t\r\n \tvm.VideoPlaying = true;\r\n \tvm.VideoEnded = false;\r\n \tvar video = angular.element('#video-module-' + vm.SelectedFile.Id);\r\n \tif (vm.VideoEnded) {\r\n \t\tif (video.length) {\r\n \t\t\tvideo[0].pause();\r\n \t\t\tvideo[0].currentTime = '0';\r\n \t\t\tvideo[0].play();\r\n \t\t\tvm.PlayedVideo = true;\r\n \t\t}\r\n \t}\r\n \telse {\r\n \t\tif (video.length) {\r\n \t\t\tvideo[0].play();\r\n \t\t\tvm.PlayedVideo = true;\r\n \t\t}\r\n \t}\r\n }\r\n\r\n function YoutubePlayer(videoId) { \r\n \tvar id = \"youtube-\" + vm.SelectedFile.Id;\r\n \tif (window.matchMedia(\"(min-width: 720px)\").matches) {\r\n \t\tvm.player = new YT.Player(id, {\r\n \t\t\twidth: '100%',\r\n \t\t\tvideoId: videoId,\r\n playerVars: { rel: 0 },\r\n \t\t\tevents: {\r\n \t\t\t\t'onStateChange': onPlayerStateChange\r\n \t\t\t}\r\n \t\t});\r\n \t} else {\r\n \t\tvm.player = new YT.Player(id, {\r\n \t\t\theight: '100%',\r\n \t\t\twidth: '100%',\r\n \t\t\tvideoId: videoId,\r\n playerVars: { rel: 0 },\r\n \t\t\tevents: {\r\n \t\t\t\t'onStateChange': onPlayerStateChange\r\n \t\t\t}\r\n \t\t});\r\n \t}\r\n }\r\n\r\n \t// Youtube player change event...\r\n function onPlayerStateChange(event) {\r\n \tif (event.data === -1) {\r\n \t\tvm.OnPlay();\r\n \t}\r\n \telse if (event.data === 0) {\r\n \t\tvm.VideoEnded = true;\r\n \t\tvm.OnEnded();\r\n \t}\r\n \telse if (event.data === 3) {\r\n \t\t// pause\r\n \t}\r\n }\r\n\r\n function FilterByTag(file) {\r\n if (vm.tagId > 0 && file.Tags.length > 0) {\r\n \t\tfor (var i = 0; i < file.Tags.length; i++) {\r\n \t\t\tif (file.Tags.length == 0) {\r\n \t\t\t\treturn false;\r\n \t\t\t}\r\n\r\n \t\t\tif (file.Tags[i].Id == vm.tagId) {\r\n // if (vm.tagId == 9 && file.Type != 1) {\r\n \t\t\t\t//\treturn false;\r\n \t\t\t\t//}\r\n \t\t\t\treturn true;\r\n \t\t\t}\r\n \t\t}\r\n \t}\r\n\r\n \treturn false;\r\n }\r\n\r\n function FilterAlreadyVisibleFiles(file) {\r\n \t// remove other types?\r\n \tif (file.Type != vm.SelectedFile.Type) {\r\n \t\treturn false;\r\n \t}\r\n\r\n \t// remove current viewed file\r\n \tif (file.Id == vm.SelectedFile.Id) {\r\n \t\treturn false;\r\n \t}\r\n\r\n\t\t\t// remove files with selected tagId\r\n \tif (vm.tagId > 0 && file.Tags.length > 0) {\r\n \t\tfor (var i = 0; i < file.Tags.length; i++) {\r\n \t\t\tif (file.Tags[i].Id == vm.tagId) {\r\n \t\t\t\treturn false;\r\n \t\t\t}\r\n \t\t}\r\n \t}\r\n\r\n \treturn true;\r\n }\r\n\r\n function OnInit() {\r\n \tif (vm.SelectedFile) {\r\n \t\tbizCoreService.EventInit(vm.SelectedFile.Id, 14, vm.EventSource);\r\n\r\n \t\tif (vm.SelectedFile.Type == 1 && vm.VideoType == vm.VideoTypes.Youtube) {\r\n \t\t\tsetTimeout(function () {\r\n \t\t\t\tvm.YoutubePlayer(GetYoutubeId(vm.SelectedFile.FileUrl));\r\n \t\t\t}, 0)\r\n \t\t}\r\n \t}\r\n }\r\n\r\n function OnPlay() {\r\n \tvm.playClicked = true;\r\n \tbizCoreService.EventStart(vm.SelectedFile.Id, 12, vm.EventSource);\r\n }\r\n\r\n function OnEnded() { \r\n \tbizCoreService.EventEnd(vm.SelectedFile.Id, 13, vm.EventSource);\r\n }\r\n\r\n function GetYoutubeEmbedUrl(url) {\r\n \treturn \"https://www.youtube.com/embed/\" + GetYoutubeId(url) + \"?rel=0\"; // + '?autoplay=1' // &controls=0\r\n }\r\n\r\n function GetYoutubeId(url) {\r\n var regExp = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=)([^#\\&\\?]*).*/;\r\n var match = url.match(regExp);\r\n\r\n if (match && match[2].length == 11) {\r\n return match[2];\r\n } else {\r\n return 'error';\r\n }\r\n }\r\n\r\n function GetFileImage(file) {\r\n switch (file.Type) {\r\n case 1:\r\n return file.Thumbnail;\r\n break;\r\n case 2:\r\n return file.FileUrl;\r\n break;\r\n case 3:\r\n break;\r\n }\r\n }\r\n\r\n function SetSelectedFile(file) {\r\n \tvm.playClicked = false;\r\n\r\n \tif (!file && vm.fileId) {\r\n\r\n \t\tvar idMatchIndex = -1;\r\n \t\tvar urlRewriteMatchIndex = -1;\r\n \t\tvar isNumeric = ~~vm.fileId;\t\t\t\t\r\n\r\n \t\tfor (var i = 0; i < vm.MediaFiles.length; i++) {\r\n \t\t\tvar urlRewrite = vm.MediaFiles[i].UrlRewrite;\r\n \t\t\tif (urlRewrite) {\r\n \t\t\t\tif (urlRewrite.toLowerCase() == vm.fileId.toLowerCase()) {\r\n \t\t\t\t\turlRewriteMatchIndex = i;\r\n \t\t\t\t}\r\n \t\t\t}\r\n\r\n \t\t\tif (isNumeric) {\r\n \t\t\t\tif (~~vm.fileId == vm.MediaFiles[i].Id) {\r\n \t\t\t\t\tidMatchIndex = i;\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\tif (urlRewriteMatchIndex >= 0) {\r\n \t\t\tfile = vm.MediaFiles[urlRewriteMatchIndex];\r\n \t\t} else if (idMatchIndex >= 0) {\r\n \t\t\tfile = vm.MediaFiles[idMatchIndex];\r\n \t\t}\r\n \t}\r\n\r\n \tif (!file && vm.SelectedTag && vm.setFirstSelected)\r\n {\r\n for (var i = 0; i < vm.MediaFiles.length; i++) {\r\n if (FilterByTag(vm.MediaFiles[i]) == true) {\r\n vm.SelectedFile = vm.MediaFiles[i];\r\n break;\r\n }\r\n }\r\n }\r\n else if (file)\r\n {\r\n \tvm.SelectedFile = file;\r\n }\r\n\r\n if (vm.SelectedFile && vm.SelectedFile.Type == 1) {\r\n vm.VideoTypes = {\r\n Native: 1,\r\n Youtube: 2,\r\n Vimeo: 3\r\n };\r\n\r\n var regExp = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=)([^#\\&\\?]*).*/;\r\n var match = vm.SelectedFile.FileUrl.match(regExp);\r\n if (match) {\r\n vm.VideoType = vm.VideoTypes.Youtube;\r\n }\r\n else {\r\n vm.VideoType = vm.VideoTypes.Native;\r\n }\r\n }\r\n\r\n OnInit();\r\n\r\n }\r\n\r\n function NavigateToMediaFileForTag(file, state) {\r\n \tvar fileId = file.UrlRewrite;\r\n \tif (!fileId) {\r\n \t\tfileId = file.Id;\r\n \t}\r\n\r\n \tif (!state) {\r\n \t\tstate = \"base.modules.mediatagsfileid\";\r\n\t\t\t}\r\n \treturn $state.go(state, { tagSystemName: vm.tagSystemName, fileId: fileId });\r\n }\r\n\r\n vm.GetMediaFileUrl = GetMediaFileUrl;\r\n\r\n function GetMediaFileUrl(file, state) {\r\n var fileId = file.UrlRewrite;\r\n if (!fileId) {\r\n fileId = file.Id;\r\n }\r\n\r\n if (!state) {\r\n state = \"base.modules.mediatagsfileid\";\r\n }\r\n return $state.href(state, { tagSystemName: vm.tagSystemName, fileId: fileId });\r\n }\r\n\r\n function GetMediaFileTypes() {\r\n mediaService.GetMediaFileTypes().then(GetMediaFileTypesSuccess);\r\n function GetMediaFileTypesSuccess(response) {\r\n vm.MediaFileTypes = response.data;\r\n vm.GetMediaFiles();\r\n }\r\n }\r\n\r\n function InitSlick() {\r\n vm.SlickLoaded = false;\r\n vm.SlickSettings = {\r\n arrows: false,\r\n dots: true,\r\n infinite: false,\r\n slidesToShow: 4,\r\n slidesToScroll: 4,\r\n customPaging: function () {\r\n return '';\r\n },\r\n responsive: [{\r\n breakpoint: 960,\r\n settings: {\r\n slidesToShow: 2,\r\n slidesToScroll: 2,\r\n }\r\n }]\r\n }\r\n $timeout(function () {\r\n vm.SlickLoaded = true;\r\n });\r\n }\r\n\r\n function PerformLikeAction(item, action) {\r\n \tif (!action.LikeActionPerformedByUser) {\r\n mediaService.AddLikeActionToMediaFile(item.Id, action.Action.Id).then(AddLikeActionToMediaFileSuccess);\r\n }\r\n\r\n \tfunction AddLikeActionToMediaFileSuccess(response) {\r\n \t action.LikeActionPerformedByUser = true; // changed from item\r\n \t action.Count++;\r\n\r\n \t var totalCount = 0;\r\n \t var totalValue = 0;\r\n\r\n \t for (var i = 0; i < item.LikeActions.length; i++) {\r\n \t totalCount += item.LikeActions[i].Count;\r\n \t totalValue += item.LikeActions[i].Action.Value * item.LikeActions[i].Count;\r\n \t }\r\n\r\n \t item.AverageLikeValue = totalValue / totalCount;\r\n }\r\n }\r\n\r\n function GetTag() {\r\n var defer = $q.defer();\r\n \tif (vm.tagSystemName) {\r\n \t\tmediaService.GetTagBySystemName(vm.tagSystemName).then(GetTagSuccess); \t\t\r\n \t} else {\r\n \t\tmediaService.GetTag(vm.tagId).then(GetTagSuccess);\r\n \t}\r\n \r\n function GetTagSuccess(response) { \r\n vm.SelectedTag = vm.tagSystemName ? response.data : response.data[0];\r\n if (vm.SelectedTag != null) {\r\n vm.tagId = vm.SelectedTag.Id;\r\n\r\n MetadataService.setMetaTags({\r\n title: vm.SelectedTag.Name,\r\n description: vm.SelectedTag.Description\r\n });\r\n }\r\n\r\n if (response.data == null) {\r\n defer.resolve(false);\r\n }\r\n else {\r\n defer.resolve(response);\r\n }\r\n \r\n vm.SetSelectedFile();\r\n }\r\n\r\n return defer.promise;\r\n }\r\n\r\n function GetMediaFiles() { \t\r\n var tagIds = vm.tagId ? [vm.tagId] : undefined;\r\n mediaService.GetMediaFiles(vm.MediaFileTypes.GetValues('Id'), tagIds, false).then(GetMediaFilesSuccess);\r\n function GetMediaFilesSuccess(response) {\r\n vm.MediaFiles = response.data;\r\n\r\n vm.SetSelectedFile();\r\n vm.InitSlick();\r\n }\r\n }\r\n\r\n angular.element(document).ready(function () {\r\n $translate(['MEDIA.META.TITLE', 'MEDIA.META.DESCRIPTION']).then(function (translations) {\r\n MetadataService.setMetaTags({\r\n title: translations['MEDIA.META.TITLE'],\r\n description: translations['MEDIA.META.DESCRIPTION']\r\n })\r\n });\r\n\r\n GetTag().then(function (response) {\r\n vm.GetMediaFileTypes();\r\n })\r\n\r\n bizEngageService.GetMiniJourneySetting('MediabankFile').then(function (response) {\r\n vm.MiniJourneySettings = response;\r\n });\r\n }); \r\n }\r\n})(window.angular);\r\n","(function(angular) {\r\n angular.module('bizPartEngage').directive('bizModuleVideoList', bizModuleVideoListDirective);\r\n\r\n bizModuleVideoListDirective.$inject = [];\r\n\r\n function bizModuleVideoListDirective() {\r\n var directive = {\r\n restrict: \"E\",\r\n scope: {\r\n settings: \"=?\"\r\n },\r\n templateUrl: function(element, attr) {\r\n if (attr.templateurl) {\r\n return siteRootPath + attr.templateurl;\r\n } else {\r\n return siteRootPath + \"FrontEnd/Modules/Media/Views/video-list.html\"\r\n }\r\n },\r\n controller: bizModuleVideoListController,\r\n controllerAs: \"vm\",\r\n bindToController: true\r\n };\r\n\r\n bizModuleVideoListController.$inject = [\"$rootScope\", \"modules.media.service\", \"$timeout\", \"$sce\"];\r\n\r\n function bizModuleVideoListController($rootScope, mediaService, $timeout, $sce) {\r\n var vm = this;\r\n vm.Videos = [];\r\n\r\n vm.Init = Init;\r\n\r\n function Init() {\r\n if(!vm.settings.Filter && vm.settings.SelectedFilter) vm.settings.Filter = vm.settings.SelectedFilter.Value;\r\n if(!vm.settings.Limit && vm.settings.SelectedLimit) vm.settings.Limit = vm.settings.SelectedLimit.Value;\r\n \r\n if(vm.settings.Filter == 'newest') {\r\n mediaService.GetMediaFiles([1], null, null, null).then(GetVideosSuccess);\r\n }\r\n else if(vm.settings.Filter == 'journey') {\r\n mediaService.GetMediaFiles([1], $rootScope.FavoriteTagIds, null, null, true).then(GetVideosSuccess);\r\n }\r\n\r\n function GetVideosSuccess(response) {\r\n vm.Videos = response.data;\r\n }\r\n }\r\n\r\n vm.$onInit = vm.Init;\r\n\r\n if (angular.version.major === 1 && angular.version.minor < 5) {\r\n vm.$onInit();\r\n }\r\n }\r\n\r\n return directive;\r\n }\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').service('modules.media.service', mediaService);\r\n\r\n mediaService.$inject = [\"$http\", \"$rootScope\"];\r\n\r\n function mediaService($http, $rootScope) {\r\n\r\n this.GetMediaFiles = function (fileTypes, tagIds, getRelatedFiles, includeViews, journeyOrder) {\r\n return $http.post(siteRootPath + \"api/MediabankUser/GetMediaBankFilesForUser\",\r\n { FileTypes: fileTypes, TagIds: tagIds, GetRelatedFiles: getRelatedFiles, IncludeViews: includeViews, JourneyOrder: journeyOrder || false });\r\n };\r\n\r\n this.GetGenericSetting = function (key) {\r\n return $http.get(siteRootPath + \"api/mediabankuser/GetGenericSetting?\" + $.param({ key: key }));\r\n };\r\n\r\n this.GetGenericSettings = function (keys) {\r\n return $http.get(siteRootPath + \"api/genericsetting/GetGenericSettings?\" + $.param({ type: 'MEDIABANK', keys: keys }));\r\n };\r\n\r\n this.GetMediaFileTypes = function () {\r\n return $http.get(siteRootPath + \"api/mediabankuser/GetMediaFileTypes\");\r\n };\r\n\r\n this.GetTag = function (id) {\r\n return $http.get(siteRootPath + \"api/generictag/getTags?\" + $.param({ tagIds: id }));\r\n }\r\n this.GetTagBySystemName = function (systemName) {\r\n \treturn $http.get(siteRootPath + \"api/generictag/getTagBySystemName?\" + $.param({ tagSystemName: systemName }));\r\n }\r\n\r\n this.AddLikeActionToMediaFile = function (entryId, actionId) {\r\n return $http.post(siteRootPath + 'api/mediabankuser/AddLikeActionToMediaFile', { objectId: entryId, actionId: actionId }, { ignoreLoadingBar: true });\r\n } \r\n }\r\n})(window.angular);\r\n","(function(angular) {\r\n\tangular.module('bizPartEngage').controller('modules.missions', missionsController);\r\n\tangular.module('bizPartEngage').controller('modules.missions.view', missionsViewController);\r\n\tangular.module('bizPartEngage').controller('modules.missions.users', missionsUsersController);\r\n\r\n\tmissionsController.$inject = [\"modules.missions.service\", \"$stateParams\", \"$interval\", \"$translate\", \"MetadataService\"];\r\n\tmissionsViewController.$inject = [\"modules.missions.service\", \"$stateParams\", \"$translate\", \"MetadataService\"];\r\n\tmissionsUsersController.$inject = [\"modules.missions.service\", \"$stateParams\", \"$translate\", \"MetadataService\"];\r\n\r\n\tfunction missionsController(missionsService, $stateParams, $interval, $translate, MetadataService) {\r\n \tvar vm = this;\r\n }\r\n\r\n\tfunction missionsViewController(missionsService, $stateParams, $translate, MetadataService) {\r\n \tvar vm = this;\r\n \tvm.Mission = {};\r\n \tvm.MissionId = ~~$stateParams.id;\r\n \tvm.GetMission = GetMission;\r\n \tvm.GetRuleUrl = GetRuleUrl;\r\n\r\n \tfunction GetRuleUrl(rule) {\r\n\t\t\tvar url = rule.Value.Url.Value;\r\n \t\tif (rule.Value.CompleteId && url != null && url.indexOf(\"#OBJECTID#\") > -1)\r\n\t\t\t\turl = url.replace(\"#OBJECTID#\", rule.Value.CompleteId.Value.Id);\r\n\t\t\t\t\r\n\t\t\tif (rule.Value.CompleteId && url != null && url.indexOf(\"#URLREWRITE#\") > -1)\r\n \t\t\turl = url.replace(\"#URLREWRITE#\", rule.Value.CompleteId.Value.UrlRewrite);\r\n\r\n \t\treturn url;\r\n \t}\r\n\r\n \tfunction GetMission(missionId) {\r\n\t\t\tmissionsService.GetMission(missionId).then(getMissionCallBack);\r\n\r\n \t\tfunction getMissionCallBack(response) {\r\n \t\t\t var mission = response.data;\r\n \t\t\t for (var i = 0; i < mission.Rules.length; i++) {\r\n \t\t\t \tmission.Rules[i].Value = JSON.parse(mission.Rules[i].Value);\r\n \t\t\t}\r\n \t\t\tvm.Mission = mission;\r\n \t\t}\r\n \t}\r\n\r\n \tangular.element(document).ready(function () {\r\n \t vm.GetMission(vm.MissionId);\r\n\r\n \t $translate(['MISSIONS.META.TITLE', 'MISSIONS.META.DESCRIPTION']).then(function (translations) {\r\n \t MetadataService.setMetaTags({\r\n \t title: translations['MISSIONS.META.TITLE'],\r\n \t description: translations['MISSIONS.META.DESCRIPTION']\r\n \t })\r\n \t });\r\n \t});\r\n }\r\n\r\n\tfunction missionsUsersController(missionsService, $stateParams, $translate, MetadataService) {\r\n \tvar vm = this;\r\n \tvm.Users = [];\r\n \tvm.MissionId = ~~$stateParams.id;\r\n \tvm.GetUsers = GetUsers;\r\n \tvm.Back = Back;\r\n\r\n \tfunction GetUsers() {\r\n\t\t\tmissionsService.GetUsers(vm.MissionId).then(function (response) {\r\n \t\t\tvm.Users = response.data;\r\n \t\t});\r\n \t}\r\n\r\n \tfunction Back() {\r\n \t\twindow.history.back();\r\n \t}\r\n\r\n \tangular.element(document).ready(function () {\r\n \t vm.GetUsers();\r\n\r\n \t $translate(['MISSIONS.META.TITLE', 'MISSIONS.META.DESCRIPTION']).then(function (translations) {\r\n \t MetadataService.setMetaTags({\r\n \t title: translations['MISSIONS.META.TITLE'],\r\n \t description: translations['MISSIONS.META.DESCRIPTION']\r\n \t })\r\n \t });\r\n \t});\r\n }\r\n})(window.angular);\r\n","(function () {\r\n\tangular.module('bizPartEngage').controller('modules.missionsList', missionListController);\r\n\tangular.module('bizPartEngage').directive('bizMission', bizMissionDirective);\r\n\tangular.module('bizPartEngage').directive('bizMissionRule', bizMissionRuleDirective);\r\n\tangular.module('bizPartEngage').directive('missionUser', missionUserDirective);\r\n\tangular.module('bizPartEngage').directive('bizMissionList', missionListDirective);\r\n\r\n\tbizMissionDirective.$inject = [\"$interval\", \"bizCore\"];\r\n\tbizMissionRuleDirective.$inject = [\"$compile\"];\r\n\tmissionListDirective.$inject = [\"bizCore\"];\r\n\r\n\tfunction bizMissionDirective($interval, bizCoreProvider) {\r\n\t\tvar directive = {\r\n\t\t\trestrict: 'E',\r\n\t\t\ttransclude: true,\r\n\t\t\tscope: {\r\n\t\t\t\tmission: \"=\"\r\n\t\t\t},\r\n\t\t\ttemplateUrl: bizCoreProvider.getView('bizMissionDirective', 'FrontEnd/Modules/Missions/views/directives/bizMission.html'),\r\n\t\t\tlink: bizMissionLinkFunction,\r\n\t\t\tcontroller: bizMissionController,\r\n\t\t\tcontrollerAs: 'vm',\r\n\t\t\tbindToController: true\r\n\t\t};\r\n\r\n\t\tbizMissionController.$inject = [\"$scope\"];\r\n\r\n\t\treturn directive;\r\n\r\n\t\tfunction bizMissionLinkFunction(scope, element) {\r\n\t\t}\r\n\r\n\t\tfunction bizMissionController($scope) {\r\n\t\t\tvar vm = this;\r\n\t\t\tvm.GetNextRule = GetNextRule;\r\n\t\t\tvm.CalculateTimeStats = CalculateTimeStats;\r\n\t\t\tvm.CalculateCompletedPercent = CalculateCompletedPercent;\r\n\r\n\t\t\tfunction GetNextRule () {\r\n\t\t\t\tif (vm.NextRule)\r\n\t\t\t\t\treturn vm.NextRule\r\n\r\n\t\t\t\tif (vm.mission != undefined && vm.mission.Rules != undefined) {\r\n\t\t\t\t\tfor (var i = 0; i < vm.mission.Rules.length; i++) {\r\n\t\t\t\t\t\tif (~~vm.mission.Rules[i].PercentageComplete < 100) {\r\n\t\t\t\t\t\t\trule = vm.mission.Rules[i];\r\n\t\t\t\t\t\t\tvm.NextRule = rule;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn vm.NextRule;\r\n\t\t\t};\r\n\r\n\t\t\tfunction CalculateTimeStats() {\r\n\t\t\t\tvm.Now = moment();\r\n\t\t\t\tvm.EndDate = moment(vm.mission.EndDate);\r\n\t\t\t\tvm.DaysLeft = vm.EndDate.diff(vm.Now, 'days');\r\n\r\n\t\t\t\tif (vm.DaysLeft <= 0)\r\n\t\t\t\t\tvm.DaysLeft = 0;\r\n\r\n\t\t\t\tvm.HoursLeft = vm.EndDate.diff(vm.Now.add(vm.DaysLeft, 'days'), 'hours');\r\n\r\n\t\t\t\tif (vm.HoursLeft <= 0)\r\n\t\t\t\t\tvm.HoursLeft = 0;\r\n\r\n\t\t\t\tvm.MinutesLeft = vm.EndDate.diff(vm.Now.add(vm.HoursLeft, 'hours'), 'minutes');\r\n\r\n\t\t\t\tif (vm.MinutesLeft <= 0)\r\n\t\t\t\t\tvm.MinutesLeft = 0;\r\n\t\t\t};\r\n\r\n\t\t\tfunction CalculateCompletedPercent() {\r\n\t\t\t\tvm.CompletedPercentage = 0;\r\n\t\t\t\tvar totalPercentage = 0;\r\n\t\t\t\tvar amountOfRules = 0;\r\n\t\t\t\tif (vm.mission.Rules != undefined) {\r\n\t\t\t\t\tfor (var i = 0; i < vm.mission.Rules.length; i++) {\r\n\t\t\t\t\t\ttotalPercentage += vm.mission.Rules[i].PercentageComplete;\r\n\t\t\t\t\t\tamountOfRules++;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (totalPercentage > 0 && amountOfRules > 0)\r\n\t\t\t\t\t\tvm.CompletedPercentage = totalPercentage / amountOfRules;\r\n\r\n\t\t\t\t\tvm.CompletedPercentage = ~~vm.CompletedPercentage;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\t$interval(vm.CalculateTimeStats, 10000);\r\n\r\n\t\t\t$scope.$watch(function () { return vm.mission; }, function () {\r\n\t\t\t\tvm.CalculateCompletedPercent();\r\n\t\t\t\tvm.CalculateTimeStats();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tfunction bizMissionRuleDirective($compile) {\r\n\t\tvar directive = {\r\n\t\t\trestrict: 'E',\r\n\t\t\tscope: {\r\n\t\t\t\trule: \"=\",\r\n\t\t\t\tmission: \"=\"\r\n\t\t\t},\r\n\t\t\tlink: linkFunction\r\n\t\t};\r\n\r\n\t\treturn directive;\r\n\r\n\t\tfunction linkFunction(scope, element) {\r\n\t\t\tscope.TemplateUrl = \"\";\r\n\r\n\t\t\tscope.KnobData =\r\n {\r\n \tvalue: scope.rule.PercentageComplete,\r\n \toptions: {\r\n\t\t\t\t\tfgColor: scope.mission.Settings.SecondaryColor,\r\n\t\t\t\t\tbgColor: \"#FFF\",\r\n \t\tinputColor: '#000000',\r\n \t\tangleOffset: -125,\r\n \t\tangleArc: 250,\r\n \t\treadOnly: true,\r\n \t\twidth: 100,\r\n \t\tdisplayInput: false\r\n \t}\r\n };\r\n\r\n\t\t\tswitch (scope.rule.Class) {\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tscope.TemplateUrl = siteRootPath + \"FrontEnd/Modules/Missions/views/directives/bizMissionRules/GenericTemplate.html\";\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tangular.element(element).append($compile(\"
\")(scope));\r\n\t\t}\r\n\t}\r\n\r\n\tfunction missionUserDirective() {\r\n\t\tvar directive = {\r\n\t\t\trestrict: \"E\",\r\n\t\t\tscope: {\r\n\t\t\t\tuser: \"=\"\r\n\t\t\t},\r\n\t\t\ttemplateUrl: siteRootPath + \"FrontEnd/Modules/Missions/views/directives/bizMissionUser.html\",\r\n\t\t\tlink: linkFunction\r\n\t\t};\r\n\r\n\t\treturn directive;\r\n\r\n\t\tfunction linkFunction(scope) {\r\n\r\n\t\t}\r\n\t}\r\n\r\n\tfunction missionListDirective(bizCoreProvider) {\r\n\t\tvar directive = {\r\n\t\t\trestrict: \"E\",\r\n\t\t\tscope: {\r\n\r\n\t\t\t},\r\n\t\t\ttemplateUrl: bizCoreProvider.getView('base.modules.missions', 'FrontEnd/Modules/Missions/views/directives/bizMissionList.html'),\r\n\t\t\tcontroller: bizCoreProvider.getController('base.modules.missions', 'modules.missionsList'),\r\n\t\t\tcontrollerAs: 'vm',\r\n\t\t\tbindToController: true\r\n\t\t};\r\n\r\n\t\treturn directive;\r\n\t}\r\n\r\n\tmissionListController.$inject = [\"modules.missions.service\", \"$stateParams\", \"$interval\", \"$translate\", \"MetadataService\"];\r\n\r\n\tfunction missionListController(missionsService, $stateParams, $interval, $translate, MetadataService) {\r\n\t\tvar vm = this;\r\n\tvm.Missions = [];\r\n\t\r\n\tvm.GetDate = GetDate;\r\n\tvm.GetMissions = GetMissions;\r\n\tvm.CalculateTimeStats = CalculateTimeStats;\r\n\tvm.CalculateCompletedPercent = CalculateCompletedPercent;\r\n\tvm.CalculateTimeStatsForAllMissions = CalculateTimeStatsForAllMissions;\r\n\r\n\tfunction GetDate (date) {\r\n\t\treturn moment(date).format('YYYY-MM-DD');\r\n\t}\r\n\r\n\tfunction GetMissions() {\r\n\t\tmissionsService.GetMissionsForUser().then(function (response) {\r\n\t\t\tvm.Missions = response.data || [];\r\n\t\t\tfor (var i = 0; i < vm.Missions.length; i++) {\r\n\t\t\t\tvm.CalculateCompletedPercent(vm.Missions[i]);\r\n\t\t\t\tvm.CalculateTimeStats(vm.Missions[i]);\r\n\t\t\t}\r\n\t\t\tconsole.log(vm.Missions);\r\n\t\t});\r\n\t}\r\n\r\n\tfunction CalculateTimeStatsForAllMissions () {\r\n\t\tfor (var i = 0; i < vm.Missions.length; i++) {\r\n\t\t\tvm.CalculateTimeStats(vm.Missions[i]);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction CalculateCompletedPercent(mission) {\r\n\t\tmission.CompletedPercentage = 0;\r\n\t\tvar totalPercentage = 0;\r\n\t\tvar amountOfRules = 0;\r\n\t\tif (mission.Rules != undefined) {\r\n\t\t\tfor (var i = 0; i < mission.Rules.length; i++) {\r\n\t\t\t\ttotalPercentage += mission.Rules[i].PercentageComplete;\r\n\t\t\t\tamountOfRules++;\r\n\t\t\t}\r\n\r\n\t\t\tif (totalPercentage > 0 && amountOfRules > 0)\r\n\t\t\t\tmission.CompletedPercentage = totalPercentage / amountOfRules;\r\n\r\n\t\t\t\tmission.CompletedPercentage = ~~mission.CompletedPercentage;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tfunction CalculateTimeStats(mission) {\r\n\t\t\tvar now = moment();\r\n\t\t\tvar endDate = moment(mission.EndDate);\r\n\t\t\tmission.DaysLeft = endDate.diff(now, 'days');\r\n\r\n\t\t\tif (mission.DaysLeft <= 0)\r\n\t\t\t\tmission.DaysLeft = 0;\r\n\r\n\t\t\tmission.HoursLeft = endDate.diff(now.add(mission.DaysLeft, 'days'), 'hours');\r\n\r\n\t\t\tif (mission.HoursLeft <= 0)\r\n\t\t\t\tmission.HoursLeft = 0;\r\n\r\n\t\t\tmission.MinutesLeft = endDate.diff(now.add(mission.HoursLeft, 'hours'), 'minutes');\r\n\r\n\t\t\tif (mission.MinutesLeft <= 0)\r\n\t\t\t\tmission.MinutesLeft = 0;\r\n\t\t};\r\n\r\n\t\t$interval(vm.CalculateTimeStatsForAllMissions, 10000);\r\n\r\n\t\tangular.element(document).ready(function () {\r\n\t\t\tvm.GetMissions();\r\n\r\n\t\t\t$translate(['MISSIONS.META.TITLE', 'MISSIONS.META.DESCRIPTION']).then(function (translations) {\r\n\t\t\t\tMetadataService.setMetaTags({\r\n\t\t\t\t\ttitle: translations['MISSIONS.META.TITLE'],\r\n\t\t\t\t\tdescription: translations['MISSIONS.META.DESCRIPTION']\r\n\t\t\t\t})\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n}());","(function (angular) {\r\n\tangular.module('bizPartEngage').service('modules.missions.service', missionsService);\r\n\r\n missionsService.$inject = [\"$http\"];\r\n\r\n function missionsService($http) {\r\n \tthis.GetMissionsForUser = function () {\r\n \t\treturn $http.get(siteRootPath + 'Api/MissionsUser/GetMissionsForUser');\r\n \t};\r\n\r\n \tthis.GetMission = function (id) {\r\n \t\treturn $http.get(siteRootPath + 'Api/MissionsUser/GetMission?' + $.param({id: id}));\r\n \t};\r\n\r\n \tthis.GetUsers = function (id) {\r\n \t\treturn $http.get(siteRootPath + 'Api/MissionsUser/GetUsersWhoHaveCompletedMission', {\r\n\t\t\t\tparams: {\r\n\t\t\t\t\tmissionId: id\r\n\t\t\t\t}\r\n \t\t});\r\n \t};\r\n }\r\n})(window.angular);\r\n","(function (angular) {\r\n\tangular.module('bizPartEngage').controller('modules.search', indexController);\r\n\r\n indexController.$inject = [\"$stateParams\", \"bizCoreService\", \"$state\"];\r\n\r\n function indexController($stateParams, bizCoreService, $state) {\r\n\t\tvar vm = this;\r\n\t\tvm.ReferrerType = 'SearchPage';\r\n\t\tvm.ReferrerId = 0;\r\n\t\tvm.PageSize = 10;//setting\r\n\t\tvm.PageIndex = 0;\r\n\t\tvm.ResultCount = 0;\r\n\t\tvm.HitsIncement = 4;\r\n\r\n\t\tvm.SelectedIndex = 1;\r\n\r\n\t\tvm.OrderList = [/*{ Id: 0, Name: \"Relevans\" },*/ { Id: 2, Name: \"Från A-Ö\" }, { Id: 1, Name: \"Senaste\" }];\r\n\t\tvm.ShowAllIndex = { Index: 1, SearchIndexExternalName: \"Alla resultat\" };\r\n\r\n vm.SearchQuery = ($stateParams.query !== undefined ? decodeURIComponent($stateParams.query) : '');\r\n\r\n\t\tvm.Search = Search;\r\n\t\tvm.GoToResult = GoToResult;\r\n\t\tvm.GetResultHref = GetResultHref;\r\n\t\tvm.OnKeyPress = OnKeyPress;\r\n\t\tvm.SelectIndex = SelectIndex;\r\n\r\n\t\tvm.GetItemPreview = GetItemPreview;\r\n\t\tvm.GetStateUrl = GetStateUrl;\r\n\t\tvm.ShowCategory = ShowCategory;\r\n\t\tvm.ChangeSorting = ChangeSorting;\r\n\r\n vm.GetDate = GetDate;\r\n vm.HasValidDate = HasValidDate;\r\n\r\n function HasValidDate(date) {\r\n return !moment(date).isSameOrBefore('0001-01-01');\r\n }\r\n\r\n\t\tfunction GetDate(date) {\r\n\t\t return moment(date).format('YYYY-MM-DD');\r\n\t\t}\r\n\r\n\t\tfunction OnKeyPress($event) {\r\n\t\t\tif ($event.keyCode == 13) {\r\n\t\t\t\tvm.Search();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//function ChangeSorting(sortType) {\r\n\t\t//\tvm.SortBy = sortType.Id;\r\n\t\t//\tvm.Search();\r\n\t //}\r\n\t\tfunction ChangeSorting(Id) {\r\n\t\t vm.SortBy = Id;\r\n\t\t vm.Search();\r\n\t\t}\r\n\r\n\t\tfunction Search() {\t\t \r\n\t\t\tif (!vm.SearchQuery) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (!vm.SearchIndexList) {\r\n\t\t\t vm.SearchIndexList = [\r\n { Index: 2, TotalHits: vm.HitsIncement },\r\n { Index: 3, TotalHits: vm.HitsIncement },\r\n { Index: 4, TotalHits: vm.HitsIncement },\r\n\t\t\t { Index: 5, TotalHits: vm.HitsIncement },\r\n\t\t\t { Index: 6, TotalHits: vm.HitsIncement }];\r\n }\r\n\t\t\t\r\n\t\t\tvm.PageIndex = 0;\r\n\t\t\tvar maxHits = (vm.PageIndex + 1) * vm.PageSize;\r\n\r\n\t\t\tbizCoreService.Search(vm.SearchQuery, maxHits, vm.ReferrerType, vm.ReferrerId, vm.IndexList, vm.SearchIndexList, vm.SortBy).then(SearchCallback);\r\n\r\n\t\t\tfunction SearchCallback(response) {\r\n\t\t\t\tif (!vm.IndexesToShow) {\r\n\t\t\t\t\tvm.IndexesToShow = response.data.IndexToShowList;\r\n\t\t\t\t\tfor (var i = 0; i < vm.IndexesToShow.length; i++) {\r\n\t\t\t\t\t\tvm.IndexesToShow[i].TotalHits = vm.HitsIncement;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//vm.IndexesToShow.unshift({ Index: 1, SearchIndexExternalName: \"Alla resultat\" });\r\n\t\t\t\t}\t\t\t\t\r\n\t\t\t\tvm.ResultItems = response.data.ResultItems;\r\n\t\t\t\tvm.SearchedQuery = vm.SearchQuery;\t\t\t\t\r\n\t\t\t\tvm.ResultCount = response.data.TotalHits;\r\n\r\n\t\t\t\tHandleResults(vm.ResultItems);\r\n\r\n\t\t\t\tfunction HandleResults(results) {\r\n\t\t\t\t\tif (!results)\r\n\t\t\t\t\t\treturn;\r\n\r\n\t\t\t\t\tfor (var i = 0; i < results.length; i++) {\r\n\t\t\t\t\t\tresults[i].StateUrl = vm.GetStateUrl(results[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tfunction GoToResult(item) {\r\n\t\t\tbizCoreService.LogSearch(item);\t\t\t\r\n\t\t}\r\n\r\n\t\tfunction GetResultHref(item) {\r\n\t\t\treturn $state.href(item.State, JSON.parse(item.StateParameters));\t\t\t\r\n\t\t}\r\n\r\n\t\tfunction GetStateUrl(item) {\r\n var url = decodeURI($state.href(item.State, JSON.parse(item.StateParameters), { absolute: false }));\r\n\t\t\tif (url.indexOf(\"#!\") == 0) {\r\n\t\t\t\turl = url.substring(2);\r\n }\r\n if (url.indexOf(\"/\") == 0 && url.indexOf(siteRootPath) == -1) {\r\n url = url.replace(\"/\", siteRootPath);\r\n\t\t\t}\t\t\t\r\n\t\t\treturn url;\r\n\t\t}\r\n\r\n\t\tfunction GetItemPreview(item) {\r\n\t\t\t\r\n\t\t\tvar preview = item.ItemPreview;\t\t\t\r\n\t\t\treturn preview || '';\r\n\t\t}\r\n\r\n\t\tfunction SelectIndex(index) {\r\n\t\t if (vm.SelectedIndex) {\r\n\t\t vm.SelectedIndex == index ? vm.SelectedIndex = undefined : vm.SelectedIndex = index;\r\n\t\t }\r\n\t\t else\r\n\t\t vm.SelectedIndex = index;\r\n\t\t \r\n\t\t}\r\n\r\n\t\tfunction ShowCategory(category) {\t\t\t\r\n\t\t\tif (vm.ResultItems.GetItemsByValue('Index', category.Index).length > 0) {\r\n\t\t if (vm.SelectedIndex){\r\n\t\t if (vm.SelectedIndex != 1 && vm.SelectedIndex == category.Index)\r\n\t\t return true;\r\n\t\t else if (vm.SelectedIndex == 1)\r\n\t\t return true;\r\n\r\n\t\t return false;\r\n\t\t }\r\n\t\t else if(!vm.SelectedIndex)\r\n\t\t {\r\n\t\t return true;\r\n\t\t }\r\n\t\t }\r\n\t\t else\r\n\t\t return false;\t\t \r\n\t\t}\r\n\r\n\t\tfunction Init() {\r\n\t\t\tif (vm.SearchQuery) {\r\n\t\t\t\tvm.Search();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.$onInit = Init;\r\n\t}\r\n\r\n})(window.angular);\r\n","(function(angular) {\r\n angular.module('bizPartEngage').controller('modules.speedquiz.list', speedquizListController);\r\n angular.module('bizPartEngage').controller('modules.speedquiz.play', speedquizPlayController)\r\n angular.module('bizPartEngage').controller('modules.speedquiz.highscore', speedquizHighscoreController)\r\n\r\n speedquizListController.$inject = [\"$state\", \"$stateParams\", \"modules.speedquiz.service\", \"$filter\"];\r\n speedquizPlayController.$inject = [\"$stateParams\", \"bizUser\", \"$filter\", \"modules.speedquiz.service\", \"$scope\", \"$window\", \"$q\"];\r\n speedquizHighscoreController.$inject = [\"$stateParams\", \"modules.speedquiz.service\"];\r\n\r\n function speedquizListController($state, $stateParams, speedquizService, $filter) {\r\n var vm = this;\r\n vm.PluginInstanceId = ~~$stateParams.pluginInstanceId;\r\n vm.SpeedquizName = $stateParams.urlRewrite;//not actually used, just for show.\r\n vm.Speedquizes = [];\r\n\r\n vm.PlaySpeedquiz = PlaySpeedquiz;\r\n vm.GoToHighscore = GoToHighscore;\r\n\r\n function GoToHighscore(speedquiz) {\r\n $state.go('base.modules.speedquizhighscore', {pluginInstanceId: speedquiz.PluginInstanceId, name: speedquiz.Name});\r\n }\r\n\r\n function PlaySpeedquiz(speedquiz) {\r\n $state.go('base.modules.speedquizplay', { id: speedquiz.UrlRewrite || speedquiz.Id, pluginInstanceId: speedquiz.PluginInstanceId});\r\n }\r\n\r\n function GetSpeedquizes() {\r\n speedquizService.GetSpeedquizInstancesForLoggedInUser().then(GetSpeedquizesSuccess);\r\n \r\n function GetSpeedquizesSuccess(response) {\r\n if (vm.PluginInstanceId) {\r\n vm.Speedquizes = $filter('filter')(response.data, { PluginInstanceId: vm.PluginInstanceId }); \r\n } else {\r\n vm.Speedquizes = response.data;\r\n }\r\n }\r\n }\r\n\r\n function Init() {\r\n GetSpeedquizes();\r\n speedquizService.HasGuiOverrides();//caches result in session storage, which will decrease delay in start when the quiz actually launches\r\n }\r\n\r\n vm.$onInit = Init;\r\n }\r\n\r\n function speedquizPlayController($stateParams, user, $filter, speedquizService, $scope, $window, $q) {\r\n var vm = this;\r\n if (~~$stateParams.id > 0) {\r\n vm.SpeedquizId = ~~$stateParams.id;\r\n } else {\r\n vm.SpeedquizUrlRewrite = $stateParams.id\r\n }\r\n vm.SpeedquizId = ~~$stateParams.id > 0 ? ~~$stateParams.id : 0;\r\n vm.pluginInstanceId = ~~$stateParams.pluginInstanceId;\r\n vm.userSession = user.getLoggedInUser().Token; \r\n vm.hasCustomerGuiOverrides = false;\r\n\r\n vm.ShowGame = false;\r\n vm.IsLoading = true;\r\n\r\n vm.GetIframeUrl = GetIframeUrl;\r\n\r\n const postMessageReceived = (event) => {\r\n console.log(\"message received\", event); \r\n if (event.origin === $window.location.origin && event.data === 'ISLOADED') {\r\n vm.IsLoading = false;\r\n $scope.$digest();\r\n } \r\n };\r\n\r\n function GetIframeUrl() { \r\n var url = \"/Speedquiz/index.html?quizId=\" + vm.SpeedquizId + \"&siteRootPath=\" + siteRootPath + \"&UserSession=\" + vm.userSession + \"&lang=\" + cultureCode.substring(0, 2); \r\n if (vm.hasCustomerGuiOverrides) {\r\n url = url + '&customer=' + portalAlias;\r\n } \r\n\r\n return $filter('siteroot')(url);\r\n }\r\n \r\n \r\n function Init() {\r\n\r\n $window.addEventListener('message', postMessageReceived);\r\n\r\n var pList = [speedquizService.HasGuiOverrides()];\r\n if (vm.SpeedquizUrlRewrite) { \r\n pList.push(speedquizService.GetSpeedquizIdByUrlRewrite(vm.SpeedquizUrlRewrite));\r\n }\r\n\r\n $q.all(pList).then(Callback);\r\n\r\n function Callback(result) { \r\n vm.hasCustomerGuiOverrides = result[0];\r\n if (vm.SpeedquizUrlRewrite) {\r\n vm.SpeedquizId = ~~result[1].data; \r\n }\r\n vm.ShowGame = true;\r\n }\r\n \r\n //speedquizService.HasGuiOverrides().then(function (response) { \r\n // vm.hasCustomerGuiOverrides = response; \r\n // vm.ShowGame = true; \r\n //});\r\n }\r\n\r\n vm.$onInit = Init;\r\n\r\n $scope.$on(\"$destroy\", () => {\r\n $window.postMessage('QUIZCLEANUP', $window.location.origin);\r\n $window.removeEventListener('message', postMessageReceived);\r\n });\r\n }\r\n\r\n function speedquizHighscoreController($stateParams, speedquizService) {\r\n var vm = this;\r\n vm.pluginInstanceId = ~~$stateParams.pluginInstanceId;\r\n vm.speedquizName = $stateParams.name;\r\n vm.Highscore = [];\r\n\r\n vm.GetHighscore = GetHighscore;\r\n vm.GoBack = GoBack;\r\n\r\n function GoBack() {\r\n window.history.back();\r\n }\r\n\r\n function GetHighscore() {\r\n speedquizService.GetHighscore(vm.pluginInstanceId, 10).then(GetHighscoreSuccess);\r\n\r\n function GetHighscoreSuccess(response) {\r\n vm.Highscore = response.data.ScoreItems;\r\n }\r\n }\r\n\r\n \r\n function Init() {\r\n vm.GetHighscore();\r\n }\r\n\r\n vm.$onInit = Init;\r\n }\r\n})(window.angular);","(function(angular) {\r\n angular.module('bizPartEngage').service('modules.speedquiz.service', speedquizService);\r\n\r\n speedquizService.$inject = [\"$http\", \"$q\"];\r\n\r\n function speedquizService($http, $q) { \r\n\r\n this.GetSpeedquizInstancesForLoggedInUser = function() {\r\n return $http.get(siteRootPath + \"api/speedquiz/GetSpeedquizInstancesForLoggedInUser\");\r\n };\r\n\r\n this.GetHighscore = function(pluginInstanceId, max) {\r\n return $http.get(siteRootPath + \"api/speedquiz/GetHighscore?\" + $.param({id: pluginInstanceId, max:max}));\r\n };\r\n\r\n this.GetSpeedquizIdByUrlRewrite = function (urlRewrite) {\r\n return $http.get(siteRootPath + \"api/speedquiz/GetSpeedquizIdByUrlRewrite?\" + $.param({ urlRewrite: urlRewrite }));\r\n };\r\n\r\n this.GetSpeedquizInstance = function (quizId) {\r\n return $http.get(siteRootPath + \"api/speedquiz/GetSpeedquizInstance?\" + $.param(\r\n {\r\n id: quizId,\r\n assemblyName: 'BizPartEngage.Speedquiz.dll',\r\n className: 'BizPartEngage.Speedquiz.Plugins.SpeedquizGeneralPlugin',\r\n objectId: -1\r\n }\r\n ));\r\n };\r\n\r\n this.Answer = function (answer) {\r\n return $http.post(siteRootPath + \"api/speedquiz/Answer\", answer, { headers: { IgnoreLoader: true }});\r\n }\r\n\r\n this.Submit = function (score) {\r\n return $http.post(siteRootPath + \"api/speedquiz/SubmitScore\", score, { headers: { IgnoreLoader: true } });\r\n }\r\n\r\n this.HasGuiOverrides = function () {\r\n var defer = $q.defer();\r\n \r\n var v = getSessionStorage('SPEEDQUIZ_HAS_GUI_OVERRIDES'); \r\n if (v === undefined || v === null) { \r\n $http.get(siteRootPath + \"api/speedquiz/HasCustomerGuiOverrides\").then(WSCallback);\r\n } else { \r\n defer.resolve(v === 'true'); \r\n }\r\n\r\n return defer.promise;\r\n\r\n function WSCallback(response) {\r\n setSessionStorage('SPEEDQUIZ_HAS_GUI_OVERRIDES', response.data); \r\n defer.resolve(response.data);\r\n }\r\n };\r\n }\r\n})(window.angular);","(function (angular) {\r\n angular.module('bizPartEngage').config(configCoreFunction);\r\n configCoreFunction.$inject = [\"$stateProvider\", \"bizUserProvider\", \"bizCoreProvider\", \"$translatePartialLoaderProvider\", \"bizPortalProvider\"];\r\n function configCoreFunction($stateProvider, bizUserProvider, bizCoreProvider, $translatePartialLoaderProvider, portalProvider) {\r\n\r\n\t\t$stateProvider\r\n .state('base.modules', {\r\n \ttemplate: '
'\r\n\t\t})\r\n\t\t.state('base.modules.blog', {\r\n \turl: \"/modules/blogs\",\r\n \ttemplateUrl: bizCoreProvider.getView('base.modules.blog', 'FrontEnd/Modules/Blog/Views/Index.html'), \r\n controller: bizCoreProvider.getController('base.modules.blogs', 'modules.blogs.list'),\r\n \tcontrollerAs: \"vm\",\r\n \tdata: {\r\n rule: function () { return bizUserProvider.HasModuleAccess('BLOG', bizUserProvider.AccessTypeRight.Read); }\r\n \t}\r\n })\r\n .state('base.modules.blogtitle', {\r\n\t\t\turl: \"/blog/:title\",\r\n\t\t\tparams: {title: null},\r\n templateUrl: bizCoreProvider.getView('base.modules.blogtitle', 'FrontEnd/Modules/Blog/Views/view.html'), \r\n controller: bizCoreProvider.getController('modules.blogs.show', 'modules.blogs.show'),\r\n\t\t\tcontrollerAs: \"vm\",\r\n\t\t\tdata: {\r\n rule: function () { return bizUserProvider.HasModuleAccess('BLOG', bizUserProvider.AccessTypeRight.Read); },\r\n parentState: \"base.modules.blog\"\r\n\t\t\t}\r\n }).state('base.modules.blogtag', {\r\n \turl: \"/blogtags/:tagSystemName\",\r\n params: { id: null },\r\n templateUrl: bizCoreProvider.getView('base.modules.blogtag', 'FrontEnd/Modules/Blog/Views/Index.html'), \r\n controller: bizCoreProvider.getController('base.modules.blogtag', 'modules.blogs.showbytag'),\r\n controllerAs: \"vm\",\r\n data: {\r\n rule: function () { return bizUserProvider.HasModuleAccess('BLOG', bizUserProvider.AccessTypeRight.Read); },\r\n parentState: \"base.modules.blog\"\r\n }\r\n })\r\n \t.state('base.modules.missions', {\r\n \t\turl: \"/modules/missions\",\r\n template: '', \r\n controller: 'modules.missions',\r\n \t\tcontrollerAs: \"vm\",\r\n \t\tdata: {\r\n \t\t\trule: function () { return bizUserProvider.HasModuleAccess('MISSIONS', bizUserProvider.AccessTypeRight.Read); }\r\n \t\t}\r\n \t})\r\n \t.state('base.modules.missionsview', {\r\n \t\turl: \"/modules/missions/:id\",\r\n templateUrl: bizCoreProvider.getView('base.modules.missionsview', 'FrontEnd/Modules/Missions/Views/view.html'), \r\n controller: bizCoreProvider.getController('base.modules.missionsview', 'modules.missions.view'),\r\n \t\tcontrollerAs: \"vm\",\r\n \t\tdata: {\r\n rule: function () { return bizUserProvider.HasModuleAccess('MISSIONS', bizUserProvider.AccessTypeRight.Read); },\r\n parentState: \"base.modules.missions\"\r\n \t\t}\r\n \t})\r\n .state('base.modules.missionsusers', {\r\n \turl: \"/modules/missions/:id/users\",\r\n templateUrl: bizCoreProvider.getView('base.modules.missionsusers', 'FrontEnd/Modules/Missions/Views/users.html'), \r\n controller: bizCoreProvider.getController('base.modules.missionsusers', 'modules.missions.users'),\r\n \tcontrollerAs: \"vm\",\r\n \tdata: {\r\n rule: function () { return bizUserProvider.HasModuleAccess('MISSIONS', bizUserProvider.AccessTypeRight.Read); },\r\n parentState: \"base.modules.missions\"\r\n \t}\r\n })\r\n\t\t.state('base.modules.educations', {\r\n\t\t\turl: \"/modules/educations\",\r\n templateUrl: bizCoreProvider.getView('base.modules.educations', 'FrontEnd/Modules/Education/Views/index.html'),\r\n controller: 'modules.educations',\r\n\t\t\tcontrollerAs: \"vm\",\r\n\t\t\tdata: {\r\n\t\t\t\trule: function () { return bizUserProvider.HasModuleAccess('EDUCATION', bizUserProvider.AccessTypeRight.Read); }\r\n\t\t\t}\r\n }).state('base.modules.educationtag', {\r\n url: \"/educationtags/:tagSystemName\",\r\n params: { id: null },\r\n templateUrl: bizCoreProvider.getView('base.modules.educationtag', 'FrontEnd/Modules/Education/Views/Index.html'),\r\n controller: bizCoreProvider.getController('base.modules.educationtag', 'modules.educations'),\r\n controllerAs: \"vm\",\r\n data: {\r\n rule: function () { return bizUserProvider.HasModuleAccess('EDUCATION', bizUserProvider.AccessTypeRight.Read); },\r\n parentState: \"base.modules.educations\"\r\n }\r\n })\r\n\t\t.state('base.modules.html5education', {\r\n\t\t\turl: \"/modules/education/html5/:id\",\r\n\t\t\ttemplateUrl: bizCoreProvider.getView('base.modules.html5education', 'FrontEnd/Modules/Education/Views/html5education.html'), \r\n controller: bizCoreProvider.getController('base.modules.html5education', 'modules.educations.html5'),\r\n\t\t\tcontrollerAs: \"vm\",\r\n\t\t\tdata: {\r\n rule: function () { return bizUserProvider.HasModuleAccess('EDUCATION', bizUserProvider.AccessTypeRight.Read); },\r\n parentState: \"base.modules.educations\"\r\n\t\t\t}\r\n\t\t})\r\n\t\t.state('base.modules.cms', {\r\n\t\t\turl: \"/page/:id\",\r\n\t\t\ttemplateUrl: bizCoreProvider.getView('base.modules.cms', 'FrontEnd/Modules/CMS/Views/page.html'), \r\n controller: bizCoreProvider.getController('base.modules.cms', 'modules.cms.page'),\r\n controllerAs: \"vm\",\r\n params: {\r\n params: null //optional params that can be used in modules that might be on the page\r\n },\r\n\t\t\tdata: {\r\n\t\t\t\trule: function () { return bizUserProvider.HasModuleAccess('CMS', bizUserProvider.AccessTypeRight.Read); }\r\n\t\t\t}\r\n\t\t})\r\n\t\t.state('base.modules.forums', {\r\n\t\t\turl: \"/modules/forums\",\r\n\t\t\ttemplateUrl: bizCoreProvider.getView('base.modules.forums', 'FrontEnd/Modules/Forum/Views/index.html'), \r\n controller: bizCoreProvider.getController('base.modules.forums', 'modules.forums'),\r\n\t\t\tcontrollerAs: \"vm\",\r\n\t\t\tdata: {\r\n\t\t\t\trule: function () { return bizUserProvider.HasModuleAccess('FORUM', bizUserProvider.AccessTypeRight.Read); }\r\n\t\t\t}\r\n\t\t})\r\n\t\t.state('base.modules.forum', {\r\n\t\t\turl: \"/modules/forum/:id\",\r\n\t\t\ttemplateUrl: bizCoreProvider.getView('base.modules.forum', 'FrontEnd/Modules/Forum/Views/viewforum.html'), \r\n controller: bizCoreProvider.getController('base.modules.forum', 'modules.forum'),\r\n\t\t\tcontrollerAs: \"vm\",\r\n\t\t\tdata: {\r\n rule: function () { return bizUserProvider.HasModuleAccess('FORUM', bizUserProvider.AccessTypeRight.Read); },\r\n parentState: \"base.modules.forums\"\r\n\t\t\t}\r\n\t\t})\r\n\t\t.state('base.modules.forumthread', {\r\n\t\t\turl: \"/modules/forum-thread/:id\",\r\n\t\t\ttemplateUrl: bizCoreProvider.getView('base.modules.forumthread', 'FrontEnd/Modules/Forum/Views/viewforumthread.html'), \r\n controller: bizCoreProvider.getController('base.modules.forumthread', 'modules.forum.thread'),\r\n\t\t\tcontrollerAs: \"vm\",\r\n\t\t\tdata: {\r\n rule: function () { return bizUserProvider.HasModuleAccess('FORUM', bizUserProvider.AccessTypeRight.Read); },\r\n parentState: \"base.modules.forums\"\r\n\t\t\t}\r\n\t\t}).state('base.modules.dictionary', {\r\n\t\t\turl: \"/modules/dictionary\",\r\n\t\t\ttemplateUrl: bizCoreProvider.getView('base.modules.dictionary', 'FrontEnd/Modules/Dictionary/Views/index.html'), \r\n controller: bizCoreProvider.getController('base.modules.dictionary', 'modules.dictionary'),\r\n\t\t\tcontrollerAs: \"vm\",\r\n\t\t\tdata: {\r\n\t\t\t\trule: function () { return bizUserProvider.HasModuleAccess('DICTIONARY', bizUserProvider.AccessTypeRight.Read); }\r\n\t\t\t}\r\n\t\t}).state('base.modules.dictionaryitem', {\r\n\t\t\turl: \"/modules/dictionary/:id\",\r\n\t\t\ttemplateUrl: bizCoreProvider.getView('base.modules.dictionary', 'FrontEnd/Modules/Dictionary/Views/index.html'), \r\n controller: bizCoreProvider.getController('base.modules.dictionary', 'modules.dictionary'),\r\n\t\t\tcontrollerAs: \"vm\",\r\n\t\t\tdata: {\r\n\t\t\t\trule: function () { return bizUserProvider.HasModuleAccess('DICTIONARY', bizUserProvider.AccessTypeRight.Read); }\r\n\t\t\t}\r\n\t\t}).state('base.modules.event', {\r\n\t\t\turl: \"/modules/event/:id\",\r\n\t\t\ttemplateUrl: bizCoreProvider.getView('base.modules.event', 'FrontEnd/Modules/Event/Views/index.html'), \r\n controller: bizCoreProvider.getController('base.modules.event', 'modules.event'),\r\n\t\t\tcontrollerAs: \"vm\",\r\n\t\t\tdata: {\r\n\t\t\t\trule: function () { return bizUserProvider.HasModuleAccess('EVENT', bizUserProvider.AccessTypeRight.Read); }\r\n\t\t\t}\r\n\t\t}).state('base.modules.media', {\r\n\t\t url: \"/modules/media/\",\r\n\t\t templateUrl: bizCoreProvider.getView('base.modules.media', 'FrontEnd/Modules/Media/Views/index.html'), \r\n controller: bizCoreProvider.getController('base.modules.media', 'modules.media'),\r\n\t\t controllerAs: \"vm\",\r\n\t\t data: {\r\n\t\t rule: function () { return bizUserProvider.HasModuleAccess('MEDIABANK', bizUserProvider.AccessTypeRight.Read); }\r\n\t\t }\r\n\t\t}).state('base.modules.mediafile', {\r\n\t\t url: \"/modules/media/:id\",\r\n\t\t templateUrl: bizCoreProvider.getView('base.modules.mediafile', 'FrontEnd/Modules/Media/Views/viewfile.html'), \r\n controller: bizCoreProvider.getController('base.modules.mediafile', 'modules.media'),\r\n\t\t controllerAs: \"vm\",\r\n\t\t data: {\r\n rule: function () { return bizUserProvider.HasModuleAccess('MEDIABANK', bizUserProvider.AccessTypeRight.Read); },\r\n parentState: \"base.modules.media\"\r\n\t\t }\r\n\t\t}).state('base.modules.mediatagsfileid', {\r\n\t\t\turl: \"/mediatags/:tagSystemName/:fileId\",\r\n templateUrl: bizCoreProvider.getView('base.modules.mediatags', 'FrontEnd/Modules/Media/Views/viewtags.html'), \r\n controller: bizCoreProvider.getController('base.modules.mediatags', 'modules.mediatags'),\r\n\t\t\tcontrollerAs: \"vm\",\r\n\t\t\tdata: {\r\n rule: function () { return bizUserProvider.HasModuleAccess('MEDIABANK', bizUserProvider.AccessTypeRight.Read); },\r\n parentState: \"base.modules.media\"\r\n\t\t\t}\r\n\t\t}).state('base.modules.mediatags', {\r\n\t\t\turl: \"/mediatags/:tagSystemName\",\r\n templateUrl: bizCoreProvider.getView('base.modules.mediatags', 'FrontEnd/Modules/Media/Views/index.html'), \r\n controller: bizCoreProvider.getController('base.modules.mediatags', 'modules.mediatags'),\r\n\t\t\tcontrollerAs: \"vm\",\r\n\t\t\tdata: {\r\n rule: function () { return bizUserProvider.HasModuleAccess('MEDIABANK', bizUserProvider.AccessTypeRight.Read); },\r\n parentState: \"base.modules.media\"\r\n\t\t\t}\t\t\r\n\t\t}).state('base.modules.search', {\r\n\t\t url: \"/modules/search/?:query\",\r\n\t\t templateUrl: bizCoreProvider.getView('base.modules.search', 'FrontEnd/Modules/Search/Views/index.html'), \r\n controller: bizCoreProvider.getController('base.modules.search', 'modules.search'),\r\n\t\t controllerAs: \"vm\",\r\n data: {\r\n rule: function () { return bizUserProvider.IsLoggedIn() || portalProvider.IsPortalPublic(); }\r\n\t\t }\r\n\t\t}).state('base.modules.masterrun', {\r\n\t\t\turl: \"/modules/masterrun\",\r\n\t\t\ttemplateUrl: bizCoreProvider.getView('base.modules.masterrun', 'FrontEnd/Modules/MasterRun/Views/index.html'), \r\n controller: bizCoreProvider.getController('base.modules.masterrun', 'modules.masterrun'),\r\n\t\t\tcontrollerAs: \"vm\",\r\n\t\t\tdata: {\r\n\t\t\t\trule: function () { return bizUserProvider.HasModuleAccess('MASTER_RUN', bizUserProvider.AccessTypeRight.Read); }\r\n } \r\n }).state('base.modules.journey', {\r\n\t\t\turl: \"/modules/journey\",\r\n\t\t\ttemplateUrl: bizCoreProvider.getView('base.modules.journey', 'FrontEnd/Modules/Journey/Views/index.html'), \r\n controller: bizCoreProvider.getController('base.modules.journey', 'modules.journey'),\r\n\t\t\tcontrollerAs: \"vm\",\r\n\t\t\tdata: {\r\n\t\t\t\trule: function () { return true; return bizUserProvider.HasModuleAccess('ENGAGEMENT_GOAL', bizUserProvider.AccessTypeRight.Read); } // todo\r\n\t\t\t}\r\n }) \r\n\t\t.state('base.modules.speedquiz', {\r\n url: \"/modules/speedquiz\",\r\n params: { urlRewrite: null, pluginInstanceId: null },\r\n\t\t\ttemplateUrl: bizCoreProvider.getView('base.modules.speedquiz', 'FrontEnd/Modules/SpeedQuiz/Views/list.html'),\r\n\t\t\tcontroller: \"modules.speedquiz.list\",\r\n\t\t\tcontrollerAs: \"vm\",\r\n\t\t\tdata: {\r\n\t\t\t\trule: function () { return bizUserProvider.HasModuleAccess('SPEEDQUIZ', bizUserProvider.AccessTypeRight.Read); }\r\n\t\t\t}\t\r\n })\r\n .state('base.modules.speedquizone', {\r\n url: \"/modules/speedquiz/:urlRewrite/:pluginInstanceId\",\r\n params: { urlRewrite: null, pluginInstanceId: null },\r\n templateUrl: bizCoreProvider.getView('base.modules.speedquiz', 'FrontEnd/Modules/SpeedQuiz/Views/list.html'),\r\n controller: \"modules.speedquiz.list\",\r\n controllerAs: \"vm\",\r\n data: {\r\n rule: function () { return bizUserProvider.HasModuleAccess('SPEEDQUIZ', bizUserProvider.AccessTypeRight.Read); }\r\n }\r\n })\r\n\t\t.state('base.modules.speedquizplay', {\r\n\t\t\turl: \"/modules/speedquiz/play/:id/:pluginInstanceId\",\r\n\t\t\ttemplateUrl: bizCoreProvider.getView('base.modules.speedquiz.play', 'FrontEnd/Modules/SpeedQuiz/Views/play-react.html'),\r\n\t\t\tcontroller: \"modules.speedquiz.play\",\r\n\t\t\tcontrollerAs: \"vm\",\r\n\t\t\tdata: {\r\n\t\t\t\trule: function () { return bizUserProvider.HasModuleAccess('SPEEDQUIZ', bizUserProvider.AccessTypeRight.Read); }\r\n\t\t\t}\t\r\n\t\t})\r\n\t\t.state('base.modules.speedquizhighscore', {\r\n\t\t\turl: \"/modules/speedquiz/highscore/:pluginInstanceId/:name\",\r\n\t\t\ttemplateUrl: bizCoreProvider.getView('base.modules.speedquiz.highscore', 'FrontEnd/Modules/SpeedQuiz/Views/highscore.html'),\r\n\t\t\tcontroller: \"modules.speedquiz.highscore\",\r\n\t\t\tcontrollerAs: \"vm\",\r\n\t\t\tdata: {\r\n\t\t\t\trule: function () { return bizUserProvider.HasModuleAccess('SPEEDQUIZ', bizUserProvider.AccessTypeRight.Read); }\r\n\t\t\t}\t\r\n }).state('base.modules.campaign', {\r\n\t\t\turl: \"modules/campaign/:urlRewrite?referer\",\r\n\t\t\tcontroller: \"modules.campaign\",\r\n\t\t\tcontrollerAs: \"vm\"\r\n\t\t})\r\n\t\t.state('base.modules.campaign.page', {\r\n\t\t\turl: \"/:pageUrlRewrite\",\r\n\t\t\ttemplateUrl: bizCoreProvider.getView('base.modules.campaign', 'FrontEnd/Modules/Campaign/Views/default.html'),\r\n\t\t\tcontroller: \"modules.campaign.page\",\r\n\t\t\tcontrollerAs: \"vm\"\t\t\r\n })\r\n .state('base.modules.certifications', {\r\n url: \"/modules/certifications\",\r\n templateUrl: bizCoreProvider.getView('base.modules.certifications', 'FrontEnd/Modules/Certifications/Views/default.html'),\r\n controller: 'modules.certifications',\r\n controllerAs: \"vm\",\r\n data: {\r\n rule: function () { return bizUserProvider.HasModuleAccess('CERTIFICATIONS', bizUserProvider.AccessTypeRight.Read); }\r\n }\r\n })\r\n .state('base.modules.engageobjectredirect', {\r\n url: \"/modules/eor/:type/:id\",\r\n controller: EngageObjectRedirectController,\r\n controllerAs: \"vm\" \r\n });\r\n\r\n EngageObjectRedirectController.$inject = [\"$stateParams\", \"core.engage.service\"];\r\n function EngageObjectRedirectController($stateParams, coreEngageService) { \r\n vm = this;\r\n vm.EngageObjectType = $stateParams.type;\r\n vm.EngageObjectId = $stateParams.id;\r\n coreEngageService.RedirectToEngageObject(vm.EngageObjectType, vm.EngageObjectId);\r\n }\t\t\r\n }\r\n\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage', [\r\n 'ng',\r\n 'ngAnimate',\r\n 'ngCookies',\r\n 'ngSanitize',\r\n 'ui.router',\r\n 'bizPart',\r\n 'ngMaterial',\r\n 'ui.bootstrap',\r\n 'ngMessages',\r\n 'sticky',\r\n 'multi-transclude',\r\n 'ui.knob',\r\n 'pascalprecht.translate',\r\n 'SignalR',\r\n 'BizContainer',\r\n 'BizContainerHelper',\r\n '720kb.socialshare',\r\n 'ngclipboard',\r\n 'matchMedia',\r\n 'oc.lazyLoad'\r\n ]);\r\n\r\n angular.module('bizPartEngage').constant('genericPosition', {\r\n TOP: 1,\r\n LEFT: 2,\r\n RIGHT: 3,\r\n BOTTOM: 4,\r\n CENTER: 5,\r\n });\r\n\r\n angular.module('bizPartEngage').provider('bizLevel', levelProvider);\r\n angular.module('bizPartEngage').provider('bizPortal', portalProvider);\r\n\r\n angular.module('bizPartEngage').provider('bizCore', coreProvider);\r\n angular.module('bizPartEngage').provider('bizUser', userProvider);\r\n\r\n angular.module('bizPartEngage').config(configFunction);\r\n angular.module('bizPartEngage').run(runFunction);\r\n angular\r\n .module('bizPartEngage')\r\n .factory('loadingInterceptor', loadingInterceptorFunction);\r\n\r\n configFunction.$inject = [\r\n '$stateProvider',\r\n '$urlRouterProvider',\r\n '$httpProvider',\r\n 'bizCoreProvider',\r\n '$translateProvider',\r\n '$translatePartialLoaderProvider',\r\n '$locationProvider',\r\n 'bizPortalProvider',\r\n 'bizUserProvider',\r\n '$ocLazyLoadProvider',\r\n ];\r\n runFunction.$inject = [\r\n '$rootScope',\r\n '$http',\r\n '$q',\r\n 'base.service',\r\n 'bizUser',\r\n '$state',\r\n 'core.users.service',\r\n 'bizLevel',\r\n '$translate',\r\n 'bizNotificationService',\r\n 'SignalRFactory',\r\n '$transitions',\r\n 'bizContainerSettings',\r\n '$location',\r\n '$window',\r\n '$translatePartialLoader',\r\n 'core.session.service',\r\n 'bizPortal',\r\n 'genericPosition',\r\n 'bizLoaderService',\r\n '$locale',\r\n 'bizPushNotificationService',\r\n 'bizJourneyService'\r\n ];\r\n loadingInterceptorFunction.$inject = ['$q'];\r\n userProvider.$inject = ['bizPortalProvider', '$translateProvider'];\r\n\r\n function coreProvider() {\r\n var lastUpdate = moment();\r\n\r\n function GetView(stateName, fallback) {\r\n //Adding to make sure we get a new version of the HTML every hour...\r\n if (moment.duration(moment().diff(lastUpdate)).asHours() > 1) {\r\n lastUpdate = moment();\r\n }\r\n\r\n var override = viewOverrides.GetItemByValue('State', stateName);\r\n var themeOverride = portalTheme.Views.GetItemByValue(\r\n 'State',\r\n stateName\r\n );\r\n\r\n if (override) {\r\n return siteRootPath + override.ViewUrl;\r\n } else if (themeOverride) {\r\n return siteRootPath + themeOverride.ViewUrl;\r\n } else {\r\n return siteRootPath + fallback;\r\n }\r\n }\r\n\r\n function GetController(stateName, fallback) {\r\n var override = viewOverrides.GetItemByValue('State', stateName);\r\n\r\n if (override && override.Controller) {\r\n return override.Controller;\r\n } else {\r\n return fallback;\r\n }\r\n }\r\n\r\n function SetViewOverrides(overrides) {\r\n viewOverrides = overrides;\r\n }\r\n\r\n return {\r\n getView: GetView,\r\n getController: GetController,\r\n setViewOverrides: SetViewOverrides,\r\n $get: function () {\r\n return {\r\n getViewOverrides: function () {\r\n return viewOverrides;\r\n },\r\n getView: GetView,\r\n getController: GetController,\r\n setViewOverrides: SetViewOverrides,\r\n };\r\n },\r\n };\r\n }\r\n\r\n function userProvider(portalProvider, $translate) {\r\n if (userData.Token == null) userData.Token = getBizPartAuthToken();\r\n\r\n var LoggedInUser = userData;\r\n var AccessTypeRight = {\r\n Read: 10,\r\n Write: 20,\r\n WriteExtended: 30,\r\n Admin: 40,\r\n };\r\n\r\n function SetLoggedInUser(user) {\r\n LoggedInUser = user;\r\n }\r\n\r\n function HasWriteOrHigherAccess(accessTypeModuleKey) {\r\n var hasAccess = IsAdministrator();\r\n\r\n if (!hasAccess) {\r\n if (accessTypeModuleKey) {\r\n hasAccess = HasModuleAccess(\r\n accessTypeModuleKey,\r\n AccessTypeRight.Write\r\n );\r\n } else {\r\n try {\r\n for (var i = 0; i < LoggedInUser.Roles.length; i++) {\r\n if (hasAccess) {\r\n break;\r\n }\r\n if (LoggedInUser.Roles[i].AccessTypeAccesses) {\r\n for (\r\n var a = 0;\r\n a <\r\n LoggedInUser.Roles[i].AccessTypeAccesses\r\n .length;\r\n a++\r\n ) {\r\n if (\r\n LoggedInUser.Roles[i]\r\n .AccessTypeAccesses[a]\r\n .AccessTypeRight >=\r\n AccessTypeRight.Write &&\r\n LoggedInUser.Roles[i]\r\n .AccessTypeAccesses[a]\r\n .AccessTypeModule.AccessTypeKey !==\r\n 'ENGAGEMENT_GOAL'\r\n ) {\r\n hasAccess = true;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n hasAccess = false;\r\n }\r\n }\r\n }\r\n\r\n return hasAccess;\r\n }\r\n\r\n function HasModuleAccess(accessTypeModuleKey, accessTypeAccess) {\r\n if (\r\n (portalProvider.IsPortalPublic() && accessTypeAccess == 10) ||\r\n IsAdministrator()\r\n )\r\n return true;\r\n if (LoggedInUser.Roles) {\r\n try {\r\n //Checking user roles...\r\n for (var i = 0; i < LoggedInUser.Roles.length; i++) {\r\n if (LoggedInUser.Roles[i].AccessTypeAccesses) {\r\n for (\r\n var a = 0;\r\n a <\r\n LoggedInUser.Roles[i].AccessTypeAccesses.length;\r\n a++\r\n ) {\r\n var correctModule =\r\n LoggedInUser.Roles[i].AccessTypeAccesses[a]\r\n .AccessTypeModule.AccessTypeKey ==\r\n accessTypeModuleKey;\r\n if (\r\n correctModule &&\r\n ~~LoggedInUser.Roles[i].AccessTypeAccesses[\r\n a\r\n ].AccessTypeRight >= ~~accessTypeAccess\r\n )\r\n return true;\r\n }\r\n }\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n return false;\r\n }\r\n }\r\n\r\n if (LoggedInUser.AllUnits) {\r\n try {\r\n //Checking user unit roles...\r\n for (var i = 0; i < LoggedInUser.AllUnits.length; i++) {\r\n for (\r\n var r = 0;\r\n r < LoggedInUser.AllUnits[i].Roles.length;\r\n r++\r\n ) {\r\n if (\r\n LoggedInUser.AllUnits[i].Roles[r]\r\n .AccessTypeAccesses\r\n ) {\r\n for (\r\n var a = 0;\r\n a <\r\n LoggedInUser.AllUnits[i].Roles[r]\r\n .AccessTypeAccesses.length;\r\n a++\r\n ) {\r\n var correctModule =\r\n LoggedInUser.AllUnits[i].Roles[r]\r\n .AccessTypeAccesses[a]\r\n .AccessTypeModule.AccessTypeKey ==\r\n accessTypeModuleKey;\r\n if (\r\n correctModule &&\r\n ~~LoggedInUser.AllUnits[i].Roles[r]\r\n .AccessTypeAccesses[a]\r\n .AccessTypeRight >=\r\n ~~accessTypeAccess\r\n )\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n return false;\r\n }\r\n }\r\n //console.warn('No access to: ', { accessTypeModuleKey: accessTypeModuleKey, accessTypeAccess: accessTypeAccess });\r\n return false;\r\n }\r\n\r\n function IsAdministrator() {\r\n if (LoggedInUser.Roles) {\r\n for (var i = 0; i < LoggedInUser.Roles.length; i++) {\r\n if (\r\n LoggedInUser.Roles[i].SystemName == 'PortalAdmin' ||\r\n LoggedInUser.Roles[i].SystemName == 'HostAdmin' ||\r\n LoggedInUser.Roles[i].SystemName == 'ADMINISTRATOR'\r\n )\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n function IsLoggedIn() {\r\n return ~~LoggedInUser.Id > 0;\r\n }\r\n\r\n return {\r\n AccessTypeRight: AccessTypeRight,\r\n HasModuleAccess: HasModuleAccess,\r\n IsAdministrator: IsAdministrator,\r\n HasWriteOrHigherAccess: HasWriteOrHigherAccess,\r\n IsLoggedIn: IsLoggedIn,\r\n SetLoggedInUser: SetLoggedInUser,\r\n $get: function () {\r\n return {\r\n setLoggedInUser: function (user) {\r\n moment.locale(cultureCode.substring(0, 2));\r\n\r\n console.log('CULTURE: ' + cultureCode);\r\n },\r\n getLoggedInUser: function () {\r\n return LoggedInUser;\r\n },\r\n AccessTypeRight: AccessTypeRight,\r\n HasModuleAccess: HasModuleAccess,\r\n IsAdministrator: IsAdministrator,\r\n HasWriteOrHigherAccess: HasWriteOrHigherAccess,\r\n IsLoggedIn: IsLoggedIn,\r\n SetLoggedInUser: SetLoggedInUser,\r\n };\r\n },\r\n };\r\n }\r\n\r\n function levelProvider() {\r\n var translate;\r\n function getExperienceTypeLabel(key) {\r\n switch (~~key) {\r\n case 1:\r\n return translate('CORE.LOGIN');\r\n case 2:\r\n return translate('CORE.LOGINXDAYSWEEK');\r\n case 3:\r\n return translate('CORE.LOGINXDAYSMONTH');\r\n case 16:\r\n return translate('CORE.UNIQUEPAGEVISITS');\r\n case 18:\r\n return translate('CORE.EXPERIENCEGAINPERWEEKINUNIT');\r\n case 22:\r\n return translate('CORE.HTML5EDUCATION');\r\n }\r\n }\r\n\r\n function setTranslateProvider(t) {\r\n translate = t;\r\n }\r\n\r\n return {\r\n getExperienceTypeLabel: getExperienceTypeLabel,\r\n setTranslateProvider: setTranslateProvider,\r\n $get: function () {\r\n return {\r\n getExperienceTypeLabel: getExperienceTypeLabel,\r\n setTranslateProvider: setTranslateProvider,\r\n };\r\n },\r\n };\r\n }\r\n\r\n function portalProvider() {\r\n var PublicPortal = false;\r\n\r\n function IsPortalPublic() {\r\n return PublicPortal;\r\n }\r\n\r\n function SetPublicPortal(val) {\r\n PublicPortal = val;\r\n }\r\n\r\n return {\r\n IsPortalPublic: IsPortalPublic,\r\n SetPublicPortal: SetPublicPortal,\r\n $get: function () {\r\n return {\r\n IsPortalPublic: IsPortalPublic,\r\n SetPublicPortal: SetPublicPortal,\r\n };\r\n },\r\n };\r\n }\r\n\r\n function configFunction(\r\n $stateProvider,\r\n $urlRouterProvider,\r\n $httpProvider,\r\n bizCoreProvider,\r\n $translateProvider,\r\n $translatePartialLoaderProvider,\r\n $locationProvider,\r\n portalProvider,\r\n userProvider,\r\n $ocLazyLoadProvider\r\n ) {\r\n $urlRouterProvider.otherwise('/');\r\n $locationProvider.html5Mode(true);\r\n //$locationProvider.hashPrefix('!');\r\n\r\n $ocLazyLoadProvider.config({\r\n modules: GetLazyLoadModules(),\r\n });\r\n\r\n $stateProvider\r\n .state('base', {\r\n templateUrl: bizCoreProvider.getView(\r\n 'base',\r\n 'FrontEnd/views/base.html'\r\n ),\r\n controller: bizCoreProvider.getController('base', 'base'),\r\n controllerAs: 'vm',\r\n })\r\n .state('noaccess', {\r\n url: '/noaccess',\r\n templateUrl: bizCoreProvider.getView(\r\n 'noaccess',\r\n 'FrontEnd/views/noaccess.html'\r\n ),\r\n controller: bizCoreProvider.getController(\r\n 'noaccess',\r\n 'base.noaccess'\r\n ),\r\n controllerAs: 'vm',\r\n data: {\r\n isPublic: true,\r\n },\r\n })\r\n .state('login', {\r\n url: '/login',\r\n templateUrl: bizCoreProvider.getView(\r\n 'base.core.login',\r\n 'FrontEnd/Core/Themes/Login5050WithBgImages/Views/login.html'\r\n ),\r\n controller: 'core.login',\r\n controllerAs: 'vm',\r\n data: {\r\n isPublic: true,\r\n onlyLoggedOut: true,\r\n },\r\n })\r\n .state('logout', {\r\n url: '/logout',\r\n templateUrl: bizCoreProvider.getView(\r\n 'base.core.logout',\r\n 'FrontEnd/Core/Views/logout.html'\r\n ),\r\n controller: 'core.logout',\r\n controllerAs: 'vm' \r\n })\r\n .state('activateaccount', {\r\n url: '/activateaccount/:guid',\r\n templateUrl: bizCoreProvider.getView(\r\n 'base.core.login',\r\n 'FrontEnd/Core/Themes/Login5050WithBgImages/Views/login.html'\r\n ),\r\n controller: 'core.login',\r\n controllerAs: 'vm',\r\n data: {\r\n isPublic: true,\r\n onlyLoggedOut: true,\r\n },\r\n })\r\n .state('forgotpassword', {\r\n url: '/forgotpassword',\r\n templateUrl: bizCoreProvider.getView(\r\n 'core.forgotpassword',\r\n 'FrontEnd/Core/Themes/Login5050WithBgImages/Views/forgotpassword.html'\r\n ),\r\n controller: 'core.forgotpassword',\r\n controllerAs: 'vm',\r\n data: {\r\n isPublic: true,\r\n },\r\n })\r\n .state('changepassword', {\r\n url: '/forgotpassword/:guid',\r\n templateUrl: bizCoreProvider.getView(\r\n 'core.forgotpassword',\r\n 'FrontEnd/Core/Themes/Login5050WithBgImages/Views/forgotpassword.html'\r\n ),\r\n controller: 'core.changepassword',\r\n controllerAs: 'vm',\r\n data: {\r\n isPublic: true,\r\n },\r\n })\r\n .state('base.home', {\r\n url: '/',\r\n templateUrl: bizCoreProvider.getView(\r\n 'base.home',\r\n 'FrontEnd/views/home.html'\r\n ),\r\n controller: bizCoreProvider.getController(\r\n 'base.home',\r\n 'base.home'\r\n ),\r\n controllerAs: 'vm',\r\n })\r\n .state('cleanbase', {\r\n templateUrl: bizCoreProvider.getView(\r\n 'cleanbase',\r\n 'FrontEnd/views/cleanbase.html'\r\n ),\r\n controller: bizCoreProvider.getController('base', 'base'),\r\n controllerAs: 'vm',\r\n });\r\n\r\n $httpProvider.interceptors.push('loadingInterceptor');\r\n $httpProvider.useApplyAsync(true);\r\n\r\n $translatePartialLoaderProvider.addPart('_combined');\r\n $translateProvider.useLoader('$translatePartialLoader', {\r\n urlTemplate: siteRootPath + 'FrontEnd/i18n/{part}/{lang}.json?v=' + bizPartVersion\r\n });\r\n\r\n var culture = cultureCode.substring(0, 2);\r\n\r\n $translateProvider.preferredLanguage(culture);\r\n $translateProvider.fallbackLanguage('en');\r\n\r\n $translateProvider.forceAsyncReload(true);\r\n $translateProvider.useLoaderCache(true);\r\n moment.locale(culture);\r\n $translateProvider.useSanitizeValueStrategy('sce');\r\n\r\n portalProvider.SetPublicPortal(IsPortalSettingTrue('IsPortalPublic'));\r\n\r\n $translateProvider.preferredLanguage(culture);\r\n $translateProvider.forceAsyncReload(true);\r\n $translateProvider.useLoaderCache(true);\r\n $translateProvider.fallbackLanguage('sv');\r\n $translateProvider.useSanitizeValueStrategy('sce');\r\n }\r\n\r\n function runFunction(\r\n $rootScope,\r\n $http,\r\n $q,\r\n baseService,\r\n bizUser,\r\n $state,\r\n userService,\r\n levelProvider,\r\n $translate,\r\n bizNotificationService,\r\n SignalRFactory,\r\n $transitions,\r\n bizContainerSettings,\r\n $location,\r\n $window,\r\n $translatePartialLoader,\r\n sessionService,\r\n portalProvider,\r\n genericPosition,\r\n bizLoaderService,\r\n $locale,\r\n bizPushNotificationService,\r\n bizJourneyService\r\n ) {\r\n var initializationDefer = $q.defer();\r\n $rootScope.CultureDefer = $q.defer();\r\n $rootScope.Initialized = initializationDefer.promise;\r\n $rootScope.CultureInitialized = $rootScope.CultureDefer.promise;\r\n\r\n $rootScope.$on('$translatePartialLoaderStructureChanged', function () {\r\n $translate.refresh();\r\n });\r\n\r\n $rootScope.RequestFullPageLoader =\r\n bizLoaderService.RequestFullPageLoader;\r\n\r\n levelProvider.setTranslateProvider($translate);\r\n\r\n $rootScope.AuthToken = getBizPartAuthToken();\r\n if (typeof isTestMode === 'undefined' || !isTestMode) {\r\n $http.defaults.headers.common['Auth-Token'] = $rootScope.AuthToken;\r\n }\r\n\r\n $http.defaults.headers.common['PortalId'] = portalId;\r\n $http.defaults.headers.common['Cache-Control'] =\r\n 'max-age=1800, private';\r\n $http.defaults.headers.common['Pragma'] = undefined;\r\n $rootScope.logo = portalSettings['logo'];\r\n $rootScope.poweredby = portalSettings['poweredby'];\r\n $rootScope.QueryParams = $location.search();\r\n $rootScope.menuSettings = menuSettings;\r\n $rootScope.genericpositions = genericPosition;\r\n $rootScope.maxWidth = portalSettings['maxWidth'];\r\n\r\n $rootScope.GetFullscreenCalc = GetFullscreenCalc;\r\n $rootScope.getFullscreenWidth = getFullscreenWidth;\r\n $rootScope.scrollWidth = GetScrollWidth;\r\n\r\n $rootScope.DisableMainMenuSticky = !$rootScope.menuSettings.IsSticky;\r\n $rootScope.Theme = portalTheme;\r\n $rootScope.UnitSettings = GetUnitSettings();\r\n $rootScope.IsInIframe = window.location !== window.parent.location;\r\n $rootScope.HasWebpSupport = false;\r\n $rootScope.PasswordRegex = new RegExp(portalSettings['PasswordRegEx']);\r\n $rootScope.PasswordMinLen = 8;\r\n\r\n function GetUnitSettings() {\r\n // console.log('GetUnitSettings');\r\n var unitcookie = getCookie('UnitSettings');\r\n \r\n if(unitcookie === null || unitcookie === '')\r\n return null;\r\n \r\n return JSON.parse(unitcookie);\r\n }\r\n\r\n $rootScope.RandomBetween = function (min, max) {\r\n return Math.floor(Math.random() * (max - min + 1) + min);\r\n };\r\n\r\n $rootScope.GetPreloadedPortalSetting = function (key) {\r\n return portalSettings[key];\r\n }\r\n\r\n $rootScope.MiniSettings = {\r\n Header: {\r\n KeepBgClass: false,\r\n PreventHideOnScroll: false\r\n },\r\n Startpage: {\r\n DisableLoadData: false,\r\n },\r\n Login: {\r\n LoginAdminUrl: siteRootPath + \"admin\",\r\n ShowLogo: false,\r\n ShowPortalName: true,\r\n AlreadyVerifiedRedirectUrl: \"login\"\r\n },\r\n Profile: {\r\n ShowMenu: true,\r\n ShowProfileImage: true,\r\n ShowUserType: true,\r\n ShowMobile: false,\r\n ShowMiddleName: false,\r\n DisableFirstName: false,\r\n DisableLastName: false,\r\n DisableMiddleName: false,\r\n DisableEmail: false,\r\n ShowUnregister: true,\r\n ShowWelcomeLink: true,\r\n CustomHeaderPhrase: undefined,\r\n AdditionalProfileSubMenuItems: []\r\n },\r\n LikeActions: {\r\n HideCurrentRating: false,\r\n ForRolesOnly: []\r\n }\r\n };\r\n\r\n check_webp_feature('lossy', function (feature, res) {\r\n //console.log(feature, res);\r\n if (res === false) {\r\n $rootScope.HasWebpSupport = false;\r\n hasWebpSupport = false;\r\n }\r\n });\r\n\r\n function getFullscreenWidth() {\r\n if ($(document).height() > $(window).height()) {\r\n return 'calc(100vw - ' + GetScrollWidth() + 'px)';\r\n } else {\r\n return '100vw';\r\n }\r\n }\r\n\r\n function GetFullscreenCalc() {\r\n if (portalSettings.maxWidth.length > 0) {\r\n return 'calc(-100vw / 2 + ' + portalSettings.maxWidth + ' / 2)';\r\n } else {\r\n return 'calc(-100vw / 2 + 100% / 2)';\r\n }\r\n }\r\n\r\n function GetScrollWidth() {\r\n // Got 11px when the container-page was using the setting: Content align: center, changed to left...\r\n // normaly 17px for windows, 0px on OS X depending on settings.\r\n var scrollWidth = window.innerWidth - $(document).width();\r\n\r\n //console.log('scrollWidth', scrollWidth);\r\n\r\n // This is some scaling issue?\r\n if (scrollWidth == 16) {\r\n scrollWidth = 17;\r\n }\r\n\r\n if (scrollWidth > 17 || scrollWidth < 0) scrollWidth = 17;\r\n\r\n return scrollWidth;\r\n }\r\n\r\n $rootScope.$on('$locationChangeSuccess', function (newValue) {\r\n $rootScope.QueryParams = $location.search();\r\n $rootScope.ExpandMainMenu = false;\r\n\r\n if (!$rootScope.PreventScrollTopOnce) $window.scrollTo(0, 0);\r\n\r\n $rootScope.PreventScrollTopOnce = false;\r\n });\r\n\r\n $q.all([baseService.GetLoggedInUser()]).then(LoadDataDone);\r\n\r\n function LoadDataDone(response) {\r\n bizUser.setLoggedInUser(response[0].data);\r\n $rootScope.LoggedInUser = bizUser.getLoggedInUser();\r\n $rootScope.LoggedInUser.CurrentCultureId = currentCultureId;\r\n $rootScope.LoggedInUser.CurrentCulture = cultureCode;\r\n $rootScope.IsLoggedIn = bizUser.IsLoggedIn();\r\n $rootScope.Logout = userService.Logout;\r\n $rootScope.HasModuleAccess = bizUser.HasModuleAccess;\r\n $rootScope.AccessTypeRight = bizUser.AccessTypeRight;\r\n $rootScope.HasWriteOrHigherAccess = bizUser.HasWriteOrHigherAccess;\r\n $rootScope.IsAdministrator = bizUser.IsAdministrator;\r\n bizContainerSettings.CurrentUserId = $rootScope.LoggedInUser.Id;\r\n bizContainerSettings.CurrentUserCurrency =\r\n $rootScope.LoggedInUser.DefaultVirtualCurrencyValue;\r\n $rootScope.ShowXP =\r\n IsPortalSettingTrue('IsLevelSystemEnabled') && bizUser.HasModuleAccess(\r\n 'LEVEL_SYSTEM',\r\n bizUser.AccessTypeRight.Read\r\n );\r\n $rootScope.ShowCurrency = true; //for use later, when currency is actually implemented\r\n bizContainerSettings.CurrentUserId = $rootScope.LoggedInUser.Id;\r\n\r\n if (cultureCode === 'sv-SE') {\r\n $locale.NUMBER_FORMATS.GROUP_SEP = ' ';\r\n }\r\n\r\n initializationDefer.resolve(true);\r\n\r\n if (bizUser.IsLoggedIn()) {\r\n sessionService.Initialize(sessionTimeoutInSeconds);\r\n sessionService.Start();\r\n if (IsPortalSettingTrue('IsPushNotificationsEnabled')) {\r\n bizPushNotificationService.Initialize();\r\n } \r\n }\r\n\r\n if (portalProvider.IsPortalPublic() || bizUser.IsLoggedIn()) {\r\n baseService\r\n .GetMenuItemsForLoggedInUser()\r\n .then(function (response) {\r\n $rootScope.MenuItems = response.data;\r\n });\r\n }\r\n\r\n $rootScope.SendHubMessageToServer(\r\n 'USER_NOTIFICATION',\r\n 'SEND_UNREAD_NOTIFICATIONS'\r\n );\r\n\r\n createFallbackFavicon($rootScope.Theme.PrimaryColor, $rootScope.Theme.PrimaryTextColor);\r\n\r\n if (navigator.connection) {\r\n navigator.connection.addEventListener('change', updateConnectionStatus);\r\n updateConnectionStatus();\r\n }\r\n }\r\n\r\n\r\n // JOURNEY\r\n var journeysDefer = $q.defer();\r\n $rootScope.JourneysInitialized = journeysDefer.promise;\r\n if (IsPortalSettingTrue('IsJourneyEnabled') && bizUser.IsLoggedIn()) {\r\n bizJourneyService.GetEngageJourneys().then((response) => {\r\n journeysDefer.resolve('');\r\n $rootScope.Journeys = response.data;\r\n });\r\n } else {\r\n journeysDefer.resolve('');\r\n $rootScope.Journeys = [];\r\n }\r\n $rootScope.$on('engageobject.finished', HandleEngageObjectFinished);\r\n\r\n $rootScope.GetNextJourneyItem = function(firstIfAllComplete) {\r\n var defer = $q.defer();\r\n $rootScope.JourneysInitialized.then(() => {\r\n if ($rootScope.Journeys) {\r\n var currentJourneyIsDone = false;\r\n var firstObject;\r\n for (var i = 0; i < $rootScope.Journeys.length; i++) {\r\n if ($rootScope.Journeys[i].IsCurrentJourney || currentJourneyIsDone) {\r\n var currentJourney = $rootScope.Journeys[i];\r\n for (var j = 0; j < currentJourney.EngageObjects.length; j++) {\r\n if (!firstObject) firstObject = currentJourney.EngageObjects[i];\r\n\r\n if (currentJourney.EngageObjects[j].Status !== 3) {\r\n defer.resolve(currentJourney.EngageObjects[j]);\r\n return;\r\n }\r\n }\r\n currentJourneyIsDone = true;\r\n }\r\n }\r\n if (firstIfAllComplete && firstObject) {\r\n defer.resolve(firstObject);\r\n return;\r\n }\r\n } \r\n defer.resolve(null); \r\n });\r\n return defer.promise;\r\n };\r\n\r\n $rootScope.IsJourneyStarted = function () {\r\n var defer = $q.defer();\r\n $rootScope.JourneysInitialized.then(() => {\r\n if ($rootScope.Journeys) {\r\n for (var i = 0; i < $rootScope.Journeys.length; i++) {\r\n if ($rootScope.Journeys[i].IsCurrentJourney) {\r\n var currentJourney = $rootScope.Journeys[i];\r\n for (var j = 0; j < currentJourney.EngageObjects.length; j++) {\r\n if (currentJourney.EngageObjects[j].Status === 3) {\r\n defer.resolve(true);\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n defer.resolve(false);\r\n });\r\n return defer.promise;\r\n }\r\n\r\n $rootScope.SetCurrentJourney = function (id, gotoNextObject, gotoFirstIfDone) {\r\n if ($rootScope.Journeys && $rootScope.Journeys.length) {\r\n bizJourneyService.SetCurrentJourney(id).then(() => {\r\n var currentJourney;\r\n for (var i = 0; i < $rootScope.Journeys.length; i++) {\r\n $rootScope.Journeys[i].IsCurrentJourney = $rootScope.Journeys[i].Id === id;\r\n $rootScope.$broadcast(\"CURRENT_JOURNEY_CHANGED\", id);\r\n\r\n if ($rootScope.Journeys[i].IsCurrentJourney) {\r\n currentJourney = $rootScope.Journeys[i];\r\n }\r\n }\r\n\r\n if (gotoNextObject && currentJourney) {\r\n var nextObject;\r\n for (var i = 0; i < currentJourney.EngageObjects.length; i++) {\r\n if (!nextObject && currentJourney.EngageObjects[i].Status !== 3) {\r\n nextObject = currentJourney.EngageObjects[i];\r\n }\r\n }\r\n\r\n if (gotoFirstIfDone && !nextObject && currentJourney.EngageObjects.length > 0) {\r\n nextObject = currentJourney.EngageObjects[0];\r\n }\r\n\r\n if (nextObject) {\r\n bizJourneyService.GoToEngageItem(nextObject);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n $rootScope.GetAllJourneysTotalProgress = function () {\r\n var defer = $q.defer();\r\n $rootScope.JourneysInitialized.then(() => {\r\n var objectCount = 0;\r\n var objectDoneCount = 0;\r\n if ($rootScope.Journeys) {\r\n for (var i = 0; i < $rootScope.Journeys.length; i++) { \r\n for (var j = 0; j < $rootScope.Journeys[i].EngageObjects.length; j++) {\r\n objectCount++;\r\n if ($rootScope.Journeys[i].EngageObjects[j].Status === 3) {\r\n objectDoneCount++;\r\n }\r\n }\r\n }\r\n }\r\n var p = 0;\r\n if (objectCount > 0) {\r\n p = (objectDoneCount * 100) / objectCount;\r\n }\r\n defer.resolve(p);\r\n });\r\n return defer.promise;\r\n }\r\n\r\n function HandleEngageObjectFinished(event, args) {\r\n if (args.status === 3 && $rootScope.Journeys) {\r\n var updatedObjectType = args.objectType;\r\n var updatedObjectId = args.objectId;\r\n var updatedToStatus = args.status;\r\n var anyUpdated = false;\r\n for (var i = 0; i < $rootScope.Journeys.length; i++) {\r\n var updateJourneyProgress = false;\r\n var journey = $rootScope.Journeys[i];\r\n if (journey.EngageObjects.length) {\r\n var finishedCount = 0;\r\n for (var j = 0; j < journey.EngageObjects.length; j++) {\r\n var eo = journey.EngageObjects[j];\r\n if (eo.Id === updatedObjectId\r\n && eo.EngageObjectType === updatedObjectType\r\n && eo.Status !== updatedToStatus) {\r\n eo.Status = updatedToStatus;\r\n updateJourneyProgress = true;\r\n anyUpdated = true;\r\n }\r\n if (eo.Status === 3) {\r\n finishedCount++;\r\n }\r\n }\r\n if (updateJourneyProgress) {\r\n journey.TotalProgress = ((finishedCount * 100) / journey.EngageObjects.length);\r\n }\r\n }\r\n }\r\n\r\n if (anyUpdated) {\r\n $rootScope.$broadcast('JOURNEY_OBJECT_UPDATED');\r\n }\r\n }\r\n }\r\n\r\n\r\n //CONTAINER CONFIG\r\n bizContainerSettings.PortalCustomerName = '';\r\n bizContainerSettings.PortalVersion = 1;\r\n bizContainerSettings.PortalDefaultCulture = 1;\r\n bizContainerSettings.UseApiController = true;\r\n bizContainerSettings.UseEngageCore = true;\r\n\r\n if (portalSettings['GoogleAnalyticsId'] && getLocalStorage('HasAcceptedCookies') === 'true') {\r\n\r\n $rootScope.GoogleAnalyticCustomTrackers = [];\r\n if (portalSettings['GoogleAnalyticsId'].indexOf(';') > 0) {\r\n var items = portalSettings['GoogleAnalyticsId'].split(';');\r\n $window.ga('create', items[0], 'auto');\r\n\r\n for (var i = 1; i < items.length; i++) {\r\n $rootScope.GoogleAnalyticCustomTrackers.push({\r\n Id: items[i],\r\n Name: 'customTracker_' + i,\r\n });\r\n }\r\n\r\n for (\r\n var i = 0;\r\n i < $rootScope.GoogleAnalyticCustomTrackers.length;\r\n i++\r\n ) {\r\n var id = $rootScope.GoogleAnalyticCustomTrackers[i].Id;\r\n var name = $rootScope.GoogleAnalyticCustomTrackers[i].Name;\r\n $window.ga('create', id, 'auto', name);\r\n }\r\n } else {\r\n $window.ga('create', portalSettings['GoogleAnalyticsId'], 'auto');\r\n }\r\n } \r\n\r\n $transitions.onSuccess({}, function ($transition) {\r\n $rootScope.PreviousState = $transition.$from();\r\n $rootScope.CurrentState = $transition.$to();\r\n $rootScope.CurrentStateClass = $rootScope.CurrentState.name.replace(\r\n /\\./g,\r\n '-'\r\n );\r\n\r\n if (getLocalStorage('HasAcceptedCookies') === 'true') {\r\n if (portalSettings['GoogleAnalyticsId']) {\r\n $window.ga('send', 'pageview', $location.path());\r\n }\r\n\r\n if ($rootScope.GoogleAnalyticCustomTrackers) {\r\n for (\r\n var i = 0;\r\n i < $rootScope.GoogleAnalyticCustomTrackers.length;\r\n i++\r\n ) {\r\n var name = $rootScope.GoogleAnalyticCustomTrackers[i].Name;\r\n $window.ga(name + '.send', 'pageview', $location.path());\r\n }\r\n }\r\n\r\n if (portalSettings['GoogleTagManagerId']) {\r\n\r\n if ($rootScope.LoggedInUser && $rootScope.LoggedInUser.Id > 0 && !$rootScope.GATHasSetUserId) {\r\n $window.dataLayer.push({\r\n userId: $rootScope.LoggedInUser.Id\r\n });\r\n $rootScope.GATHasSetUserId = true;\r\n }\r\n\r\n $window.dataLayer.push({\r\n event: 'pageView',\r\n attributes: {\r\n route: $location.path(),\r\n },\r\n });\r\n }\r\n }\r\n\r\n var path = window.location.pathname;\r\n if (bizUser.IsLoggedIn()) {\r\n userService.AddUserActivity(\r\n path + '#/admin' + $transition.$to().url,\r\n path + '#/admin' + $transition.$from().url,\r\n 'PAGEVISITS'\r\n );\r\n }\r\n\r\n if (portalSettings.maxWidth.length > 0) {\r\n setTimeout(function () {\r\n $('#base-home').css('max-width', portalSettings.maxWidth);\r\n $('#base-home').css('width', '100%');\r\n $('#base-home').css('margin', 'auto');\r\n }, 0);\r\n }\r\n\r\n $rootScope.LastPageLoadTime = moment();\r\n\r\n sessionService.Refresh();\r\n });\r\n\r\n $transitions.onStart({}, function ($transition) {\r\n var to = $transition.$to();\r\n\r\n if (IsPortalSettingTrue('IsPortalPublic')) return;\r\n\r\n if (!bizUser.IsLoggedIn() && (!to.data || !to.data.isPublic)) {\r\n $transition.abort();\r\n $state.go('login');\r\n return;\r\n } else if (\r\n bizUser.IsLoggedIn() &&\r\n to.data &&\r\n to.data.onlyLoggedOut\r\n ) {\r\n $transition.abort();\r\n $state.go('base');\r\n return;\r\n }\r\n\r\n if (baseService.RedirectUrls && baseService.RedirectUrls[to.name]) {\r\n $transition.abort();\r\n $state.go(baseService.RedirectUrls[to.name]);\r\n return;\r\n }\r\n\r\n if (\r\n to.self.data &&\r\n to.self.data.translateParts &&\r\n to.self.data.translateParts.length\r\n ) {\r\n for (var i = 0; i < to.self.data.translateParts.length; i++) {\r\n $translatePartialLoader.addPart(\r\n to.self.data.translateParts[i]\r\n );\r\n }\r\n }\r\n\r\n if (to.data && angular.isFunction(to.data.rule)) {\r\n var result = to.data.rule();\r\n if (!result) {\r\n $transition.abort();\r\n $state.go('noaccess');\r\n }\r\n }\r\n });\r\n\r\n //SIGNALR NOTIFICATIONS!\r\n $rootScope.MsgQueue = [];\r\n\r\n $rootScope.$on('SHOW_CUSTOM_NOTIFICATION', function (event, message) {\r\n bizNotificationService.AddCustomNotification(message);\r\n });\r\n\r\n $rootScope.$on('ConnectionState.Connected', function (event, args) {\r\n SendMessageQueue();\r\n });\r\n\r\n $rootScope.$on('SignalR.serverMessage', function (event, args) {\r\n console.info(\r\n 'Received SignalR.serverMessage with hub server name ' +\r\n args.HubServerName +\r\n ' and hub key ' +\r\n args.HubKey\r\n );\r\n\r\n if (args.HubServerName == 'HubGeneric') {\r\n $rootScope.$broadcast('HUB_' + args.HubKey, args);\r\n } else {\r\n $rootScope.$broadcast('HUB_' + args.HubServerName, args);\r\n }\r\n }); \r\n\r\n $rootScope.$on('HUB_HubNotification', function (event, args) {\r\n var content = JSON.parse(args.Content);\r\n if (content.Key == 'CUSTOM') {\r\n bizNotificationService.AddCustomNotification(content.Message);\r\n } else {\r\n bizNotificationService.AddInformationNotification(\r\n content.Subject,\r\n content.Message\r\n );\r\n }\r\n }); \r\n\r\n $rootScope.SendHubMessageToServer = SendHubMessageToServer;\r\n window.addEventListener(\r\n 'HubClientSendServerMsg',\r\n HubClientSendServerMessage,\r\n false\r\n );\r\n\r\n function SendHubMessageToServer(hubKey, content, hubServerName) {\r\n var serverMsg = {\r\n HubServerName: hubServerName || 'HubGeneric',\r\n HubKey: hubKey,\r\n Content: content,\r\n };\r\n\r\n var evt = document.createEvent('CustomEvent');\r\n evt.initCustomEvent('HubClientSendServerMsg', true, true, {\r\n d: serverMsg,\r\n });\r\n window.dispatchEvent(evt);\r\n }\r\n\r\n function HubClientSendServerMessage(data) {\r\n var result = data.detail.d;\r\n if (result) {\r\n $rootScope.MsgQueue.push(result);\r\n SendMessageQueue();\r\n }\r\n }\r\n\r\n function SendMessageQueue() {\r\n if (SignalRFactory.IsHubconnected) {\r\n while ($rootScope.MsgQueue.length > 0) {\r\n var msg = $rootScope.MsgQueue.splice(0, 1);\r\n SignalRFactory.send(JSON.stringify(msg[0]));\r\n }\r\n }\r\n }\r\n\r\n SignalRFactory.connect();\r\n }\r\n\r\n //TODO: Add so when we get 401 error we give info to user...\r\n function loadingInterceptorFunction($q) {\r\n function isUrlForTemplateCache(url) {\r\n var urlLC = url.toLowerCase();\r\n for (var i = 0; i < htmlTemplateCachePaths.length; i++) {\r\n if (urlLC.indexOf(htmlTemplateCachePaths[i]) >= 0) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n return {\r\n request: function (request) {\r\n var htmlIndex = request.url.indexOf('.html');\r\n if (\r\n htmlIndex > 0 &&\r\n htmlIndex == request.url.length - 5 &&\r\n isUrlForTemplateCache(request.url) == false\r\n ) {\r\n request.url = request.url + '?v=' + bizPartVersion;\r\n }\r\n\r\n //request.headers.RequestKey = \"TESTING\";\r\n\r\n return request;\r\n },\r\n response: function (response) {\r\n if (\r\n debugTimes.enabled == true &&\r\n response.headers('Server-Timing')\r\n ) {\r\n var regExp = /([\\d]{1,})/gim;\r\n var match = regExp.exec(response.headers('Server-Timing'));\r\n if (match != null && match.length > 0) {\r\n var totalTime = 0;\r\n for (var i = 0; i < match.length; i++) {\r\n totalTime += ~~match[i];\r\n }\r\n\r\n if (totalTime > debugTimes.threshold) {\r\n console.error(\r\n 'Function took ' +\r\n totalTime +\r\n 'ms to execute in the backend. Method: ' +\r\n response.config.url\r\n );\r\n }\r\n }\r\n }\r\n\r\n return response || $q.when(response);\r\n },\r\n responseError: function (rejection) {\r\n //Send error report...\r\n // if(rejection.code == 500) {\r\n\r\n // }\r\n return $q.reject(rejection);\r\n },\r\n };\r\n }\r\n\r\n window.onload = function () {\r\n var token = getParameterByNameFromUrl('token', location.href);\r\n if (!token) {\r\n token = getBizPartAuthToken();\r\n }\r\n\r\n var prConfigs = $.Deferred();\r\n $.ajax({\r\n url: siteRootPath + 'api/frontend/GetFrontEndConfigurations',\r\n dataType: 'json',\r\n method: 'GET',\r\n headers: {\r\n 'Auth-Token': token,\r\n },\r\n }).then(function (configs) {\r\n viewOverrides = configs.ViewOverrides;\r\n\r\n urlReMapper = configs.UrlReMapper;\r\n notificationSettings = configs.NotificationSettings;\r\n menuSettings = configs.MenuSettings;\r\n mascot = configs.Mascot;\r\n journeySettings = configs.JourneySettings;\r\n prConfigs.resolve();\r\n });\r\n\r\n var prUser = $.Deferred();\r\n\r\n initialUrl = getParameterByNameFromUrl('url', location.href);\r\n var lang = getParameterByNameFromUrl('lang', location.href);\r\n var queryString = '';\r\n\r\n if (lang) {\r\n queryString = '?lang=' + lang;\r\n }\r\n\r\n $.ajax({\r\n url: siteRootPath + 'api/User/GetLoggedInUserSession' + queryString,\r\n dataType: 'json',\r\n headers: {\r\n 'Auth-Token': token,\r\n },\r\n }).then(\r\n function (userSession) {\r\n if (userSession.Token && userSession.Token != '') {\r\n setBizPartAuthToken(userSession.Token, userSession.Id);\r\n }\r\n userData = userSession.User;\r\n cultureCode = userSession.CultureCode;\r\n currentCultureId = userSession.CultureId;\r\n sessionTimeoutInSeconds = userSession.SessionTimeInMinutes * 60;\r\n prUser.resolve();\r\n },\r\n function () {\r\n prUser.resolve();\r\n }\r\n );\r\n\r\n var prFavorites = $.Deferred();\r\n $.when(prUser).then(function () {\r\n if (IsPortalSettingTrue('IsFavoritesEnabled') && userData.Id > 0) {\r\n $.ajax({\r\n url: siteRootPath + 'api/favorites/GetFavorites?deepload=false',\r\n dataType: 'json',\r\n method: 'GET',\r\n headers: {\r\n 'Auth-Token': token,\r\n },\r\n }).then(\r\n function (favorites) {\r\n favoriteObjects = favorites;\r\n prFavorites.resolve();\r\n },\r\n function () {\r\n prFavorites.resolve();\r\n }\r\n );\r\n } else {\r\n prFavorites.resolve();\r\n }\r\n });\r\n \r\n\r\n $.when(prConfigs, prUser, prFavorites).then(function () {\r\n angular.bootstrap(document, ['bizPartEngage'], { strictDi: false }); //set to true to debug minification errors un-minified\r\n });\r\n };\r\n})(window.angular);\r\n","(function (angular) {\r\n\tangular.module('bizPartEngage').controller('base', baseController);\r\n\tangular.module('bizPartEngage').controller('base.noaccess', baseNoaccessController);\r\n\tangular.module('bizPartEngage').controller('base.home', baseHomeController);\r\n\r\n\tbaseController.$inject = [\"$rootScope\", \"$interval\", \"$timeout\", \"$q\", \"base.service\", \"$state\", \"bizUser\", \"$translate\", \"fireworks\", \r\n\t\t\"$mdDialog\", \"pageTitleNotification\", \"core.level.serivce\", \"bizSocialShareService\", \"screenSize\", \"bizCoreService\", \r\n \"$stateParams\", \"bizHideComponentService\", \"bizCore\", \"core.services.favorite\", \"bizJourneyService\"];\r\n\tbaseNoaccessController.$inject = [];\r\n\tbaseHomeController.$inject = [\"$rootScope\", \"modules.cms.service\", \"$stateParams\", \"container\", \"bizContainerService\",\r\n\t\t\"bizContainerUrls\", \"bizContainerSettings\", \"MetadataService\", \"$filter\", \"$compile\", \"bizCoreService\", \"bizJourneyService\", \"$q\"];\r\n\r\n\tfunction baseController($rootScope, $interval, $timeout, $q, baseService, $state, bizUser, $translate, fireworks, \r\n\t\t$mdDialog, pageTitleNotification, levelService, bizSocialShareService, screenSize, bizCoreService, $stateParams, \r\n bizHideComponentService, bizCoreProvider, favoriteService, bizJourneyService) {\r\n\t\tvar vm = this;\r\n\r\n\t\tvm.Initialize = Initialize;\r\n\t\tvm.SetLanguage = SetLanguage;\r\n\t\tvm.GetExperienceValueFromLastCheck = GetExperienceValueFromLastCheck;\r\n\t\tvm.CheckForLevelUp = CheckForLevelUp;\r\n\t\tvm.StopAnimateExperience = StopAnimateExperience;\r\n\t\tvm.GainExperienceInterval = GainExperienceInterval;\r\n vm.ShowDialog = ShowDialog;\r\n vm.ShowWelcomeGuide = ShowWelcomeGuide;\r\n\t\tvm.DialogQueue = [];\r\n\r\n\t\t$rootScope.Navigate = Navigate;\r\n\t\t$rootScope.FocusElement = FocusElement;\r\n\r\n\t\t$rootScope.desktop = screenSize.is('md, lg');\r\n\t\t$rootScope.mobile = screenSize.is('xs, sm');\r\n\t\t \r\n\t\t$rootScope.desktop = screenSize.on('md, lg', function(match){\r\n\t\t\t$rootScope.desktop = match;\r\n\t\t});\r\n\t\t$rootScope.mobile = screenSize.on('xs, sm', function(match){\r\n\t\t\t$rootScope.mobile = match;\r\n\t\t});\r\n\r\n\t\t$rootScope.HasAcceptedCookies = null;\r\n\r\n\t\tfunction Initialize() {\r\n\t\t\tbizHideComponentService.Hide($stateParams.hide);\r\n \r\n if ($stateParams.extmode) { \r\n $rootScope.ExtMode = true;\r\n }\r\n\r\n\t\t\tvm.SetLanguage(bizUser);\r\n\t\t\tif (IsPortalSettingTrue('IsLevelSystemEnabled') && bizUser.IsLoggedIn()) {\r\n\t\t\t\tvm.GetExperienceValueFromLastCheck();\r\n\t\t\t}\r\n\t\t\tif ($rootScope.QueryParams && $rootScope.QueryParams['s']) {\r\n\t\t\t\tbizSocialShareService.AddSocialShareClick({\r\n\t\t\t\t\tSocialShareTrackingId: $rootScope.QueryParams['s']\r\n\t\t\t\t});\r\n } \r\n\r\n\t\t\tbaseService.GetCultures().then(GetCulturesSuccess);\r\n\t\t\tfunction GetCulturesSuccess(response) {\r\n\t\t\t\t$rootScope.Cultures = response.data;\r\n\t\t\t\tfor (var i = 0; i < $rootScope.Cultures.length; i++)\r\n\t\t\t\t\t$rootScope.Cultures[i].QueryString = \"?lang\" + '=' + $rootScope.Cultures[i].CultureCode.substring(0, 2);\r\n\t\t\t}\r\n\r\n if (bizUser.IsLoggedIn()) {\r\n bizCoreService.GetUserSetting(\"HasAcceptedCookies\").then(function (response) {\r\n if (response.data === \"true\") {\r\n $rootScope.HasAcceptedCookies = true;\r\n }\r\n else if (response.data === \"false\") {\r\n $rootScope.HasAcceptedCookies = false;\r\n }\r\n });\r\n }\r\n\r\n\t\t\tif ($rootScope.HasAcceptedCookies == null) {\r\n\t\t\t\t$rootScope.HasAcceptedCookies = getLocalStorage(\"HasAcceptedCookies\");\r\n\t\t\t}\r\n\r\n if (bizUser.IsLoggedIn() && !getLocalStorage(\"HasShownWelcomeGuide\")) {\r\n var welcomeGuideLayoutComponentType = 6;\r\n\r\n $q.all([\r\n baseService.HasLayoutComponent(welcomeGuideLayoutComponentType),\r\n bizCoreService.GetUserSetting(\"HasShownWelcomeGuide\")\r\n ]).then(function (result) {\r\n var hasWelcomeGuide = result[0].data;\r\n var hasShownWelcomeGuide = result[1].data === \"true\";\r\n\r\n if (hasWelcomeGuide && hasShownWelcomeGuide) {\r\n setLocalStorage('HasShownWelcomeGuide', true);\r\n } else if (hasWelcomeGuide && !hasShownWelcomeGuide) {\r\n vm.ShowWelcomeGuide();\r\n }\r\n });\r\n } else {\r\n const previewWelcomeGuidePages = getSessionStorage('previewWelcomeGuide'); \r\n if (previewWelcomeGuidePages) {\r\n deleteSessionStorage('previewWelcomeGuide');\r\n }\r\n \r\n var isPreview = getParameterByNameFromUrl('wgpreview', location.href); \r\n if (previewWelcomeGuidePages && isPreview === 'true') {\r\n vm.ShowWelcomeGuide(JSON.parse(previewWelcomeGuidePages));\r\n } \r\n }\r\n\r\n\t\t\tHandleFavorites(favoriteObjects);\r\n\t\t}\r\n\r\n\t\tfunction Navigate(state, params) {\r\n\t\t\tif(params) {\r\n\t\t\t\t$state.go(state, params);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t$state.go(state);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction FocusElement(elementId, shouldFocus) {\r\n\t\t\tif(shouldFocus === undefined || shouldFocus === true) {\r\n\t\t\t\tsetTimeout(function(eId) {\r\n\t\t\t\t\tdocument.getElementById(eId).focus()\r\n\t\t\t\t}, 0 , elementId);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction SetLanguage(user) {\r\n\t\t\t$translate.use(cultureCode.substring(0, 2)).then(function () {\r\n\t\t\t\t$rootScope.CultureDefer.resolve();\r\n\t\t\t\tmoment.locale(cultureCode.substring(0, 2));\r\n\t\t\t});\r\n\r\n\t\t\t$translate.refresh();\r\n\r\n\t\t\t$rootScope.$broadcast('PORTAL_CULTURE_CHANGE');\r\n\t\t}\r\n\r\n\t\tfunction GetExperienceValueFromLastCheck() {\r\n\t\t\tlevelService.GetExperienceValueFromLastCheck().then(GetExperienceValueFromLastCheckSuccess);\r\n\r\n\t\t\tfunction GetExperienceValueFromLastCheckSuccess(response) {\r\n\t\t\t\tif (~~response.data > 0) {\r\n\t\t\t\t\t//We have gained xp.. \r\n\t\t\t\t}\r\n\r\n\t\t\t\tvm.CheckForLevelUp();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction CheckForLevelUp() {\r\n\t\t\tlevelService.CheckForLevelUp().then(CheckForLevelUpSuccess);\r\n\r\n\t\t\tfunction CheckForLevelUpSuccess(response) {\r\n\r\n\t\t\t\tif (response && response.data.length == 1 && response.data[0].RequiredExp == 0) {\r\n\t\t\t\t\t// First login, do not show fireworks, level up..?\r\n\t\t\t\t}\r\n\t\t\t\telse if (response && response.data.length == 1 && response.data[0].RequiredExp > 0) {\r\n\t\t\t\t\tlevelUp(response.data[0]);\r\n\t\t\t\t}\r\n\t\t\t\telse if (response && response.data.length > 1) {\r\n\t\t\t\t\t//Need to handle level up on more then 1 different experience types...\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.Initialize();\r\n\r\n\t\t$rootScope.$on('HUB_VIRTUAL_CURRENCY_UPDATE_DEFAULT', virtualcurrencyUpdateDefault);\r\n\t\t$rootScope.$on('HUB_EXPERIENCE_UPDATE_DEFAULT', experienceUpdateDefault);\r\n\t\t$rootScope.$on('HUB_EXPERIENCE_GAIN', experienceGain);\r\n\t\t$rootScope.$on('HUB_LEVEL_GAIN', levelGain);\r\n $rootScope.$on('HUB_NEW_CERTIFICATE', newCertificate);\r\n\r\n $rootScope.$on('HUB_EngageObjectFinished', function (event, args) {\r\n var params = JSON.parse(args.Content);\r\n $rootScope.$broadcast('engageobject.finished', params);\r\n });\r\n\r\n $rootScope.$on('HUB_SESSION_TIMER_REFRESH', BizPart.Client.Core.SessionTimer.Refresh);\r\n\r\n\t\t$rootScope.$on('CONTAINER_BUTTON_PRESSED', SetShown);\r\n\t\t\r\n $rootScope.$on('favorites.change', FavoritesChange); \r\n\r\n\t\tfunction FavoritesChange(e, favorites) {\r\n\t\t\tHandleFavorites(favorites);\r\n\t\t}\r\n\r\n\t\tfunction HandleFavorites(favorites) {\r\n\t\t\t$rootScope.FavoriteTagIds = [];\r\n\r\n\t\t\tfor(var i = 0; i < favorites.length; i++) {\r\n\t\t\t\tif(favorites[i].ObjectType == 103) {\r\n\t\t\t\t\t$rootScope.FavoriteTagIds.push(favorites[i].ObjectId);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//console.log('Favorite tag ids: ', $rootScope.FavoriteTagIds);\r\n\t\t}\r\n\r\n\t\tfunction StopAnimateExperience() {\r\n\t\t\t$rootScope.AnimateExperience = false;\r\n }\r\n\r\n function ShowWelcomeGuide(previewPages) {\r\n\r\n if ($rootScope.ExtMode) {\r\n $rootScope.$broadcast('WELCOMEGUIDE.SHOW');\r\n return;\r\n }\r\n\r\n if (previewPages) {\r\n ShowWindow(false, previewPages);\r\n } else {\r\n bizCoreService.GetWelcomeGuide().then(function (response) {\r\n if (response.data && response.data !== \"\" && response.data !== null) {\r\n\t\t\t\t\t\tconst data = JSON.parse(response.data);\r\n\r\n\t\t\t\t\t\tif ((data.useAdvanced === undefined || data.useAdvanced === true) || data.useAdvanced === false && data.pages !== null)\r\n\t\t\t\t\t\t\tShowWindow(data.useAdvanced, data.pages);\r\n }\r\n });\r\n } \r\n\r\n function ShowWindow(showAdvanced, pages) {\r\n if (showAdvanced === undefined) {\r\n showAdvanced = true;//backwards compatibility, if setting is missing\r\n }\r\n $mdDialog.show({\r\n parent: angular.element(document.body),\r\n templateUrl: siteRootPath + \"FrontEnd/Views/Dialogs/welcome-guide.html\",\r\n clickOutsideToClose: false,\r\n escapeToClose: false,\r\n controller: welcomeGuideController,\r\n controllerAs: \"vm\",\r\n locals: {\r\n showAdvanced: showAdvanced,\r\n pages: pages\r\n },\r\n bindToController: true\r\n }).then(SetShown, SetShown);\r\n\r\n welcomeGuideController.$inject = [\"$mdDialog\"];\r\n function welcomeGuideController($mdDialog) {\r\n var vm = this;\r\n }\r\n\r\n $rootScope.$on('WELCOMEGUIDE.COMPLETED', function (e, data) {\r\n $mdDialog.hide(data);\r\n });\r\n }\r\n\t\t}\r\n\t\t\r\n function SetShown(data) {\r\n setLocalStorage('HasShownWelcomeGuide', true);\r\n\t\t\tif ($rootScope.IsLoggedIn) {\r\n\t\t\t\tbizCoreService.UpdateUserSetting(\"HasShownWelcomeGuide\", true).then(function (response) {\r\n\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n if (data && data.SelectedJourney && data.SelectedJourney.Id) {\r\n $rootScope.SetCurrentJourney(data.SelectedJourney.Id);\r\n if (data.SelectedJourney.EngageObjects && data.SelectedJourney.EngageObjects.length > 0) {\r\n bizJourneyService.GoToEngageItem(data.SelectedJourney.EngageObjects[0]);\r\n } \r\n }\r\n\t\t} \r\n\r\n\t\tfunction ShowDialog(config, onshow, onclose) {\r\n\t\t\tif (vm.ShowingDialog) {\r\n\t\t\t\tvm.DialogQueue.push({ config: config, onshow: onshow, onclose: onclose });\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvm.ShowingDialog = true;\r\n\r\n\t\t\tif (!onclose)\r\n\t\t\t\tonclose = function () { };\r\n\r\n\t\t\tif (onshow)\r\n\t\t\t\tonshow();\r\n\r\n\t\t\tvar dialogPromise = $mdDialog.show({\r\n templateUrl: bizCoreProvider.getView('base.dialog', 'FrontEnd/Views/Dialogs/dialog-primary.html'),\r\n\t\t\t\tcontroller: dialogController,\r\n\t\t\t\tcontrollerAs: \"vm\",\r\n\t\t\t\tlocals: config,\r\n\t\t\t\tbindToController: true\r\n\t\t\t});\r\n\r\n\t\t\tdialogPromise.then(onclose, onclose);\r\n\t\t\tdialogPromise.then(function () {\r\n\t\t\t\tvm.ShowingDialog = false;\r\n\t\t\t\tif (vm.DialogQueue.length) {\r\n\t\t\t\t\tvar d = vm.DialogQueue.splice(vm.DialogQueue.length - 1, 1)[0];\r\n\t\t\t\t\tvm.ShowDialog(d.config, d.onshow, d.onclose);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tdialogController.$inject = [\"$mdDialog\"];\r\n\r\n\t\t\tfunction dialogController($mdDialog) {\r\n\t\t\t\tvar vm = this;\r\n\r\n\t\t\t\tvm.Close = Close;\r\n\r\n\t\t\t\tfunction Close() {\r\n\t\t\t\t\t$mdDialog.hide();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction newCertificate(event, args) {\r\n\t\t\tvar content = JSON.parse(args.Content);\r\n\t\t\tconsole.log(content);\r\n\r\n\t\t\tif (document.hasFocus()) {\r\n\t\t\t\tshowNewCert(content);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tpageTitleNotification.On(\"New certification!\");\r\n\t\t\t\t$(window).on('focus', (function () {\r\n\t\t\t\t\tpageTitleNotification.Off();\r\n\t\t\t\t\tshowNewCert(content);\r\n\r\n\t\t\t\t\t$(window).off('focus');\r\n\t\t\t\t}));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction showNewCert(certContent) {\r\n\t\t\tvm.ShowDialog({\r\n\t\t\t\tText: 'Grattis! Du har klarat av #NAME#'.replace(\"#NAME#\", certContent.Name),\r\n\t\t\t\tHideButtons: true,\r\n\t\t\t\tCustomContentTemplateUrl: siteRootPath + \"FrontEnd/Modules/Certifications/Views/new-certification-dialog.html\",\r\n\t\t\t\tAuthToken: $rootScope.AuthToken,\r\n\t\t\t\tCert: certContent\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction virtualcurrencyUpdateDefault(event, args) {\r\n\t\t\t$rootScope.LoggedInUser.DefaultVirtualCurrencyValue = ~~args.Content;\r\n\t\t\t$rootScope.$digest();\r\n\t\t}\r\n\r\n\t\tfunction experienceUpdateDefault(event, args) {\r\n\t\t\t$rootScope.LoggedInUser.DefaultExperiencePoints = ~~args.Content;\r\n\t\t\t$rootScope.$digest();\r\n\t\t}\r\n\t\tfunction ShowEngagementTip() {\r\n\t\t\t// vm.ShowDialog({\r\n\t\t\t// \tCustomContentTemplateUrl: siteRootPath + \"FrontEnd/Views/Dialogs/engagement-tip.html\",\r\n\t\t\t\t\r\n\t\t\t// });\r\n\t\t}\r\n\r\n\t\tShowEngagementTip();\r\n\r\n function experienceGain(event, args) {\r\n if (!$rootScope.ShowXP) { \r\n return;\r\n }\r\n\r\n\t\t\tvar content = JSON.parse(args.Content);\r\n\r\n\t\t\t$rootScope.LoggedInUser.DefaultExperiencePointsStart = angular.copy($rootScope.LoggedInUser.DefaultExperiencePoints);\r\n\r\n\t\t\t$rootScope.AnimateExperience = true;\r\n\r\n\t\t\t$timeout(vm.StopAnimateExperience, 2500);\r\n\r\n\t\t\tvm.pointsEarned = content.TotalExperiencePoints;\r\n\t\t\tvm.ExpInterval = $interval(vm.GainExperienceInterval, 50, 0, true, (vm.pointsEarned / 50));\r\n\t\t\tvm.countedPoints = 0;\r\n\t\t}\r\n\r\n\t\tfunction GainExperienceInterval(amount) {\r\n\t\t\tvm.countedPoints += amount;\r\n\t\t\t$rootScope.LoggedInUser.DefaultExperiencePoints += amount;\r\n\r\n\t\t\tif (vm.countedPoints >= vm.pointsEarned) {\r\n\t\t\t\t$rootScope.LoggedInUser.DefaultExperiencePoints = $rootScope.LoggedInUser.DefaultExperiencePointsStart + vm.pointsEarned;\r\n\t\t\t\t$interval.cancel(vm.ExpInterval);\r\n\t\t\t}\r\n\t\t}\r\n\r\n function levelGain(event, args) {\r\n if (!$rootScope.ShowXP) {\r\n return;\r\n }\r\n\r\n\t\t\tvar content = JSON.parse(args.Content);\r\n\t\t\tconsole.log(content);\r\n\t\t\t$rootScope.LoggedInUser.DefaultLevel = content;\r\n\t\t\tif (document.hasFocus()) {\r\n\t\t\t\tlevelUp(content);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tpageTitleNotification.On(\"Level up!\");\r\n\t\t\t\t$(window).on('focus', (function () {\r\n\t\t\t\t\tpageTitleNotification.Off();\r\n\t\t\t\t\tlevelUp(content);\r\n\r\n\t\t\t\t\t$(window).off('focus');\r\n\t\t\t\t}));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction levelUp(levelContent) {\r\n\t\t\t$translate('CORE.LEVELUPDIALOG').then(function (translation) {\r\n\t\t\t\tvar textToShow = translation.$$unwrapTrustedValue().replace(\"#LEVEL#\", levelContent.Name);\r\n\r\n\t\t\t\tvm.ShowDialog({\r\n\t\t\t\t\tText: textToShow,\r\n\t\t\t\t\tHideButtons: true\r\n\t\t\t\t}, function () {\r\n\t\t\t\t\tfireworks.show();\r\n\t\t\t\t}, function () {\r\n\t\t\t\t\tfireworks.hide();\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t}\r\n\r\n\tfunction baseNoaccessController() {\r\n\t\tvar vm = this;\r\n\t}\r\n\r\n\tfunction baseHomeController($rootScope, cmsService, $stateParams, container, bizContainerService, bizContainerUrls, bizContainerSettings, \r\n MetadataService, $filter, $compile, bizCoreService, bizJourneyService, $q) {\r\n\t\tvar vm = this;\r\n\t\tvm.PageIdentifier = portalSettings['StartPageId'];\r\n\t\tvm.Journeys = [];\r\n vm.JourneyItemsPerRow = 0;\r\n\r\n var isStartPageDataLoaded = $q.defer();\r\n var isStartPageDataLoadedPromise = isStartPageDataLoaded.promise;\r\n\t\t\r\n\t\t// if (~~vm.PageIdentifier <= 0)\r\n\t\t// \tvm.PageIdentifier = 1;\r\n\r\n vm.GetCMSPage = GetCMSPage;\r\n vm.GoToNextJourneyItem = GoToNextJourneyItem;\r\n\r\n bizContainerSettings.ContainerRefererType = \"CMS\";\r\n\r\n function GoToNextJourneyItem() {\r\n $rootScope.GetNextJourneyItem(true).then(function (eo) {\r\n if(eo) \r\n bizJourneyService.GoToEngageItem(eo);\r\n }); \r\n } \r\n\r\n\t\tfunction GetCMSPage() {\r\n\t\t\tcmsService.GetCMSPageById(vm.PageIdentifier).then(GetCmsPageSuccess);\r\n\r\n\t\t\tfunction GetCmsPageSuccess(response) {\r\n\t\t\t\tvm.Page = response.data;\r\n\t\t\t\tvm.Page.Container = new container(vm.Page.Container);\r\n\r\n\t\t\t\tvar imageModules = vm.Page.Container.getModules(\"IMAGE\");\r\n\t\t\t\tvar imageUrl = ogDefaultImage;\r\n\t\t\t\tif ((!imageUrl || imageUrl == \"\") && imageModules.length > 0) {\r\n\t\t\t\t\timageUrl = imageModules[0].Content.ImageUrl;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tMetadataService.setMetaTags({\r\n\t\t\t\t\ttitle: vm.Page.Title,\r\n\t\t\t\t\tdescription: vm.Page.Description,\r\n\t\t\t\t\tkeywords: vm.Page.Keywords,\r\n\t\t\t\t\timg: imageUrl\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.GetItemWidth = GetItemWidth;\r\n\r\n function GetItemWidth() {\r\n return 100 / vm.JourneyItemsPerRow;\r\n }\r\n\r\n\t\tvm.$onInit = function () {\r\n\t\t\t\r\n\t\t\tfunction getStartpageDataSuccess(response) {\r\n\t\t\t\tif (response.data && response.data !== \"\" && response.data !== null) {\r\n vm.StartPageData = JSON.parse(response.data);\r\n console.log(\"startpage data\", vm.StartPageData);\r\n\r\n vm.StartPageData.MainBanner.Color = 'light';\r\n isStartPageDataLoaded.resolve('');\r\n\t\t\t\t}\r\n else { \r\n\t\t\t\t\t//This is the default settings for a new portal...\r\n\t\t\t\t\tvm.StartPageData = {\r\n\t\t\t\t\t\tMainBanner: {\r\n\t\t\t\t\t\t\tShow: true,\r\n\t\t\t\t\t\t\tImage: { FileUrl: \"\" },\r\n\t\t\t\t\t\t\tButtonLink: \"\",\r\n ButtonType: \"btn\",\r\n Fullscreen: true,\r\n HeaderTranslations: [\r\n {\r\n CultureId: currentCultureId,\r\n Value: \"Lorem ipsum dolor sit amet\"\r\n }\r\n ],\r\n TextTranslations: [\r\n {\r\n CultureId: currentCultureId,\r\n Value: \"Donec nec enim commodo, lobortis risus sollicitudin, luctus augue. Ut ultricies placerat diam, vitae suscipit turpis volutpat a. Nulla facilisi. Phasellus varius blandit convallis.\"\r\n }\r\n ],\r\n SelectedColor: {\r\n Value: \"dark\"\r\n }\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tBlogModule: {\r\n\t\t\t\t\t\t\tShow: true,\r\n\t\t\t\t\t\t\tFilter: \"newest\",\r\n\t\t\t\t\t\t\tText: \"\",\r\n\t\t\t\t\t\t\tButtonType: \"btn\",\r\n Limit: 4,\r\n HeaderTranslations: [\r\n {\r\n CultureId: currentCultureId,\r\n Value: cultureCode === 'sv-SE' ? \"Blogg\" : \"Blog\"\r\n }\r\n ],\r\n SelectedButtonType: {\r\n Value: \"btn\"\r\n }\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tEducationModule: {\r\n\t\t\t\t\t\t\tShow: true,\r\n Filter: \"newest\",\r\n\t\t\t\t\t\t\tHeader: \"Our educations\",\r\n\t\t\t\t\t\t\tText: \"\",\r\n\t\t\t\t\t\t\tButtonType: \"link\",\r\n Limit: 4,\r\n HeaderTranslations: [\r\n {\r\n CultureId: currentCultureId,\r\n Value: cultureCode === 'sv-SE' ? \"Här finns våra online-utbildningar\" : \"Our educations\"\r\n }\r\n ],\r\n SelectedButtonType: {\r\n Value: \"btn\"\r\n }\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tVideoModule: {\r\n\t\t\t\t\t\t\tShow: true,\r\n Filter: \"newest\",\r\n\t\t\t\t\t\t\tHeader: \"Our videos\",\r\n\t\t\t\t\t\t\tText: \"\",\r\n\t\t\t\t\t\t\tButtonType: \"link\",\r\n Limit: 3,\r\n HeaderTranslations: [\r\n {\r\n CultureId: currentCultureId,\r\n Value: cultureCode === 'sv-SE' ? \"Våra filmer\" : \"Our videos\"\r\n }\r\n ],\r\n SelectedButtonType: {\r\n Value: \"btn\"\r\n }\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tJourney: {\r\n\t\t\t\t\t\t\tShow: false,\r\n\t\t\t\t\t\t\tJourneyItemsPerRow: 10,\r\n\t\t\t\t\t\t\tView: \"full\",\r\n\t\t\t\t\t\t\tShowTags: false\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvm.JourneyItemsPerRow = ~~vm.StartPageData.Journey.ItemsPerRow;\r\n\r\n\t\t\t\tif (vm.JourneyItemsPerRow <= 0)\r\n\t\t\t\t\tvm.JourneyItemsPerRow = 10;\r\n\r\n if (vm.StartPageData.Journey && vm.StartPageData.Journey.View === 'mini') {\r\n vm.miniSettings = {\r\n ItemCount: ~~vm.JourneyItemsPerRow > 0 ? ~~vm.JourneyItemsPerRow : 5,\r\n ShowTags: vm.StartPageData.Journey.ShowTags === true\r\n };\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (vm.StartPageData.Journey && vm.StartPageData.Journey.View === 'hero') {\r\n\t\t\t\t\tif (vm.JourneyItemsPerRow < 3)\r\n\t\t\t\t\t\tvm.JourneyItemsPerRow = 3;\r\n\t\t\t\t\tif (vm.JourneyItemsPerRow > 4)\r\n\t\t\t\t\t\tvm.JourneyItemsPerRow = 4;\r\n\t\t\t\t}\r\n\r\n $rootScope.IsJourneyStarted().then((isStarted) => {\r\n if (isStarted) {\r\n vm.StartPageData.MainBanner.JourneyButtonTextTranslations = vm.StartPageData.MainBanner.ButtonTextSecondaryTranslations;\r\n } else {\r\n vm.StartPageData.MainBanner.JourneyButtonTextTranslations = vm.StartPageData.MainBanner.ButtonTextTranslations;\r\n }\r\n });\r\n\r\n isStartPageDataLoaded.resolve('');\r\n\t\t\t}\r\n\r\n\t\t\tif (~~vm.PageIdentifier > 0) {\r\n\t\t\t\tvm.GetCMSPage();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t//Get the standard startpage\r\n //bizCoreService.GetPortalsetting(\"STARTPAGE_DATA\").then(getStartpageDataSuccess);\r\n\r\n\t\t\t\tif ($rootScope.MiniSettings.Startpage.DisableLoadData === false) {\r\n\t\t\t\t\tbizCoreService.GetStartPageData().then(getStartpageDataSuccess);\r\n }\r\n }\r\n\r\n var pList = [\r\n isStartPageDataLoadedPromise,\r\n $rootScope.JourneysInitialized\r\n ];\r\n\r\n $q.all(pList).then(() => {\r\n var journeys = [];\r\n if ($rootScope.Journeys) {\r\n \r\n\t\t\t\t\tvar maxItems = vm.JourneyItemsPerRow;\r\n\t\t\t\t\tif (vm.StartPageData.Journey && vm.StartPageData.Journey.View === 'hero' && vm.JourneyItemsPerRow > 4) {\r\n maxItems = 4; \r\n }\r\n\r\n for (var i = 0; i < $rootScope.Journeys.length && i < maxItems; i++) {\r\n journeys.push($rootScope.Journeys[i]); \r\n }\r\n }\r\n vm.TotalJourneyCount = $rootScope.Journeys.length;\r\n vm.Journeys = journeys;\r\n });\t\t\t\r\n\t\t}\r\n\t}\r\n})(window.angular);","(function(angular) {\r\n\tangular.module('bizPartEngage').directive('compareTo', compareToDirective);\r\n\tangular.module('bizPartEngage').directive('bizGo', bizGoDirective);\r\n\tangular.module('bizPartEngage').directive('bizHideComponent', bizHideComponentDirective);\r\n\tangular.module('bizPartEngage').service('bizHideComponentService', bizHideComponentService);\r\n\tangular.module('bizPartEngage').service('bizPhraseLogService', bizPhraseLogService);\r\n\r\n\tbizHideComponentDirective.$inject = [\"bizHideComponentService\"];\r\n\tbizHideComponentService.$inject = [\"$q\"];\r\n\r\n\tbizPhraseFilter.$inject = [\"$translate\", \"$rootScope\"]\r\n\tbizPhraseDirective.$inject = [\"$rootScope\", \"$translate\", \"$filter\", \"$compile\", \"$timeout\", \"bizPhraseLogService\"];\r\n\r\n\tbizPhraseLogService.$inject = [\"bizCoreService\", \"$q\", \"$http\"];\r\n\r\n\tfunction bizPhraseLogService(bizCoreService, $q, $http) {\r\n\t this.Phrases = [];\r\n\r\n\t this.IsEnabled = function () {\r\n\t if (this.Promise)\r\n\t return this.Promise;\r\n\r\n\t var defer = $q.defer();\r\n\t this.Promise = defer.promise;\r\n\r\n\t bizCoreService.Admin.GetGenericSetting('CULTURE', 'bizPhraseLoggingEnabled', 0).then(function (response) {\r\n\t defer.resolve(response.data);\r\n\t });\r\n\r\n\t return this.Promise;\r\n\t };\r\n\r\n\t this.LogPhrase = function (key, value, culture) {\r\n\t this.IsEnabled().then(function (data) {\r\n\t if (!data || data.Value.toLowerCase() == 'false')\r\n\t return;\r\n\r\n\t $http.get(siteRootPath + \"api/culture/LogBizPhrase\", { params: { key: key, value: value, culture: culture } });\r\n\t })\r\n\t }\r\n\t}\r\n\r\n\tfunction bizHideComponentDirective(bizHideComponentService) {\r\n\t\tvar directive = {\r\n\t\t\trestrict: \"A\",\r\n\t\t\tlink: linkFunction\r\n\t\t}\r\n\r\n\t\tfunction linkFunction(scope, elem, attrs) {\r\n\t\t\tbizHideComponentService.Hiding().then(function (components) {\r\n\t\t\t\tif (!components[attrs.bizHideComponent])\r\n\t\t\t\t\treturn;\r\n\r\n\t\t\t\telem.remove();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn directive;\r\n\t}\r\n\r\n\tfunction bizHideComponentService($q) {\r\n\t\tvar hiddenComponents = {};\r\n\t\tvar initializing = $q.defer();\r\n\r\n\t\treturn {\r\n\t\t\tHide: Hide,\r\n\t\t\tHiding: Hiding\r\n\t\t};\r\n\r\n\t\tfunction Hide(components) {\r\n\t\t\tif (!components) {\r\n\t\t\t\tcomponents = getLocalStorage(\"bizHideComponents\");\r\n\r\n\t\t\t\tif (!components)\r\n\t\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tsetLocalStorage(\"bizHideComponents\", components);\r\n\r\n\t\t\tcomponents = components.split(\",\");\r\n\t\t\tfor (var i = 0; i < components.length; i++) {\r\n\t\t\t\thiddenComponents[components[i]] = true;\r\n\t\t\t}\r\n\r\n\t\t\tinitializing.resolve(hiddenComponents);\r\n\t\t}\r\n\r\n\t\tfunction Hiding() {\r\n\t\t\treturn initializing.promise;\r\n\t\t}\r\n\t}\r\n\r\n function compareToDirective() {\r\n var directive = {\r\n require: \"ngModel\",\r\n scope: {\r\n otherModelValue: \"=compareTo\"\r\n },\r\n link: compareToLink\r\n }\r\n\r\n function compareToLink(scope, element, attributes, ngModel) {\r\n ngModel.$validators.compareTo = function (modelValue) {\r\n return modelValue == scope.otherModelValue;\r\n };\r\n\r\n scope.$watch(\"otherModelValue\", function () {\r\n ngModel.$validate();\r\n });\r\n }\r\n\r\n return directive;\r\n }\r\n\r\n function bizPhraseDirective($rootScope, $translate, $filter, $compile, $timeout, bizPhraseLogService) {\r\n \tvar directive = {\r\n \t\trestrict: \"A\",\r\n\t\t\tlink: linkFunction\r\n \t};\r\n\r\n \tfunction linkFunction(scope, element, attrs) {\r\n \t\t$rootScope.CultureInitialized.then(function () {\r\n \t\t $translate(attrs.bizPhrase).then(function (translation) {\r\n \t\t element.text(translation);\r\n\r\n \t\t if (!bizPhraseLogService.Phrases.GetItemByValue('Key', attrs.bizPhrase))\r\n \t\t bizPhraseLogService.LogPhrase(attrs.bizPhrase, translation.toString(), $translate.use());\r\n \t\t bizPhraseLogService.Phrases.push({ Key: attrs.bizPhrase });\r\n\r\n \t\t }, function () {\r\n \t\t if (!bizPhraseLogService.Phrases.GetItemByValue('Key', attrs.bizPhrase)) {\r\n \t\t bizPhraseLogService.LogPhrase(attrs.bizPhrase, \"\", $translate.use());\r\n \t\t bizPhraseLogService.Phrases.push({ Key: attrs.bizPhrase });\r\n \t\t }\r\n \t\t\t\tconsole.warn(String.format(\"bizPhrase | Phrase not found for current culture ({0}): {1}\", $translate.use(), attrs.bizPhrase));\r\n \t\t\t});\r\n \t\t});\r\n \t}\r\n\r\n \treturn directive;\r\n }\r\n\r\n function bizPhraseFilter($translate, $rootScope) {\r\n \tvar phrases = {};\r\n \tvar promises = {};\r\n \treturn function (key) {\r\n \t\tif (phrases[key])\r\n \t\t\treturn phrases[key];\r\n\r\n \t\tif (promises[key])\r\n \t\t\treturn;\r\n\r\n \t\tpromises[key] = true;\r\n\r\n \t\t$rootScope.CultureInitialized.then(function () {\r\n \t\t\t$translate(key).then(function (translation) {\r\n \t\t\t\tphrases[key] = translation.toString();\r\n \t\t\t}, function (key) {\r\n \t\t\t\tphrases[key] = undefined;\r\n \t\t\t\tconsole.warn(String.format(\"bizPhrase | Phrase not found for current culture ({0}): {1}\", $translate.use(), key));\r\n \t\t\t});\r\n \t\t});\r\n \t}\r\n }\r\n\r\n\tfunction bizGoDirective() {\r\n\t\tvar directive = {\r\n\t\t\trestrict: \"A\",\r\n\t\t\tlink: bizGoLink\r\n\t\t};\r\n\r\n\t\tfunction bizGoLink(scope, element, attrs) {\r\n\t\t\tvar path = \"\";\r\n\r\n\t\t\tattrs.$observe('bizGo', function (val) {\r\n\t\t\t\tpath = val;\r\n\t\t\t});\r\n\r\n\t\t\telement.bind('click', function () {\r\n\t\t\t\tif (path && path != \"\") {\r\n\t\t\t\t\twindow.location.href = path;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn directive;\r\n\t}\r\n})(window.angular);\r\n","(function (angular) {\r\n angular.module('bizPartEngage').filter('hoursto', function () {\r\n return function (time, isutc) {\r\n if (time) {\r\n var from = moment();\r\n if (isutc) {\r\n var date = new Date();\r\n from = from.add(date.getTimezoneOffset(), 'minutes');\r\n }\r\n var to = moment(time);\r\n var duration = moment.duration(to.diff(from));\r\n return Math.floor(duration.asHours()) + 'H ' + duration.minutes() + 'M';\r\n }\r\n }\r\n });\r\n\r\n angular.module('bizPartEngage').filter('date', function () {\r\n return function (value, format) {\r\n if (value)\r\n return moment(value).format(format || 'L');\r\n }\r\n });\r\n\r\n angular.module('bizPartEngage').filter('time', function () {\r\n return function (value) {\r\n if (value)\r\n return moment(value).format('LT');\r\n }\r\n });\r\n\r\n angular.module('bizPartEngage').filter('timeSince', timeSince);\r\n\r\n timeSince.$inject = [\"$translate\"];\r\n\r\n function timeSince($translate) {\r\n return function(time) {\r\n var justNow = $translate.instant(\"CORE.JUST_NOW\");\r\n return moment(time).fromNowOrNow(undefined, justNow.toString());\r\n }\r\n }\r\n\r\n angular.module('bizPartEngage').filter('datetime', function () {\r\n return function (value, isutc) {\r\n if (value) {\r\n if (isutc) {\r\n var m = moment(value);\r\n return m.subtract(m.utcOffset(), 'm').format('L LT');\r\n }\r\n return moment(value).format('L LT');\r\n }\r\n }\r\n });\r\n\r\n angular.module('bizPartEngage').filter('xptype', xptypeFilter);\r\n\r\n xptypeFilter.$inject = [\"bizLevel\"];\r\n\r\n function xptypeFilter(levelProvider) {\r\n \tvar cache = {};\r\n\r\n function xptypeFilterFunction(value) {\r\n \tif (cache[value]) {\r\n return cache[value];\r\n \t}\r\n \telse {\r\n \t\tcache[value] = \"Loading translation...\";\r\n \t\tlevelProvider.getExperienceTypeLabel(value).then(function (val) {\r\n cache[value] = val;\r\n \t\t}, function (err) {\r\n \t\t\tconsole.log(\"Failed to find translation:\" + err);\r\n \t\t\tcache[value] = \"Failed to load translation\";\r\n \t\t});\r\n }\r\n }\r\n xptypeFilterFunction.$stateful = true;\r\n\r\n return xptypeFilterFunction;\r\n }\r\n})(window.angular);\r\n","(function(angular) {\r\n\tangular.module('bizPartEngage').service('base.service', baseService);\r\n angular.module('bizPartEngage').service('bizNotificationService', bizNotificationService);\r\n angular.module('bizPartEngage').service('bizPushNotificationService', bizPushNotificationService);\r\n\r\n angular.module('bizPartEngage').service('MetadataService', ['$window', '$filter', function ($window, $filter) {\r\n var self = this;\r\n self.setMetaTags = function (tagData) {\r\n $window.document.getElementsByName('title')[0].content = tagData.title;\r\n $window.document.getElementsByName('description')[0].content = tagData.description;\r\n\r\n if (tagData.keywords)\r\n $window.document.getElementsByName('keywords')[0].content = tagData.keywords;\r\n\r\n //Open graph...\r\n if (tagData.title && tagData.title.length > 0)\r\n document.getElementById('og-title').content = tagData.title;\r\n\r\n if (tagData.description && tagData.description.length > 0)\r\n document.getElementById('og-description').content = tagData.description;\r\n\r\n if (tagData.img && tagData.img.length > 0)\r\n document.getElementById('og-image').content = $filter('fullsitepath')(tagData.img);\r\n\r\n if (tagData.video && tagData.video.length > 0)\r\n document.getElementById('og-video').content = $filter('fullsitepath')(tagData.video);\r\n\r\n document.getElementById('og-url').content = location.href;\r\n\r\n if (tagData.appendPortalNameLast && tagData.appendPortalNameLast === true)\r\n $window.document.title = htmlDecode((tagData.title.length > 0 ? tagData.title + \" - \" : '') + portalName);\r\n else\r\n $window.document.title = htmlDecode(portalName + (tagData.title.length > 0 ? \" - \" + tagData.title : '')); \r\n };\r\n }]);\r\n\r\n baseService.$inject = [\"$http\", \"$state\", \"$filter\"];\r\n bizNotificationService.$inject = [\"$timeout\", \"$mdToast\"];\r\n bizPushNotificationService.$inject = [\"$http\", \"$mdToast\"];\r\n\r\n function baseService($http, $state, $filter) {\r\n \tthis.AddTranslatePartsToState = function (stateName, parts) {\r\n \t\tvar state = $state.get(stateName);\r\n \t\tif (!state)\r\n \t\t\treturn;\r\n\r\n \t\tif (!state.data)\r\n \t\t\tstate.data = { translateParts: [] };\r\n\t\t\telse if (!state.data.translateParts)\r\n \t\t\tstate.data.translateParts = [];\r\n\r\n \t\tstate.data.translateParts = state.data.translateParts.concat(parts);\r\n \t}\r\n\r\n this.GetMenuItemsForLoggedInUser = function() {\r\n return $http.get(siteRootPath + 'api/menu/GetMenuItemsForLoggedInUser');\r\n };\r\n\r\n this.GetLoggedInUser = function() {\r\n return $http.get(siteRootPath + 'api/User/GetLoggedInUser');\r\n };\r\n\r\n this.GetCultures = function () {\r\n return $http.get(siteRootPath + 'api/culture/GetCultures');\r\n };\r\n\r\n this.HasLayoutComponent = function (type) {\r\n return $http.get(siteRootPath + 'api/layout/HasLayoutComponent', {\r\n params: {\r\n type: type\r\n }\r\n });\r\n }\r\n\r\n this.GetGlobalSiteTitle = function () {\r\n return $http.get(siteRootPath + 'api/layout/GetGlobalSiteTitle');\r\n }\r\n\r\n this.GetFrontEndModuleSettingValue = function (module, key) {\r\n if (moduleSettings) {\r\n var settings = moduleSettings.GetItemByValue('ModuleName', module);\r\n if (settings && settings.Settings) {\r\n var s = settings.Settings.GetItemByValue('Key', key);\r\n return s ? s.Value : undefined;\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n this.UpdateFrontEndModuleSettingValue = function (module, key, value) { \r\n if (moduleSettings) {\r\n var settings = moduleSettings.GetItemByValue('ModuleName', module);\r\n if (settings && settings.Settings) {\r\n var s = settings.Settings.GetItemByValue('Key', key);\r\n if (s) {\r\n s.Value = value;\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.GetSiteRootPath = function (value) {\r\n return $filter(\"siteroot\")(value)\r\n }\r\n }\r\n\r\n function bizNotificationService($timeout, $mdToast) {\r\n this.AddInformationNotification = function (header, body, timeout) {\r\n var guid = randomString(5);\r\n var html = '
' + header + '
' + body + '
'\r\n var bizNotification = angular.element(document.querySelector('#bizNotification'));\r\n\r\n bizNotification.append(html);\r\n\r\n $timeout(function (id) {\r\n angular.element(document.querySelector('#' + id)).addClass('hide-notification');\r\n\r\n $timeout(function (elemId) {\r\n angular.element(document.querySelector('#' + elemId)).remove();\r\n }, 350, true, id);\r\n\r\n }, timeout || 10000, true, guid);\r\n }\r\n\r\n this.AddCustomNotification = function (content) {\r\n var template = '' + content + '';\r\n $mdToast.show({\r\n position: 'top center',\r\n parent: angular.element(document.body),\r\n hideDelay: 20000,\r\n template: template,\r\n autoWrap: true,\r\n controllerAs: 'vm',\r\n controller: function ($mdToast) {\r\n var vm = this;\r\n vm.close = function () {\r\n $mdToast.hide();\r\n }\r\n }\r\n });\r\n }\r\n\r\n function randomString(len) {\r\n charSet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\r\n var randomString = '';\r\n for (var i = 0; i < len; i++) {\r\n var randomPoz = Math.floor(Math.random() * charSet.length);\r\n randomString += charSet.substring(randomPoz, randomPoz + 1);\r\n }\r\n return randomString;\r\n }\r\n }\r\n\r\n function bizPushNotificationService($http, $mdToast) {\r\n var messaging;\r\n\r\n this.Initialize = function () {\r\n try {\r\n firebase.initializeApp(firebaseConfig);\r\n messaging = firebase.messaging();\r\n\r\n messaging.onMessage(function (payload) {\r\n console.log('PAYLOAD', payload);\r\n if (payload && payload.data && payload.data.show_on_site === \"True\") {\r\n ShowOnSite(payload);\r\n }\r\n });\r\n navigator.serviceWorker.register(siteRootPath + \"firebase-messaging-sw.js\")\r\n .then((registration) => {\r\n messaging.useServiceWorker(registration);\r\n Notification.requestPermission().then((permission) => {\r\n if (permission === 'granted') {\r\n console.log('Notification permission granted.');\r\n // TODO(developer): Retrieve an Instance ID token for use with FCM.\r\n // ...\r\n GetFCMToken();\r\n } else {\r\n console.log('Unable to get permission to notify.');\r\n }\r\n });\r\n });\r\n\r\n messaging.usePublicVapidKey(\"BJz2MR7KAppIhe0N3M4nX2VH6boXvxpXxdVcPUVDdSL8P7kGFe1s3pYNBhSol3SV22EOkDmbB7wa4uup0G2QUQE\");\r\n } catch (error) {\r\n console.log('ERROR INITIALIZING FIREBASE!');\r\n console.log(error);\r\n } \r\n };\r\n\r\n function ShowOnSite(payload) {\r\n var template = '' + payload.data.body + '';\r\n $mdToast.show({\r\n position: 'top center',\r\n parent: angular.element(document.body),\r\n hideDelay: 10000,\r\n template: template,\r\n autoWrap: true,\r\n controllerAs: 'vm',\r\n controller: function ($mdToast) {\r\n var vm = this;\r\n vm.close = function () {\r\n $mdToast.hide();\r\n }\r\n vm.click = function () {\r\n if (payload.data.click_action) {\r\n location.href = payload.data.click_action;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n function AddPushNotificationId (notificationId, type) {\r\n return $http.get(siteRootPath + \"api/PushNotification/AddPushNotificationId?\" + $.param({ id: notificationId,\r\n type: type || 1 }));\r\n };\r\n\r\n function ValidatePushNotificationId (notificationId) {\r\n return $http.get(siteRootPath + \"api/PushNotification/ValidatePushNotificationId?\" + $.param({id: notificationId}));\r\n };\r\n\r\n function GetFCMToken() {\r\n messaging.getToken().then((currentToken) => {\r\n if (currentToken) {\r\n console.log('Current token: ', currentToken)\r\n ValidatePushNotificationId(currentToken).then(function(valid) {\r\n if(!valid.data) {\r\n AddPushNotificationId(currentToken);\r\n }\r\n else {\r\n console.log('You are already registered with token: ', currentToken);\r\n }\r\n });\r\n\r\n } else {\r\n // Show permission request.\r\n console.log('No Instance ID token available. Request permission to generate one.');\r\n // Show permission UI.\r\n // updateUIForPushPermissionRequired();\r\n // setTokenSentToServer(false);\r\n }\r\n }).catch((err) => {\r\n console.log('An error occurred while retrieving token. ', err);\r\n //showToken('Error retrieving Instance ID token. ', err);\r\n //setTokenSentToServer(false);\r\n });\r\n }\r\n }\r\n})(window.angular);\r\n","\n(function (angular){angular.module('bizPartEngage').run(['$templateCache', function ($templateCache){\n 'use strict';\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Directives/Views/ActivityReminders.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Directives/Views/AdminBar.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Directives/Views/CookieSettings.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Directives/Views/CountdownTimer.html',\r\n \"
Start meeting
Cancel meeting
Reset

har startat mötet

.

Kvar

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Directives/Views/CultureSelector.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Directives/Views/DefaultLevelProgress.html',\r\n \"

{{vm.CurrentLevel.Name}}

0\\\">

{{vm.ExpLeftToNextLevel}} {{'CORE.EXPERIENCEPOINTSTO' | translate}} {{vm.NextLevel.Name}}

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Directives/Views/EngageJourney.html',\r\n \"

Remaining experience: {{::journey.RemainingExperience}}

Remaining virtual currency: {{::journey.RemainingVirtualCurrency}}


| {{::object.Name}}

Status:

Experience: {{::object.ExperienceGive}}

Virtual currency: {{::object.VirtualCurrencyGive}}

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Directives/Views/EngageProgress.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Directives/Views/EngageProgressBar.html',\r\n \"

{{vm.label}}  

97 ? 'calc(' + vm.progress + '% - 20px)' : vm.progress + '%') || 0)}\\\" show-profile-image=vm.showProfileImage>
{{vm.progress | number:0}}%
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Directives/Views/EngageProgressSettings.html',\r\n \"
Visa progress för valda ämnen
Visa progress för hela siten
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Directives/Views/EngageStackedObjects.html',\r\n \"
Del {{$index + 1}}

Del {{$index + 1}}

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Directives/Views/Favorite.html',\r\n \"
Spara favorit
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Directives/Views/FavoriteEditList.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Directives/Views/FavoriteList.html',\r\n \"
No favorites found!
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Directives/Views/Header.html',\r\n \"
Sök
Favoriter
1\\\" ng-class=\\\"{'expanded': vm.ShowCultures}\\\" biz-click-outside=\\\"vm.ShowCultures = false\\\" ng-click=\\\"vm.ShowCultures = !vm.ShowCultures\\\"> Select language {{$root.Cultures.GetItemByValue('Id', $root.LoggedInUser.CurrentCultureId).CultureCode.slice(-2)}}
0\\\" ng-click=\\\"vm.ShowLogin = !vm.ShowLogin\\\"> {{$root.LoggedInUser.FirstName}}
Logga in / Skapa användare
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Directives/Views/Leaderboard.html',\r\n \"

{{vm.header}}

{{user.Rank}} {{user.UserFirstName}} {{user.UserLastName}} {{user.DefaultExperiencePoints}}xp
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Directives/Views/MainMenu.html',\r\n \" \"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Directives/Views/MenuJourney.html',\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Directives/Views/MenuJourneyCollection.html',\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Directives/Views/MenuJourneyStatus.html',\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Directives/Views/MyNotes.html',\r\n \"
Du har inga goda nyheter
Mina goda nyheter!
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Directives/Views/MyNotesEditDialog.html',\r\n \"
Lägg till nyhet
Nyhet nummer 4 kommer då att försvinna.
Nej Ja

Nyhet: {{$index + 1}}

Färg
Bild
Lägg till bild

Ta bort bild
Avbryt Ok
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Directives/Views/MyText.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Directives/Views/MyTextEdit.html',\r\n \"
Text
Skicka
{{vm.Error}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Directives/Views/tip-someone.html',\r\n \"Bjud in någon!\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Directives/Views/Unsubscribe.html',\r\n \"

Select categories to unsubscribe from

{{cat.Name}}
Confirm
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Directives/Views/WelcomeGuideJourneySelector.html',\r\n \"
{{journey.Name}} {{journey.Description}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Themes/Login5050WithBgImages/Views/forgotpassword.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Themes/Login5050WithBgImages/Views/login.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Themes/LoginCenterWithBgImages/Views/forgotpassword.html',\r\n \"
Alla rättigheter förbehållna
Powered by
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Themes/LoginCenterWithBgImages/Views/login.html',\r\n \"
Alla rättigheter förbehållna
Powered by
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Views/completeregister.html',\r\n \"
Slutför konfigurationen av kontot
Skapa konto
Mailadress
{{vm.VerificationCodeSent ? 'Skicka en ny kod' : 'Verifiera mailadressen'}}
Mata in koden nedan som strax dyker upp i din mailkorg.
Verifieringskod
Förnamn som i passet
Mellannamn som i passet
Efternamn som i passet
Mobilnummer
Kön
{{gender.DisplayName}}
Välj lösenord
Bekräfta lösenord
Jag accepterar integritetspolicyn
Jag har tagit del av Integritetspolicy som beskriver hur X behandlar mina personuppgifter. För sådan behandling som kräver mitt samtyck, ger jag härmed mitt samtycke. Jag vet att jag kan återkalla mitt samtycker genom att kontackta X via de kontaktuppgifter som finns i integritetspolicyn.
Slutför
 Sparat
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Views/exthome.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Views/forgotpassword.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Views/login.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Views/logout.html',\r\n \"
Loggar ut
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Views/mycolleagues.html',\r\n \"

{{'GLOBAL.COLLEAGUES' | translate}}

0\\\" class=\\\"biz-tab sm biz-margin-right\\\" ng-class=\\\"{ 'active': !vm.Tab }\\\" ng-click=\\\"vm.Tab = 0; vm.ShowSpecificUnit = false;\\\"> {{'CORE.MAINUNIT' | translate}}
{{'CORE.MYUNIT' | translate}}
0 && !vm.ShowSpecificUnit\\\">

{{'CORE.SELECTUNIT' | translate}}

{{unit.Name || 'CORE.NOUNITNAME' | translate}}

{{vm.MyUnit.Name || 'CORE.NOUNITNAME' | translate}}

{{user.FirstName}} {{user.LastName}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Views/mycustomsettings.html',\r\n \"

Settings

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Views/myleaderboards.html',\r\n \"

0\\\" class=\\\"biz-tab sm biz-margin-right\\\" biz-phrase=CORE.MAINUNIT>
0\\\" class=\\\"biz-50 biz-flex column\\\">

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Views/mypage.html',\r\n \"

{{$root.LoggedInUser.FirstName}} {{$root.LoggedInUser.LastName}}

2444

COINS

{{($root.LoggedInUser.DefaultExperiencePoints > 0 ? $root.LoggedInUser.DefaultExperiencePoints : 0)}}

{{'GLOBAL.TOTALEXPERIENCE' | translate}}

{{vm.CertificationCount}}

CERTIFICATES

= 0\\\">{{vm.TotalEducationCount}}

= 0\\\">{{vm.BlogCount}}

= 0\\\">{{vm.VideoCount}}

= 0\\\">{{vm.QuizCount}}


{{'CORE.GAINMOREEXP' | translate}}
{{'CORE.LASTGAINEDEXP' | translate}}
0\\\">{{item.Currency}}c 0\\\">{{item.Exp}}p

{{'GLOBAL.NODATA' | translate}}

{{item.ExperiencePoints}} 0\\\"> ({{item.BonusExperiencePoints}})

{{'GLOBAL.NODATA' | translate}}


{{'CORE.NOTIFICATIONS' | translate}}
-
\\\"\\\" \\\"\\\"

{{'GLOBAL.NODATA' | translate}}


\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Views/mysecurity.html',\r\n \"

Security

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Views/mysettings.html',\r\n \"

Personuppgifter

{{(vm.User.Photo ? 'GLOBAL.CHANGEIMAGE' : 'GLOBAL.ADDIMAGE') | translate}}
0 && $root.MiniSettings.Profile.ShowUserType\\\">
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Views/notifications.html',\r\n \"
-
\\\"\\\" \\\"\\\"

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Views/privacypolicy.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Views/profile.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Views/register.html',\r\n \"
Skapa konto
Genom att skapa konto så får du tillgång till vår portal.
{{vm.Message}}
Jag accepterar integritetspolicyn
Jag har tagit del av Integritetspolicy som beskriver hur X behandlar mina personuppgifter. För sådan behandling som kräver mitt samtyck, ger jag härmed mitt samtycke. Jag vet att jag kan återkalla mitt samtycker genom att kontackta X via de kontaktuppgifter som finns i integritetspolicyn.
Skapa konto
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Views/showterms.html',\r\n \"

No terms were found

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Views/unsubscribe.html',\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Core/Views/welcome.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/Blog/Views/blog-list.html',\r\n \"

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/Blog/Views/index.html',\r\n \"
{{'GLOBAL.NODATA' | translate}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/Blog/Views/view.html',\r\n \"

0\\\" biz-background=\\\"{{::vm.SelectedItem.UserProfileImageUrl | siteroot}}\\\">
{{vm.GetDate(vm.SelectedItem.StartTimeUtc)}}

Mest gillade bloggar

Mest kommenterade

Relaterade Artiklar

Våra senaste inlägg

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/Campaign/Views/default.html',\r\n \"
1\\\" class=campaign-menu> {{page.Name}}

No campaign found

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/Certifications/Views/default.html',\r\n \"
{{cert.Name}}
{{cert.UserData.ProgressPercent}}% 0\\\" biz-excel-export=\\\"{{'Handlers/Core/Certifications/ShowCertificationHandler.ashx?cert=' + cert.UserData.UserCertId + '&auth=' + vm.AuthToken | siteroot}}\\\"> Ladda ner ditt certifikat!
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/Certifications/Views/new-certification-dialog.html',\r\n \"

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/Dictionary/Views/index.html',\r\n \"

{{letter}}

{{item.Word}}

{{item.Description}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/Education/Views/education-list.html',\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/Education/Views/educationslistdirective.html',\r\n \"
No educations found...
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/Education/Views/html5education.html',\r\n \"

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/Education/Views/index.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/Event/Views/index.html',\r\n \"
{{vm.Event.Name}}
{{vm.Event.Description}}
Time: {{vm.Event.StartDateTimeUtc | time}} - {{vm.Event.EndDateTimeUtc | time}}
Email:
Comment:
Full Book Cancel
0\\\"> External link: {{vm.Event.ExternalUrl}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/Forum/Views/index.html',\r\n \"

{{'FORUM.LIST' | translate}}

{{'FORUM.FORUM' | translate}} {{'FORUM.POSTS' | translate}} 0\\\"> {{'FORUM.UNREAD' | translate}}
0\\\" ng-bind=forum.UnreadPostCount>
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/Forum/Views/viewforum.html',\r\n \"

{{'FORUM.THREAD' | translate}} {{'FORUM.POSTS' | translate}} 0\\\"> {{'FORUM.UNREAD' | translate}}
{{'FORUM.STICKY_THREAD' | translate}} 0\\\" ng-bind=thread.UnreadPostCount>
{{'CORE.NO_ITEMS' | translate}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/Forum/Views/viewforumthread.html',\r\n \"

{{'FORUM.DELETE.POST' | translate}} {{'FORUM.EDIT.POST' | translate}} {{'FORUM.SAVE.POST' | translate}}
{{'CORE.NO_ITEMS' | translate}}
0\\\" class=forum-post>
{{'FORUM.POST_BTN' | translate}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/Journey/Views/index.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/MasterRun/Views/index.html',\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/Media/Views/index.html',\r\n \"
No items found...
1\\\"> -1\\\" ng-click=vm.ToggleMediaTypes(type.Id)>{{vm.GetFileTypeTranslations(type)}}

Senaste

Mest gillade

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/Media/Views/video-list.html',\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/Media/Views/viewfile.html',\r\n \"
Image
{{vm.MediaFile.Name}}
1\\\" class=tag-filetype>{{::vm.GetFileTypeTranslations(vm.MediaFileTypes.GetItemByValue('Id', vm.MediaFile.Type))}}
0\\\">
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/Media/Views/viewtags.html',\r\n \"
{{vm.SelectedTag.Name}}
Image
{{vm.SelectedFile.Name}}
100\\\" class=media-file-read-more-btn ng-click=\\\"vm.SelectedFile.Expanded = true;\\\"> Läs mer
{{vm.SelectedFile.Description}}
{{file.Name}}
{{file.Description}}
Läs mer.
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/Missions/Views/directives/bizMission.html',\r\n \"

{{vm.mission.Name}}

0\\\">{{vm.mission.ExperienceGive}}p
0\\\">{{vm.mission.CurrencyGive}}c

{{::vm.mission.Description}}

{{vm.DaysLeft}} {{'GLOBAL.TIME.DAYS' | translate}} {{vm.HoursLeft}} {{'GLOBAL.TIME.HOURS' | translate}} {{vm.MinutesLeft}} {{'GLOBAL.TIME.MINUTES' | translate}}

{{'MISSIONS.COMPLETED' | translate}} {{vm.CompletedPercentage}}%

0\\\">

= 100\\\">{{'MISSIONS.USERSCOMPLETEDYOUAND' | translate}} {{::vm.mission.UsersCompletedMission - 1}} {{'MISSIONS.USERSCOMPLETED' | translate}}

{{::vm.mission.UsersCompletedMission}} {{'MISSIONS.USERSCOMPLETED' | translate}}

{{'MISSIONS.SHOWUSERS' | translate}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/Missions/Views/directives/bizMissionList.html',\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/Missions/Views/directives/bizMissionRules/GenericTemplate.html',\r\n \"

{{rule.Name}}

{{rule.Description}}

{{rule.PercentageComplete}}%
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/Missions/Views/directives/bizMissionUser.html',\r\n \"
{{user.FirstName}}

{{user.FirstName}} {{user.LastName}}

{{'GLOBAL.EMAIL' | translate}}: {{user.Email}}

{{'GLOBAL.PHONE' | translate}}: {{user.Phone}}

{{'GLOBAL.CELLPHONE' | translate}}: {{user.Mobile}}

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/Missions/Views/users.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/Missions/Views/view.html',\r\n \"

{{'MISSIONS.RULES' | translate}}

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/Search/Views/index.html',\r\n \"

Sökresultat

Alla resultat {{index.SearchIndexExternalName}}
Your search for \\\"{{vm.SearchedQuery}}\\\" resulted in {{vm.ResultCount}} hits. hit.
Sortera resultat
Från A-Ö
Senaste
{{category.SearchIndexExternalName | uppercase}} ({{vm.ResultItems.GetItemByValue('Index', category.Index).TotalHits}})
{{item.ItemName}} {{vm.GetDate(item.UpdatedDate)}}
{{vm.GetItemPreview(item);}}...
vm.SearchIndexList.GetItemByValue('Index', category.Index).TotalHits\\\" ng-click=\\\"vm.SearchIndexList.GetItemByValue('Index', category.Index).TotalHits = vm.SearchIndexList.GetItemByValue('Index', category.Index).TotalHits + vm.HitsIncement; vm.Search();\\\">Visa mer
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/SpeedQuiz/Views/highscore.html',\r\n \"
{{vm.speedquizName}}
{{$index + 1}}.

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/SpeedQuiz/Views/list.html',\r\n \"

{{speedquiz.Name}}

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/SpeedQuiz/Views/play-react.html',\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/SpeedQuiz/Views/play.html',\r\n \"
{{'SPEEDQUIZ.LOADING_TEXT' | translate}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Modules/SpeedQuiz/Views/show.html',\r\n \"

SHOW SPEEDQUIZ

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Views/base.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Views/cleanbase.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Views/Dialogs/dialog-primary.html',\r\n \"

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Views/Dialogs/engagement-tip.html',\r\n \"

Bra jobbat!

Du klarade utbildningen: Cerebral pares och jag - Del 1

20

5

Här kommer några tips på vad du kan göra:

Motoriska interventioner och träning

Genomför utbildningen och tjäna mer erfarenheter och coins

Cp och jag quiz

Spela speedquiz spelet och tjäna mer erfarenheter och coins

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Views/Dialogs/welcome-guide.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Views/home.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Views/Modules/Blog/grid.html',\r\n \"

0\\\" biz-background=\\\"{{::vm.SelectedItem.UserProfileImageUrl | siteroot}}\\\">
{{::vm.GetDate(vm.SelectedItem.StartTimeUtc)}}

Våra senaste inlägg

0 && !vm.SelectedItem)\\\">{{vm.SelectedTag.Name}}

No news items found
Show more
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'FrontEnd/Views/noaccess.html',\r\n \"

No access

\"\r\n );\r\n}]);\n})(window.angular);\n(function (angular){angular.module('bizPartEngage').run(['$templateCache', function ($templateCache){\n 'use strict';\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Campaign/GUI/Modules/Views/User/EventsModule.html',\r\n \"
Select your city
{{event.Description}}
{{event.Location}}
{{event.DateStart | datetime}}
Organizer
{{event.OrganizerName}}
{{event.OrganizerEmail}}
{{event.OrganizerPhone}}
Co-Organizers
{{organizer.Name}} ({{organizer.Email}})
Comment
Register
Unregister
The maximum amount of people has registered for this event.
The latest registration date has passed for this event.
You have already registered for an event.
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/CMS/GUI/Modules/Product/Views/User/ProductMasterModule.html',\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/CMS/GUI/Modules/Product/Views/User/ProductSpecificationModule.html',\r\n \"
{{spec.ProductDetailType.Name}} {{spec.Value}}

{{spec.ProductDetailType.Name}} {{spec.Value}}
vm.module.Content.Limit && !vm.ShowMore\\\"> FLER SPECIFIKATIONER
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/CMS/GUI/Modules/Views/User/BlogListLargeModule.html',\r\n \"
{{::item.Title}}
Read more
0\\\">{{::item.TotalCoins}}c 0\\\">{{::item.TotalPoints}}p
#{{::tag.Name}}
{{::vm.GetPhrase('CONTAINER_CMS_LIKE_ARTICLE') || 'What do you think about the article?'}}
{{::item.UserFullName}}
{{::vm.GetDate(item.PublishedDate)}}
Answer the question Good job! Oops, you answered incorrectly!
{{::item.LinkedTrainingPoll.Question}}
0\\\">{{::item.LinkedTrainingPoll.CoinsToGive}}c 0\\\">{{::item.LinkedTrainingPoll.PointsToGive}}p
{{option.Text}} ({{item.LinkedTrainingPoll.Results.GetItemByValue('Id', option.Id).Votes}} votes)
Answer the question
{{::item.LinkedPoll.Question}}
0\\\">{{::item.LinkedPoll.CoinsToGive}}c 0\\\">{{::item.LinkedPoll.PointsToGive}}p
{{option.Text}} ({{item.LinkedPoll.Results.GetItemByValue('Id', option.Id).Votes}} votes)
Get educated
{{::item.LinkedUserEducation.Name}}
{{::item.LinkedUserEducation.Duration}}
0 || item.Repetition.Coins > 0\\\">
0 || item.LinkedUserEducation.FastCoins > 0\\\">{{::item.Repetition.Coins || item.LinkedUserEducation.FastCoins}}c 0 || item.LinkedUserEducation.FastPoints > 0\\\">{{::item.Repetition.Points || item.LinkedUserEducation.FastPoints}}p Extra points
{{::vm.GetTimeTo(item.LinkedUserEducation.FastPointsAndCoinsExpires)}}h remaining
0\\\"> {{::item.LinkedUserEducation.MaxCoins - item.LinkedUserEducation.UserReceivedCoins}}c 0\\\"> {{::item.LinkedUserEducation.MaxPoints - item.LinkedUserEducation.UserReceivedPoints}}p
i
{{item.LinkedUserEducation.Description}}
No news items found
Get more news items
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/CMS/GUI/Modules/Views/User/BlogListModule.html',\r\n \"
0 || entry.TotalPoints > 0)\\\"> 0\\\"> {{entry.TotalCoins}}c 0\\\"> {{entry.TotalPoints}}p
{{::entry.Title}}
{{::entry.Title}}
0\\\"> {{entry.TotalCoins}}c 0\\\"> {{entry.TotalPoints}}p
{{vm.GetBlogTranslation(entry)}}
{{vm.GetBlogTranslation(entry)}}
{{entry.ContentStrippedHtml}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/CMS/GUI/Modules/Views/User/CertificationsModule.html',\r\n \"
{{'' | phrase:\\\"CERTIFICATIONS_RELEASE_DATE\\\":\\\"#DATE#\\\":certificate.PublishedDate}}
%
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/CMS/GUI/Modules/Views/User/CombinationModule.html',\r\n \"

{{vm.module.Content.Header}}

{{vm.module.Content.Header}}

{{::vm.GetVideoDuration(vm.VideoDuration)}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/CMS/GUI/Modules/Views/User/CountdownModule.html',\r\n \"
{{vm.DaysLeft}}
DAYS
{{vm.HoursLeft}}
HOURS
{{vm.MinutesLeft}}
MINUTES
{{vm.SecondsLeft}}
SECONDS
{{vm.module.Content.TextToShow}}

Go to: {{vm.module.Content.LinkToShow}}

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/CMS/GUI/Modules/Views/User/EducationsModule.html',\r\n \"

{{edu.Name}}

{{edu.Duration}}
{{vm.PrintAcceptedStatus(edu)}}
0 || edu.ExtraPoints > 0\\\" class=fastWrapper> 0\\\">{{edu.ExtraCoins}}c 0\\\">{{edu.ExtraPoints}}p Extra points {{vm.PrintFastExpireDate(edu);}}
0\\\">{{edu.MaxCoins}}c 0\\\">{{edu.MaxPoints}}p 0\\\" ng-src=\\\"{{edu.ImageUrls[0] | siteroot}}\\\">
i
{{edu.Name}}

{{edu.Description}}

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/CMS/GUI/Modules/Views/User/EventListModule.html',\r\n \"
{{vm.GetDayAndMonth(event.StartDateTimeUtc).Day}}
{{vm.GetDayAndMonth(event.StartDateTimeUtc).Month}}
{{event.Name}}
0\\\">{{event.Description}}
0\\\">{{event.ShortDescription}}
Time: {{event.StartDateTimeUtc | time}} - {{event.EndDateTimeUtc | time}}
Full Book Cancel
0\\\"> External link: {{event.ExternalUrl}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/CMS/GUI/Modules/Views/User/EventListModuleParticipationDialog.html',\r\n \"

Event participation: {{vm.Event.Name}}

Attend to this event: {{vm.Event.Name}} Cancel your attendance

When you click SEND we will send you a confirmationlink by email that you have to click to fullfill your booking.

If you would like to cancel your attendance you have to enter the same email address you used in the booking process.

Email:
Comment:
Send Cancel
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/CMS/GUI/Modules/Views/User/ForumListModule.html',\r\n \"

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/CMS/GUI/Modules/Views/User/GoogleAnalyticsModule.html',\r\n \"

Google analytics proof of concept

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/CMS/GUI/Modules/Views/User/HighscoreMasterModule.html',\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/CMS/GUI/Modules/Views/User/HighscoreModule.html',\r\n \"
{{vm.module.Content.Label}}
{{score.Rank}}
{{score.User.FirstName | htmldecode}} {{score.User.LastName | htmldecode}}
{{score.Points}}p
No data found
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/CMS/GUI/Modules/Views/User/Html5EducationsModule.html',\r\n \"

Våra utbildningar

Ladda in fler utbildningar  

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/CMS/GUI/Modules/Views/User/LinkList.html',\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/CMS/GUI/Modules/Views/User/MediaListModule-old.html',\r\n \" \"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/CMS/GUI/Modules/Views/User/MediaListModule.html',\r\n \"

Våra filmer

Ladda in fler filmer  

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/CMS/GUI/Modules/Views/User/MiniJourneyModule.html',\r\n \"
N/A
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/CMS/GUI/Modules/Views/User/MyCertificationsModule.html',\r\n \"

{{vm.CurrentTab.GetPhrase('BIZMYEDUCATIONSBYCERTS_HEADER') || 'Certifieringar'}}

{{vm.CurrentTab.GetPhrase('BIZMYEDUCATIONSBYCERTS_INTRODUCTIONS_FIRST')}}

{{vm.CurrentTab.GetPhrase('BIZMYEDUCATIONSBYCERTS_INTRODUCTIONS_SECOND')}}

{{vm.CurrentTab.GetPhrase('BIZMYCERTIFICATIONS_WATCH_VIDEO')}}
0\\\">

{{vm.CurrentTab.GetPhrase('BIZMYEDUCATIONSBYCERTS_CERTIFICATION_LBL') || \\\"Certifiering\\\" }} {{dep.Name}}

0\\\">{{vm.GetDepartmentCoins(dep, vm.CertificationList)}} c 0\\\">{{vm.GetDepartmentPoints(dep, vm.CertificationList)}} p
0\\\">

{{cert.Name}}

0\\\" class=cert-permission-department> {{cert.PermissionDepartments[0].Name}}
{{cert.UserData.ProgressPercent}} %
{{cert.Description}}
TILL SHOPPEN
Grattis! Du har l�st upp en ny produkt i shoppen.
Du har l�st upp denna produkten genom ett annat certifikat.
KR�VER CERT.
{{::vm.CurrentTab.GetPhrase(\\\"BIZMYEDUCATIONSBYCATEGORY_FINISH_CERT\\\").replace(\\\"#CERTIFICATE#\\\", cert.Name)}}
Show all
0\\\" class=cert-description> {{cert.Description}}

{{edu.Name}}

{{vm.PrintAcceptedStatus(edu)}}
0\\\">{{reward.Coins}}c 0\\\">{{reward.Points}}p
0 || edu.FastPoints > 0 || edu.ExtraRewards.length > 0\\\" class=fastWrapper> 0\\\">{{edu.FastCoins}}c 0\\\">{{edu.FastPoints}}p {{vm.CurrentTab.GetPhrase('BIZMYEDUCATIONSBYCATEGORY_LBLEXTRAPOINTS')}}
{{vm.CurrentTab.GetPhrase('BIZMYEDUCATIONSBYCATEGORY_LBLAPPROVED')}} 0\\\">{{edu.MaxCoins}}c 0\\\">{{edu.MaxPoints}}p
{{edu.Duration}}
i
{{edu.Description}}
0\\\">
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/CMS/GUI/Modules/Views/User/MyEducationsByCategoryModule.html',\r\n \"
Inga utbildningar hittades.

{{educationCategory.Name}}

{{edu.Name}}

{{edu.Object.Duration}}
Godk�nd
0 || edu.ExtraPoints > 0\\\" class=fastWrapper> -1\\\" ng-show=\\\"edu.Object.ExtraCoins > 0\\\">{{edu.Object.ExtraCoins}}c 0\\\">{{edu.Object.ExtraPoints}}p
{{vm.PrintFastExpireDate(edu.Object);}}
{{vm.PrintStatusText(edu.Object.UserStatus)}} Repetera
0\\\">{{edu.Object.MaxCoins}}c 0\\\">{{edu.Object.MaxPoints}}p
0\\\" ng-src=\\\"{{edu.Object.ImageUrls[0] | siteroot}}\\\">
i
{{edu.Object.Description}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/CMS/GUI/Modules/Views/User/MyEducationsCompletedModule.html',\r\n \"
{{vm.Certifications}}
{{vm.GetPhrase('BIZMYEDUCATIONSCOMPLETED_CERTIFICATE') || 'Certificates'}}
{{vm.CertificationEducations}}
{{vm.GetPhrase('BIZMYEDUCATIONSCOMPLETED_CERTIFICATEEDUCATIONS') || 'Certificate educations'}}
{{vm.Educations}}
Base educations
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/CMS/GUI/Modules/Views/User/MyEducationsMiniListModule.html',\r\n \"

Rekommenderas f�r dig

{{edu.Name}}
0\\\">{{edu.ExtraCoins}}c 0\\\">{{edu.ExtraPoints}}p 0\\\">{{edu.MaxCoins}}c 0\\\">{{edu.MaxPoints}}p

Repetera

{{edu.Name}}
0\\\">{{edu.ExtraCoins}}c 0\\\">{{edu.ExtraPoints}}p 0\\\">{{edu.RemainingCoins}}c 0\\\">{{edu.RemainingPoints}}p
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/CMS/GUI/Modules/Views/User/ProgressModule.html',\r\n \"
{{vm.module.Content.HeaderText}}
{{point.Comment}}
{{point.AddedPoints}} p
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/CMS/GUI/Modules/Views/User/ShopModuleModule.html',\r\n \"
Du har {{vm.Currency}} coins kvar att handla för
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/CMS/GUI/Modules/Views/User/SuggestionsModule.html',\r\n \" \"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/CMS/GUI/Modules/Views/User/TagFilterModule.html',\r\n \"
{{vm.module.Content.Label}} / Tags / #{{vm.SelectedTag.Name}}
#{{vm.SelectedTag.Name}}
Select a tag
0\\\"> {{::tag.Name}} {{::tag.Occurence}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Core/GUI/Modules/Views/User/AutomaticProductSaleModule.html',\r\n \"

{{sale.DiscountVoucherWidgetText}}

{{sale.Name}}
{{sale.Price}}c
{{sale.DiscountVoucherPrice}}c
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Core/GUI/Modules/Views/User/ButtonModule.html',\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Core/GUI/Modules/Views/User/EffectsModule.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Core/GUI/Modules/Views/User/FavoriteModule.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Core/GUI/Modules/Views/User/FormModule.html',\r\n \"
Missed submission on {{vm.Form.MissingSubmissionDatesUtc[0] | date:'YYYY-MM-DD'}}, submit that first
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Core/GUI/Modules/Views/User/hotspotdialog.tmpl.html',\r\n \"

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Core/GUI/Modules/Views/User/IFrameModule.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Core/GUI/Modules/Views/User/ImageHotspotsModule.html',\r\n \"
{{vm.CurrentSelectedHotspot.Name}} {{vm.CurrentSelectedHotspot.Description}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Core/GUI/Modules/Views/User/ImageModule.html',\r\n \"
{{vm.module.Content.ImageAlt}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Core/GUI/Modules/Views/User/ImageTextModule.html',\r\n \"
{{vm.module.Content.ImageAlt}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Core/GUI/Modules/Views/User/JourneyModule.html',\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Core/GUI/Modules/Views/User/LikeActionsModule.html',\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Core/GUI/Modules/Views/User/MissionsModule.html',\r\n \"
0\\\">{{vm.Mission.ExperienceGive}}p
0\\\">{{vm.Mission.CurrencyGive}}c

{{vm.Mission.Name}}

Days {{vm.Mission.DaysLeft}} - Hours {{vm.Mission.HoursLeft}} - Minutes {{vm.Mission.MinutesLeft}}

Completed {{vm.Mission.CompletedPercentage}}%

{{::vm.Mission.Description}}

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Core/GUI/Modules/Views/User/NavigationModule.html',\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Core/GUI/Modules/Views/User/PaintModule.html',\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Core/GUI/Modules/Views/User/QuestionModule.html',\r\n \"

{{vm.module.Content.QuestionTitle}}

{{::poll.Text}}

{{alt.Text}} ({{alt.SubmitCount}} votes)
Svara
Svara
There are no questions to answer
You answered the question!
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Core/GUI/Modules/Views/User/SegmentModule.html',\r\n \"

Locked content

Läs mer Visa mindre
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Core/GUI/Modules/Views/User/SlideshowModule.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Core/GUI/Modules/Views/User/SocialShareModule.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Core/GUI/Modules/Views/User/SpeedquizHighscoreModule.html',\r\n \"
{{type.Name}}
No quizes found
{{quiz.Name}}
{{quiz.ObjectName}}
Show highscore
1\\\"> {{quiz.Name}}
{{quiz.ObjectName}}
  1. {{::($index + 1) > 9 ? \\\"\\\" + ($index + 1) : \\\"0\\\" + ($index + 1)}} {{::score.FirstName}} {{::score.LastName}} {{::score.Score}}p
vm.Limit\\\" ng-click=\\\"vm.Limit = vm.Limit + 20\\\"> Show more
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Core/GUI/Modules/Views/User/SpeedquizModule.html',\r\n \"
{{speedquiz.Name}}
{{vm.module.Content.ButtonText || 'Spela'}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Core/GUI/Modules/Views/User/SpeedquizPlay.html',\r\n \"
{{Game.Score}}p
{{Game.Name}}

{{Question.Name}}

{{option.Text}}

0\\\" class=correct> {{CurrentTab.GetPhrase(\\\"SPEEDQUIZ_CORRECT\\\") || \\\"Correct\\\"}}! + {{AddedScore}} {{CurrentTab.GetPhrase(\\\"SPEEDQUIZ_WRONG\\\") || \\\"That was wrong\\\"}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Core/GUI/Modules/Views/User/TextModule.html',\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Core/GUI/Modules/Views/User/VideoModule.html',\r\n \"
{{vm.module.Content.Header}}
{{vm.module.Content.DescriptionHeader}}
{{vm.module.Content.Description}}
0 && (vm.CoinsUser == true) && !vm.module.HasFinishedBefore\\\">{{::vm.module.Settings.CoinsGain}}c 0 && !vm.module.HasFinishedBefore\\\">{{::vm.module.Settings.PointsGain}}p
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Layout/GUI/Modules/Views/User/ChangePasswordModule.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Layout/GUI/Modules/Views/User/CookieButtonModule.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Layout/GUI/Modules/Views/User/FavoriteEditModule.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/Layout/GUI/Modules/Views/User/WelcomeGuideButtonModule.html',\r\n \"
0}\\\">
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/OnlineEducation/GUI/Modules/Views/User/EducationSummaryModule.html',\r\n \"
Well done, everything is done
You finished the education unsuccessfully What did I miss?
{{vm.GetFinishedCount(segment.Modules)}}/{{segment.Modules.length}}
{{module.Name}}
0\\\">
Functions outside of segment
{{vm.GetFinishedCount(vm.ModulesOutsideSegments)}}/{{vm.ModulesOutsideSegments.length}}
{{module.Name}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/OnlineEducation/GUI/Modules/Views/User/EvaluationModule.html',\r\n \"
Start test
1\\\" ng-click=vm.SlickSettings.method.slickNext() ng-style=\\\"::{'background-color': vm.module.Content.ButtonColor, 'border-color': vm.module.Content.ButtonColor, 'color': vm.module.Content.ButtonTextColor}\\\" biz-phrase=ONLINEEDUCATION_EVALUATION_START>Start test
1\\\" ng-click=vm.SlickSettings.method.slickGoTo(vm.StartIndex) ng-style=\\\"::{'background-color': vm.module.Content.ButtonColor, 'border-color': vm.module.Content.ButtonColor, 'color': vm.module.Content.ButtonTextColor}\\\" biz-phrase=ONLINEEDUCATION_EVALUATION_CONTINUE>Continue
Question /
0}\\\" ng-click=\\\"vm.SelectOption(question, option, $parent.$last)\\\">
1\\\" ng-click=vm.Retry() ng-style=\\\"::{'border-color': vm.module.Content.TestTextColor}\\\" biz-phrase=ONLINEEDUCATION_EVALUATION_RETRY>Retry
You answered {{vm.Correct}}/{{vm.Questions.length}} questions correctly and have completed the test! questions correctly, which is not enough to pass the test.
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/OnlineEducation/GUI/Modules/Views/User/QuestionsMasterModule.html',\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/OnlineEducation/GUI/Modules/Views/User/QuestionsModule.html',\r\n \"
{{question.QuestionText}}
-1, 'option-button': question.QuestionType != 3, 'correct': question.Answered && option.Value > 0}\\\" ng-click=\\\"vm.SelectOption(option, question)\\\" ng-repeat=\\\"option in question.Options\\\" class=option ng-style=\\\"{'background-color': vm.module.Content.ButtonColor, 'color': vm.module.Content.ButtonTextColor}\\\">
{{option.OptionText}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/OnlineEducation/GUI/Modules/Views/User/TextInputModule.html',\r\n \"
{{vm.module.Content.Question}}
{{vm.module.Content.Button.ButtonText}}
{{vm.module.Content.TextAfter}}
{{vm.module.Content.Answer}} {{vm.Answer}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/TermsAndConditions/GUI/Modules/Views/User/GenericSendSignupModule.html',\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Modules/BizPart.BizContainer/TermsAndConditions/GUI/Modules/Views/User/SignatureModule.html',\r\n \"
{{::vm.module.Content.SignatureText}}
Signature
\"\r\n );\r\n}]);\n})(window.angular);\n(function (angular){angular.module('bizPartEngage').run(['$templateCache', function ($templateCache){\n 'use strict';\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizComments/bizcomment.html',\r\n \"
0\\\" biz-background=\\\"{{comment.AuthorPhoto | siteroot}}\\\">
{{comment.AuthorName}} {{comment.Date | datetime}} Reply

{{comment.Comment}}

This comment has been removed

0\\\">
Comment
0\\\" ng-repeat=\\\"comment in vm.Comments | filter: {ParentId: comment.Id} | orderBy:'-Date'\\\" class=comment layout=row ng-include=\\\"'js/AngularModules/BizComments/bizcomment.html' | siteroot\\\">
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizComments/bizcomments.html',\r\n \"

Comments ({{vm.Comments.length}})

0\\\" ng-click=\\\"vm.ShowComment = !vm.ShowComment\\\">

Comment

0\\\">
Comment
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizDotMenu/template.html',\r\n \"
  • {{vm.GetPhrase('BIZDOTMENU_COPY') || 'Kopiera länk'}} {{vm.GetPhrase('BIZDOTMENU_COPIED') || 'Länk kopierad'}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizFormly/bizformedit.html',\r\n \"
Settings
Form name This is the name used to identify this form. It will be shown in stats and admin pages wherever forms are listed or displayed. It will not be displayed outwardly to users.
Start
Expires
Form type
Effect on submit
Send \\\"thank you\\\" email
No email fields added. Please add a field and set the data type to Email under Advanced field options > Data type
There is one field marked as data type Email. This field will be used to determine the address to send the thank you email to.
There are multiple fields marked as data type Email. The first of these fields will be used to determine the address to send the thank you email to.

Allow multiple submissions from same user
Require submissions for each day logged in Max one submission per day


{{vm.Form.Plugin.FieldsName || 'Fields' }}

No {{vm.Form.Plugin.FieldsName || 'fields' | lowercase}} added

Add {{vm.Form.Plugin.FieldName || 'field' | lowercase}}
{{vm.Form.Plugin.FieldName || 'Field'}} Group Actions
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizFormly/bizformfieldedit.html',\r\n \"       Edit Delete \"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizFormly/bizformfieldeditdialog.html',\r\n \"

{{vm.Form.Plugin.FieldName || 'Field'}} settings

Type The type of the field. Changing this will reset some field configurations, such as options
Group
Wizard step
Text
Placeholder
Width (desktop)
Mandatory
{{setting.Name}}
{{::value.Name}}
Data type
Field value listeners Listen to value changes in other fields and perform actions when a certain value has been set. An example of usage is showing this field when another field (like a checkbox) has had its value set to \\\"true\\\".
Field Value Action
Delete
Add listener

Options

 

No options added

Edit Delete
Text
Correct
Preselected Disabled
Description
Image
Add option
OK
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizFormly/bizformshow.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizFormly/bizformwizard.html',\r\n \"
= (vm.Form.WizardSteps | filter:{'Hidden':false}).length - 1\\\" ng-click=\\\"vm.GoToWizardStep(vm.CurrentWizardStep + 1)\\\" class=biz-btn> Gå till steg {{vm.CurrentWizardStep + 2}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizFormly/bizformwizardstepedit.html',\r\n \"

Wizard steps

No wizard steps added

Add wizard step
Step Actions
      Edit Delete
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizFormly/Fields/checkbox.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizFormly/Fields/checkboxlist.html',\r\n \"
{{option.Name}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizFormly/Fields/fileupload.html',\r\n \" NOT IMPLEMENTED YET!\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizFormly/Fields/input.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizFormly/Fields/phonecountrycode.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizFormly/Fields/radiobuttonlist.html',\r\n \"
{{option.Name}}
{{option.Description}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizFormly/Fields/recaptcha.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizFormly/Fields/slider.html',\r\n \"
{{to.label}} {{model[options.key]}} {{to.unit}} eller fler eller färre
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizFormly/Fields/textarea.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizFormly/Fields/video.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizGauge/bizGauge.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizGenericTag/bizgenerictag.html',\r\n \"
Tags
Add Tag

No tags added

Added tags
{{tag.Name}}
{{vm.GetTagName(tagId)}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizLike/template.html',\r\n \"
{{vm.Item.Likes}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizMediabank/views/audio.html',\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizMediabank/views/button.html',\r\n \"
Change
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizMediabank/views/document.html',\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizMediabank/views/documentlink.html',\r\n \"{{vm.File.Name}}\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizMediabank/views/download.html',\r\n \"
0\\\">
-1\\\" ng-click=vm.ToggleMediaBankUploadLocation(uploadLocation)>{{ uploadLocation.Name }}
0\\\" class=noFiles> There are no files of the current file type or with the selected search conditions.
{{ file.Name }}
Cancel OK
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizMediabank/views/link.html',\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizMediabank/views/Mediabank.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizMediabank/views/upload.html',\r\n \"
Drag a file or click here to upload
Allowed types: {{vm.AllowedFileTypes}}
File: {{vm.File[0].name}}
Size: {{vm.File[0].size / 1024 | number:0}} kB
File name
File Description

Add
0\\\">
Added tags
{{tag.Name | htmldecode}}
Upload as private file Upload as invisible file Skip resize
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizMediabank/views/video.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizMediabank/views/VideoPlayerContainer.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/bindCategory.html',\r\n \"
Edit
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/bindCategoryEdit.html',\r\n \"

Select items to show on page

{{tag.Name}}
Save Close
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/bizBlogSearch.html',\r\n \"
No fields found
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/bizChangeMyDepartment.html',\r\n \"

Change department to see more content!

{{department.Name}}
Save\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/bizchart.html',\r\n \"
No data found
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/bizChat.html',\r\n \"
{{::CurrentTab.GetPhrase(\\\"BIZCHAT_CHATROOMLIST_HEADER\\\");}}
  • {{ room.ExternalName }}
{{ GetTopic() }}
{{::CurrentTab.GetPhrase(\\\"BIZCHAT_USERSONLINE\\\");}}: {{usersOnline}}
{{$scope.chat}}
  • {{item.UserName}}
  • {{ smsg.Msg }}
0 || ChatClientInfo.Alias\\\">
{{::CurrentTab.GetPhrase('BIZCHAT_CHAT_SENDMSG_BTN');}}
Set alias
{{::CurrentTab.GetPhrase('BIZCHAT_CHAT_LEAVE_CHAT_BTN');}}
0 && ShowUsersOnline\\\">
{{::CurrentTab.GetPhrase('BIZCHAT_USERLIST_HEADER');}}
  • {{ user.Alias }} {{::CurrentTab.GetPhrase('BIZCHAT_USERTYPE_ADMIN');}} {{::CurrentTab.GetPhrase('BIZCHAT_USERTYPE_OP');}}
0 && (UserState.IsAdmin || UserState.IsOp)\\\">
{{::CurrentTab.GetPhrase('BIZCHAT_BANUSERLIST_HEADER');}}
  • {{ ue.Alias }} {{::CurrentTab.GetPhrase('BIZCHAT_EVENTTYPE_BANNED');}} {{::CurrentTab.GetPhrase('BIZCHAT_EVENTTYPE_MUTED');}} {{::CurrentTab.GetPhrase('BIZCHAT_BANTYPE_GLOBAL');}} 0\\\">{{::CurrentTab.GetPhrase('BIZCHAT_BANTYPE_LOCAL');}} {{ ue.ChatRoomInternalName }} {{::CurrentTab.GetPhrase('BIZCHAT_EVENTTYPE_REASON');}}: {{ ue.Comment }}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/bizCodeEditorDialog.html',\r\n \"

Source code

Cancel Save
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/bizContainerModulesList.html',\r\n \"
Activate Container modules
Save
-1\\\" ng-click=vm.ToggleModules(mod)>{{mod.Name}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/bizCopyUrl.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/bizCurrency.html',\r\n \" 0\\\" class=\\\"biz-round-info coins\\\"> {{vm.currency}}c \"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/bizExperiencePoints.html',\r\n \" 0\\\" class=\\\"biz-round-info points\\\"> {{vm.points}}xp \"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/bizItemNotFound.html',\r\n \"
Woops, item not found...
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/bizItemType.html',\r\n \"
0\\\" ng-bind=vm.OverrideName> Artikel Utbildning Video Engage object
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/bizJourney.html',\r\n \"

{{\\\"JOURNEY.DESCRIPTION_1\\\" | translate}}

{{\\\"JOURNEY.DESCRIPTION_2\\\" | translate}}

Carousel
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/bizJourneyGridSlick.html',\r\n \"

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/bizJourneyNextOrPrev.html',\r\n \"
0\\\" id=bizjourneybuttons>
Prev
Next Next journey
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/bizJourneyShowOne.html',\r\n \"
{{vm.journeyToShow.Name}}

{{item.Index}}
Bra jobbat!

Du har klarat av allt i den h�r resan.

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/bizJourneyShowOneCarousel.html',\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/bizJourneyShowOneGrid.html',\r\n \"

({{(vm.Blogs | filter:{'Status': 3}).length}}/{{vm.Blogs.length}})

({{(vm.OnlineEducations | filter:{'Status': 3}).length}}/{{vm.OnlineEducations.length}})

({{(vm.Videos | filter:{'Status': 3}).length}}/{{vm.Videos.length}})

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/bizLikeActions.html',\r\n \"

Vad tyckte du?

1 && action.Action.Value <= vm.item.AverageLikeValue)\\r\" +\r\n \"\\n\" +\r\n \" || (vm.item.LikeActions.length === 1 && vm.item.LikeActions[0].LikeActionPerformedByUser)}\\\" class=\\\"like-action-icon fa {{action.Action.Icon}}\\\" ng-disabled=vm.HasUserLiked ng-click=\\\"vm.PerformLikeAction(vm.item, action)\\\">
0\\\" ng-click=\\\"vm.ShowCommentInput = !vm.ShowCommentInput;\\\" biz-phrase=LIKE.COMMENT_HEADER>Hjälp oss bli bättre - vad tycker du vi skulle haft med?
Send

Tack för din input!

1 && action.Action.Value <= vm.item.AverageLikeValue)\\r\" +\r\n \"\\n\" +\r\n \" || (vm.item.LikeActions.length === 1 && action.LikeActionPerformedByUser)}\\\" class=\\\"fa {{action.Action.Icon}}\\\">
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/bizLikeView.html',\r\n \"
1 && action.Action.Value <= vm.item.AverageLikeValue)\\r\" +\r\n \"\\n\" +\r\n \" || (vm.item.LikeActions.length === 1 && action.LikeActionPerformedByUser)}\\\" class=\\\"fa {{action.Action.Icon}}\\\">
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/bizMediaSwapper.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/bizNewsletterSignup.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/bizPhoneCountryCode.html',\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/bizQuotes.html',\r\n \"

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/bizTagView.html',\r\n \"
0 && ($root.HideFavoritesForUser && $root.HideFavoritesForUser !== true)\\\"> Tags: #{{::tag.Name}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/bizUnitLogo.html',\r\n \"{{vm.logoAlt}}\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/login.html',\r\n \" \"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/save-btn.html',\r\n \" {{vm.saveText || 'Save'}} {{vm.savingText || 'Saving...'}} {{vm.savedText || 'Saved'}} {{vm.errorText || 'Error'}} \"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPart/views/tagcloud-clean.html',\r\n \"
1\\\">
Filter
{{::tag.Name}} ({{::tag.Occurrence}})
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPermissions/itemobjectlist.html',\r\n \"
This item cannot be accessed by anyone
+
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizPermissions/itemtemplate.html',\r\n \"
Permissions
Public If public is active, other permissions have no effect.
OR
1\\\" class=\\\"form-control margin-top\\\" items=vm.bizItemPermissionCache[vm.accessModuleKey].Cultures selected-item=vm.SelectedCulture no-select-text=\\\"-- Cultures --\\\" disabled=vm.IsPublic disable-default-select=true>

You can use a specific ip address ex: 192.168.0.1

You can use ip range ex: 192.168.0.1 - 192.168.0.100

You can use CIDR range ex: 192.168.0.0/24

CIDR table:

CIDR

Mask

Addresses

/20

255.255.240.0

4K

/21

255.255.248.0

2K

/22

255.255.252.0

1K

/23

255.255.254.0

512

/24

255.255.255.0

256

Example: 10.0.1.0/24 will give permission to the addresses in the range: 10.0.1.1 - 10.0.1.255

Add Permission

No specific permissions added

Area Unit 1\\\">Culture Department Role Ip restriction
{{::vm.bizItemPermissionCache[vm.accessModuleKey].Areas.GetItemByValue('Id', permission.AreaId).Name}} {{::vm.bizItemPermissionCache[vm.accessModuleKey].Units.GetItemByValue('Id', permission.UnitId).Name}} 1\\\">{{::vm.bizItemPermissionCache[vm.accessModuleKey].Cultures.GetItemByValue('Id', permission.CultureId).Name}} {{::vm.bizItemPermissionCache[vm.accessModuleKey].Departments.GetItemByValue('Id', permission.UserDepartmentId).SystemName}} {{::vm.bizItemPermissionCache[vm.accessModuleKey].Roles.GetItemByValue('Id', permission.RoleId).Name}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizSelect/bizselect.html',\r\n \"
{{selectedItem[Key]}}
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizTerms/bizTerms.html',\r\n \" \"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizTerms/bizTermsShow.html',\r\n \"


\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizTerms/bizTermsStatus.html',\r\n \"
Accepted terms
Show terms
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizTerms/bizTermsStatusShow.html',\r\n \"


Close
\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizUnlockable/bizunlockable.html',\r\n \"
Add group Save

{{vm.GetTranslation(group, vm.TranslateTypes.Name).Value || 'Group ' + (vm.KeyGroups.length - $index)}}
Delete

Mediabank Upload

Name Type
{{::vm.GetUnlockableKeyName(unlockable)}} {{::vm.KeyTypes.GetItemByValue('Value', unlockable.KeyObjectType).Name}} Delete

AND

OR

\"\r\n );\r\n\r\n\r\n $templateCache.put(siteRootPath + 'Js/AngularModules/BizUserSelection/template.html',\r\n \"
{{user.FirstName}} {{user.LastName}}
\"\r\n );\r\n}]);\n})(window.angular);","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n"],"names":["angular","completeRegister","$rootScope","$scope","$stateParams","completeRegisterService","$translate","$timeout","$filter","$sce","userService","vm","this","CompleteRegistrationGuid","guid","Unauthorized","MobilePattern","GetUser","GetUserByActionGuid","then","response","result","BizPartCoreHelpers","getResponseValue","User","FormSettings","Settings","console","log","Initialized","status","UnauthorizedMessage","CompleteRegistration","password","gender","GetGender","passwordValid","AllowSetPassword","GetPassword","MyForm","$valid","Submitting","Submitted","ShowValidation","Gender","ExtCustomFieldValues","VerificationCode","Success","SuccessMessage","trustAsHtml","Message","redirectUrl","ExtraInfo","RedirectUrl","startsWith","toLowerCase","indexOf","setSessionStorage","RedirectTimeout","location","href","InternalError","GenderClick","i","Genders","length","checked","SystemName","IsMobileValid","Mobile","test","LoadTranslations","translations","msg","toString","mail","ErrorMessage","replace","IsPasswordSecure","Password","RepeatPassword","IsEmailValid","Email","EmailPattern","SendVerificationCode","SendVerificationCodeError","VerificationCodeSent","ShowEmailInvalid","PasswordRegex","$onInit","GetGenders","GetGuidInfo","Type","CreateUserForUnit","AllowEmailDomains","regexDomains","join","RegExp","$on","cancel","window","module","controller","$inject","extHome","$window","width","screen","css","height","top","left","boxShadow","borderRadius","e","data","showWelcomeGuide","parent","postMessage","show","dimBackground","showData","forgotpasswordController","forgotpasswordService","$mdDialog","bizValidationService","$mdToast","bizCoreService","IsIframed","mode","SendForgotPasswordWithEmail","SendPasswordRecoveryEmail","translation","ErrorObject","Object","ShowLogin","$broadcast","Portal","BackgroundImage","IsImagesInitialized","search","GetBackgroundImage","HasAcceptedCookies","getLocalStorage","changepasswordController","$state","Guid","PasswordWasUpdated","IsGuidValid","UpdatePassword","MyForm2","Init","IsResetPasswordGuidValid","loginController","loginService","bizLoaderService","IsInitialized","REMEMBER_ME_VAL_KEY","LoginError","RememberMe","OpenLoginActive","ShowLogo","MiniSettings","Login","ShowPortalName","ActivateAccountInit","ActivateAccountGuid","PhraseSuffix","phraseSuffix","UserName","trim","RequestFullPageLoader","SetRememberMeData","deleteLocalStorage","Token","deleteStorage","setBizPartAuthToken","Id","siteRootPath","HasAdminAccess","LoginAdminUrl","initialUrl","RequestFullPageLoaderFinish","setLocalStorage","SetHighlightLogin","InitEmailVerification","FormValid","ActivateAccountInitForm","AcctivateAccountInitSent","InitEmail","GetCurrentPortal","GetPortalsetting","portalSettings","getParameterByNameFromUrl","OpenIdOnly","ActivateAccount","ActivateAccountSuccess","rememberMeVal","activatedEmailUserName","getSessionStorage","deleteSessionStorage","setTimeout","document","getElementById","focus","logoutController","Logout","mycustomsettingsController","GetProfile","GetProfileRestrictedFields","RestrictedFields","Save","SaveCustomProfileData","$setPristine","$setUntouched","simple","content","position","IsFieldRestricted","field","undefined","find","rf","FieldType","Name","mysecurityController","OldPassword","NewPassword","NewPasswordRepeat","ShowPasswords","UpdateMyPassword","ToggleShowPassword","setAttribute","mypageController","educationService","levelService","eventStatisticsService","engageService","certificationsService","PageMax","UserStats","AuthToken","getBizPartAuthToken","Mascot","mascot","EducationCount","BlogCount","VideoCount","ScormCount","QuizCount","TotalEducationCount","Notifications","NotificationsPage","ActivityLog","ActivityLogPage","GainMoreExperience","GainMoreExperiencePage","LastGainedExperience","LastGainedExperiencePage","CertificationCount","CompletedEducationCount","GetCompletedCount","Education","CertificationEducation","Certification","GetLoggedInUserNotifications","page","GetLoggedInUserExperiencePointHistory","GetAllEventStatisticsForUser","GetSuggestions","GoToSuggestion","item","ControlType","go","id","Value","GetSuggestionIcon","ShowCertificates","certificateController","GetCertificates","templateUrl","controllerAs","bindToController","GetUserLogStats","eduCount","blogCount","videoCount","scormCount","quizCount","EngageObjectLogs","Passed","EngageObjectType","GetStatCount","types","count","y","Initialize","GetCertificationsForUser","UserCerts","IsPortalSettingTrue","GoToItem","ObjectOwnerUserId","LoggedInUser","ObjectType","ObjectId","mysettingsController","bizMediabankService","bizMediabankUploadService","$q","bizCoreProvider","profileDialogController","Close","Ok","hide","GetCustomFieldValue","SetSelectedUserType","UpdateCustomFieldValue","CompanyNumber","AllowSms","PortalCustomerName","portalCustomerName","NotificationSettings","notificationSettings","SaveMyDetails","showToast","SuccessCallback","copy","IsEditMode","TempFile","SetFile","UserTypeId","SelectedUserType","SaveBasicProfile","UpdateAllowSMSForLoggedInUser","Unregister","DeleteMe","AskToUnregister","getView","locals","Text","IsSureCheck","err","GetLoggedInUserSetting","key","callback","GetLoggedInUserSettingAsBoolean","file","File","settings","FileType","FileTypes","Image","FileLocation","UploadLocations","UserProfile","FilePattern","IsPrivate","IsInvisible","IsPrivateControlHidden","IsInvisibleControlHidden","IsUser","promise","UploadFile","name","Photo","FileUrl","SaveMyProfile","SetTempFile","files","GetProfileImageUrl","FavoriteTagFilter","tag","ShowMoreFavorites","Favorite","UserTypes","GetItemByValue","GetAllTags","CurrentCultureId","Tags","GetUserTypes","mycolleaguesController","unitService","GetUsersInUnit","unitId","UnitUsers","MyUnit","Units","ShowSpecificUnit","parentId","ParentId","GetUnitsByParent","myleaderboardsController","leaderboardService","InitializeUnit","MonthLeaderboardCallback","MainUnitLeaderboardMonth","YearLeaderboardCallback","MainUnitLeaderboardYear","MonthUnitLeaderboardCallback","UnitLeaderboardMonth","YearUnitLeaderboardCallback","UnitLeaderboardYear","MainUnitLeaderboard","UnitLeaderboard","Limit","GetMainUnitLeaderboard","GetMainUnitLeaderboardBetweenDates","moment","startOf","format","endOf","GetUnitLeaderboard","GetUnitLeaderboardBetweenDates","GetCountryLeaderboard","CountryLeaderboard","CountryLeaderboardMonth","CountryLeaderboardYear","startTime","endTime","notificationsController","bizUser","Back","history","back","registerController","registerService","Register","AcceptedConditions","IsActive","CultureId","strCulture","Cultures","CultureCode","CreateUser","Roles","showTermsController","termsService","GetTerms","GettingsTerms","GetSystemTerms","terms","InteractionsDisabled","Terms","themestestController","unsubscribe","welcomeController","GetWelcomeGuide","pages","showAdvanced","JSON","parse","useAdvanced","bizActivityReminderService","$http","baseUrl","GetActivityReminders","maxReminders","get","params","SetActivityReminderViewed","reminder","post","directive","restrict","bizPhraseLoaderService","reminders","ImageUrl","FirstImageUrl","Reminders","GetPhrasePlaceholders","PhrasePlaceholders","unitName","parentUnitName","ParentUnits","UserInfo","FirstName","LastName","UserIdListUsedIndex","UserIds","LoadPart","service","bizAdminBar","bizAdminBarController","scope","simulating","isAllowedToSimulate","bizAdminBarService","$transitions","GetCultures","populateId","url","moduleType","urlRewrite","deferred","defer","GetIdByUrlRewrite","fUrl","resolve","reject","AdminPageMap","Map","accessTypeKey","dynamic","getFinalUrl","title","SetEditButton","onSuccess","$transition","CurrentCulture","currentCultureId","ChangeCulture","culture","substring","CancelSimulation","simulation","deleteCookie","SimulatedByUserToken","SimulatedByUserId","ShowSimulateUser","simulateUserDialogController","Users","SearchTerm","PageIndex","PageLength","IncludeInactive","SearchUsers","pageIndex","GettingUsers","UserData","CurrentPageEntries","concat","SimulateUser","user","PreparingSimulation","Date","userSession","UserId","SearchMoreUsers","GetAdminUrl","AdminUrl","ShowAdminButton","current","showBtn","stateName","has","adminInfo","HasWriteOrHigherAccess","ShowEditButton","GotoAdminEdit","SimulatingDate","getSimulatedDate","searchTerm","pageLength","includeInactive","userId","date","objectType","headers","IgnoreLoader","bizCookieSettingsDirective","element","attr","templateurl","bizCookieSettingsController","ToogleCookie","IsLoggedIn","UpdateUserSetting","bizCountdownTimer","bizCore","bizCountdownService","link","attrs","HasModuleAccess","$destroy","remove","bizMyNotesController","$interval","Countdown","interval","StartTimer","ignoreUpdate","HasAccessToStartTimer","StartTime","utc","StartCountdown","Seconds","Minutes","TimerStarted","CancelTimer","CancelCountdown","ResetTime","hubListender","event","args","c","Content","Cancelled","GetCountdownForLoggedinUser","countdown","CreatedByUserFullName","elapsedSeconds","diff","elapsedMinutes","Math","floor","secondsLeft","$onDestroy","servicePath","bizCultureSelectorDirective","useGbflagForUs","bizCultureSelectorController","Flag","GetImageName","ShortCultureCode","GetShortCountryCode","cultureCode","ccParts","split","countryCode","ChangeLanguage","qs","parts","qsParts","bizEngageStackedObjectsDirective","engageObjects","categoryId","horizontal","gotoFunc","bigImage","bizEngageStackedObjectsController","ImageList","category","GenericCategories","catObj","Objects","Order","Selected","push","SetSelected","obj","SetSelectedImageFirst","index","newList","Goto","bizEngageProgressBarDirective","label","progress","showProfileImage","bizEngageProgressBarController","bizEngageProgressSettingsDirective","settingsHandler","bizEngageProgressSettingsController","GetSettings","SavedSettings","SaveSettings","OriginalSettings","assign","bizEngageProgressDirective","bizEngageProgressController","HideGeneralJourneyProgress","HideCustomJourneyProgress","getLoggedInUser","SetProgress","GetAllJourneysTotalProgress","General","bizEngageJourneyDirective","bizEngageJourneyController","GetEngageJourneys","EngageJourneys","GetEngageState","engageObject","UrlRewrite","showCustomJourney","template","bizEngageJourneyProgressBarController","GetJourneys","JourneysInitialized","Journeys","objectCount","finishedObjectCount","j","EngageObjects","Status","round","bizFavorite","objectId","favorite","bizFavoriteController","favoriteService","FavMarkedCssClass","FavUnmarkedCssClass","IsFavorite","ToggleFavorite","FavoriteChangeCallback","GetFavorites","AddFavorite","RemoveFavorite","bizFavoriteList","favorites","bizFavoriteListController","Remove","bizFavoriteEditList","bizFavoriteEditListController","bizGlobalSiteTitleDirective","bizGlobalSiteTitleController","baseService","GetGlobalSiteTitle","SiteTitle","bizHeaderDirective","bizHeaderController","$element","HighLightItem","showOverlay","addClass","removeClass","CloseAllMenus","ShowFavorites","ShowSearch","ShowCultures","$digest","onScroll","scrollTop","pageYOffset","documentElement","scrollDirection","lastScrollTop","offsetLimit","offsetElement","offsetTop","logoHeight","clientHeight","AddBgClass","RemoveBgClass","logo","GoToAdmin","Search","searchText","QueryString","ToggleCollapseHeader","toggleClass","ShowTipSomeone","OpenIdProviderId","Header","KeepBgClass","addEventListener","HideLogin","$watch","newVal","oldVal","bizLayoutComponent","bizLayoutComponentService","$compile","container","GetLayoutComponent","LayoutComponent","Container","compiled","html","servicepath","type","bizLeaderboardDirective","leaderboard","header","IsMe","bizDefaultLevelProgressDirective","bizDefaultLevelProgressController","CurrentLevel","NextLevel","UserExperienceSum","PercentageCompleted","ExpLeftToNextLevel","GetLoggedInUserDefaultLevelProgress","m_Item1","AllLevels","m_Item2","m_Item3","CurrentLevelIndex","GetIndexByValue","RequiredExp","CalculateExperience","sum","needed","bizMenuJourneyStatus","bizMenuJourneyStatusController","bizJourneyService","SetCurrentJourney","SetNextJourneyObject","IsCurrentJourney","CurrentJourney","GoToNextJourneyObject","stopPropagation","GoToEngageItem","NextJourneyObject","nextObject","CloseJourneyPanel","JourneyPanelOpen","bizMenuJourney","journey","fromCollection","bizMenuJourneyController","Round","p","bizMenuJourneyCollection","closeFunc","bizMenuJourneyCollectionController","GoToJourneyPage","bizMainMenuDirective","menuItems","bizMainMenuController","scrollService","bizMainMenuService","GetItemLink","Link","setting","objectTypeSettings","String","State","Identifier","ObjectIdentifier","Navigate","IsActiveItem","state","parentState","ControllerScope","IsAnchorLink","HandleMenuClick","parentItem","Children","Expanded","MenuItems","ExpandMainMenu","hostname","ScrollTo","$","open","CurrentLocation","hash","ShowJourneyWidget","mobile","ShowInstallPWA","pwaDeferredPrompt","HasInstalledPwa","InstallPWA","installPWA","hasSentCloseEvent","bizMyNotes","limit","limitDateFrom","limitDateTo","myNotesService","Notes","EditMyNotesDialog","body","fromDate","toDate","notes","Data","GetMyNotes","from","getDateNow","subtract","to","add","Color","bizMyNotesEditDialogController","AddNote","unshift","image","selectedColor","all","stringify","SaveMyNotes","ClearPromiseCache","SelectImage","ShowMediabankDialog","uploadSettings","Colors","MyText","bizMyText","settingKey","bizMyTextController","DefaultData","OpenEdit","EditDialogController","Cancel","bizNotificationProvider","notificationSettingType","FAB","STANDARD","DIALOG","$get","bizNotifications","notificationPosition","bizNotificationService","bizNotificationsController","bizEffects","coreEngageService","Fade","CanFade","DoGroup","FadeTimer","ShowNotifications","GroupedNotifications","FirstItemOfType","MaxSubItemsLength","SubItemsGroupWithinSecounds","MaxNotificationsToShow","AddNotification","not","notification","NotificationId","ExistInSubitems","LatestNotification","Show","Queue","effect","GroupNotifications","StartFadeTimer","SetFade","Pulsate","SetUrlRewrite","Effect","queueNotification","shift","Fading","CancelFadeTimer","GetNotifications","notificationsFromServer","SetProperties","GetPositionClass","Position","TOPLEFT","TOPRIGHT","BOTTOMLEFT","BOTTOMRIGHT","CENTER","val","IsPulsating","GetHighestId","time","StopPulsating","ConfirmRead","DateSent","isAfter","IsEngageObject","ObjectUrlRewrite","RedirectToEngageObject","NavigateTo","goalId","Key","FeedbackLink","GetJourneySettings","feedbackPage","FeedbackPage","objectKey","IsHighlighted","SortedNotifications","NoHighlight","duration","asSeconds","InitSlick","SlickLoaded","SlickSettings","arrows","dots","infinite","slidesToShow","slidesToScroll","g","Items","gi","grouped","nextIndex","subItems","groupNext","nextNot","sameKey","withinTime","slice","UnHighlightAllNotifications","engageObjectList","GetEngageObjectsByObjectIdAndType","GetEngageObjectTypeId","FakeMessageForTesting","min","random","onStart","max","param","CustomNotificationHandlers","Enabled","Handler","clickOutsideToClose","multiple","skipHide","Notification","hideDelay","autoWrap","close","constant","provider","bizOpenLoginBtnsDirective","openIdOnly","GoToOpenIdLogin","GetActiveOpenIdProviders","Providers","bizProfileMenuDirective","getController","bizProfileMenuController","m","CurrentState","States","Phrase","Icon","AccessTypeRight","Read","PortalSettingForEnable","bizSearchDirective","ReferrerType","ReferrerId","Expand","bizSearchController","bizSearchService","MaxHits","CanSearch","SearchText","SearchIndexList","Index","SearchIndexExternalName","TotalHits","HitsIncement","results","IndexList","ResultItems","GetItemsByValue","Results","GoToResult","LogSearch","GetItemUrl","GoToResults","query","CustomIndexUrls","StateParameters","ItemIds","ItemId","StateParams","Query","bizWelcomeGuideJourneySelector","bizWelcomeGuideJourneySelectorController","bizWelcomeGuideService","$attrs","qsPermFilter","pList","decodeURI","GetItemsByPermissionCombination","filterJourneyCollectionIds","MaxJourneys","col","Wrap","JourneyCollectionId","SelectJourney","SelectedJourney","bizSimpleWelcomeGuide","bizSimpleWelcomeGuideController","portalService","LoadCustomPlaceholders","LogoUrl","LoadWelcomeGuide","InitWelcomeGuide","SlickDataLoaded","GetPortalSetting","TriggerNext","last","slick","TriggerPrev","CustomPlaceholders","Regex","autoplay","mobileFirst","method","combStr","bizSimulateUser","bizSimulateUserController","bizSimulateUserService","isSimulatingShadowUser","GetShadowUserSimulationInfo","ShadowUserSimulationInfo","Preparing","SimulateShadowUser","ShadowUserConfigKey","bizSocialShareDirective","Socialshare","objectName","uiStateName","uiStateParams","object","disabledProviders","likeActions","likeActionObjectType","useMenu","bizSocialShareController","bizSocialShareService","MobileOnly","Share","Sharing","share","TrackingId","Provider","Url","AddSocialShare","substr","SetUrl","absolute","GetShareUrl","ShowShare","PerformLikeAction","action","LikeActionPerformedByUser","LikeActionModel","LikedUserId","CreatedByUsr","LikeKey","ActionId","Action","Comment","Count","OnCopySuccess","textContent","loadedObject","Where","controllerPath","likeActionPath","AddSocialShareClick","click","bizTipSomeone","fromMobileMenu","bizTipSomeoneController","OpenPanel","popupController","OnBtnClick","Clicked","Error","email","message","Sent","escapeToClose","bizUnsubscribeDirective","bizUnsubscribeController","bizUnsubscribeService","IsCategoryOptIn","CategoryType","GetCategoriesByCode","code","categories","cat","Checked","Categories","Logo","Code","GetEncodedQS","ConfirmCategories","Result","catIds","GetCategoryIdsToLink","SaveCategoriesByCode","isChecked","isOptIn","CategoryIds","extCustomFields","ExtCustomFields","settingsPromise","engageJourneyPromise","apiPath","force","GetEngageJourneysByFavoriteTags","GetEngageJourneysForUser","deferrer","responses","Custom","HandleEngageObjectCancelled","objects","objectTypeName","GetEngageObjectTypeById","objectTypeId","deepload","newPassword","res","backgroundImages","images","RandomBetween","GetGlobalLeaderboard","GetExperienceValueFromLastCheck","CheckForLevelUp","SaveMyNote","note","sessionService","Tick","sessionTimer","TimeToShowWarning","ShowingWarning","alert","instant","ok","Refresh","TimeOut","Stop","SessionTime","SessionTimeEnd","Timer","localStorage","setItem","Start","updateBackend","UpdateUserSession","ssoService","SSOCheckIfUserExists","ssoKey","ssoToken","SSOKey","SSOToken","RegisterSSOUser","userName","firstName","lastName","countryIsoCode","CountryIsoCode","includeAccepted","AddUserActivity","refererUrl","activityGroup","GetUserGenericCustomFields","customFieldId","value","oldPassword","allowSms","GetLoggedInUser","GetLoggedInUserFromDB","SubscribeToNewsletter","configCoreFunction","$stateProvider","bizUserProvider","$translatePartialLoaderProvider","rule","isPublic","extmode","onlyLoggedOut","config","effectsProvider","fireworks","effectSystemName","confetti","showFireworks","launchInterval","loopInterval","SCREEN_WIDTH","innerWidth","SCREEN_HEIGHT","innerHeight","particles","rockets","canvas","createElement","context","getContext","launch","x","rocket","Rocket","explosionColor","vel","size","shrink","gravity","launchFrom","loop","fillStyle","fillRect","existingRockets","update","render","distance","sqrt","pow","pos","randomChance","explode","existingParticles","exists","Particle","resistance","flick","alpha","fade","color","apply","showingFireworks","timeout","append","setInterval","hideFireworks","clearInterval","prototype","save","globalCompositeOperation","r","gradient","createRadialGradient","addColorStop","beginPath","arc","PI","closePath","fill","restore","constructor","particle","angle","speed","cos","sin","Vars","OriginalTitle","Interval","On","intervalSpeed","Off","blogsListController","blogService","MetadataService","bizEngageService","BlogItems","GUISettings","GetBlogEntries","ignoreLoader","bsMethod","GetNewestBlogEntries","journeySettings","UseJourneyOrderInLists","GetBlogEntriesByJourneyOrder","ItemsFetched","SortMostLiked","SortMostCommented","ContainerId","modules","getModules","VideoUrl","YoutubeId","Description","HandleBlogData","Admin","GetGenericSetting","RelatedSettings","SelectedItem","RelatedId","items","BlogItemsCommented","sort","a","b","Comments","BlogItemsLiked","LikeValue","setMetaTags","description","GetMiniJourneySetting","MiniJourneySettings","blogsShowController","bizContainerSettings","EventSource","ContainerRefererType","ContainerRefererObjectId","EntryId","Preview","EntryTitle","GetOneBlogEntry","GetOneBlogEntryError","NoAccess","GetOneBlogEntrySuccess","blogItem","ContainerRefererCreatedByUserId","GettingMoreItems","HandleContainer","Types","Blog","imageModules","imageUrl","videoModules","videoUrl","Title","img","video","HandleMetaData","AllItemsFetched","GetOneBlogEntryByTitle","GetDate","momentDate","isValid","hours","minutes","blogsShowByTagController","tagIds","TagId","BlogItemsToShow","EntriesPerPage","TotalEntries","HandleBlogPosts","TagSystemName","tagSystemName","GetTag","GetTagSuccess","SelectedTag","Tag","GetTagBySystemName","blogController","entryId","entryTitle","ExpandItem","tagId","GetBlogEntriesLocal","entry","ExpandedItem","TotalLikeActions","LikeActions","GetLikeActionsByValue","positive","AddLikeActionToBlogEntry","totalCount","totalValue","AverageLikeValue","GetRelatedBlogEntries","scrollTo","GetImageUrl","overrideSlides","customPaging","responsive","breakpoint","SlickOverrideResponsiveSlides","GetMoreItems","GetTimeTo","now","asHours","StartEducation","education","IsUnpublished","PublishDate","NavigateToBlogEntry","RedirectToUrlRewrite","GetEntryUrlRewriteById","RelatedEntries","GetRelatedBlogPosts","AddBlogComment","$root","NewComment","NotVisible","expire","ExpireDate","ready","bizModuleBlogListDirective","bizModuleBlogListController","favoritesService","ids","Filter","SelectedFilter","SelectedLimit","GetBlogPostsSuccess","FavoriteTagIds","GetMostCommentedPosts","GetMostLikedPosts","SelectedBlogs","GetBlogPosts","warn","version","major","minor","relatedToId","ignoreLoadingBar","preview","actionId","comment","GetRelatedEntries","pageSize","overrideCache","GetEntriesByTags","GetBlogEntriesByOrder","order","parameters","updateLatest","systemName","SpecificIds","PageSize","UseComments","pageController","cmsService","bizContainerService","bizContainerUrls","PageIdentifier","GetCMSPage","GettingCMSPage","Page","DisableMainMenuSticky","menuSettings","IsSticky","hasStickyNavigation","keywords","Keywords","uiOnParamsChanged","changedParams","transition","basePath","HasCMSPage","GetCMSPageById","campaignController","campaignService","GetCampaign","GettingCampaign","Campaign","referer","LogGenericObjectVisit","pageUrlRewrite","GoToCampaignStart","startPage","CampaignPages","CampaignPageTypeId","campaignPageController","GoToStart","GetCampaignPage","GettingCampaignPage","CampaignPage","ChangePage","pageId","reload","destroyOnModuleFinish","UseSettings","SetContainerModuleInstanceFinished","ModuleInstanceFinishedSuccess","indexController","certService","CertList","NoImageUrl","GetCertifications","totalXp","Item","ExperienceGive","dictionaryService","SelectedItemId","Dictionary","LettersWithWords","GetDictionary","GetAllEntries","dictionary","d","fl","Word","FirstLetter","cultureId","GetAllEntriesWCategories","html5Controller","replyService","ModuleFinishHandler","HTML5ModuleInstanceFinished","OnlineEducationReply","OnlineEducation","getModulesWithSettings","IsSubmitted","SubmitHTML5Education","OnlineEducationFinished","ShowOnlineEducation","ModulesRequiringFinish","OnlineEducationId","GetOnlineEducation","GetHTML5Education","GetHTML5EducationReply","CreatedByUserId","UserStatus","setModuleFinishHandler","modulesWithSettings","IsFinished","mod","ContainerModuleInstanceId","HTML5","GetHTML5EducationByUrlRewrite","reply","bizEducationsListDirective","bizModuleEducationListDirective","bizEducationsListController","GetAllEducationTypes","GetHTML5EducationsForLoggedInUser","GetSCORMEducations","DataLoaded","useJourneyOrder","SCORMUserStatus","NotStarted","Started","Failed","HTML5Educations","SCORMEducations","GetHTML5EducationsForLoggedInUserSuccess","list","edu","HandleCategoryForEduction","GetHTML5EducationsForLoggedInUserByTagId","UserHasPassed","OpenHTML5Education","Entries","IsCategory","TagFilter","bizEducationsListModuleController","GetEducationsSuccess","skipLoadContainer","journeyOrder","educationId","replyId","containerModuleInstanceId","bizDeactivateGoalDirective","goal","postInactivateAction","deleteMode","bizDeactivateGoalController","engagementGoalsService","GetGoals","MoveToGoalList","ParentGoalId","ChildGoals","Inactivate","goalIdToMoveTo","selected","InactivateGoal","SelectGoal","FilterGoals","bizManagerGoalsDirective","bizManagerGoalsController","Statuses","ManagerGoals","GetManagerGoals","GoalSettings","ManagerGoalOverrideHeader","GoalOverrideHeader","GotoToGoal","EditClose","SaveManagerGoals","AddGoal","isManagerGoal","SelectedGoal","SelectedUserGoal","Goal","SelectedStatus","IsManagerGoal","ShowIcon","Goals","splice","GetStatusName","UserSelected","UserGoals","SelectedUser","userGoals","managerGoals","usersInUnit","bizMyGoalsDirective","showActiveFilter","goalFilter","hideActivities","hideEdit","hideTasks","selectedGoal","editProgress","rootGoals","bizMyGoalsController","ActiveStatus","Active","ProgressObjectTypes","Activity","Task","GetGoalsCallback","goals","ReportProgress","ProgressSum","Activities","act","k","ToDoList","tsk","GetChildGoals","SelectedActiveStatus","CompleteToDo","todo","CompleteTask","GotoActivity","activity","IsExpired","task","IsCompleted","DateLocal","SaveProgress","rp","LinkedObjectType","LinkedObjectId","CreateProgress","Saved","GoalId","bizMyRootGoalsDirective","bizMyRootGoalsDirectiveController","bizMyTasksDirective","includeCompleted","showFilter","ignoreTaskId","bizMyTasksController","OrderBy","OrderDesc","ChangeOrderBy","desc","SetCurrentFilterMode","CurrentFilterMode","FilterMode","All","Match","Upcoming","Expired","Completed","GetTasks","inclCompleted","tasks","AddTaskStatus","currentFilterMode","GotoTask","FilterTasks","GetTaskCount","filterMode","bizOneGoalActivityDirective","bizOneGoalActivityController","GetGoalTypes","period","GetSelectedPeriod","EditMode","IsCurrentPeriod","EndDate","SetActivityLoaded","GoalTypes","when","activityIsLoaded","GoalTypeId","SelectedType","pGetGoals","activityGoal","filter","DateLocalDate","saveData","GoalValue","CreateUpdateActivity","newCreated","activityIsLoadedDefer","unbindActivityWatch","DeleteActivity","confirm","DateToLocal","bizOneGoalDirective","isRoot","bizOneGoalController","DefaultNewProgressSteps","NewProgressSteps","EditDate","UploadSettings","labels","colors","options","cutoutPercentage","display","text","SelectedPeriod","Years","year","StartDate","SelectedYear","goalTypesLoadedDefer","goalTypesLoaded","rootGoalsLoadedDefer","rootGoalsLoaded","FirstTimeCreate","ImageMediabankId","SelectedRootGoal","IsLocked","ChildGoalSuggestions","IsNegative","SelectedToDate","NewProgress","change","progressDate","NewProgressDate","isSame","Progress","CreateUpdateGoal","OriginalType","OriginalIsNegative","DateFromLocal","LockGoal","ev","ariaLabel","targetEvent","LockGoalCallback","GetRootGoals","GetGoal","ShowDeactivate","parentEl","querySelector","ShowDeactivateController","IncreaseNewProgress","SetProgressStep","newValue","Dirty","DecreaseNewProgress","FixSortingToDoList","toDoList","GoToActivity","GoToTask","RootGoals","months","EditMonths","SelectedNewMonth","GenerateEditMonths","CreateChildGoalSuggestion","suggestions","monthsPerSplit","goalValueReminder","periodStart","periodEnd","textSuffix","goalValue","endList","month","EndList","RemoveChildGoalSuggestion","SetEditMode","PreEditGoal","PreEditImage","CancelEdit","lblFunction","GoalType","Suffix","percent","ProgressSumInPercent","bizOneGoalTaskDirective","bizOneGoalTaskController","DateSettings","taskIsLoadedDefer","taskIsLoaded","touchUi","buttons","dateWheels","ActivityId","GetActivities","GetActivitiesByGoalDate","activities","AllActivities","goalFilteredActivities","SelectedActivity","Todo","CreateUpdateTask","SetTaskLoaded","SetTaskDates","unbindTaskWatch","DeleteTask","UncompleteTask","bizGoalTaskStatusDirective","bizGoalTaskStatusController","activityController","activityId","GetOneActivity","calendarService","Tasks","events","UserProgressSum","ProgressValue","LoggedInUserId","GetProgressSum","progressValue","GoToNextPeriod","IncreaseSelectedPeriod","GoToPreviousPeriod","DecreaseSelectedPeriod","IsSelectedPeriodInCurrentYear","NegativeGoals","oneGoalController","newRoot","ReportPeriodTypes","DatePickerSettings","DayList","SelectedUnit","weekdays","GetMeetingInfo","PeriodModeList","GetPeriodModes","PeriodMode","OriginalPeriodMode","GetFrontEndModuleSettingValue","GetMeetings","MeetingInfo","OriginalMeetingInfo","SavePeriodMode","SetPeriodMode","SaveMeetingInfo","SetMeetingInfo","PeriodType","MeetingDay","MeetingList","SaveMeeting","CreateUpdateMeeting","AddMeetingDate","UnitId","meeting","ShowNewMeeting","DeleteMeeting","DeleteMeetingCallback","MeetingHasPassed","goalService","PeriodTypes","PeriodDayBreak","userData","ToolTipDateFormat","CommentCount","userid","PeriodCommentSettings","NewCommentData","PreventReplies","NextPeriodCommentSettings","HideDate","CurrentDate","PeriodLengthInDays","TasksInPeriod","TasksInPreviousPeriod","LoadTasks","PeriodStart","PeriodEnd","completedTasks","notCompletedTasks","CompletedTasksForUser","NotCompletedTasksForUser","NextPeriodStart","NextPeriodEnd","TasksInNextPeriod","GetTodoCount","GetTodoCountForUsersInSameUnit","PreviousPeriodStart","PreviousPeriodEnd","inPeriod","prevPeriod","TasksCompletedInPeriod","TasksNotCompletedInPeriod","NotCompleted","completedInPreviousPeriod","notCompletedInPreviousPeriod","TasksCompletedInPreviousPeriod","TasksNotCompletedInPreviousPeriod","TasksCompletedChange","TaksNotCompletedChange","TasksCompletedChangePercent","TasksNotCompletedChangePercent","GetGoalAndActivityComments","GoalAndActivityComments","allGoals","GetGoalsForUsersInSameUnit","UsersInSameUnit","meetingInfo","isoWeekday","CurrentMeeting","PreviousMeeting","NextMeeting","oneTaskController","GetOneTask","taskId","ExpandStatusStorageKey","ExpandedUserProgress","GetCurrentProgress","prg","UsersProgress","GetGoalsForUsers","ToggleUserProgressExpanded","progressItem","StoreUserProgressExpandStatus","RetrieveUserProgressExpandStatus","eventService","bizContainerModuleEventListService","UpdateParticipationStatusSuccess","GetEvent","Event","GetOneEvent","EventId","IsInFuture","datetimeUtc","IsToday","ChangeStatus","newStatus","UpdateParticipationStatus","IsAllowedToBook","ParticipantCount","MaxParticipants","RSVPDateTimeUtc","IsAllowedToCancel","eventId","getServicePath","questionFreetextController","questionController","SetSelectedValues","model","GetValues","GetOptionTranslation","option","NameTranslations","questionScaleController","fields","questionYesNoController","FormFieldId","FieldKey","evt","createEvent","initCustomEvent","dispatchEvent","forumsController","forumService","Forums","GetForums","GoToForum","forum","forumController","ForumId","Forum","Threads","GetForum","GoToThread","thread","forumThreadController","deletePostController","ThreadId","Thread","Post","ForumThreadId","GetThread","SubmitPost","ThreadRead","ThreadEntrys","IsEditing","error","EditPost","DeletePost","DeletePostSuccess","threadId","journeyController","IsJourneyLocked","masterrunController","MasterRunUrl","isMobile","any","mediaController","mediaService","onPlayerStateChange","OnPlay","VideoEnded","OnEnded","OnInit","source","EventInit","MediaFile","VideoType","VideoTypes","Youtube","YoutubePlayer","GetYoutubeId","match","MediaFiles","MediaFileTypes","SelectedTypes","playClicked","VideoPlaying","Extended","LikedExtended","SeenExtended","showLatest","showMostLiked","showMostViewed","showMostCommented","showRelated","fileId","fileUrlRewrite","EventStart","EventEnd","GetMediaFiles","GetMediaFileTypes","GetFileImage","Thumbnail","ToggleMediaTypes","typeId","lastIndexOf","AddLikeActionToMediaFile","GetShowingSettings","GetGenericSettings","overrideToShow","GetOneMediaFile","GetObject","MediabankFile","GetRelatedMediaFiles","Native","Vimeo","RelatedMediaFiles","FilterLiked","GetYoutubeEmbedUrl","FilterAlreadyVisibleFiles","PauseVideo","pause","PlayVideo","currentTime","play","PlayedVideo","PlayYoutube","player","playVideo","videoId","matchMedia","matches","YT","Player","playerVars","rel","GetFileTypeTranslations","NameOverrideTranslations","NavigateToMediaFile","mediatagsController","FilterByTag","SelectedFile","SetSelectedFile","defaultFileTypes","fileTypes","setFirstSelected","idMatchIndex","urlRewriteMatchIndex","isNumeric","NavigateToMediaFileForTag","GetMediaFileUrl","bizModuleVideoListDirective","bizModuleVideoListController","Videos","GetVideosSuccess","getRelatedFiles","includeViews","TagIds","GetRelatedFiles","IncludeViews","JourneyOrder","keys","missionsController","missionsService","missionsViewController","Mission","MissionId","GetMission","missionId","mission","Rules","GetRuleUrl","CompleteId","missionsUsersController","GetUsers","bizMissionDirective","transclude","bizMissionController","GetNextRule","NextRule","PercentageComplete","CalculateTimeStats","Now","DaysLeft","HoursLeft","MinutesLeft","CalculateCompletedPercent","CompletedPercentage","totalPercentage","amountOfRules","bizMissionRuleDirective","TemplateUrl","KnobData","fgColor","SecondaryColor","bgColor","inputColor","angleOffset","angleArc","readOnly","displayInput","Class","missionListDirective","missionListController","Missions","GetMissions","GetMissionsForUser","endDate","CalculateTimeStatsForAllMissions","ResultCount","SelectedIndex","OrderList","ShowAllIndex","SearchQuery","decodeURIComponent","maxHits","SortBy","IndexesToShow","IndexToShowList","SearchedQuery","StateUrl","GetStateUrl","HandleResults","GetResultHref","OnKeyPress","$event","keyCode","SelectIndex","GetItemPreview","ItemPreview","ShowCategory","ChangeSorting","HasValidDate","isSameOrBefore","speedquizListController","speedquizService","PluginInstanceId","pluginInstanceId","SpeedquizName","Speedquizes","PlaySpeedquiz","speedquiz","GoToHighscore","GetSpeedquizInstancesForLoggedInUser","HasGuiOverrides","speedquizPlayController","SpeedquizId","SpeedquizUrlRewrite","hasCustomerGuiOverrides","ShowGame","IsLoading","GetIframeUrl","portalAlias","postMessageReceived","origin","GetSpeedquizIdByUrlRewrite","removeEventListener","speedquizHighscoreController","speedquizName","Highscore","GetHighscore","ScoreItems","GoBack","GetSpeedquizInstance","quizId","assemblyName","className","Answer","answer","Submit","score","v","portalProvider","EngageObjectRedirectController","EngageObjectId","IsPortalPublic","userProvider","Write","WriteExtended","SetLoggedInUser","accessTypeModuleKey","hasAccess","IsAdministrator","AccessTypeAccesses","AccessTypeModule","AccessTypeKey","accessTypeAccess","AllUnits","setLoggedInUser","locale","configFunction","$urlRouterProvider","$httpProvider","$translateProvider","$locationProvider","$ocLazyLoadProvider","otherwise","html5Mode","GetLazyLoadModules","interceptors","useApplyAsync","addPart","useLoader","urlTemplate","bizPartVersion","preferredLanguage","fallbackLanguage","forceAsyncReload","useLoaderCache","useSanitizeValueStrategy","SetPublicPortal","runFunction","levelProvider","SignalRFactory","$location","$translatePartialLoader","genericPosition","$locale","bizPushNotificationService","unitcookie","initializationDefer","GetScrollWidth","scrollWidth","CultureDefer","CultureInitialized","refresh","setTranslateProvider","isTestMode","defaults","common","portalId","poweredby","QueryParams","genericpositions","maxWidth","GetFullscreenCalc","getFullscreenWidth","Theme","portalTheme","UnitSettings","getCookie","IsInIframe","HasWebpSupport","PasswordMinLen","GetPreloadedPortalSetting","PreventHideOnScroll","Startpage","DisableLoadData","AlreadyVerifiedRedirectUrl","Profile","ShowMenu","ShowProfileImage","ShowUserType","ShowMobile","ShowMiddleName","DisableFirstName","DisableLastName","DisableMiddleName","DisableEmail","ShowUnregister","ShowWelcomeLink","CustomHeaderPhrase","AdditionalProfileSubMenuItems","HideCurrentRating","ForRolesOnly","check_webp_feature","feature","hasWebpSupport","PreventScrollTopOnce","CurrentUserId","CurrentUserCurrency","DefaultVirtualCurrencyValue","ShowXP","ShowCurrency","NUMBER_FORMATS","GROUP_SEP","sessionTimeoutInSeconds","GetMenuItemsForLoggedInUser","SendHubMessageToServer","createFallbackFavicon","PrimaryColor","PrimaryTextColor","navigator","connection","updateConnectionStatus","journeysDefer","updatedObjectType","updatedObjectId","updatedToStatus","anyUpdated","updateJourneyProgress","finishedCount","eo","TotalProgress","GetNextJourneyItem","firstIfAllComplete","firstObject","currentJourneyIsDone","currentJourney","IsJourneyStarted","gotoNextObject","gotoFirstIfDone","objectDoneCount","PortalVersion","PortalDefaultCulture","UseApiController","UseEngageCore","GoogleAnalyticCustomTrackers","ga","SendMessageQueue","IsHubconnected","MsgQueue","send","PreviousState","$from","$to","CurrentStateClass","path","GATHasSetUserId","dataLayer","attributes","route","pathname","LastPageLoadTime","abort","RedirectUrls","self","translateParts","isFunction","AddCustomNotification","info","HubServerName","HubKey","AddInformationNotification","Subject","hubKey","hubServerName","serverMsg","detail","connect","loadingInterceptorFunction","request","htmlIndex","urlLC","htmlTemplateCachePaths","isUrlForTemplateCache","debugTimes","enabled","exec","totalTime","threshold","responseError","rejection","TOP","LEFT","RIGHT","BOTTOM","translate","getExperienceTypeLabel","t","PublicPortal","lastUpdate","GetView","fallback","override","viewOverrides","themeOverride","Views","ViewUrl","GetController","Controller","SetViewOverrides","overrides","setViewOverrides","getViewOverrides","run","factory","onload","token","prConfigs","Deferred","ajax","dataType","configs","ViewOverrides","urlReMapper","UrlReMapper","MenuSettings","JourneySettings","prUser","lang","queryString","SessionTimeInMinutes","prFavorites","favoriteObjects","bootstrap","strictDi","baseController","pageTitleNotification","screenSize","bizHideComponentService","HandleFavorites","SetShown","showNewCert","certContent","ShowDialog","HideButtons","CustomContentTemplateUrl","Cert","levelUp","levelContent","textToShow","$$unwrapTrustedValue","Hide","ExtMode","SetLanguage","SocialShareTrackingId","GetUserSetting","HasLayoutComponent","hasWelcomeGuide","hasShownWelcomeGuide","ShowWelcomeGuide","previewWelcomeGuidePages","isPreview","use","StopAnimateExperience","AnimateExperience","GainExperienceInterval","amount","countedPoints","DefaultExperiencePoints","pointsEarned","DefaultExperiencePointsStart","ExpInterval","onshow","onclose","ShowingDialog","DialogQueue","dialogPromise","dialogController","previewPages","ShowWindow","welcomeGuideController","FocusElement","elementId","shouldFocus","eId","desktop","is","on","TotalExperiencePoints","DefaultLevel","hasFocus","off","BizPart","Client","Core","SessionTimer","baseNoaccessController","baseHomeController","JourneyItemsPerRow","isStartPageDataLoaded","isStartPageDataLoadedPromise","ogDefaultImage","GoToNextJourneyItem","GetItemWidth","GetStartPageData","StartPageData","MainBanner","ButtonLink","ButtonType","Fullscreen","HeaderTranslations","TextTranslations","SelectedColor","BlogModule","SelectedButtonType","EducationModule","VideoModule","Journey","View","ShowTags","ItemsPerRow","miniSettings","ItemCount","isStarted","JourneyButtonTextTranslations","ButtonTextSecondaryTranslations","ButtonTextTranslations","journeys","maxItems","TotalJourneyCount","bizPhraseLogService","Phrases","IsEnabled","Promise","LogPhrase","bizHideComponentDirective","elem","Hiding","components","bizHideComponent","hiddenComponents","initializing","require","otherModelValue","ngModel","$validators","compareTo","modelValue","$validate","$observe","bind","timeSince","justNow","fromNowOrNow","xptypeFilter","cache","xptypeFilterFunction","$stateful","isutc","getTimezoneOffset","utcOffset","AddTranslatePartsToState","moduleSettings","s","UpdateFrontEndModuleSettingValue","GetSiteRootPath","len","charSet","randomString","randomPoz","elemId","messaging","firebase","initializeApp","firebaseConfig","onMessage","payload","show_on_site","click_action","ShowOnSite","serviceWorker","register","registration","useServiceWorker","requestPermission","permission","getToken","currentToken","notificationId","valid","AddPushNotificationId","usePublicVapidKey","tagData","getElementsByName","appendPortalNameLast","htmlDecode","portalName","$templateCache","put","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","__webpack_modules__"],"sourceRoot":""}