{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/flags/united-kingdom.svg","webpack:///./src/components/ui/Notify.vue?389c","webpack:///./src/assets/flags/sweden.svg","webpack:///./src/App.vue?e327","webpack:///./src/models/Enums.ts","webpack:///./src/App.vue","webpack:///./src/models/api/user/UserInfo.ts","webpack:///./src/helpers/UserHelper.ts","webpack:///./src/helpers/functions/AxiosToken.ts","webpack:///./src/models/SelectListItem.ts","webpack:///./src/services/AssociationService.ts","webpack:///./src/components/ui/Notify.vue","webpack:///./src/components/ui/Notify.vue?fc15","webpack:///./src/components/ui/Notify.vue?d494","webpack:///./src/components/ui/Notify.vue?ec56","webpack:///./src/models/SnackbarMessage.ts","webpack:///./src/services/UserService.ts","webpack:///./src/stores/Store.ts","webpack:///./src/services/SnackbarService.ts","webpack:///./src/models/api/user/AssociationUserInfo.ts","webpack:///./src/services/SettingService.ts","webpack:///./src/App.vue?60ad","webpack:///./src/App.vue?89ab","webpack:///./src/App.vue?bff9","webpack:///./src/locale/sv.ts","webpack:///./src/locale/en.ts","webpack:///./src/plugins/vuetify.ts","webpack:///./src/pages/home/Home.vue","webpack:///./src/services/GenericService.ts","webpack:///./src/pages/home/Home.vue?bcc9","webpack:///./src/pages/home/Home.vue?5c24","webpack:///./src/pages/home/Home.vue?00ae","webpack:///./src/pages/user/Index.vue","webpack:///./src/components/dialogs/DeleteDialog.vue","webpack:///./src/components/dialogs/DeleteDialog.vue?0cd2","webpack:///./src/components/dialogs/DeleteDialog.vue?b001","webpack:///./src/components/dialogs/DeleteDialog.vue?3d0b","webpack:///./src/pages/user/Admin.vue","webpack:///./src/models/api/user/AdminRegistrationRequest.ts","webpack:///./src/helpers/DataTableHelper.ts","webpack:///./src/pages/user/Admin.ts","webpack:///./src/pages/user/Admin.ts?a8af","webpack:///./src/pages/user/Admin.vue?327d","webpack:///./src/pages/user/User.vue","webpack:///./src/helpers/functions/GetExpanderClasses.ts","webpack:///./src/pages/user/User.ts","webpack:///./src/pages/user/User.ts?7a90","webpack:///./src/pages/user/User.vue?910c","webpack:///./src/pages/user/Index.ts","webpack:///./src/pages/user/Index.ts?ff26","webpack:///./src/pages/user/Index.vue?f426","webpack:///./src/pages/associationregister/Index.vue","webpack:///./src/models/api/association/AssociationRegistrationRequest.ts","webpack:///./src/services/ActivityService.ts","webpack:///./src/helpers/ValidationHelper.ts","webpack:///./src/helpers/functions/AdaptOrganizationNo.ts","webpack:///./src/pages/associationregister/Index.vue?2fe6","webpack:///./src/pages/associationregister/Index.vue?9ad0","webpack:///./src/pages/associationregister/Index.vue?cc38","webpack:///./src/pages/activity/Index.vue","webpack:///./src/models/api/activity/ActivityRegistrationRequest.ts","webpack:///./src/pages/activity/Index.vue?0f71","webpack:///./src/pages/activity/Index.vue?5f2a","webpack:///./src/pages/activity/Index.vue?a1a5","webpack:///./src/pages/setting/ContributionPeriods.vue","webpack:///./src/models/api/contributionPeriod/ContributionPeriod.ts","webpack:///./src/services/ContributionPeriodService.ts","webpack:///./src/components/ui/FakeInput.vue","webpack:///./src/components/ui/FakeInput.vue?890f","webpack:///./src/components/ui/FakeInput.vue?90c5","webpack:///./src/components/ui/FakeInput.vue?bca7","webpack:///./src/pages/setting/ContributionPeriods.vue?0640","webpack:///./src/pages/setting/ContributionPeriods.vue?d0b9","webpack:///./src/pages/setting/ContributionPeriods.vue?c23d","webpack:///./src/pages/setting/Logs.vue","webpack:///./src/services/LogService.ts","webpack:///./src/pages/setting/LogTypes.vue","webpack:///./src/models/api/logType/LogType.ts","webpack:///./src/services/LogTypeService.ts","webpack:///./src/pages/setting/LogTypes.vue?88e4","webpack:///./src/pages/setting/LogTypes.vue?929a","webpack:///./src/pages/setting/LogTypes.vue?87cb","webpack:///./src/pages/setting/Logs.vue?56de","webpack:///./src/pages/setting/Logs.vue?4357","webpack:///./src/pages/setting/Logs.vue?96e7","webpack:///./src/pages/confirmUser/Index.vue","webpack:///./src/pages/confirmUser/Index.vue?328e","webpack:///./src/pages/confirmUser/Index.vue?7b51","webpack:///./src/pages/confirmUser/Index.vue?6991","webpack:///./src/pages/setting/Index.vue","webpack:///./src/services/TabService.ts","webpack:///./src/pages/setting/Index.vue?9935","webpack:///./src/pages/setting/Index.vue?47bb","webpack:///./src/pages/setting/Index.vue?4ab4","webpack:///./src/pages/setting/ApplicationSettings.vue","webpack:///./src/pages/setting/ApplicationSettings.vue?7e3c","webpack:///./src/pages/setting/ApplicationSettings.vue?d020","webpack:///./src/pages/setting/ApplicationSettings.vue?b157","webpack:///./src/pages/setting/Themes.vue","webpack:///./src/pages/setting/Themes.vue?6cc2","webpack:///./src/pages/setting/Themes.vue?8056","webpack:///./src/pages/setting/Themes.vue?6fd1","webpack:///./src/pages/person/Index.vue","webpack:///./src/services/PersonService.ts","webpack:///./src/models/api/person/PersonRegistrationRequest.ts","webpack:///./src/components/ui/IsDirtyHandler.ts","webpack:///./src/helpers/functions/AdaptSSN.ts","webpack:///./src/helpers/functions/AdaptZipCode.ts","webpack:///./src/helpers/functions/ValidateSSN.ts","webpack:///./src/helpers/functions/ValidateSSNSetting.ts","webpack:///./src/pages/person/Index.vue?f7e5","webpack:///./src/pages/person/Index.vue?3cb0","webpack:///./src/pages/person/Index.vue?2869","webpack:///./src/pages/groups/Index.vue","webpack:///./src/services/GroupService.ts","webpack:///./src/models/api/group/GroupRegistrationRequest.ts","webpack:///./src/components/dialogs/AddParticipantDialog.vue","webpack:///./src/models/api/participant-group/ParticipantGroupRegisterRequest.ts","webpack:///./src/services/ParticipantService.ts","webpack:///./src/components/dialogs/AddPersonToGroupDialog.vue","webpack:///./src/components/dialogs/AddPersonToGroupDialog.vue?ab50","webpack:///./src/components/dialogs/AddPersonToGroupDialog.vue?f8a6","webpack:///./src/components/dialogs/AddPersonToGroupDialog.vue?d3e1","webpack:///./src/components/dialogs/AddParticipantDialog.vue?47a9","webpack:///./src/components/dialogs/AddParticipantDialog.vue?508b","webpack:///./src/components/dialogs/AddParticipantDialog.vue?4e36","webpack:///./src/components/dialogs/EditParticipantDialog.vue","webpack:///./src/components/dialogs/EditParticipantDialog.vue?5bd8","webpack:///./src/components/dialogs/EditParticipantDialog.vue?a335","webpack:///./src/components/dialogs/EditParticipantDialog.vue?74e1","webpack:///./src/pages/groups/Index.vue?f0c8","webpack:///./src/pages/groups/Index.vue?41da","webpack:///./src/pages/groups/Index.vue?c776","webpack:///./src/pages/changePassword/Index.vue","webpack:///./src/pages/changePassword/Index.vue?2501","webpack:///./src/pages/changePassword/Index.vue?c127","webpack:///./src/pages/changePassword/Index.vue?cfec","webpack:///./src/pages/association/association.vue","webpack:///./src/pages/association/association.vue?bd7e","webpack:///./src/pages/association/association.vue?1cb6","webpack:///./src/pages/association/association.vue?6206","webpack:///./src/pages/association/association-admin-home.vue","webpack:///./src/pages/association/association-admin-home.vue?614f","webpack:///./src/pages/association/association-admin-home.vue?d0d6","webpack:///./src/pages/association/association-admin-home.vue?3cf3","webpack:///./src/pages/association/association-admin-report.vue","webpack:///./src/helpers/functions/DownloadDocument.ts","webpack:///./src/services/BatchExportFileService.ts","webpack:///./src/pages/association/association-admin-report.vue?833d","webpack:///./src/pages/association/association-admin-report.vue?5ebf","webpack:///./src/pages/association/association-admin-report.vue?f0c3","webpack:///./src/pages/association/association-occasions.vue","webpack:///./src/services/OccasionService.ts","webpack:///./src/models/api/occasion/OccasionCreate.ts","webpack:///./src/pages/association/association-occasions.vue?09ae","webpack:///./src/pages/association/association-occasions.vue?38fb","webpack:///./src/pages/association/association-occasions.vue?4f18","webpack:///./src/helpers/functions/Interceptors.ts","webpack:///./src/main.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","AssociationRoleEnum","Gender","AspNetRole","ApplicationSetting","Frequencies","OccasionTypes","BatchStates","ImportPersonStatus","LogLevels","LogTypes","isAuthenticated","on","stopPropagation","showMenu","_e","staticClass","_vm","_c","directives","expression","ref","staticStyle","attrs","$vuetify","lang","selectedAssociationName","click","$event","associationCookie","fn","model","callback","associationSearchText","rawName","userInfo","showAssociationSelectMenu2","associationUserIds","setAssociationUser","selectedAssociationUserId","logout","_v","staticRenderFns","UserInfo","Helper","vue","this","logoffSRC","$store","$router","$cookies","store","router","cookies","console","log","set","commit","then","location","reload","catch","UserHelper","setAuthorizationToken","token","axios","defaults","headers","common","SelectListItem","text","Service","association","Promise","post","id","searchText","associationData","delete","AssociationService","color","timeout","$emit","scopedSlots","Vue","extend","props","type","Number","default","String","shown","Boolean","queueLength","component","SnackbarMessage","message","config","Authorization","email","UserService","use","Vuex","vuexLocalStorage","VuexPersist","storage","sessionStorage","reducer","state","sessionModule","currentLanguage","selectedAssociation","mutations","setSelectedAssociation","_a","associationName","setCurrentLanguage","setUserInfo","actions","getters","isInRole","role","aspNetRole","isInAssociationRole","_b","associationUserInfo","isSystemAdmin","SystemAdmin","isMunicipalityAdmin","MunicipalityAdmin","isAssociationUser","AssociationUser","isAssociationUser_GroupAdmin","AssociationGroupAdmin","isAssociationUser_Admin","AssociationAdmin","memoryModule","overlayCounter","showTabs","snackbarMessages","resetSnackbar","addSnackbarMessage","shiftSnackbarMessages","resetSnackbarMessagesDone","resetSnackbarMessages","addOverlay","removeOverlay","hideTabs","getSnackbarMessagesLength","getSnackbarMessage","Store","plugins","plugin","DEFAULT_TIMEOUT_SUCCESS","DEFAULT_TIMEOUT_WARNING","manualClose","snackbarMessage","SnackbarService","AssociationUserInfo","keyName","settingKeyNames","image","params","SettingService","Router","components","Notify","showApp","showAssociationSelectMenu","showFlagsMenu","showUserStatus","langs","iconSrc","require","associations","showSnackbarMessage","created","process","storedCurrentLanguage","current","changeLanguage","setTheme","methods","getApplicationSetting","settings","app","findIndex","val","getApplicationSettingColor","settingString","toString","colorText","JSON","parse","e","GetSettingsByKeyNames","response","themeAccent","_this","ThemeAccent","themeError","ThemeError","themeInfo","ThemeInfo","themePrimary","ThemePrimary","themeSecondary","ThemeSecondary","themeSuccess","ThemeSuccess","themeWarning","ThemeWarning","theme","themes","light","error","errors","join","colors","blue","darken4","lime","lightGreen","deepOrange","darken3","amber","blueGrey","finally","SetAssociationUser","parseInt","setValuesFromAuthenticationResponse","handleAuthentication","addErrorMessage","hasMultipleAssociationUsers","getAssociationUsers","GetAssociationUsers","items","setTimeout","$refs","associationUserSelect","$el","focus","getAssociationRoleName","getAspNetRoleName","logoff","navigateToItem","url","closeSnackbarMessage","watch","find","href","indexOf","showAssociationSelectButton","GetAssociationSelectListItems","initiator","homeRouterLink","menuIcon","firstFlag","showFlagsButton","firstAssociation","unselectAssociationButton","showAssociationSelectButton2","computed","__assign","getIcon","item","keys","forEach","index","showOverlay","mapGetters","sv","narvaroGo","version","accessibilityStatement","createdBy","register","modify","modified","modifiedBy","updated","updatedBy","search","login","password","emailAddress","required","information","errormessage","add","new","save","cancel","edit","change","close","choose","chooseAll","ok","to","from","yes","no","savedAll","savedChanges","saved","saving","savedValues","update","date","dateFrom","dateTo","time","timeFrom","timeTo","invalidEmail","invalidZipCode","formatSSN","invalidSSN","invalidOrgNo","mustBeAfter","generalErrorMessage","deleteDialogMessage","female","male","member","changeAssociation","selectAssociation","unselectAssociation","menu_user","menu_home","menu_settings","menu_association_register","menu_person","menu_activity","menu_logs","menu_themes","menu_association_attendance","menu_groups_attendance","download","downloaded","fetched","fetchedByContributionSystem","formChangedMessage","unreadMessages","attendance","back","logs","municipalityLogoType","batch","statisticsAndExport","batchState","Pending","Running","Done","Error","contributionFiles","exportFiles","generateExportFileFor","existingExportFileWillBeReplaced","existingExportFileIsLocked","exportGroups","exportOccasions","registerAssociation","orgNo","editAssociation","pageHeader","nameAlreadyExists","orgNoAlreadyExists","externalIdAlreadyExists","externalId","administrateAssociation","administrateGroups","associationsActivities","contributionPeriod","contributionPeriods","editContributionPeriod","lastRegistrationDate","confirmUser","newPassword","repeatNewPassword","passwordUpdatedMessage","emailVerifiedMessage","sendingToLoginPageMessage","passwordDoesNotMatch","applicationsetting","AccessibilityStatementUrl","Municipality","IsSSNMandatory","FormatOfDateOfBirth","ZipCodeVisibleAndMandatory","CityVisibleAndMandatory","MailO365ClientId","MailO365TenantId","MailO365ServerUserName","MailO365ServerUserPassword","ApplicationSettingsHeadline","ParticipantSettingsHeadline","MaílServerSettingsHeadline","MiscellaneousHeadline","MunicipalityName","MunicipalityLogo","SaveLogoType","RemoveLogoTypeImage","MaxNumberOfAssociations","logType","logLevel","logTypes","Trace","Debug","Information","Warning","Critical","None","System","User","Association","Group","Person","Occasion","ExportFile","Batch","editLogLevel","logTypeSettings","person","hasNoSwedishSsn","isDisabled","firstName","lastName","socialSecurityNumber","gender","mobile","telephoneNumber","zipCode","city","address","isLeader","registerNewPerson","searchPersonRegister","editPerson","persons","dateOfBirth","SSNAlreadyExists","createUserHeadline","noLogin","emailWillBeUpdatedInformation","loginVerified","emailAlreadyUsedForAUserRemoveAndAddMessage","groups","mandatoryDataIsMissing","sendNewConfirmEmail","invalidPhoneNumber","invalidDate","emailIsMissingCannotCreateAdmin","deletePerson","group","groupHead","groupName","isDisabledShort","isAdmin","participants","leaders","addParticipantGroup","addParticipantGroups","showGroup","participantGroups","additionalInfoDelete","additionalInfoDeleteParticipant","groupNameToLong","occasion","createOccasion","editOccasion","recurringOccasion","unconfirmed","addPerson","coming","confirmed","occasions","unconfirmedOccasions","comingOccasions","confirmedOccasions","occasionType","recurring","frequency","confirmParticipants","unconfirmParticipants","confirmOccasionText","personDisabled","temporaryLeaderShort","isPresent","hideField","showField","occasionsInSeries","addGuest","removeGuest","guest","EveryWeek","EveryOtherWeek","EveryFourthWeek","Training","Game","Meeting","Other","removeOccasionAndFollowingDialogText","removeOccasion","removeOccasionAndFollowing","participantsConfirmed","participantsConfirmedBy","numberOfParticipants","numberOfLeaders","personMandatoryDataIsMissing","personMandatoryDataIsMissingInfo","addPersonToGroup","addPersonToGroupText","optionTemporary","optionGroup","registerAttendance","confirmAttendance","activity","activityName","addActivity","editActivity","sSN","incompleteSSNAllowed","completeSSNMandatory","importPersons","NoFileUploaded","importExcel","importPersonStatus","NoPersonsSelected","read","selectfile","downloadExampelfile","New","IsChanged","ExistAndNothingChanged","SocialSecurityNoInvalid","AssociationUserAndEmailChanged","user","selectAssociationUser","associationUserId","registerAdministrator","emailConfirmed","userCreatedMessage","removedMessage","sendConfirmEmail","confirmEmailSent","admins","associationUsers","forgotPassword","resetPassword","resetPasswordSent","oldPassword","changePassword","passwordChanged","en","createNewAdministrator","Vuetify","locales","primary","accent","secondary","success","warning","info","dark","indigo","showResetPassword","resetPasswordEmail","showSelectAssociationUser","imageLogoFile","preventDefault","showPassword","render","controller","route","GetById","undefined","GenericService","loading","apiToken","rules","test","accessibilityStatementUrl","databaseVersion","welcomeTextWithMunicipalityName","GetDatabaseVersion","GetAccessibilityStatementUrl","getMunicipalityNameWithLoginPageText","getMunicipalityLogo","GetMunicipalityNameWithLoginPageText","GetMunicipalityLogo","lastIndexOf","validateEmailUrl","substr","SendResetPassword","emailConfirmationUrl","addSuccessMessage","submit","Login","testAuthorization","Get","appVersion","buildDate","_self","_setup","showDelete","_s","showDialog","itemToDeleteId","itemToDeleteName","additionalInfo","handler","deep","emitResult","deleteItem","showDeleteDialog","breakpoint","showCreate","AdminRegistrationRequest","header","substring","DataTableHelper","DeleteDialog","expanded","singleExpand","totalCount","options","align","sortable","roles","selectedRole","users","adaptTableHeaders","GetRegisterRoles","getRoleName","getAdminsPaged","closeCreate","clearCreateForm","sortBy","sortDesc","page","itemsPerPage","_d","GetAdminsPaged","canExpand","SendConfirmEmail","RegisterAdmin","deleteCallback","DeleteUser","_u","expand","isExpanded","GetExpanderClasses","headersAssociationUsers","getUsersPaged","getExpanderClass","getRoles","map","uniqueRoles","Array","Set","GetUsersPaged","Admin","prepareAssociationEdit","computedActivitiesTableHeaders","associationActivityDtos","isSSNMandatory","dialogOpen","registerAssociationFormValid","registrationRequest","fixOrganizationNo","activities","selectedActivities","$$v","settingIsSSNMandatory","class","editDialogOpen","$set","fixOrganizationNoEdit","editAssociationRequest","AssociationRegistrationRequest","organisationNumber","associationActivities","activityData","associationId","ActivityService","ssn","replace","split","reverse","sum","reduce","previous","ValidationHelper","AdaptOrganizationNo","organizationNumber","associationTableHeaders","width","isTableLoading","associationActivitiesTableHeaders","activitiesTableHeadersInExpandable","itemsAddAssociationActivities","selectedAddAssociationActivities","canRegisterAssociationMessage","getAssociations","getIsSSNMandatorySettings","getCanRegisterAssociation","open","$nextTick","getActivities","associationForm","reset","editForm","filter","h","adaptOrganizationNo","CanRegisterAssociation","statusText","GetAssociation","GetActivitiesAndSelectedAssociationActivities","request","RegisterAssociation","removeAssociation","RemoveAssociation","itemToUpdate","EditAssociation","GetAssociations","sent","toLowerCase","uniqueAssociationName","x","trim","toLocaleLowerCase","uniqueAssociationOrgNo","uniqueAssociationExternalId","uniqueAssociationNameEdit","f","uniqueAssociationOrgNoEdit","uniqueAssociationExternalIdEdit","checkValidOrgNo","isValid","Mod10CheckSocialSecurityOrganizationNumber","registerActivityFormValid","ActivityRegistrationRequest","activityTableHeaders","currentActivity","editActivityRequest","activityForm","prepareActivityEdit","assign","registerActivity","RegisterActivity","getActivity","GetActivity","removeActivity","RemoveActivity","EditActivity","GetActivities","uniqueActivityName","uniqueActivityNameEdit","registerFormValid","editItem","showDateEdit","ContributionPeriod","startDate","endDate","ContributionPeriodService","label","FakeInput","tableHeaders","getAll","prepareEdit","SaveContributionPeriod","remove","RemoveContributionPeriod","GetContributionPeriods","selectedLogType","LogService","LogTypeService","LogType","logLevels","values","getLogLevelName","SaveLogType","GetLogTypes","LogTypesPage","Date","toLocaleDateString","getLogTypeName","getPaged","GetLogsPaged","showErrors","_l","matchingPasswords","passwordRepeat","dialogMessage","hasPassword","emailConfirmationToken","passwordResetToken","globalPassword","$route","query","HasPassword","v","redirect","ConfirmUser","form","validate","TabService","toggleTabs","isTabsVisible","getApplicationSettingName","getApplicationSettingIndex","birthdateFormats","selectedFile","getSettings","saveLogo","formData","FormData","append","SaveImage","removeLogo","RemoveImage","GetSettings","SaveSetting","green","yellow","colorObject","setSetting","stringify","associationRole","preparePersonEdit","dialogImportOpen","importFormValid","filerequired","chosenFile","importFile","getImportPersonStatusName","selected","xs","registerPersonFormValid","personRequest","getValidationRules","changeEmail","emailConfirmUrl","groupId","personData","returnPersonId","file","PersonService","PersonRegistrationRequest","groupIds","formIsDirty","originalObject","isDirtyCheck","confirm","isDirtySet","isDirtyReset","isDirtyChangeTracker","getIsDirty","beforeRouteLeave","next","adaptSSN","AdaptZipCode","validateSSN","validateDateOfBirth","formatDateOfBirth","rxDatePattern","formatdate","dtArray","match","dtYear","dtMonth","dtDay","isleap","validateSSNDate","yearStr","monthStr","dayStr","year","month","day","currentYear","getFullYear","daysInMonth","getDate","validateSSNSettings","charAt","IsDirtyHandler","cellClass","genders","selectedGender","genderId","ssnFormat","showGenderSelect","showZipCode","showCity","oldEmail","oldAssociationRole","showEmailWillBeUpdatedInformation","groupSearchText","showGroupDrp","importedTotalCount","importedItems","importedHeaders","phoneRules","getSettingsByKeyName","getAssociationUserGroups","personForm","importForm","getPersonsPaged","checkValidSSN","validDateOfBirth","validateSSNSetting","fixSSN","fixZipCode","adaptZipCode","getRoleText","newEmail","changeRole","GetPerson","closeDialog","removePerson","RemovePerson","savePerson","confirmEmailUrl","RegisterPerson","EditPerson","GetPersonsPaged","GetAssociationsGroupsSelectListItems","insertOrUpdateFromImport","HandleImport","GetPersonsFromFile","isSelectable","isPersonSelectable","personStatus","groupFormValid","computedParticipantGroupTableHeaders","isTableLoadingParticipantGroup","isAssociationAdmin","itemIdToBeEdited","showDeleteDialogParticipant","itemToDeleteNameParticipant","prepareAddPersons","saveGroup","dialogOpenAddPersons","itemsAddPersons","selectedAddPersons","editParticipantDialogOpen","itemToDeleteIdParticipant","removeParticipant","GroupService","GroupRegistrationRequest","associationActivityId","isDeleted","participantSearchTerm","selectedParticipant","participantRequestValid","toggleShowMoreFields","showMoreFields","participantRequest","fromOccasion","validateParticipant","addPersonToGroupDialogOpen","ParticipantGroupRegistrationRequest","personId","ParticipantService","addPersonDialogIsOpen","dialogClosed","AddPersonToGroupDialog","isOccasionParticipant","selectedOccasionGroupId","addParticipantDialogOpen","participantSearchTermTimeStamp","searchedParticipants","isParticipantSearchLoading","emailRules","zipCodeRules","newValue","resetData","timeStapm_1","searchParticipants","nameBlob","personDialog","addParticipant","emitParticipant","resetValidation","itemId","saveEdit","AddParticipantDialog","EditParticipantDialog","groupTableHeaders","participantGroupTableHeaders","addPersonsTableHeaders","isTableLoadingAddPersons","selectedGroupAddPersons","windowWidth","addEventListener","resize","getGroups","groupForm","hide","innerWidth","participant","some","updatedParticipant","isDirty","pers","hasChanged","_f","_g","_j","_h","getParticipant","addPersons","isInGroup","getPersons","GetPersonsForAddToGroup","prepareGroupEdit","GetGroup","EditGroup","showSuccess","isArray","informations","addWarningMessage","each","removeGroup","RemoveGroup","editGroup","GetGroups","GetAssociationActivities","uniqueGroupName","resetForm","ChangePassword","showMessage","selectedContributionPeriod","periodStats","isExportFileLocked","getExportFile","deleteBatch","downloadDocument","filename","getFilename","fileBlob","Blob","URL","createObjectURL","link","document","createElement","setAttribute","body","appendChild","disposition","getResponseHeader","decodeURIComponent","contributionPeriodId","periodId","idsString","batchId","BatchExportFileService","contributionPeriodsRegistration","disableAddBatchJobButton","totalCountStats","isTableLoadingStats","tableHeadersStats","getItemsPaged","GetSelectListItems","getPeriodInformation","GetRegistrationSelectListItems","timerGetWorkingBatches","canExportFile","getPeriodFileFlags","GetPeriodFileFlags","hasExportFile","GetPeriodStats","contributionPeriodName","DeleteBatchJob","isBusy","getBatchStateName","updateItemsByIds","GetBatchJobsByIds","fetchedItems","fileName","numberOfGroups","numberOfOccasions","GetBatchJobsPaged","GetFile","generateExportFile","AddBatchJob","ongoingSaves","itemsUnconfirmed","isMobile","dayOfWeekText","prepareOccasionEdit","prepareOccasionConfirm","occasionsTab","optionsComing","isTableLoadingComing","itemsComing","prepareDeleteFollowingDialog","tableHeadersConfirmed","optionsConfirmed","isTableLoadingConfirmed","itemsConfirmed","closeEdit","domProps","editOccasionRequest","locations","editOccasionRecurringOccasions","saveOccasion","dialogKey","confirmDialogOpen","closeConfirm","itemsConfirm","isParticipantsConfirmed","allParticipantsSelected","isTableLoadingConfirm","saveIsTemporaryLeader","selectAllLeaders","allLeadersSelected","isTemporaryLeader","allPersonsHasMandatoryData","dialog-closed","createDialogOpen","frequencies","showDeleteRecurringDialog","editPersonDialogOpen","closePersonEdit","isActivitySSNMandatory","occasionId","OccasionService","OccasionCreate","totalCountComing","totalCountConfirmed","optionsUnconfirmed","totalCountUnconfirmed","isTableLoadingUnconfirmed","tableHeadersConfirm","occasionConfirm","showTimeFromCreate","showTimeToCreate","showDateFromCreate","showDateToCreate","showTimeFromEdit","showTimeToEdit","registerOccasionFormValid","selectedFrequency","occasionTypes","searchLocation","GetLocations","getOccasionsComing","getOccasionsConfirmed","getOccasionsUnconfirmed","createForm","sumLeaders","sumParticipants","increaseOngoingSaves","decreaseOngoingSaves","resetOngoingSaves","timeToEditRule","timeToCreateRule","dateToCreateRule","prepareDeleteDialog","dateText","isRecurring","occasionParticipantId","RemoveParticipant","AddParticipant","updateAllParticipantsSelected","selectAllParticipants","saveIsPresent","updateAllLeadersSelected","getEditGroupName","getGroupIndex","saveParticipantsConfirmed","SetParticipantsConfirmed","getParticipants","GetParticipants","hasMandatoryData","SetIsTemporaryLeader","SetIsPresent","GetOccasion","GetRecurringOccasions","responseOcc","locationCreateCombobox","blur","CreateOccasion","RemoveOccasion","RemoveOccasionAndFollowing","locationEditCombobox","SaveOccasion","showPassed","GetOccasionsPaged","GetConfirmedPaged","GetUnconfirmedPaged","setup","interceptors","status","reject","productionTip","routes","path","Home","AssociationRegister","children","AssociationReport","Groups","beforeEnter","Activity","Setting","ApplicationSettings","ContributionPeriods","Logs","Themes","VueRouter","afterEach","resetMessages","VueCookies","interceptorsSetup","vuetify","App","$mount"],"mappings":"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","file":"js/app.794d864d.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","module.exports = __webpack_public_path__ + \"img/united-kingdom.67184f51.svg\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notify.vue?vue&type=style&index=0&id=1fb7228e&prod&lang=css\"","module.exports = __webpack_public_path__ + \"img/sweden.1e0847fa.svg\";","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=f7b8e75c&prod&lang=scss\"","export enum AssociationRoleEnum {\r\n AssociationAdmin = 1,\r\n AssociationGroupAdmin = 2,\r\n}\r\n\r\nexport enum Gender {\r\n Female = 1,\r\n Male = 2,\r\n}\r\n\r\nexport enum AspNetRole {\r\n SystemAdmin = 1,\r\n MunicipalityAdmin = 2,\r\n AssociationUser = 3,\r\n}\r\n\r\nexport enum ApplicationSetting {\r\n Municipality = 1,\r\n IsSSNMandatory = 2,\r\n FormatOfDateOfBirth = 3,\r\n ZipCodeVisibleAndMandatory = 4,\r\n CityVisibleAndMandatory = 5,\r\n MailO365ClientId = 6,\r\n MailO365TenantId = 7,\r\n MailO365ServerUserName = 8,\r\n MailO365ServerUserPassword = 9,\r\n AccessibilityStatementUrl = 10,\r\n MunicipalityName = 11,\r\n MunicipalityLogo = 12,\r\n ApiKey = 13,\r\n ThemePrimary = 14,\r\n ThemeAccent = 15,\r\n ThemeSecondary = 16,\r\n ThemeSuccess = 17,\r\n ThemeInfo = 18,\r\n ThemeWarning = 19,\r\n ThemeError = 20,\r\n MaxNumberOfAssociations = 21,\r\n}\r\n\r\nexport enum Frequencies {\r\n EveryWeek = 1,\r\n EveryOtherWeek = 2,\r\n EveryFourthWeek = 3,\r\n}\r\n\r\nexport enum OccasionTypes {\r\n Training = 1,\r\n Game = 2,\r\n Meeting = 3,\r\n Other = 4,\r\n}\r\n\r\nexport enum BatchStates {\r\n Pending = 1,\r\n Running = 2,\r\n Done = 3,\r\n Error = 4,\r\n}\r\n\r\nexport enum ImportPersonStatus {\r\n New = 1,\r\n IsChanged = 2,\r\n ExistAndNothingChanged = 3,\r\n SocialSecurityNoInvalid = 4,\r\n AssociationUserAndEmailChanged = 5,\r\n}\r\n\r\nexport enum LogLevels {\r\n Trace = 0,\r\n Debug = 1,\r\n Information = 2,\r\n Warning = 3,\r\n Error = 4,\r\n Critical = 5,\r\n None = 6,\r\n}\r\n\r\nexport enum LogTypes {\r\n System = 1,\r\n User = 2,\r\n Association = 3,\r\n Group = 4,\r\n Person = 5,\r\n Occasion = 6,\r\n ExportFile = 7,\r\n Batch = 8,\r\n}","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.showApp)?_c('v-app',[_c('v-overlay',{attrs:{\"color\":\"white\",\"z-index\":\"2000\",\"value\":_vm.showOverlay}},[_c('v-progress-circular',{attrs:{\"color\":\"primary\",\"indeterminate\":\"\",\"absolute\":\"\",\"size\":\"64\"}})],1),_c('v-app-bar',{attrs:{\"app\":\"\",\"color\":\"primary\",\"dark\":\"\",\"elevation\":\"0\"}},[(_vm.isAuthenticated)?_c('v-app-bar-nav-icon',{ref:\"menuIcon\",on:{\"click\":function($event){$event.stopPropagation();_vm.showMenu = !_vm.showMenu}}}):_vm._e(),_c('div',{staticClass:\"pl-2 align-center text-h4 d-none d-sm-flex\"},[_vm._v(\"NärvaroGO\")]),(!_vm.userInfo.associationUserInfo && !_vm.userInfo.aspNetRole)?_c('div',{staticClass:\"pl-2 align-center text-h4 d-block d-sm-none\"},[_vm._v(\"NärvaroGO\")]):_vm._e(),_c('v-spacer'),(_vm.userInfo && _vm.userInfo.associationUserInfo)?_c('div',{staticClass:\"mx-2\"},[_c('div',[_vm._v(_vm._s(_vm.userInfo.associationUserInfo.name))]),_c('div',{staticClass:\"body-2\"},[_c('span',{staticClass:\"d-none d-sm-flex\"},[_vm._v(\" \"+_vm._s(_vm.getAssociationRoleName(_vm.userInfo.associationUserInfo.role))+\" / \"+_vm._s(_vm.userInfo.associationUserInfo.associationName)+\" \")]),_c('span',{staticClass:\"d-flex d-sm-none\"},[_vm._v(\" \"+_vm._s(_vm.userInfo.associationUserInfo.associationName)+\" \")])])]):_vm._e(),(_vm.userInfo && !_vm.userInfo.associationUserInfo && _vm.userInfo.aspNetRole)?_c('div',{staticClass:\"mx-2\"},[_c('div',[_vm._v(_vm._s(_vm.userInfo.name))]),_c('div',{staticClass:\"body-2\"},[_vm._v(\" \"+_vm._s(_vm.getAspNetRoleName(_vm.userInfo.aspNetRole))+\" \"),(_vm.associationCookie)?_c('span',[_vm._v(\"/\")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.selectedAssociationName)+\" \")])]):_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.userInfo && !_vm.userInfo.associationUserInfo && _vm.userInfo.aspNetRole && _vm.associationCookie),expression:\"userInfo && !userInfo.associationUserInfo && userInfo.aspNetRole && associationCookie\"}],staticClass:\"mx-0\"},[_c('v-btn',{ref:\"unselectAssociationButton\",staticClass:\"px-2 px-sm-4\",staticStyle:{\"min-width\":\"32px\"},attrs:{\"title\":_vm.$vuetify.lang.t('$vuetify.unselectAssociation') + ' ' + _vm.selectedAssociationName,\"text\":\"\"},on:{\"click\":function($event){_vm.associationCookie = ''}}},[_c('span',{staticClass:\"mr-2 d-none d-md-flex\"},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t(\"$vuetify.unselectAssociation\"))+\" \")]),_c('v-icon',[_vm._v(\" mdi-shield-remove \")])],1)],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.userInfo && !_vm.userInfo.associationUserInfo && _vm.userInfo.aspNetRole && !_vm.associationCookie),expression:\"userInfo && !userInfo.associationUserInfo && userInfo.aspNetRole && !associationCookie\"}],staticClass:\"mx-2\"},[_c('v-menu',{attrs:{\"offset-y\":\"\",\"close-on-content-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({ref:\"showAssociationSelectButton\",staticClass:\"px-2 px-sm-4\",staticStyle:{\"min-width\":\"32px\"},attrs:{\"title\":_vm.$vuetify.lang.t('$vuetify.selectAssociation'),\"text\":\"\"}},'v-btn',attrs,false),on),[_c('span',{staticClass:\"mr-2 d-none d-md-flex\"},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t(\"$vuetify.selectAssociation\"))+\" \")]),_c('v-icon',[_vm._v(\" mdi-shield-outline \")])],1)]}}],null,false,2157292673),model:{value:(_vm.showAssociationSelectMenu),callback:function ($$v) {_vm.showAssociationSelectMenu=$$v},expression:\"showAssociationSelectMenu\"}},[_c('v-list',{staticClass:\"py-0\"},[_c('v-list-item',[_c('v-autocomplete',{ref:\"firstAssociation\",attrs:{\"items\":_vm.associations,\"search-input\":_vm.associationSearchText},on:{\"update:searchInput\":function($event){_vm.associationSearchText=$event},\"update:search-input\":function($event){_vm.associationSearchText=$event}},model:{value:(_vm.associationCookie),callback:function ($$v) {_vm.associationCookie=$$v},expression:\"associationCookie\"}})],1)],1)],1)],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.userInfo && _vm.userInfo.associationUserInfo && _vm.userInfo.hasMultipleAssociationUsers),expression:\"userInfo && userInfo.associationUserInfo && userInfo.hasMultipleAssociationUsers\"}],staticClass:\"mx-2\"},[_c('v-menu',{attrs:{\"offset-y\":\"\",\"close-on-content-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({ref:\"showAssociationSelectButton2\",staticClass:\"px-2 px-sm-4\",staticStyle:{\"min-width\":\"32px\"},attrs:{\"title\":_vm.$vuetify.lang.t('$vuetify.changeAssociation'),\"text\":\"\"},on:{\"click\":function($event){return _vm.getAssociationUsers()}}},'v-btn',attrs,false),on),[_c('span',{staticClass:\"mr-2 d-none d-md-flex\"},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t(\"$vuetify.changeAssociation\"))+\" \")]),_c('v-icon',[_vm._v(\" mdi-shield-sync \")])],1)]}}],null,false,1731967482),model:{value:(_vm.showAssociationSelectMenu2),callback:function ($$v) {_vm.showAssociationSelectMenu2=$$v},expression:\"showAssociationSelectMenu2\"}},[_c('v-list',{staticClass:\"py-0\"},[_c('v-list-item',[_c('v-select',{ref:\"associationUserSelect\",attrs:{\"items\":_vm.associationUserIds,\"label\":_vm.$vuetify.lang.t('$vuetify.user.associationUserId')},on:{\"change\":function($event){return _vm.setAssociationUser()}},model:{value:(_vm.selectedAssociationUserId),callback:function ($$v) {_vm.selectedAssociationUserId=$$v},expression:\"selectedAssociationUserId\"}})],1)],1)],1)],1),_c('div',[(_vm.isAuthenticated)?_c('v-btn',{staticClass:\"px-2 px-sm-4\",staticStyle:{\"min-width\":\"32px\"},attrs:{\"title\":_vm.$vuetify.lang.t('$vuetify.logout'),\"text\":\"\"},on:{\"click\":function($event){return _vm.logout()}}},[_c('span',{staticClass:\"mr-2 d-none d-sm-flex\"},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t(\"$vuetify.logout\"))+\" \")]),_c('v-icon',[_vm._v(\"mdi-logout\")])],1):_vm._e()],1)],1),_c('v-navigation-drawer',{attrs:{\"absolute\":\"\",\"temporary\":\"\"},model:{value:(_vm.showMenu),callback:function ($$v) {_vm.showMenu=$$v},expression:\"showMenu\"}},[_c('v-list',{attrs:{\"nav\":\"\",\"dense\":\"\"}},[_c('v-list-item-group',{attrs:{\"active-class\":\"primary--text\"}},[_c('v-list-item',{ref:\"homeRouterLink\",attrs:{\"to\":\"/\"}},[_c('v-list-item-title',{staticStyle:{\"font-size\":\"medium\",\"overflow\":\"visible\"}},[_vm._v(\" \"+_vm._s(_vm.isAssociationUser ? _vm.$vuetify.lang.t('$vuetify.information') : _vm.$vuetify.lang.t(\"$vuetify.menu_home\"))+\" \")])],1),(((_vm.isSystemAdmin || _vm.isMunicipalityAdmin) && _vm.associationCookie) || _vm.isAssociationUser)?_c('v-list-item',{attrs:{\"to\":\"/association\"}},[_c('v-list-item-title',{staticStyle:{\"font-size\":\"medium\",\"overflow\":\"visible\"}},[_vm._v(\" \"+_vm._s(!_vm.isAssociationUser_GroupAdmin ? _vm.$vuetify.lang.t('$vuetify.menu_association_attendance') : _vm.$vuetify.lang.t('$vuetify.menu_groups_attendance'))+\" \")])],1):_vm._e(),(_vm.isSystemAdmin || _vm.isMunicipalityAdmin)?_c('v-list-item',{attrs:{\"to\":\"/user\"}},[_c('v-list-item-title',{staticStyle:{\"font-size\":\"medium\",\"overflow\":\"visible\"}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t(\"$vuetify.menu_user\"))+\" \")])],1):_vm._e(),(_vm.isSystemAdmin || _vm.isMunicipalityAdmin)?_c('v-list-item',{attrs:{\"to\":\"/setting\"}},[_c('v-list-item-title',{staticStyle:{\"font-size\":\"medium\",\"overflow\":\"visible\"}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t(\"$vuetify.menu_settings\"))+\" \")])],1):_vm._e(),(_vm.isSystemAdmin || _vm.isMunicipalityAdmin)?_c('v-list-item',{attrs:{\"to\":\"/activity\"}},[_c('v-list-item-title',{staticStyle:{\"font-size\":\"medium\",\"overflow\":\"visible\"}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t(\"$vuetify.menu_activity\"))+\" \")])],1):_vm._e(),(_vm.isSystemAdmin || _vm.isMunicipalityAdmin)?_c('v-list-item',{attrs:{\"to\":\"/associationregister\"}},[_c('v-list-item-title',{staticStyle:{\"font-size\":\"medium\",\"overflow\":\"visible\"}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t(\"$vuetify.menu_association_register\"))+\" \")])],1):_vm._e(),_c('v-divider',{staticClass:\"ma-2\"}),(_vm.isAuthenticated)?_c('v-list-item',{attrs:{\"to\":\"/changePassword\"}},[_c('v-list-item-title',{staticStyle:{\"font-size\":\"medium\",\"overflow\":\"visible\"}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t(\"$vuetify.user.changePassword\"))+\" \")])],1):_vm._e()],1)],1)],1),_c('v-main',[(_vm.showUserStatus)?_c('v-row',{staticClass:\"ma-0 pa-0\"},[_c('v-col',{staticClass:\"ma-0 pa-0\",attrs:{\"col-2\":\"\"}},[_c('div',{staticClass:\"body-2\"},[_vm._v(\"isAuthenticated\")]),(_vm.isAuthenticated)?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"green darken-2\"}},[_vm._v(\" mdi-check \")]):_vm._e(),(!_vm.isAuthenticated)?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red darken-2\"}},[_vm._v(\" mdi-minus \")]):_vm._e()],1),_c('v-col',{staticClass:\"ma-0 pa-0\",attrs:{\"col-2\":\"\"}},[_c('div',{staticClass:\"body-2\"},[_vm._v(\"isSystemAdmin\")]),(_vm.isSystemAdmin)?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"green darken-2\"}},[_vm._v(\" mdi-check \")]):_vm._e(),(!_vm.isSystemAdmin)?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red darken-2\"}},[_vm._v(\" mdi-minus \")]):_vm._e()],1),_c('v-col',{staticClass:\"ma-0 pa-0\",attrs:{\"col-2\":\"\"}},[_c('div',{staticClass:\"body-2\"},[_vm._v(\"isMunicipalityAdmin\")]),(_vm.isMunicipalityAdmin)?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"green darken-2\"}},[_vm._v(\" mdi-check \")]):_vm._e(),(!_vm.isMunicipalityAdmin)?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red darken-2\"}},[_vm._v(\" mdi-minus \")]):_vm._e()],1),_c('v-col',{staticClass:\"ma-0 pa-0\",attrs:{\"col-2\":\"\"}},[_c('div',{staticClass:\"body-2\"},[_vm._v(\"isAssociationUser\")]),(_vm.isAssociationUser)?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"green darken-2\"}},[_vm._v(\" mdi-check \")]):_vm._e(),(!_vm.isAssociationUser)?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red darken-2\"}},[_vm._v(\" mdi-minus \")]):_vm._e()],1),_c('v-col',{staticClass:\"ma-0 pa-0\",attrs:{\"col-2\":\"\"}},[_c('div',{staticClass:\"body-2\"},[_vm._v(\"isAssociationUser_Admin\")]),(_vm.isAssociationUser_Admin)?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"green darken-2\"}},[_vm._v(\" mdi-check \")]):_vm._e(),(!_vm.isAssociationUser_Admin)?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red darken-2\"}},[_vm._v(\" mdi-minus \")]):_vm._e()],1),_c('v-col',{staticClass:\"ma-0 pa-0\",attrs:{\"col-2\":\"\"}},[_c('div',{staticClass:\"body-2\"},[_vm._v(\"isAssociationUser_GroupAdmin\")]),(_vm.isAssociationUser_GroupAdmin)?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"green darken-2\"}},[_vm._v(\" mdi-check \")]):_vm._e(),(!_vm.isAssociationUser_GroupAdmin)?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red darken-2\"}},[_vm._v(\" mdi-minus \")]):_vm._e()],1)],1):_vm._e(),_c('div',{attrs:{\"id\":\"app\"}},[_c('router-view')],1),_c('notify',{attrs:{\"queueLength\":_vm.getSnackbarMessagesLength-1 > 0 ? _vm.getSnackbarMessagesLength-1 : null,\"shown\":_vm.showSnackbarMessage,\"timeout\":_vm.snackbarMessage.timeout,\"text\":_vm.snackbarMessage.message,\"color\":_vm.snackbarMessage.color},on:{\"close\":function($event){return _vm.closeSnackbarMessage()}}})],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { AspNetRole } from '@/models/Enums';\r\nimport AssociationUserInfo from './AssociationUserInfo';\r\n\r\nexport default class UserInfo {\r\n public aspNetRole: AspNetRole = 0;\r\n public associationUserInfo: AssociationUserInfo | null = null;\r\n public name = \"\";\r\n public isAuthenticated = false;\r\n public token = \"\";\r\n public hasMultipleAssociationUsers = false;\r\n}\r\n\r\n","import UserInfo from \"@/models/api/user/UserInfo\";\r\nimport { VueRouter } from 'vue-router/types/router';\r\nimport { Store } from 'vuex'\r\nimport Vue from 'vue'\r\nimport { VueCookies } from 'vue-cookies';\r\n\r\nclass Helper {\r\n logoff(vue: Vue): void {\r\n this.logoffSRC(vue.$store, vue.$router, vue.$cookies);\r\n }\r\n\r\n logoffSRC(store: Store, router: VueRouter, cookies: VueCookies): void {\r\n console.log(\"LogOff called!\");\r\n\r\n cookies.set(\"selectedAssociation\", \"\");\r\n\r\n store.commit('setUserInfo', new UserInfo());\r\n store.commit('addOverlay');\r\n\r\n //push({ name: \"Login\" })\r\n router.push({ name: \"/\" }).then(() => {\r\n window.location.reload();\r\n }).catch(() => {\r\n window.location.reload();\r\n });\r\n }\r\n}\r\n\r\nexport const UserHelper = new Helper();\r\n","import axios from 'axios';\r\n\r\nexport default function setAuthorizationToken(token: string | null): void {\r\n if (token) {\r\n axios.defaults.headers.common['Authorization'] = \"bearer \" + token;\r\n } else {\r\n axios.defaults.headers.common['Authorization'] = \"\";\r\n }\r\n\r\n}","export default class SelectListItem {\r\n value: string | number = \"\";\r\n text: string = \"\";\r\n\r\n constructor(text: string, value: string | number) {\r\n this.value = value;\r\n this.text = text;\r\n }\r\n}","import Association from \"@/models/api/association/Association\";\r\nimport AssociationRegistrationRequest from \"@/models/api/association/AssociationRegistrationRequest\";\r\nimport axios, { AxiosResponse } from \"axios\";\r\nimport SelectListItem from '../models/SelectListItem';\r\n\r\nclass Service {\r\n public async EditAssociation(association: Association): Promise> {\r\n return axios.post(\"api/association/EditAssociation\", association);\r\n }\r\n\r\n public async GetAssociations(): Promise> {\r\n return axios.get('api/association/GetAssociations/');\r\n }\r\n\r\n public async GetAssociation(id: number): Promise> {\r\n return axios.get(`api/association/GetAssociation?id=${id}`);\r\n }\r\n\r\n public async GetCurrentAssociation(): Promise> {\r\n return axios.get('api/association/GetCurrentAssociation/');\r\n }\r\n\r\n public async GetAssociationSelectListItems(searchText?: string): Promise> {\r\n if (searchText) {\r\n return axios.get(`api/association/GetAssociationSelectListItems/?searchText=${searchText}`);\r\n }\r\n\r\n return axios.get('api/association/GetAssociationSelectListItems/');\r\n }\r\n\r\n public async CanRegisterAssociation(): Promise> {\r\n return axios.get(`api/association/CanRegisterAssociation`);\r\n }\r\n public async RegisterAssociation(associationData: AssociationRegistrationRequest): Promise> {\r\n return axios.post(\"api/association/RegisterAssociation\", associationData);\r\n }\r\n\r\n public async RemoveAssociation(id: number): Promise> {\r\n return axios.delete(`api/association/RemoveAssociation?id=${id}`);\r\n }\r\n\r\n\r\n\r\n}\r\n\r\nexport const AssociationService: Service = new Service();\r\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.text)?_c('v-snackbar',{attrs:{\"value\":_vm.shown,\"timeout\":_vm.timeout,\"color\":_vm.color,\"rounded\":_vm.timeout > 0 ? 'pill' : ''},on:{\"input\":function($event){return _vm.$emit('close')}},scopedSlots:_vm._u([{key:\"action\",fn:function({ attrs }){return [_c('v-badge',{attrs:{\"content\":_vm.queueLength,\"value\":_vm.queueLength,\"color\":_vm.color,\"bordered\":\"\",\"overlap\":\"\",\"offset-x\":\"4\",\"offset-y\":\"4\",\"title\":_vm.$vuetify.lang.t('$vuetify.unreadMessages')}},[(_vm.timeout > 0)?_c('v-btn',_vm._b({attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.close')},on:{\"click\":function($event){return _vm.$emit('close')}}},'v-btn',attrs,false),[(_vm.timeout > 0)?_c('v-icon',[_vm._v(\"mdi-close\")]):_vm._e()],1):_c('v-btn',_vm._b({attrs:{\"color\":_vm.color,\"title\":_vm.$vuetify.lang.t('$vuetify.close')},on:{\"click\":function($event){return _vm.$emit('close')}}},'v-btn',attrs,false),[_c('span',[_vm._v(_vm._s(_vm.$vuetify.lang.t(\"$vuetify.close\")))])])],1)]}}],null,false,2228848786)},[_vm._v(\" \"+_vm._s(_vm.text)+\" \")]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import Vue from 'vue';\r\n\r\n export default Vue.extend({\r\n props: {\r\n timeout: {\r\n type: Number,\r\n default: -1,\r\n },\r\n text: {\r\n type: String,\r\n default: \"\",\r\n },\r\n color: {\r\n type: String,\r\n default: \"\",\r\n },\r\n shown: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n queueLength: {\r\n type: Number,\r\n default: null,\r\n }\r\n },\r\n });\r\n ","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notify.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notify.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Notify.vue?vue&type=template&id=1fb7228e\"\nimport script from \"./Notify.vue?vue&type=script&lang=ts\"\nexport * from \"./Notify.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Notify.vue?vue&type=style&index=0&id=1fb7228e&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export default class SnackbarMessage {\r\n color: string = \"\";\r\n message: string = \"\";\r\n timeout: number = 3500;\r\n\r\n constructor(message: string, color: string, timeout: number ) {\r\n this.message = message;\r\n this.color = color;\r\n this.timeout = timeout;\r\n }\r\n}","import axios, { AxiosResponse } from \"axios\";\r\nimport AuthencticationResponse from \"@/models/api/user/AuthenticationResponse\"\r\nimport SelectListItem from '@/models/SelectListItem';\r\n\r\nclass Service {\r\n\r\n public async GetGroups(): Promise> {\r\n return axios.get('api/user/GetGroups');\r\n }\r\n\r\n public async GetAssociationUsers(token: string): Promise> {\r\n const config = {\r\n headers: { Authorization: `Bearer ${token}` }\r\n };\r\n return axios.get('api/user/GetAssociationUsers', config);\r\n }\r\n\r\n public async SetAssociationUser(data: any, token: string): Promise> {\r\n const config = {\r\n headers: { Authorization: `Bearer ${token}` }\r\n };\r\n return axios.post('api/user/SetAssociationUser', data, config);\r\n }\r\n\r\n public async Login(data: any): Promise> {\r\n return axios.post('api/user/', data);\r\n }\r\n\r\n public async RegisterAdmin(data: any): Promise> {\r\n return axios.post('api/user/RegisterAdmin', data);\r\n }\r\n\r\n public async RegisterUser(data: any): Promise> {\r\n return axios.post('api/user/RegisterUser', data);\r\n }\r\n\r\n public async DeleteUser(id: string): Promise> {\r\n return axios.delete(`api/user/${id}`);\r\n }\r\n\r\n public async GetRegisterRoles(): Promise> {\r\n return axios.get('api/user/GetRegisterRoles');\r\n }\r\n\r\n public async HasPassword(email: string): Promise> {\r\n return axios.get(`api/user/HasPassword/?email=${email}`);\r\n }\r\n\r\n public async GetAssociationUsersByEmail(email: string): Promise> {\r\n return axios.get(`api/user/GetAssociationUsersByEmail/?email=${email}`);\r\n }\r\n \r\n public async GetUsers(): Promise> {\r\n return axios.get('api/user/');\r\n }\r\n\r\n public async GetUsersPaged(data: any): Promise> {\r\n return axios.post('api/user/GetUsersPaged', data);\r\n }\r\n\r\n public async GetAdminsPaged(data: any): Promise> {\r\n return axios.post('api/user/GetAdminsPaged', data);\r\n }\r\n\r\n\r\n public async SendConfirmEmail(data: any): Promise> {\r\n return axios.post('api/user/SendConfirmEmail', data);\r\n }\r\n\r\n public async ChangePassword(data: any): Promise> {\r\n return axios.post('api/user/ChangePassword', data);\r\n }\r\n\r\n public async SendResetPassword(data: any): Promise> {\r\n return axios.post('api/user/SendResetPassword', data);\r\n }\r\n \r\n // Used to confirm email and update password\r\n public async ConfirmUser(data: any): Promise> {\r\n return axios.post('api/user/ConfirmUser', data);\r\n }\r\n\r\n}\r\n\r\nexport const UserService: Service = new Service();\r\n","import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\nimport VuexPersist from 'vuex-persist'\r\nimport { SessionHelper } from '@/helpers/SessionHelper';\r\nimport { AspNetRole, AssociationRoleEnum } from '../models/Enums';\r\nimport UserInfo from '../models/api/user/UserInfo';\r\nimport setAuthorizationToken from '@/helpers/functions/AxiosToken'\r\nimport SnackbarMessage from '../models/SnackbarMessage';\r\n\r\nVue.use(Vuex)\r\n\r\nconst vuexLocalStorage = new VuexPersist({\r\n key: 'narvarogo_vuex', // The key to store the state on in the storage provider.\r\n storage: window.sessionStorage, // or window.sessionStorage or localForage\r\n // Function that passes the state and returns the state with only the objects you want to store.\r\n // reducer: state => state,\r\n reducer: (state: any) => ({\r\n sessionModule: state.sessionModule,\r\n // getRidOfThisModule: state.getRidOfThisModule (No one likes it.)\r\n }),\r\n // Function that passes a mutation and lets you decide if it should update the state in localStorage.\r\n // filter: mutation => (true)\r\n})\r\n\r\nconst sessionModule = {\r\n state: () => ({\r\n userInfo: new UserInfo(),\r\n currentLanguage: \"\",\r\n selectedAssociation: null,\r\n selectedAssociationName: \"\",\r\n }),\r\n mutations: {\r\n setSelectedAssociation(state: any, { associationCookie, associationName }: any) {\r\n state.selectedAssociation = associationCookie;\r\n state.selectedAssociationName = associationName;\r\n },\r\n setCurrentLanguage(state: any, currentLanguage: string) {\r\n state.currentLanguage = currentLanguage;\r\n },\r\n setUserInfo(state: any, userInfo: UserInfo) {\r\n state.userInfo = userInfo;\r\n setAuthorizationToken(userInfo.token);\r\n },\r\n },\r\n actions: {},\r\n getters: {\r\n selectedAssociation(state: any) {\r\n return state.selectedAssociation;\r\n },\r\n selectedAssociationName(state: any) {\r\n return state.selectedAssociationName;\r\n },\r\n currentLanguage(state: any) {\r\n return state.currentLanguage;\r\n },\r\n userInfo(state: any) {\r\n return state.userInfo;\r\n },\r\n isAuthenticated(state: any) {\r\n return state.userInfo.isAuthenticated;\r\n },\r\n isInRole: (state: any) => (role: AspNetRole) => {\r\n return state.userInfo.aspNetRole == role;\r\n },\r\n isInAssociationRole: (state: any) => (role: AssociationRoleEnum) => {\r\n return state.userInfo?.associationUserInfo?.role == role;\r\n },\r\n isSystemAdmin(state: any, getters: any) {\r\n return getters.isInRole(AspNetRole.SystemAdmin);\r\n },\r\n isMunicipalityAdmin(state: any, getters: any) {\r\n return getters.isInRole(AspNetRole.MunicipalityAdmin);\r\n },\r\n isAssociationUser(state: any, getters: any) {\r\n return getters.isInRole(AspNetRole.AssociationUser);\r\n },\r\n isAssociationUser_GroupAdmin(state: any, getters: any) {\r\n return getters.isInAssociationRole(AssociationRoleEnum.AssociationGroupAdmin);\r\n },\r\n isAssociationUser_Admin(state: any, getters: any) {\r\n return getters.isInAssociationRole(AssociationRoleEnum.AssociationAdmin);\r\n },\r\n }\r\n}\r\n\r\nconst memoryModule = {\r\n state: () => ({\r\n overlayCounter: 0,\r\n showTabs: false,\r\n snackbarMessages: [] as SnackbarMessage[],\r\n resetSnackbar: false,\r\n }),\r\n mutations: {\r\n addSnackbarMessage(state: any, message: SnackbarMessage) {\r\n state.snackbarMessages.push(message);\r\n },\r\n shiftSnackbarMessages(state: any) {\r\n state.snackbarMessages.shift();\r\n },\r\n resetSnackbarMessagesDone(state: any) {\r\n state.resetSnackbar = false;\r\n },\r\n resetSnackbarMessages(state: any) {\r\n if (state.snackbarMessages.length > 0) {\r\n state.snackbarMessages = [] as SnackbarMessage[];\r\n state.resetSnackbar = true;\r\n }\r\n },\r\n addOverlay(state: any) {\r\n state.overlayCounter++;\r\n },\r\n removeOverlay(state: any) {\r\n state.overlayCounter--;\r\n if (state.overlayCounter < 0) {\r\n state.overlayCounter = 0;\r\n }\r\n },\r\n showTabs(state: any) {\r\n state.showTabs = true;\r\n },\r\n hideTabs(state: any) {\r\n state.showTabs = false;\r\n },\r\n },\r\n actions: {},\r\n getters: {\r\n getSnackbarMessagesLength(state: any) {\r\n return state.snackbarMessages.length;\r\n },\r\n getSnackbarMessage(state: any) {\r\n if (state.snackbarMessages.length > 0) {\r\n return state.snackbarMessages[0];\r\n }\r\n return null;\r\n },\r\n overlayCounter(state: any) {\r\n return state.overlayCounter;\r\n },\r\n showTabs(state: any) {\r\n return state.showTabs\r\n },\r\n resetSnackbar(state: any) {\r\n return state.resetSnackbar;\r\n }\r\n }\r\n}\r\n\r\nexport const store = new Vuex.Store({\r\n plugins: [vuexLocalStorage.plugin],\r\n modules: {\r\n sessionModule: sessionModule,\r\n memoryModule: memoryModule\r\n }\r\n})","import { store } from \"@/stores/Store\"\r\nimport SnackbarMessage from '../models/SnackbarMessage'\r\n\r\nconst DEFAULT_TIMEOUT_SUCCESS = 4000;\r\nconst DEFAULT_TIMEOUT_WARNING = 7000;\r\n\r\nclass Service {\r\n\r\n public addSuccessMessage(message: string, manualClose: boolean | number = false): void {\r\n const snackbarMessage = new SnackbarMessage(message, \"success\", typeof manualClose == 'boolean' ? (manualClose as boolean ? -1 : DEFAULT_TIMEOUT_SUCCESS) : (typeof manualClose == 'number' ? manualClose : DEFAULT_TIMEOUT_SUCCESS));\r\n store.commit(\"addSnackbarMessage\", snackbarMessage);\r\n }\r\n\r\n public addErrorMessage(message: string): void {\r\n const snackbarMessage = new SnackbarMessage(message, \"error\", -1);\r\n store.commit(\"addSnackbarMessage\", snackbarMessage);\r\n }\r\n\r\n public addWarningMessage(message: string, manualClose: boolean | number = false): void {\r\n const snackbarMessage = new SnackbarMessage(message, \"warning\", typeof manualClose == 'boolean' ? (manualClose as boolean ? -1 : DEFAULT_TIMEOUT_WARNING) : (typeof manualClose == 'number' ? manualClose : DEFAULT_TIMEOUT_WARNING));\r\n store.commit(\"addSnackbarMessage\", snackbarMessage);\r\n }\r\n\r\n public resetMessages(): void {\r\n store.commit(\"resetSnackbarMessages\");\r\n }\r\n}\r\n\r\nexport const SnackbarService: Service = new Service();\r\n","import { AssociationRoleEnum } from '@/models/Enums';\r\n\r\nexport default class AssociationUserInfo {\r\n public role: AssociationRoleEnum = 0;\r\n public id: number | null = null;\r\n public name: string = \"\";\r\n public associationId: number = -1;\r\n public associationName: string = \"\";\r\n}\r\n\r\n","import axios, { AxiosResponse } from \"axios\";\r\nimport ApplicationSettingDto from '../models/api/ApplicationSetting';\r\n\r\n\r\nclass Service {\r\n\r\n \r\n public async GetDatabaseVersion(): Promise> {\r\n return axios.get(`api/setting/GetDatabaseVersion`);\r\n }\r\n\r\n public async GetAccessibilityStatementUrl(): Promise> {\r\n return axios.get(`api/setting/GetAccessibilityStatementUrl`);\r\n }\r\n \r\n public async GetMunicipalityNameWithLoginPageText(): Promise> {\r\n return axios.get(`api/setting/GetMunicipalityNameWithLoginPageText`);\r\n }\r\n\r\n public async GetMunicipalityLogo(): Promise> {\r\n return axios.get('api/setting/GetMunicipalityLogo/');\r\n }\r\n\r\n public async GetSetting(keyName: string): Promise> {\r\n return axios.get(`api/setting/GetSettingByKeyName/?keyName=${keyName}`);\r\n }\r\n\r\n public async GetSettingsByKeyNames(settingKeyNames: string): Promise> {\r\n return axios.get(`api/setting/GetSettingsByKeyNames/?settingKeyNames=${settingKeyNames}`);\r\n }\r\n\r\n public async GetSettings(): Promise> {\r\n return axios.get('api/setting/');\r\n }\r\n\r\n public async SaveSetting(data: any): Promise> {\r\n return axios.post('api/setting/', data);\r\n }\r\n\r\n public async SaveImage(image: FormData, keyName: string): Promise> {\r\n return axios.post('api/setting/SaveImage/', image,\r\n {\r\n params: {\r\n keyName: keyName\r\n }\r\n });\r\n }\r\n\r\n public async RemoveImage(keyName: string): Promise> {\r\n return axios.post(`api/setting/RemoveImage/?keyName=${keyName}`);\r\n } \r\n\r\n}\r\n\r\nexport const SettingService: Service = new Service();\r\n","\r\n import Vue from \"vue\";\r\n import Router from \"vue-router\";\r\n import { UserHelper } from \"@/helpers/UserHelper\";\r\n import { AssociationRoleEnum, AspNetRole, ApplicationSetting } from \"./models/Enums\";\r\n import { mapGetters } from \"vuex\";\r\n import setAuthorizationToken from \"@/helpers/functions/AxiosToken\";\r\n import SelectListItem from \"@/models/SelectListItem\";\r\n import { AssociationService } from \"@/services/AssociationService\";\r\n import Notify from \"@/components/ui/Notify.vue\";\r\n import SnackbarMessage from './models/SnackbarMessage';\r\n import { UserService } from './services/UserService';\r\n import { SnackbarService } from './services/SnackbarService';\r\n import UserInfo from './models/api/user/UserInfo';\r\n import AssociationUserInfo from './models/api/user/AssociationUserInfo';\r\n import { SettingService } from '@/services/SettingService';\r\n import colors from \"vuetify/lib/util/colors\"\r\n\r\n\r\nimport ApplicationSettingDto from './models/api/ApplicationSetting';\r\n\r\n Vue.use(Router);\r\n\r\n export default Vue.extend({\r\n name: \"App\",\r\n\r\n components: { Notify },\r\n\r\n data: () => ({\r\n showApp: false,\r\n showAssociationSelectMenu: false,\r\n showAssociationSelectMenu2: false,\r\n associationCookie: \"\" as string | null,\r\n showFlagsMenu: false,\r\n showMenu: false,\r\n showUserStatus: false,\r\n langs: [\r\n {\r\n value: \"sv\",\r\n text: \"Svenska\",\r\n iconSrc: require(\"./assets/flags/sweden.svg\"),\r\n },\r\n {\r\n value: \"en\",\r\n text: \"English\",\r\n iconSrc: require(\"./assets/flags/united-kingdom.svg\"),\r\n },\r\n ],\r\n associations: [] as SelectListItem[],\r\n associationSearchText: null as string | null,\r\n\r\n snackbarMessage: new SnackbarMessage(\"\",\"\",5000),\r\n showSnackbarMessage: false,\r\n\r\n selectedAssociationUserId: \"\",\r\n associationUserIds: [new SelectListItem(\"\", \"\")],\r\n }),\r\n created() {\r\n //console.log(this.$store);\r\n setAuthorizationToken(this.userInfo.token);\r\n this.associationCookie = this.$cookies.get(\"selectedAssociation\");\r\n this.showUserStatus = process.env.VUE_APP_SHOW_USER_STATUS == \"true\"; \r\n const storedCurrentLanguage = this.currentLanguage; // get from store\r\n if (!storedCurrentLanguage) {\r\n this.changeLanguage(this.$vuetify.lang.current);\r\n } else {\r\n this.$vuetify.lang.current = storedCurrentLanguage;\r\n }\r\n this.setTheme();\r\n },\r\n methods: {\r\n getApplicationSetting(settings: ApplicationSettingDto[], app: ApplicationSetting) : number {\r\n return settings.findIndex((val: any) => val.keyName == app);\r\n },\r\n getApplicationSettingColor(settings: ApplicationSettingDto[], app: ApplicationSetting) : string {\r\n let settingString = settings[this.getApplicationSetting(settings, app)].value.toString();\r\n let colorText = \"\";\r\n try {\r\n colorText = JSON.parse(settingString);\r\n } catch (e) {\r\n colorText = settingString;\r\n }\r\n\r\n return colorText;\r\n },\r\n async setTheme() {\r\n SettingService.GetSettingsByKeyNames(\"ThemeAccent,ThemeError,ThemeInfo,ThemePrimary,ThemeSecondary,ThemeSuccess,ThemeWarning\")\r\n .then((response) => {\r\n const settings = response.data as ApplicationSettingDto[];\r\n const themeAccent = this.getApplicationSettingColor(settings, ApplicationSetting.ThemeAccent);\r\n const themeError = this.getApplicationSettingColor(settings, ApplicationSetting.ThemeError);\r\n const themeInfo = this.getApplicationSettingColor(settings, ApplicationSetting.ThemeInfo);\r\n const themePrimary = this.getApplicationSettingColor(settings, ApplicationSetting.ThemePrimary);\r\n const themeSecondary = this.getApplicationSettingColor(settings, ApplicationSetting.ThemeSecondary);\r\n const themeSuccess = this.getApplicationSettingColor(settings, ApplicationSetting.ThemeSuccess);\r\n const themeWarning = this.getApplicationSettingColor(settings, ApplicationSetting.ThemeWarning);\r\n\r\n this.$vuetify.theme.themes.light['accent'] = themeAccent;\r\n this.$vuetify.theme.themes.light['error'] = themeError;\r\n this.$vuetify.theme.themes.light['info'] = themeInfo;\r\n this.$vuetify.theme.themes.light['primary'] = themePrimary;\r\n this.$vuetify.theme.themes.light['secondary'] = themeSecondary;\r\n this.$vuetify.theme.themes.light['success'] = themeSuccess;\r\n this.$vuetify.theme.themes.light['warning'] = themeWarning;\r\n })\r\n .catch((error) => {\r\n if (error.response.data.errors) {\r\n console.log(error.response.data.errors.join(\"\\n\"));\r\n } else {\r\n console.log(this.$vuetify.lang.t('$vuetify.generalErrorMessage'));\r\n }\r\n\r\n this.$vuetify.theme.themes.light['primary'] = colors.blue.darken4;\r\n this.$vuetify.theme.themes.light['accent'] = colors.blue;\r\n this.$vuetify.theme.themes.light['secondary'] = colors.lime;\r\n this.$vuetify.theme.themes.light['success'] = colors.lightGreen;\r\n this.$vuetify.theme.themes.light['error'] = colors.deepOrange.darken3;\r\n this.$vuetify.theme.themes.light['warning'] = colors.amber;\r\n this.$vuetify.theme.themes.light['info'] = colors.blueGrey;\r\n })\r\n .finally(() => {\r\n this.showApp = true;\r\n });\r\n\r\n },\r\n /*\r\n * ALMOST SAME CODE AS SELECT ASSOCIATION USER IN Home.vue! Changes might need to be done there too!\r\n */\r\n async setAssociationUser() {\r\n this.$store.commit(\"addOverlay\");\r\n UserService.SetAssociationUser(\r\n { id: parseInt(this.selectedAssociationUserId) },\r\n this.userInfo.token\r\n )\r\n .then((response) => {\r\n const userInfo = this.setValuesFromAuthenticationResponse(response);\r\n this.handleAuthentication(userInfo);\r\n this.showAssociationSelectMenu2 = false;\r\n })\r\n .catch((error) => {\r\n if (error.response.data.errors) {\r\n SnackbarService.addErrorMessage(error.response.data.errors.join(\"\\n\"));\r\n } else {\r\n SnackbarService.addErrorMessage(this.$vuetify.lang.t('$vuetify.generalErrorMessage'));\r\n }\r\n })\r\n .finally(() => {\r\n this.$store.commit(\"removeOverlay\");\r\n });\r\n },\r\n /*\r\n * ALMOST SAME CODE AS SELECT ASSOCIATION USER IN Home.vue! Changes might need to be done there too!\r\n */\r\n setValuesFromAuthenticationResponse(response: any) {\r\n let userInfo = new UserInfo();\r\n userInfo.aspNetRole = response.data.role;\r\n userInfo.name = response.data.name;\r\n userInfo.isAuthenticated = true;\r\n userInfo.token = response.data.token as string;\r\n userInfo.hasMultipleAssociationUsers = response.data.hasMultipleAssociationUsers;\r\n\r\n if (response.data.associationUserInfo) {\r\n userInfo.associationUserInfo = new AssociationUserInfo();\r\n userInfo.associationUserInfo.id = response.data.associationUserInfo.id;\r\n userInfo.associationUserInfo.role = response.data.associationUserInfo.role;\r\n userInfo.associationUserInfo.name = response.data.associationUserInfo.name;\r\n userInfo.associationUserInfo.associationName = response.data.associationUserInfo.associationName;\r\n } else {\r\n userInfo.associationUserInfo = null;\r\n }\r\n\r\n return userInfo;\r\n },\r\n /*\r\n * ALMOST SAME CODE AS SELECT ASSOCIATION USER IN Home.vue! Changes might need to be done there too!\r\n */\r\n handleAuthentication(userInfo: UserInfo) {\r\n\r\n //SessionHelper.sessionSetItem(\"UserInfo\", userInfo);\r\n this.$store.commit(\"setUserInfo\", userInfo);\r\n\r\n //console.log(userInfo);\r\n\r\n switch (userInfo.aspNetRole) {\r\n case AspNetRole.SystemAdmin:\r\n console.log(\"no page defined\", AspNetRole.SystemAdmin.toString());\r\n break;\r\n case AspNetRole.MunicipalityAdmin:\r\n console.log(\r\n \"User is \",\r\n AspNetRole.MunicipalityAdmin.toString(),\r\n \"redirecting\"\r\n );\r\n this.$router.push(\"/municipality\");\r\n return;\r\n case AspNetRole.AssociationUser:\r\n if (userInfo.associationUserInfo?.role == AssociationRoleEnum.AssociationAdmin) {\r\n this.$router.push(\"/association\");\r\n\r\n } else {\r\n this.$router.push(\"/association/occasions\");\r\n }\r\n break;\r\n default:\r\n console.log(\"unhandled for user role\", userInfo.aspNetRole);\r\n break;\r\n }\r\n },\r\n /*\r\n * ALMOST SAME CODE AS SELECT ASSOCIATION USER IN Home.vue! Changes might need to be done there too!\r\n */\r\n getAssociationUsers() {\r\n this.$store.commit(\"addOverlay\");\r\n UserService.GetAssociationUsers(this.userInfo.token)\r\n .then((response) => {\r\n this.associationUserIds = response.data.items;\r\n this.selectedAssociationUserId = this.userInfo.associationUserInfo.id.toString();\r\n\r\n setTimeout(\r\n () => {\r\n ((this.$refs?.associationUserSelect as Vue).$el as HTMLElement)?.focus();\r\n },\r\n 100\r\n );\r\n \r\n })\r\n .catch((error) => {\r\n if (error.response.data.errors) {\r\n SnackbarService.addErrorMessage(error.response.data.errors.join(\"\\n\"));\r\n } else {\r\n SnackbarService.addErrorMessage(this.$vuetify.lang.t('$vuetify.generalErrorMessage'));\r\n }\r\n })\r\n .finally(() => {\r\n this.$store.commit(\"removeOverlay\");\r\n });\r\n\r\n },\r\n getAssociationRoleName(role: AssociationRoleEnum) {\r\n return this.$vuetify.lang.t(\r\n \"$vuetify.association.\" + AssociationRoleEnum[role]\r\n );\r\n },\r\n getAspNetRoleName(role: AspNetRole) {\r\n return this.$vuetify.lang.t(\"$vuetify.user.\" + AspNetRole[role]);\r\n },\r\n logout(): void {\r\n UserHelper.logoff(this);\r\n },\r\n changeLanguage(lang: string): void {\r\n this.$vuetify.lang.current = lang;\r\n this.$store.commit(\"setCurrentLanguage\", lang);\r\n },\r\n navigateToItem(url: string) {\r\n this.$router.push(url);\r\n },\r\n closeSnackbarMessage(): void {\r\n this.$store.commit(\"shiftSnackbarMessages\");\r\n this.snackbarMessage = new SnackbarMessage(\"\", \"\", 0);\r\n this.showSnackbarMessage = false;\r\n },\r\n },\r\n watch: {\r\n associationCookie() {\r\n if (this.associationCookie == \"null\") {\r\n this.associationCookie = null;\r\n }\r\n\r\n if (this.associationCookie == this.selectedAssociation) {\r\n // No change, so no need to do anything!\r\n return;\r\n }\r\n\r\n let associationName = \"\" as string | undefined;\r\n\r\n if (this.associationCookie && this.associations.length > 0) {\r\n associationName = this.associations.find(s => s.value == this.associationCookie)?.text;\r\n this.$router.push(\"/association\");\r\n } else if (window.location.href.indexOf(\"#/association\") > -1){\r\n this.$router.push(\"/\");\r\n }\r\n\r\n this.$cookies.set(\"selectedAssociation\", this.associationCookie);\r\n\r\n const associationCookie = this.associationCookie;\r\n this.$store.commit(\"setSelectedAssociation\", { associationCookie, associationName });\r\n\r\n if (!this.associationCookie) {\r\n setTimeout(\r\n () =>\r\n (\r\n (this.$refs?.showAssociationSelectButton as Vue).$el as HTMLElement\r\n )?.focus(),\r\n 100\r\n );\r\n } else {\r\n this.showAssociationSelectMenu = false;\r\n }\r\n },\r\n\r\n associationSearchText(val: string) {\r\n AssociationService.GetAssociationSelectListItems(val).then(response => {\r\n this.associations = response.data;\r\n });\r\n },\r\n getSnackbarMessagesLength() {\r\n if (this.resetSnackbar) {\r\n this.showSnackbarMessage = false;\r\n this.$store.commit(\"resetSnackbarMessagesDone\");\r\n } else if (this.getSnackbarMessagesLength > 0 && !this.showSnackbarMessage) {\r\n setTimeout(() => { this.showSnackbarMessage = true; this.snackbarMessage = this.getSnackbarMessage; }, 200);\r\n }\r\n },\r\n isAuthenticated() {\r\n this.userInfo.isAuthenticated;\r\n },\r\n showMenu(val: boolean) {\r\n const initiator = this;\r\n if (val) {\r\n setTimeout(\r\n () =>\r\n (\r\n (initiator?.$refs?.homeRouterLink as Vue).$el as HTMLElement\r\n )?.focus(),\r\n 100\r\n );\r\n } else {\r\n setTimeout(\r\n () =>\r\n ((initiator?.$refs?.menuIcon as Vue).$el as HTMLElement)?.focus(),\r\n 100\r\n );\r\n }\r\n },\r\n showFlagsMenu(val: boolean) {\r\n const initiator = this;\r\n if (val) {\r\n setTimeout(\r\n () =>\r\n (\r\n (initiator?.$refs?.firstFlag as [Vue])[0].$el as HTMLElement\r\n )?.focus(),\r\n 100\r\n );\r\n } else {\r\n setTimeout(\r\n () =>\r\n (\r\n (initiator?.$refs?.showFlagsButton as Vue).$el as HTMLElement\r\n )?.focus(),\r\n 100\r\n );\r\n }\r\n },\r\n showAssociationSelectMenu(val: boolean) {\r\n const initiator = this;\r\n if (val) {\r\n setTimeout(\r\n () => {\r\n (\r\n (initiator?.$refs?.firstAssociation as Vue).$el as HTMLElement\r\n )?.focus();\r\n ((initiator?.$refs['firstAssociation']) as any)?.focus();\r\n },\r\n 100\r\n );\r\n } else {\r\n setTimeout(\r\n () =>\r\n (\r\n (initiator?.$refs?.unselectAssociationButton as Vue).$el as HTMLElement\r\n )?.focus(),\r\n 100\r\n );\r\n }\r\n },\r\n showAssociationSelectMenu2(val: boolean) {\r\n const initiator = this;\r\n if (val) {\r\n setTimeout(\r\n () => {\r\n (\r\n (initiator?.$refs?.associationUserSelect as Vue).$el as HTMLElement\r\n )?.focus();\r\n ((initiator?.$refs['associationUserSelect']) as any)?.focus();\r\n },\r\n 100\r\n );\r\n } else {\r\n setTimeout(\r\n () =>\r\n (\r\n (initiator?.$refs?.showAssociationSelectButton2 as Vue).$el as HTMLElement\r\n )?.focus(),\r\n 100\r\n );\r\n }\r\n },\r\n },\r\n computed: {\r\n getIcon() {\r\n return (item: any) => {\r\n let image = item || this.$vuetify.lang.current;\r\n let iconSrc = null;\r\n Object.keys(this.langs).forEach((value: string, index: number) => {\r\n if (this.langs[index].value === image) {\r\n iconSrc = this.langs[index].iconSrc;\r\n }\r\n });\r\n return iconSrc;\r\n };\r\n },\r\n showOverlay: function () {\r\n const overlayCounter = this.$store.getters.overlayCounter;\r\n return overlayCounter > 0;\r\n },\r\n ...mapGetters([\r\n \"resetSnackbar\",\r\n \"getSnackbarMessage\",\r\n \"getSnackbarMessagesLength\",\r\n \"userInfo\",\r\n \"currentLanguage\",\r\n \"isAuthenticated\",\r\n \"isSystemAdmin\",\r\n \"isMunicipalityAdmin\",\r\n \"isAssociationUser\",\r\n \"isAssociationUser_GroupAdmin\",\r\n \"isAssociationUser_Admin\",\r\n \"showTabs\",\r\n \"selectedAssociationName\",\r\n \"selectedAssociation\",\r\n ]),\r\n },\r\n });\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=f7b8e75c\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=f7b8e75c&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { sv } from 'vuetify/src/locale'\r\n\r\n// För att kodningen ska vara rätt: åäö\r\n\r\nexport default {\r\n ...sv,\r\n narvaroGo: \"NärvaroGo\",\r\n version: \"Version\",\r\n accessibilityStatement: \"Tillgänglighetsredogörelse\",\r\n id: \"Id\",\r\n created: \"Skapad\",\r\n createdBy: \"Skapad av\",\r\n register: 'Registrera',\r\n modify: 'Ändra',\r\n modified: \"Ändrad\",\r\n modifiedBy: \"Ändrad av\",\r\n updated: \"Uppdaterad\",\r\n updatedBy: \"Uppdaterad av\",\r\n search: \"Sök\",\r\n\r\n login: \"Logga in\",\r\n logout: \"Logga ut\",\r\n password: \"Lösenord\",\r\n emailAddress: \"Epostadress\",\r\n\r\n required: \"Obligatoriskt\",\r\n information: \"Information\",\r\n errormessage: \"Felmeddelande\",\r\n message: \"Meddelande\",\r\n add: \"Lägg till\",\r\n new: \"Ny\",\r\n create: \"Skapa\",\r\n save: \"Spara\",\r\n cancel: \"Avbryt\",\r\n delete: \"Ta bort\",\r\n edit: \"Ändra\",\r\n change: \"Ändra\",\r\n close: \"Stäng\",\r\n choose: \"Välj\",\r\n chooseAll: \"Välj alla\",\r\n ok: \"Ok\",\r\n\r\n to: \"Till\",\r\n from: \"Från\",\r\n\r\n yes: \"Ja\",\r\n no: \"Nej\",\r\n\r\n savedAll: \"Allt sparat\",\r\n savedChanges: \"Ändringar sparade\",\r\n saved: \"Sparad\",\r\n saving: \"Sparar\",\r\n savedValues: \"Sparade värden\",\r\n update: \"Uppdatera\",\r\n\r\n date: \"Datum\",\r\n dateFrom: \"Datum från\",\r\n dateTo: \"Datum till\",\r\n\r\n time: \"Tid\",\r\n timeFrom: \"Tid från\",\r\n timeTo: \"Tid till\",\r\n\r\n invalidEmail: \"Ogiltig e-postadress\",\r\n invalidZipCode: \"Ogiltigt postnummer\",\r\n formatSSN: \"Anges i format ÅÅÅÅMMDD-XXXX\",\r\n invalidSSN: \"Ogiltigt personnummer\",\r\n invalidOrgNo: \"Ogiltigt organisationsnummer\",\r\n\r\n mustBeAfter: \" måste vara efter \",\r\n\r\n generalErrorMessage: \"Något gick fel!\",\r\n\r\n deleteDialogMessage: \"Är du säker på att du vill ta bort\",\r\n\r\n name: \"Namn\",\r\n role: \"Roll\",\r\n\r\n female: \"Kvinna\",\r\n male: \"Man\",\r\n\r\n member: \"Medlem\",\r\n\r\n changeAssociation: \"Byt förening\",\r\n selectAssociation: \"Välj förening\",\r\n unselectAssociation: \"Välj bort förening\",\r\n\r\n menu_user: \"Användare\",\r\n menu_home: \"Hem\",\r\n menu_settings: \"Inställningar\",\r\n menu_association_register: \"Föreningsregister\",\r\n menu_person: \"Personer\",\r\n menu_activity: \"Verksamheter\",\r\n menu_logs: \"Loggning\",\r\n menu_themes: \"Färgtema\",\r\n menu_association_attendance: \"Förening/Närvaro\",\r\n menu_groups_attendance: \"Grupper/Närvaro\",\r\n\r\n download: \"Ladda ner\",\r\n downloaded: \"Nedladdad\",\r\n fetched: \"Hämtad\",\r\n fetchedByContributionSystem: \"Hämtad av bidragssystem\",\r\n\r\n formChangedMessage: \"Formuläret är ändrat men inte sparat. Dina ändringar kommer att försvinna om du fortsätter utan att spara först. Vill du fortsätta?\",\r\n\r\n unreadMessages: \"Olästa meddelanden\",\r\n attendance: \"Närvaro\",\r\n back: \"Tillbaka\",\r\n logs: \"Loggar\",\r\n\r\n municipalityLogoType: \"Kommunens logotype\",\r\n \r\n batch: {\r\n statisticsAndExport: \"Statistik/Export\",\r\n batchState: \"Status\",\r\n Pending: \"Väntar\",\r\n Running: \"Körs\",\r\n Done: \"Klar\",\r\n Error: \"Fel\",\r\n\r\n contributionFiles: \"Bidragsfiler\",\r\n exportFiles: \"Exportfiler\",\r\n generateExportFileFor: \"Generera exportfil för \",\r\n\r\n existingExportFileWillBeReplaced: \"Vid generering kommer existerande exportfil för perioden att tas bort.\",\r\n existingExportFileIsLocked: \"Bidragsperiodens fil är redan exporterad. Kontakta kommunen om filen ska ersättas.\",\r\n\r\n exportGroups: \"Grupper för export\",\r\n exportOccasions: \"Gruppaktiviteter för export\",\r\n },\r\n\r\n association: {\r\n association: \"Förening\", \r\n AssociationGroupAdmin: \"Gruppadmin\",\r\n AssociationAdmin: \"Föreningsadmin\",\r\n registerAssociation: \"Registrera förening\",\r\n name: \"Föreningsnamn\",\r\n orgNo: \"Organisationsnummer\",\r\n editAssociation: \"Ändra föreningsuppgifter\",\r\n pageHeader: \"Föreningsregister\",\r\n nameAlreadyExists: \"Det finns redan en förening med namnet\",\r\n orgNoAlreadyExists: \"Det finns redan en förening med organisationsnummer\",\r\n externalIdAlreadyExists: \"Det finns redan en förening med externtId\",\r\n externalId: \"Externt Id\",\r\n administrateAssociation: \"Administrera förening\",\r\n administrateGroups: \"Administrera grupper\",\r\n associationsActivities: \"Föreningens verksamheter\",\r\n\r\n },\r\n\r\n contributionPeriod: {\r\n contributionPeriod: \"Bidragsperiod\",\r\n contributionPeriods: \"Bidragsperioder\",\r\n editContributionPeriod: \"Ändra bidragsperiod\",\r\n lastRegistrationDate: \"Sista ansökningsdatum\",\r\n },\r\n\r\n confirmUser: {\r\n newPassword: \"Ange nytt lösenord\",\r\n repeatNewPassword: \"Upprepa nytt lösenord\",\r\n passwordUpdatedMessage: \"Lösenordet har uppdaterats.\",\r\n emailVerifiedMessage: \"Epostadressen är verifierad.\",\r\n sendingToLoginPageMessage: \"Du skickas nu till login-sidan.\",\r\n passwordDoesNotMatch: \"Lösenorden är inte lika.\"\r\n },\r\n\r\n applicationsetting: {\r\n AccessibilityStatementUrl: \"Tillgänglighetsredogörelse\",\r\n Municipality: \"Kommunkod\",\r\n IsSSNMandatory: \"Fullständigt personnummer krävs\",\r\n FormatOfDateOfBirth: \"Format på födelsedatum\",\r\n ZipCodeVisibleAndMandatory: \"Postnr ska anges\",\r\n CityVisibleAndMandatory: \"Postort ska anges\",\r\n MailO365ClientId: \"Program-ID (klient)\",\r\n MailO365TenantId: \"Katalog - ID (klientorganisation)\",\r\n MailO365ServerUserName: \"Användarnamn\",\r\n MailO365ServerUserPassword: \"Lösenord\",\r\n ApplicationSettingsHeadline: \"Applikationsinställningar\",\r\n ParticipantSettingsHeadline: \"Inställningar för personregister\",\r\n MaílServerSettingsHeadline: \"Inställningar mailserver\",\r\n MiscellaneousHeadline: \"Övrigt\",\r\n MunicipalityName: \"Kommunnamn\",\r\n MunicipalityLogo: \"Kommunlogga\",\r\n SaveLogoType: \"Spara logga\",\r\n RemoveLogoTypeImage: \"Ta bort logga\",\r\n MaxNumberOfAssociations: \"Max antal aktiva föreningar (blankt = ingen gräns)\",\r\n },\r\n logType: {\r\n logLevel: \"Loggnivå\",\r\n logTypes: \"Loggtyper\",\r\n logType: \"Loggtyp\",\r\n Trace: \"Trace\",\r\n Debug: \"Debug\",\r\n Information: \"Information\",\r\n Warning: \"Warning\",\r\n Error: \"Error\",\r\n Critical: \"Critical\",\r\n None: \"None\",\r\n System: \"System\",\r\n User: \"Användare\",\r\n Association: \"Förening\",\r\n Group: \"Grupp\",\r\n Person: \"Person\",\r\n Occasion: \"Gruppaktivitet\",\r\n ExportFile: \"Exportfil\",\r\n Batch: \"Batchjobb\",\r\n editLogLevel: \"Ändra loggnivå\",\r\n logTypeSettings: \"Inställningar för loggning\",\r\n },\r\n person: {\r\n hasNoSwedishSsn: \"Saknar svenskt personnummer\",\r\n isDisabled: \"Funktionsnedsatt\",\r\n firstName: \"Förnamn\",\r\n lastName: \"Efternamn\",\r\n socialSecurityNumber: \"Personnummer\",\r\n gender: \"Juridiskt kön\",\r\n email: \"E-post\",\r\n mobile: \"Mobilnummer\",\r\n telephoneNumber: \"Telefonnummer\",\r\n zipCode: \"Postnummer\",\r\n city: \"Postort\",\r\n role: 'Roll',\r\n address: 'Adress',\r\n isLeader: \"Ledare\",\r\n registerNewPerson: \"Registrera person\",\r\n searchPersonRegister: \"Sök i personregister\",\r\n\r\n editPerson: \"Ändra uppgifter på person\",\r\n pageHeader: \"Personer\",\r\n persons: \"Personer\",\r\n dateOfBirth: \"Födelsedatum\",\r\n SSNAlreadyExists: \"Det finns redan en person registrerad med personnummer\",\r\n createUserHeadline: \"Skapa inloggning om personen är föreningsadministratör eller gruppadministratör (ledare)\",\r\n noLogin: \"Ingen inloggning\",\r\n emailWillBeUpdatedInformation: \"OBSERVERA! Vid byte av e-postadress kommer e-postadressen i inloggninguppgifterna ändras. Är inloggningen kopplad till flera föreningar ändras e-postadressen även där.\",\r\n loginVerified: \"Inloggning verifierad\",\r\n emailAlreadyUsedForAUserRemoveAndAddMessage: \"Det finns redan en inloggning med den här e-postadressen kopplad. Ta bort bort inloggning för den här personen och spara. Byt till den nya e-postadressen samt välj roll, spara.\",\r\n groups: \"Grupper\",\r\n mandatoryDataIsMissing: \"Obligatoriska uppgifter saknas\",\r\n sendNewConfirmEmail: \"Skicka nytt verifieringsmail\",\r\n invalidPhoneNumber: \"Felaktigt telefonnummer\",\r\n invalidSSN: \"Ogiltigt personnummer.\",\r\n invalidDate: \"Ogiltigt datum\",\r\n emailIsMissingCannotCreateAdmin: \"Personen saknar e-post, det måste finnas för att skapa admin\",\r\n deletePerson: \"Ta bort person\"\r\n },\r\n group: {\r\n groupHead: '{0} grupp',\r\n groupName: \"Grupp\",\r\n groups: \"Grupper\",\r\n isLeader: \"Ledare\",\r\n isDisabledShort: \"Funktionsned.\",\r\n isAdmin: \"Gruppadmin\",\r\n participants: \"Deltagare\",\r\n leaders: \"Ledare\",\r\n addParticipantGroup: \"Lägg till person\",\r\n addParticipantGroups: \"Lägg till personer\",\r\n showGroup: \"Visa grupp\",\r\n participantGroups: \"Personer\",\r\n additionalInfoDelete: \"Bekräftade gruppaktiviteter kommer inte att tas bort när gruppen tas bort\",\r\n additionalInfoDeleteParticipant: \"Personen kommer inte att tas bort från gruppaktiviteter som har passerats i tid\",\r\n nameAlreadyExists: \"Det finns redan en grupp med namnet\", \r\n groupNameToLong: \"Gruppnamn får inte vara längre än 50 tecken\",\r\n },\r\n occasion: {\r\n createOccasion: \"Skapa gruppaktivitet\",\r\n editOccasion: \"Ändra gruppaktivitet\",\r\n recurringOccasion: \"Återkommande gruppaktivitet\",\r\n unconfirmed: \"Obekräftade\",\r\n addPerson: \"Lägg till person\",\r\n coming: \"Kommande\",\r\n confirmed: \"Bekräftade\",\r\n occasions: \"Gruppaktiviteter\",\r\n unconfirmedOccasions: \"Obekräftade gruppaktiviteter\",\r\n comingOccasions: \"Kommande gruppaktiviteter\",\r\n confirmedOccasions: \"Bekräftade gruppaktiviteter\",\r\n pageHeader: \"Närvaroregistrering\",\r\n location: \"Plats\",\r\n occasionType: \"Typ av gruppaktivitet\",\r\n recurring: \"Återkommande\",\r\n frequency: \"Frekvens\",\r\n confirmParticipants: \"Bekräfta deltagare\",\r\n unconfirmParticipants: \"Redigera närvaro\",\r\n confirmOccasionText: \"Bekräfta valda deltagare och ledare. Du kan ta tillbaka bekräftelsen för att rätta/ändra uppgifterna.\",\r\n personDisabled: \"Funktionsnedsatt\", // flytta till annat ställe där den återanvänds t.ex. när man kopplar person till grupp\r\n participants: \"Deltagare\",\r\n leaders: \"Ledare\",\r\n temporaryLeaderShort: \"Tillf. ledare\",\r\n isPresent: \"Deltagit\",\r\n searchPersonRegister: \"Sök efter befintliga personer i personregistret\",\r\n hideField: \"Göm fält\",\r\n showField: \"Visa fler fält\",\r\n occasionsInSeries: \"Gruppaktiviteter i serien\",\r\n\r\n addGuest: \"Lägg till gäst\",\r\n removeGuest: \"Ta bort gäst\",\r\n guest: \"Gäst\", \r\n\r\n EveryWeek: \"Varje vecka\",\r\n EveryOtherWeek: \"Varannan vecka\",\r\n EveryFourthWeek: \"Var fjärde vecka\",\r\n\r\n Training: \"Träning\",\r\n Game: \"Match\",\r\n Meeting: \"Möte\",\r\n Other: \"Övrigt\",\r\n\r\n removeOccasionAndFollowingDialogText: \"Gruppaktiviteten är en del av en återkommande serie gruppaktiviteter.\",\r\n removeOccasion: \"Ta bort gruppaktiviteten\",\r\n removeOccasionAndFollowing: \"Ta bort gruppaktiviteten och alla efterföljande i serien\",\r\n\r\n participantsConfirmed: \"Bekräftad\",\r\n participantsConfirmedBy: \"Bekräftad av\",\r\n\r\n numberOfParticipants: \"Antal deltagare\",\r\n numberOfLeaders: \"Antal ledare\",\r\n personMandatoryDataIsMissing: \"Personuppgifter måste kompletteras\",\r\n personMandatoryDataIsMissingInfo: \"Det saknas obligatoriska personuppgifter på en/flera personer, för att kunna bekräfta deltagarna måste uppgifterna kompletteras.\",\r\n addPersonToGroup: \"Lägg till person i grupp\",\r\n addPersonToGroupText: \"Ska personen läggas till tillfälligt för denna sammankomst eller permanent i gruppen?\",\r\n optionTemporary: \"Tillfälligt för denna sammankomst\",\r\n optionGroup: \"Lägg till i gruppen\",\r\n registerAttendance: \"Registrera närvaro\",\r\n confirmAttendance: \"Bekräfta närvaro\",\r\n },\r\n activity: {\r\n activityName: \"Verksamhet\",\r\n activity: \"Verksamhet\",\r\n addActivity: \"Lägg till verksamhet\",\r\n editActivity: \"Ändra verksamhet\",\r\n sSN: \"Fullständigt personnummer obligatoriskt\",\r\n incompleteSSNAllowed: \"Ej fullständiga personnummer tillåts\",\r\n completeSSNMandatory: \"Fullständigt personnummer\"\r\n },\r\n\r\n importPersons: {\r\n NoFileUploaded: \"Ingen fil vald\",\r\n importExcel: \"Importera från excel\",\r\n importPersonStatus: \"Status\",\r\n save: \"Importera\",\r\n NoPersonsSelected: \"Inga personer valda\",\r\n read: \"Läs in\",\r\n selectfile: \"Välj fil\",\r\n downloadExampelfile: \"Hämta exempelfil\",\r\n },\r\n\r\n importPersonStatus: {\r\n New: \"Ny\",\r\n IsChanged: \"Ändrad\",\r\n ExistAndNothingChanged: \"Oförändrad, ingen uppdatering görs\",\r\n SocialSecurityNoInvalid: \"Ogiltigt personnummer\",\r\n AssociationUserAndEmailChanged: \"Inloggning finns och e-post ändrad. Uppdatering får göras via personregister\"\r\n },\r\n\r\n user: {\r\n selectAssociationUser: \"Välj förening/roll\",\r\n associationUserId: \"Förening/roll\",\r\n AssociationUser: \"Föreningsanvändare\",\r\n SystemAdmin: \"Systemadmin\",\r\n MunicipalityAdmin: \"Kommunadmin\",\r\n registerAdministrator: \"Registrera administratör\",\r\n emailConfirmed: \"Epost verifierad\",\r\n userCreatedMessage: \"Användare sparad och aktiveringsmail skickat.\",\r\n removedMessage: \"Användaren borttagen.\",\r\n sendConfirmEmail: \"Skicka verifieringsmail\",\r\n confirmEmailSent: \"Verifieringsmail skickat\",\r\n admins: \"Administratörer\",\r\n associationUsers: \"Föreningsanvändare\",\r\n forgotPassword: \"Inget eller glömt lösenord?\",\r\n resetPassword: \"Aktivera konto/återställ lösenord\",\r\n resetPasswordSent: \"Om epostadressen finns registrerad så har ett meddelande skickats för återställning av lösenordet.\",\r\n oldPassword: \"Nuvarande lösenord\",\r\n changePassword: \"Ändra lösenord\",\r\n passwordChanged: \"Lösenord ändrat\",\r\n },\r\n\r\n/* subgroup: {\r\n key3: \"nyckel 3\"\r\n }*/\r\n}","import { en } from 'vuetify/src/locale'\r\n\r\nexport default {\r\n ...en,\r\n\r\n login: \"Login\",\r\n logout: \"Logout\",\r\n\r\n add: \"Add\",\r\n create: \"Create\",\r\n save: \"Save\",\r\n cancel: \"Cancel\",\r\n\r\n user: {\r\n createNewAdministrator: \"Create new administrator\"\r\n },\r\n/* subgroup: {\r\n key3: \"key 3\"\r\n }*/\r\n}","import Vue from 'vue';\r\nimport Vuetify from 'vuetify/lib/framework';\r\n\r\nimport colors from \"vuetify/lib/util/colors\"\r\n\r\nVue.use(Vuetify);\r\n\r\n// Translation provided by Vuetify (typescript)\r\nimport sv from '@/locale/sv'\r\nimport en from '@/locale/en'\r\n\r\nexport default new Vuetify({\r\n lang: {\r\n locales: { sv, en },\r\n current: 'sv',\r\n },\r\n theme: {\r\n // dark: true,\r\n themes: {\r\n light: {\r\n primary: colors.blue.darken4,\r\n accent: colors.blue,\r\n secondary: colors.lime,\r\n success: colors.lightGreen,\r\n error: colors.deepOrange.darken3,\r\n warning: colors.amber,\r\n info: colors.blueGrey\r\n },\r\n dark: {\r\n primary: colors.indigo\r\n }\r\n }\r\n }\r\n});\r\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',[_c('form',{attrs:{\"onSubmit\":\"return false;\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('v-dialog',{model:{value:(_vm.showResetPassword),callback:function ($$v) {_vm.showResetPassword=$$v},expression:\"showResetPassword\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"dark\":\"\",\"color\":\"primary\"}},[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',[_c('v-toolbar-title',[_c('div',{staticClass:\"d-none d-sm-flex\"},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t(\"$vuetify.user.resetPassword\")))]),_c('div',{staticClass:\"d-block d-sm-none\",staticStyle:{\"font-size\":\"small\"}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t(\"$vuetify.user.resetPassword\")))])])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"icon\":\"\",\"dark\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.cancel')},on:{\"click\":function($event){_vm.showResetPassword = false; _vm.resetPasswordEmail = '';}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)],1)],1),_c('v-container',[_c('v-row',[_c('v-col',[_c('v-text-field',{attrs:{\"rules\":[_vm.rules.required, _vm.rules.email],\"label\":\"Epost\"},model:{value:(_vm.resetPasswordEmail),callback:function ($$v) {_vm.resetPasswordEmail=$$v},expression:\"resetPasswordEmail\"}})],1)],1),_c('v-row',[_c('v-col',[_c('v-btn',{staticStyle:{\"width\":\"100%\"},attrs:{\"type\":\"submit\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.resetPassword()}}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t(\"$vuetify.user.resetPassword\"))+\" \")])],1)],1)],1)],1)],1)],1),_c('v-dialog',{model:{value:(_vm.showSelectAssociationUser),callback:function ($$v) {_vm.showSelectAssociationUser=$$v},expression:\"showSelectAssociationUser\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"dark\":\"\",\"color\":\"primary\"}},[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',[_c('v-toolbar-title',[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t(\"$vuetify.user.selectAssociationUser\"))+\" \")])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"icon\":\"\",\"dark\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.cancel')},on:{\"click\":function($event){_vm.showSelectAssociationUser = false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)],1)],1),_c('v-container',[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('v-row',[_c('v-col',[_c('v-select',{attrs:{\"items\":_vm.associationUserIds,\"rules\":[_vm.rules.required],\"label\":_vm.$vuetify.lang.t('$vuetify.user.associationUserId')},model:{value:(_vm.selectedAssociationUserId),callback:function ($$v) {_vm.selectedAssociationUserId=$$v},expression:\"selectedAssociationUserId\"}})],1)],1),_c('v-row',[_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.setAssociationUser()}}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t(\"$vuetify.choose\"))+\" \")])],1)],1)],1)])],1)],1),(!_vm.isAuthenticated)?_c('v-container',{staticStyle:{\"max-width\":\"640px\"}},[_c('v-row',[_c('v-col',{staticClass:\"float-left\",attrs:{\"cols\":\"1\"}}),_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('p',[_c('strong',[_vm._v(_vm._s(_vm.welcomeTextWithMunicipalityName))])])])],1),_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"rules\":[_vm.rules.required],\"placeholder\":\" \",\"persistent-placeholder\":\"\",\"label\":_vm.$vuetify.lang.t('$vuetify.emailAddress')},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"append-icon\":_vm.showPassword ? 'mdi-eye' : 'mdi-eye-off',\"required\":\"\",\"type\":_vm.showPassword ? 'text' : 'password',\"rules\":[_vm.rules.required],\"name\":\"password\",\"placeholder\":\" \",\"persistent-placeholder\":\"\",\"label\":_vm.$vuetify.lang.t('$vuetify.password')},on:{\"click:append\":function($event){_vm.showPassword = !_vm.showPassword}},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}})],1)],1),_c('v-row',[_c('v-col',[_c('v-btn',{staticStyle:{\"width\":\"100%\"},attrs:{\"type\":\"submit\"}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t(\"$vuetify.login\"))+\" \")])],1)],1),_c('v-row',[_c('v-col',[_c('v-btn',{staticStyle:{\"width\":\"100%\"},attrs:{\"type\":\"button\",\"text\":\"\"},on:{\"click\":function($event){_vm.showResetPassword = true}}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t(\"$vuetify.user.forgotPassword\"))+\" \")])],1)],1)],1)],1):_c('v-container',[(_vm.isSystemAdmin || _vm.isMunicipalityAdmin)?_c('v-row',[_c('v-col',{staticClass:\"text-center\"},[_c('h1',[_vm._v(\"Välkommen till Närvaro Go\")])])],1):_vm._e(),_c('v-row',[(_vm.isSystemAdmin)?_c('v-col',{staticClass:\"text-center\",attrs:{\"cols\":\"12\"}},[_c('p',[_vm._v(\"Här hittar du \"),_c('a',{attrs:{\"href\":\"files/Funktionsbeskrivning_NarvaroGo_Systemadmin.pdf\",\"target\":\"_blank\",\"title\":\"Funktionsbeskrivning\"}},[_vm._v(\"funktionsbeskrivning\")]),_vm._v(\" (öppnas i ny flik) för Närvaro Go och din roll som systemadministratör. \")])]):_vm._e(),(_vm.isMunicipalityAdmin)?_c('v-col',{staticClass:\"text-center\",attrs:{\"cols\":\"12\"}},[_c('p',[_vm._v(\"Här hittar du \"),_c('a',{attrs:{\"href\":\"files/Funktionsbeskrivning_NarvaroGo_Kommunadmin.pdf\",\"target\":\"_blank\",\"title\":\"Funktionsbeskrivning\"}},[_vm._v(\"funktionsbeskrivning\")]),_vm._v(\" (öppnas i ny flik) för Närvaro Go och din roll som kommunadministratör.\")])]):_vm._e()],1),(_vm.isAssociationUser_Admin || _vm.isAssociationUser_GroupAdmin)?_c('v-row',[_c('v-col',[_c('h1',[_vm._v(\"Information\")])])],1):_vm._e(),_c('v-row',[(_vm.isAssociationUser_Admin)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('p',[_vm._v(\"De funktioner en Föreningsadmin har i Närvaro Go är:\")]),_c('p',[_c('ul',[_c('li',[_vm._v(\" Tillgång till föreningens personregister \"),_c('ul',[_c('li',[_vm._v(\"Registrera nya personer i personregistret\")]),_c('li',[_vm._v(\"Importera deltagare (medlemmar) via Excel-fil som sparas till personregistret\")]),_c('li',[_vm._v(\"Ändra uppgifter på person\")]),_c('li',[_vm._v(\"Ta bort personer\")])])]),_c('li',[_vm._v(\" Hantera grupper \"),_c('ul',[_c('li',[_vm._v(\"Skapa grupper\")]),_c('li',[_vm._v(\"Lägga till deltagare i grupp från personregister\")]),_c('li',[_vm._v(\"Lägga till ledare till grupp från personregister\")]),_c('li',[_vm._v(\"Ta bort deltagare från grupp\")])])]),_c('li',[_vm._v(\"Skapa inloggning till ledare, koppla till grupp\")]),_c('li',[_vm._v(\"Registrera gruppaktiviter för grupp\")]),_c('li',[_vm._v(\"Närvaroregistrering för föreningens samtliga grupper\")]),_c('li',[_vm._v(\"När närvaroregistrering är klar för perioden skapar föreningsadmin aktivitetskort/närvarokort (RF-filformat) av de gruppaktiviteter som rapporterats. Filen exporteras via API till Interbook Go/FRI.\")])])]),_c('p',[_vm._v(\"Behöver ni manual eller genomgång av funktionerna, vänligen kontakta er kommun.\")])]):_vm._e(),(_vm.isAssociationUser_GroupAdmin)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('p',[_vm._v(\"De funktioner en Gruppadmin har i Närvaro Go är:\")]),_c('p',[_c('ul',[_c('li',[_vm._v(\"Registrera gruppaktiviteter (tillfällen) per grupp\")]),_c('li',[_vm._v(\"Närvarorapportera på gruppaktiviteter för sina grupper\")]),_c('li',[_vm._v(\" Hantera grupp \"),_c('ul',[_c('li',[_vm._v(\"Lägga till deltagare till grupp från personregister\")]),_c('li',[_vm._v(\"Lägga till ledare till grupp från personregister\")]),_c('li',[_vm._v(\"Om personen inte finns registrerad sedan tidigare, registrera ny person som läggs i personregister och grupp\")]),_c('li',[_vm._v(\"Ta bort deltagare från grupp\")])])])])]),_c('p',[_vm._v(\"Behöver ni manual eller genomgång av funktionerna, vänligen kontakta föreningsadmin på aktuell förening.\")])]):_vm._e()],1)],1),_c('v-container',{staticClass:\"align-center text-center\",staticStyle:{\"max-width\":\"100%\",\"display\":\"flex\",\"justify-content\":\"center\",\"width\":\"100%\",\"margin-bottom\":\"64px\"}},[(_vm.imageLogoFile)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('img',{staticStyle:{\"max-height\":\"100px\",\"max-width\":\"100px\"},attrs:{\"src\":_vm.imageLogoFile,\"title\":_vm.$vuetify.lang.t('$vuetify.municipalityLogoType')}})])],1):_vm._e()],1),_c('v-container',{staticClass:\"caption align-center text-center\",staticStyle:{\"max-width\":\"100%\",\"position\":\"absolute\",\"z-index\":\"4\",\"bottom\":\"0px\",\"display\":\"flex\",\"left\":\"0\",\"justify-content\":\"center\",\"width\":\"100%\",\"box-shadow\":\"0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%)\"}},[_c('v-row',{staticClass:\"mx-2 my-0\"},[_c('v-col',{staticClass:\"pa-0 ma-0 text-sm-left\",attrs:{\"cols\":\"12\",\"sm\":\"8\"}},[_vm._v(\" © Copyright Explizit. All rights reserved. \"+_vm._s(_vm.$vuetify.lang.t(\"$vuetify.version\"))+\" \"+_vm._s(_vm.appVersion)+\".\"+_vm._s(_vm.buildDate)+\"/\"+_vm._s(_vm.databaseVersion)+\" \")]),(_vm.accessibilityStatementUrl)?_c('v-col',{staticClass:\"pa-0 ma-0 text-sm-right\",attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('a',{attrs:{\"href\":_vm.accessibilityStatementUrl,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$vuetify.lang.t(\"$vuetify.accessibilityStatement\")))])]):_vm._e()],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import axios, { AxiosResponse } from \"axios\";\r\n\r\nclass Service {\r\n public async Post(controller: string, data: any, route?: string): Promise> {\r\n return axios.post(`api/${controller}` + (typeof route !== 'undefined' ? `/${route}` : ''), data);\r\n }\r\n public async Delete(controller: string, id: any, route?: string): Promise> {\r\n return axios.delete(`api/${controller}` + (typeof route !== 'undefined' ? `/${route}` : '') + `/${id}`);\r\n }\r\n public async Get(controller: string, route?: string): Promise> {\r\n return this.GetById(controller, undefined, route);\r\n }\r\n\r\n public async GetById(controller: string, id?: any, route?: string): Promise> {\r\n return axios.get(`api/${controller}` + (typeof route !== 'undefined' ? `/${route}` : '') + (typeof id !== 'undefined' ? `/${id}` : ''));\r\n }\r\n}\r\n\r\nexport const GenericService: Service = new Service();\r\n","\r\n import Vue from 'vue'\r\n import { UserService } from '@/services/UserService'\r\n import UserInfo from '@/models/api/user/UserInfo';\r\n import { AspNetRole, AssociationRoleEnum } from '@/models/Enums';\r\n import { UserHelper } from '@/helpers/UserHelper';\r\n import SelectListItem from '@/models/SelectListItem';\r\n import AssociationUserInfo from '../../models/api/user/AssociationUserInfo';\r\n import { GenericService } from '../../services/GenericService';\r\n import { mapGetters } from 'vuex';\r\nimport { SnackbarService } from '../../services/SnackbarService';\r\nimport { SettingService } from '../../services/SettingService';\r\n\r\n interface Data {\r\n errors: [\"\"];\r\n email: string;\r\n password: string;\r\n showPassword: boolean;\r\n role: AspNetRole;\r\n apiToken: null | string;\r\n rules: boolean | string;\r\n }\r\n\r\n export default Vue.extend({\r\n data() {\r\n return {\r\n showSelectAssociationUser: false,\r\n associationUserIds: [new SelectListItem(\"\", \"\")],\r\n selectedAssociationUserId: \"\",\r\n\r\n showResetPassword: false,\r\n resetPasswordEmail: \"\",\r\n\r\n loading: false,\r\n post: null,\r\n email: \"\",\r\n password: \"\",\r\n showPassword: false,\r\n apiToken: \"\",\r\n rules: {\r\n required: (value: any) => !!value || 'Obligatoriskt.',\r\n email: (value: any) => !value\r\n || /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(value)\r\n || this.$vuetify.lang.t('$vuetify.invalidEmail'),\r\n },\r\n\r\n accessibilityStatementUrl: \"\",\r\n databaseVersion: \"\",\r\n welcomeTextWithMunicipalityName: \"\",\r\n imageLogoFile: null,\r\n }\r\n },\r\n created() {\r\n //const userInfo = SessionHelper.getUserInfo();\r\n const userInfo = this.$store.state.userInfo;\r\n\r\n if (userInfo && userInfo.token) {\r\n this.apiToken = userInfo.token;\r\n }\r\n\r\n /*\r\n setTimeout(() => {\r\n SnackbarService.addSuccessMessage(\"Något bra har hänt. Automatisk stängning efter standardtiden på 4 sekunder!\");\r\n //SnackbarService.addSuccessMessage(\"Något bra har hänt. Automatisk stängning efter den specificerade tiden på 5 sekunder!\", 5000);\r\n //SnackbarService.addSuccessMessage(\"Något bra har hänt. Inte manuell stängning efter standardtiden på 4 sekunder!\", false);\r\n SnackbarService.addSuccessMessage(\"Något bra har hänt. Manuell stängning!\", true);\r\n SnackbarService.addWarningMessage(\"Något har hänt. Automatisk stängning efter standardtiden på 7 sekunder!\");\r\n //SnackbarService.addWarningMessage(\"Något har hänt. Automatisk stängning efter den specificerade tiden på 5 sekunder!\", 5000);\r\n //SnackbarService.addWarningMessage(\"Något har hänt. Inte manuell stängning efter standardtiden på 4 sekunder!\", false);\r\n SnackbarService.addWarningMessage(\"Något har hänt. Manuell stängning!\", true);\r\n SnackbarService.addErrorMessage(\"Något obra har hänt. Manuell stängning!\");\r\n }, 2000);\r\n */\r\n\r\n\r\n SettingService.GetDatabaseVersion().then((response) => {\r\n //console.log(response);\r\n this.databaseVersion = response.data;\r\n //console.log(this.accessibilityStatementUrl);\r\n })\r\n .catch((error) => {\r\n if (error.response.data.errors) {\r\n SnackbarService.addErrorMessage(error.response.data.errors.join(\"\\n\"));\r\n } else {\r\n SnackbarService.addErrorMessage(this.$vuetify.lang.t('$vuetify.generalErrorMessage'));\r\n }\r\n })\r\n .finally(() => {\r\n });\r\n\r\n SettingService.GetAccessibilityStatementUrl().then((response) => {\r\n //console.log(response);\r\n this.accessibilityStatementUrl = response.data;\r\n //console.log(this.accessibilityStatementUrl);\r\n })\r\n .catch((error) => {\r\n if (error.response.data.errors) {\r\n SnackbarService.addErrorMessage(error.response.data.errors.join(\"\\n\"));\r\n } else {\r\n SnackbarService.addErrorMessage(this.$vuetify.lang.t('$vuetify.generalErrorMessage'));\r\n }\r\n })\r\n .finally(() => {\r\n });\r\n\r\n\r\n \r\n this.getMunicipalityNameWithLoginPageText()\r\n this.getMunicipalityLogo();\r\n\r\n },\r\n methods: {\r\n\r\n\r\n getMunicipalityNameWithLoginPageText() {\r\n\r\n SettingService.GetMunicipalityNameWithLoginPageText().then((response) => {\r\n this.welcomeTextWithMunicipalityName = response.data;\r\n \r\n }).catch((error) => {\r\n if (error.response.data.errors) {\r\n SnackbarService.addErrorMessage(error.response.data.errors.join(\"\\n\"));\r\n } else { \r\n SnackbarService.addErrorMessage(this.$vuetify.lang.t('$vuetify.generalErrorMessage'));\r\n }\r\n })\r\n .finally(() => {\r\n });\r\n },\r\n\r\n getMunicipalityLogo() {\r\n\r\n SettingService.GetMunicipalityLogo().then(response => {\r\n this.imageLogoFile = response.data!;\r\n }).catch((error) => {\r\n if (error.response.data.errors) {\r\n SnackbarService.addErrorMessage(error.response.data.errors.join(\"\\n\"));\r\n } else { \r\n SnackbarService.addErrorMessage(this.$vuetify.lang.t('$vuetify.generalErrorMessage'));\r\n }\r\n }).finally(() => {\r\n });\r\n },\r\n\r\n\r\n resetPassword(): void {\r\n //this.showSaved = false;\r\n\r\n window.location.href.lastIndexOf(\"#/\")\r\n const validateEmailUrl = window.location.href.substr(0, window.location.href.lastIndexOf(\"#\") + 1) + \"/confirmUser\";\r\n\r\n this.$store.commit('addOverlay');\r\n\r\n UserService.SendResetPassword({ email: this.resetPasswordEmail, emailConfirmationUrl: validateEmailUrl }).finally(() => {\r\n this.$store.commit('removeOverlay');\r\n SnackbarService.addSuccessMessage(this.$vuetify.lang.t('$vuetify.user.resetPasswordSent'));\r\n this.resetPasswordEmail = \"\";\r\n this.showResetPassword = false;\r\n });\r\n },\r\n logout(): void {\r\n UserHelper.logoff(this);\r\n },\r\n\r\n /*\r\n * ALMOST SAME CODE AS SELECT ASSOCIATION USER IN App.vue! Changes might need to be done there too!\r\n */\r\n setValuesFromAuthenticationResponse(response: any) {\r\n let userInfo = new UserInfo();\r\n userInfo.aspNetRole = response.data.role;\r\n userInfo.name = response.data.name;\r\n userInfo.isAuthenticated = true;\r\n userInfo.token = response.data.token as string;\r\n userInfo.hasMultipleAssociationUsers = response.data.hasMultipleAssociationUsers;\r\n\r\n if (response.data.associationUserInfo) {\r\n userInfo.associationUserInfo = new AssociationUserInfo();\r\n userInfo.associationUserInfo.id = response.data.associationUserInfo.id;\r\n userInfo.associationUserInfo.role = response.data.associationUserInfo.role;\r\n userInfo.associationUserInfo.name = response.data.associationUserInfo.name;\r\n userInfo.associationUserInfo.associationName = response.data.associationUserInfo.associationName;\r\n } else {\r\n userInfo.associationUserInfo = null;\r\n }\r\n\r\n return userInfo;\r\n },\r\n /*\r\n * ALMOST SAME CODE AS SELECT ASSOCIATION USER IN App.vue! Changes might need to be done there too!\r\n */\r\n handleAuthentication(userInfo: UserInfo) {\r\n\r\n //SessionHelper.sessionSetItem(\"UserInfo\", userInfo);\r\n this.$store.commit(\"setUserInfo\", userInfo);\r\n\r\n //console.log(userInfo);\r\n \r\n switch (userInfo.aspNetRole) {\r\n case AspNetRole.SystemAdmin:\r\n console.log(\"no page defined\", AspNetRole.SystemAdmin.toString());\r\n break;\r\n case AspNetRole.MunicipalityAdmin:\r\n console.log(\"no page defined\", AspNetRole.MunicipalityAdmin.toString());\r\n // console.log(\"User is \", AspNetRole.MunicipalityAdmin.toString(), \"redirecting\" );\r\n //this.$router.push(\"/municipality\");\r\n //return;\r\n break;\r\n case AspNetRole.AssociationUser:\r\n if (userInfo.associationUserInfo?.role == AssociationRoleEnum.AssociationAdmin) {\r\n this.$router.push(\"/association\");\r\n \r\n } else { \r\n this.$router.push(\"/association/occasions\");\r\n }\r\n break;\r\n default:\r\n console.log(\"unhandled for user role\", userInfo.aspNetRole);\r\n break;\r\n }\r\n\r\n //this.testAuthorization();\r\n },\r\n /*\r\n * ALMOST SAME CODE AS SELECT ASSOCIATION USER IN App.vue! Changes might need to be done there too!\r\n */\r\n async setAssociationUser() {\r\n this.$store.commit(\"addOverlay\");\r\n UserService.SetAssociationUser(\r\n { id: parseInt(this.selectedAssociationUserId) },\r\n this.apiToken\r\n )\r\n .then((response) => {\r\n const userInfo = this.setValuesFromAuthenticationResponse(response);\r\n this.handleAuthentication(userInfo);\r\n\r\n this.showSelectAssociationUser = false;\r\n })\r\n .catch((error) => {\r\n if (error.response.data.errors) {\r\n SnackbarService.addErrorMessage(error.response.data.errors.join(\"\\n\"));\r\n } else {\r\n SnackbarService.addErrorMessage(this.$vuetify.lang.t('$vuetify.generalErrorMessage'));\r\n }\r\n })\r\n .finally(() => {\r\n this.$store.commit(\"removeOverlay\");\r\n });\r\n },\r\n async submit() {\r\n\r\n this.$store.commit(\"addOverlay\");\r\n UserService.Login({ email: this.email, password: this.password })\r\n .then((response) => {\r\n\r\n const userInfo = this.setValuesFromAuthenticationResponse(response);\r\n\r\n if (\r\n userInfo.aspNetRole == AspNetRole.AssociationUser &&\r\n !userInfo.associationUserInfo\r\n ) {\r\n // We do not set the token for calls as this token does not contain the association role\r\n // We need to select role and get new token\r\n\r\n // Temporary stores api token for setAssociationUser call\r\n this.apiToken = response.data.token;\r\n\r\n this.$store.commit(\"addOverlay\");\r\n UserService.GetAssociationUsers(userInfo.token)\r\n .then((response) => {\r\n this.associationUserIds = response.data.items;\r\n this.showSelectAssociationUser = true;\r\n })\r\n .catch((error) => {\r\n if (error.response.data.errors) {\r\n SnackbarService.addErrorMessage(error.response.data.errors.join(\"\\n\"));\r\n } else {\r\n SnackbarService.addErrorMessage(this.$vuetify.lang.t('$vuetify.generalErrorMessage'));\r\n }\r\n })\r\n .finally(() => {\r\n this.$store.commit(\"removeOverlay\");\r\n });\r\n\r\n return;\r\n }\r\n\r\n this.handleAuthentication(userInfo);\r\n\r\n }).catch((error) => {\r\n if (error.response.data.errors) {\r\n SnackbarService.addErrorMessage(error.response.data.errors.join(\"\\n\"));\r\n } else {\r\n SnackbarService.addErrorMessage(this.$vuetify.lang.t('$vuetify.generalErrorMessage'));\r\n }\r\n }).finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n },\r\n\r\n\r\n\r\n testAuthorization(): void {\r\n GenericService.Get('user', 'testSystemAdmin')\r\n .then(response => {\r\n console.log('testSystemAdmin : ' + response.data);\r\n return;\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n GenericService.Get('user', 'testMunicipalityAdmin')\r\n .then(response => {\r\n console.log('testMunicipalityAdmin : ' + response.data);\r\n return;\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n GenericService.Get('user', 'testSystemAndMunicipalityAdmin')\r\n .then(response => {\r\n console.log('testSystemAndMunicipalityAdmin : ' + response.data);\r\n return;\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n GenericService.Get('user', 'testAssociationUser')\r\n .then(response => {\r\n console.log('testAssociationUser : ' + response.data);\r\n return;\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n GenericService.Get('user', 'testAssociationUser_Admin')\r\n .then(response => {\r\n console.log('testAssociationUser_Admin : ' + response.data);\r\n return;\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n GenericService.Get('user', 'testAssociationUser_User')\r\n .then(response => {\r\n console.log('testAssociationUser_User : ' + response.data);\r\n return;\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n GenericService.Get('user', 'testAllAdmin')\r\n .then(response => {\r\n console.log('testAllAdmin : ' + response.data);\r\n return;\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n },\r\n\r\n },\r\n computed: {\r\n appVersion(): any {\r\n return process.env.PACKAGE_VERSION || '0';\r\n },\r\n buildDate(): any {\r\n console.log(process.env);\r\n return process.env.VUE_APP_BUILD_DATE || '0';\r\n },\r\n ...mapGetters([\"isAuthenticated\",\r\n \"isSystemAdmin\",\r\n \"isMunicipalityAdmin\",\r\n \"isAssociationUser_Admin\",\r\n \"isAssociationUser_GroupAdmin\"\r\n ])\r\n\r\n },\r\n });\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=047c468e\"\nimport script from \"./Home.vue?vue&type=script&lang=ts\"\nexport * from \"./Home.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',[_c('h1',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.menu_user')))]),_c('admin'),_c('user')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"transition\":\"dialog-bottom-transition\",\"max-width\":\"600\"},model:{value:(_vm.showDelete),callback:function ($$v) {_vm.showDelete=$$v},expression:\"showDelete\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"color\":\"primary\",\"dark\":\"\"}},[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',[_c('v-toolbar-title',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.delete')))])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"icon\":\"\",\"dark\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.close')},on:{\"click\":function($event){return _vm.emitResult(false)}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)],1)],1),_c('v-card-text',{staticClass:\"pb-0 mb-0 pt-2 text-center\"},[_c('v-container',{staticClass:\"text-h6\"},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.deleteDialogMessage'))+_vm._s(_vm.itemToDeleteName ? ' \"' + _vm.itemToDeleteName + '\"' : '')+\"? \")]),(_vm.additionalInfo)?_c('v-container',{},[_vm._v(\" \"+_vm._s(_vm.additionalInfo)+\" \")]):_vm._e()],1),_c('v-card-actions',[_c('v-container',[_c('v-row',[_c('v-col',[_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.emitResult(false)}}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.cancel')))])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",on:{\"click\":function($event){return _vm.emitResult(true)}}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.delete')))])],1)],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import Vue from 'vue';\r\n\r\n export default Vue.extend({\r\n props: {\r\n showDialog: Boolean,\r\n itemToDeleteId: String,\r\n itemToDeleteName: String,\r\n additionalInfo: String,\r\n },\r\n data() {\r\n return {\r\n showDelete: false,\r\n }\r\n },\r\n created() {\r\n this.showDelete = this.showDialog;\r\n },\r\n watch: {\r\n showDialog: {\r\n handler() {\r\n this.showDelete = this.showDialog;\r\n },\r\n deep: true,\r\n },\r\n showDelete: {\r\n handler() {\r\n if (!this.showDelete) {\r\n this.emitResult(false);\r\n }\r\n },\r\n deep: true,\r\n },\r\n },\r\n methods: {\r\n async emitResult(deleteItem: boolean) {\r\n this.$emit('dialogResult', deleteItem ? this.itemToDeleteId : undefined)\r\n },\r\n },\r\n });\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeleteDialog.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeleteDialog.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./DeleteDialog.vue?vue&type=template&id=5a018379\"\nimport script from \"./DeleteDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./DeleteDialog.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',[_c('h2',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.user.admins')))]),_c('delete-dialog',{attrs:{\"showDialog\":_vm.showDelete,\"itemToDeleteName\":_vm.itemToDeleteName,\"itemToDeleteId\":_vm.itemToDeleteId},on:{\"dialogResult\":_vm.deleteCallback}}),_c('v-container',[_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"headers\":_vm.headers,\"items\":_vm.items,\"options\":_vm.options,\"server-items-length\":_vm.totalCount,\"loading\":_vm.loading},on:{\"update:options\":function($event){_vm.options=$event}},scopedSlots:_vm._u([{key:\"item.role\",fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.user.' + _vm.getRoleName(item.role)))+\" \")]}},{key:\"item.emailConfirmed\",fn:function({ item }){return [_c('p',{staticClass:\"text-center ma-0\"},[(item.emailConfirmed)?_c('v-icon',{attrs:{\"color\":\"green darken-2\"}},[_vm._v(\" mdi-check \")]):_vm._e()],1)]}},{key:\"item.action\",fn:function({ item }){return [_c('v-container',{staticClass:\"text-right\"},[(!item.emailConfirmed)?_c('v-icon',{staticClass:\"mr-3\",attrs:{\"title\":_vm.$vuetify.lang.t('$vuetify.user.sendConfirmEmail') + ' ' + _vm.$vuetify.lang.t('$vuetify.to').toLowerCase() + ' ' + item.userName},on:{\"click\":function($event){return _vm.sendConfirmEmail(item.userName)}}},[_vm._v(\" mdi-email \")]):_vm._e(),_c('v-icon',{attrs:{\"title\":_vm.$vuetify.lang.t('$vuetify.delete') + ' ' + item.userName},on:{\"click\":function($event){return _vm.showDeleteDialog(item.id, item.userName)}}},[_vm._v(\" mdi-delete \")])],1)]}}])}),_c('v-dialog',{scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"mt-3 float-right\",class:{'mr-3': _vm.$vuetify.breakpoint.xs, 'nv-floating-btn': _vm.$vuetify.breakpoint.xs},attrs:{\"bottom\":_vm.$vuetify.breakpoint.xs,\"fixed\":_vm.$vuetify.breakpoint.xs,\"elevation\":\"6\",\"color\":\"primary\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.user.registerAdministrator'))+\" \"),_c('v-icon',[_vm._v(\"mdi-plus\")])],1)]}}]),model:{value:(_vm.showCreate),callback:function ($$v) {_vm.showCreate=$$v},expression:\"showCreate\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"dark\":\"\",\"color\":\"primary\"}},[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',[_c('v-toolbar-title',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.user.registerAdministrator')))])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"icon\":\"\",\"dark\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.cancel')},on:{\"click\":function($event){return _vm.closeCreate()}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)],1)],1),_c('v-container',[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"rules\":[_vm.rules.required],\"label\":\"Epost\"},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-select',{attrs:{\"items\":_vm.roles,\"rules\":[_vm.rules.required],\"label\":\"Typ av användare\"},model:{value:(_vm.selectedRole),callback:function ($$v) {_vm.selectedRole=$$v},expression:\"selectedRole\"}})],1)],1),_c('v-row',[_c('v-col',[_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.closeCreate()}}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.cancel'))+\" \")])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"type\":\"submit\"}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.create'))+\" \")])],1)],1)],1)])],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { AspNetRole } from '@/models/Enums';\r\n\r\nexport default class AdminRegistrationRequest {\r\n email: string;\r\n role: AspNetRole;\r\n emailConfirmationUrl: string;\r\n\r\n constructor(\r\n email: string,\r\n role: AspNetRole,\r\n emailConfirmationUrl: string,\r\n ) {\r\n this.email = email;\r\n this.role = role;\r\n this.emailConfirmationUrl = emailConfirmationUrl;\r\n }\r\n}","import Vue from 'vue'\r\n\r\nclass Helper {\r\n adaptTableHeaders(headers: any[], vue: Vue): void {\r\n headers.forEach(header => {\r\n //console.log(\"Change from '\" + header.text + \"' to '\" + vue.$vuetify.lang.t(header.text) + \"'\")\r\n if (header.text) {\r\n if (header.text[0] == ':') {\r\n header.text = header.text.substring(1);\r\n } else {\r\n header.text = vue.$vuetify.lang.t('$vuetify.' + header.text);\r\n }\r\n } else {\r\n header.text = \"\";\r\n }\r\n\r\n })\r\n }\r\n}\r\n\r\nexport const DataTableHelper: Helper = new Helper();\r\n","import Vue from 'vue';\r\nimport { UserService } from '@/services/UserService';\r\nimport { AssociationService } from '@/services/AssociationService';\r\nimport { AspNetRole, AssociationRoleEnum } from '../../models/Enums';\r\nimport SelectListItem from '../../models/SelectListItem';\r\nimport AdminRegistrationRequest from '../../models/api/user/AdminRegistrationRequest';\r\nimport UserRegistrationRequest from '../../models/api/user/UserRegistrationRequest';\r\nimport DeleteDialog from '@/components/dialogs/DeleteDialog.vue';\r\nimport { DataTableHelper } from '@/helpers/DataTableHelper';\r\nimport { SnackbarService } from '../../services/SnackbarService';\r\n\r\nexport default Vue.extend({\r\n components: {\r\n DeleteDialog\r\n },\r\n data() {\r\n return {\r\n // Table\r\n expanded: [],\r\n singleExpand: false,\r\n totalCount: 0,\r\n items: [],\r\n loading: true,\r\n options: {},\r\n headers: [\r\n {\r\n text: 'name',\r\n align: 'start',\r\n value: 'userName',\r\n },\r\n {\r\n text: 'role',\r\n value: 'role'\r\n },\r\n {\r\n text: 'user.emailConfirmed',\r\n sortable: true,\r\n value: 'emailConfirmed',\r\n align: 'center',\r\n },\r\n {\r\n text: '',\r\n sortable: false,\r\n value: 'action'\r\n },\r\n ],\r\n\r\n // Delete dialog\r\n showDelete: false,\r\n itemToDeleteId: \"\",\r\n itemToDeleteName: \"\",\r\n\r\n showCreate: false,\r\n\r\n email: \"\",\r\n roles: [new SelectListItem(\"\", \"\")],\r\n selectedRole: \"0\",\r\n\r\n rules: {\r\n required: (value: any) => !!value || this.$vuetify.lang.t('$vuetify.required')\r\n },\r\n users: [],\r\n }\r\n },\r\n created() {\r\n DataTableHelper.adaptTableHeaders(this.headers, this);\r\n\r\n this.$store.commit('addOverlay');\r\n UserService.GetRegisterRoles().then(response => {\r\n this.roles = [];\r\n response.data.forEach((role: AspNetRole) => { this.roles.push(new SelectListItem(this.$vuetify.lang.t('$vuetify.user.' +this.getRoleName(role)), role.toString())) });\r\n\r\n }).catch((error) => {\r\n console.error(error);\r\n }).finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n \r\n this.getAdminsPaged();\r\n },\r\n watch: {\r\n options: {\r\n handler() {\r\n this.getAdminsPaged();\r\n },\r\n deep: true,\r\n },\r\n },\r\n methods: {\r\n getAssociationRoleName(role: AssociationRoleEnum) {\r\n return AssociationRoleEnum[role];\r\n },\r\n getRoleName(role: AspNetRole) {\r\n return AspNetRole[role];\r\n },\r\n closeCreate() {\r\n this.clearCreateForm();\r\n this.showCreate = false;\r\n },\r\n clearCreateForm() {\r\n this.email = \"\";\r\n this.selectedRole = \"0\";\r\n },\r\n async getAdminsPaged() {\r\n this.loading = true;\r\n\r\n const sortBy = (this.options as any).sortBy ?? [];\r\n const sortDesc = (this.options as any).sortDesc ?? [];\r\n const page = (this.options as any).page ?? 1;\r\n const itemsPerPage = (this.options as any).itemsPerPage ?? 10;\r\n\r\n const data = { sortBy: sortBy, sortDesc: sortDesc, page: page, itemsPerPage: itemsPerPage };\r\n\r\n UserService.GetAdminsPaged(data).then(response => {\r\n this.totalCount = response.data.totalCount;\r\n this.items = response.data.items;\r\n this.items.forEach((s: any) => { s.canExpand = s.role == AspNetRole.AssociationUser; });\r\n\r\n }).catch((error) => {\r\n console.error(error);\r\n }).finally(() => {\r\n this.loading = false;\r\n });\r\n },\r\n async sendConfirmEmail(email: string) {\r\n window.location.href.lastIndexOf(\"#/\")\r\n const validateEmailUrl = window.location.href.substr(0, window.location.href.lastIndexOf(\"#\") + 1) + \"/confirmUser\";\r\n\r\n this.$store.commit('addOverlay');\r\n\r\n UserService.SendConfirmEmail({ email: email, emailConfirmationUrl: validateEmailUrl }).then(() => {\r\n SnackbarService.addSuccessMessage(this.$vuetify.lang.t('$vuetify.user.confirmEmailSent'));\r\n }).catch((error) => {\r\n if (error.response.data.errors) {\r\n SnackbarService.addErrorMessage(error.response.data.errors.join(\"\\n\"));\r\n } else {\r\n SnackbarService.addErrorMessage(this.$vuetify.lang.t('$vuetify.generalErrorMessage'));\r\n }\r\n }).finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n },\r\n async submit() {\r\n window.location.href.lastIndexOf(\"#/\")\r\n\r\n const validateEmailUrl = window.location.href.substr(0, window.location.href.lastIndexOf(\"#\") + 1) + \"/confirmUser\";\r\n\r\n this.$store.commit('addOverlay');\r\n\r\n UserService.RegisterAdmin(new AdminRegistrationRequest(this.email, parseInt(this.selectedRole as string), validateEmailUrl)).then(() => {\r\n this.clearCreateForm();\r\n\r\n SnackbarService.addSuccessMessage(this.$vuetify.lang.t('$vuetify.user.userCreatedMessage'));\r\n this.showCreate = false;\r\n this.getAdminsPaged();\r\n }).catch((error) => {\r\n if (error.response.data.errors) {\r\n SnackbarService.addErrorMessage(error.response.data.errors.join(\"\\n\"));\r\n } else {\r\n SnackbarService.addErrorMessage(this.$vuetify.lang.t('$vuetify.generalErrorMessage'));\r\n }\r\n }).finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n },\r\n async showDeleteDialog(id: string, name: string) {\r\n this.itemToDeleteId = id;\r\n this.itemToDeleteName = name;\r\n this.showDelete = true;\r\n },\r\n async deleteCallback(itemToDeleteId: string) {\r\n this.showDelete = false;\r\n\r\n if (itemToDeleteId) {\r\n this.$store.commit('addOverlay');\r\n UserService.DeleteUser(this.itemToDeleteId).then(() => {\r\n SnackbarService.addSuccessMessage(this.$vuetify.lang.t('$vuetify.user.removedMessage'));\r\n\r\n this.getAdminsPaged();\r\n }).catch((error) => {\r\n if (error.response.data.errors) {\r\n SnackbarService.addErrorMessage(error.response.data.errors.join(\"\\n\"));\r\n } else {\r\n SnackbarService.addErrorMessage(this.$vuetify.lang.t('$vuetify.generalErrorMessage'));\r\n }\r\n }).finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n }\r\n }\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./Admin.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./Admin.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./Admin.vue?vue&type=template&id=58f885b4\"\nimport script from \"./Admin.ts?vue&type=script&lang=ts&external\"\nexport * from \"./Admin.ts?vue&type=script&lang=ts&external\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',[_c('h2',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.user.associationUsers')))]),_c('v-container',[_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"headers\":_vm.headers,\"items\":_vm.items,\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"item.role\",fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.association.' + _vm.getAssociationRoleName(item.role)))+\" \")]}},{key:\"item.emailConfirmed\",fn:function({ item }){return [_c('p',{staticClass:\"text-center ma-0\"},[(item.emailConfirmed)?_c('v-icon',{attrs:{\"color\":\"green darken-2\"}},[_vm._v(\" mdi-check \")]):_vm._e()],1)]}},{key:\"item.action\",fn:function({ item }){return [_c('v-container',{staticClass:\"text-right\"},[(!item.emailConfirmed)?_c('v-icon',{staticClass:\"mr-3\",attrs:{\"title\":_vm.$vuetify.lang.t('$vuetify.user.sendConfirmEmail') + ' ' + _vm.$vuetify.lang.t('$vuetify.to').toLowerCase() + ' ' + item.userName},on:{\"click\":function($event){return _vm.sendConfirmEmail(item.userName)}}},[_vm._v(\" mdi-email \")]):_vm._e()],1)]}},{key:\"item.data-table-expand\",fn:function({ item, isExpanded, expand }){return [(item.canExpand)?_c('button',{class:_vm.getExpanderClass(isExpanded),attrs:{\"type\":\"button\",\"aria-expanded\":isExpanded.toString()},on:{\"click\":function($event){return expand(!isExpanded);}}},[_c('svg',{staticClass:\"v-icon__svg\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 24 24\",\"role\":\"img\",\"aria-hidden\":\"true\"}},[_c('path',{attrs:{\"d\":\"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z\"}})])]):_vm._e()]}}])})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function GetExpanderClasses(isExpanded: boolean): string {\r\n if (isExpanded) {\r\n return \"v-icon notranslate v-data-table__expand-icon v-icon--link theme--light v-data-table__expand-icon--active\";\r\n }\r\n return \"v-icon notranslate v-data-table__expand-icon v-icon--link theme--light\";\r\n}","import Vue from 'vue';\r\nimport { UserService } from '@/services/UserService';\r\nimport { AssociationService } from '@/services/AssociationService';\r\nimport { AspNetRole, AssociationRoleEnum } from '../../models/Enums';\r\nimport SelectListItem from '../../models/SelectListItem';\r\nimport AdminRegistrationRequest from '../../models/api/user/AdminRegistrationRequest';\r\nimport UserRegistrationRequest from '../../models/api/user/UserRegistrationRequest';\r\nimport DeleteDialog from '@/components/dialogs/DeleteDialog.vue';\r\nimport { DataTableHelper } from '@/helpers/DataTableHelper';\r\nimport { SnackbarService } from '../../services/SnackbarService';\r\nimport GetExpanderClasses from '../../helpers/functions/GetExpanderClasses';\r\n\r\nexport default Vue.extend({\r\n components: {\r\n DeleteDialog\r\n },\r\n data() {\r\n return {\r\n // Table\r\n expanded: [],\r\n singleExpand: false,\r\n totalCount: 0,\r\n items: [],\r\n loading: true,\r\n options: {},\r\n headers: [\r\n {\r\n text: 'name',\r\n align: 'start',\r\n value: 'name',\r\n },\r\n {\r\n text: 'emailAddress',\r\n value: 'email'\r\n },\r\n {\r\n text: 'association.association',\r\n value: 'associationName',\r\n },\r\n {\r\n text: 'group.groupName',\r\n value: 'groupNames',\r\n },\r\n {\r\n text: 'role',\r\n value: 'role'\r\n },\r\n {\r\n text: 'user.emailConfirmed',\r\n sortable: true,\r\n value: 'emailConfirmed',\r\n align: 'center',\r\n },\r\n {\r\n text: '',\r\n sortable: false,\r\n value: 'action'\r\n },\r\n //{\r\n // text: '',\r\n // value: 'data-table-expand'\r\n //},\r\n ],\r\n headersAssociationUsers: [\r\n {\r\n text: 'name',\r\n sortable: false,\r\n value: 'name',\r\n },\r\n {\r\n text: 'association.association',\r\n sortable: false,\r\n value: 'associationName'\r\n },\r\n {\r\n text: 'role',\r\n value: 'role',\r\n },\r\n ],\r\n\r\n\r\n //Comment out everything that has to do with delete of association adminuser, should be done in person register for now anyway\r\n // Delete dialog\r\n \r\n //showDelete: false,\r\n //itemToDeleteId: \"\",\r\n //itemToDeleteName: \"\",\r\n }\r\n },\r\n created() {\r\n DataTableHelper.adaptTableHeaders(this.headers, this);\r\n DataTableHelper.adaptTableHeaders(this.headersAssociationUsers, this);\r\n\r\n this.getUsersPaged();\r\n },\r\n watch: {\r\n options: {\r\n handler() {\r\n this.getUsersPaged();\r\n },\r\n deep: true,\r\n },\r\n }, methods: {\r\n getExpanderClass(isExpanded: boolean): string {\r\n return GetExpanderClasses(isExpanded);\r\n },\r\n getRoles(user: any): string {\r\n const roles = user.associationUsers.map((s: any) => this.$vuetify.lang.t('$vuetify.association.' + this.getAssociationRoleName(s.role)));\r\n\r\n const uniqueRoles = Array.from(new Set(roles));\r\n return uniqueRoles.join(\", \");\r\n },\r\n getAssociationRoleName(role: AssociationRoleEnum) {\r\n return AssociationRoleEnum[role];\r\n },\r\n getRoleName(role: AspNetRole) {\r\n return AspNetRole[role];\r\n },\r\n async getUsersPaged() {\r\n this.loading = true;\r\n\r\n const sortBy = (this.options as any).sortBy ?? [];\r\n const sortDesc = (this.options as any).sortDesc ?? [];\r\n const page = (this.options as any).page ?? 1;\r\n const itemsPerPage = (this.options as any).itemsPerPage ?? 10;\r\n\r\n const data = { sortBy: sortBy, sortDesc: sortDesc, page: page, itemsPerPage: itemsPerPage };\r\n\r\n UserService.GetUsersPaged(data).then(response => {\r\n this.totalCount = response.data.totalCount;\r\n this.items = response.data.items;\r\n /*this.items.forEach((s: any) => { s.canExpand = s.role == AspNetRole.AssociationUser; });*/\r\n\r\n }).catch((error) => {\r\n console.error(error);\r\n }).finally(() => {\r\n this.loading = false;\r\n });\r\n },\r\n async sendConfirmEmail(email: string) {\r\n window.location.href.lastIndexOf(\"#/\")\r\n const validateEmailUrl = window.location.href.substr(0, window.location.href.lastIndexOf(\"#\") + 1) + \"/confirmUser\";\r\n\r\n this.$store.commit('addOverlay');\r\n\r\n UserService.SendConfirmEmail({ email: email, emailConfirmationUrl: validateEmailUrl }).then(() => {\r\n SnackbarService.addSuccessMessage(this.$vuetify.lang.t('$vuetify.user.confirmEmailSent'));\r\n }).catch((error) => {\r\n if (error.response.data.errors) {\r\n SnackbarService.addErrorMessage(error.response.data.errors.join(\"\\n\"));\r\n } else {\r\n SnackbarService.addErrorMessage(this.$vuetify.lang.t('$vuetify.generalErrorMessage'));\r\n }\r\n }).finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n },\r\n //async showDeleteDialog(id: string, name: string) {\r\n // this.itemToDeleteId = id;\r\n // this.itemToDeleteName = name;\r\n // this.showDelete = true;\r\n //},\r\n //async deleteCallback(itemToDeleteId: string) {\r\n // this.showDelete = false;\r\n\r\n // if (itemToDeleteId) {\r\n // this.$store.commit('addOverlay');\r\n // UserService.DeleteUser(this.itemToDeleteId).then(() => {\r\n // SnackbarService.addSuccessMessage(this.$vuetify.lang.t('$vuetify.user.removedMessage'));\r\n // this.getUsersPaged();\r\n // }).catch((error) => {\r\n // if (error.response.data.errors) {\r\n // SnackbarService.addErrorMessage(error.response.data.errors.join(\"\\n\"));\r\n // } else {\r\n // SnackbarService.addErrorMessage(this.$vuetify.lang.t('$vuetify.generalErrorMessage'));\r\n // }\r\n // }).finally(() => {\r\n // this.$store.commit('removeOverlay');\r\n // });\r\n // }\r\n //}\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./User.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./User.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./User.vue?vue&type=template&id=736f16f0\"\nimport script from \"./User.ts?vue&type=script&lang=ts&external\"\nexport * from \"./User.ts?vue&type=script&lang=ts&external\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport { UserService } from '@/services/UserService';\r\nimport { AssociationService } from '@/services/AssociationService';\r\nimport { AspNetRole, AssociationRoleEnum } from '../../models/Enums';\r\nimport SelectListItem from '../../models/SelectListItem';\r\nimport AdminRegistrationRequest from '../../models/api/user/AdminRegistrationRequest';\r\nimport UserRegistrationRequest from '../../models/api/user/UserRegistrationRequest';\r\nimport DeleteDialog from '@/components/dialogs/DeleteDialog.vue';\r\nimport { DataTableHelper } from '@/helpers/DataTableHelper';\r\nimport Admin from './Admin.vue';\r\nimport User from './User.vue';\r\n\r\nexport default Vue.extend({\r\n components: {\r\n DeleteDialog,\r\n Admin,\r\n User\r\n },\r\n data() {\r\n return {\r\n }\r\n },\r\n created() {\r\n },\r\n watch: {\r\n },\r\n methods: {\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./Index.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./Index.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=5b58ffc9\"\nimport script from \"./Index.ts?vue&type=script&lang=ts&external\"\nexport * from \"./Index.ts?vue&type=script&lang=ts&external\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',[_c('h1',{staticClass:\"mb-3 text-center\"},[_vm._v(_vm._s(_vm.pageHeader))]),_c('v-data-table',{staticClass:\"elevation-2\",class:{'mb-15': _vm.$vuetify.breakpoint.xs},attrs:{\"headers\":_vm.associationTableHeaders,\"items\":_vm.associations,\"items-per-page\":10,\"dense\":true,\"loading\":_vm.isTableLoading,\"expanded\":_vm.expanded,\"show-expand\":\"\"},on:{\"update:items\":function($event){_vm.associations=$event},\"update:expanded\":function($event){_vm.expanded=$event}},scopedSlots:_vm._u([{key:`item.actions`,fn:function({ item }){return [_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.edit')},on:{\"click\":function($event){return _vm.prepareAssociationEdit(item);}}},[_c('v-icon',[_vm._v(\"mdi-pencil\")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.delete')},on:{\"click\":function($event){_vm.showDeleteDialog = true; _vm.itemToDeleteId = item.id + ''; _vm.itemToDeleteName = item.name}}},[_c('v-icon',[_vm._v(\"mdi-delete\")])],1)]}},{key:\"expanded-item\",fn:function({ headers, item }){return [_c('td',{attrs:{\"colspan\":headers.length}},[_c('v-container',[_c('v-data-table',{attrs:{\"headers\":_vm.computedActivitiesTableHeaders,\"items\":item.associationActivityDtos,\"disable-pagination\":\"\",\"items-per-page\":-1,\"hide-default-footer\":\"\",\"dense\":\"\"},scopedSlots:_vm._u([{key:\"item.isSSNMandatory\",fn:function({ item }){return [_c('p',{staticClass:\"text-center ma-0\"},[(item.isSSNMandatory)?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"green darken-2\"}},[_vm._v(\" mdi-check \")]):_vm._e()],1)]}}],null,true)})],1)],1)]}}],null,true)}),_c('v-dialog',{scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"mt-3 float-right\",class:{'nv-floating-btn': _vm.$vuetify.breakpoint.xs},attrs:{\"bottom\":_vm.$vuetify.breakpoint.xs,\"fixed\":_vm.$vuetify.breakpoint.xs,\"elevation\":\"6\",\"color\":\"primary\"}},'v-btn',attrs,false),on),[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.association.registerAssociation'))),_c('v-icon',[_vm._v(\"mdi-plus\")])],1)]}}]),model:{value:(_vm.dialogOpen),callback:function ($$v) {_vm.dialogOpen=$$v},expression:\"dialogOpen\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"dark\":\"\",\"color\":\"primary\"}},[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',[_c('v-toolbar-title',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.association.registerAssociation')))])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"icon\":\"\",\"dark\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.cancel')},on:{\"click\":function($event){_vm.dialogOpen = false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)],1)],1),_c('v-form',{ref:\"associationForm\",model:{value:(_vm.registerAssociationFormValid),callback:function ($$v) {_vm.registerAssociationFormValid=$$v},expression:\"registerAssociationFormValid\"}},[_c('v-card-text',[_c('v-container',[_c('v-row',[_c('v-col',[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.association.name'),\"rules\":[_vm.rules.required, _vm.uniqueAssociationName]},model:{value:(_vm.registrationRequest.Name),callback:function ($$v) {_vm.$set(_vm.registrationRequest, \"Name\", $$v)},expression:\"registrationRequest.Name\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.association.orgNo'),\"rules\":[_vm.rules.required, _vm.uniqueAssociationOrgNo, _vm.checkValidOrgNo],\"placeholder\":\"XXXXXX-XXXX\",\"maxlength\":11},on:{\"blur\":function($event){return _vm.fixOrganizationNo()}},model:{value:(_vm.registrationRequest.organisationNumber),callback:function ($$v) {_vm.$set(_vm.registrationRequest, \"organisationNumber\", $$v)},expression:\"registrationRequest.organisationNumber\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.association.externalId'),\"rules\":[_vm.rules.required, _vm.uniqueAssociationExternalId],\"maxlength\":50},model:{value:(_vm.registrationRequest.externalId),callback:function ($$v) {_vm.$set(_vm.registrationRequest, \"externalId\", $$v)},expression:\"registrationRequest.externalId\"}})],1)],1),_c('v-row',[_c('v-col',[_c('v-combobox',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.activity.activityName'),\"items\":_vm.activities,\"item-text\":\"name\",\"item-value\":\"activityId\",\"multiple\":\"\",\"chips\":\"\",\"small-chips\":\"\"},on:{\"update:items\":function($event){_vm.activities=$event}},model:{value:(_vm.selectedActivities),callback:function ($$v) {_vm.selectedActivities=$$v},expression:\"selectedActivities\"}})],1)],1),_c('v-row',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.settingIsSSNMandatory),expression:\"!settingIsSSNMandatory\"}]},[_c('h4',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.association.associationsActivities')))]),_c('v-col',{staticClass:\"justify-end\"},[_c('v-divider'),_c('v-data-table',{staticClass:\"elevation-2\",class:{'mb-15': _vm.$vuetify.breakpoint.xs},attrs:{\"headers\":_vm.associationActivitiesTableHeaders,\"items\":_vm.selectedActivities,\"dense\":true,\"items-per-page\":-1,\"hide-default-footer\":\"\"},on:{\"update:items\":function($event){_vm.selectedActivities=$event}},scopedSlots:_vm._u([{key:`item.isSSNMandatory`,fn:function({ item }){return [_c('v-switch',{staticClass:\"float-right\",model:{value:(item.isSSNMandatory),callback:function ($$v) {_vm.$set(item, \"isSSNMandatory\", $$v)},expression:\"item.isSSNMandatory\"}})]}}],null,true),model:{value:(_vm.selectedActivities),callback:function ($$v) {_vm.selectedActivities=$$v},expression:\"selectedActivities\"}})],1)],1)],1)],1),_c('v-card-actions',[_c('v-container',[_c('v-row',[_c('v-col',[_c('v-btn',{staticClass:\"float-left\",attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.dialogOpen = false}}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.cancel')))])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"disabled\":!_vm.registerAssociationFormValid},on:{\"click\":function($event){return _vm.registerAssociation(_vm.registrationRequest)}}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.save')))])],1)],1)],1)],1)],1)],1)],1),_c('v-dialog',{model:{value:(_vm.editDialogOpen),callback:function ($$v) {_vm.editDialogOpen=$$v},expression:\"editDialogOpen\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"dark\":\"\",\"color\":\"primary\"}},[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',[_c('v-toolbar-title',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.association.editAssociation')))])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"icon\":\"\",\"dark\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.cancel')},on:{\"click\":function($event){_vm.editDialogOpen = false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)],1)],1),_c('v-form',{ref:\"editForm\"},[_c('v-card-text',[_c('v-container',[_c('v-row',[_c('v-col',[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.association.name'),\"rules\":[_vm.rules.required, _vm.uniqueAssociationNameEdit]},model:{value:(_vm.editAssociationRequest.name),callback:function ($$v) {_vm.$set(_vm.editAssociationRequest, \"name\", $$v)},expression:\"editAssociationRequest.name\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.association.orgNo'),\"rules\":[_vm.rules.required, _vm.uniqueAssociationOrgNoEdit, _vm.checkValidOrgNo],\"placeholder\":\"XXXXXX-XXXX\",\"maxlength\":11},on:{\"blur\":function($event){return _vm.fixOrganizationNoEdit()}},model:{value:(_vm.editAssociationRequest.organisationNumber),callback:function ($$v) {_vm.$set(_vm.editAssociationRequest, \"organisationNumber\", $$v)},expression:\"editAssociationRequest.organisationNumber\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.association.externalId'),\"rules\":[_vm.rules.required, _vm.uniqueAssociationExternalIdEdit],\"maxlength\":50},model:{value:(_vm.editAssociationRequest.externalId),callback:function ($$v) {_vm.$set(_vm.editAssociationRequest, \"externalId\", $$v)},expression:\"editAssociationRequest.externalId\"}})],1)],1),_c('v-row',[_c('v-col',[_c('v-combobox',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.activity.activityName'),\"items\":_vm.activities,\"item-text\":\"name\",\"item-value\":\"activityId\",\"multiple\":\"\",\"chips\":\"\",\"small-chips\":\"\"},on:{\"update:items\":function($event){_vm.activities=$event}},model:{value:(_vm.selectedActivities),callback:function ($$v) {_vm.selectedActivities=$$v},expression:\"selectedActivities\"}})],1)],1),_c('v-row',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.settingIsSSNMandatory),expression:\"!settingIsSSNMandatory\"}]},[_c('v-col',{staticClass:\"justify-end\"},[_c('h4',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.association.associationsActivities')))]),_c('v-divider'),_c('v-data-table',{staticClass:\"elevation-2\",class:{'mb-15': _vm.$vuetify.breakpoint.xs},attrs:{\"headers\":_vm.associationActivitiesTableHeaders,\"items\":_vm.selectedActivities,\"dense\":true,\"items-per-page\":-1,\"hide-default-footer\":\"\"},on:{\"update:items\":function($event){_vm.selectedActivities=$event}},scopedSlots:_vm._u([{key:`item.isSSNMandatory`,fn:function({ item }){return [_c('v-switch',{staticClass:\"float-right\",model:{value:(item.isSSNMandatory),callback:function ($$v) {_vm.$set(item, \"isSSNMandatory\", $$v)},expression:\"item.isSSNMandatory\"}})]}}],null,true),model:{value:(_vm.selectedActivities),callback:function ($$v) {_vm.selectedActivities=$$v},expression:\"selectedActivities\"}})],1)],1)],1)],1),_c('v-card-actions',[_c('v-container',[_c('v-row',[_c('v-col',[_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.editDialogOpen = false}}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.cancel'))+\" \")])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",on:{\"click\":function($event){return _vm.editAssociation(_vm.editAssociationRequest)}}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.save'))+\" \")])],1)],1)],1)],1)],1)],1)],1),_c('delete-dialog',{attrs:{\"showDialog\":_vm.showDeleteDialog,\"itemToDeleteName\":_vm.itemToDeleteName,\"itemToDeleteId\":_vm.itemToDeleteId},on:{\"dialogResult\":_vm.removeAssociation}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import AssociationActivity from './AssociationActivity';\r\n\r\nexport default class AssociationRegistrationRequest {\r\n name: string;\r\n organisationNumber: string;\r\n externalId: string;\r\n\r\n associationActivities: Array; \r\n\r\n constructor(\r\n name: string,\r\n organisationNumber: string,\r\n externalId: string,\r\n associationActivities: Array\r\n ) {\r\n this.name = name;\r\n this.organisationNumber = organisationNumber;\r\n this.externalId = externalId; \r\n this.associationActivities = associationActivities;\r\n\r\n }\r\n}","import Activity from \"@/models/api/activity/Activity\";\r\nimport ActivityRegistrationRequest from \"@/models/api/activity/ActivityRegistrationRequest\";\r\nimport AssociationActivity from \"@/models/api/association/AssociationActivity\";\r\n\r\nimport axios, { AxiosResponse } from \"axios\";\r\nclass Service {\r\n public async GetActivities(): Promise> {\r\n return axios.get('api/activity/GetActivities/');\r\n }\r\n public async GetActivity(id: number): Promise> {\r\n return axios.get(`api/activity/GetActivity?id=${id}`);\r\n } \r\n public async GetAssociationActivities(): Promise> {\r\n return axios.get(`api/activity/GetAssociationActivities/`);\r\n }\r\n\r\n public async RegisterActivity(activityData: ActivityRegistrationRequest): Promise> {\r\n return axios.post(\"api/activity/RegisterActivity\", activityData);\r\n }\r\n public async EditActivity(activity: Activity): Promise> {\r\n return axios.post(\"api/activity/EditActivity\", activity);\r\n }\r\n public async RemoveActivity(id: number): Promise> {\r\n return axios.delete(`api/activity/RemoveActivity?id=${id}`);\r\n }\r\n \r\n public async GetActivitiesAndSelectedAssociationActivities(associationId?: number | null): Promise> {\r\n\r\n if (associationId) {\r\n return axios.get(`api/activity/GetActivitiesAndSelectedAssociationActivities/?associationId=${associationId}`);\r\n }\r\n\r\n return axios.get(`api/activity/GetActivitiesAndSelectedAssociationActivities/`);\r\n\r\n }\r\n}\r\n\r\nexport const ActivityService: Service = new Service();\r\n","import Vue from 'vue'\r\n\r\nclass Helper {\r\n Mod10CheckSocialSecurityOrganizationNumber(value: string): string | boolean {\r\n let ssn = value\r\n .replace(/\\D/g, \"\") // strip out all but digits\r\n .split(\"\") // convert string to array\r\n .reverse() // reverse order for Luhn\r\n .slice(0, 10); // keep only 10 digits (i.e. 1977 becomes 77)\r\n\r\n \r\n // verify we got 10 digits, otherwise it is invalid\r\n if (ssn.length != 10) { \r\n return false;\r\n }\r\n\r\n var sum = ssn\r\n // convert to number\r\n .map(function (n) {\r\n return Number(n);\r\n })\r\n // perform arithmetic and return sum\r\n .reduce(function (previous, current, index) {\r\n // multiply every other number with two\r\n if (index % 2) current *= 2;\r\n // if larger than 10 get sum of individual digits (also n-9)\r\n if (current > 9) current -= 9;\r\n // sum it up\r\n return previous + current;\r\n });\r\n\r\n // sum must be divisible by 10\r\n return 0 === sum % 10;\r\n\r\n }\r\n}\r\n\r\nexport const ValidationHelper: Helper = new Helper();\r\n","export default function AdaptOrganizationNo(organizationNumber: string): string {\r\n if (organizationNumber.indexOf('-') == -1 && organizationNumber.length == 10) {\r\n organizationNumber = organizationNumber.substring(0, 6) + '-' + organizationNumber.substr(6)\r\n }\r\n \r\n return organizationNumber;\r\n} ","\r\n /* eslint-disable */\r\n\r\n import Vue from \"vue\";\r\n import { AssociationService } from \"@/services/AssociationService\";\r\n import { ApplicationSetting } from '../../models/Enums';\r\n import ApplicationSettingDto from '../../models/api/ApplicationSetting';\r\n import { SettingService } from \"@/services/SettingService\";\r\n import AssociationRegistrationRequest from \"@/models/api/association/AssociationRegistrationRequest\";\r\n import Association from \"@/models/api/association/Association\";\r\n import AssociationActivity from \"@/models/api/association/AssociationActivity\";\r\n import { ActivityService } from \"@/services/ActivityService\";\r\n import VuetifyFormMethods from \"@/models/vuetify-form-methods\";\r\n import { DataTableHelper } from '@/helpers/DataTableHelper';\r\n import { AxiosError } from \"axios\";\r\n import { SnackbarService } from \"@/services/SnackbarService\";\r\n import DeleteDialog from '@/components/dialogs/DeleteDialog.vue';\r\n import { ValidationHelper } from '@/helpers/ValidationHelper';\r\n import adaptOrganizationNo from '../../helpers/functions/AdaptOrganizationNo';\r\n\r\n export default Vue.extend({\r\n components: {\r\n DeleteDialog\r\n },\r\n \r\n data() {\r\n return {\r\n pageHeader: this.$vuetify.lang.t('$vuetify.association.pageHeader'),\r\n associations: new Array(),\r\n\r\n associationTableHeaders: [\r\n {\r\n text: 'association.name',\r\n value: 'name'\r\n },\r\n {\r\n text: 'association.orgNo',\r\n value: 'organisationNumber'\r\n },\r\n {\r\n text: 'association.externalId',\r\n value: 'externalId'\r\n },\r\n {\r\n text: \"\", value: \"actions\",\r\n width: '15%',\r\n \r\n },\r\n {\r\n text: '', value: 'data-table-expand', width: '1%',\r\n \r\n },\r\n ],\r\n isTableLoading: false,\r\n\r\n dialogOpen: false,\r\n editDialogOpen: false,\r\n registrationRequest: new AssociationRegistrationRequest(\"\", \"\", \"\", []),\r\n registerAssociationFormValid: false,\r\n\r\n editAssociationRequest: {} as Association,\r\n showDeleteDialog: false,\r\n itemToDeleteId: \"\",\r\n itemToDeleteName: \"\",\r\n\r\n rules: {\r\n required: (value: any) => !!value || this.$vuetify.lang.t('$vuetify.required'),\r\n\r\n },\r\n selectedActivities: [] as AssociationActivity[],\r\n activities: [] as AssociationActivity[],\r\n\r\n associationActivitiesTableHeaders: [\r\n\r\n { text: \"name\", value: \"name\" },\r\n { text: 'activity.completeSSNMandatory', value: 'isSSNMandatory', align: \"end\" },\r\n\r\n ],\r\n\r\n activitiesTableHeadersInExpandable: [\r\n\r\n { text: \"activity.activity\", value: \"name\", sortable: false },\r\n { text: 'activity.completeSSNMandatory', value: 'isSSNMandatory', align: \"center\", sortable: false }, \r\n\r\n ],\r\n\r\n\r\n itemsAddAssociationActivities: [] as AssociationActivity[],\r\n selectedAddAssociationActivities: [] as AssociationActivity[],\r\n\r\n settingIsSSNMandatory: true,\r\n settings: new Array(),\r\n canRegisterAssociationMessage: \"\",\r\n\r\n expanded: [], \r\n\r\n };\r\n },\r\n created() {\r\n DataTableHelper.adaptTableHeaders(this.associationTableHeaders, this);\r\n DataTableHelper.adaptTableHeaders(this.associationActivitiesTableHeaders, this);\r\n DataTableHelper.adaptTableHeaders(this.activitiesTableHeadersInExpandable, this);\r\n this.getAssociations();\r\n this.getIsSSNMandatorySettings();\r\n this.getCanRegisterAssociation();\r\n\r\n },\r\n watch: {\r\n dialogOpen: {\r\n handler(open: boolean) {\r\n if (!open) {\r\n (this.$refs.associationForm as VuetifyFormMethods).reset();\r\n }\r\n else {\r\n console.log(this.canRegisterAssociationMessage.length);\r\n if (this.canRegisterAssociationMessage.length > 0) {\r\n SnackbarService.addErrorMessage(this.canRegisterAssociationMessage);\r\n this.$nextTick(() => this.dialogOpen = false);\r\n return;\r\n }\r\n\r\n this.getActivities();\r\n }\r\n },\r\n },\r\n editDialogOpen: {\r\n handler(open: boolean) {\r\n if (!open) {\r\n (this.$refs.editForm as VuetifyFormMethods).reset();\r\n }\r\n },\r\n },\r\n },\r\n computed: {\r\n computedActivitiesTableHeaders(): any {\r\n //settingIsSSNMandatory isSSNMandatory\r\n return this.activitiesTableHeadersInExpandable.filter((h: any) => !(this.settingIsSSNMandatory && h.value == \"isSSNMandatory\"));\r\n },\r\n },\r\n methods: {\r\n fixOrganizationNo() { \r\n this.registrationRequest.organisationNumber = adaptOrganizationNo(this.registrationRequest.organisationNumber);\r\n },\r\n fixOrganizationNoEdit() { \r\n \r\n this.editAssociationRequest.organisationNumber = adaptOrganizationNo(this.editAssociationRequest.organisationNumber);\r\n },\r\n getCanRegisterAssociation(): void {\r\n AssociationService.CanRegisterAssociation().then(response => {\r\n console.log(response);\r\n this.canRegisterAssociationMessage = response.data.message;\r\n console.log(this.canRegisterAssociationMessage);\r\n }).catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n }).finally(() => {\r\n });\r\n },\r\n prepareAssociationEdit(item: Association): void {\r\n this.$store.commit('addOverlay');\r\n this.getActivities(item.id);\r\n AssociationService.GetAssociation(item.id).then(response => {\r\n this.editAssociationRequest = response.data;\r\n this.editDialogOpen = true;\r\n }).catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n }).finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n },\r\n\r\n async getActivities(associationId?: number | null) {\r\n this.$store.commit('addOverlay');\r\n ActivityService.GetActivitiesAndSelectedAssociationActivities(associationId).then(response => {\r\n \r\n this.activities = response.data; \r\n this.selectedActivities = this.activities.filter(activity => activity.id > 0) \r\n\r\n }).catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n })\r\n .finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n\r\n },\r\n\r\n\r\n async registerAssociation(request: AssociationRegistrationRequest) {\r\n\r\n request.associationActivities = this.selectedActivities;\r\n AssociationService.RegisterAssociation(request).then(\r\n (result) => {\r\n //console.log(result);\r\n\r\n this.getAssociations(); \r\n this.dialogOpen = false;\r\n\r\n SnackbarService.addSuccessMessage(result?.data);\r\n },\r\n (error: AxiosError) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n }\r\n );\r\n },\r\n async removeAssociation(id: number) {\r\n this.showDeleteDialog = false;\r\n\r\n if (id != null) {\r\n AssociationService.RemoveAssociation(id).then(\r\n (result) => {\r\n SnackbarService.addSuccessMessage(result?.data);\r\n\r\n // console.log(result);\r\n this.getAssociations();\r\n },\r\n (error: AxiosError) => {\r\n // console.log(error);\r\n\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n }\r\n );\r\n }\r\n },\r\n async editAssociation(itemToUpdate: Association) {\r\n\r\n itemToUpdate.associationActivities = this.selectedActivities;\r\n AssociationService.EditAssociation(itemToUpdate).then(\r\n (result) => {\r\n //console.log(result);\r\n SnackbarService.addSuccessMessage(result?.data);\r\n this.getAssociations();\r\n \r\n this.editDialogOpen = false;\r\n },\r\n (error: AxiosError) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n }\r\n );\r\n },\r\n async getAssociations() {\r\n this.isTableLoading = true;\r\n\r\n this.associations = (await AssociationService.GetAssociations()).data;\r\n\r\n this.isTableLoading = false;\r\n },\r\n async getIsSSNMandatorySettings() {\r\n SettingService.GetSettingsByKeyNames(\"IsSSNMandatory\").then(\r\n (result) => {\r\n this.settings = result.data;\r\n this.settingIsSSNMandatory = JSON.parse(this.settings[this.getApplicationSetting(ApplicationSetting.IsSSNMandatory)].value.toString().toLowerCase());\r\n })\r\n },\r\n\r\n getApplicationSetting(app: ApplicationSetting) {\r\n return this.settings.findIndex((val: any) => val.keyName == app);\r\n },\r\n // rules\r\n uniqueAssociationName(value: string): string | boolean {\r\n if (\r\n value &&\r\n this.associations.findIndex(\r\n (x) => x.name.trim().toLocaleLowerCase() == value.toLocaleLowerCase()\r\n ) > -1\r\n ) {\r\n \r\n return this.$vuetify.lang.t('$vuetify.association.nameAlreadyExists') + \" \" + value; \r\n }\r\n\r\n return true;\r\n },\r\n // rules\r\n uniqueAssociationOrgNo(value: string): string | boolean {\r\n if (\r\n value &&\r\n this.associations.findIndex(\r\n (x) =>\r\n x.organisationNumber.trim().toLocaleLowerCase() ==\r\n value.toLocaleLowerCase()\r\n ) > -1\r\n ) {\r\n return this.$vuetify.lang.t('$vuetify.association.orgNoAlreadyExists') + \" \" + value; \r\n }\r\n\r\n return true;\r\n },\r\n // rules\r\n uniqueAssociationExternalId(value: string): string | boolean {\r\n if (\r\n value &&\r\n this.associations.findIndex(\r\n (x) =>\r\n x.externalId.trim().toLocaleLowerCase() ==\r\n value.toLocaleLowerCase()\r\n ) > -1\r\n ) {\r\n return this.$vuetify.lang.t('$vuetify.association.externalIdAlreadyExists') + \" \" + value;\r\n }\r\n\r\n return true;\r\n },\r\n uniqueAssociationNameEdit(value: string): string | boolean {\r\n // Filter new name except from the item being edited.\r\n var item = this.editAssociationRequest;\r\n if (\r\n value &&\r\n this.associations\r\n .filter((x) => x.id != item.id)\r\n .findIndex(\r\n (f) =>\r\n f.name.trim().toLocaleLowerCase() ==\r\n value.trim().toLocaleLowerCase()\r\n ) > -1\r\n ) {\r\n return this.$vuetify.lang.t('$vuetify.association.nameAlreadyExists') + \" \" + value;\r\n }\r\n\r\n return true;\r\n },\r\n uniqueAssociationOrgNoEdit(value: string): string | boolean {\r\n var item = this.editAssociationRequest;\r\n // Filter organizationnumber except from the item being edited.\r\n if (\r\n value &&\r\n this.associations\r\n .filter((x) => x.id != item.id)\r\n .findIndex(\r\n (f) =>\r\n f.organisationNumber.trim().toLocaleLowerCase() ==\r\n value.trim().toLocaleLowerCase()\r\n ) > -1\r\n ) {\r\n return this.$vuetify.lang.t('$vuetify.association.orgNoAlreadyExists') + \" \" + value; \r\n }\r\n\r\n return true;\r\n },\r\n uniqueAssociationExternalIdEdit(value: string): string | boolean {\r\n var item = this.editAssociationRequest;\r\n // Filter externalId except from the item being edited.\r\n if (\r\n value &&\r\n this.associations\r\n .filter((x) => x.id != item.id)\r\n .findIndex(\r\n (f) =>\r\n f.externalId.trim().toLocaleLowerCase() ==\r\n value.trim().toLocaleLowerCase()\r\n ) > -1\r\n ) {\r\n return this.$vuetify.lang.t('$vuetify.association.externalIdAlreadyExists') + \" \" + value;\r\n }\r\n\r\n return true;\r\n },\r\n checkValidOrgNo(value: string): string | boolean {\r\n\r\n if (value != null) {\r\n \r\n var isValid = ValidationHelper.Mod10CheckSocialSecurityOrganizationNumber(value);\r\n if (!isValid) {\r\n return this.$vuetify.lang.t('$vuetify.invalidOrgNo');\r\n }\r\n }\r\n return true;\r\n },\r\n },\r\n });\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=1053b485\"\nimport script from \"./Index.vue?vue&type=script&lang=ts\"\nexport * from \"./Index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',{staticClass:\"float-left\",attrs:{\"cols\":\"1\"}},[_c('a',{staticClass:\"text-decoration-none text-body-1\",on:{\"click\":function($event){return _vm.$router.go(-1)}}},[_c('v-icon',{attrs:{\"title\":_vm.$vuetify.lang.t('$vuetify.back')}},[_vm._v(\"mdi-arrow-left\")])],1)]),_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('h1',{staticClass:\"mb-3 text-center\"},[_vm._v(_vm._s(_vm.pageHeader))])])],1),_c('v-data-table',{staticClass:\"elevation-2\",class:{'mb-15': _vm.$vuetify.breakpoint.xs},attrs:{\"headers\":_vm.activityTableHeaders,\"items\":_vm.activities,\"items-per-page\":10,\"dense\":true,\"loading\":_vm.isTableLoading},on:{\"update:items\":function($event){_vm.activities=$event}},scopedSlots:_vm._u([{key:`item.actions`,fn:function({ item }){return [_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.edit')},on:{\"click\":function($event){_vm.editDialogOpen = true;\n _vm.prepareActivityEdit(item);}}},[_c('v-icon',[_vm._v(\"mdi-pencil\")])],1),_c('v-btn',{attrs:{\"title\":_vm.$vuetify.lang.t('$vuetify.delete'),\"icon\":\"\"},on:{\"click\":function($event){_vm.showDeleteDialog = true; _vm.itemToDeleteId = item.id + ''; _vm.itemToDeleteName = item.name}}},[_c('v-icon',[_vm._v(\"mdi-delete\")])],1)]}}],null,true)}),_c('v-dialog',{scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"mt-3 float-right\",class:{'mr-3': _vm.$vuetify.breakpoint.xs, 'nv-floating-btn': _vm.$vuetify.breakpoint.xs},attrs:{\"bottom\":_vm.$vuetify.breakpoint.xs,\"fixed\":_vm.$vuetify.breakpoint.xs,\"elevation\":\"6\",\"color\":\"primary\"}},'v-btn',attrs,false),on),[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.activity.addActivity'))+\" \"),_c('v-icon',[_vm._v(\"mdi-plus\")])],1)]}}]),model:{value:(_vm.dialogOpen),callback:function ($$v) {_vm.dialogOpen=$$v},expression:\"dialogOpen\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"dark\":\"\",\"color\":\"primary\"}},[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',[_c('v-toolbar-title',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.activity.addActivity')))])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"icon\":\"\",\"dark\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.cancel')},on:{\"click\":function($event){_vm.dialogOpen = false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)],1)],1),_c('v-form',{ref:\"activityForm\",model:{value:(_vm.registerActivityFormValid),callback:function ($$v) {_vm.registerActivityFormValid=$$v},expression:\"registerActivityFormValid\"}},[_c('v-card-text',[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.activity.activity'),\"rules\":[(v) => !!v || 'Obligatoriskt', _vm.uniqueActivityName]},model:{value:(_vm.registrationRequest.name),callback:function ($$v) {_vm.$set(_vm.registrationRequest, \"name\", $$v)},expression:\"registrationRequest.name\"}})],1),_c('v-card-actions',[_c('v-container',[_c('v-row',[_c('v-col',[_c('v-btn',{staticClass:\"float-left\",attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.dialogOpen = false}}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.cancel')))])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"disabled\":!_vm.registerActivityFormValid},on:{\"click\":function($event){return _vm.registerActivity(_vm.registrationRequest)}}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.save')))])],1)],1)],1)],1)],1)],1)],1),_c('v-dialog',{model:{value:(_vm.editDialogOpen),callback:function ($$v) {_vm.editDialogOpen=$$v},expression:\"editDialogOpen\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"dark\":\"\",\"color\":\"primary\"}},[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',[_c('v-toolbar-title',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.activity.editActivity'))+\" \")])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"icon\":\"\",\"dark\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.cancel')},on:{\"click\":function($event){_vm.editDialogOpen = false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)],1)],1),_c('v-form',{ref:\"editForm\"},[_c('v-card-text',[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.activity.activity')},model:{value:(_vm.editActivityRequest.name),callback:function ($$v) {_vm.$set(_vm.editActivityRequest, \"name\", $$v)},expression:\"editActivityRequest.name\"}})],1),_c('v-card-actions',[_c('v-container',[_c('v-row',[_c('v-col',[_c('v-btn',{staticClass:\"float-left\",attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.editDialogOpen = false}}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.cancel')))])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",on:{\"click\":function($event){return _vm.editActivity(_vm.editActivityRequest)}}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.save')))])],1)],1)],1)],1)],1)],1)],1),_c('delete-dialog',{attrs:{\"showDialog\":_vm.showDeleteDialog,\"itemToDeleteName\":_vm.itemToDeleteName,\"itemToDeleteId\":_vm.itemToDeleteId},on:{\"dialogResult\":_vm.removeActivity}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default class ActivityRegistrationRequest {\r\n name: string;\r\n isSSNMandatory: boolean;\r\n constructor(\r\n name: string,\r\n isSSNMandatory: boolean,\r\n ) {\r\n this.name = name;\r\n this.isSSNMandatory = isSSNMandatory;\r\n }\r\n}","\r\n import Vue from \"vue\";\r\n import Activity from \"@/models/api/activity/Activity\";\r\n import ActivityRegistrationRequest from \"@/models/api/activity/ActivityRegistrationRequest\";\r\n import { SettingService } from \"@/services/SettingService\";\r\n import VuetifyFormMethods from \"@/models/vuetify-form-methods\";\r\n import ApplicationSettingDto from '../../models/api/ApplicationSetting';\r\n import { ApplicationSetting } from '../../models/Enums';\r\n import { ActivityService } from \"@/services/ActivityService\";\r\n import { AxiosError } from \"axios\";\r\n import { SnackbarService } from '../../services/SnackbarService';\r\n import DeleteDialog from '@/components/dialogs/DeleteDialog.vue';\r\n import { DataTableHelper } from '../../helpers/DataTableHelper';\r\n\r\n\r\n\r\n export default Vue.extend({\r\n components: {\r\n DeleteDialog\r\n },\r\n data() {\r\n return {\r\n pageHeader: this.$vuetify.lang.t('$vuetify.menu_activity'),\r\n activities: new Array(),\r\n settings: new Array (),\r\n\r\n activityTableHeaders: [ \r\n \r\n { text: \"name\", value: \"name\", sortable: false },\r\n { text: \"\", sortable: false, align: \"end\", value: \"actions\" },\r\n \r\n ],\r\n isTableLoading: false,\r\n currentActivity: {} as Activity,\r\n editActivityRequest: {} as Activity,\r\n \r\n dialogOpen: false,\r\n editDialogOpen: false,\r\n registrationRequest: new ActivityRegistrationRequest(\"\", true),\r\n registerActivityFormValid: false,\r\n\r\n showDeleteDialog: false,\r\n itemToDeleteId: \"\",\r\n itemToDeleteName: \"\"\r\n };\r\n },\r\n created() {\r\n DataTableHelper.adaptTableHeaders(this.activityTableHeaders, this);\r\n this.getActivities();\r\n },\r\n watch: {\r\n dialogOpen: { \r\n handler(open: boolean) { \r\n \r\n if (!open) {\r\n (this.$refs.activityForm as VuetifyFormMethods).reset();\r\n }\r\n },\r\n },\r\n editDialogOpen: {\r\n handler(open: boolean) {\r\n\r\n if (!open) {\r\n (this.$refs.editForm as VuetifyFormMethods).reset();\r\n }\r\n },\r\n },\r\n },\r\n methods: {\r\n prepareActivityEdit(item: Activity): void {\r\n // Use object assign in order to separate the modified item with existing item.\r\n // Keeps row in datatable the same, whilst updating the values.\r\n Object.assign(this.editActivityRequest, item);\r\n },\r\n getApplicationSetting(app: ApplicationSetting) {\r\n return this.settings.findIndex((val: any) => val.keyName == app);\r\n },\r\n async registerActivity(request: ActivityRegistrationRequest) {\r\n ActivityService.RegisterActivity(request).then(\r\n (result) => {\r\n this.getActivities();\r\n this.dialogOpen = false; \r\n SnackbarService.addSuccessMessage(result?.data);\r\n },\r\n (error: AxiosError) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n }\r\n );\r\n },\r\n async getActivity(id: number) {\r\n ActivityService.GetActivity(id).then(\r\n (result) => {\r\n this.currentActivity = result.data;\r\n })\r\n }, \r\n async removeActivity(id: number) {\r\n this.showDeleteDialog = false;\r\n\r\n if (id != null) {\r\n ActivityService.RemoveActivity(id).then(\r\n (result) => {\r\n SnackbarService.addSuccessMessage(result?.data);\r\n this.getActivities();\r\n },\r\n (error: AxiosError) => {\r\n SnackbarService.addErrorMessage(error.response?.data || error.response?.statusText\r\n );\r\n }\r\n );\r\n }\r\n },\r\n\r\n async editActivity(itemToUpdate: Activity) {\r\n ActivityService.EditActivity(itemToUpdate).then(\r\n (result) => {\r\n SnackbarService.addSuccessMessage(result?.data);\r\n this.getActivities();\r\n this.editDialogOpen = false;\r\n },\r\n (error: AxiosError) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n }\r\n );\r\n },\r\n \r\n //Get all activities\r\n async getActivities() {\r\n this.isTableLoading = true;\r\n this.activities = (await ActivityService.GetActivities()).data;\r\n this.isTableLoading = false;\r\n },\r\n\r\n //Rules only applied for name TODO check for name with associationId\r\n uniqueActivityName(value: string): string | boolean {\r\n if (\r\n value &&\r\n this.activities.findIndex(\r\n (x) => x.name.trim().toLocaleLowerCase() == value.toLocaleLowerCase()\r\n ) > -1\r\n ) {\r\n return `Det finns redan en aktivitet med namnet: ${value}`;\r\n }\r\n \r\n return true;\r\n },\r\n uniqueActivityNameEdit(item: Activity): string | boolean {\r\n // Filter new name except from the item being edited.\r\n if (\r\n item &&\r\n this.activities\r\n .filter((x) => x.id != item.id)\r\n .findIndex(\r\n (f) =>\r\n f.name.trim().toLocaleLowerCase() ==\r\n item.name.trim().toLocaleLowerCase()\r\n ) > -1\r\n ) {\r\n return `Det finns redan en aktivitet med namnet: ${item.name}`;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n },\r\n })\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=74a8c1d6\"\nimport script from \"./Index.vue?vue&type=script&lang=ts\"\nexport * from \"./Index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',[_c('h1',{staticClass:\"mb-3 text-center\"},[_vm._v(_vm._s(_vm.pageHeader))]),_c('v-data-table',{staticClass:\"elevation-2\",class:{'mb-15': _vm.$vuetify.breakpoint.xs},attrs:{\"headers\":_vm.tableHeaders,\"items\":_vm.items,\"items-per-page\":10,\"dense\":true,\"loading\":_vm.isTableLoading},on:{\"update:items\":function($event){_vm.items=$event}},scopedSlots:_vm._u([{key:`item.actions`,fn:function({ item }){return [_c('div',{staticClass:\"text-right\"},[_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.edit')},on:{\"click\":function($event){_vm.editDialogOpen = true; _vm.prepareEdit(item);}}},[_c('v-icon',[_vm._v(\"mdi-pencil\")])],1)],1)]}}],null,true)}),_c('v-dialog',{model:{value:(_vm.editDialogOpen),callback:function ($$v) {_vm.editDialogOpen=$$v},expression:\"editDialogOpen\"}},[_c('v-card',[_c('v-form',{ref:\"editForm\",model:{value:(_vm.registerFormValid),callback:function ($$v) {_vm.registerFormValid=$$v},expression:\"registerFormValid\"}},[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.contributionPeriod.editContributionPeriod'))+\" \")]),_c('v-card-text',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('fake-input',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.contributionPeriod.contributionPeriod'),\"value\":_vm.editItem.name}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"4\"}},[_c('fake-input',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.dateFrom'),\"value\":_vm.editItem.startDate}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"4\"}},[_c('fake-input',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.dateTo'),\"value\":_vm.editItem.endDate}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"4\"}},[_c('v-dialog',{ref:\"dateEdit\",attrs:{\"return-value\":_vm.editItem.lastRegistrationDate,\"width\":\"290px\"},on:{\"update:returnValue\":function($event){return _vm.$set(_vm.editItem, \"lastRegistrationDate\", $event)},\"update:return-value\":function($event){return _vm.$set(_vm.editItem, \"lastRegistrationDate\", $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-text-field',_vm._g(_vm._b({attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.contributionPeriod.lastRegistrationDate'),\"prepend-icon\":\"mdi-calendar\",\"readonly\":\"\"},model:{value:(_vm.editItem.lastRegistrationDate),callback:function ($$v) {_vm.$set(_vm.editItem, \"lastRegistrationDate\", $$v)},expression:\"editItem.lastRegistrationDate\"}},'v-text-field',attrs,false),on))]}}]),model:{value:(_vm.showDateEdit),callback:function ($$v) {_vm.showDateEdit=$$v},expression:\"showDateEdit\"}},[_c('v-date-picker',{attrs:{\"scrollable\":\"\",\"first-day-of-week\":1},model:{value:(_vm.editItem.lastRegistrationDate),callback:function ($$v) {_vm.$set(_vm.editItem, \"lastRegistrationDate\", $$v)},expression:\"editItem.lastRegistrationDate\"}},[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){_vm.showDateEdit = false}}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.cancel'))+\" \")]),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.$refs.dateEdit.save(_vm.editItem.lastRegistrationDate)}}},[_vm._v(\" OK \")])],1)],1)],1)],1)],1),_c('v-card-actions',[_c('v-container',[_c('v-row',[_c('v-col',[_c('v-btn',{staticClass:\"float-left\",attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.editDialogOpen = false}}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.cancel')))])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"disabled\":!_vm.registerFormValid},on:{\"click\":function($event){return _vm.save(_vm.editItem)}}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.save')))])],1)],1)],1)],1)],1)],1)],1),_c('delete-dialog',{attrs:{\"showDialog\":_vm.showDeleteDialog,\"itemToDeleteName\":_vm.itemToDeleteName,\"itemToDeleteId\":_vm.itemToDeleteId},on:{\"dialogResult\":_vm.remove}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default class ContributionPeriod {\r\n id: number;\r\n name: string;\r\n startDate: string;\r\n endDate: string;\r\n lastRegistrationDate: string | null;\r\n\r\n constructor(\r\n name: string,\r\n startDate: string,\r\n endDate: string,\r\n lastRegistrationDate: string | null\r\n ) {\r\n this.id = 0;\r\n this.name = name;\r\n this.startDate = startDate;\r\n this.endDate = endDate;\r\n this.lastRegistrationDate = lastRegistrationDate;\r\n\r\n }\r\n}","import ContributionPeriod from \"@/models/api/contributionPeriod/ContributionPeriod\";\r\nimport axios, { AxiosResponse } from \"axios\";\r\nimport SelectListItem from '../models/SelectListItem';\r\n\r\nclass Service {\r\n public async GetSelectListItems(): Promise> {\r\n return axios.get('api/contributionPeriod/GetSelectListItems');\r\n }\r\n public async GetRegistrationSelectListItems(): Promise> {\r\n return axios.get('api/contributionPeriod/GetRegistrationSelectListItems');\r\n }\r\n\r\n\r\n\r\n public async GetContributionPeriods(): Promise> {\r\n return axios.get('api/contributionPeriod/');\r\n }\r\n public async GetContributionPeriod(id: number): Promise> {\r\n return axios.get(`api/contributionPeriod/${id}`);\r\n }\r\n public async SaveContributionPeriod(data: ContributionPeriod): Promise> {\r\n return axios.post(\"api/contributionPeriod/\", data);\r\n }\r\n public async RemoveContributionPeriod(id: number): Promise> {\r\n return axios.delete(`api/contributionPeriod/${id}`);\r\n }\r\n}\r\n\r\nexport const ContributionPeriodService: Service = new Service();\r\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{staticClass:\"ma-0 pa-0\"},[_c('v-subheader',{staticClass:\"pl-0\",staticStyle:{\"height\":\"20px\"}},[_vm._v(_vm._s(_vm.label))]),_c('p',{staticStyle:{\"font-size\":\"16px\"}},[_vm._v(\" \"+_vm._s(_vm.value)+\" \")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import Vue from 'vue';\r\n\r\n export default Vue.extend({\r\n props: {\r\n label: String,\r\n value: String,\r\n },\r\n });\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FakeInput.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FakeInput.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./FakeInput.vue?vue&type=template&id=e09858fe\"\nimport script from \"./FakeInput.vue?vue&type=script&lang=ts\"\nexport * from \"./FakeInput.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n import Vue from \"vue\";\r\n import ContributionPeriod from \"@/models/api/contributionPeriod/ContributionPeriod\";\r\n import VuetifyFormMethods from \"@/models/vuetify-form-methods\";\r\n import { AxiosError } from \"axios\";\r\n import { SnackbarService } from '../../services/SnackbarService';\r\n import DeleteDialog from '@/components/dialogs/DeleteDialog.vue';\r\n import { ContributionPeriodService } from '../../services/ContributionPeriodService';\r\n import { DataTableHelper } from '@/helpers/DataTableHelper';\r\n import FakeInput from '@/components/ui/FakeInput.vue';\r\n\r\n export default Vue.extend({\r\n components: {\r\n DeleteDialog,\r\n FakeInput,\r\n },\r\n data() {\r\n return {\r\n pageHeader: this.$vuetify.lang.t('$vuetify.contributionPeriod.contributionPeriods'),\r\n items: new Array(),\r\n\r\n tableHeaders: [\r\n {\r\n text: \"name\", value: \"name\", sortable: false\r\n },\r\n {\r\n text: \"dateFrom\", value: \"startDate\", sortable: false\r\n },\r\n {\r\n text: \"dateTo\", value: \"endDate\", sortable: false\r\n },\r\n {\r\n text: \"contributionPeriod.lastRegistrationDate\", value: \"lastRegistrationDate\", sortable: false\r\n },\r\n {\r\n text: \"\", value: \"actions\", sortable: false\r\n },\r\n ],\r\n isTableLoading: false,\r\n showDateEdit: false,\r\n editDialogOpen: false,\r\n editItem: new ContributionPeriod(\"\",\"\", \"\", null),\r\n registerFormValid: false,\r\n\r\n showDeleteDialog: false,\r\n itemToDeleteId: \"\",\r\n itemToDeleteName: \"\"\r\n };\r\n },\r\n created() {\r\n DataTableHelper.adaptTableHeaders(this.tableHeaders, this);\r\n this.getAll();\r\n },\r\n watch: {\r\n editDialogOpen: {\r\n handler(open: boolean) {\r\n\r\n if (!open) {\r\n (this.$refs.editForm as VuetifyFormMethods).reset();\r\n }\r\n },\r\n },\r\n },\r\n methods: {\r\n prepareEdit(item: ContributionPeriod): void {\r\n // Use object assign in order to separate the modified item with existing item.\r\n // Keeps row in datatable the same, whilst updating the values.\r\n Object.assign(this.editItem, item);\r\n },\r\n async save(item: ContributionPeriod) {\r\n ContributionPeriodService.SaveContributionPeriod(item).then(\r\n (result) => {\r\n this.getAll();\r\n this.editDialogOpen = false; \r\n SnackbarService.addSuccessMessage(result?.data);\r\n },\r\n (error: AxiosError) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n }\r\n );\r\n },\r\n async remove(id: number) {\r\n this.showDeleteDialog = false;\r\n\r\n if (id != null) {\r\n ContributionPeriodService.RemoveContributionPeriod(id).then(\r\n (result) => {\r\n SnackbarService.addSuccessMessage(result?.data);\r\n this.getAll();\r\n },\r\n (error: AxiosError) => {\r\n SnackbarService.addErrorMessage(error.response?.data || error.response?.statusText\r\n );\r\n }\r\n );\r\n }\r\n },\r\n async getAll() {\r\n this.isTableLoading = true;\r\n this.items = (await ContributionPeriodService.GetContributionPeriods()).data;\r\n this.isTableLoading = false;\r\n \r\n },\r\n },\r\n })\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContributionPeriods.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContributionPeriods.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ContributionPeriods.vue?vue&type=template&id=7e931a66&scoped=true\"\nimport script from \"./ContributionPeriods.vue?vue&type=script&lang=ts\"\nexport * from \"./ContributionPeriods.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7e931a66\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',[_c('h1',{staticClass:\"mb-3 text-center\"},[_vm._v(_vm._s(_vm.pageHeader))]),_c('h2',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.logs')))]),_c('v-row',[_c('v-col',[_c('v-text-field',{attrs:{\"type\":\"date\",\"max\":\"9999-12-31\",\"label\":_vm.$vuetify.lang.t('$vuetify.from')},model:{value:(_vm.from),callback:function ($$v) {_vm.from=$$v},expression:\"from\"}})],1),_c('v-col',[_c('v-text-field',{attrs:{\"type\":\"date\",\"max\":\"9999-12-31\",\"label\":_vm.$vuetify.lang.t('$vuetify.to')},model:{value:(_vm.to),callback:function ($$v) {_vm.to=$$v},expression:\"to\"}})],1),_c('v-col',[_c('v-select',{attrs:{\"items\":_vm.logTypes,\"clearable\":\"\",\"label\":_vm.$vuetify.lang.t('$vuetify.logType.logType')},model:{value:(_vm.selectedLogType),callback:function ($$v) {_vm.selectedLogType=$$v},expression:\"selectedLogType\"}})],1)],1),_c('v-data-table',{staticClass:\"elevation-2\",class:{'mb-15': _vm.$vuetify.breakpoint.xs},attrs:{\"headers\":_vm.tableHeaders,\"items\":_vm.items,\"items-per-page\":10,\"server-items-length\":_vm.totalCount,\"dense\":true,\"options\":_vm.options,\"loading\":_vm.loading},on:{\"update:items\":function($event){_vm.items=$event},\"update:options\":function($event){_vm.options=$event}},scopedSlots:_vm._u([{key:`item.logType`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm.getLogTypeName(item.logType ))+\" \")]}}],null,true)}),_c('log-types-page')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import axios, { AxiosResponse } from \"axios\";\r\n\r\nclass Service {\r\n public async GetLogs(): Promise> {\r\n return axios.get('api/log/');\r\n }\r\n public async GetLogsPaged(data: any): Promise> {\r\n return axios.post('api/log/GetLogsPaged', data);\r\n }\r\n public async GetLogType(id: number): Promise> {\r\n return axios.get(`api/log/${id}`);\r\n }\r\n}\r\n\r\nexport const LogService: Service = new Service();\r\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"mt-4\"},[_c('h2',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.logType.logTypeSettings')))]),_c('v-data-table',{staticClass:\"elevation-2\",class:{'mb-15': _vm.$vuetify.breakpoint.xs},attrs:{\"headers\":_vm.tableHeaders,\"items\":_vm.items,\"items-per-page\":10,\"loading\":_vm.isTableLoading},on:{\"update:items\":function($event){_vm.items=$event}},scopedSlots:_vm._u([{key:`item.logLevel`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm.getLogLevelName(item.logLevel))+\" \")]}},{key:`item.actions`,fn:function({ item }){return [_c('div',{staticClass:\"text-right\"},[_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.edit')},on:{\"click\":function($event){_vm.editDialogOpen = true; _vm.prepareEdit(item);}}},[_c('v-icon',[_vm._v(\"mdi-pencil\")])],1)],1)]}}],null,true)}),_c('v-dialog',{model:{value:(_vm.editDialogOpen),callback:function ($$v) {_vm.editDialogOpen=$$v},expression:\"editDialogOpen\"}},[_c('v-card',[_c('v-form',{ref:\"editForm\",model:{value:(_vm.registerFormValid),callback:function ($$v) {_vm.registerFormValid=$$v},expression:\"registerFormValid\"}},[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.logType.editLogLevel'))+\" \")]),_c('v-card-text',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('fake-input',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.name'),\"value\":_vm.editItem.name}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-select',{attrs:{\"items\":_vm.logLevels,\"rules\":[_vm.rules.required],\"label\":_vm.$vuetify.lang.t('$vuetify.logType.logLevel')},model:{value:(_vm.editItem.logLevel),callback:function ($$v) {_vm.$set(_vm.editItem, \"logLevel\", $$v)},expression:\"editItem.logLevel\"}})],1)],1)],1),_c('v-card-actions',[_c('v-container',[_c('v-row',[_c('v-col',[_c('v-btn',{staticClass:\"float-left\",attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.editDialogOpen = false}}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.cancel')))])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"disabled\":!_vm.registerFormValid},on:{\"click\":function($event){return _vm.save(_vm.editItem)}}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.save')))])],1)],1)],1)],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { LogLevels } from '../../Enums';\r\n\r\nexport default class ContributionPeriod {\r\n id: number = 0;\r\n name: string = \"\";\r\n logLevel: LogLevels = LogLevels.Information;\r\n}","import LogType from \"@/models/api/logType/LogType\";\r\nimport axios, { AxiosResponse } from \"axios\";\r\n\r\nclass Service {\r\n public async GetLogTypes(): Promise> {\r\n return axios.get('api/logType/');\r\n }\r\n public async GetLogType(id: number): Promise> {\r\n return axios.get(`api/logType/${id}`);\r\n }\r\n public async SaveLogType(data: LogType): Promise> {\r\n return axios.post(\"api/logType/\", data);\r\n }\r\n}\r\n\r\nexport const LogTypeService: Service = new Service();\r\n","\r\n import Vue from \"vue\";\r\n import LogType from \"@/models/api/logType/LogType\";\r\n import VuetifyFormMethods from \"@/models/vuetify-form-methods\";\r\n import { AxiosError } from \"axios\";\r\n import { SnackbarService } from '../../services/SnackbarService';\r\n import { LogTypeService } from '../../services/LogTypeService';\r\n import { DataTableHelper } from '@/helpers/DataTableHelper';\r\n import FakeInput from '@/components/ui/FakeInput.vue';\r\n import SelectListItem from '../../models/SelectListItem';\r\n import { LogLevels } from '../../models/Enums';\r\n\r\n export default Vue.extend({\r\n components: {\r\n FakeInput,\r\n },\r\n data() {\r\n return {\r\n items: new Array(),\r\n\r\n tableHeaders: [\r\n {\r\n text: \"logType.logType\", value: \"name\", sortable: false\r\n },\r\n {\r\n text: \"logType.logLevel\", value: \"logLevel\", sortable: false\r\n },\r\n {\r\n text: \"\", value: \"actions\", sortable: false\r\n },\r\n ],\r\n isTableLoading: false,\r\n showDateEdit: false,\r\n editDialogOpen: false,\r\n editItem: new LogType(),\r\n registerFormValid: false,\r\n\r\n logLevels: [] as SelectListItem[],\r\n\r\n rules: {\r\n required: (value: any) => !!value || this.$vuetify.lang.t('$vuetify.required'),\r\n\r\n },\r\n\r\n };\r\n },\r\n created() {\r\n DataTableHelper.adaptTableHeaders(this.tableHeaders, this);\r\n\r\n this.logLevels = [];\r\n Object.values(LogLevels).map((n: string | LogLevels) => {\r\n if (typeof LogLevels[n as any] === 'number') {\r\n this.logLevels.push(new SelectListItem(this.getLogLevelName(LogLevels[n as any]), LogLevels[n as any]));\r\n }\r\n });\r\n\r\n this.getAll();\r\n },\r\n watch: {\r\n editDialogOpen: {\r\n handler(open: boolean) {\r\n\r\n if (!open) {\r\n (this.$refs.editForm as VuetifyFormMethods).reset();\r\n }\r\n },\r\n },\r\n },\r\n methods: {\r\n getLogLevelName(logLevel: any): string {\r\n return this.$vuetify.lang.t('$vuetify.logType.' + LogLevels[logLevel]) as string;\r\n },\r\n prepareEdit(item: LogType): void {\r\n // Use object assign in order to separate the modified item with existing item.\r\n // Keeps row in datatable the same, whilst updating the values.\r\n Object.assign(this.editItem, item);\r\n },\r\n async save(item: LogType) {\r\n LogTypeService.SaveLogType(item).then(\r\n (result) => {\r\n this.getAll();\r\n this.editDialogOpen = false; \r\n SnackbarService.addSuccessMessage(result?.data);\r\n },\r\n (error: AxiosError) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n }\r\n );\r\n },\r\n async getAll() {\r\n this.isTableLoading = true;\r\n this.items = (await LogTypeService.GetLogTypes()).data;\r\n this.isTableLoading = false;\r\n \r\n },\r\n },\r\n })\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LogTypes.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LogTypes.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./LogTypes.vue?vue&type=template&id=ea42fa8a&scoped=true\"\nimport script from \"./LogTypes.vue?vue&type=script&lang=ts\"\nexport * from \"./LogTypes.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ea42fa8a\",\n null\n \n)\n\nexport default component.exports","\r\n import Vue from \"vue\";\r\n import LogType from \"@/models/api/logType/LogType\";\r\n import VuetifyFormMethods from \"@/models/vuetify-form-methods\";\r\n import { AxiosError } from \"axios\";\r\n import { SnackbarService } from '../../services/SnackbarService';\r\n import { LogTypeService } from '../../services/LogTypeService';\r\n import { DataTableHelper } from '@/helpers/DataTableHelper';\r\n import SelectListItem from '../../models/SelectListItem';\r\n import { LogTypes } from '../../models/Enums';\r\n import { LogService } from '../../services/LogService';\r\n import LogTypesPage from './LogTypes.vue';\r\n\r\n export default Vue.extend({\r\n components: {\r\n LogTypesPage\r\n },\r\n data() {\r\n return {\r\n pageHeader: this.$vuetify.lang.t('$vuetify.menu_logs'),\r\n\r\n // Table\r\n expanded: [],\r\n singleExpand: false,\r\n totalCount: 0,\r\n items: [],\r\n loading: true,\r\n options: {},\r\n tableHeaders: [\r\n {\r\n text: \"logType.logType\", value: \"logType\", sortable: false\r\n },\r\n {\r\n text: \"message\", value: \"message\", sortable: false\r\n },\r\n {\r\n text: \"created\", value: \"createdText\", sortable: false\r\n },\r\n {\r\n text: \"createdBy\", value: \"createdBy\", sortable: false\r\n },\r\n ],\r\n\r\n logTypes: [] as SelectListItem[],\r\n selectedLogType: null as number | null,\r\n from: (new Date()).toLocaleDateString('sv-SE'),\r\n to: (new Date()).toLocaleDateString('sv-SE'),\r\n\r\n };\r\n },\r\n created() {\r\n DataTableHelper.adaptTableHeaders(this.tableHeaders, this);\r\n\r\n this.logTypes = [];\r\n Object.values(LogTypes).map((n: string | LogTypes) => {\r\n if (typeof LogTypes[n as any] === 'number') {\r\n this.logTypes.push(new SelectListItem(this.getLogTypeName(LogTypes[n as any]), LogTypes[n as any]));\r\n }\r\n });\r\n },\r\n watch: {\r\n options: {\r\n handler() {\r\n this.getPaged();\r\n },\r\n deep: true,\r\n },\r\n selectedLogType: {\r\n handler() {\r\n this.getPaged();\r\n },\r\n },\r\n from: {\r\n handler() {\r\n this.getPaged();\r\n },\r\n },\r\n to: {\r\n handler() {\r\n this.getPaged();\r\n },\r\n },\r\n },\r\n methods: {\r\n getLogTypeName(logType: any): string {\r\n return this.$vuetify.lang.t('$vuetify.logType.' + LogTypes[logType as LogTypes]) as string;\r\n },\r\n async getPaged() {\r\n this.loading = true;\r\n\r\n const sortBy = (this.options as any).sortBy ?? [];\r\n const sortDesc = (this.options as any).sortDesc ?? [];\r\n const page = (this.options as any).page ?? 1;\r\n const itemsPerPage = (this.options as any).itemsPerPage ?? 10;\r\n\r\n const data = { sortBy: sortBy, sortDesc: sortDesc, page: page, itemsPerPage: itemsPerPage, logType: this.selectedLogType, from: this.from, to: this.to };\r\n\r\n LogService.GetLogsPaged(data).then((response: any) => {\r\n this.totalCount = response.data.totalCount;\r\n this.items = response.data.items;\r\n }).catch((error) => {\r\n console.error(error);\r\n }).finally(() => {\r\n this.loading = false;\r\n });\r\n },\r\n },\r\n })\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logs.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logs.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Logs.vue?vue&type=template&id=cb9131b4&scoped=true\"\nimport script from \"./Logs.vue?vue&type=script&lang=ts\"\nexport * from \"./Logs.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cb9131b4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',[_c('v-dialog',{attrs:{\"transition\":\"dialog-bottom-transition\",\"max-width\":\"600\"},model:{value:(_vm.showDialog),callback:function ($$v) {_vm.showDialog=$$v},expression:\"showDialog\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"color\":\"primary\",\"dark\":\"\"}},[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',[_c('v-toolbar-title',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.information')))])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"icon\":\"\",\"dark\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.close')},on:{\"click\":function($event){return _vm.redirect()}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)],1)],1),_c('v-card-text',{staticClass:\"pb-0 mb-0 pt-2 text-center\"},[_c('v-container',{staticClass:\"text-h6\"},[_vm._v(\" \"+_vm._s(_vm.dialogMessage)+\" \")])],1),_c('v-card-actions',[_c('v-container',[_c('v-row',[_c('v-col',{staticClass:\"text-center\"},[_c('v-btn',{on:{\"click\":function($event){return _vm.redirect()}}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.ok')))])],1)],1)],1)],1)],1)],1),_c('v-snackbar',{attrs:{\"color\":\"red\",\"timeout\":-1},scopedSlots:_vm._u([{key:\"action\",fn:function({ attrs }){return [_c('v-btn',_vm._b({attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.showErrors = false}}},'v-btn',attrs,false),[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.close'))+\" \")])]}}]),model:{value:(_vm.showErrors),callback:function ($$v) {_vm.showErrors=$$v},expression:\"showErrors\"}},_vm._l((_vm.errors),function(error){return _c('v-row',{key:error},[_c('v-col',[_vm._v(_vm._s(error))])],1)}),1),_c('v-container',[_c('v-form',{ref:\"form\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"append-icon\":_vm.showPassword ? 'mdi-eye' : 'mdi-eye-off',\"required\":\"\",\"type\":_vm.showPassword ? 'text' : 'password',\"rules\":[_vm.required, _vm.matchingPasswords],\"name\":\"password\",\"placeholder\":\" \",\"persistent-placeholder\":\"\",\"label\":_vm.$vuetify.lang.t('$vuetify.confirmUser.newPassword')},on:{\"click:append\":function($event){_vm.showPassword = !_vm.showPassword}},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"append-icon\":_vm.showPassword ? 'mdi-eye' : 'mdi-eye-off',\"required\":\"\",\"type\":_vm.showPassword ? 'text' : 'password',\"rules\":[_vm.matchingPasswords],\"name\":\"password\",\"placeholder\":\" \",\"persistent-placeholder\":\"\",\"label\":_vm.$vuetify.lang.t('$vuetify.confirmUser.repeatNewPassword')},on:{\"click:append\":function($event){_vm.showPassword = !_vm.showPassword}},model:{value:(_vm.passwordRepeat),callback:function ($$v) {_vm.passwordRepeat=$$v},expression:\"passwordRepeat\"}})],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"type\":\"submit\",\"disabled\":!_vm.isValid}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.save'))+\" \")])],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import Vue from 'vue';\r\n\r\n import { UserService }from '@/services/UserService'\r\n\r\n export default Vue.extend({\r\n data() {\r\n return {\r\n isValid: true,\r\n showDialog: false,\r\n dialogMessage: \"\",\r\n showErrors: false,\r\n hasPassword: false,\r\n errors: [\"\"],\r\n loading: false,\r\n post: null,\r\n emailConfirmationToken: \"\",\r\n passwordResetToken: \"\",\r\n email: \"\",\r\n password: \"\",\r\n passwordRepeat: \"\",\r\n globalPassword: \"\",\r\n showPassword: false,\r\n }\r\n },\r\n async created() {\r\n this.passwordResetToken = this.$route.query.passwordResetToken ? this.$route.query.passwordResetToken as string : \"\";\r\n this.emailConfirmationToken = this.$route.query.emailConfirmationToken ? this.$route.query.emailConfirmationToken as string : \"\";\r\n this.email = this.$route.query.email ? this.$route.query.email as string : \"\";\r\n\r\n this.$store.commit('addOverlay');\r\n UserService.HasPassword(this.email)\r\n .then((response) => {\r\n if (response.data) {\r\n this.hasPassword = true;\r\n }\r\n\r\n if (this.hasPassword && this.emailConfirmationToken) {\r\n // Confirm email directly\r\n this.submit();\r\n }\r\n\r\n }).finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n },\r\n methods: {\r\n required(v: string): boolean | string {\r\n return !!v || this.$vuetify.lang.t('$vuetify.required')\r\n },\r\n matchingPasswords(v: string): boolean | string {\r\n if (v === this.globalPassword) {\r\n return true;\r\n } else {\r\n return this.$vuetify.lang.t('$vuetify.confirmUser.passwordDoesNotMatch');\r\n }\r\n },\r\n async redirect() {\r\n this.$router.push(\"/\");\r\n },\r\n async submit() {\r\n this.$store.commit('addOverlay');\r\n UserService.ConfirmUser({ email: this.email, password: this.password, passwordResetToken: this.passwordResetToken, emailConfirmationToken: this.emailConfirmationToken })\r\n .then(() => {\r\n this.dialogMessage = \"\";\r\n if (this.emailConfirmationToken) {\r\n this.dialogMessage += this.$vuetify.lang.t('$vuetify.confirmUser.emailVerifiedMessage') + \" \";\r\n }\r\n else {\r\n this.dialogMessage += this.$vuetify.lang.t('$vuetify.confirmUser.passwordUpdatedMessage') + \" \";\r\n }\r\n\r\n this.dialogMessage += this.$vuetify.lang.t('$vuetify.confirmUser.sendingToLoginPageMessage') + \" \";\r\n\r\n this.showDialog = true;\r\n }).catch((error) => {\r\n if (error.response.data.errors) {\r\n this.errors = error.response.data.errors;\r\n } else {\r\n this.errors = [this.$vuetify.lang.t('$vuetify.generalErrorMessage')];\r\n }\r\n this.showErrors = true;\r\n }).finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n }\r\n },\r\n watch: {\r\n password() {\r\n this.globalPassword = this.password;\r\n (this.$refs.form as Vue & { validate: () => boolean }).validate();\r\n },\r\n },\r\n });\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=bdd22f1a\"\nimport script from \"./Index.vue?vue&type=script&lang=ts\"\nexport * from \"./Index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.isMunicipalityAdmin || _vm.isSystemAdmin)?_c('div',[_c('v-expand-transition',[_c('v-sheet',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showTabs),expression:\"showTabs\"}],attrs:{\"elevation\":\"4\"}},[_c('v-tabs',{attrs:{\"centered\":\"\",\"background-color\":\"primary\",\"color\":\"white\",\"dark\":\"\",\"grow\":_vm.$vuetify.breakpoint.xs}},[_c('v-tab',{attrs:{\"to\":\"/setting\"}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.menu_settings')))]),_c('v-tab',{attrs:{\"to\":\"/setting/periods\"}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.contributionPeriod.contributionPeriods')))]),(_vm.isSystemAdmin)?_c('v-tab',{attrs:{\"to\":\"/setting/themes\"}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.menu_themes')))]):_vm._e(),(_vm.isSystemAdmin)?_c('v-tab',{attrs:{\"to\":\"/setting/logs\"}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.menu_logs')))]):_vm._e()],1)],1)],1),_c('router-view')],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { store } from \"@/stores/Store\"\r\n\r\nclass Service {\r\n public isTabsVisible(): boolean {\r\n return store.getters.showTabs\r\n }\r\n public showTabs(): void {\r\n store.commit(\"showTabs\");\r\n console.log(store.state);\r\n\r\n }\r\n public hideTabs(): void {\r\n store.commit(\"hideTabs\")\r\n }\r\n}\r\n\r\nexport const TabService: Service = new Service();\r\n","\r\n import { store } from '@/stores/Store';\r\n import Vue from 'vue';\r\n import { TabService } from \"@/services/TabService\"\r\nimport { mapGetters } from 'vuex';\r\n\r\n export default Vue.extend({\r\n created() {\r\n TabService.showTabs();\r\n },\r\n methods: {\r\n toggleTabs(): void {\r\n if (this.showTabs as boolean) {\r\n TabService.hideTabs();\r\n } else {\r\n TabService.showTabs();\r\n }\r\n\r\n console.log(`Is tabs visible: ${TabService.isTabsVisible()}`);\r\n }\r\n },\r\n computed: {\r\n showTabs: () => {\r\n return store.getters.showTabs;\r\n },\r\n ...mapGetters([\r\n \"isSystemAdmin\",\r\n \"isMunicipalityAdmin\",]),\r\n }\r\n})\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=6ddbc85e\"\nimport script from \"./Index.vue?vue&type=script&lang=ts\"\nexport * from \"./Index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',[(!_vm.loading)?_c('v-container',[_c('h1',{staticClass:\"mb-3 text-center\"},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.applicationsetting.ApplicationSettingsHeadline')))]),_c('h2',[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.applicationsetting.ParticipantSettingsHeadline')))]),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('v-radio-group',{attrs:{\"label\":_vm.getApplicationSettingName(_vm.items[_vm.getApplicationSettingIndex(2)].keyName),\"mandatory\":\"\",\"row\":\"\"},model:{value:(_vm.items[_vm.getApplicationSettingIndex(2)].value),callback:function ($$v) {_vm.$set(_vm.items[_vm.getApplicationSettingIndex(2)], \"value\", $$v)},expression:\"items[getApplicationSettingIndex(2)].value\"}},[_c('v-radio',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.yes'),\"value\":\"True\"}}),_c('v-radio',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.no'),\"value\":\"False\"}})],1)],1),_c('v-col',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.items[_vm.getApplicationSettingIndex(2)].value === 'False'),expression:\"items[getApplicationSettingIndex(2)].value === 'False'\"}],attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('v-autocomplete',{attrs:{\"items\":_vm.birthdateFormats,\"dense\":\"\",\"label\":_vm.getApplicationSettingName(_vm.items[_vm.getApplicationSettingIndex(3)].keyName)},model:{value:(_vm.items[_vm.getApplicationSettingIndex(3)].value),callback:function ($$v) {_vm.$set(_vm.items[_vm.getApplicationSettingIndex(3)], \"value\", $$v)},expression:\"items[getApplicationSettingIndex(3)].value\"}})],1)],1),_c('v-row',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isSystemAdmin),expression:\"isSystemAdmin\"}]},[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('v-radio-group',{attrs:{\"label\":_vm.getApplicationSettingName(_vm.items[_vm.getApplicationSettingIndex(4)].keyName),\"mandatory\":\"\",\"row\":\"\"},model:{value:(_vm.items[_vm.getApplicationSettingIndex(4)].value),callback:function ($$v) {_vm.$set(_vm.items[_vm.getApplicationSettingIndex(4)], \"value\", $$v)},expression:\"items[getApplicationSettingIndex(4)].value\"}},[_c('v-radio',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.yes'),\"value\":\"True\"}}),_c('v-radio',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.no'),\"value\":\"False\"}})],1)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('v-radio-group',{attrs:{\"label\":_vm.getApplicationSettingName(_vm.items[_vm.getApplicationSettingIndex(5)].keyName),\"mandatory\":\"\",\"row\":\"\"},model:{value:(_vm.items[_vm.getApplicationSettingIndex(5)].value),callback:function ($$v) {_vm.$set(_vm.items[_vm.getApplicationSettingIndex(5)], \"value\", $$v)},expression:\"items[getApplicationSettingIndex(5)].value\"}},[_c('v-radio',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.yes'),\"value\":\"True\"}}),_c('v-radio',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.no'),\"value\":\"False\"}})],1)],1)],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isSystemAdmin),expression:\"isSystemAdmin\"}]},[_c('h2',[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.applicationsetting.MaílServerSettingsHeadline')))]),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.getApplicationSettingName(_vm.items[_vm.getApplicationSettingIndex(6)].keyName)},model:{value:(_vm.items[_vm.getApplicationSettingIndex(6)].value),callback:function ($$v) {_vm.$set(_vm.items[_vm.getApplicationSettingIndex(6)], \"value\", $$v)},expression:\"items[getApplicationSettingIndex(6)].value\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.getApplicationSettingName(_vm.items[_vm.getApplicationSettingIndex(7)].keyName)},model:{value:(_vm.items[_vm.getApplicationSettingIndex(7)].value),callback:function ($$v) {_vm.$set(_vm.items[_vm.getApplicationSettingIndex(7)], \"value\", $$v)},expression:\"items[getApplicationSettingIndex(7)].value\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.getApplicationSettingName(_vm.items[_vm.getApplicationSettingIndex(8)].keyName)},model:{value:(_vm.items[_vm.getApplicationSettingIndex(8)].value),callback:function ($$v) {_vm.$set(_vm.items[_vm.getApplicationSettingIndex(8)], \"value\", $$v)},expression:\"items[getApplicationSettingIndex(8)].value\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.getApplicationSettingName(_vm.items[_vm.getApplicationSettingIndex(9)].keyName),\"type\":\"password\"},model:{value:(_vm.items[_vm.getApplicationSettingIndex(9)].value),callback:function ($$v) {_vm.$set(_vm.items[_vm.getApplicationSettingIndex(9)], \"value\", $$v)},expression:\"items[getApplicationSettingIndex(9)].value\"}})],1)],1)],1),_c('h2',[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.applicationsetting.MiscellaneousHeadline')))]),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"2\",\"md\":\"2\"}},[_c('v-text-field',{attrs:{\"label\":_vm.getApplicationSettingName(_vm.items[_vm.getApplicationSettingIndex(1)].keyName),\"disabled\":!_vm.isSystemAdmin},model:{value:(_vm.items[_vm.getApplicationSettingIndex(1)].value),callback:function ($$v) {_vm.$set(_vm.items[_vm.getApplicationSettingIndex(1)], \"value\", $$v)},expression:\"items[getApplicationSettingIndex(1)].value\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"4\",\"md\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.getApplicationSettingName(_vm.items[_vm.getApplicationSettingIndex(11)].keyName),\"disabled\":!_vm.isSystemAdmin},model:{value:(_vm.items[_vm.getApplicationSettingIndex(11)].value),callback:function ($$v) {_vm.$set(_vm.items[_vm.getApplicationSettingIndex(11)], \"value\", $$v)},expression:\"items[getApplicationSettingIndex(11)].value\"}})],1),(_vm.isSystemAdmin)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.getApplicationSettingName(_vm.items[_vm.getApplicationSettingIndex(10)].keyName)},model:{value:(_vm.items[_vm.getApplicationSettingIndex(10)].value),callback:function ($$v) {_vm.$set(_vm.items[_vm.getApplicationSettingIndex(10)], \"value\", $$v)},expression:\"items[getApplicationSettingIndex(10)].value\"}})],1):_vm._e(),(_vm.isSystemAdmin)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.getApplicationSettingName(_vm.items[_vm.getApplicationSettingIndex(21)].keyName)},model:{value:(_vm.items[_vm.getApplicationSettingIndex(21)].value),callback:function ($$v) {_vm.$set(_vm.items[_vm.getApplicationSettingIndex(21)], \"value\", $$v)},expression:\"items[getApplicationSettingIndex(21)].value\"}})],1):_vm._e()],1)],1):_vm._e(),_c('v-container',[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-btn',{staticClass:\"float-right\",attrs:{\"type\":\"submit\",\"color\":\"primary\"}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.save'))+\" \")])],1)],1)],1)]),_c('v-container',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isSystemAdmin),expression:\"isSystemAdmin\"}]},[_c('h2',[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.applicationsetting.MunicipalityLogo')))]),(_vm.imageLogoFile)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"2\",\"md\":\"2\"}},[_c('img',{staticStyle:{\"max-height\":\"100px\",\"max-width\":\"100px\"},attrs:{\"src\":_vm.imageLogoFile}})]),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"10\",\"md\":\"10\"}},[_c('v-btn',{on:{\"click\":_vm.removeLogo}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.applicationsetting.RemoveLogoTypeImage'))+\" \")])],1)],1):_vm._e(),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('v-file-input',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.importPersons.selectfile'),\"outlined\":\"\",\"dense\":\"\",\"accept\":\"image/x-png, image/gif, image/jpeg\"},model:{value:(_vm.selectedFile),callback:function ($$v) {_vm.selectedFile=$$v},expression:\"selectedFile\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('v-btn',{attrs:{\"right\":\"\"},on:{\"click\":_vm.saveLogo}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.applicationsetting.SaveLogoType'))+\" \")])],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import Vue from 'vue';\r\n import { SettingService } from '@/services/SettingService';\r\n import { ApplicationSetting } from '../../models/Enums';\r\n import { mapGetters } from \"vuex\";\r\n import { SnackbarService } from \"@/services/SnackbarService\";\r\n \r\n export default Vue.extend({\r\n data() {\r\n return {\r\n items: [] as any[],\r\n loading: true,\r\n\r\n birthdateFormats: ['ÅÅÅÅMMDD', 'ÅÅÅÅMM', 'ÅÅÅÅ'],\r\n\r\n imageLogoFile: null,\r\n selectedFile: null,\r\n }\r\n },\r\n created() {\r\n // console.log(\"ApplicationSettings!!!\");\r\n this.getSettings();\r\n this.getMunicipalityLogo();\r\n },\r\n methods: {\r\n getApplicationSettingName(app: ApplicationSetting) {\r\n return this.$vuetify.lang.t('$vuetify.applicationsetting.' + ApplicationSetting[app]);\r\n },\r\n\r\n getApplicationSettingIndex(app: ApplicationSetting) {\r\n return this.items.findIndex((val: any) => val.keyName == app);\r\n },\r\n\r\n\r\n saveLogo() {\r\n\r\n if (!this.selectedFile) { //NoFileUploaded\r\n SnackbarService.addErrorMessage(this.$vuetify.lang.t('$vuetify.importPersons.NoFileUploaded'));\r\n }\r\n\r\n let formData = new FormData();\r\n\r\n formData.append('image', this.selectedFile!);\r\n\r\n SettingService.SaveImage(formData,\"MunicipalityLogo\").then(() => {\r\n\r\n this.getSettings();\r\n this.getMunicipalityLogo();\r\n this.selectedFile = null;\r\n SnackbarService.addSuccessMessage(this.$vuetify.lang.t('$vuetify.saved'));\r\n \r\n }).catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n }).finally(() => {\r\n \r\n });\r\n\r\n \r\n },\r\n\r\n removeLogo() {\r\n \r\n SettingService.RemoveImage(\"MunicipalityLogo\").then(() => {\r\n \r\n this.getSettings();\r\n this.getMunicipalityLogo();\r\n SnackbarService.addSuccessMessage(this.$vuetify.lang.t('$vuetify.saved'));\r\n\r\n }).catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n }).finally(() => {\r\n \r\n });\r\n \r\n },\r\n\r\n\r\n async getSettings() {\r\n this.loading = true;\r\n\r\n this.$store.commit('addOverlay');\r\n\r\n SettingService.GetSettings().then(response => {\r\n this.items = response.data; \r\n }).catch((error) => {\r\n console.error(error);\r\n }).finally(() => {\r\n this.loading = false;\r\n this.$store.commit('removeOverlay');\r\n });\r\n },\r\n\r\n async getMunicipalityLogo() { \r\n\r\n SettingService.GetMunicipalityLogo().then(response => {\r\n \r\n this.imageLogoFile = response.data!;\r\n }).catch((error) => {\r\n console.error(error);\r\n }).finally(() => {\r\n \r\n }); \r\n\r\n },\r\n\r\n async submit() {\r\n\r\n this.$store.commit('addOverlay'); \r\n\r\n if (this.items[this.getApplicationSettingIndex(2)].value === 'True') {\r\n this.items[this.getApplicationSettingIndex(3)].value = this.birthdateFormats[0];\r\n }\r\n\r\n SettingService.SaveSetting(this.items).then(() => { \r\n \r\n this.getSettings();\r\n SnackbarService.addSuccessMessage(this.$vuetify.lang.t('$vuetify.saved'));\r\n\r\n }).catch((error) => {\r\n if (error.response.data.errors) {\r\n SnackbarService.addErrorMessage(error.response?.data || error.response?.statusText);\r\n } else {\r\n SnackbarService.addErrorMessage(this.$vuetify.lang.t('$vuetify.generalErrorMessage'));\r\n } \r\n }).finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n \r\n }\r\n },\r\n computed: {\r\n ...mapGetters([\r\n \"isSystemAdmin\",\r\n \"isMunicipalityAdmin\" \r\n ]),\r\n }\r\n });\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApplicationSettings.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApplicationSettings.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ApplicationSettings.vue?vue&type=template&id=db5fbd6a\"\nimport script from \"./ApplicationSettings.vue?vue&type=script&lang=ts\"\nexport * from \"./ApplicationSettings.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.isMunicipalityAdmin || _vm.isSystemAdmin)?_c('div',[_c('v-card-text',[(_vm.items.length > 0)?_c('v-card',{staticClass:\"my-2\",staticStyle:{\"border\":\"0\"},attrs:{\"readonly\":\"\",\"outlined\":\"\"}},[_c('v-list-item',[_c('v-list-item-content',{staticClass:\"align-center\"},[_c('v-list-item-title',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.savedValues'))+\" \")])],1)],1),_c('div',{staticClass:\"my-2\"},[_c('v-chip',{staticClass:\"mx-1\",attrs:{\"label\":\"\",\"color\":_vm.getApplicationSettingColor(_vm.ApplicationSetting.ThemePrimary),\"text-color\":\"white\"}},[_vm._v(\" primary \")]),_c('v-chip',{staticClass:\"mx-1\",attrs:{\"label\":\"\",\"color\":_vm.getApplicationSettingColor(_vm.ApplicationSetting.ThemeAccent),\"text-color\":\"white\"}},[_vm._v(\" accent \")]),_c('v-chip',{staticClass:\"mx-1\",attrs:{\"label\":\"\",\"color\":_vm.getApplicationSettingColor(_vm.ApplicationSetting.ThemeSecondary),\"text-color\":\"white\"}},[_vm._v(\" secondary \")]),_c('v-chip',{staticClass:\"mx-1\",attrs:{\"label\":\"\",\"color\":_vm.getApplicationSettingColor(_vm.ApplicationSetting.ThemeSuccess),\"text-color\":\"white\"}},[_vm._v(\" success \")]),_c('v-chip',{staticClass:\"mx-1\",attrs:{\"label\":\"\",\"color\":_vm.getApplicationSettingColor(_vm.ApplicationSetting.ThemeInfo),\"text-color\":\"white\"}},[_vm._v(\" info \")]),_c('v-chip',{staticClass:\"mx-1\",attrs:{\"label\":\"\",\"color\":_vm.getApplicationSettingColor(_vm.ApplicationSetting.ThemeWarning),\"text-color\":\"white\"}},[_vm._v(\" warning \")]),_c('v-chip',{staticClass:\"mx-1\",attrs:{\"label\":\"\",\"color\":_vm.getApplicationSettingColor(_vm.ApplicationSetting.ThemeError),\"text-color\":\"white\"}},[_vm._v(\" error \")])],1)],1):_vm._e()],1),_c('v-card-text',_vm._l((_vm.themes),function(theme,index){return _c('v-card',{key:index,staticClass:\"my-2\",attrs:{\"disabled\":_vm.$vuetify.theme.themes.name === theme.name,\"hover\":\"\",\"outlined\":\"\"},on:{\"click\":function($event){return _vm.setTheme(theme)}}},[_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(theme.name)+\" \")])],1)],1),_c('div',{staticClass:\"my-2\"},_vm._l((Object.keys(theme.light)),function(key,index){return _c('v-chip',{key:index,staticClass:\"mx-1\",attrs:{\"label\":\"\",\"color\":typeof theme.light[key] === 'string' || theme.light[key] instanceof String ? theme.light[key] : theme.light[key]['base'],\"text-color\":\"white\"}},[_vm._v(\" \"+_vm._s(key)+\" \")])}),1)],1)}),1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import Vue from \"vue\";\r\n import colors from \"vuetify/lib/util/colors\"\r\n import { mapGetters } from 'vuex';\r\n import { SettingService } from '../../services/SettingService';\r\n import { ApplicationSetting } from \"@/models/Enums\";\r\n import ApplicationSettingDto from '../../models/api/ApplicationSetting';\r\n import { SnackbarService } from '../../services/SnackbarService';\r\n\r\n export default Vue.extend({\r\n name: \"ThemeChanger\",\r\n data() {\r\n return {\r\n themes: [\r\n {\r\n name: \"Default\",\r\n light: {\r\n primary: colors.blue.darken4,\r\n accent: colors.blue,\r\n secondary: colors.lime,\r\n success: colors.lightGreen,\r\n info: colors.blueGrey,\r\n warning: colors.amber,\r\n error: colors.deepOrange.darken3\r\n }\r\n },\r\n {\r\n name: \"Test-tema\",\r\n light: {\r\n primary: colors.green.darken4,\r\n accent: colors.green,\r\n secondary: colors.yellow.darken4,\r\n success: colors.lightGreen,\r\n info: colors.blueGrey,\r\n warning: colors.amber,\r\n error: colors.deepOrange.darken3\r\n }\r\n },\r\n ],\r\n items: [] as ApplicationSettingDto[],\r\n ApplicationSetting: ApplicationSetting,\r\n }\r\n },\r\n created() {\r\n this.getSettings();\r\n },\r\n methods: {\r\n getApplicationSettingIndex(app: ApplicationSetting) {\r\n console.log(this.items);\r\n console.log(app)\r\n const index = this.items.findIndex((val: any) => val.keyName == app);\r\n console.log(\"Index: \" + index);\r\n return index;\r\n },\r\n async getSettings() {\r\n this.$store.commit('addOverlay');\r\n\r\n SettingService.GetSettingsByKeyNames(\"ThemeAccent,ThemeError,ThemeInfo,ThemePrimary,ThemeSecondary,ThemeSuccess,ThemeWarning\").then(response => {\r\n this.items = response.data;\r\n }).catch((error) => {\r\n console.error(error);\r\n }).finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n },\r\n getApplicationSettingColor(app: ApplicationSetting): string {\r\n let settingString = this.items[this.getApplicationSettingIndex(app)].value.toString();\r\n let colorText = \"\";\r\n try {\r\n const colorObject = JSON.parse(settingString);\r\n colorText = colorObject['base'];\r\n } catch (e) {\r\n colorText = settingString;\r\n }\r\n\r\n return colorText;\r\n },\r\n setSetting(app: ApplicationSetting, value: any) {\r\n this.items[this.getApplicationSettingIndex(app)].value = typeof value === 'string' || value instanceof String ? value.toString() : JSON.stringify(value);\r\n },\r\n setTheme(theme: any) {\r\n const name = theme.name;\r\n const light = theme.light;\r\n\r\n this.setSetting(ApplicationSetting.ThemeAccent, light['accent']);\r\n this.setSetting(ApplicationSetting.ThemeError, light['error']);\r\n this.setSetting(ApplicationSetting.ThemeInfo, light['info']);\r\n this.setSetting(ApplicationSetting.ThemePrimary, light['primary']);\r\n this.setSetting(ApplicationSetting.ThemeSecondary, light['secondary']);\r\n this.setSetting(ApplicationSetting.ThemeSuccess, light['success']);\r\n this.setSetting(ApplicationSetting.ThemeWarning, light['warning']);\r\n\r\n this.$store.commit('addOverlay');\r\n\r\n SettingService.SaveSetting(this.items).then(() => {\r\n\r\n Object.keys(light).forEach(i => {\r\n this.$vuetify.theme.themes.light[i] = light[i];\r\n });\r\n\r\n this.getSettings();\r\n\r\n SnackbarService.addSuccessMessage(this.$vuetify.lang.t('$vuetify.saved'));\r\n\r\n }).catch((error) => {\r\n if (error.response.data.errors) {\r\n SnackbarService.addErrorMessage(error.response?.data || error.response?.statusText);\r\n } else {\r\n SnackbarService.addErrorMessage(this.$vuetify.lang.t('$vuetify.generalErrorMessage'));\r\n }\r\n }).finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n\r\n \r\n }\r\n },\r\n computed: {\r\n ...mapGetters([\r\n \"isSystemAdmin\",\r\n \"isMunicipalityAdmin\",]),\r\n }\r\n });\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Themes.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Themes.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Themes.vue?vue&type=template&id=61e09123\"\nimport script from \"./Themes.vue?vue&type=script&lang=ts\"\nexport * from \"./Themes.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',{staticClass:\"float-left\",attrs:{\"cols\":\"1\"}},[_c('a',{staticClass:\"text-decoration-none text-body-1\",on:{\"click\":function($event){return _vm.$router.go(-1)}}},[_c('v-icon',{attrs:{\"title\":_vm.$vuetify.lang.t('$vuetify.back')}},[_vm._v(\"mdi-arrow-left\")])],1)]),_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('h1',{staticClass:\"mb-3 text-center\"},[_vm._v(_vm._s(_vm.pageHeader))])])],1),_c('v-card',[_c('v-card-title',[_c('v-text-field',{attrs:{\"append-icon\":\"mdi-magnify\",\"label\":_vm.$vuetify.lang.t('$vuetify.search'),\"single-line\":\"\",\"clear-icon\":\"mdi-close-circle\",\"clearable\":\"\",\"hide-details\":\"\"},on:{\"click:clear\":function($event){_vm.search = ''}},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-data-table',{staticClass:\"elevation-2 mt-4\",class:{'mb-15': _vm.$vuetify.breakpoint.xs},attrs:{\"headers\":_vm.headers,\"items\":_vm.items,\"items-per-page\":10,\"options\":_vm.options,\"server-items-length\":_vm.totalCount,\"search\":_vm.search,\"loading\":_vm.loading},on:{\"update:items\":function($event){_vm.items=$event},\"update:options\":function($event){_vm.options=$event}},scopedSlots:_vm._u([{key:`item.hasMandatoryData`,fn:function({ item }){return [(!item.hasMandatoryData)?_c('v-icon',{attrs:{\"color\":\"red darken-2\",\"title\":_vm.$vuetify.lang.t('$vuetify.person.mandatoryDataIsMissing')}},[_vm._v(\"mdi-alert\")]):_vm._e(),(item.isDisabled)?_c('v-icon',{attrs:{\"title\":_vm.$vuetify.lang.t('$vuetify.person.isDisabled')}},[_vm._v(\"mdi-wheelchair-accessibility\")]):_vm._e()]}},{key:\"item.role\",fn:function({ item }){return [(item.associationRole)?_c('p',[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.association.' + _vm.getRoleText(item.associationRole)))+\" \")]):_vm._e()]}},{key:\"item.associationRole\",fn:function({ item }){return [_c('p',{staticClass:\"text-center ma-0\"},[(item.associationRole > 0 && item.userEmailConfirmed)?_c('v-icon',{attrs:{\"color\":\"green darken-2\"}},[_vm._v(\" mdi-check \")]):_vm._e(),(!item.userEmailConfirmed && item.associationRole > 0)?_c('v-icon',{staticClass:\"mr-3\",attrs:{\"title\":_vm.$vuetify.lang.t('$vuetify.person.sendNewConfirmEmail')},on:{\"click\":function($event){return _vm.sendConfirmEmail(item.email)}}},[_vm._v(\" mdi-email \")]):_vm._e()],1)]}},{key:`item.actions`,fn:function({ item }){return [_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.person.editPerson')},on:{\"click\":function($event){_vm.dialogOpen = true;\n _vm.preparePersonEdit(item);}}},[_c('v-icon',[_vm._v(\"mdi-pencil\")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.person.deletePerson')},on:{\"click\":function($event){_vm.showDeleteDialog = true; _vm.itemToDeleteId = item.id + ''; _vm.itemToDeleteName = item.firstName + ' ' + item.lastName}}},[_c('v-icon',[_vm._v(\"mdi-delete\")])],1)]}}],null,true)})],1),_c('v-dialog',{scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"mt-3 float-left\",class:{'mr-3': _vm.$vuetify.breakpoint.xs},attrs:{\"bottom\":_vm.$vuetify.breakpoint.xs,\"fixed\":_vm.$vuetify.breakpoint.xs,\"elevation\":\"6\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.importPersons.importExcel'))+\" \")])]}}]),model:{value:(_vm.dialogImportOpen),callback:function ($$v) {_vm.dialogImportOpen=$$v},expression:\"dialogImportOpen\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"dark\":\"\",\"color\":\"primary\"}},[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',[_c('v-toolbar-title',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.importPersons.importExcel')))])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"icon\":\"\",\"dark\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.cancel')},on:{\"click\":function($event){_vm.dialogImportOpen = false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)],1)],1),_c('v-form',{ref:\"importForm\",model:{value:(_vm.importFormValid),callback:function ($$v) {_vm.importFormValid=$$v},expression:\"importFormValid\"}},[_c('v-card-text',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-file-input',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.importPersons.selectfile'),\"outlined\":\"\",\"dense\":\"\",\"rules\":[_vm.rules.filerequired],\"accept\":\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel\"},model:{value:(_vm.chosenFile),callback:function ($$v) {_vm.chosenFile=$$v},expression:\"chosenFile\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"8\"}},[_c('v-btn',{attrs:{\"right\":\"\",\"disabled\":!_vm.importFormValid,\"color\":\"primary\"},on:{\"click\":_vm.importFile}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.importPersons.read'))+\" \")]),_c('v-btn',{staticClass:\"float-right\",attrs:{\"text\":\"\",\"href\":\"files/Exempel_Import.xlsx\",\"target\":\"_self\",\"title\":_vm.$vuetify.lang.t('$vuetify.importPersons.downloadExampelfile')}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.importPersons.downloadExampelfile'))+\" \"),_c('v-icon',[_vm._v(\"mdi-file-download\")])],1)],1)],1),_c('v-row',[_c('v-col',[_c('v-card',[_c('v-data-table',{staticClass:\"elevation-2\",attrs:{\"show-select\":\"\",\"headers\":_vm.importedHeaders,\"items\":_vm.importedItems,\"loading\":_vm.loading,\"item-key\":\"socialSecurityNumber\",\"hide-default-footer\":\"\",\"disable-pagination\":\"\",\"items-per-page\":-1},scopedSlots:_vm._u([{key:`item.importPersonStatus`,fn:function({ item }){return [(item.importPersonStatus == 1)?_c('v-icon',{attrs:{\"title\":_vm.getImportPersonStatusName(item.importPersonStatus)}},[_vm._v(\" mdi-account-plus \")]):_vm._e(),(item.importPersonStatus == 2)?_c('v-icon',{attrs:{\"title\":_vm.getImportPersonStatusName(item.importPersonStatus)}},[_vm._v(\" mdi-account-edit \")]):_vm._e(),(item.importPersonStatus == 3)?_c('v-icon',{attrs:{\"title\":_vm.getImportPersonStatusName(item.importPersonStatus)}},[_vm._v(\" mdi-account-cancel \")]):_vm._e(),(item.importPersonStatus == 4)?_c('v-icon',{attrs:{\"color\":\"red darken-2\",\"title\":_vm.getImportPersonStatusName(item.importPersonStatus)}},[_vm._v(\" mdi-account-alert \")]):_vm._e(),(item.importPersonStatus == 5)?_c('v-icon',{attrs:{\"color\":\"red darken-2\",\"title\":_vm.getImportPersonStatusName(item.importPersonStatus)}},[_vm._v(\" mdi-autorenew-off \")]):_vm._e()]}},{key:`item.isDisabled`,fn:function({ item }){return [(item.isDisabled)?_c('v-icon',[_vm._v(\" mdi-wheelchair-accessibility \")]):_vm._e()]}}],null,true),model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})],1)],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.dialogImportOpen = false}}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.cancel'))+\" \")]),_c('v-btn',{staticClass:\"float-right\",attrs:{\"disabled\":_vm.selected.length <= 0,\"color\":\"primary\"},on:{\"click\":function($event){return _vm.insertOrUpdateFromImport()}}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.importPersons.save'))+\" \")])],1)],1)],1)],1)],1)],1),_c('v-dialog',{attrs:{\"persistent\":\"\"},on:{\"click:outside\":function($event){return _vm.closeDialog()}},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"mt-3 float-right\",class:{'mr-3': _vm.$vuetify.breakpoint.xs, 'nv-floating-btn': _vm.$vuetify.breakpoint.xs},attrs:{\"bottom\":_vm.$vuetify.breakpoint.xs,\"fixed\":_vm.$vuetify.breakpoint.xs,\"elevation\":\"6\",\"color\":\"primary\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.person.registerNewPerson'))+\" \"),_c('v-icon',[_vm._v(\"mdi-plus\")])],1)]}}]),model:{value:(_vm.dialogOpen),callback:function ($$v) {_vm.dialogOpen=$$v},expression:\"dialogOpen\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"dark\":\"\",\"color\":\"primary\"}},[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',[_c('v-toolbar-title',[_vm._v(_vm._s(_vm.personRequest.id > 0 ? _vm.$vuetify.lang.t('$vuetify.person.editPerson') : _vm.$vuetify.lang.t('$vuetify.person.registerNewPerson')))])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"icon\":\"\",\"dark\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.cancel')},on:{\"click\":function($event){return _vm.closeDialog()}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)],1)],1),_c('v-form',{ref:\"personForm\",model:{value:(_vm.registerPersonFormValid),callback:function ($$v) {_vm.registerPersonFormValid=$$v},expression:\"registerPersonFormValid\"}},[_c('v-card-title'),_c('v-card-text',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.firstName'),\"rules\":[_vm.rules.required],\"maxlength\":\"50\",\"counter\":\"50\"},model:{value:(_vm.personRequest.firstName),callback:function ($$v) {_vm.$set(_vm.personRequest, \"firstName\", $$v)},expression:\"personRequest.firstName\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.lastName'),\"rules\":[_vm.rules.required],\"maxlength\":\"50\",\"counter\":\"50\"},model:{value:(_vm.personRequest.lastName),callback:function ($$v) {_vm.$set(_vm.personRequest, \"lastName\", $$v)},expression:\"personRequest.lastName\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.isSSNMandatory && !_vm.personRequest.hasNoSwedishSsn ? _vm.$vuetify.lang.t('$vuetify.person.socialSecurityNumber') : _vm.$vuetify.lang.t('$vuetify.person.dateOfBirth'),\"rules\":_vm.getValidationRules(),\"placeholder\":_vm.isSSNMandatory && !_vm.personRequest.hasNoSwedishSsn ? 'ÅÅÅÅMMDD-XXXX' : _vm.formatDateOfBirth,\"maxlength\":13},on:{\"blur\":function($event){return _vm.fixSSN()}},model:{value:(_vm.personRequest.socialSecurityNumber),callback:function ($$v) {_vm.$set(_vm.personRequest, \"socialSecurityNumber\", $$v)},expression:\"personRequest.socialSecurityNumber\"}})],1),(_vm.isSSNMandatory)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"3\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.hasNoSwedishSsn')},model:{value:(_vm.personRequest.hasNoSwedishSsn),callback:function ($$v) {_vm.$set(_vm.personRequest, \"hasNoSwedishSsn\", $$v)},expression:\"personRequest.hasNoSwedishSsn\"}})],1):_vm._e(),((!_vm.isSSNMandatory || _vm.personRequest.hasNoSwedishSsn) && (!_vm.personRequest.socialSecurityNumber || _vm.personRequest.socialSecurityNumber.length < 12))?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":_vm.isSSNMandatory ? 3 : 6}},[_c('v-select',{attrs:{\"items\":_vm.genders,\"rules\":!_vm.isSSNMandatory || _vm.personRequest.hasNoSwedishSsn ? [_vm.rules.required] : [],\"label\":_vm.$vuetify.lang.t('$vuetify.person.gender')},model:{value:(_vm.personRequest.genderId),callback:function ($$v) {_vm.$set(_vm.personRequest, \"genderId\", $$v)},expression:\"personRequest.genderId\"}})],1):_vm._e()],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.email'),\"rules\":[_vm.rules.email],\"maxlength\":\"150\"},on:{\"change\":function($event){return _vm.changeEmail($event)}},model:{value:(_vm.personRequest.email),callback:function ($$v) {_vm.$set(_vm.personRequest, \"email\", $$v)},expression:\"personRequest.email\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.mobile'),\"maxlength\":\"50\",\"rules\":_vm.phoneRules},model:{value:(_vm.personRequest.mobile),callback:function ($$v) {_vm.$set(_vm.personRequest, \"mobile\", $$v)},expression:\"personRequest.mobile\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.address'),\"maxlength\":150},model:{value:(_vm.personRequest.address),callback:function ($$v) {_vm.$set(_vm.personRequest, \"address\", $$v)},expression:\"personRequest.address\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showZipCode),expression:\"showZipCode\"}],attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.zipCode'),\"placeholder\":\"123 45\",\"rules\":_vm.showZipCode ? [_vm.rules.required, _vm.rules.zipCode] : [],\"maxlength\":6},on:{\"blur\":function($event){return _vm.fixZipCode()}},model:{value:(_vm.personRequest.zipCode),callback:function ($$v) {_vm.$set(_vm.personRequest, \"zipCode\", $$v)},expression:\"personRequest.zipCode\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showCity),expression:\"showCity\"}],attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.city'),\"maxlength\":\"200\",\"rules\":_vm.showCity ? [_vm.rules.required] : []},model:{value:(_vm.personRequest.city),callback:function ($$v) {_vm.$set(_vm.personRequest, \"city\", $$v)},expression:\"personRequest.city\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.isDisabled')},model:{value:(_vm.personRequest.isDisabled),callback:function ($$v) {_vm.$set(_vm.personRequest, \"isDisabled\", $$v)},expression:\"personRequest.isDisabled\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-radio-group',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.createUserHeadline'),\"mandatory\":\"\"},on:{\"change\":function($event){return _vm.changeRole($event)}},model:{value:(_vm.personRequest.associationRole),callback:function ($$v) {_vm.$set(_vm.personRequest, \"associationRole\", $$v)},expression:\"personRequest.associationRole\"}},[_c('v-radio',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.noLogin'),\"value\":null}}),_c('v-radio',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.association.AssociationAdmin'),\"value\":1}}),_c('v-radio',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.association.AssociationGroupAdmin'),\"value\":2}})],1)],1)],1),_c('v-row',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showGroupDrp),expression:\"showGroupDrp\"}]},[_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-autocomplete',{attrs:{\"items\":_vm.groups,\"item-text\":\"text\",\"item-value\":\"value\",\"outlined\":\"\",\"dense\":\"\",\"chips\":\"\",\"small-chips\":\"\",\"label\":_vm.$vuetify.lang.t('$vuetify.person.groups'),\"multiple\":\"\"},model:{value:(_vm.personRequest.groupIds),callback:function ($$v) {_vm.$set(_vm.personRequest, \"groupIds\", $$v)},expression:\"personRequest.groupIds\"}})],1)],1),_c('v-alert',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showEmailWillBeUpdatedInformation),expression:\"showEmailWillBeUpdatedInformation\"}],attrs:{\"color\":\"red\",\"dark\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.person.emailWillBeUpdatedInformation'))+\" \")]),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.closeDialog()}}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.cancel'))+\" \")]),_c('v-btn',{staticClass:\"float-right\",attrs:{\"disabled\":!_vm.registerPersonFormValid},on:{\"click\":function($event){return _vm.savePerson(_vm.personRequest)}}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.save'))+\" \")])],1)],1)],1)],1)],1)],1),_c('delete-dialog',{attrs:{\"showDialog\":_vm.showDeleteDialog,\"itemToDeleteName\":_vm.itemToDeleteName,\"itemToDeleteId\":_vm.itemToDeleteId},on:{\"dialogResult\":_vm.removePerson}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Person from \"@/models/api/person/Person\";\r\nimport PersonRegistrationRequest from \"@/models/api/person/PersonRegistrationRequest\";\r\nimport axios, { AxiosResponse } from \"axios\";\r\nimport SelectListItem from '../models/SelectListItem';\r\nclass Service {\r\n public async EditPerson(person: Person, emailConfirmUrl: string): Promise> {\r\n return axios.post(\"api/person/EditPerson/\", person, {\r\n params: {\r\n emailConfirmUrl: emailConfirmUrl \r\n }\r\n }\r\n );\r\n }\r\n\r\n \r\n public async GetPersonsForAddToGroup(groupId: number | null): Promise> {\r\n if (groupId) {\r\n return axios.get(`api/person/GetPersonsForAddToGroup/?groupId=${groupId}`);\r\n }\r\n\r\n return axios.get(`api/person/GetPersonsForAddToGroup/`);\r\n }\r\n\r\n public async GetPersons(): Promise> {\r\n return axios.get('api/person/GetPersons/');\r\n }\r\n\r\n public async GetPersonsPaged(data: any): Promise> {\r\n return axios.post('api/person/GetPersonsPaged', data);\r\n }\r\n public async GetPerson(id: number): Promise> {\r\n return axios.get(`api/person/${id}`);\r\n }\r\n\r\n public async RegisterPerson(personData: PersonRegistrationRequest, emailConfirmUrl: string, returnPersonId: boolean = false): Promise> {\r\n return axios.post(\"api/person/RegisterPerson/\", personData, {\r\n params: {\r\n emailConfirmUrl: emailConfirmUrl,\r\n returnPersonId: returnPersonId \r\n\r\n }\r\n });\r\n }\r\n\r\n public async RemovePerson(id: number): Promise> {\r\n return axios.delete(`api/person/RemovePerson?id=${id}`);\r\n }\r\n\r\n public async GetAssociationsGroupsSelectListItems(searchText?: string): Promise> {\r\n if (searchText) {\r\n return axios.get(`api/person/GetAssociationsGroupsSelectListItems/?searchText=${searchText}`);\r\n }\r\n\r\n return axios.get('api/person/GetAssociationsGroupsSelectListItems/');\r\n }\r\n\r\n public async GetPersonsFromFile(file: FormData ): Promise>{\r\n return axios.post('api/person/GetPersonsFromFile/',file);\r\n }\r\n\r\n public async HandleImport(persons: Person[]): Promise> {\r\n return axios.post(\"api/person/HandleImport/\", persons);\r\n }\r\n}\r\n\r\nexport const PersonService: Service = new Service();\r\n","import { Gender, AssociationRoleEnum } from '@/models/Enums';\r\n\r\nexport default class PersonRegistrationRequest {\r\n firstName: string;\r\n lastName: string;\r\n socialSecurityNumber: string; \r\n email: string;\r\n mobile: string;\r\n zipCode: string;\r\n city: string;\r\n address: string;\r\n gender: Gender | null;\r\n associationRole: AssociationRoleEnum | null;\r\n groupIds: Array;\r\n isDisabled: boolean;\r\n hasNoSwedishSsn: boolean;\r\n\r\n constructor(\r\n firstName: string,\r\n lastName: string,\r\n socialSecurityNumber: string, \r\n email: string,\r\n mobile: string,\r\n zipCode: string,\r\n city: string,\r\n address: string,\r\n gender: Gender | null,\r\n associationRole: AssociationRoleEnum | null,\r\n groupIds: Array,\r\n isDisabled: boolean,\r\n hasNoSwedishSsn: boolean,\r\n ) {\r\n this.firstName = firstName;\r\n this.lastName = lastName;\r\n this.socialSecurityNumber = socialSecurityNumber; \r\n this.email = email;\r\n this.mobile = mobile;\r\n this.zipCode = zipCode;\r\n this.city = city;\r\n this.address = address;\r\n this.gender = gender;\r\n this.associationRole = associationRole;\r\n this.groupIds = groupIds;\r\n this.isDisabled = isDisabled;\r\n this.hasNoSwedishSsn = hasNoSwedishSsn;\r\n }\r\n}","import Vue from \"vue\";\r\n\r\ninterface MixinState {\r\n formIsDirty: boolean;\r\n originalObject: any | null;\r\n}\r\n\r\nexport default Vue.extend({\r\n data(): MixinState {\r\n return {\r\n formIsDirty: false,\r\n originalObject: null,\r\n }\r\n },\r\n methods: {\r\n isDirtyCheck: function (): boolean {\r\n if (this.formIsDirty) {\r\n return window.confirm(this.$vuetify.lang.t('$vuetify.formChangedMessage'))\r\n }\r\n return true;\r\n },\r\n isDirtySet: function () {\r\n this.formIsDirty = true;\r\n },\r\n isDirtyReset: function () {\r\n this.formIsDirty = false;\r\n },\r\n isDirtyChangeTracker: function(change: any) {\r\n console.log(\"changed called:\");\r\n console.log(change);\r\n\r\n if (change != this.originalObject) {\r\n console.log(\"New object, reset formChanged!\");\r\n this.originalObject = change;\r\n this.formIsDirty = false;\r\n return;\r\n }\r\n\r\n this.isDirtySet();\r\n },\r\n getIsDirty: function () {\r\n return this.formIsDirty;\r\n },\r\n },\r\n computed: {\r\n },\r\n beforeRouteLeave(to: any, from: any, next: any) {\r\n if (this.isDirtyCheck()) {\r\n return next()\r\n } else {\r\n return next(false)\r\n }\r\n },\r\n})","export default function adaptSSN(socialSecurityNumber: string): string {\r\n if (socialSecurityNumber.indexOf('-') == -1 && socialSecurityNumber.length == 12) {\r\n socialSecurityNumber = socialSecurityNumber.substring(0, 8) + '-' + socialSecurityNumber.substr(8)\r\n }\r\n\r\n return socialSecurityNumber;\r\n} ","export default function AdaptZipCode(zipCode: string): string {\r\n if (zipCode.indexOf(' ') == -1 && zipCode.length == 5) {\r\n zipCode = zipCode.substring(0, 3) + ' ' + zipCode.substr(3)\r\n }\r\n\r\n return zipCode;\r\n} ","import { ValidationHelper } from '../ValidationHelper';\r\n\r\nexport function validateSSN(value: string): string | boolean {\r\n if (value != null && value.length >= 12) {\r\n\r\n var isValid = ValidationHelper.Mod10CheckSocialSecurityOrganizationNumber(value);\r\n if (!isValid) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n\r\nexport function validateDateOfBirth(value: string, formatDateOfBirth: string): string | boolean {\r\n if (value == '' || value == null) {\r\n return false;\r\n }\r\n\r\n var rxDatePattern = /^\\d{4}\\d{2}\\d{2}$/; //Declare Regex ����MMDD\r\n\r\n let formatdate = formatDateOfBirth;\r\n\r\n if (formatdate == null || formatdate == '')\r\n formatdate = '����MMDD';\r\n\r\n switch (formatdate.length) {\r\n case 4: // '����'\r\n rxDatePattern = /^\\d{4}$|^\\d{4}\\d{2}$|^\\d{4}\\d{2}\\d{2}$|^\\d{4}\\d{2}\\d{2}-\\d{4}$|^\\d{4}\\d{2}\\d{2}\\d{4}$/; //���� or ����MM or ����MMDD or ����MMDD-XXXX or ����MMDDXXXX\r\n break;\r\n case 6: // '����MM'\r\n rxDatePattern = /^\\d{4}\\d{2}$|^\\d{4}\\d{2}\\d{2}$|^\\d{4}\\d{2}\\d{2}-\\d{4}$|^\\d{4}\\d{2}\\d{2}\\d{4}$/; //����MM or ����MMDD or ����MMDD-XXXX or ����MMDDXXXX\r\n break;\r\n case 8: // '����MMDD'\r\n rxDatePattern = /^\\d{4}\\d{2}\\d{2}$|^\\d{4}\\d{2}\\d{2}-\\d{4}$|^\\d{4}\\d{2}\\d{2}\\d{4}$/; //����MMDD or ����MMDD-XXXX or ����MMDDXXXX\r\n break;\r\n default:\r\n rxDatePattern = /^\\d{4}\\d{2}\\d{2}-\\d{4}$/; // ����MMDD-XXXX should never happen this is not an option when ssn is not mandatory\r\n }\r\n\r\n var dtArray = value.match(rxDatePattern); // is format OK?\r\n\r\n if (dtArray == null) {\r\n return false;\r\n }\r\n\r\n let dtYear = 0;\r\n let dtMonth = 1; //initiate to 1 so it will pass the below if else if only year is allowed\r\n let dtDay = 1; //initiate to 1 so it will pass the below if else if only year and/or month is allowed\r\n\r\n dtYear = parseInt(value.substr(0, 4));\r\n\r\n if (value.length > 6)\r\n dtMonth = parseInt(value.substr(4, 2));\r\n if (value.length > 8)\r\n dtDay = parseInt(value.substr(6, 2));\r\n\r\n if (dtMonth < 1 || dtMonth > 12) {\r\n return false;\r\n } else if (dtDay < 1 || dtDay > 31) {\r\n return false;\r\n } else if ((dtMonth == 4 || dtMonth == 6 || dtMonth == 9 || dtMonth == 11) && dtDay == 31) {\r\n return false;\r\n } else if (dtMonth == 2) {\r\n var isleap = (dtYear % 4 == 0 && (dtYear % 100 != 0 || dtYear % 400 == 0));\r\n if (dtDay > 29 || (dtDay == 29 && !isleap)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n\r\n}\r\n\r\nexport function validateSSNDate(ssn: string): boolean {\r\n if (!ssn) {\r\n return true;\r\n }\r\n //Extract the substrings from the ssn if they exist\r\n const yearStr = ssn.substring(0, 4);\r\n const monthStr = ssn.length >= 6 ? ssn.substring(4, 6) : null;\r\n const dayStr = ssn.length >= 8 ? ssn.substring(6, 8) : null;\r\n\r\n\r\n //Month or day could be null\r\n const year = parseInt(yearStr, 10);\r\n const month = monthStr ? parseInt(monthStr, 10) : null;\r\n const day = dayStr ? parseInt(dayStr, 10) : null;\r\n\r\n const currentYear = new Date().getFullYear();\r\n //Im assuming no one is older than 150 years\r\n if (year < (currentYear - 150) || year > currentYear) {\r\n return false;\r\n }\r\n //Check month is within span\r\n if (month !== null && (month < 1 || month > 12)) {\r\n return false;\r\n }\r\n if (day !== null) {\r\n //Extra month check since we're using it here\r\n if (month === null) {\r\n return false;\r\n } \r\n const daysInMonth = new Date(year, month, 0).getDate();\r\n if (day < 1 || day > daysInMonth) {\r\n return false;\r\n }\r\n\r\n }\r\n return true;\r\n} ","export default function validateSSNSettings(ssn: string, isSSNMandatory: boolean, formatDateOfBirth: string): boolean {\r\n if (!ssn) {\r\n return true;\r\n }\r\n //Full ssn required\r\n if (isSSNMandatory) {\r\n // SSN could be with or without \"-\"\r\n if (ssn.length < 12 || ssn.length > 13) {\r\n return false;\r\n }\r\n }\r\n\r\n if (!formatDateOfBirth) {\r\n // Not mandatory SSN and no format for date of birth. We are in trouble! :P\r\n return true;\r\n }\r\n\r\n /*Conform to the length of formatDateBirthSetting*/\r\n if (!isSSNMandatory && formatDateOfBirth.length != ssn.length) {\r\n //Allow both yyyymmddxxxx and yyyymmdd-xxxx even with a formatDateOfBirth setting\r\n if ((ssn.length == 12 && ssn.indexOf('-') === -1) || (ssn.length == 13 && ssn.charAt(8) == '-')) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n \r\n return true;\r\n} ","\r\n/* eslint-disable */\r\n\r\nimport Vue from \"vue\";\r\nimport { PersonService } from \"@/services/PersonService\";\r\nimport PersonRegistrationRequest from \"@/models/api/person/PersonRegistrationRequest\";\r\nimport VuetifyFormMethods from \"@/models/vuetify-form-methods\";\r\nimport { AxiosError } from \"axios\";\r\nimport SelectListItem from \"@/models/SelectListItem\";\r\nimport Person from \"../../models/api/person/Person\";\r\nimport DeleteDialog from '@/components/dialogs/DeleteDialog.vue';\r\nimport { DataTableHelper } from '@/helpers/DataTableHelper';\r\nimport { SnackbarService } from \"@/services/SnackbarService\";\r\nimport { SettingService } from '../../services/SettingService';\r\nimport ApplicationSettingDto from '../../models/api/ApplicationSetting';\r\nimport { ApplicationSetting, AssociationRoleEnum, ImportPersonStatus} from '../../models/Enums';\r\nimport { Gender } from '../../models/Enums';\r\nimport { ValidationHelper } from '@/helpers/ValidationHelper';\r\nimport IsDirtyHandler from '@/components/ui/IsDirtyHandler';\r\nimport { UserService } from '@/services/UserService';\r\nimport adaptSSN from '../../helpers/functions/AdaptSSN';\r\nimport adaptZipCode from '../../helpers/functions/AdaptZipCode';\r\nimport { validateSSNDate, validateDateOfBirth, validateSSN } from '../../helpers/functions/ValidateSSN';\r\nimport validateSSNSetting from '../../helpers/functions/ValidateSSNSetting';\r\n\r\nexport default IsDirtyHandler.extend({\r\n components: {\r\n DeleteDialog \r\n },\r\n data() {\r\n return {\r\n search: '',\r\n pageHeader: this.$vuetify.lang.t('$vuetify.person.pageHeader'),\r\n totalCount: 0,\r\n items: [],\r\n loading: true,\r\n options: {},\r\n headers: [\r\n {\r\n text: \"\", sortable: false, align: 'center', value: \"hasMandatoryData\",\r\n width: '1%',\r\n class: 'slimDataTableColumnPaddingLeft',\r\n cellClass: 'slimDataTableColumnPaddingLeft',\r\n },\r\n {\r\n text: 'person.firstName',\r\n value: 'firstName',\r\n align: 'start', \r\n },\r\n {\r\n text: 'person.lastName',\r\n value: 'lastName',\r\n sortable: true, \r\n\r\n },\r\n {\r\n text: 'person.socialSecurityNumber',\r\n value: 'socialSecurityNumber',\r\n sortable: true, \r\n },\r\n \r\n {\r\n text: 'person.email',\r\n value: 'email',\r\n sortable: true, \r\n },\r\n {\r\n text: 'person.mobile',\r\n value: 'mobile',\r\n sortable: true, \r\n },\r\n {\r\n text: 'person.address',\r\n value: 'address',\r\n sortable: true,\r\n },\r\n {\r\n text: 'person.zipCode',\r\n value: 'zipCode',\r\n sortable: true, \r\n },\r\n {\r\n text: 'person.city',\r\n value: 'city',\r\n sortable: true, \r\n },\r\n {\r\n text: 'person.role',\r\n value: 'role',\r\n sortable: true,\r\n },\r\n {\r\n text: 'person.loginVerified',\r\n //sortable: false,\r\n value: 'associationRole',\r\n align: 'center',\r\n }, \r\n {\r\n text: \"\",\r\n value: \"actions\",\r\n sortable: false, \r\n align: 'end'\r\n },\r\n ],\r\n \r\n\r\n dialogOpen: false, \r\n registerPersonFormValid: false, \r\n\r\n //persons: new Array(),\r\n\r\n //email: \"\", \r\n //mobile: \"\",\r\n //zipCode: \"\",\r\n //city: \"\",\r\n genders: [{ text: this.$vuetify.lang.t('$vuetify.female'), value: 1 }, { text: this.$vuetify.lang.t('$vuetify.male'), value: 2 }],\r\n selectedGender: \"0\",\r\n genderId: null as Gender | null, \r\n //socialSecurityNumber: \"\",\r\n //firstName: \"\",\r\n //lastName: \"\", \r\n\r\n rules: {\r\n required: (value: any) => !!value || this.$vuetify.lang.t('$vuetify.required'),\r\n //empty email ok\r\n email: (value: any) => !value\r\n || /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(value)\r\n || this.$vuetify.lang.t('$vuetify.invalidEmail'),\r\n //empty zipcode ok\r\n zipCode: (value: any) => !value || /^\\d{3}\\s*\\d{2}$/.test(value) || this.$vuetify.lang.t('$vuetify.invalidZipCode'), \r\n ssnFormat: (value: any) => !value || /^\\d{4}\\d{2}\\d{2}-\\d{4}$/.test(value) || this.$vuetify.lang.t('$vuetify.formatSSN'),\r\n validateSSNDate: (value: any) => validateSSNDate(value) || this.$vuetify.lang.t('$vuetify.person.invalidDate'),\r\n filerequired: (value: any) => !!value || '' \r\n \r\n },\r\n\r\n settings: new Array(),\r\n isSSNMandatory: false,\r\n showGenderSelect: false,\r\n formatDateOfBirth: \"\",\r\n showZipCode: false,\r\n showCity: false,\r\n\r\n showDeleteDialog: false,\r\n itemToDeleteId: \"\",\r\n itemToDeleteName: \"\",\r\n\r\n personRequest: {} as Person, \r\n associationRole: null as AssociationRoleEnum | null,\r\n oldEmail: \"\",\r\n oldAssociationRole: null as AssociationRoleEnum | null,\r\n showEmailWillBeUpdatedInformation: false,\r\n\r\n groups: [] as SelectListItem[],\r\n groupSearchText: null as string | null,\r\n groupIds: [],\r\n\r\n showGroupDrp: false,\r\n\r\n dialogImportOpen: false,\r\n importFormValid: false,\r\n\r\n chosenFile: null,\r\n file: null,\r\n\r\n importedTotalCount: 0,\r\n importedItems: [],\r\n selected: [],\r\n importedHeaders: [\r\n {\r\n text: 'person.firstName',\r\n value: 'firstName',\r\n align: 'start', \r\n },\r\n {\r\n text: 'person.lastName',\r\n value: 'lastName',\r\n sortable: false, \r\n },\r\n {\r\n text: 'person.socialSecurityNumber',\r\n value: 'socialSecurityNumber',\r\n sortable: false, \r\n },\r\n {\r\n text: 'person.email',\r\n value: 'email',\r\n sortable: false,\r\n },\r\n {\r\n text: 'person.mobile',\r\n value: 'mobile',\r\n sortable: false,\r\n },\r\n {\r\n text: 'person.address',\r\n value: 'address',\r\n sortable: false,\r\n },\r\n {\r\n text: 'person.zipCode', \r\n value: 'zipCode',\r\n sortable: false,\r\n },\r\n {\r\n text: 'person.city', \r\n value: 'city',\r\n sortable: false,\r\n },\r\n {\r\n text: 'importPersons.importPersonStatus', \r\n value: 'importPersonStatus',\r\n sortable: false,\r\n },\r\n {\r\n text: 'person.isDisabled',\r\n value: \"isDisabled\",\r\n sortable: false,\r\n },\r\n \r\n ],\r\n phoneRules: [\r\n (v: any) => /^((\\+\\d{1,3}\\s*[0-9]{1,3})|(0[0-9]{1,3}))-*\\s*(\\d{3,4})\\s*(\\d{2,3})\\s*(\\d{1,3})*$/.test(v) || v == null || v == \"\" || this.$vuetify.lang.t('$vuetify.person.invalidPhoneNumber'),\r\n ],\r\n \r\n };\r\n },\r\n created() {\r\n DataTableHelper.adaptTableHeaders(this.headers, this);\r\n DataTableHelper.adaptTableHeaders(this.importedHeaders, this);\r\n //this.getPersonsPaged();\r\n this.getSettingsByKeyName();\r\n this.getAssociationUserGroups();\r\n\r\n },\r\n watch: {\r\n dialogOpen: {\r\n handler(open: boolean) {\r\n if (!open) {\r\n (this.$refs.personForm as VuetifyFormMethods).reset();\r\n }\r\n },\r\n },\r\n \r\n dialogImportOpen: { \r\n handler(open: boolean) { \r\n if (!open) {\r\n (this.$refs.importForm as VuetifyFormMethods).reset();\r\n }\r\n else { \r\n this.importedItems = [];\r\n this.selected = [];\r\n }\r\n },\r\n },\r\n search: {\r\n handler() {\r\n this.getPersonsPaged();\r\n },\r\n deep: true,\r\n },\r\n options: {\r\n handler() {\r\n this.getPersonsPaged();\r\n },\r\n deep: true,\r\n },\r\n // Is dirty handling for person edit\r\n personRequest: {\r\n handler(change: any) { \r\n this.isDirtyChangeTracker(change);\r\n /* console.log(JSON.stringify(change)) ;*/\r\n },\r\n deep: true,\r\n }\r\n },\r\n methods: {\r\n getValidationRules(): any[] {\r\n setTimeout(() => (this.$refs.personForm as VuetifyFormMethods)?.validate());\r\n if (this.isSSNMandatory && !this.personRequest.hasNoSwedishSsn) {\r\n return [this.rules.validateSSNDate, this.validateSSNSettings, this.checkValidSSN, this.rules.required, this.rules.ssnFormat];\r\n }\r\n return [this.rules.validateSSNDate, this.validateSSNSettings, this.checkValidSSN, this.rules.required, this.validDateOfBirth];\r\n },\r\n validateSSNSettings(v: any): boolean | string {\r\n return validateSSNSetting(v, this.isSSNMandatory && !this.personRequest.hasNoSwedishSsn, this.formatDateOfBirth) || this.$vuetify.lang.t('$vuetify.invalidSSN');\r\n },\r\n fixSSN() {\r\n this.personRequest.socialSecurityNumber = adaptSSN(this.personRequest.socialSecurityNumber);\r\n },\r\n fixZipCode() {\r\n this.personRequest.zipCode = adaptZipCode(this.personRequest.zipCode);\r\n },\r\n getRoleText(role: AssociationRoleEnum) {\r\n return AssociationRoleEnum[role];\r\n },\r\n changeEmail(newEmail: any) {\r\n\r\n \r\n if ((this.oldAssociationRole == AssociationRoleEnum.AssociationAdmin || this.oldAssociationRole == AssociationRoleEnum.AssociationGroupAdmin) && this.oldEmail != \"\" && this.oldEmail != newEmail) {\r\n this.showEmailWillBeUpdatedInformation = true;\r\n }\r\n else {\r\n this.showEmailWillBeUpdatedInformation = false;\r\n } \r\n },\r\n changeRole: function (role: any) {\r\n if (role == \"2\")\r\n this.showGroupDrp = true; \r\n else\r\n this.showGroupDrp = false;\r\n },\r\n preparePersonEdit(item: Person): void {\r\n \r\n\r\n // Keeps row in datatable the same, whilst updating the values.\r\n this.$store.commit('addOverlay');\r\n PersonService.GetPerson(item.id).then(response => {\r\n this.personRequest = response.data;\r\n this.oldEmail = this.personRequest.email;\r\n this.oldAssociationRole = this.personRequest.associationRole;\r\n this.showEmailWillBeUpdatedInformation = false;\r\n this.showGroupDrp = this.personRequest.associationRole == 2 ? true : false;\r\n }).catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n })\r\n .finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n \r\n },\r\n closeDialog() {\r\n \r\n if (this.isDirtyCheck()) { \r\n this.dialogOpen = false;\r\n this.personRequest = {} as Person;\r\n }\r\n },\r\n getApplicationSetting(app: ApplicationSetting) {\r\n return this.settings.findIndex((val: any) => val.keyName == app);\r\n },\r\n \r\n async removePerson(id: number) {\r\n this.showDeleteDialog = false;\r\n \r\n if (id != null) { \r\n\r\n PersonService.RemovePerson(id).then(\r\n (result) => {\r\n SnackbarService.addSuccessMessage(result?.data);\r\n this.getPersonsPaged();\r\n },\r\n (error) => { \r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n }\r\n );\r\n }\r\n },\r\n async savePerson(itemToUpdate: Person) {\r\n \r\n const confirmEmailUrl = window.location.href.substr(0, window.location.href.lastIndexOf(\"#\") + 1) + \"/confirmUser\";\r\n\r\n if (itemToUpdate.id == null || itemToUpdate.id == 0 ) { \r\n\r\n PersonService.RegisterPerson(new PersonRegistrationRequest(itemToUpdate.firstName, itemToUpdate.lastName, itemToUpdate.socialSecurityNumber, itemToUpdate.email, itemToUpdate.mobile, itemToUpdate.zipCode, itemToUpdate.city, itemToUpdate.address , itemToUpdate.genderId, itemToUpdate.associationRole, itemToUpdate.groupIds, itemToUpdate.isDisabled ?? false, itemToUpdate.hasNoSwedishSsn ?? false), confirmEmailUrl).then(\r\n (result) => {\r\n // Show success message\r\n this.getPersonsPaged();\r\n this.dialogOpen = false;\r\n this.personRequest = {} as Person;\r\n SnackbarService.addSuccessMessage(result?.data, true);\r\n },\r\n (error: AxiosError) => {\r\n\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n }\r\n );\r\n }\r\n else { \r\n\r\n PersonService.EditPerson(itemToUpdate, confirmEmailUrl).then((result) => {\r\n\r\n SnackbarService.addSuccessMessage(result?.data, true);\r\n this.getPersonsPaged();\r\n this.dialogOpen = false;\r\n this.personRequest = {} as Person;\r\n },\r\n (error: AxiosError) => {\r\n\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n }\r\n );\r\n }\r\n },\r\n async getPersonsPaged() {\r\n this.loading = true;\r\n\r\n const sortBy = (this.options as any).sortBy ?? [];\r\n const sortDesc = (this.options as any).sortDesc ?? [];\r\n const page = (this.options as any).page ?? 1;\r\n const itemsPerPage = (this.options as any).itemsPerPage ?? 10;\r\n\r\n const data = {\r\n sortBy: sortBy,\r\n sortDesc: sortDesc,\r\n page: page,\r\n itemsPerPage: itemsPerPage,\r\n searchText: this.search\r\n };\r\n\r\n PersonService.GetPersonsPaged(data).then(response => {\r\n\r\n this.totalCount = response.data.totalCount;\r\n this.items = response.data.items;\r\n\r\n }).catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n }).finally(() => {\r\n this.loading = false;\r\n });\r\n },\r\n async getAssociationUserGroups() {\r\n this.groups = (await PersonService.GetAssociationsGroupsSelectListItems()).data;\r\n\r\n },\r\n\r\n async getSettingsByKeyName() {\r\n\r\n SettingService.GetSettingsByKeyNames(\"IsSSNMandatory,FormatOfDateOfBirth, ZipCodeVisibleAndMandatory,CityVisibleAndMandatory\")\r\n .then(response => {\r\n this.settings = response.data;\r\n\r\n this.isSSNMandatory = JSON.parse(this.settings[this.getApplicationSetting(ApplicationSetting.IsSSNMandatory)].value.toString().toLowerCase());\r\n this.formatDateOfBirth = this.settings[this.getApplicationSetting(ApplicationSetting.FormatOfDateOfBirth)].value.toString();\r\n this.showZipCode = JSON.parse(this.settings[this.getApplicationSetting(ApplicationSetting.ZipCodeVisibleAndMandatory)].value.toString().toLowerCase());\r\n this.showCity = JSON.parse(this.settings[this.getApplicationSetting(ApplicationSetting.CityVisibleAndMandatory)].value.toString().toLowerCase());\r\n this.showGenderSelect = this.isSSNMandatory ? false : true;\r\n }).catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n }).finally(() => {\r\n this.loading = false;\r\n this.$store.commit('removeOverlay');\r\n });\r\n\r\n },\r\n\r\n async insertOrUpdateFromImport() {\r\n \r\n \r\n //for (var index in this.selected) {\r\n // console.log(this.selected[index]);\r\n //}\r\n // console.log(this.selected.length);\r\n this.$store.commit('addOverlay');\r\n if (this.selected.length <= 0) \r\n SnackbarService.addErrorMessage(this.$vuetify.lang.t('$vuetify.importPersons.NoPersonsSelected'));\r\n else { \r\n PersonService.HandleImport(this.selected).then((result) => {\r\n\r\n SnackbarService.addSuccessMessage(result?.data,true);\r\n this.getPersonsPaged(); \r\n this.dialogImportOpen = false; \r\n }).catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n })\r\n .finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n }\r\n },\r\n\r\n importFile() { \r\n\r\n if (!this.chosenFile) { //NoFileUploaded\r\n SnackbarService.addErrorMessage(this.$vuetify.lang.t('$vuetify.importPersons.NoFileUploaded'));\r\n } \r\n\r\n let formData = new FormData();\r\n \r\n formData.append('file', this.chosenFile!);\r\n this.loading = true;\r\n PersonService.GetPersonsFromFile(formData).then(response => { \r\n //persons that already exists and nothing changed should not be selectable\r\n //persons with invalid socialsecuritynumber in file should not be selectable\r\n //persons with associationusers where email has changed should not be selectable\r\n \r\n this.importedItems = response.data.items;\r\n this.importedItems.forEach((s: any) => s.isSelectable = this.isPersonSelectable(s.importPersonStatus)); \r\n \r\n }).catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n }).finally(() => {\r\n this.loading = false;\r\n });\r\n\r\n },\r\n\r\n isPersonSelectable(personStatus: number): boolean {\r\n return personStatus <= 2;\r\n },\r\n\r\n getImportPersonStatusName(val: ImportPersonStatus) {\r\n return this.$vuetify.lang.t('$vuetify.importPersonStatus.' + ImportPersonStatus[val]); \r\n }, \r\n\r\n\r\n async sendConfirmEmail(email: string) {\r\n \r\n const confirmEmailUrl = window.location.href.substr(0, window.location.href.lastIndexOf(\"#\") + 1) + \"/confirmUser\";\r\n\r\n this.$store.commit('addOverlay');\r\n\r\n UserService.SendConfirmEmail({ email: email, emailConfirmationUrl: confirmEmailUrl }).then(() => {\r\n SnackbarService.addSuccessMessage(this.$vuetify.lang.t('$vuetify.user.confirmEmailSent'));\r\n }).catch((error) => {\r\n if (error.response.data.errors) {\r\n SnackbarService.addErrorMessage(error.response.data.errors.join(\"\\n\"));\r\n } else {\r\n SnackbarService.addErrorMessage(this.$vuetify.lang.t('$vuetify.generalErrorMessage'));\r\n }\r\n }).finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n },\r\n\r\n // rules\r\n validDateOfBirth(value: string): string | boolean {\r\n return validateDateOfBirth(value, this.formatDateOfBirth) || this.$vuetify.lang.t('$vuetify.person.invalidDate');\r\n },\r\n // rules\r\n\r\n /* Not to be used before getPersons() is fixed to not fetch all persons full info and called on created!!!\r\n async getPersons() {\r\n this.persons = (await PersonService.GetPersons()).data;\r\n\r\n },\r\n uniqueSocialSecurityNumber(value: string): string | boolean {\r\n // Filter except from the item being edited.\r\n \r\n if (\r\n value &&\r\n this.persons\r\n .filter((x) => x.id != this.personRequest.id)\r\n .findIndex(\r\n (f) =>\r\n f.socialSecurityNumber.trim().toLocaleLowerCase() ==\r\n value.trim().toLocaleLowerCase()\r\n ) > -1\r\n ) { \r\n return this.$vuetify.lang.t('$vuetify.person.SSNAlreadyExists') + \" \" +value; \r\n }\r\n\r\n return true;\r\n },\r\n */\r\n\r\n checkValidSSN(value: string): string | boolean {\r\n return validateSSN(value) || this.$vuetify.lang.t('$vuetify.invalidSSN');\r\n },\r\n }\r\n});\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=4eb315ac\"\nimport script from \"./Index.vue?vue&type=script&lang=ts\"\nexport * from \"./Index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',{staticClass:\"float-left\",attrs:{\"cols\":\"1\"}},[_c('a',{staticClass:\"text-decoration-none text-body-1\",on:{\"click\":function($event){return _vm.$router.go(-1)}}},[_c('v-icon',{attrs:{\"title\":_vm.$vuetify.lang.t('$vuetify.back')}},[_vm._v(\"mdi-arrow-left\")])],1)]),_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('h1',{staticClass:\"mb-3 text-center\"},[_vm._v(_vm._s(_vm.pageHeader))])])],1),_c('v-data-table',{staticClass:\"elevation-2\",class:{'mb-15': _vm.$vuetify.breakpoint.xs},attrs:{\"headers\":_vm.groupTableHeaders,\"items\":_vm.groups,\"items-per-page\":10,\"dense\":true,\"loading\":_vm.isTableLoading},on:{\"update:items\":function($event){_vm.groups=$event}},scopedSlots:_vm._u([{key:`item.actions`,fn:function({ item }){return [_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.edit') + ' ' + item.name},on:{\"click\":function($event){_vm.dialogOpen = true;\n _vm.prepareGroupEdit(item);}}},[_c('v-icon',[_vm._v(\"mdi-pencil\")])],1),(_vm.isSystemAdmin || _vm.isMunicipalityAdmin || _vm.isAssociationUser_Admin)?_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.delete') + ' ' + item.name},on:{\"click\":function($event){_vm.showDeleteDialog = true; _vm.itemToDeleteId = item.id + ''; _vm.itemToDeleteName = item.name}}},[_c('v-icon',[_vm._v(\"mdi-delete\")])],1):_vm._e()]}}],null,true)}),_c('v-dialog',{attrs:{\"fullscreen\":_vm.windowWidth < 650,\"transition\":\"slide-y-reverse-transition\",\"persistent\":\"\"},on:{\"click:outside\":function($event){return _vm.closeDialog()}},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [(_vm.isSystemAdmin || _vm.isMunicipalityAdmin || _vm.isAssociationUser_Admin)?_c('v-btn',_vm._g(_vm._b({staticClass:\"mt-3 float-right\",class:{'nv-floating-btn': _vm.$vuetify.breakpoint.xs},attrs:{\"bottom\":_vm.$vuetify.breakpoint.xs,\"fixed\":_vm.$vuetify.breakpoint.xs,\"elevation\":\"6\",\"color\":\"primary\"}},'v-btn',attrs,false),on),[_vm._v(\"Registrera grupp \"),_c('v-icon',[_vm._v(\"mdi-plus\")])],1):_vm._e()]}}]),model:{value:(_vm.dialogOpen),callback:function ($$v) {_vm.dialogOpen=$$v},expression:\"dialogOpen\"}},[_c('v-card',[_c('v-form',{ref:\"groupForm\",model:{value:(_vm.groupFormValid),callback:function ($$v) {_vm.groupFormValid=$$v},expression:\"groupFormValid\"}},[_c('v-toolbar',{attrs:{\"color\":\"primary\",\"dark\":\"\",\"flat\":\"\"}},[_c('v-toolbar-title',[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.group.groupHead', _vm.registrationRequest.id > 0 ? _vm.$vuetify.lang.t('$vuetify.change') : _vm.$vuetify.lang.t('$vuetify.register')))+\" \")]),_c('v-btn',{attrs:{\"icon\":\"\",\"absolute\":\"\",\"right\":\"\"},on:{\"click\":function($event){return _vm.closeDialog()}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),_c('v-card-text',[_c('v-container',[_c('v-row',[_c('v-col',[_c('v-text-field',{attrs:{\"label\":\"Gruppnamn\",\"counter\":\"50\",\"disabled\":_vm.isAssociationUser_GroupAdmin,\"rules\":[(v) => !!v || _vm.$vuetify.lang.t('$vuetify.required'), _vm.uniqueGroupName, (v) => !v || v.length <= 50 || _vm.$vuetify.lang.t('$vuetify.group.groupNameToLong')],\"maxlength\":50},model:{value:(_vm.registrationRequest.name),callback:function ($$v) {_vm.$set(_vm.registrationRequest, \"name\", $$v)},expression:\"registrationRequest.name\"}}),_c('v-select',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.activity.activityName'),\"disabled\":_vm.isAssociationUser_GroupAdmin,\"items\":_vm.activities,\"item-text\":\"name\",\"item-value\":\"id\",\"rules\":[(v) => !!v && v > -1 || _vm.$vuetify.lang.t('$vuetify.required')]},on:{\"update:items\":function($event){_vm.activities=$event}},model:{value:(_vm.registrationRequest.associationActivityId),callback:function ($$v) {_vm.$set(_vm.registrationRequest, \"associationActivityId\", $$v)},expression:\"registrationRequest.associationActivityId\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"justify-end\"},[_c('h4',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.group.participantGroups')))]),_c('v-divider'),_c('v-data-table',{staticClass:\"elevation-2\",class:{'mb-15': _vm.$vuetify.breakpoint.xs},attrs:{\"headers\":_vm.computedParticipantGroupTableHeaders,\"items\":_vm.registrationRequest.participantGroups,\"items-per-page\":-1,\"hide-default-footer\":\"\",\"dense\":true,\"loading\":_vm.isTableLoadingParticipantGroup},on:{\"update:items\":function($event){return _vm.$set(_vm.registrationRequest, \"participantGroups\", $event)}},scopedSlots:_vm._u([{key:`item.added`,fn:function({ item }){return [(!(item.id > 0))?_c('v-icon',{attrs:{\"title\":_vm.$vuetify.lang.t('$vuetify.new')}},[_vm._v(\"mdi-plus\")]):_vm._e()]}},{key:`item.isDisabled`,fn:function({ item }){return [(item.isDisabled)?_c('v-icon',{attrs:{\"title\":_vm.$vuetify.lang.t('$vuetify.person.isDisabled')}},[_vm._v(\"mdi-check\")]):_vm._e()]}},{key:`item.isLeader`,fn:function({ item }){return [_c('v-simple-checkbox',{attrs:{\"ripple\":false},model:{value:(item.isLeader),callback:function ($$v) {_vm.$set(item, \"isLeader\", $$v)},expression:\"item.isLeader\"}})]}},{key:`item.isAdmin`,fn:function({ item }){return [(item.isAssociationAdmin)?_c('v-simple-checkbox',{attrs:{\"disabled\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.association.AssociationAdmin'),\"ripple\":false},model:{value:(item.isAssociationAdmin),callback:function ($$v) {_vm.$set(item, \"isAssociationAdmin\", $$v)},expression:\"item.isAssociationAdmin\"}}):_c('v-simple-checkbox',{attrs:{\"disabled\":item.person.email =='',\"title\":item.person.email == '' ? _vm.$vuetify.lang.t('$vuetify.person.emailIsMissingCannotCreateAdmin'): '',\"ripple\":false},model:{value:(item.isAdmin),callback:function ($$v) {_vm.$set(item, \"isAdmin\", $$v)},expression:\"item.isAdmin\"}})]}},{key:`item.actions`,fn:function({ item }){return [(!item.isAssociationAdmin)?_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.edit') + ' uppgifter för ' + item.person.firstName + ' ' + item.person.lastName},on:{\"click\":function($event){_vm.itemIdToBeEdited = item.personId; _vm.editParticipantDialogOpen = true;}}},[_c('v-icon',[_vm._v(\"mdi-pencil\")])],1):_vm._e(),_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.delete') + ' ' + item.person.firstName + ' ' + item.person.lastName},on:{\"click\":function($event){_vm.showDeleteDialogParticipant = true; _vm.itemToDeleteIdParticipant = item.id + ''; _vm.itemToDeleteNameParticipant = item.person.firstName + ' ' + item.person.lastName}}},[_c('v-icon',[_vm._v(\"mdi-delete\")])],1)]}}],null,true)})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"text-end\"},[_c('v-btn',{staticClass:\"mb-2\",on:{\"click\":function($event){return _vm.prepareAddPersons()}}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.group.addParticipantGroups')))]),_c('v-btn',{staticClass:\"ml-3 mb-2\",on:{\"click\":function($event){_vm.addParticipantDialogOpen = true}}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.group.addParticipantGroup')))])],1)],1)],1)],1),_c('v-card-actions',[_c('v-container',[_c('v-row',[_c('v-col',[_c('v-btn',{staticClass:\"float-left\",attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.closeDialog()}}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.cancel')))])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"color\":\"primary\",\"disabled\":!_vm.groupFormValid},on:{\"click\":function($event){return _vm.saveGroup(_vm.registrationRequest)}}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.save')))])],1)],1)],1)],1)],1)],1)],1),_c('v-dialog',{attrs:{\"fullscreen\":_vm.$vuetify.breakpoint.xs,\"transition\":\"slide-y-reverse-transition\"},model:{value:(_vm.dialogOpenAddPersons),callback:function ($$v) {_vm.dialogOpenAddPersons=$$v},expression:\"dialogOpenAddPersons\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"color\":\"primary\",\"dark\":\"\",\"flat\":\"\"}},[_c('v-toolbar-title',[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.group.addParticipantGroups'))+\" \")]),_c('v-btn',{attrs:{\"icon\":\"\",\"absolute\":\"\",\"right\":\"\"},on:{\"click\":function($event){_vm.dialogOpenAddPersons = false;}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),_c('v-card-text',[_c('v-container',[_c('v-row',[_c('v-col',[_c('v-select',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.group.showGroup'),\"items\":_vm.groups,\"clearable\":\"\",\"item-text\":\"name\",\"item-value\":\"id\"},on:{\"update:items\":function($event){_vm.groups=$event},\"change\":function($event){return _vm.getPersons()}},model:{value:(_vm.selectedGroupAddPersons),callback:function ($$v) {_vm.selectedGroupAddPersons=$$v},expression:\"selectedGroupAddPersons\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"justify-end\"},[_c('h4',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.person.persons')))]),_c('v-divider'),_c('v-data-table',{staticClass:\"elevation-2\",class:{'mb-15': _vm.$vuetify.breakpoint.xs},attrs:{\"headers\":_vm.addPersonsTableHeaders,\"items\":_vm.itemsAddPersons,\"dense\":true,\"show-select\":\"\",\"loading\":_vm.isTableLoadingAddPersons},on:{\"update:items\":function($event){_vm.itemsAddPersons=$event}},model:{value:(_vm.selectedAddPersons),callback:function ($$v) {_vm.selectedAddPersons=$$v},expression:\"selectedAddPersons\"}})],1)],1)],1)],1),_c('v-card-actions',[_c('v-container',[_c('v-row',[_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"block\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.addPersons()}}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.add')))])],1)],1)],1)],1)],1)],1),(_vm.editParticipantDialogOpen)?_c('edit-participant-dialog',{attrs:{\"showDialog\":_vm.editParticipantDialogOpen,\"itemIdToBeEdited\":_vm.itemIdToBeEdited},on:{\"participant-updated\":_vm.updatedParticipant,\"dialog-closed\":function($event){_vm.editParticipantDialogOpen = false}}}):_vm._e(),_c('add-participant-dialog',{attrs:{\"showDialog\":_vm.addParticipantDialogOpen,\"fromOccasion\":false},on:{\"participant-added\":_vm.addParticipant,\"dialog-closed\":function($event){_vm.addParticipantDialogOpen = false}}}),_c('delete-dialog',{attrs:{\"showDialog\":_vm.showDeleteDialog,\"additionalInfo\":_vm.$vuetify.lang.t('$vuetify.group.additionalInfoDelete'),\"itemToDeleteName\":_vm.itemToDeleteName,\"itemToDeleteId\":_vm.itemToDeleteId},on:{\"dialogResult\":_vm.removeGroup}}),_c('delete-dialog',{attrs:{\"showDialog\":_vm.showDeleteDialogParticipant,\"additionalInfo\":_vm.$vuetify.lang.t('$vuetify.group.additionalInfoDeleteParticipant'),\"itemToDeleteName\":_vm.itemToDeleteNameParticipant,\"itemToDeleteId\":_vm.itemToDeleteIdParticipant},on:{\"dialogResult\":_vm.removeParticipant}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Group, { GroupList } from \"@/models/api/group/Group\";\r\nimport GroupRegistrationRequest from \"@/models/api/group/GroupRegistrationRequest\";\r\n\r\nimport axios, { AxiosResponse } from \"axios\";\r\n\r\nclass Service {\r\n public async EditGroup(association: Group): Promise> {\r\n return axios.post(\"api/group/EditGroup\", association);\r\n }\r\n public async GetGroups(): Promise> {\r\n return axios.get('api/group/GetGroups/');\r\n }\r\n public async GetGroup(id: number): Promise> {\r\n return axios.get(`api/group/${id}`);\r\n }\r\n public async RegisterGroup(associationData: GroupRegistrationRequest): Promise> {\r\n return axios.post(\"api/group/RegisterGroup\", associationData);\r\n }\r\n\r\n public async RemoveGroup(id: number): Promise> {\r\n return axios.delete(`api/group/RemoveGroup?id=${id}`);\r\n }\r\n}\r\n\r\nexport const GroupService: Service = new Service();\r\n","import ParticipantGroup from \"../participant-group/ParticipantGroup\";\r\nimport Person from \"../person/Person\";\r\nimport Group from './Group';\r\n\r\nexport default class GroupRegistrationRequest implements Group{\r\n id: number;\r\n name: string;\r\n associationActivityId: number;\r\n associationId: number;\r\n participantGroups: ParticipantGroup[];\r\n isDeleted: boolean;\r\n confirmEmailUrl: string;\r\n\r\n constructor(\r\n name: string,\r\n associationActivityId: number,\r\n associationId: number,\r\n participantGroups: ParticipantGroup[],\r\n confirmEmailUrl: string,\r\n ) {\r\n this.name = name;\r\n this.associationId = associationId;\r\n this.associationActivityId = associationActivityId;\r\n this.participantGroups = participantGroups;\r\n this.confirmEmailUrl = confirmEmailUrl;\r\n\r\n this.isDeleted = false;\r\n this.id = 0;\r\n }\r\n}","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-dialog',{on:{\"click:outside\":function($event){return _vm.dialogClosed()}},model:{value:(_vm.addParticipantDialogOpen),callback:function ($$v) {_vm.addParticipantDialogOpen=$$v},expression:\"addParticipantDialogOpen\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"dark\":\"\",\"color\":\"primary\"}},[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',[_c('v-toolbar-title',[_vm._v(\" \"+_vm._s(!_vm.isOccasionParticipant ? _vm.$vuetify.lang.t('$vuetify.group.addParticipantGroup') : _vm.$vuetify.lang.t('$vuetify.occasion.addPerson'))+\" \")])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"icon\":\"\",\"dark\":\"\"},on:{\"click\":function($event){return _vm.dialogClosed()}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)],1)],1),_c('v-card-text',[_c('h1',{staticClass:\"pt-5 pb-2\"},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.searchPersonRegister')))]),_c('v-autocomplete',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.searchPersonRegister'),\"items\":_vm.searchedParticipants,\"item-text\":\"nameBlob\",\"filter\":() => { return true; },\"search-input\":_vm.participantSearchTerm,\"loading\":_vm.isParticipantSearchLoading,\"hint\":_vm.selectedParticipant != null ? _vm.selectedParticipant.socialSecurityNumber : '',\"persistent-hint\":\"\",\"return-object\":\"\",\"clearable\":\"\"},on:{\"update:searchInput\":function($event){_vm.participantSearchTerm=$event},\"update:search-input\":function($event){_vm.participantSearchTerm=$event}},scopedSlots:_vm._u([{key:\"item\",fn:function(data){return [_c('div',[_vm._v(_vm._s(data.item.firstName)+\" \"+_vm._s(data.item.lastName))]),_c('div',[_vm._v(\" \"+_vm._s(data.item.socialSecurityNumber))])]}}]),model:{value:(_vm.selectedParticipant),callback:function ($$v) {_vm.selectedParticipant=$$v},expression:\"selectedParticipant\"}}),(_vm.selectedParticipant && _vm.selectedParticipant.id)?_c('div',[_c('v-row',[_c('v-col',[(_vm.selectedParticipant.isDisabled)?_c('v-icon',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.isDisabled')}},[_vm._v(\"mdi-check\")]):_vm._e()],1),_c('v-col',[_c('v-switch',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.isLeader')},model:{value:(_vm.participantRequest.isLeader),callback:function ($$v) {_vm.$set(_vm.participantRequest, \"isLeader\", $$v)},expression:\"participantRequest.isLeader\"}})],1)],1)],1):_vm._e(),_c('h2',{staticClass:\"mt-10\"},[_vm._v(\"Eller fyll i personuppgifter\")]),_c('v-form',{ref:\"personDialog\",attrs:{\"disabled\":_vm.selectedParticipant != null && _vm.selectedParticipant.firstName != null},model:{value:(_vm.participantRequestValid),callback:function ($$v) {_vm.participantRequestValid=$$v},expression:\"participantRequestValid\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.firstName'),\"rules\":[(v) => !!v || 'Obligatoriskt']},model:{value:(_vm.personRequest.firstName),callback:function ($$v) {_vm.$set(_vm.personRequest, \"firstName\", $$v)},expression:\"personRequest.firstName\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.lastName'),\"rules\":[(v) => !!v || 'Obligatoriskt']},model:{value:(_vm.personRequest.lastName),callback:function ($$v) {_vm.$set(_vm.personRequest, \"lastName\", $$v)},expression:\"personRequest.lastName\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.isSSNMandatory && !_vm.personRequest.hasNoSwedishSsn ? _vm.$vuetify.lang.t('$vuetify.person.socialSecurityNumber') : _vm.$vuetify.lang.t('$vuetify.person.dateOfBirth'),\"placeholder\":_vm.isSSNMandatory && !_vm.personRequest.hasNoSwedishSsn ? 'ÅÅÅÅMMDD-XXXX' : _vm.formatDateOfBirth,\"rules\":_vm.getValidationRules(),\"maxlength\":13},on:{\"blur\":function($event){return _vm.fixSSN()}},model:{value:(_vm.personRequest.socialSecurityNumber),callback:function ($$v) {_vm.$set(_vm.personRequest, \"socialSecurityNumber\", $$v)},expression:\"personRequest.socialSecurityNumber\"}})],1),(_vm.isSSNMandatory)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"3\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.hasNoSwedishSsn')},model:{value:(_vm.personRequest.hasNoSwedishSsn),callback:function ($$v) {_vm.$set(_vm.personRequest, \"hasNoSwedishSsn\", $$v)},expression:\"personRequest.hasNoSwedishSsn\"}})],1):_vm._e(),((!_vm.isSSNMandatory || _vm.personRequest.hasNoSwedishSsn) && (!_vm.personRequest.socialSecurityNumber || _vm.personRequest.socialSecurityNumber.length < 12))?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":_vm.isSSNMandatory ? 3 : 6}},[_c('v-select',{attrs:{\"items\":_vm.genders,\"label\":_vm.$vuetify.lang.t('$vuetify.person.gender'),\"rules\":[(v) => !!v || 'Obligatoriskt']},model:{value:(_vm.personRequest.gender),callback:function ($$v) {_vm.$set(_vm.personRequest, \"gender\", $$v)},expression:\"personRequest.gender\"}})],1):_vm._e()],1),_c('v-row',[_c('v-col',{staticClass:\"text-right\"},[_c('v-btn',{attrs:{\"disabled\":_vm.selectedParticipant != null && _vm.selectedParticipant.firstName != null},on:{\"click\":function($event){return _vm.toggleShowMoreFields()}}},[_vm._v(\" \"+_vm._s(_vm.showMoreFields ? _vm.$vuetify.lang.t('$vuetify.occasion.hideField') : _vm.$vuetify.lang.t('$vuetify.occasion.showField'))+\" \"),(!_vm.showMoreFields)?_c('v-icon',{staticClass:\"float-right\"},[_vm._v(\"mdi-chevron-double-down\")]):_vm._e(),(_vm.showMoreFields)?_c('v-icon',[_vm._v(\"mdi-chevron-double-up\")]):_vm._e()],1)],1)],1),(_vm.showMoreFields)?_c('div',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"rules\":_vm.emailRules,\"label\":_vm.$vuetify.lang.t('$vuetify.person.email')},model:{value:(_vm.personRequest.email),callback:function ($$v) {_vm.$set(_vm.personRequest, \"email\", $$v)},expression:\"personRequest.email\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"typ\":\"tel\",\"rules\":_vm.phoneRules,\"label\":_vm.$vuetify.lang.t('$vuetify.person.mobile')},model:{value:(_vm.personRequest.mobile),callback:function ($$v) {_vm.$set(_vm.personRequest, \"mobile\", $$v)},expression:\"personRequest.mobile\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.address')},model:{value:(_vm.personRequest.address),callback:function ($$v) {_vm.$set(_vm.personRequest, \"address\", $$v)},expression:\"personRequest.address\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.zipCode'),\"placeholder\":\"123 45\",\"rules\":_vm.zipCodeRules,\"maxlength\":6},on:{\"blur\":function($event){return _vm.fixZipCode()}},model:{value:(_vm.personRequest.zipCode),callback:function ($$v) {_vm.$set(_vm.personRequest, \"zipCode\", $$v)},expression:\"personRequest.zipCode\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.city')},model:{value:(_vm.personRequest.city),callback:function ($$v) {_vm.$set(_vm.personRequest, \"city\", $$v)},expression:\"personRequest.city\"}})],1)],1)],1):_vm._e(),(!(_vm.selectedParticipant && _vm.selectedParticipant.id))?_c('div',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"3\",\"lg\":\"2\"}},[_c('v-switch',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.isDisabled')},model:{value:(_vm.personRequest.isDisabled),callback:function ($$v) {_vm.$set(_vm.personRequest, \"isDisabled\", $$v)},expression:\"personRequest.isDisabled\"}})],1),_c('v-col',{staticClass:\"d-none d-md-block\",attrs:{\"cols\":\"3\",\"lg\":\"4\"}}),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"3\",\"lg\":\"2\"}},[_c('v-switch',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.isLeader')},model:{value:(_vm.participantRequest.isLeader),callback:function ($$v) {_vm.$set(_vm.participantRequest, \"isLeader\", $$v)},expression:\"participantRequest.isLeader\"}})],1)],1)],1):_vm._e(),_c('v-scroll-y-transition',[(_vm.personRequest.isLeader)?[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.email'),\"rules\":[(v) => !!v || 'Obligatoriskt', (v) => /^.+@.+\\..+$/.test(v) || 'Ogiltig e-postadress']},model:{value:(_vm.personRequest.email),callback:function ($$v) {_vm.$set(_vm.personRequest, \"email\", $$v)},expression:\"personRequest.email\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.telephoneNumber'),\"rules\":[(v) => !!v || 'Obligatoriskt', (v) => /^\\d{8}$/.test(v) || 'Ogiltigt telefonnummer']},model:{value:(_vm.personRequest.phone),callback:function ($$v) {_vm.$set(_vm.personRequest, \"phone\", $$v)},expression:\"personRequest.phone\"}})]:_vm._e()],2),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-btn',{staticClass:\"float-right\",attrs:{\"color\":\"primary\"},on:{\"click\":function($event){_vm.fromOccasion ? _vm.validateParticipant() : _vm.addParticipant()}}},[_vm._v(\"Lägg till\")])],1)],1)],1)],1)],1)],1),_c('add-person-to-group-dialog',{attrs:{\"showDialog\":_vm.addPersonToGroupDialogOpen},on:{\"dialog-result\":_vm.addParticipant,\"dialog-closed\":function($event){_vm.addPersonToGroupDialogOpen = false}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Group from \"../group/Group\";\r\nimport Person from \"../person/Person\";\r\n\r\nexport default class ParticipantGroupRegistrationRequest {\r\n id: number;\r\n personId: number;\r\n groupId: number;\r\n isDisabled: boolean;\r\n isLeader: boolean;\r\n isAdmin: boolean;\r\n isAssociationAdmin: boolean;\r\n\r\n person?: Person;\r\n group?: Group;\r\n\r\n constructor(\r\n id: number,\r\n personId: number,\r\n groupId: number,\r\n isDisabled: boolean,\r\n isLeader: boolean,\r\n isAdmin: boolean,\r\n isAssociationAdmin: boolean,\r\n ) {\r\n this.id = id;\r\n this.personId = personId;\r\n this.groupId = groupId;\r\n this.isDisabled = isDisabled;\r\n this.isLeader = isLeader;\r\n this.isAdmin = isAdmin;\r\n this.isAssociationAdmin = isAssociationAdmin;\r\n }\r\n}","import Person from \"@/models/api/person/Person\";\r\nimport axios, { AxiosResponse } from \"axios\";\r\n\r\nclass Service {\r\n public async searchParticipants(search: string): Promise> {\r\n return axios.get(`api/group/SearchParticipant?search=${search}`);\r\n }\r\n}\r\n\r\nexport const ParticipantService: Service = new Service();","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"width\":\"800\"},on:{\"click:outside\":function($event){return _vm.dialogClosed()}},model:{value:(_vm.addPersonToGroupDialogOpen),callback:function ($$v) {_vm.addPersonToGroupDialogOpen=$$v},expression:\"addPersonToGroupDialogOpen\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"dark\":\"\",\"color\":\"primary\"}},[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',[_c('v-toolbar-title',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.addPersonToGroup')))])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"icon\":\"\",\"dark\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.cancel')},on:{\"click\":function($event){return _vm.dialogClosed()}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)],1)],1),_c('v-card-text',[_c('v-container',{staticClass:\"text-h6\"},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.addPersonToGroupText'))+\" \")])],1),_c('v-card-actions',[_c('v-container',[_c('v-row',[_c('v-col',[_c('v-btn',{on:{\"click\":function($event){return _vm.emitResult(true)}}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.optionGroup')))])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",on:{\"click\":function($event){return _vm.emitResult(false)}}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.optionTemporary')))])],1)],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import Vue from 'vue';\r\n\r\n export default Vue.extend({\r\n props: {\r\n showDialog: Boolean,\r\n },\r\n\r\n created() {\r\n\r\n this.addPersonToGroupDialogOpen = this.showDialog;\r\n },\r\n data() {\r\n return {\r\n addPersonToGroup: false,\r\n addPersonToGroupDialogOpen: false,\r\n\r\n }\r\n },\r\n watch: {\r\n showDialog(val) {\r\n this.addPersonToGroupDialogOpen = val;\r\n },\r\n addPersonDialogIsOpen(val){\r\n if(!val){\r\n\r\n this.$emit('dialog-closed');\r\n }\r\n }\r\n },\r\n methods: {\r\n async emitResult(addPersonToGroup: boolean) {\r\n this.addPersonToGroup = addPersonToGroup;\r\n this.$emit('dialog-result', this.addPersonToGroup);\r\n },\r\n dialogClosed() {\r\n this.$emit(\"dialog-closed\");\r\n },\r\n },\r\n });\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddPersonToGroupDialog.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddPersonToGroupDialog.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./AddPersonToGroupDialog.vue?vue&type=template&id=3be77d25\"\nimport script from \"./AddPersonToGroupDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./AddPersonToGroupDialog.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport ParticipantGroupRegistrationRequest from \"@/models/api/participant-group/ParticipantGroupRegisterRequest\";\r\nimport Person from \"@/models/api/person/Person\";\r\nimport PersonRegistrationRequest from \"@/models/api/person/PersonRegistrationRequest\";\r\nimport VuetifyFormMethods from \"@/models/vuetify-form-methods\";\r\nimport { ParticipantService } from \"@/services/ParticipantService\";\r\nimport { PersonService } from '@/services/PersonService';\r\nimport { SnackbarService } from \"@/services/SnackbarService\";\r\nimport Vue from 'vue'\r\nimport { SettingService } from '../../services/SettingService';\r\nimport { ApplicationSetting, AssociationRoleEnum } from '../../models/Enums';\r\nimport ApplicationSettingDto from '../../models/api/ApplicationSetting';\r\nimport adaptSSN from '../../helpers/functions/AdaptSSN';\r\nimport adaptZipCode from '../../helpers/functions/AdaptZipCode';\r\nimport { validateSSNDate, validateDateOfBirth, validateSSN } from '../../helpers/functions/ValidateSSN';\r\nimport validateSSNSetting from '../../helpers/functions/ValidateSSNSetting';\r\nimport { ValidationHelper } from '../../helpers/ValidationHelper';\r\nimport AddPersonToGroupDialog from './AddPersonToGroupDialog.vue';\r\n\r\n\r\n\r\nexport default Vue.extend({\r\n components: {\r\n AddPersonToGroupDialog\r\n },\r\n props: {\r\n showDialog: Boolean,\r\n isOccasionParticipant: {\r\n type: Boolean,\r\n default: false\r\n },\r\n selectedOccasionGroupId: Number,\r\n\r\n //To show addtogroupdialog when arriving from occasion-page\r\n fromOccasion: Boolean,\r\n }, \r\n created() {\r\n this.showMoreFields = false;\r\n\r\n this.addParticipantDialogOpen = this.showDialog;\r\n\r\n SettingService.GetSettingsByKeyNames(\"IsSSNMandatory,FormatOfDateOfBirth\")\r\n .then(response => {\r\n const settings = response.data as ApplicationSettingDto[];\r\n this.isSSNMandatory = JSON.parse(settings[this.getApplicationSetting(settings, ApplicationSetting.IsSSNMandatory)].value.toString().toLowerCase());\r\n this.formatDateOfBirth = settings[this.getApplicationSetting(settings, ApplicationSetting.FormatOfDateOfBirth)].value.toString();\r\n }).catch((error) => {\r\n console.error(error);\r\n }).finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n\r\n },\r\n data() {\r\n return {\r\n addParticipantDialogOpen: false,\r\n \r\n selectedParticipant: {} as Person,\r\n \r\n participantSearchTerm: \"\",\r\n participantSearchTermTimeStamp: new Date(),\r\n\r\n searchedParticipants: new Array(),\r\n isParticipantSearchLoading: false,\r\n \r\n personRequest: new PersonRegistrationRequest(\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", null, null, [], false, false),\r\n participantRequest: new ParticipantGroupRegistrationRequest(0, 0, 0, false, false, false, false),\r\n participantRequestValid: false,\r\n addPersonToGroupDialogOpen: false,\r\n\r\n\r\n showMoreFields: false,\r\n genders: [{ text: this.$vuetify.lang.t('$vuetify.female'), value: 1 }, { text: this.$vuetify.lang.t('$vuetify.male'), value: 2 }],\r\n\r\n isSSNMandatory: false,\r\n formatDateOfBirth: \"\",\r\n rules: {\r\n required: (value: any) => !!value || this.$vuetify.lang.t('$vuetify.required'),\r\n ssnFormat: (value: any) => !value || /^\\d{4}\\d{2}\\d{2}-\\d{4}$/.test(value) || this.$vuetify.lang.t('$vuetify.formatSSN'),\r\n validateSSNDate: (value: any) => validateSSNDate(value) || this.$vuetify.lang.t('$vuetify.person.invalidDate'),\r\n },\r\n phoneRules: [\r\n (v: any) => /^((\\+\\d{1,3}\\s*[0-9]{1,3})|(0[0-9]{1,3}))-*\\s*(\\d{3,4})\\s*(\\d{2,3})\\s*(\\d{1,3})*$/.test(v) || v == null || v == \"\" || this.$vuetify.lang.t('$vuetify.person.invalidPhoneNumber'),\r\n ],\r\n emailRules: [\r\n (value: any) => !value\r\n || /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(value)\r\n || this.$vuetify.lang.t('$vuetify.invalidEmail'),\r\n ],\r\n zipCodeRules: [\r\n (value: any) => !value || /^\\d{3}\\s*\\d{2}$/.test(value) || this.$vuetify.lang.t('$vuetify.invalidZipCode'),\r\n ],\r\n addPersonToGroup: false,\r\n //persons: new Array(),\r\n }\r\n },\r\n watch: {\r\n showDialog: {\r\n handler(newValue) {\r\n this.addParticipantDialogOpen = this.showDialog;\r\n\r\n if (this.showDialog) {\r\n this.resetData();\r\n }\r\n }\r\n },\r\n participantSearchTerm: {\r\n handler(value: string) {\r\n //console.log(value);\r\n\r\n if(value != null && value.length > 0) {\r\n \r\n this.isParticipantSearchLoading = true;\r\n\r\n this.participantSearchTermTimeStamp = new Date();\r\n\r\n const timeStapm = this.participantSearchTermTimeStamp;\r\n\r\n ParticipantService.searchParticipants(value).then(response => {\r\n console.log(response.data);\r\n\r\n if (timeStapm == this.participantSearchTermTimeStamp) {\r\n this.searchedParticipants = response.data.map(x => ({ ...x, nameBlob: x.firstName + \" \" + x.lastName }));\r\n }\r\n }).catch(error => {\r\n console.log(error);\r\n \r\n SnackbarService.addErrorMessage(error);\r\n }).finally(() => {\r\n this.isParticipantSearchLoading = false;\r\n });\r\n } else {\r\n this.searchedParticipants = [];\r\n }\r\n },\r\n },\r\n },\r\n methods: {\r\n getValidationRules(): any[] {\r\n setTimeout(() => (this.$refs.personDialog as VuetifyFormMethods)?.validate());\r\n if (this.isSSNMandatory && !this.personRequest.hasNoSwedishSsn) {\r\n return [this.rules.validateSSNDate, this.validateSSNSettings, this.checkValidSSN, this.rules.required, this.rules.ssnFormat];\r\n }\r\n return [this.rules.validateSSNDate, this.validateSSNSettings, this.checkValidSSN, this.rules.required, this.validDateOfBirth];\r\n },\r\n validDateOfBirth(value: string): string | boolean {\r\n return validateDateOfBirth(value, this.formatDateOfBirth) || this.$vuetify.lang.t('$vuetify.person.invalidDate');\r\n },\r\n /* Not to be used before getPersons() is fixed to not fetch all persons full info and called on created!!!\r\n async getPersons() {\r\n this.persons = (await PersonService.GetPersons()).data;\r\n },\r\n uniqueSocialSecurityNumber(value: string): string | boolean {\r\n // Filter except from the item being edited.\r\n\r\n if (\r\n value &&\r\n this.persons\r\n .filter((x) => x.id != this.personRequest.id)\r\n .findIndex(\r\n (f) =>\r\n f.socialSecurityNumber.trim().toLocaleLowerCase() ==\r\n value.trim().toLocaleLowerCase()\r\n ) > -1\r\n ) {\r\n return false;\r\n //return this.$vuetify.lang.t('$vuetify.person.SSNAlreadyExists') + \" \" + value;\r\n }\r\n\r\n return true;\r\n },*/\r\n checkValidSSN(value: string): string | boolean {\r\n return validateSSN(value) || this.$vuetify.lang.t('$vuetify.invalidSSN');\r\n },\r\n validateSSNSettings(v: any): boolean | string {\r\n return validateSSNSetting(v, this.isSSNMandatory && !this.personRequest.hasNoSwedishSsn, this.formatDateOfBirth) || this.$vuetify.lang.t('$vuetify.invalidSSN');\r\n },\r\n fixSSN() {\r\n this.personRequest.socialSecurityNumber = adaptSSN(this.personRequest.socialSecurityNumber);\r\n },\r\n fixZipCode() {\r\n this.personRequest.zipCode = adaptZipCode(this.personRequest.zipCode);\r\n },\r\n\r\n getApplicationSetting(settings: ApplicationSettingDto[], app: ApplicationSetting) {\r\n return settings.findIndex((val: any) => val.keyName == app);\r\n },\r\n toggleShowMoreFields() {\r\n this.showMoreFields = !this.showMoreFields;\r\n },\r\n validateParticipant() {\r\n if (this.selectedParticipant?.firstName?.length > 0) {\r\n // Person already registered\r\n\r\n this.participantRequest.personId = this.selectedParticipant.id;\r\n this.participantRequest.person = this.selectedParticipant;\r\n this.participantRequest.isDisabled = this.selectedParticipant.isDisabled;\r\n\r\n if (this.selectedParticipant.associationRole == AssociationRoleEnum.AssociationAdmin) {\r\n this.participantRequest.isAssociationAdmin = true;\r\n }\r\n\r\n // We should never automatically add participant as admin\r\n this.participantRequest.isAdmin = false;\r\n\r\n if (this.participantRequest.isDisabled == null) {\r\n // Make sure we have a valid value\r\n this.participantRequest.isDisabled = false;\r\n }\r\n\r\n if (this.participantRequest.isLeader == null) {\r\n // Make sure we have a valid value\r\n this.participantRequest.isLeader = false;\r\n }\r\n\r\n // this.registrationRequest.participants.push(this.participantRequest);\r\n\r\n // this.addParticipantDialogOpen = false;\r\n\r\n // Reset participant request\r\n this.addPersonToGroupDialogOpen = true;\r\n }\r\n else {\r\n if (!(this.$refs.personDialog as VuetifyFormMethods).validate()) {\r\n return;\r\n }\r\n this.addPersonToGroupDialogOpen = true;\r\n }\r\n\r\n },\r\n addParticipant(addPersonToGroup: boolean) {\r\n this.addPersonToGroup = addPersonToGroup;\r\n if (this.selectedParticipant?.firstName?.length > 0) {\r\n // Person already registered\r\n\r\n this.participantRequest.personId = this.selectedParticipant.id;\r\n this.participantRequest.person = this.selectedParticipant;\r\n this.participantRequest.isDisabled = this.selectedParticipant.isDisabled;\r\n\r\n if (this.selectedParticipant.associationRole == AssociationRoleEnum.AssociationAdmin) {\r\n this.participantRequest.isAssociationAdmin = true;\r\n }\r\n\r\n // We should never automatically add participant as admin\r\n this.participantRequest.isAdmin = false;\r\n\r\n if (this.participantRequest.isDisabled == null) {\r\n // Make sure we have a valid value\r\n this.participantRequest.isDisabled = false;\r\n }\r\n\r\n if (this.participantRequest.isLeader == null) {\r\n // Make sure we have a valid value\r\n this.participantRequest.isLeader = false;\r\n }\r\n\r\n // this.registrationRequest.participants.push(this.participantRequest);\r\n\r\n // this.addParticipantDialogOpen = false;\r\n\r\n // Reset participant request\r\n this.addPersonToGroupDialogOpen = false;\r\n\r\n this.emitParticipant();\r\n } else {\r\n // Add new person\r\n\r\n if (!(this.$refs.personDialog as VuetifyFormMethods).validate()) {\r\n return;\r\n }\r\n this.addPersonToGroupDialogOpen = false;\r\n\r\n PersonService.RegisterPerson(this.personRequest, \"\", true).then(response => {\r\n const person = response.data as Person; \r\n\r\n console.log(\"Save person: \", person);\r\n this.participantRequest.personId = person.id;\r\n this.participantRequest.person = person;\r\n this.participantRequest.isDisabled = person.isDisabled;\r\n\r\n // this.registrationRequest.participants.push(this.participantRequest);\r\n \r\n SnackbarService.addSuccessMessage(\"Personen har registrerats\");\r\n // this.addParticipantDialogOpen = false;\r\n this.emitParticipant();\r\n }).catch(error => {\r\n console.log(error);\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n });\r\n }\r\n },\r\n\r\n resetData(): void {\r\n this.selectedParticipant = {} as Person;\r\n this.personRequest = new PersonRegistrationRequest(\"\", \"\", \"\", \"\", \"\", \"\", \"\",\"\", null, null, [], false, false);\r\n this.participantRequest = new ParticipantGroupRegistrationRequest(0, 0, 0, false, false, false, false);\r\n\r\n this.$nextTick(() => { console.log(\"triggered!\"); console.log(this.$refs.personDialog as VuetifyFormMethods); (this.$refs.personDialog as VuetifyFormMethods)?.resetValidation(); });\r\n\r\n },\r\n emitParticipant() {\r\n //Send participant and if said person should be added to the group aswell\r\n this.$emit(\"participant-added\", this.participantRequest, this.addPersonToGroup);\r\n },\r\n dialogClosed() {\r\n (this.$refs.personDialog as VuetifyFormMethods).reset();\r\n // this.resetData();\r\n this.$emit(\"dialog-closed\");\r\n },\r\n }\r\n})\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddParticipantDialog.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddParticipantDialog.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./AddParticipantDialog.vue?vue&type=template&id=27441eaf\"\nimport script from \"./AddParticipantDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./AddParticipantDialog.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{on:{\"click:outside\":function($event){return _vm.dialogClosed()}},model:{value:(_vm.editParticipantDialogOpen),callback:function ($$v) {_vm.editParticipantDialogOpen=$$v},expression:\"editParticipantDialogOpen\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"dark\":\"\",\"color\":\"primary\"}},[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',[_c('v-toolbar-title',[_c('v-toolbar-title',[_c('div',{staticClass:\"d-none d-sm-flex\"},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t(\"$vuetify.person.editPerson\")))]),_c('div',{staticClass:\"d-block d-sm-none\",staticStyle:{\"font-size\":\"small\"}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t(\"$vuetify.person.editPerson\")))])])],1)],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"icon\":\"\",\"dark\":\"\"},on:{\"click\":function($event){return _vm.dialogClosed()}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)],1)],1),_c('v-card-text',[_c('v-container',[_c('v-form',{ref:\"personDialog\",model:{value:(_vm.participantRequestValid),callback:function ($$v) {_vm.participantRequestValid=$$v},expression:\"participantRequestValid\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.firstName'),\"rules\":[(v) => !!v || 'Obligatoriskt']},model:{value:(_vm.personRequest.firstName),callback:function ($$v) {_vm.$set(_vm.personRequest, \"firstName\", $$v)},expression:\"personRequest.firstName\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.lastName'),\"rules\":[(v) => !!v || 'Obligatoriskt']},model:{value:(_vm.personRequest.lastName),callback:function ($$v) {_vm.$set(_vm.personRequest, \"lastName\", $$v)},expression:\"personRequest.lastName\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.isSSNMandatory && !_vm.personRequest.hasNoSwedishSsn ? _vm.$vuetify.lang.t('$vuetify.person.socialSecurityNumber') : _vm.$vuetify.lang.t('$vuetify.person.dateOfBirth'),\"placeholder\":_vm.isSSNMandatory && !_vm.personRequest.hasNoSwedishSsn ? 'ÅÅÅÅMMDD-XXXX' : _vm.formatDateOfBirth,\"rules\":_vm.getValidationRules(),\"maxlength\":13},on:{\"blur\":function($event){return _vm.fixSSN()}},model:{value:(_vm.personRequest.socialSecurityNumber),callback:function ($$v) {_vm.$set(_vm.personRequest, \"socialSecurityNumber\", $$v)},expression:\"personRequest.socialSecurityNumber\"}})],1),(_vm.isSSNMandatory)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"3\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.hasNoSwedishSsn')},model:{value:(_vm.personRequest.hasNoSwedishSsn),callback:function ($$v) {_vm.$set(_vm.personRequest, \"hasNoSwedishSsn\", $$v)},expression:\"personRequest.hasNoSwedishSsn\"}})],1):_vm._e(),((!_vm.isSSNMandatory || _vm.personRequest.hasNoSwedishSsn) && (!_vm.personRequest.socialSecurityNumber || _vm.personRequest.socialSecurityNumber.length < 12))?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":_vm.isSSNMandatory ? 3 : 6}},[_c('v-select',{attrs:{\"items\":_vm.genders,\"label\":_vm.$vuetify.lang.t('$vuetify.person.gender'),\"rules\":[(v) => !!v || 'Obligatoriskt']},model:{value:(_vm.personRequest.genderId),callback:function ($$v) {_vm.$set(_vm.personRequest, \"genderId\", $$v)},expression:\"personRequest.genderId\"}})],1):_vm._e()],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.email'),\"rules\":_vm.emailRules,\"maxlength\":\"150\"},on:{\"change\":function($event){return _vm.changeEmail($event)}},model:{value:(_vm.personRequest.email),callback:function ($$v) {_vm.$set(_vm.personRequest, \"email\", $$v)},expression:\"personRequest.email\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"typ\":\"tel\",\"rules\":_vm.phoneRules,\"label\":_vm.$vuetify.lang.t('$vuetify.person.mobile')},model:{value:(_vm.personRequest.mobile),callback:function ($$v) {_vm.$set(_vm.personRequest, \"mobile\", $$v)},expression:\"personRequest.mobile\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.zipCode'),\"placeholder\":\"123 45\",\"rules\":_vm.zipCodeRules,\"maxlength\":6},on:{\"blur\":function($event){return _vm.fixZipCode()}},model:{value:(_vm.personRequest.zipCode),callback:function ($$v) {_vm.$set(_vm.personRequest, \"zipCode\", $$v)},expression:\"personRequest.zipCode\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.city')},model:{value:(_vm.personRequest.city),callback:function ($$v) {_vm.$set(_vm.personRequest, \"city\", $$v)},expression:\"personRequest.city\"}})],1)],1)],1)],1)],1),_c('v-card-actions',[_c('v-container',[_c('v-alert',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showEmailWillBeUpdatedInformation),expression:\"showEmailWillBeUpdatedInformation\"}],attrs:{\"color\":\"red\",\"dark\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.person.emailWillBeUpdatedInformation'))+\" \")]),_c('v-row',[_c('v-col',[_c('v-btn',{staticClass:\"float-left\",attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.dialogClosed()}}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.cancel')))])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"color\":\"primary\",\"disabled\":!_vm.participantRequestValid},on:{\"click\":function($event){return _vm.saveEdit(_vm.personRequest)}}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.save')))])],1)],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport ParticipantGroupRegistrationRequest from \"@/models/api/participant-group/ParticipantGroupRegisterRequest\";\r\nimport Person from \"@/models/api/person/Person\";\r\nimport PersonRegistrationRequest from \"@/models/api/person/PersonRegistrationRequest\";\r\nimport VuetifyFormMethods from \"@/models/vuetify-form-methods\";\r\nimport { ParticipantService } from \"@/services/ParticipantService\";\r\nimport { PersonService } from '@/services/PersonService';\r\nimport { SnackbarService } from \"@/services/SnackbarService\";\r\nimport Vue from 'vue'\r\nimport { SettingService } from '../../services/SettingService';\r\nimport { ApplicationSetting, AssociationRoleEnum } from '../../models/Enums';\r\nimport ApplicationSettingDto from '../../models/api/ApplicationSetting';\r\nimport adaptSSN from '../../helpers/functions/AdaptSSN';\r\nimport adaptZipCode from '../../helpers/functions/AdaptZipCode';\r\nimport { validateSSNDate, validateDateOfBirth, validateSSN } from '../../helpers/functions/ValidateSSN';\r\nimport validateSSNSetting from '../../helpers/functions/ValidateSSNSetting';\r\nimport { ValidationHelper } from '../../helpers/ValidationHelper';\r\n\r\nexport default Vue.extend({\r\n props: {\r\n showDialog: Boolean,\r\n itemIdToBeEdited: Number \r\n },\r\n created() {\r\n\r\n \r\n this.editParticipantDialogOpen = this.showDialog;\r\n \r\n this.preparePersonEdit(this.itemIdToBeEdited);\r\n\r\n\r\n SettingService.GetSettingsByKeyNames(\"IsSSNMandatory,FormatOfDateOfBirth\")\r\n .then(response => {\r\n const settings = response.data as ApplicationSettingDto[];\r\n this.isSSNMandatory = JSON.parse(settings[this.getApplicationSetting(settings, ApplicationSetting.IsSSNMandatory)].value.toString().toLowerCase());\r\n this.formatDateOfBirth = settings[this.getApplicationSetting(settings, ApplicationSetting.FormatOfDateOfBirth)].value.toString();\r\n }).catch((error) => {\r\n console.error(error);\r\n }).finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n\r\n },\r\n data() {\r\n return {\r\n editParticipantDialogOpen: false, \r\n \r\n personRequest: {} as Person,\r\n participantRequest: new ParticipantGroupRegistrationRequest(0, 0, 0, false, false, false, false),\r\n \r\n participantRequestValid: false,\r\n\r\n oldEmail: \"\",\r\n oldAssociationRole: null as AssociationRoleEnum | null,\r\n showEmailWillBeUpdatedInformation: false,\r\n\r\n \r\n genders: [{ text: this.$vuetify.lang.t('$vuetify.female'), value: 1 }, { text: this.$vuetify.lang.t('$vuetify.male'), value: 2 }],\r\n\r\n isSSNMandatory: false,\r\n formatDateOfBirth: \"\",\r\n rules: {\r\n required: (value: any) => !!value || this.$vuetify.lang.t('$vuetify.required'),\r\n ssnFormat: (value: any) => !value || /^\\d{4}\\d{2}\\d{2}-\\d{4}$/.test(value) || this.$vuetify.lang.t('$vuetify.formatSSN'),\r\n validateSSNDate: (value: any) => validateSSNDate(value) || this.$vuetify.lang.t('$vuetify.person.invalidDate'),\r\n },\r\n phoneRules: [\r\n (v: any) => /^((\\+\\d{1,3}\\s*[0-9]{1,3})|(0[0-9]{1,3}))-*\\s*(\\d{3,4})\\s*(\\d{2,3})\\s*(\\d{1,3})*$/.test(v) || v == null || v == \"\" || this.$vuetify.lang.t('$vuetify.person.invalidPhoneNumber'),\r\n ],\r\n zipCodeRules: [\r\n (value: any) => !value || /^\\d{3}\\s*\\d{2}$/.test(value) || this.$vuetify.lang.t('$vuetify.invalidZipCode'),\r\n ],\r\n emailRules: [\r\n (value: any) => !value\r\n || /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(value)\r\n || this.$vuetify.lang.t('$vuetify.invalidEmail'),\r\n ]\r\n\r\n \r\n }\r\n },\r\n watch: {\r\n showDialog: {\r\n handler(newValue) {\r\n this.editParticipantDialogOpen = this.showDialog;\r\n \r\n if (this.showDialog) {\r\n this.resetData();\r\n }\r\n }\r\n }, \r\n },\r\n methods: {\r\n getValidationRules(): any[] {\r\n setTimeout(() => (this.$refs.personDialog as VuetifyFormMethods)?.validate());\r\n if (this.isSSNMandatory && !this.personRequest.hasNoSwedishSsn) {\r\n return [this.rules.validateSSNDate, this.validateSSNSettings, this.checkValidSSN, this.rules.required, this.rules.ssnFormat];\r\n }\r\n return [this.rules.validateSSNDate, this.validateSSNSettings, this.checkValidSSN, this.rules.required, this.validDateOfBirth];\r\n },\r\n validDateOfBirth(value: string): string | boolean {\r\n return validateDateOfBirth(value, this.formatDateOfBirth) || this.$vuetify.lang.t('$vuetify.person.invalidDate');\r\n },\r\n checkValidSSN(value: string): string | boolean {\r\n return validateSSN(value) || this.$vuetify.lang.t('$vuetify.invalidSSN');\r\n },\r\n validateSSNSettings(v: any): boolean | string {\r\n return validateSSNSetting(v, this.isSSNMandatory && !this.personRequest.hasNoSwedishSsn, this.formatDateOfBirth) || this.$vuetify.lang.t('$vuetify.invalidSSN');\r\n },\r\n fixSSN() {\r\n this.personRequest.socialSecurityNumber = adaptSSN(this.personRequest.socialSecurityNumber);\r\n },\r\n fixZipCode() {\r\n this.personRequest.zipCode = adaptZipCode(this.personRequest.zipCode);\r\n },\r\n\r\n getApplicationSetting(settings: ApplicationSettingDto[], app: ApplicationSetting) {\r\n return settings.findIndex((val: any) => val.keyName == app);\r\n }, \r\n\r\n changeEmail(newEmail: any) {\r\n \r\n if ((this.oldAssociationRole == AssociationRoleEnum.AssociationAdmin || this.oldAssociationRole == AssociationRoleEnum.AssociationGroupAdmin) && this.oldEmail != \"\" && this.oldEmail != newEmail) {\r\n this.showEmailWillBeUpdatedInformation = true;\r\n }\r\n else {\r\n this.showEmailWillBeUpdatedInformation = false;\r\n }\r\n },\r\n\r\n preparePersonEdit(itemId: number): void {\r\n \r\n // Keeps row in datatable the same, whilst updating the values.\r\n this.$store.commit('addOverlay');\r\n PersonService.GetPerson(itemId).then(response => {\r\n this.personRequest = response.data;\r\n this.oldEmail = this.personRequest.email;\r\n this.oldAssociationRole = this.personRequest.associationRole;\r\n this.showEmailWillBeUpdatedInformation = false;\r\n\r\n }).catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n })\r\n .finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n\r\n },\r\n\r\n saveEdit() {\r\n\r\n if (!(this.$refs.personDialog as VuetifyFormMethods).validate()) {\r\n return;\r\n }\r\n\r\n PersonService.EditPerson(this.personRequest, \"\").then((result) => { \r\n \r\n this.participantRequest.personId = this.personRequest.id;\r\n this.participantRequest.person = this.personRequest;\r\n\r\n SnackbarService.addSuccessMessage(result?.data);\r\n\r\n this.emitParticipant();\r\n // this.$emit(\"dialog-closed\");\r\n\r\n }).catch(error => {\r\n \r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n });\r\n \r\n },\r\n resetData(): void {\r\n this.personRequest = {} as Person;\r\n this.participantRequest = new ParticipantGroupRegistrationRequest(0, 0, 0, false, false, false, false);\r\n if (this.$refs.personDialog) {\r\n (this.$refs.personDialog as VuetifyFormMethods).resetValidation();\r\n }\r\n\r\n },\r\n \r\n emitParticipant() {\r\n this.$emit(\"participant-updated\", this.participantRequest);\r\n },\r\n dialogClosed() {\r\n (this.$refs.personDialog as VuetifyFormMethods).reset();\r\n // this.resetData();\r\n this.$emit(\"dialog-closed\");\r\n },\r\n }\r\n})\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditParticipantDialog.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditParticipantDialog.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./EditParticipantDialog.vue?vue&type=template&id=5c81f24e\"\nimport script from \"./EditParticipantDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./EditParticipantDialog.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n import Vue from \"vue\";\r\n import { PersonService } from \"@/services/PersonService\";\r\n import { GroupService } from \"@/services/GroupService\";\r\n import GroupRegistrationRequest from \"@/models/api/group/GroupRegistrationRequest\";\r\n import VuetifyFormMethods from \"@/models/vuetify-form-methods\";\r\n import { AxiosError } from \"axios\";\r\n import { SnackbarService } from \"@/services/SnackbarService\";\r\n import DeleteDialog from '@/components/dialogs/DeleteDialog.vue';\r\n import AddParticipantDialog from \"@/components/dialogs/AddParticipantDialog.vue\";\r\n import EditParticipantDialog from \"@/components/dialogs/EditParticipantDialog.vue\";\r\n import Group, { GroupList } from \"@/models/api/group/Group\";\r\n import { ActivityService } from \"@/services/ActivityService\";\r\n import Activity from \"@/models/api/activity/Activity\";\r\n import AssociationActivity from \"@/models/api/association/AssociationActivity\";\r\n import ParticipantGroupRegistrationRequest from \"@/models/api/participant-group/ParticipantGroupRegisterRequest\";\r\n import { ParticipantService } from \"@/services/ParticipantService\";\r\n import Person from \"@/models/api/person/Person\";\r\n import PersonRegistrationRequest from \"@/models/api/person/PersonRegistrationRequest\";\r\n import { DataTableHelper } from '../../helpers/DataTableHelper';\r\n import { mapGetters } from 'vuex';\r\n import IsDirtyHandler from '@/components/ui/IsDirtyHandler';\r\nimport { AssociationRoleEnum } from '../../models/Enums';\r\n\r\n export default IsDirtyHandler.extend({\r\n components: {\r\n DeleteDialog,\r\n AddParticipantDialog,\r\n EditParticipantDialog,\r\n },\r\n data() {\r\n return {\r\n pageHeader: \"Grupper\",\r\n groups: new Array(),\r\n activities: new Array(),\r\n\r\n groupTableHeaders: [\r\n { text: \"name\", value: \"name\" },\r\n { text: \"activity.activity\", value: \"activityName\" },\r\n { text: \"group.participants\", value: \"numberOfParticipants\" },\r\n { text: \"group.leaders\", value: \"numberOfLeaders\" },\r\n { text: \"\", sortable: false, align: \"end\", value: \"actions\" },\r\n ],\r\n isTableLoading: false,\r\n\r\n participantGroupTableHeaders: [\r\n {\r\n text: \"\", sortable: false, align: 'center', value: \"added\",\r\n width: '1%',\r\n class: 'slimDataTableColumnPaddingLeft',\r\n cellClass: 'slimDataTableColumnPaddingLeft',\r\n },\r\n { text: \"person.firstName\", value: \"person.firstName\" },\r\n { text: \"person.lastName\", value: \"person.lastName\" },\r\n { text: \"person.socialSecurityNumber\", value: \"person.socialSecurityNumber\" },\r\n {\r\n text: \"group.isDisabledShort\",\r\n value: \"isDisabled\",\r\n //width: '1%',\r\n class: 'slimDataTableColumnPaddingLeft',\r\n cellClass: 'slimDataTableColumnPaddingLeft',\r\n align: 'center',\r\n },\r\n {\r\n text: \"group.isLeader\",\r\n value: \"isLeader\",\r\n //width: '1%',\r\n class: 'slimDataTableColumnPaddingLeft',\r\n cellClass: 'slimDataTableColumnPaddingLeft',\r\n align: 'center',\r\n },\r\n {\r\n text: \"group.isAdmin\",\r\n value: \"isAdmin\",\r\n //width: '1%',\r\n class: 'slimDataTableColumnPaddingLeft',\r\n cellClass: 'slimDataTableColumnPaddingLeft',\r\n align: 'center',\r\n },\r\n {\r\n text: \"\",\r\n sortable: false,\r\n align: 'end',\r\n value: \"actions\"\r\n },\r\n ],\r\n isTableLoadingParticipantGroup: false,\r\n\r\n\r\n addPersonsTableHeaders: [\r\n { text: \"person.firstName\", value: \"firstName\" },\r\n { text: \"person.lastName\", value: \"lastName\" },\r\n { text: \"person.socialSecurityNumber\", value: \"socialSecurityNumber\" },\r\n ],\r\n isTableLoadingAddPersons: false,\r\n dialogOpenAddPersons: false,\r\n\r\n itemsAddPersons: [] as Person[],\r\n selectedAddPersons: [] as Person[],\r\n selectedGroupAddPersons: null as number | null,\r\n\r\n\r\n // Dialogs\r\n dialogOpen: false,\r\n addParticipantDialogOpen: false,\r\n\r\n registrationRequest: new GroupRegistrationRequest(\"\", -1, -1, [], \"\"),\r\n groupFormValid: false,\r\n\r\n showDeleteDialog: false,\r\n itemToDeleteId: \"\",\r\n itemToDeleteName: \"\",\r\n\r\n showDeleteDialogParticipant: false,\r\n itemToDeleteIdParticipant: \"\",\r\n itemToDeleteNameParticipant: \"\",\r\n\r\n editParticipantDialogOpen: false, \r\n itemIdToBeEdited: null,\r\n\r\n windowWidth: 650,\r\n };\r\n },\r\n created() {\r\n window.addEventListener('resize', this.resize);\r\n DataTableHelper.adaptTableHeaders(this.participantGroupTableHeaders, this);\r\n DataTableHelper.adaptTableHeaders(this.groupTableHeaders, this);\r\n DataTableHelper.adaptTableHeaders(this.addPersonsTableHeaders, this);\r\n this.getGroups();\r\n this.getActivities();\r\n this.resize();\r\n },\r\n watch: {\r\n dialogOpen: {\r\n handler(open: boolean) {\r\n if (!open) {\r\n (this.$refs.groupForm as VuetifyFormMethods).reset();\r\n }\r\n },\r\n },\r\n editDialogOpen: {\r\n handler(open: boolean) {\r\n if (!open) {\r\n (this.$refs.editForm as VuetifyFormMethods).reset();\r\n }\r\n },\r\n },\r\n // Is dirty handling for group edit\r\n registrationRequest: {\r\n handler(change: any) {\r\n this.isDirtyChangeTracker(change);\r\n },\r\n deep: true,\r\n }\r\n },\r\n computed: {\r\n computedParticipantGroupTableHeaders(): any {\r\n return this.participantGroupTableHeaders.filter((h: any) => !h.hide || !(this as any).$vuetify.breakpoint[h.hide]);\r\n },\r\n ...mapGetters([\r\n \"isSystemAdmin\",\r\n \"isMunicipalityAdmin\",\r\n \"isAssociationUser_Admin\",\r\n \"isAssociationUser_GroupAdmin\",\r\n ]),\r\n \r\n },\r\n methods: {\r\n resize() {\r\n this.windowWidth = window.innerWidth;\r\n //console.log(\"Width: \" + this.windowWidth);\r\n },\r\n closeDialog() {\r\n if (this.isDirtyCheck()) {\r\n this.dialogOpen = false;\r\n this.registrationRequest = new GroupRegistrationRequest('', -1, -1, [], \"\");\r\n }\r\n },\r\n removeParticipant(id: number) {\r\n this.showDeleteDialogParticipant = false;\r\n if (id != null) {\r\n const index = this.registrationRequest.participantGroups.findIndex(x => x.id == id);\r\n\r\n this.registrationRequest.participantGroups.splice(index, 1);\r\n }\r\n },\r\n addParticipant(participant: ParticipantGroupRegistrationRequest) {\r\n //console.log(\"adding participant\", participant);\r\n\r\n if (this.registrationRequest.participantGroups.some((s: ParticipantGroupRegistrationRequest) => s.personId == participant.personId)) {\r\n SnackbarService.addErrorMessage(\r\n \"Personen finns redan som medlem!\"\r\n );\r\n } else {\r\n this.registrationRequest.participantGroups.push(participant);\r\n this.addParticipantDialogOpen = false;\r\n }\r\n },\r\n updatedParticipant(participant: ParticipantGroupRegistrationRequest){\r\n\r\n console.log(this.registrationRequest.participantGroups);\r\n console.log(participant);\r\n\r\n if (this.registrationRequest.participantGroups.some((s: ParticipantGroupRegistrationRequest) => s.personId == participant.personId)) {\r\n\r\n const isDirty = this.getIsDirty();\r\n\r\n const index = this.registrationRequest.participantGroups.findIndex(x => x.personId == participant.personId);\r\n \r\n const pers = this.registrationRequest.participantGroups[index].person;\r\n\r\n if (pers != null) { \r\n\r\n var hasChanged = false;\r\n\r\n if (pers.firstName != participant.person?.firstName) {\r\n hasChanged = true;\r\n pers.firstName = participant.person?.firstName ?? \"\";\r\n }\r\n\r\n if (pers.lastName != participant.person?.lastName) {\r\n hasChanged = true;\r\n pers.lastName = participant.person?.lastName ?? \"\";\r\n }\r\n\r\n if (pers.email != participant.person?.email) {\r\n hasChanged = true;\r\n pers.email = participant.person?.email ?? \"\";\r\n }\r\n\r\n if (hasChanged && !isDirty) {\r\n this.$nextTick(() => { this.isDirtyReset(); }); \r\n }\r\n }\r\n\r\n this.editParticipantDialogOpen = false; \r\n \r\n }\r\n },\r\n\r\n getParticipant(person: Person): ParticipantGroupRegistrationRequest {\r\n const participant = new ParticipantGroupRegistrationRequest(0, person.id, 0, person.isDisabled, false, false, person.associationRole == AssociationRoleEnum.AssociationAdmin ? true : false);\r\n\r\n participant.person = person;\r\n\r\n return participant;\r\n },\r\n addPersons(): void {\r\n //console.log(\"selectedAddPersons\");\r\n //console.log(this.selectedAddPersons);\r\n\r\n\r\n const participantGroups = this.selectedAddPersons.map((s: Person) => this.getParticipant(s));\r\n\r\n participantGroups.forEach((participant: ParticipantGroupRegistrationRequest) => {\r\n if (this.registrationRequest.participantGroups.some((s: ParticipantGroupRegistrationRequest) => s.personId == participant.personId)) {\r\n SnackbarService.addErrorMessage(\r\n \"Personen \" + participant.person?.firstName + \" \" + participant.person?.lastName + \" finns redan som medlem!\"\r\n );\r\n } else {\r\n this.registrationRequest.participantGroups.push(participant);\r\n }\r\n });\r\n\r\n this.dialogOpenAddPersons = false;\r\n },\r\n isInGroup(personId: number): boolean {\r\n return this.registrationRequest.participantGroups.some(s => s.personId == personId);\r\n },\r\n getPersons() {\r\n this.isTableLoadingAddPersons = true;\r\n PersonService.GetPersonsForAddToGroup(this.selectedGroupAddPersons).then(response => {\r\n this.selectedAddPersons = [] as Person[];\r\n this.itemsAddPersons = response.data;\r\n\r\n this.itemsAddPersons.forEach((s: any) => s.isSelectable = !this.isInGroup(s.id));\r\n\r\n }).catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n })\r\n .finally(() => {\r\n this.isTableLoadingAddPersons = false;\r\n });\r\n },\r\n\r\n prepareAddPersons(): void {\r\n this.selectedAddPersons = [] as Person[];\r\n this.selectedGroupAddPersons = null;\r\n this.dialogOpenAddPersons = true;\r\n this.getPersons();\r\n },\r\n prepareGroupEdit(item: Group): void {\r\n // Use object assign in order to separate the modified item with existing item.\r\n // Keeps row in datatable the same, whilst updating the values.\r\n this.$store.commit('addOverlay');\r\n \r\n GroupService.GetGroup(item.id).then(response => {\r\n this.registrationRequest = response.data;\r\n this.resize();\r\n }).catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n })\r\n .finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n \r\n },\r\n async saveGroup(request: Group) {\r\n request.confirmEmailUrl = window.location.href.substr(0, window.location.href.lastIndexOf(\"#\") + 1) + \"/confirmUser\";\r\n\r\n GroupService.EditGroup(request).then(\r\n (result) => {\r\n console.log(result);\r\n let showSuccess = true;\r\n\r\n if (Array.isArray(result.data.informations) && result.data.informations.length) {\r\n result.data.informations.forEach((message: string) => SnackbarService.addWarningMessage(\r\n message));\r\n showSuccess = false;\r\n }\r\n\r\n if (Array.isArray(result.data.errors) && result.data.errors.length) {\r\n result.data.errors.each((message: string) => SnackbarService.addErrorMessage(\r\n message));\r\n } else {\r\n this.registrationRequest = new GroupRegistrationRequest(\"\", -1, -1, [], \"\");\r\n\r\n this.getGroups();\r\n this.dialogOpen = false;\r\n\r\n if (showSuccess) {\r\n SnackbarService.addSuccessMessage(result?.data.message);\r\n }\r\n }\r\n },\r\n (error: AxiosError) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n }\r\n );\r\n },\r\n async removeGroup(id: number) {\r\n this.showDeleteDialog = false;\r\n\r\n if (id != null) {\r\n GroupService.RemoveGroup(id).then(\r\n (result) => {\r\n SnackbarService.addSuccessMessage(result?.data);\r\n\r\n console.log(result);\r\n this.getGroups();\r\n },\r\n (error: AxiosError) => {\r\n console.log(error);\r\n\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n }\r\n );\r\n }\r\n },\r\n async editGroup(itemToUpdate: Group) {\r\n itemToUpdate.confirmEmailUrl = window.location.href.substr(0, window.location.href.lastIndexOf(\"#\") + 1) + \"/confirmUser\";\r\n\r\n GroupService.EditGroup(itemToUpdate).then(\r\n (result) => {\r\n console.log(result);\r\n let showSuccess = true;\r\n\r\n if (Array.isArray(result.data.informations) && result.data.informations.length) {\r\n result.data.informations.forEach((message: string) => SnackbarService.addWarningMessage(\r\n message));\r\n showSuccess = false;\r\n }\r\n\r\n if (Array.isArray(result.data.errors) && result.data.errors.length) {\r\n result.data.errors.each((message: string) => SnackbarService.addErrorMessage(\r\n message));\r\n } else {\r\n this.registrationRequest = new GroupRegistrationRequest(\"\", -1, -1, [], \"\");\r\n\r\n this.getGroups();\r\n this.dialogOpen = false;\r\n\r\n if (showSuccess) {\r\n SnackbarService.addSuccessMessage(result?.data.message);\r\n }\r\n }\r\n },\r\n (error: AxiosError) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n }\r\n );\r\n },\r\n async getGroups() {\r\n this.isTableLoading = true;\r\n\r\n this.groups = (await GroupService.GetGroups()).data;\r\n\r\n this.isTableLoading = false;\r\n },\r\n getActivities() {\r\n ActivityService.GetAssociationActivities().then(\r\n (result) => {\r\n this.activities = result.data;\r\n\r\n //console.log(this.activities);\r\n \r\n },\r\n (error: AxiosError) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n }\r\n );\r\n },\r\n // rules\r\n uniqueGroupName(name: string): string | boolean {\r\n // Filter new name except from the item being edited.\r\n if (this.registrationRequest?.name &&\r\n this.groups\r\n .filter((x) => x.id != this.registrationRequest.id)\r\n .some((f) => {\r\n //console.log(f);\r\n //console.log(name);\r\n return f.name.trim().toLocaleLowerCase() ==\r\n this.registrationRequest.name.trim().toLocaleLowerCase();\r\n })\r\n ) {\r\n // return `Det finns redan en förening med namnet: ${name}`;\r\n return this.$vuetify.lang.t('$vuetify.group.nameAlreadyExists') + \" \" + name;\r\n }\r\n\r\n return true;\r\n },\r\n \r\n },\r\n });\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=df6a6720\"\nimport script from \"./Index.vue?vue&type=script&lang=ts\"\nexport * from \"./Index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',[_c('h1',{staticClass:\"mb-3 text-center\"},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.user.changePassword')))]),_c('v-dialog',{attrs:{\"transition\":\"dialog-bottom-transition\",\"max-width\":\"600\"},model:{value:(_vm.showDialog),callback:function ($$v) {_vm.showDialog=$$v},expression:\"showDialog\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"color\":\"primary\",\"dark\":\"\"}},[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',[_c('v-toolbar-title',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.information')))])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"icon\":\"\",\"dark\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.close')},on:{\"click\":function($event){return _vm.resetForm()}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)],1)],1),_c('v-card-text',{staticClass:\"pb-0 mb-0 pt-2 text-center\"},[_c('v-container',{staticClass:\"text-h6\"},[_vm._v(\" \"+_vm._s(_vm.dialogMessage)+\" \")])],1),_c('v-card-actions',[_c('v-container',[_c('v-row',[_c('v-col',{staticClass:\"text-center\"},[_c('v-btn',{on:{\"click\":function($event){return _vm.resetForm()}}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.ok')))])],1)],1)],1)],1)],1)],1),_c('v-snackbar',{attrs:{\"color\":\"red\",\"timeout\":-1},scopedSlots:_vm._u([{key:\"action\",fn:function({ attrs }){return [_c('v-btn',_vm._b({attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.showErrors = false}}},'v-btn',attrs,false),[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.close'))+\" \")])]}}]),model:{value:(_vm.showErrors),callback:function ($$v) {_vm.showErrors=$$v},expression:\"showErrors\"}},_vm._l((_vm.errors),function(error){return _c('v-row',{key:error},[_c('v-col',[_vm._v(_vm._s(error))])],1)}),1),_c('v-container',[_c('v-form',{ref:\"form\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('v-text-field',{attrs:{\"append-icon\":_vm.showPassword ? 'mdi-eye' : 'mdi-eye-off',\"required\":\"\",\"type\":_vm.showPassword ? 'text' : 'password',\"name\":\"oldPassword\",\"placeholder\":\" \",\"persistent-placeholder\":\"\",\"label\":_vm.$vuetify.lang.t('$vuetify.user.oldPassword')},on:{\"click:append\":function($event){_vm.showPassword = !_vm.showPassword}},model:{value:(_vm.oldPassword),callback:function ($$v) {_vm.oldPassword=$$v},expression:\"oldPassword\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('v-text-field',{attrs:{\"append-icon\":_vm.showPassword ? 'mdi-eye' : 'mdi-eye-off',\"required\":\"\",\"type\":_vm.showPassword ? 'text' : 'password',\"rules\":[_vm.required, _vm.matchingPasswords],\"name\":\"password\",\"placeholder\":\" \",\"persistent-placeholder\":\"\",\"label\":_vm.$vuetify.lang.t('$vuetify.confirmUser.newPassword')},on:{\"click:append\":function($event){_vm.showPassword = !_vm.showPassword}},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('v-text-field',{attrs:{\"append-icon\":_vm.showPassword ? 'mdi-eye' : 'mdi-eye-off',\"required\":\"\",\"type\":_vm.showPassword ? 'text' : 'password',\"rules\":[_vm.matchingPasswords],\"name\":\"password\",\"placeholder\":\" \",\"persistent-placeholder\":\"\",\"label\":_vm.$vuetify.lang.t('$vuetify.confirmUser.repeatNewPassword')},on:{\"click:append\":function($event){_vm.showPassword = !_vm.showPassword}},model:{value:(_vm.passwordRepeat),callback:function ($$v) {_vm.passwordRepeat=$$v},expression:\"passwordRepeat\"}})],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"type\":\"submit\",\"disabled\":!_vm.isValid}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.change'))+\" \")])],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import Vue from 'vue';\r\n\r\n import { UserService }from '@/services/UserService'\r\n\r\n export default Vue.extend({\r\n data() {\r\n return {\r\n isValid: true,\r\n showDialog: false,\r\n dialogMessage: \"\",\r\n showErrors: false,\r\n hasPassword: false,\r\n errors: [\"\"],\r\n loading: false,\r\n post: null,\r\n emailConfirmationToken: \"\",\r\n passwordResetToken: \"\",\r\n oldPassword: \"\",\r\n password: \"\",\r\n passwordRepeat: \"\",\r\n globalPassword: \"\",\r\n showPassword: false,\r\n }\r\n },\r\n async created() {\r\n },\r\n methods: {\r\n resetForm(): void {\r\n this.showDialog = false;\r\n this.oldPassword = \"\";\r\n this.password = \"\";\r\n this.passwordRepeat = \"\";\r\n\r\n },\r\n required(v: string): boolean | string {\r\n return !!v || this.$vuetify.lang.t('$vuetify.required')\r\n },\r\n matchingPasswords(v: string): boolean | string {\r\n if (v === this.globalPassword) {\r\n return true;\r\n } else {\r\n return this.$vuetify.lang.t('$vuetify.confirmUser.passwordDoesNotMatch');\r\n }\r\n },\r\n async submit() {\r\n this.$store.commit('addOverlay');\r\n UserService.ChangePassword({ oldPassword: this.oldPassword, password: this.password })\r\n .then(() => {\r\n this.dialogMessage = \"\";\r\n this.dialogMessage += this.$vuetify.lang.t('$vuetify.user.passwordChanged') + \" \";\r\n\r\n this.showDialog = true;\r\n }).catch((error) => {\r\n if (error.response.data.errors) {\r\n this.errors = error.response.data.errors;\r\n } else {\r\n this.errors = [this.$vuetify.lang.t('$vuetify.generalErrorMessage')];\r\n }\r\n this.showErrors = true;\r\n }).finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n }\r\n },\r\n watch: {\r\n password() {\r\n this.globalPassword = this.password;\r\n (this.$refs.form as Vue & { validate: () => boolean }).validate();\r\n },\r\n },\r\n });\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=581670e7\"\nimport script from \"./Index.vue?vue&type=script&lang=ts\"\nexport * from \"./Index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-expand-transition',[_c('v-sheet',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showTabs),expression:\"showTabs\"}],attrs:{\"elevation\":\"4\"}},[_c('v-tabs',{attrs:{\"centered\":\"\",\"background-color\":\"primary\",\"color\":\"white\",\"dark\":\"\",\"grow\":_vm.$vuetify.breakpoint.xs}},[_c('v-tab',{attrs:{\"to\":\"/association\"}},[_vm._v(\" \"+_vm._s(!_vm.isAssociationUser_GroupAdmin ? _vm.$vuetify.lang.t('$vuetify.association.association') : _vm.$vuetify.lang.t('$vuetify.group.groups'))+\" \")]),_c('v-tab',{attrs:{\"to\":\"/association/occasions\"}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.attendance')))])],1)],1)],1),_c('router-view')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { store } from '@/stores/Store';\r\nimport Vue from 'vue';\r\nimport { TabService } from \"@/services/TabService\"\r\nimport { mapGetters } from 'vuex';\r\n\r\nexport default Vue.extend({\r\n methods: {\r\n toggleTabs(): void {\r\n if (this.showTabs as boolean) {\r\n TabService.hideTabs();\r\n } else {\r\n TabService.showTabs();\r\n }\r\n\r\n console.log(`Is tabs visible: ${TabService.isTabsVisible()}`);\r\n }\r\n },\r\n computed: {\r\n showTabs: () => {\r\n return store.getters.showTabs;\r\n },\r\n ...mapGetters([\r\n \"isSystemAdmin\",\r\n \"isMunicipalityAdmin\",\r\n \"isAssociationUser_Admin\",\r\n \"isAssociationUser_GroupAdmin\"\r\n ])\r\n }\r\n})\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./association.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./association.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./association.vue?vue&type=template&id=7c6567a8\"\nimport script from \"./association.vue?vue&type=script&lang=ts\"\nexport * from \"./association.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',[_c('h1',{staticClass:\"mb-3 text-center\"},[_vm._v(\" \"+_vm._s(!_vm.isAssociationUser_GroupAdmin ? _vm.$vuetify.lang.t('$vuetify.association.administrateAssociation') : _vm.$vuetify.lang.t('$vuetify.association.administrateGroups'))+\" \")]),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-card',{attrs:{\"elevation\":\"4\",\"to\":\"association/groups\"}},[_c('v-card-title',[_c('v-avatar',{attrs:{\"color\":\"grey lighten-2\"}},[_c('v-icon',[_vm._v(\"mdi-account-group\")])],1),_c('span',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.group.groups')))])],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[(!_vm.isAssociationUser_GroupAdmin)?_c('v-card',{attrs:{\"elevation\":\"4\",\"to\":\"association/persons\"}},[_c('v-card-title',[_c('v-avatar',{attrs:{\"color\":\"grey lighten-2\"}},[_c('v-icon',[_vm._v(\"mdi-account-details\")])],1),_c('span',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.person.persons')))])],1)],1):_vm._e()],1),(_vm.isSystemAdmin || _vm.isMunicipalityAdmin || _vm.isAssociationUser_Admin)?_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('v-card',{attrs:{\"elevation\":\"4\",\"to\":\"association/report\"}},[_c('v-card-title',[_c('v-avatar',{attrs:{\"color\":\"grey lighten-2\"}},[_c('v-icon',[_vm._v(\"mdi-chart-bar-stacked\")])],1),_c('span',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.batch.statisticsAndExport')))])],1)],1)],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport { store } from \"@/stores/Store\";\r\nimport { TabService } from \"@/services/TabService\"\r\nimport { mapGetters } from \"vuex\";\r\n\r\nexport default Vue.extend({\r\n created: () => {\r\n console.log(\"created\");\r\n },\r\n methods: {\r\n toggleTabs(): void {\r\n if (this.showTabs as boolean) {\r\n TabService.hideTabs();\r\n } else {\r\n TabService.showTabs();\r\n }\r\n\r\n console.log(`Is tabs visible: ${TabService.isTabsVisible()}`);\r\n }\r\n },\r\n watch: {\r\n },\r\n computed: {\r\n showTabs: () => {\r\n return store.getters.showTabs;\r\n\r\n\r\n },\r\n ...mapGetters([\r\n \"isSystemAdmin\",\r\n \"isMunicipalityAdmin\",\r\n \"isAssociationUser_Admin\",\r\n \"isAssociationUser_GroupAdmin\"\r\n ]),\r\n }\r\n})\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./association-admin-home.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./association-admin-home.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./association-admin-home.vue?vue&type=template&id=2ddf5eab\"\nimport script from \"./association-admin-home.vue?vue&type=script&lang=ts\"\nexport * from \"./association-admin-home.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',{staticClass:\"float-left\",attrs:{\"cols\":\"1\"}},[_c('a',{staticClass:\"text-decoration-none text-body-1\",on:{\"click\":function($event){return _vm.$router.go(-1)}}},[_c('v-icon',{attrs:{\"title\":_vm.$vuetify.lang.t('$vuetify.back')}},[_vm._v(\"mdi-arrow-left\")])],1)]),_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('h1',{staticClass:\"mb-3 text-center\"},[_vm._v(_vm._s(_vm.pageHeader))])])],1),_c('delete-dialog',{attrs:{\"showDialog\":_vm.showDelete,\"itemToDeleteName\":_vm.itemToDeleteName,\"itemToDeleteId\":_vm.itemToDeleteId},on:{\"dialogResult\":_vm.deleteCallback}}),_c('v-dialog',{attrs:{\"transition\":\"dialog-bottom-transition\",\"max-width\":\"600\"},model:{value:(_vm.showMessage),callback:function ($$v) {_vm.showMessage=$$v},expression:\"showMessage\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"color\":\"primary\",\"dark\":\"\"}},[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',[_c('v-toolbar-title',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.information')))])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"icon\":\"\",\"dark\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.close')},on:{\"click\":function($event){_vm.showMessage = false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)],1)],1),_c('v-card-text',{staticClass:\"pb-0 mb-0 pt-2 text-center\"},[_c('v-container',[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.message'))+\": \"+_vm._s(_vm.message)+\" \")])],1),_c('v-card-actions',[_c('v-container',[_c('v-row',[_c('v-col',{staticClass:\"d-flex justify-center\"},[_c('v-btn',{on:{\"click\":function($event){_vm.showMessage = false}}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.ok')))])],1)],1)],1)],1)],1)],1),_c('v-container',[_c('v-row',{staticClass:\"justify-end\"},[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('v-select',{attrs:{\"items\":_vm.contributionPeriods,\"label\":_vm.$vuetify.lang.t('$vuetify.contributionPeriod.contributionPeriod')},model:{value:(_vm.selectedContributionPeriod),callback:function ($$v) {_vm.selectedContributionPeriod=$$v},expression:\"selectedContributionPeriod\"}})],1)],1)],1),(_vm.periodStats.periodName)?_c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.contributionPeriod.contributionPeriod'))+\":\")]),_vm._v(\"  \"),_c('span',[_vm._v(_vm._s(_vm.periodStats.periodName))])]),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.from'))+\":\")]),_vm._v(\"  \"),_c('span',[_vm._v(_vm._s(_vm.periodStats.periodStartDateText))])]),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.to'))+\":\")]),_vm._v(\"  \"),_c('span',[_vm._v(_vm._s(_vm.periodStats.periodEndDateText))])])],1)],1):_vm._e(),(_vm.periodStats.periodName)?_c('v-container',[_c('v-data-table',{staticClass:\"elevation-2\",attrs:{\"headers\":_vm.tableHeadersStats,\"items\":_vm.periodStats.groups,\"dense\":true,\"loading\":_vm.isTableLoadingStats,\"disable-pagination\":\"\",\"items-per-page\":-1,\"hide-default-footer\":\"\"},on:{\"update:items\":function($event){return _vm.$set(_vm.periodStats, \"groups\", $event)}}})],1):_vm._e(),(_vm.periodStats.periodName && _vm.canExportFile())?_c('v-container',[_c('v-row',{staticClass:\"justify-end\"},[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.batch.exportGroups'))+\":\")]),_vm._v(\"  \"),_c('span',[_vm._v(_vm._s(_vm.periodStats.numberOfGroups))])]),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.batch.exportOccasions'))+\":\")]),_vm._v(\"  \"),_c('span',[_vm._v(_vm._s(_vm.periodStats.numberOfOccasions))])]),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.contributionPeriod.lastRegistrationDate'))+\":\")]),_vm._v(\"  \"),_c('span',[_vm._v(_vm._s(_vm.periodStats.lastRegistrationDateText))])]),(_vm.periodStats.hasExportFile)?_c('v-col',{staticStyle:{\"color\":\"orange\"},attrs:{\"cols\":\"12\",\"md\":\"6\"}},[(_vm.periodStats.isExportFileLocked)?_c('div',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.batch.existingExportFileIsLocked')))]):_c('div',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.batch.existingExportFileWillBeReplaced')))])]):_vm._e(),_c('v-col',{staticClass:\"text-end\",attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-btn',{attrs:{\"disabled\":_vm.disableAddBatchJobButton || _vm.periodStats.numberOfGroups == 0 || _vm.selectedContributionPeriod <= 0 || _vm.periodStats.isExportFileLocked},on:{\"click\":function($event){return _vm.generateExportFile()}}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.batch.generateExportFileFor') + ' ' + _vm.periodStats.periodName))])],1)],1)],1):_c('v-container',[_c('v-row',{staticClass:\"justify-end\"},[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"8\"}}),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.contributionPeriod.lastRegistrationDate'))+\":\")]),_vm._v(\"  \"),_c('span',[_vm._v(_vm._s(_vm.periodStats.lastRegistrationDateText))])])],1)],1),_c('v-container',[_c('h2',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.batch.exportFiles')))]),_c('v-data-table',{staticClass:\"elevation-2\",class:{'mb-15': _vm.$vuetify.breakpoint.xs},attrs:{\"headers\":_vm.tableHeaders,\"items\":_vm.items,\"items-per-page\":10,\"dense\":true,\"mobile-breakpoint\":780},on:{\"update:items\":function($event){_vm.items=$event}},scopedSlots:_vm._u([{key:`header.downloaded`,fn:function({ header }){return [_c('span',{attrs:{\"title\":_vm.$vuetify.lang.t('$vuetify.downloaded')}},[_vm._v(_vm._s(header.text))])]}},{key:`header.fetched`,fn:function({ header }){return [_c('span',{attrs:{\"title\":_vm.$vuetify.lang.t('$vuetify.fetchedByContributionSystem')}},[_vm._v(_vm._s(header.text))])]}},{key:\"item.batchState\",fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.batch.' + _vm.getBatchStateName(item.batchState)))+\" \")]}},{key:\"item.downloaded\",fn:function({ item }){return [(item.downloaded)?_c('v-icon',{attrs:{\"title\":_vm.$vuetify.lang.t('$vuetify.downloaded') + (item.downloaded ? ' ' + item.downloaded : '')}},[_vm._v(\"mdi-check\")]):_vm._e()]}},{key:\"item.fetched\",fn:function({ item }){return [(item.fetched)?_c('v-icon',{attrs:{\"title\":_vm.$vuetify.lang.t('$vuetify.fetched') + (item.fetched ? ' ' + item.fetched : '')}},[_vm._v(\"mdi-check\")]):_vm._e()]}},{key:\"batchState\",fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.batch.' + _vm.getBatchStateName(item.batchState)))+\" \")]}},{key:`item.actions`,fn:function({ item }){return [(_vm.isBusy(item))?_c('div',{staticClass:\"text-right\"},[_c('v-progress-circular',{staticClass:\"mr-3\",attrs:{\"indeterminate\":\"\",\"color\":\"primary\",\"width\":1,\"size\":15}})],1):_c('div',{staticClass:\"text-right\"},[(item.message)?_c('v-btn',{attrs:{\"icon\":\"\",\"title\":item.message},on:{\"click\":function($event){_vm.message = item.message; _vm.showMessage = true;}}},[_c('v-icon',{attrs:{\"color\":\"red\"}},[_vm._v(\"mdi-alert\")])],1):_vm._e(),(item.fileName)?_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.download') + ' ' + item.fileName},on:{\"click\":function($event){return _vm.getExportFile(item.id)}}},[_c('v-icon',[_vm._v(\"mdi-file-download\")])],1):_vm._e(),_c('v-btn',{attrs:{\"icon\":\"\",\"disabled\":(item.fetched && !(_vm.isMunicipalityAdmin || _vm.isSystemAdmin)) == true,\"title\":_vm.$vuetify.lang.t('$vuetify.delete')},on:{\"click\":function($event){return _vm.deleteBatch(item)}}},[_c('v-icon',[_vm._v(\"mdi-delete\")])],1)],1)]}}],null,true)},[_vm._v(\" :loading=\\\"isTableLoading\\\"> \")])],1),_c('v-container',{staticClass:\"caption\"},[_c('div',[_vm._v(\" NL: \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.downloaded'))+\" \")]),_c('div',[_vm._v(\" H: \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.fetchedByContributionSystem'))+\" \")])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { AxiosResponse } from \"axios\";\r\n\r\nexport default function downloadDocument(response: AxiosResponse): void {\r\n // Try to get the filename from the response header\r\n const filename = getFilename(response);\r\n\r\n // Download file\r\n const fileBlob = new Blob([response.data]);\r\n\r\n const url = window.URL.createObjectURL(fileBlob);\r\n const link = document.createElement(\"a\");\r\n link.href = url;\r\n\r\n link.setAttribute(\"download\", filename);\r\n document.body.appendChild(link);\r\n link.click();\r\n}\r\n\r\n\r\nfunction getFilename(response: AxiosResponse): string {\r\n let filename = null as string | null;\r\n\r\n try {\r\n const disposition = response.request.getResponseHeader(\"Content-Disposition\");\r\n console.log(disposition);\r\n filename = disposition.split(\"filename=\")[1].split(\";\")[0];\r\n console.log(filename);\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n\r\n // Check and create new filename if no name found in header\r\n if (filename == null) {\r\n filename = \"attachment\"; // We do not know what the file should have as extension\r\n }\r\n\r\n return decodeURIComponent(filename.replace(/\"+/g, \"\")) as string; // Return filname after removing \" chars if exists\r\n}","import axios, { AxiosResponse } from \"axios\";\r\nimport downloadDocument from \"@/helpers/functions/DownloadDocument\";\r\nimport PeriodStats, { PeriodFileFlags } from '../models/api/association/PeriodStats';\r\nclass Service {\r\n\r\n \r\n public async GetPeriodFileFlags(contributionPeriodId: number): Promise> {\r\n return axios.get(`api/BatchExportFile/GetPeriodFileFlags/?contributionPeriodId=${contributionPeriodId}`);\r\n }\r\n\r\n public async GetPeriodStats(contributionPeriodId: number): Promise> {\r\n return axios.get(`api/BatchExportFile/GetPeriodStats/?contributionPeriodId=${contributionPeriodId}`);\r\n }\r\n\r\n public async AddBatchJob(periodId: number): Promise> {\r\n return axios.get(`api/BatchExportFile/AddBatchJob/?periodId=${periodId}`);\r\n }\r\n\r\n public async GetBatchJobsByIds(idsString: string): Promise> {\r\n return axios.get(`api/BatchExportFile/GetBatchJobsByIds?idsString=${idsString}`);\r\n }\r\n\r\n public async GetBatchJobsPaged(data: any): Promise> {\r\n return axios.post('api/BatchExportFile/GetBatchJobsPaged', data);\r\n }\r\n\r\n public async GetFile(batchId: number): Promise {\r\n await axios.get(`api/BatchExportFile/GetFile/?batchId=${batchId}`).then(response => {\r\n console.log(response);\r\n downloadDocument(response);\r\n });\r\n return;\r\n }\r\n\r\n public async DeleteBatchJob(id: number): Promise> {\r\n return axios.delete(`api/BatchExportFile/${id}`);\r\n }\r\n}\r\n\r\nexport const BatchExportFileService: Service = new Service();\r\n","\r\n import Vue from 'vue';\r\n import { BatchExportFileService } from \"@/services/BatchExportFileService\"\r\n import { ContributionPeriodService } from \"@/services/ContributionPeriodService\"\r\n import { SnackbarService } from \"@/services/SnackbarService\";\r\n import SelectListItem from '../../models/SelectListItem';\r\n import BatchExportFileDisplay from '../../models/api/association/ExportFileDisplay';\r\n import { DataTableHelper } from '../../helpers/DataTableHelper';\r\n import { BatchStates } from '../../models/Enums';\r\n import DeleteDialog from '@/components/dialogs/DeleteDialog.vue';\r\n import PeriodStats from '../../models/api/association/PeriodStats';\r\n import { mapGetters } from 'vuex';\r\n\r\n export default Vue.extend({\r\n components: {\r\n DeleteDialog\r\n },\r\n data() {\r\n return {\r\n contributionPeriods: [] as SelectListItem[],\r\n contributionPeriodsRegistration: [] as SelectListItem[],\r\n selectedContributionPeriod: -1,\r\n pageHeader: this.$vuetify.lang.t('$vuetify.batch.statisticsAndExport'),\r\n totalCount: 0,\r\n items: [] as BatchExportFileDisplay[],\r\n isTableLoading: true,\r\n options: {},\r\n tableHeaders: [\r\n {\r\n text: 'id',\r\n sortable: false,\r\n value: 'id',\r\n },\r\n {\r\n text: 'contributionPeriod.contributionPeriod',\r\n sortable: false,\r\n value: 'contributionPeriodName'\r\n },\r\n {\r\n text: 'created',\r\n sortable: false,\r\n value: 'created',\r\n },\r\n {\r\n text: 'group.groups',\r\n sortable: false,\r\n value: 'numberOfGroups',\r\n },\r\n {\r\n text: 'occasion.occasions',\r\n sortable: false,\r\n value: 'numberOfOccasions',\r\n },\r\n {\r\n text: 'occasion.participants',\r\n sortable: false,\r\n value: 'numberOfParticipants',\r\n },\r\n {\r\n text: 'occasion.leaders',\r\n sortable: false,\r\n value: 'numberOfLeaders',\r\n },\r\n {\r\n text: ':NL',\r\n sortable: false,\r\n align: 'center',\r\n value: 'downloaded',\r\n },\r\n {\r\n text: ':H',\r\n sortable: false,\r\n align: 'center',\r\n value: 'fetched',\r\n },\r\n {\r\n text: 'batch.batchState',\r\n sortable: false,\r\n value: 'batchState',\r\n },\r\n {\r\n text: '',\r\n sortable: false,\r\n value: 'actions'\r\n },\r\n ],\r\n // Delete dialog\r\n showDelete: false,\r\n itemToDeleteId: \"\",\r\n itemToDeleteName: \"\",\r\n\r\n disableAddBatchJobButton: false,\r\n\r\n periodStats: {} as PeriodStats,\r\n totalCountStats: 0,\r\n isTableLoadingStats: true,\r\n tableHeadersStats: [\r\n {\r\n text: 'group.groupName',\r\n sortable: false,\r\n value: 'name',\r\n },\r\n {\r\n text: 'occasion.confirmed',\r\n sortable: false,\r\n value: 'numberOfConfirmedOccasions'\r\n },\r\n {\r\n text: 'occasion.unconfirmed',\r\n sortable: false,\r\n value: 'numberOfUnconfirmedOccasions'\r\n },\r\n {\r\n text: 'occasion.coming',\r\n sortable: false,\r\n value: 'numberOfComingOccasions'\r\n },\r\n ],\r\n\r\n showMessage: false,\r\n message: \"\",\r\n }\r\n },\r\n created() {\r\n DataTableHelper.adaptTableHeaders(this.tableHeaders, this);\r\n DataTableHelper.adaptTableHeaders(this.tableHeadersStats, this);\r\n this.getItemsPaged();\r\n this.$store.commit('addOverlay');\r\n ContributionPeriodService.GetSelectListItems().then(response => {\r\n this.contributionPeriods = response.data;\r\n if (this.contributionPeriods.length > 0) {\r\n this.selectedContributionPeriod = this.contributionPeriods[0].value as number;\r\n this.getPeriodInformation();\r\n }\r\n }).catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n })\r\n .finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n ContributionPeriodService.GetRegistrationSelectListItems().then(response => {\r\n this.contributionPeriodsRegistration = response.data;\r\n }).catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n })\r\n .finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n this.timerGetWorkingBatches();\r\n },\r\n watch: {\r\n options: {\r\n handler() {\r\n this.getItemsPaged();\r\n },\r\n deep: true,\r\n },\r\n selectedContributionPeriod: {\r\n handler() {\r\n this.getPeriodInformation();\r\n }\r\n },\r\n items: {\r\n handler() {\r\n this.disableAddBatchJobButton = this.items.some((s: BatchExportFileDisplay) => s.batchState == BatchStates.Pending || s.batchState == BatchStates.Running);\r\n },\r\n deep: true,\r\n },\r\n },\r\n computed: {\r\n ...mapGetters([\r\n \"isSystemAdmin\",\r\n \"isMunicipalityAdmin\",\r\n ]),\r\n },\r\n methods: {\r\n canExportFile(): boolean {\r\n if (!this.selectedContributionPeriod) {\r\n return false;\r\n }\r\n return this.contributionPeriodsRegistration.some(s => typeof s.value == 'string' ? s.value == this.selectedContributionPeriod.toString() : s.value as number == this.selectedContributionPeriod);\r\n },\r\n async getPeriodFileFlags() {\r\n if (this.selectedContributionPeriod) {\r\n BatchExportFileService.GetPeriodFileFlags(this.selectedContributionPeriod).then(response => {\r\n this.periodStats.hasExportFile = response.data.hasExportFile;\r\n this.periodStats.isExportFileLocked = response.data.isExportFileLocked;\r\n }).catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n })\r\n .finally(() => {\r\n });\r\n }\r\n },\r\n async getPeriodInformation() {\r\n if (this.selectedContributionPeriod) {\r\n this.isTableLoadingStats = true;\r\n this.$store.commit('addOverlay');\r\n BatchExportFileService.GetPeriodStats(this.selectedContributionPeriod).then(response => {\r\n this.periodStats = response.data;\r\n }).catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n })\r\n .finally(() => {\r\n this.isTableLoadingStats = false;\r\n this.$store.commit('removeOverlay');\r\n });\r\n } else {\r\n this.periodStats = {} as PeriodStats;\r\n }\r\n },\r\n async deleteBatch(item: BatchExportFileDisplay) {\r\n this.itemToDeleteId = item.id.toString();\r\n this.itemToDeleteName = item.contributionPeriodName;\r\n this.showDelete = true;\r\n },\r\n async deleteCallback(itemToDeleteId: string) {\r\n this.showDelete = false;\r\n if (itemToDeleteId) {\r\n this.$store.commit('addOverlay');\r\n BatchExportFileService.DeleteBatchJob(parseInt(itemToDeleteId)).then(() => {\r\n this.getItemsPaged();\r\n // Some updates might have affected periods flags\r\n this.getPeriodFileFlags();\r\n })\r\n .catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n })\r\n .finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n }\r\n },\r\n isBusy(item: BatchExportFileDisplay): Boolean {\r\n return item.batchState == BatchStates.Pending || item.batchState == BatchStates.Running;\r\n },\r\n getBatchStateName(val: BatchStates) {\r\n return BatchStates[val];\r\n },\r\n updateItemsByIds(idsString: string): void {\r\n BatchExportFileService.GetBatchJobsByIds(idsString).then(response => {\r\n const fetchedItems = response.data;\r\n fetchedItems.forEach((s: BatchExportFileDisplay) => this.items.filter((t: BatchExportFileDisplay) => t.id == s.id).forEach((t: BatchExportFileDisplay) => {\r\n t.modified = s.modified;\r\n t.batchState = s.batchState;\r\n t.fileName = s.fileName;\r\n t.numberOfGroups = s.numberOfGroups;\r\n t.numberOfOccasions = s.numberOfOccasions;\r\n t.numberOfParticipants = s.numberOfParticipants;\r\n t.numberOfLeaders = s.numberOfLeaders;\r\n t.fetched = s.fetched;\r\n t.downloaded = s.downloaded;\r\n t.message = s.message;\r\n }));\r\n // Some updates might have affected periods flags\r\n this.getPeriodFileFlags();\r\n }).catch((error) => {\r\n console.error(error);\r\n }).finally(() => {\r\n setTimeout(() => {\r\n this.timerGetWorkingBatches();\r\n }, 2000);\r\n });\r\n },\r\n timerGetWorkingBatches(): void {\r\n const idsString = this.items.filter((s: BatchExportFileDisplay) => s.batchState == BatchStates.Pending || s.batchState == BatchStates.Running).map((s: BatchExportFileDisplay) => s.id.toString()).join(\",\");\r\n if (idsString) {\r\n this.updateItemsByIds(idsString);\r\n } else {\r\n setTimeout(() => {\r\n this.timerGetWorkingBatches();\r\n }, 5000);\r\n }\r\n },\r\n getItemsPaged(): void {\r\n this.isTableLoading = true;\r\n const sortBy = (this.options as any).sortBy ?? [];\r\n const sortDesc = (this.options as any).sortDesc ?? [];\r\n const page = (this.options as any).page ?? 1;\r\n const itemsPerPage = (this.options as any).itemsPerPage ?? 10;\r\n const data = { sortBy: sortBy, sortDesc: sortDesc, page: page, itemsPerPage: itemsPerPage };\r\n BatchExportFileService.GetBatchJobsPaged(data).then(response => {\r\n this.totalCount = response.data.totalCount;\r\n this.items = response.data.items;\r\n }).catch((error) => {\r\n console.error(error);\r\n }).finally(() => {\r\n this.isTableLoading = false;\r\n });\r\n },\r\n async getExportFile(batchId: number) {\r\n this.$store.commit('addOverlay');\r\n await BatchExportFileService.GetFile(batchId);\r\n this.updateItemsByIds(batchId.toString());\r\n this.$store.commit('removeOverlay');\r\n },\r\n generateExportFile(): void {\r\n this.$store.commit('addOverlay');\r\n BatchExportFileService.AddBatchJob(this.selectedContributionPeriod).then(result => {\r\n this.getItemsPaged();\r\n // Some updates might have affected periods flags\r\n this.getPeriodFileFlags();\r\n })\r\n .catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n })\r\n .finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n }\r\n },\r\n })\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./association-admin-report.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./association-admin-report.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./association-admin-report.vue?vue&type=template&id=75d06405\"\nimport script from \"./association-admin-report.vue?vue&type=script&lang=ts\"\nexport * from \"./association-admin-report.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',[(_vm.confirmDialogOpen && !(_vm.addParticipantDialogOpen || _vm.editPersonDialogOpen))?_c('v-snackbar',{attrs:{\"timeout\":-1,\"value\":true,\"color\":\"primary\",\"width\":\"100%\",\"outlined\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"px-1 font-weight-bold\",attrs:{\"cols\":_vm.ongoingSaves >= 0 ? 4 : 6}},[_c('span',{staticClass:\"d-none d-sm-inline\"},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.numberOfParticipants'))+\": \")]),_c('span',{staticClass:\"d-inline d-sm-none\"},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.participants'))+\": \")]),_c('span',[_vm._v(_vm._s(_vm.sumParticipants()))])]),_c('v-col',{staticClass:\"px-1 font-weight-bold\",attrs:{\"cols\":_vm.ongoingSaves >= 0 ? 4 : 6}},[_c('span',{staticClass:\"d-none d-sm-inline\"},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.numberOfLeaders'))+\": \")]),_c('span',{staticClass:\"d-inline d-sm-none\"},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.leaders'))+\": \")]),_c('span',[_vm._v(_vm._s(_vm.sumLeaders()))])]),(_vm.ongoingSaves >= 0)?_c('v-col',{staticClass:\"px-1 font-weight-bold\",attrs:{\"cols\":\"4\"}},[(_vm.ongoingSaves > 0)?_c('span',{staticStyle:{\"color\":\"darkorange\"}},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"size\":15,\"width\":3,\"color\":\"orange\"}}),_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.saving'))+\" \")],1):_vm._e(),(_vm.ongoingSaves == 0)?_c('span',{staticClass:\"d-none d-sm-inline\",staticStyle:{\"color\":\"forestgreen\"}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.savedChanges')))]):_vm._e(),(_vm.ongoingSaves == 0)?_c('span',{staticClass:\"d-inline d-sm-none\",staticStyle:{\"color\":\"forestgreen\"}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.saved')))]):_vm._e()]):_vm._e()],1)],1):_vm._e(),_c('h1',{staticClass:\"mb-3 text-center\"},[_vm._v(_vm._s(_vm.pageHeader))]),_c('h2',{staticClass:\"my-4 v-tab align-left\",staticStyle:{\"min-width\":\"100%\",\"justify-content\":\"center\"}},[_c('span',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.unconfirmed')))]),_vm._v(\" \"),_c('span',{staticClass:\"d-none d-sm-block\"},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.occasions').toLowerCase()))])]),_c('v-data-table',{staticClass:\"elevation-2\",class:{'mb-15': _vm.$vuetify.breakpoint.xs},staticStyle:{\"background-color\":\"#ffeeee\"},attrs:{\"headers\":_vm.tableHeaders,\"items\":_vm.itemsUnconfirmed,\"items-per-page\":10,\"server-items-length\":_vm.totalCountUnconfirmed,\"dense\":true,\"color\":\"red\",\"options\":_vm.optionsUnconfirmed,\"loading\":_vm.isTableLoadingUnconfirmed},on:{\"update:items\":function($event){_vm.itemsUnconfirmed=$event},\"update:options\":function($event){_vm.optionsUnconfirmed=$event}},scopedSlots:_vm._u([{key:`item`,fn:function({ item, isMobile }){return [(!isMobile)?_c('tr',[_c('td',[_c('span',[_vm._v(_vm._s(item.dayOfWeekText))]),_vm._v(\" \"),_c('span',{staticStyle:{\"white-space\":\"nowrap\"}},[_vm._v(_vm._s(item.dateText))])]),_c('td',[_vm._v(\" \"+_vm._s(item.timeFrom)+\" - \"+_vm._s(item.timeTo)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(item.location)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(item.groupName)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(item.activityName)+\" \")]),_c('td',[_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.occasion.registerAttendance')},on:{\"click\":function($event){return _vm.prepareOccasionConfirm(item);}}},[_c('v-icon',[_vm._v(\"mdi-account-edit\")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.edit')},on:{\"click\":function($event){return _vm.prepareOccasionEdit(item);}}},[_c('v-icon',[_vm._v(\"mdi-pencil\")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.delete')},on:{\"click\":function($event){_vm.showDeleteDialog = true; _vm.itemToDeleteId = item.id + ''; _vm.itemToDeleteName = item.name}}},[_c('v-icon',[_vm._v(\"mdi-delete\")])],1)],1)]):_vm._e(),(isMobile)?_c('tr',{attrs:{\"title\":_vm.$vuetify.lang.t('$vuetify.occasion.registerAttendance')},on:{\"click\":function($event){return _vm.prepareOccasionConfirm(item);}}},[_c('td',{staticStyle:{\"vertical-align\":\"top\"}},[_c('div',{staticClass:\"body-1 font-weight-bold\"},[_c('span',[_vm._v(_vm._s(item.dayOfWeekText))]),_c('br'),_c('span',{staticStyle:{\"white-space\":\"nowrap\"}},[_vm._v(_vm._s(item.dateText))])])]),_c('td',{staticStyle:{\"width\":\"100%\",\"vertical-align\":\"top\"}},[_c('div',{staticClass:\"body-1 font-weight-bold\"},[_vm._v(_vm._s(item.groupName))]),_c('div',{staticClass:\"body-2\"},[_vm._v(_vm._s(item.activityName))]),_c('div',{},[_vm._v(_vm._s(item.timeFrom)+\" - \"+_vm._s(item.timeTo))]),_c('div',{},[_vm._v(_vm._s(item.location))])]),_c('td',{staticStyle:{\"vertical-align\":\"top\"}},[_c('v-menu',{attrs:{\"offset-y\":\"\",\"width\":\"64px\",\"rounded\":\"lg\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"large\":\"\"}},[_vm._v(\"mdi-dots-horizontal\")])],1)]}}],null,true)},[_c('v-list',[_c('v-list-item',[_c('v-list-item-title',[_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.occasion.registerAttendance')},on:{\"click\":[function($event){$event.stopPropagation();},function($event){return _vm.prepareOccasionConfirm(item);}]}},[_c('v-icon',[_vm._v(\"mdi-account-edit\")])],1)],1)],1),_c('v-list-item',[_c('v-list-item-title',[_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.edit')},on:{\"click\":[function($event){$event.stopPropagation();},function($event){return _vm.prepareOccasionEdit(item);}]}},[_c('v-icon',[_vm._v(\"mdi-pencil\")])],1)],1)],1),_c('v-list-item',[_c('v-list-item-title',[_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.delete')},on:{\"click\":[function($event){$event.stopPropagation();},function($event){_vm.showDeleteDialog = true; _vm.itemToDeleteId = item.id + ''; _vm.itemToDeleteName = item.name}]}},[_c('v-icon',[_vm._v(\"mdi-delete\")])],1)],1)],1)],1)],1)],1)]):_vm._e()]}}],null,true)}),_c('v-tabs',{staticClass:\"mt-4\",attrs:{\"grow\":\"\",\"centered\":\"\"},model:{value:(_vm.occasionsTab),callback:function ($$v) {_vm.occasionsTab=$$v},expression:\"occasionsTab\"}},[_c('v-tab',{key:1},[_c('span',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.coming')))]),_vm._v(\" \"),_c('span',{staticClass:\"d-none d-sm-block\"},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.occasions').toLowerCase()))])]),_c('v-tab',{key:2},[_c('span',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.confirmed')))]),_vm._v(\" \"),_c('span',{staticClass:\"d-none d-sm-block\"},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.occasions').toLowerCase()))])])],1),_c('v-tabs-items',{model:{value:(_vm.occasionsTab),callback:function ($$v) {_vm.occasionsTab=$$v},expression:\"occasionsTab\"}},[_c('v-tab-item',{key:1},[_c('v-data-table',{staticClass:\"elevation-2 mt-4\",class:{'mb-15': _vm.$vuetify.breakpoint.xs},attrs:{\"headers\":_vm.tableHeaders,\"items\":_vm.itemsComing,\"items-per-page\":10,\"server-items-length\":_vm.totalCountComing,\"dense\":true,\"options\":_vm.optionsComing,\"loading\":_vm.isTableLoadingComing},on:{\"update:items\":function($event){_vm.itemsComing=$event},\"update:options\":function($event){_vm.optionsComing=$event}},scopedSlots:_vm._u([{key:`item`,fn:function({ item, isMobile }){return [(!isMobile)?_c('tr',[_c('td',[_c('span',[_vm._v(_vm._s(item.dayOfWeekText))]),_vm._v(\" \"),_c('span',{staticStyle:{\"white-space\":\"nowrap\"}},[_vm._v(_vm._s(item.dateText))])]),_c('td',[_vm._v(\" \"+_vm._s(item.timeFrom)+\" - \"+_vm._s(item.timeTo)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(item.location)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(item.groupName)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(item.activityName)+\" \")]),_c('td',[_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.edit')},on:{\"click\":[function($event){$event.stopPropagation();},function($event){return _vm.prepareOccasionEdit(item);}]}},[_c('v-icon',[_vm._v(\"mdi-pencil\")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.delete')},on:{\"click\":[function($event){$event.stopPropagation();},function($event){return _vm.prepareDeleteFollowingDialog(item)}]}},[_c('v-icon',[_vm._v(\"mdi-delete\")])],1)],1)]):_vm._e(),(isMobile)?_c('tr',{attrs:{\"title\":_vm.$vuetify.lang.t('$vuetify.occasion.editOccasion')},on:{\"click\":function($event){return _vm.prepareOccasionEdit(item);}}},[_c('td',{staticStyle:{\"vertical-align\":\"top\"}},[_c('div',{staticClass:\"body-1 font-weight-bold\"},[_c('span',[_vm._v(_vm._s(item.dayOfWeekText))]),_c('br'),_c('span',{staticStyle:{\"white-space\":\"nowrap\"}},[_vm._v(_vm._s(item.dateText))])])]),_c('td',{staticStyle:{\"width\":\"100%\",\"vertical-align\":\"top\"}},[_c('div',{staticClass:\"body-1 font-weight-bold\"},[_vm._v(_vm._s(item.groupName))]),_c('div',{staticClass:\"body-2\"},[_vm._v(_vm._s(item.activityName))]),_c('div',{},[_vm._v(_vm._s(item.timeFrom)+\" - \"+_vm._s(item.timeTo))]),_c('div',{},[_vm._v(_vm._s(item.location))])]),_c('td',{staticStyle:{\"vertical-align\":\"top\"}},[_c('v-menu',{attrs:{\"offset-y\":\"\",\"width\":\"64px\",\"rounded\":\"lg\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"large\":\"\"}},[_vm._v(\"mdi-dots-horizontal\")])],1)]}}],null,true)},[_c('v-list',[_c('v-list-item',[_c('v-list-item-title',[_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.edit')},on:{\"click\":[function($event){$event.stopPropagation();},function($event){return _vm.prepareOccasionEdit(item);}]}},[_c('v-icon',[_vm._v(\"mdi-pencil\")])],1)],1)],1),_c('v-list-item',[_c('v-list-item-title',[_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.delete')},on:{\"click\":[function($event){$event.stopPropagation();},function($event){_vm.showDeleteDialog = true; _vm.itemToDeleteId = item.id + ''; _vm.itemToDeleteName = item.name}]}},[_c('v-icon',[_vm._v(\"mdi-delete\")])],1)],1)],1)],1)],1)],1)]):_vm._e()]}}],null,true)})],1),_c('v-tab-item',{key:2},[_c('v-data-table',{staticClass:\"elevation-2 mt-4\",class:{'mb-15': _vm.$vuetify.breakpoint.xs},attrs:{\"headers\":_vm.tableHeadersConfirmed,\"items\":_vm.itemsConfirmed,\"items-per-page\":10,\"server-items-length\":_vm.totalCountConfirmed,\"dense\":true,\"options\":_vm.optionsConfirmed,\"loading\":_vm.isTableLoadingConfirmed},on:{\"update:items\":function($event){_vm.itemsConfirmed=$event},\"update:options\":function($event){_vm.optionsConfirmed=$event}},scopedSlots:_vm._u([{key:`item`,fn:function({ item, isMobile }){return [(!isMobile)?_c('tr',[_c('td',[_c('span',[_vm._v(_vm._s(item.dayOfWeekText))]),_vm._v(\" \"),_c('span',{staticStyle:{\"white-space\":\"nowrap\"}},[_vm._v(_vm._s(item.dateText))])]),_c('td',[_vm._v(\" \"+_vm._s(item.timeFrom)+\" - \"+_vm._s(item.timeTo)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(item.location)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(item.groupName)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(item.activityName)+\" \")]),_c('td',{attrs:{\"title\":_vm.$vuetify.lang.t('$vuetify.occasion.participants') + ' ' + item.numberOfParticipants + ' / ' + _vm.$vuetify.lang.t('$vuetify.occasion.leaders') + ' ' + item.numberOfLeaders}},[_vm._v(\" \"+_vm._s(item.numberOfParticipants)+\" / \"+_vm._s(item.numberOfLeaders)+\" \")]),_c('td',[_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.occasion.unconfirmParticipants')},on:{\"click\":function($event){return _vm.prepareOccasionConfirm(item);}}},[_c('v-icon',[_vm._v(\"mdi-account-edit\")])],1)],1)]):_vm._e(),(isMobile)?_c('tr',{attrs:{\"title\":_vm.$vuetify.lang.t('$vuetify.occasion.registerAttendance')},on:{\"click\":function($event){return _vm.prepareOccasionConfirm(item);}}},[_c('td',{staticStyle:{\"vertical-align\":\"top\"}},[_c('div',{staticClass:\"body-1 font-weight-bold\"},[_c('span',[_vm._v(_vm._s(item.dayOfWeekText))]),_c('br'),_c('span',{staticStyle:{\"white-space\":\"nowrap\"}},[_vm._v(_vm._s(item.dateText))])])]),_c('td',{staticStyle:{\"width\":\"100%\",\"vertical-align\":\"top\"}},[_c('div',{staticClass:\"body-1 font-weight-bold\"},[_vm._v(_vm._s(item.groupName))]),_c('div',{staticClass:\"body-2\"},[_vm._v(_vm._s(item.activityName))]),_c('div',{},[_vm._v(_vm._s(item.timeFrom)+\" - \"+_vm._s(item.timeTo))]),_c('div',{},[_vm._v(_vm._s(item.location))]),_c('div',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.participants') + ': ' + item.numberOfParticipants))]),_c('div',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.leaders') + ': ' + item.numberOfLeaders))])]),_c('td',{staticStyle:{\"vertical-align\":\"top\"}},[_c('v-menu',{attrs:{\"offset-y\":\"\",\"width\":\"64px\",\"rounded\":\"lg\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"large\":\"\"}},[_vm._v(\"mdi-dots-horizontal\")])],1)]}}],null,true)},[_c('v-list',[_c('v-list-item',[_c('v-list-item-title',[_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.occasion.unconfirmParticipants')},on:{\"click\":[function($event){$event.stopPropagation();},function($event){return _vm.prepareOccasionConfirm(item);}]}},[_c('v-icon',[_vm._v(\"mdi-account-edit\")])],1)],1)],1)],1)],1)],1)]):_vm._e()]}}],null,true)})],1)],1),_c('v-dialog',{attrs:{\"persistent\":\"\"},model:{value:(_vm.editDialogOpen),callback:function ($$v) {_vm.editDialogOpen=$$v},expression:\"editDialogOpen\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"dark\":\"\",\"color\":\"primary\"}},[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',[_c('v-toolbar-title',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.editOccasion')))])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"icon\":\"\",\"dark\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.cancel')},on:{\"click\":function($event){return _vm.closeEdit()}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)],1)],1),_c('v-container',[_c('v-form',{ref:\"editForm\"},[_c('v-card-text',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('label',{attrs:{\"for\":\"editGroupName\"}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.group.groupName')))]),_c('br'),_c('input',{staticClass:\"v-input\",attrs:{\"disabled\":\"\",\"id\":\"editGroupName\",\"name\":\"editGroupName\"},domProps:{\"value\":_vm.getEditGroupName()}})])],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-select',{attrs:{\"items\":_vm.occasionTypes,\"rules\":[_vm.rules.required],\"label\":_vm.$vuetify.lang.t('$vuetify.occasion.occasionType')},model:{value:(_vm.editOccasionRequest.occasionType),callback:function ($$v) {_vm.$set(_vm.editOccasionRequest, \"occasionType\", $$v)},expression:\"editOccasionRequest.occasionType\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-select',{attrs:{\"items\":_vm.activities,\"item-text\":\"name\",\"item-value\":\"id\",\"rules\":[_vm.rules.required],\"label\":_vm.$vuetify.lang.t('$vuetify.activity.activityName')},model:{value:(_vm.editOccasionRequest.associationActivityId),callback:function ($$v) {_vm.$set(_vm.editOccasionRequest, \"associationActivityId\", $$v)},expression:\"editOccasionRequest.associationActivityId\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-combobox',{ref:\"locationEditCombobox\",attrs:{\"rules\":[_vm.rules.required],\"no-filter\":\"\",\"items\":_vm.locations,\"search-input\":_vm.searchLocation,\"label\":_vm.$vuetify.lang.t('$vuetify.occasion.location')},on:{\"update:searchInput\":function($event){_vm.searchLocation=$event},\"update:search-input\":function($event){_vm.searchLocation=$event}},model:{value:(_vm.editOccasionRequest.location),callback:function ($$v) {_vm.$set(_vm.editOccasionRequest, \"location\", $$v)},expression:\"editOccasionRequest.location\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.date'),\"type\":\"date\",\"max\":\"9999-12-31\",\"rules\":[_vm.rules.required]},model:{value:(_vm.editOccasionRequest.date),callback:function ($$v) {_vm.$set(_vm.editOccasionRequest, \"date\", $$v)},expression:\"editOccasionRequest.date\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.timeFrom'),\"type\":\"time\",\"step\":\"900\",\"rules\":[_vm.rules.required]},model:{value:(_vm.editOccasionRequest.timeFrom),callback:function ($$v) {_vm.$set(_vm.editOccasionRequest, \"timeFrom\", $$v)},expression:\"editOccasionRequest.timeFrom\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.timeTo'),\"type\":\"time\",\"step\":\"900\",\"rules\":[_vm.rules.required, _vm.timeToEditRule]},model:{value:(_vm.editOccasionRequest.timeTo),callback:function ($$v) {_vm.$set(_vm.editOccasionRequest, \"timeTo\", $$v)},expression:\"editOccasionRequest.timeTo\"}})],1)],1),_c('v-row',[_c('v-col',[(_vm.editOccasionRequest.isRecurring)?_c('v-expansion-panels',[_c('v-expansion-panel',[_c('v-expansion-panel-header',[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.occasionsInSeries'))+\" \")]),_c('v-expansion-panel-content',[_vm._l((_vm.editOccasionRecurringOccasions.passed),function(item){return _c('v-row',{key:item.value},[_c('v-col',{staticStyle:{\"color\":\"lightgray\"}},[(item.value == _vm.editOccasionRequest.id)?_c('span',{staticClass:\"font-weight-bold\",staticStyle:{\"color\":\"black\"}},[_vm._v(\" \"+_vm._s(item.text)+\" \")]):_c('span',[_vm._v(\" \"+_vm._s(item.text)+\" \")])])],1)}),_vm._l((_vm.editOccasionRecurringOccasions.future),function(item){return _c('v-row',{key:item.value},[_c('v-col',{staticStyle:{\"color\":\"gray\"}},[(item.value == _vm.editOccasionRequest.id)?_c('span',{staticClass:\"font-weight-bold\",staticStyle:{\"color\":\"black\"}},[_vm._v(\" \"+_vm._s(item.text)+\" \")]):_c('span',[_vm._v(\" \"+_vm._s(item.text)+\" \")])])],1)})],2)],1)],1):_vm._e()],1)],1)],1),_c('v-card-actions',[_c('v-row',[_c('v-col',[_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.closeEdit()}}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.cancel'))+\" \")])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"type\":\"submit\"},on:{\"click\":function($event){return _vm.saveOccasion()}}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.save'))+\" \")])],1)],1)],1)],1)],1)],1)],1),_c('v-dialog',{key:_vm.dialogKey,attrs:{\"fullscreen\":\"\",\"persistent\":\"\",\"no-click-animation\":\"\"},model:{value:(_vm.confirmDialogOpen),callback:function ($$v) {_vm.confirmDialogOpen=$$v},expression:\"confirmDialogOpen\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"dark\":\"\",\"color\":\"primary\"}},[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',[_c('v-toolbar-title',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.registerAttendance')))])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"disabled\":_vm.ongoingSaves > 0,\"icon\":\"\",\"dark\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.cancel')},on:{\"click\":function($event){return _vm.closeConfirm()}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)],1)],1),_c('v-container',[_c('v-card-text',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('div',{staticClass:\"body-1 font-weight-bold\"},[_c('span',[_c('span',[_vm._v(_vm._s(_vm.occasionConfirm.dayOfWeekText))]),_vm._v(\" \"),_c('span',{staticStyle:{\"white-space\":\"nowrap\"}},[_vm._v(_vm._s(_vm.occasionConfirm.dateText))])]),_c('span',{staticClass:\"text-no-wrap\"},[_vm._v(\" \"+_vm._s(_vm.occasionConfirm.timeFrom)+\" - \"+_vm._s(_vm.occasionConfirm.timeTo)+\" \")])]),_c('div',{},[_vm._v(_vm._s(_vm.occasionConfirm.location))])]),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('div',{staticClass:\"body-1 font-weight-bold\"},[_vm._v(_vm._s(_vm.occasionConfirm.groupName))]),_c('div',{staticClass:\"body-2\"},[_vm._v(_vm._s(_vm.occasionConfirm.activityName))])])],1),_c('v-row',{staticClass:\"mt-4\"},[_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"disabled\":_vm.itemsConfirm.isParticipantsConfirmed},on:{\"click\":function($event){_vm.addParticipantDialogOpen = true}}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.addPerson'))+\" +\")])],1)],1),_c('v-row',{attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',[_c('h3',{staticClass:\"mt-4\"},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.participants')))])]),_c('v-col',[_c('v-switch',{staticClass:\"float-right\",attrs:{\"disabled\":_vm.itemsConfirm.isParticipantsConfirmed,\"label\":_vm.$vuetify.lang.t('$vuetify.chooseAll') + ' '+ _vm.$vuetify.lang.t('$vuetify.group.participants').toLowerCase()},on:{\"click\":function($event){return _vm.selectAllParticipants()}},model:{value:(_vm.allParticipantsSelected),callback:function ($$v) {_vm.allParticipantsSelected=$$v},expression:\"allParticipantsSelected\"}})],1)],1),_c('v-data-table',{staticClass:\"elevation-2\",attrs:{\"headers\":_vm.tableHeadersConfirm,\"items\":_vm.itemsConfirm.participants,\"dense\":true,\"loading\":_vm.isTableLoadingConfirm,\"disable-pagination\":\"\",\"items-per-page\":-1,\"hide-default-footer\":\"\"},on:{\"update:items\":function($event){return _vm.$set(_vm.itemsConfirm, \"participants\", $event)}},scopedSlots:_vm._u([{key:`item`,fn:function({ item, isMobile }){return [(!isMobile)?_c('tr',[_c('td',{staticStyle:{\"width\":\"100%\"}},[_vm._v(\" \"+_vm._s(item.name)+\" \"),(!item.hasMandatoryData)?_c('v-icon',{attrs:{\"color\":\"red darken-2\",\"title\":_vm.$vuetify.lang.t('$vuetify.occasion.personMandatoryDataIsMissing')}},[_vm._v(\"mdi-alert\")]):_vm._e(),(item.isDisabled)?_c('v-icon',{attrs:{\"title\":_vm.$vuetify.lang.t('$vuetify.occasion.personDisabled')}},[_vm._v(\"mdi-wheelchair-accessibility\")]):_vm._e()],1),_c('td',[(!item.hasMandatoryData)?_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.edit')},on:{\"click\":[function($event){$event.stopPropagation();},function($event){return _vm.editPerson(item);}]}},[_c('v-icon',[_vm._v(\"mdi-pencil\")])],1):_vm._e()],1),_c('td',[(item.isGuest)?_c('v-btn',{attrs:{\"disabled\":_vm.itemsConfirm.isParticipantsConfirmed,\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.occasion.removeGuest')},on:{\"click\":[function($event){$event.stopPropagation();},function($event){return _vm.removeParticipant(item);}]}},[_c('v-icon',[_vm._v(\"mdi-delete\")])],1):_vm._e()],1),_c('td',[_c('v-switch',{staticClass:\"float-right\",attrs:{\"disabled\":_vm.itemsConfirm.isParticipantsConfirmed},on:{\"click\":function($event){return _vm.saveIsTemporaryLeader(item)}},model:{value:(item.isTemporaryLeader),callback:function ($$v) {_vm.$set(item, \"isTemporaryLeader\", $$v)},expression:\"item.isTemporaryLeader\"}})],1),_c('td',[_c('v-switch',{staticClass:\"float-right\",attrs:{\"disabled\":_vm.itemsConfirm.isParticipantsConfirmed},on:{\"click\":function($event){return _vm.saveIsPresent(item)}},model:{value:(item.isPresent),callback:function ($$v) {_vm.$set(item, \"isPresent\", $$v)},expression:\"item.isPresent\"}})],1)]):_vm._e(),(isMobile)?_c('tr',[_c('td',{staticStyle:{\"width\":\"100%\"}},[_vm._v(\" \"+_vm._s(item.name)+\" \"),(!item.hasMandatoryData)?_c('v-icon',{attrs:{\"color\":\"red darken-2\",\"title\":_vm.$vuetify.lang.t('$vuetify.occasion.personMandatoryDataIsMissing')}},[_vm._v(\"mdi-alert\")]):_vm._e(),(item.isDisabled)?_c('v-icon',{attrs:{\"title\":_vm.$vuetify.lang.t('$vuetify.occasion.personDisabled')}},[_vm._v(\"mdi-wheelchair-accessibility\")]):_vm._e()],1),((!item.hasMandatoryData && item.isGuest))?_c('td',{staticStyle:{\"vertical-align\":\"top\"}},[_c('v-menu',{attrs:{\"offset-y\":\"\",\"width\":\"64px\",\"rounded\":\"lg\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"large\":\"\"}},[_vm._v(\"mdi-dots-horizontal\")])],1)]}}],null,true)},[_c('v-list',[_c('v-list-item',[_c('v-list-item-title',[(!item.hasMandatoryData)?_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.edit')},on:{\"click\":[function($event){$event.stopPropagation();},function($event){return _vm.editPerson(item);}]}},[_c('v-icon',[_vm._v(\"mdi-pencil\")])],1):_vm._e()],1)],1),_c('v-list-item',[_c('v-list-item-title',[(item.isGuest)?_c('v-btn',{attrs:{\"disabled\":_vm.itemsConfirm.isParticipantsConfirmed,\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.occasion.removeGuest')},on:{\"click\":[function($event){$event.stopPropagation();},function($event){return _vm.removeParticipant(item);}]}},[_c('v-icon',[_vm._v(\"mdi-delete\")])],1):_vm._e()],1)],1)],1)],1)],1):_c('td',[_c('span',[(!item.hasMandatoryData)?_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.edit')},on:{\"click\":[function($event){$event.stopPropagation();},function($event){return _vm.editPerson(item);}]}},[_c('v-icon',[_vm._v(\"mdi-pencil\")])],1):_vm._e()],1),_c('span',[(item.isGuest)?_c('v-btn',{attrs:{\"disabled\":_vm.itemsConfirm.isParticipantsConfirmed,\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.occasion.removeGuest')},on:{\"click\":[function($event){$event.stopPropagation();},function($event){return _vm.removeParticipant(item);}]}},[_c('v-icon',[_vm._v(\"mdi-delete\")])],1):_vm._e()],1)]),_c('td',[_c('v-switch',{staticClass:\"float-right\",attrs:{\"disabled\":_vm.itemsConfirm.isParticipantsConfirmed},on:{\"click\":function($event){return _vm.saveIsTemporaryLeader(item)}},model:{value:(item.isTemporaryLeader),callback:function ($$v) {_vm.$set(item, \"isTemporaryLeader\", $$v)},expression:\"item.isTemporaryLeader\"}})],1),_c('td',[_c('v-switch',{staticClass:\"float-right\",attrs:{\"disabled\":_vm.itemsConfirm.isParticipantsConfirmed},on:{\"click\":function($event){return _vm.saveIsPresent(item)}},model:{value:(item.isPresent),callback:function ($$v) {_vm.$set(item, \"isPresent\", $$v)},expression:\"item.isPresent\"}})],1)]):_vm._e()]}}],null,true)}),_c('v-row',{attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',[_c('h3',{staticClass:\"mt-4\"},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.leaders')))])]),_c('v-col',[_c('v-switch',{staticClass:\"float-right\",attrs:{\"disabled\":_vm.itemsConfirm.isParticipantsConfirmed,\"label\":_vm.$vuetify.lang.t('$vuetify.chooseAll') + ' '+ _vm.$vuetify.lang.t('$vuetify.group.leaders').toLowerCase()},on:{\"click\":function($event){return _vm.selectAllLeaders()}},model:{value:(_vm.allLeadersSelected),callback:function ($$v) {_vm.allLeadersSelected=$$v},expression:\"allLeadersSelected\"}})],1)],1),_c('v-data-table',{staticClass:\"elevation-2\",attrs:{\"headers\":_vm.tableHeadersConfirm,\"items\":_vm.itemsConfirm.leaders,\"dense\":true,\"loading\":_vm.isTableLoadingConfirm,\"disable-pagination\":\"\",\"items-per-page\":-1,\"hide-default-footer\":\"\"},on:{\"update:items\":function($event){return _vm.$set(_vm.itemsConfirm, \"leaders\", $event)}},scopedSlots:_vm._u([{key:`item`,fn:function({ item, isMobile }){return [(!isMobile)?_c('tr',[_c('td',{staticStyle:{\"width\":\"100%\"}},[_vm._v(\" \"+_vm._s(item.name)+\" \"),(!item.hasMandatoryData)?_c('v-icon',{attrs:{\"color\":\"red darken-2\",\"title\":_vm.$vuetify.lang.t('$vuetify.occasion.personMandatoryDataIsMissing')}},[_vm._v(\"mdi-alert\")]):_vm._e(),(item.isDisabled)?_c('v-icon',{attrs:{\"title\":_vm.$vuetify.lang.t('$vuetify.occasion.personDisabled')}},[_vm._v(\"mdi-wheelchair-accessibility\")]):_vm._e()],1),_c('td',[(!item.hasMandatoryData)?_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.edit')},on:{\"click\":[function($event){$event.stopPropagation();},function($event){return _vm.editPerson(item);}]}},[_c('v-icon',[_vm._v(\"mdi-pencil\")])],1):_vm._e()],1),_c('td',[(item.isGuest)?_c('v-btn',{attrs:{\"disabled\":_vm.itemsConfirm.isParticipantsConfirmed,\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.occasion.removeGuest')},on:{\"click\":[function($event){$event.stopPropagation();},function($event){return _vm.removeParticipant(item);}]}},[_c('v-icon',[_vm._v(\"mdi-delete\")])],1):_vm._e()],1),_c('td',[(item.isTemporaryLeader)?_c('v-switch',{staticClass:\"float-right\",attrs:{\"disabled\":_vm.itemsConfirm.isParticipantsConfirmed},on:{\"click\":function($event){return _vm.saveIsTemporaryLeader(item)}},model:{value:(item.isTemporaryLeader),callback:function ($$v) {_vm.$set(item, \"isTemporaryLeader\", $$v)},expression:\"item.isTemporaryLeader\"}}):_vm._e()],1),_c('td',[_c('v-switch',{staticClass:\"float-right\",attrs:{\"disabled\":_vm.itemsConfirm.isParticipantsConfirmed},on:{\"click\":function($event){return _vm.saveIsPresent(item)}},model:{value:(item.isPresent),callback:function ($$v) {_vm.$set(item, \"isPresent\", $$v)},expression:\"item.isPresent\"}})],1)]):_vm._e(),(isMobile)?_c('tr',[_c('td',{staticStyle:{\"width\":\"100%\"}},[_vm._v(\" \"+_vm._s(item.name)+\" \"),(!item.hasMandatoryData)?_c('v-icon',{attrs:{\"color\":\"red darken-2\",\"title\":_vm.$vuetify.lang.t('$vuetify.occasion.personMandatoryDataIsMissing')}},[_vm._v(\"mdi-alert\")]):_vm._e(),(item.isDisabled)?_c('v-icon',{attrs:{\"title\":_vm.$vuetify.lang.t('$vuetify.occasion.personDisabled')}},[_vm._v(\"mdi-wheelchair-accessibility\")]):_vm._e()],1),((!item.hasMandatoryData && item.isGuest))?_c('td',{staticStyle:{\"vertical-align\":\"top\"}},[_c('v-menu',{attrs:{\"offset-y\":\"\",\"width\":\"64px\",\"rounded\":\"lg\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"large\":\"\"}},[_vm._v(\"mdi-dots-horizontal\")])],1)]}}],null,true)},[_c('v-list',[_c('v-list-item',[_c('v-list-item-title',[(!item.hasMandatoryData)?_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.edit')},on:{\"click\":[function($event){$event.stopPropagation();},function($event){return _vm.editPerson(item);}]}},[_c('v-icon',[_vm._v(\"mdi-pencil\")])],1):_vm._e()],1)],1),_c('v-list-item',[_c('v-list-item-title',[(item.isGuest)?_c('v-btn',{attrs:{\"disabled\":_vm.itemsConfirm.isParticipantsConfirmed,\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.occasion.removeGuest')},on:{\"click\":[function($event){$event.stopPropagation();},function($event){return _vm.removeParticipant(item);}]}},[_c('v-icon',[_vm._v(\"mdi-delete\")])],1):_vm._e()],1)],1)],1)],1)],1):_c('td',[_c('span',[(!item.hasMandatoryData)?_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.edit')},on:{\"click\":[function($event){$event.stopPropagation();},function($event){return _vm.editPerson(item);}]}},[_c('v-icon',[_vm._v(\"mdi-pencil\")])],1):_vm._e()],1),_c('span',[(item.isGuest)?_c('v-btn',{attrs:{\"disabled\":_vm.itemsConfirm.isParticipantsConfirmed,\"icon\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.occasion.removeGuest')},on:{\"click\":[function($event){$event.stopPropagation();},function($event){return _vm.removeParticipant(item);}]}},[_c('v-icon',[_vm._v(\"mdi-delete\")])],1):_vm._e()],1)]),_c('td',[(item.isTemporaryLeader)?_c('v-switch',{staticClass:\"float-right\",attrs:{\"disabled\":_vm.itemsConfirm.isParticipantsConfirmed},on:{\"click\":function($event){return _vm.saveIsTemporaryLeader(item)}},model:{value:(item.isTemporaryLeader),callback:function ($$v) {_vm.$set(item, \"isTemporaryLeader\", $$v)},expression:\"item.isTemporaryLeader\"}}):_vm._e()],1),_c('td',[_c('v-switch',{staticClass:\"float-right\",attrs:{\"disabled\":_vm.itemsConfirm.isParticipantsConfirmed},on:{\"click\":function($event){return _vm.saveIsPresent(item)}},model:{value:(item.isPresent),callback:function ($$v) {_vm.$set(item, \"isPresent\", $$v)},expression:\"item.isPresent\"}})],1)]):_vm._e()]}}],null,true)}),_c('v-card',{staticClass:\"mt-4\"},[_c('v-card-text',[_c('v-row',[_c('v-col',{staticClass:\"font-weight-bold\",attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('span',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.numberOfParticipants'))+\":\")]),_vm._v(\"  \"),_c('span',[_vm._v(_vm._s(_vm.sumParticipants()))])]),_c('v-col',{staticClass:\"font-weight-bold\",attrs:{\"cols\":\"12\",\"sm\":\"8\"}},[_c('span',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.numberOfLeaders'))+\":\")]),_vm._v(\"  \"),_c('span',[_vm._v(_vm._s(_vm.sumLeaders()))])])],1),(!_vm.allPersonsHasMandatoryData)?_c('v-row',[_c('v-col',[_c('v-alert',{attrs:{\"dense\":\"\",\"outlined\":\"\",\"type\":\"error\"}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.personMandatoryDataIsMissingInfo'))+\" \")])],1)],1):_vm._e(),_c('v-row',[_c('v-col',[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.confirmOccasionText'))+\" \")]),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"3\"}},[_c('v-switch',{staticClass:\"ma-0 float-right\",attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.occasion.confirmAttendance'),\"disabled\":!_vm.allPersonsHasMandatoryData && !_vm.itemsConfirm.isParticipantsConfirmed},on:{\"click\":function($event){return _vm.saveParticipantsConfirmed()}},model:{value:(_vm.itemsConfirm.isParticipantsConfirmed),callback:function ($$v) {_vm.$set(_vm.itemsConfirm, \"isParticipantsConfirmed\", $$v)},expression:\"itemsConfirm.isParticipantsConfirmed\"}})],1)],1),(_vm.itemsConfirm.participantsConfirmed)?_c('v-row',[_c('v-col',{staticClass:\"font-weight-bold\",attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('span',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.participantsConfirmed'))+\":\")]),_vm._v(\"  \"),_c('span',[_vm._v(_vm._s(_vm.itemsConfirm.participantsConfirmed))])]),_c('v-col',{staticClass:\"font-weight-bold\",attrs:{\"cols\":\"12\",\"sm\":\"8\"}},[_c('span',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.participantsConfirmedBy'))+\":\")]),_vm._v(\"  \"),_c('span',[_vm._v(_vm._s(_vm.itemsConfirm.participantsConfirmedBy))])])],1):_vm._e()],1)],1)],1),_c('v-card-actions',{staticStyle:{\"margin-bottom\":\"48px\"}},[_c('v-row',[_c('v-col',{staticClass:\"text-right\"},[_c('v-btn',{attrs:{\"disabled\":_vm.ongoingSaves > 0,\"text\":\"\"},on:{\"click\":function($event){return _vm.closeConfirm()}}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.close'))+\" \")])],1)],1)],1)],1)],1)],1),_c('delete-dialog',{attrs:{\"showDialog\":_vm.showDeleteDialog,\"itemToDeleteName\":_vm.itemToDeleteName,\"itemToDeleteId\":_vm.itemToDeleteId},on:{\"dialogResult\":_vm.removeOccasion}}),_c('add-participant-dialog',{attrs:{\"showDialog\":_vm.addParticipantDialogOpen,\"fromOccasion\":true,\"selectedOccasionGroupId\":_vm.selectedOccasionGroupId,\"isOccasionParticipant\":true},on:{\"participant-added\":_vm.addParticipant,\"dialog-closed\":function($event){_vm.addParticipantDialogOpen = false}}}),_c('v-dialog',{attrs:{\"persistent\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"mt-3 float-right\",class:{'mr-3': _vm.$vuetify.breakpoint.xs, 'nv-floating-btn': _vm.$vuetify.breakpoint.xs},attrs:{\"bottom\":_vm.$vuetify.breakpoint.xs,\"fixed\":_vm.$vuetify.breakpoint.xs,\"elevation\":\"6\",\"color\":\"primary\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.createOccasion'))+\" \"),_c('v-icon',[_vm._v(\"mdi-plus\")])],1)]}}]),model:{value:(_vm.createDialogOpen),callback:function ($$v) {_vm.createDialogOpen=$$v},expression:\"createDialogOpen\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"dark\":\"\",\"color\":\"primary\"}},[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',[_c('v-toolbar-title',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.createOccasion')))])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"icon\":\"\",\"dark\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.cancel')},on:{\"click\":function($event){return _vm.closeCreate()}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)],1)],1),_c('v-container',[_c('v-form',{ref:\"createForm\"},[_c('v-row',[(_vm.groups.length > 1)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-select',{attrs:{\"items\":_vm.groups,\"rules\":[_vm.rules.required],\"label\":\"Grupp\"},model:{value:(_vm.registrationRequest.groupId),callback:function ($$v) {_vm.$set(_vm.registrationRequest, \"groupId\", $$v)},expression:\"registrationRequest.groupId\"}})],1):_vm._e(),(_vm.groups.length == 1)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('label',{attrs:{\"for\":\"createGroupName\"}},[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.group.groupName')))]),_c('input',{staticClass:\"v-input\",attrs:{\"disabled\":\"\",\"id\":\"createGroupName\",\"name\":\"editGroupName\"},domProps:{\"value\":_vm.groups[0].text}})]):_vm._e()],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-select',{attrs:{\"items\":_vm.occasionTypes,\"rules\":[_vm.rules.required],\"label\":_vm.$vuetify.lang.t('$vuetify.occasion.occasionType')},model:{value:(_vm.registrationRequest.occasionType),callback:function ($$v) {_vm.$set(_vm.registrationRequest, \"occasionType\", $$v)},expression:\"registrationRequest.occasionType\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-select',{attrs:{\"items\":_vm.activities,\"item-text\":\"name\",\"item-value\":\"id\",\"rules\":[_vm.rules.required],\"label\":_vm.$vuetify.lang.t('$vuetify.activity.activityName')},model:{value:(_vm.registrationRequest.associationActivityId),callback:function ($$v) {_vm.$set(_vm.registrationRequest, \"associationActivityId\", $$v)},expression:\"registrationRequest.associationActivityId\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-combobox',{ref:\"locationCreateCombobox\",attrs:{\"rules\":[_vm.rules.required],\"no-filter\":\"\",\"items\":_vm.locations,\"search-input\":_vm.searchLocation,\"label\":_vm.$vuetify.lang.t('$vuetify.occasion.location')},on:{\"update:searchInput\":function($event){_vm.searchLocation=$event},\"update:search-input\":function($event){_vm.searchLocation=$event}},model:{value:(_vm.registrationRequest.location),callback:function ($$v) {_vm.$set(_vm.registrationRequest, \"location\", $$v)},expression:\"registrationRequest.location\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-switch',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.occasion.recurring')},model:{value:(_vm.recurring),callback:function ($$v) {_vm.recurring=$$v},expression:\"recurring\"}})],1),(_vm.recurring)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-select',{attrs:{\"items\":_vm.frequencies,\"item-text\":\"text\",\"item-value\":\"value\",\"rules\":[_vm.rules.required],\"label\":_vm.$vuetify.lang.t('$vuetify.occasion.frequency')},model:{value:(_vm.registrationRequest.frequency),callback:function ($$v) {_vm.$set(_vm.registrationRequest, \"frequency\", $$v)},expression:\"registrationRequest.frequency\"}})],1):_vm._e()],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.dateFrom'),\"type\":\"date\",\"max\":\"9999-12-31\",\"rules\":[_vm.rules.required]},model:{value:(_vm.registrationRequest.dateFrom),callback:function ($$v) {_vm.$set(_vm.registrationRequest, \"dateFrom\", $$v)},expression:\"registrationRequest.dateFrom\"}})],1),(_vm.recurring)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.dateTo'),\"type\":\"date\",\"max\":\"9999-12-31\",\"rules\":[_vm.rules.required, _vm.dateToCreateRule]},model:{value:(_vm.registrationRequest.dateTo),callback:function ($$v) {_vm.$set(_vm.registrationRequest, \"dateTo\", $$v)},expression:\"registrationRequest.dateTo\"}})],1):_vm._e()],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.timeFrom'),\"type\":\"time\",\"step\":\"900\",\"rules\":[_vm.rules.required]},model:{value:(_vm.registrationRequest.timeFrom),callback:function ($$v) {_vm.$set(_vm.registrationRequest, \"timeFrom\", $$v)},expression:\"registrationRequest.timeFrom\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.timeTo'),\"type\":\"time\",\"step\":\"900\",\"rules\":[_vm.rules.required, _vm.timeToCreateRule]},model:{value:(_vm.registrationRequest.timeTo),callback:function ($$v) {_vm.$set(_vm.registrationRequest, \"timeTo\", $$v)},expression:\"registrationRequest.timeTo\"}})],1)],1),_c('v-row',[_c('v-col',[_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.closeCreate()}}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.cancel'))+\" \")])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"type\":\"submit\"},on:{\"click\":function($event){return _vm.createOccasion()}}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.create'))+\" \")])],1)],1)],1)],1)],1)],1),_c('v-dialog',{model:{value:(_vm.showDeleteRecurringDialog),callback:function ($$v) {_vm.showDeleteRecurringDialog=$$v},expression:\"showDeleteRecurringDialog\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"dark\":\"\",\"color\":\"primary\"}},[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',[_c('v-toolbar-title',[_vm._v(_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.recurringOccasion')))])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"icon\":\"\",\"dark\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.cancel')},on:{\"click\":function($event){_vm.showDeleteRecurringDialog = false;}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)],1)],1),_c('v-container',[_c('v-row',[_c('v-col',[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.delete'))+\" \\\"\"+_vm._s(_vm.itemToDeleteName)+\"\\\"? \")])],1),_c('v-row',[_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"type\":\"submit\"},on:{\"click\":function($event){return _vm.removeOccasion(_vm.itemToDeleteId)}}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.removeOccasion'))+\" \")])],1)],1),_c('v-row',[_c('v-col',[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.removeOccasionAndFollowingDialogText'))+\" \")])],1),_c('v-row',[_c('v-col',[_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.showDeleteRecurringDialog = false;}}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.cancel'))+\" \")])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"type\":\"submit\"},on:{\"click\":function($event){return _vm.removeOccasionAndFollowing(_vm.itemToDeleteId)}}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.occasion.removeOccasionAndFollowing'))+\" \")])],1)],1)],1)],1)],1),_c('v-dialog',{attrs:{\"persistent\":\"\"},model:{value:(_vm.editPersonDialogOpen),callback:function ($$v) {_vm.editPersonDialogOpen=$$v},expression:\"editPersonDialogOpen\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"dark\":\"\",\"color\":\"primary\"}},[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',[_c('v-toolbar-title',[_c('div',{staticClass:\"d-none d-sm-flex\"},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t(\"$vuetify.person.editPerson\")))]),_c('div',{staticClass:\"d-block d-sm-none\",staticStyle:{\"font-size\":\"small\"}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t(\"$vuetify.person.editPerson\")))])])],1),_c('v-col',[_c('v-btn',{staticClass:\"float-right\",attrs:{\"icon\":\"\",\"dark\":\"\",\"title\":_vm.$vuetify.lang.t('$vuetify.cancel')},on:{\"click\":function($event){return _vm.closePersonEdit()}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)],1)],1),_c('v-container',[_c('v-form',{ref:\"personForm\",model:{value:(_vm.registerPersonFormValid),callback:function ($$v) {_vm.registerPersonFormValid=$$v},expression:\"registerPersonFormValid\"}},[_c('v-card-text',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.firstName'),\"rules\":[_vm.rules.required],\"maxlength\":\"50\",\"counter\":\"50\"},model:{value:(_vm.personRequest.firstName),callback:function ($$v) {_vm.$set(_vm.personRequest, \"firstName\", $$v)},expression:\"personRequest.firstName\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.lastName'),\"rules\":[_vm.rules.required],\"maxlength\":\"50\",\"counter\":\"50\"},model:{value:(_vm.personRequest.lastName),callback:function ($$v) {_vm.$set(_vm.personRequest, \"lastName\", $$v)},expression:\"personRequest.lastName\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.isActivitySSNMandatory && !_vm.personRequest.hasNoSwedishSsn ? _vm.$vuetify.lang.t('$vuetify.person.socialSecurityNumber') : _vm.$vuetify.lang.t('$vuetify.person.dateOfBirth'),\"rules\":_vm.getValidationRules(),\"placeholder\":_vm.isActivitySSNMandatory && !_vm.personRequest.hasNoSwedishSsn ? 'ÅÅÅÅMMDD-XXXX' : _vm.formatDateOfBirth,\"maxlength\":13},on:{\"blur\":function($event){return _vm.fixSSN()}},model:{value:(_vm.personRequest.socialSecurityNumber),callback:function ($$v) {_vm.$set(_vm.personRequest, \"socialSecurityNumber\", $$v)},expression:\"personRequest.socialSecurityNumber\"}})],1),(_vm.isActivitySSNMandatory)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"3\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.hasNoSwedishSsn')},model:{value:(_vm.personRequest.hasNoSwedishSsn),callback:function ($$v) {_vm.$set(_vm.personRequest, \"hasNoSwedishSsn\", $$v)},expression:\"personRequest.hasNoSwedishSsn\"}})],1):_vm._e(),((!_vm.isActivitySSNMandatory || _vm.personRequest.hasNoSwedishSsn) && (!_vm.personRequest.socialSecurityNumber || _vm.personRequest.socialSecurityNumber.length < 12))?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":_vm.isActivitySSNMandatory ? 3 : 6}},[_c('v-select',{attrs:{\"items\":_vm.genders,\"rules\":!_vm.isActivitySSNMandatory || _vm.personRequest.hasNoSwedishSsn ? [_vm.rules.required] : [],\"label\":_vm.$vuetify.lang.t('$vuetify.person.gender')},model:{value:(_vm.personRequest.genderId),callback:function ($$v) {_vm.$set(_vm.personRequest, \"genderId\", $$v)},expression:\"personRequest.genderId\"}})],1):_vm._e()],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showZipCode),expression:\"showZipCode\"}],attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.zipCode'),\"placeholder\":\"123 45\",\"rules\":_vm.showZipCode ? [_vm.rules.required, _vm.rules.zipCode] : [],\"maxlength\":6},on:{\"blur\":function($event){return _vm.fixZipCode()}},model:{value:(_vm.personRequest.zipCode),callback:function ($$v) {_vm.$set(_vm.personRequest, \"zipCode\", $$v)},expression:\"personRequest.zipCode\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showCity),expression:\"showCity\"}],attrs:{\"label\":_vm.$vuetify.lang.t('$vuetify.person.city'),\"maxlength\":\"200\",\"rules\":_vm.showCity ? [_vm.rules.required] : []},model:{value:(_vm.personRequest.city),callback:function ($$v) {_vm.$set(_vm.personRequest, \"city\", $$v)},expression:\"personRequest.city\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.closePersonEdit()}}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.cancel'))+\" \")]),_c('v-btn',{staticClass:\"float-right\",attrs:{\"disabled\":!_vm.registerPersonFormValid},on:{\"click\":function($event){return _vm.savePerson(_vm.personRequest)}}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.lang.t('$vuetify.save'))+\" \")])],1)],1)],1)],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Occasion from \"@/models/api/occasion/Occasion\";\r\nimport OccasionCreate from \"@/models/api/occasion/OccasionCreate\";\r\nimport axios, { AxiosResponse } from \"axios\";\r\nimport ParticipantGroupRegistrationRequest from '@/models/api/participant-group/ParticipantGroupRegisterRequest';\r\n\r\nclass Service {\r\n public async RemoveParticipant(data: any) {\r\n return axios.post(\"api/occasion/RemoveParticipant\", data);\r\n }\r\n public async AddParticipant(participant: any): Promise> {\r\n return axios.post(\"api/occasion/AddParticipant\", participant);\r\n }\r\n\r\n public async SaveOccasion(occasion: Occasion): Promise> {\r\n return axios.post(\"api/occasion/\", occasion);\r\n }\r\n\r\n public async CreateOccasion(occasion: OccasionCreate): Promise> {\r\n return axios.post(\"api/occasion/CreateOccasion\", occasion);\r\n }\r\n \r\n public async SetParticipantsConfirmed(data: any): Promise> {\r\n return axios.post('api/occasion/SetParticipantsConfirmed', data);\r\n }\r\n \r\n public async SetIsTemporaryLeader(data: any): Promise> {\r\n return axios.post('api/occasion/SetIsTemporaryLeader', data);\r\n }\r\n\r\n public async SetIsPresent(data: any): Promise> {\r\n return axios.post('api/occasion/SetIsPresent', data);\r\n }\r\n\r\n public async GetRecurringOccasions(occasionId: number) {\r\n return axios.get(`api/occasion/GetRecurringOccasions?occasionId=${occasionId}`);\r\n }\r\n\r\n public async GetParticipants(occasionId: number): Promise> {\r\n return axios.get(`api/occasion/GetParticipants?occasionId=${occasionId}`);\r\n }\r\n\r\n public async GetLocations(searchText: string): Promise> {\r\n return axios.get(`api/occasion/GetLocations?searchText=${searchText}`);\r\n }\r\n\r\n public async GetComing(groupId?: number): Promise> {\r\n return axios.get(\"api/occasion/GetComing\" + (groupId ? `?groupId=${groupId}` : \"\"));\r\n }\r\n\r\n public async GetOccasionsPaged(data: any): Promise> {\r\n return axios.post('api/occasion/GetOccasionsPaged', data);\r\n }\r\n\r\n public async GetUnconfirmedPaged(data: any): Promise> {\r\n return axios.post('api/occasion/GetUnconfirmedPaged', data);\r\n }\r\n\r\n public async GetConfirmedPaged(data: any): Promise> {\r\n return axios.post('api/occasion/GetConfirmedPaged', data);\r\n }\r\n\r\n public async GetOccasion(id: number): Promise> {\r\n return axios.get(`api/occasion/${id}`);\r\n }\r\n\r\n public async RemoveOccasion(id: number): Promise> {\r\n return axios.delete(`api/occasion/${id}`);\r\n }\r\n\r\n public async RemoveOccasionAndFollowing(occasionId: number): Promise> {\r\n const data = { occasionId: occasionId };\r\n return axios.post(`api/occasion/RemoveOccasionAndFollowing`, data);\r\n }\r\n}\r\n\r\nexport const OccasionService: Service = new Service();\r\n","import { Frequencies, OccasionTypes } from '@/models/Enums';\r\n\r\nexport default class OccasionCreate {\r\n dateFrom: Date | null = null;\r\n dateTo: Date | null = null;\r\n timeFrom: string = \"\";\r\n timeTo: string = \"\";\r\n\r\n groupId: number = 0;\r\n associationActivityId: number = 0;\r\n location: string = \"\";\r\n\r\n frequency: Frequencies | null = null;\r\n occasionType: OccasionTypes = OccasionTypes.Training;\r\n}","\r\n /* eslint-disable */\r\n\r\n import Vue, { Component } from \"vue\";\r\n import { OccasionService } from \"@/services/OccasionService\";\r\n import Occasion, { OccasionDisplay } from \"@/models/api/occasion/Occasion\";\r\n import OccasionCreate from \"@/models/api/occasion/OccasionCreate\";\r\n import VuetifyFormMethods from \"@/models/vuetify-form-methods\";\r\n import { DataTableHelper } from '@/helpers/DataTableHelper';\r\n import { AxiosError } from \"axios\";\r\n import { ActivityService } from \"@/services/ActivityService\";\r\n import { SnackbarService } from \"@/services/SnackbarService\";\r\n import { UserService } from \"@/services/UserService\";\r\n import DeleteDialog from '@/components/dialogs/DeleteDialog.vue';\r\n import { ValidationHelper } from '@/helpers/ValidationHelper';\r\n import { Frequencies, OccasionTypes } from '../../models/Enums'; \r\n import AssociationActivity from \"@/models/api/association/AssociationActivity\";\r\n import Activity from \"@/models/api/activity/Activity\";\r\n import AddParticipantDialog from \"@/components/dialogs/AddParticipantDialog.vue\";\r\n import SelectListItem from '../../models/SelectListItem';\r\n import ParticipantGroupRegistrationRequest from '../../models/api/participant-group/ParticipantGroupRegisterRequest';\r\n import { PersonService } from '@/services/PersonService';\r\n import Person from \"../../models/api/person/Person\";\r\n import { SettingService } from '../../services/SettingService';\r\n import ApplicationSettingDto from '../../models/api/ApplicationSetting';\r\n import { ApplicationSetting, Gender } from '../../models/Enums';\r\n import adaptSSN from '../../helpers/functions/AdaptSSN';\r\n import adaptZipCode from '../../helpers/functions/AdaptZipCode';\r\n import { validateSSNDate, validateDateOfBirth, validateSSN } from '../../helpers/functions/ValidateSSN';\r\n import validateSSNSetting from '../../helpers/functions/ValidateSSNSetting';\r\n\r\n export default Vue.extend({\r\n components: {\r\n DeleteDialog,\r\n AddParticipantDialog\r\n },\r\n data() {\r\n return {\r\n pageHeader: this.$vuetify.lang.t('$vuetify.occasion.pageHeader'),\r\n\r\n ongoingSaves: -1,\r\n\r\n totalCountComing: 0,\r\n itemsComing: [],\r\n isTableLoadingComing: true,\r\n optionsComing: {},\r\n\r\n totalCountConfirmed: 0,\r\n itemsConfirmed: [],\r\n isTableLoadingConfirmed: true,\r\n optionsConfirmed: {},\r\n\r\n tableHeaders: [\r\n {\r\n text: 'date',\r\n sortable: true,\r\n value: 'date',\r\n },\r\n {\r\n text: 'time',\r\n sortable: true,\r\n value: 'time'\r\n },\r\n {\r\n text: 'occasion.location',\r\n sortable: true,\r\n value: 'location',\r\n },\r\n {\r\n text: 'group.groupName',\r\n sortable: true,\r\n value: 'groupName',\r\n },\r\n {\r\n text: 'activity.activityName',\r\n sortable: true,\r\n value: 'activityName',\r\n },\r\n {\r\n text: '',\r\n sortable: false,\r\n value: 'actions'\r\n },\r\n ],\r\n\r\n tableHeadersConfirmed: [\r\n {\r\n text: 'date',\r\n sortable: true,\r\n value: 'date',\r\n },\r\n {\r\n text: 'time',\r\n sortable: true,\r\n value: 'time'\r\n },\r\n {\r\n text: 'occasion.location',\r\n sortable: true,\r\n value: 'location',\r\n },\r\n {\r\n text: 'group.groupName',\r\n sortable: true,\r\n value: 'groupName',\r\n },\r\n {\r\n text: 'activity.activityName',\r\n sortable: true,\r\n value: 'activityName',\r\n },\r\n {\r\n text: 'occasion.participants',\r\n sortable: true,\r\n value: 'numberOfParticipants',\r\n },\r\n {\r\n text: '',\r\n sortable: false,\r\n value: 'actions'\r\n },\r\n ],\r\n\r\n optionsUnconfirmed: {},\r\n totalCountUnconfirmed: 0,\r\n itemsUnconfirmed: [],\r\n isTableLoadingUnconfirmed: true, \r\n\r\n tableHeadersConfirm: [\r\n {\r\n text: 'name',\r\n sortable: false,\r\n value: 'name',\r\n },\r\n {\r\n text: '',\r\n sortable: false,\r\n align: 'center',\r\n width: '1%',\r\n class: 'slimDataTableColumnPaddingRight',\r\n cellClass: 'slimDataTableColumnPaddingRight',\r\n value: 'edit'\r\n },\r\n {\r\n text: '',\r\n sortable: false,\r\n align: 'center',\r\n width: '1%',\r\n class: 'slimDataTableColumnPaddingRight',\r\n cellClass: 'slimDataTableColumnPaddingRight',\r\n value: 'remove'\r\n },\r\n {\r\n text: 'occasion.temporaryLeaderShort',\r\n sortable: false,\r\n align: 'center',\r\n width: '1%',\r\n value: 'tempLeader',\r\n },\r\n {\r\n text: 'occasion.isPresent',\r\n sortable: false,\r\n align: 'center',\r\n width: '1%',\r\n value: 'actions'\r\n },\r\n ],\r\n itemsConfirm: {} as any,\r\n isTableLoadingConfirm: false,\r\n occasionConfirm: {} as Occasion,\r\n allParticipantsSelected: false,\r\n allLeadersSelected: false,\r\n allPersonsHasMandatoryData: false,\r\n\r\n occasionsTab: null,\r\n\r\n createDialogOpen: false,\r\n editDialogOpen: false,\r\n confirmDialogOpen: false,\r\n dialogKey: 0,\r\n editPersonDialogOpen: false,\r\n\r\n registrationRequest: new OccasionCreate(),\r\n recurring: false,\r\n\r\n // Create\r\n showTimeFromCreate: false,\r\n showTimeToCreate: false,\r\n showDateFromCreate: false,\r\n showDateToCreate: false,\r\n\r\n showDateEdit: false,\r\n showTimeFromEdit: false,\r\n showTimeToEdit: false,\r\n\r\n registerOccasionFormValid: false,\r\n\r\n editOccasionRequest: {} as Occasion,\r\n editOccasionRecurringOccasions: [] as SelectListItem[],\r\n\r\n showDeleteRecurringDialog: false,\r\n\r\n // Delete dialog\r\n showDeleteDialog: false,\r\n itemToDeleteId: \"\",\r\n itemToDeleteName: \"\",\r\n\r\n // Add participant dialog\r\n addParticipantDialogOpen: false,\r\n \r\n selectedFrequency: \"\",\r\n\r\n frequencies: [] as SelectListItem[],\r\n occasionTypes: [] as SelectListItem[],\r\n\r\n groups: [] as SelectListItem[],\r\n activities: [] as AssociationActivity[],\r\n\r\n locations: [] as string[],\r\n searchLocation: null as string | null,\r\n\r\n personRequest: {} as Person,\r\n persons: new Array(),\r\n\r\n settings: new Array(),\r\n isActivitySSNMandatory: false, \r\n formatDateOfBirth: \"\",\r\n showZipCode: false,\r\n showCity: false,\r\n genders: [{ text: this.$vuetify.lang.t('$vuetify.female'), value: 1 }, { text: this.$vuetify.lang.t('$vuetify.male'), value: 2 }],\r\n genderId: null as Gender | null,\r\n registerPersonFormValid: false,\r\n selectedOccasionGroupId: 0,\r\n\r\n rules: {\r\n required: (value: any) => !!value || this.$vuetify.lang.t('$vuetify.required'),\r\n zipCode: (value: any) => !value || /^\\d{3}\\s*\\d{2}$/.test(value) || this.$vuetify.lang.t('$vuetify.invalidZipCode'),\r\n ssnFormat: (value: any) => !value || /^\\d{4}\\d{2}\\d{2}-\\d{4}$/.test(value) || this.$vuetify.lang.t('$vuetify.formatSSN'),\r\n validateSSNDate: (value: any) => validateSSNDate(value) || this.$vuetify.lang.t('$vuetify.person.invalidDate'),\r\n },\r\n\r\n };\r\n },\r\n created() {\r\n DataTableHelper.adaptTableHeaders(this.tableHeadersConfirm, this);\r\n DataTableHelper.adaptTableHeaders(this.tableHeadersConfirmed, this);\r\n DataTableHelper.adaptTableHeaders(this.tableHeaders, this);\r\n //this.getOccasions();\r\n\r\n this.getSettingsByKeyName(); \r\n\r\n this.frequencies = [];\r\n Object.values(Frequencies).map((n: string | Frequencies) => {\r\n if (typeof Frequencies[n as any] === 'number') {\r\n this.frequencies.push(new SelectListItem(this.$vuetify.lang.t('$vuetify.occasion.' + Frequencies[Frequencies[n as number] as any]), Frequencies[n as any]));\r\n }\r\n });\r\n this.occasionTypes = [];\r\n Object.values(OccasionTypes).map((n: string | OccasionTypes) => {\r\n if (typeof OccasionTypes[n as any] === 'number') {\r\n this.occasionTypes.push(new SelectListItem(this.$vuetify.lang.t('$vuetify.occasion.' + OccasionTypes[OccasionTypes[n as number] as any]), OccasionTypes[n as any]));\r\n }\r\n });\r\n\r\n this.$store.commit('addOverlay');\r\n UserService.GetGroups().then(response => {\r\n this.groups = response.data;\r\n }).catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n })\r\n .finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n\r\n this.$store.commit('addOverlay');\r\n ActivityService.GetAssociationActivities().then(response => {\r\n this.activities = response.data;\r\n }).catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n })\r\n .finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n\r\n\r\n\r\n },\r\n watch: {\r\n recurring: {\r\n handler() {\r\n if (this.recurring && this.registrationRequest.frequency == null) {\r\n this.registrationRequest.frequency = Frequencies.EveryWeek;\r\n } else if (!this.recurring) {\r\n this.registrationRequest.frequency = null;\r\n }\r\n }\r\n },\r\n searchLocation: {\r\n handler() {\r\n if (this.searchLocation && this.searchLocation.length > 2) {\r\n OccasionService.GetLocations(this.searchLocation as string).then(response => {\r\n this.locations = response.data;\r\n });\r\n } else {\r\n this.locations = [];\r\n }\r\n }\r\n },\r\n optionsComing: {\r\n handler() {\r\n this.getOccasionsComing();\r\n },\r\n deep: true,\r\n },\r\n optionsConfirmed: {\r\n handler() {\r\n this.getOccasionsConfirmed();\r\n },\r\n deep: true,\r\n },\r\n optionsUnconfirmed: {\r\n handler() {\r\n this.getOccasionsUnconfirmed();\r\n },\r\n deep: true,\r\n },\r\n createDialogOpen: {\r\n handler(open: boolean) {\r\n if (!open) {\r\n (this.$refs.createForm as VuetifyFormMethods).reset();\r\n }\r\n },\r\n },\r\n editDialogOpen: {\r\n handler(open: boolean) {\r\n if (!open) {\r\n (this.$refs.editForm as VuetifyFormMethods).reset();\r\n }\r\n },\r\n },\r\n editPersonDialogOpen: {\r\n handler(open: boolean) {\r\n if (!open) {\r\n (this.$refs.personForm as VuetifyFormMethods).reset();\r\n } else {\r\n this.$nextTick(() => {\r\n (this.$refs.personForm as VuetifyFormMethods).validate();\r\n });\r\n }\r\n },\r\n },\r\n\r\n },\r\n computed: {\r\n sumLeaders() {\r\n return (item: any) => {\r\n if (this.itemsConfirm && this.itemsConfirm.leaders) {\r\n const sum = this.itemsConfirm.leaders.filter((s: any) => s.isPresent).length;\r\n return sum;\r\n }\r\n return 0;\r\n };\r\n },\r\n sumParticipants() {\r\n return (item: any) => {\r\n if (this.itemsConfirm && this.itemsConfirm.leaders) {\r\n const sum = this.itemsConfirm.participants.filter((s: any) => s.isPresent).length;\r\n return sum;\r\n }\r\n return 0;\r\n };\r\n },\r\n },\r\n methods: {\r\n getValidationRules(): any[] {\r\n setTimeout(() => (this.$refs.personForm as VuetifyFormMethods)?.validate());\r\n if (this.isActivitySSNMandatory && !this.personRequest.hasNoSwedishSsn) {\r\n return [this.rules.validateSSNDate, this.validateSSNSettings, this.checkValidSSN, this.rules.required, this.rules.ssnFormat];\r\n }\r\n return [this.rules.validateSSNDate, this.validateSSNSettings, this.checkValidSSN, this.rules.required, this.validDateOfBirth];\r\n },\r\n validateSSNSettings(v: any): boolean | string {\r\n return validateSSNSetting(v, this.isActivitySSNMandatory && !this.personRequest.hasNoSwedishSsn, this.formatDateOfBirth) || this.$vuetify.lang.t('$vuetify.invalidSSN');\r\n },\r\n fixSSN() {\r\n this.personRequest.socialSecurityNumber = adaptSSN(this.personRequest.socialSecurityNumber);\r\n },\r\n fixZipCode() {\r\n this.personRequest.zipCode = adaptZipCode(this.personRequest.zipCode);\r\n },\r\n increaseOngoingSaves(): void {\r\n if (this.ongoingSaves < 0) {\r\n this.ongoingSaves = 0;\r\n }\r\n this.ongoingSaves++;\r\n },\r\n decreaseOngoingSaves(): void {\r\n this.ongoingSaves--;\r\n },\r\n resetOngoingSaves(): void {\r\n this.ongoingSaves = -1;\r\n },\r\n timeToEditRule: function (): any {\r\n if (this.editOccasionRequest.timeFrom < this.editOccasionRequest.timeTo) {\r\n return true;\r\n } else {\r\n return this.$vuetify.lang.t('$vuetify.timeTo') + ' ' + this.$vuetify.lang.t('$vuetify.mustBeAfter') + ' ' + this.$vuetify.lang.t('$vuetify.timeFrom') ;\r\n }\r\n },\r\n timeToCreateRule: function (): any {\r\n if (this.registrationRequest.timeFrom < this.registrationRequest.timeTo) {\r\n return true;\r\n } else {\r\n return this.$vuetify.lang.t('$vuetify.timeTo') + ' ' + this.$vuetify.lang.t('$vuetify.mustBeAfter') + ' ' + this.$vuetify.lang.t('$vuetify.timeFrom');\r\n }\r\n },\r\n dateToCreateRule: function (): any {\r\n if (this.registrationRequest.dateFrom == null || this.registrationRequest.dateTo == null || this.registrationRequest.dateFrom < this.registrationRequest.dateTo) {\r\n return true;\r\n } else {\r\n return this.$vuetify.lang.t('$vuetify.dateTo') + ' ' + this.$vuetify.lang.t('$vuetify.mustBeAfter') + ' ' + this.$vuetify.lang.t('$vuetify.dateFrom');\r\n }\r\n },\r\n prepareDeleteDialog(item: OccasionDisplay) {\r\n this.showDeleteDialog = true;\r\n this.itemToDeleteId = item.id + '';\r\n this.itemToDeleteName = item.dayOfWeekText + ' ' + item.dateText + ' ' + item.timeFrom + ' - ' + item.timeTo;\r\n },\r\n prepareDeleteFollowingDialog(item: OccasionDisplay) {\r\n if (item.isRecurring) {\r\n this.showDeleteRecurringDialog = true;\r\n this.itemToDeleteId = item.id + '';\r\n this.itemToDeleteName = item.dayOfWeekText + ' ' + item.dateText + ' ' + item.timeFrom + ' - ' + item.timeTo;\r\n } else {\r\n this.prepareDeleteDialog(item);\r\n }\r\n },\r\n removeParticipant(participant: any) {\r\n const data = {\r\n occasionId: this.occasionConfirm.id,\r\n occasionParticipantId: participant.id\r\n };\r\n\r\n this.increaseOngoingSaves();\r\n\r\n this.$store.commit('addOverlay');\r\n OccasionService.RemoveParticipant(data).then(() => {\r\n this.prepareOccasionConfirm(this.occasionConfirm);\r\n })\r\n .catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n this.resetOngoingSaves();\r\n })\r\n .finally(() => {\r\n this.$store.commit('removeOverlay');\r\n this.decreaseOngoingSaves();\r\n });\r\n },\r\n addParticipant(participant: ParticipantGroupRegistrationRequest, addPersonToGroup: boolean) {\r\n //console.log(\"adding participant\", participant, addPersonToGroup);\r\n participant.groupId = addPersonToGroup ? this.selectedOccasionGroupId : 0;\r\n this.increaseOngoingSaves();\r\n const data = { participant: participant, occasionId: this.occasionConfirm.id, addPersonToGroup: addPersonToGroup, groupId: this.selectedOccasionGroupId };\r\n this.$store.commit('addOverlay');\r\n OccasionService.AddParticipant(data)\r\n .then(() => {\r\n this.addParticipantDialogOpen = false;\r\n this.prepareOccasionConfirm(this.occasionConfirm);\r\n })\r\n .catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n this.resetOngoingSaves();\r\n })\r\n .finally(() => {\r\n this.$store.commit('removeOverlay');\r\n this.decreaseOngoingSaves();\r\n });\r\n }, \r\n updateAllParticipantsSelected() {\r\n let result = false;\r\n if (this.itemsConfirm && this.itemsConfirm.participants) {\r\n result = !this.itemsConfirm.participants.some((s: any) => !s.isPresent );\r\n }\r\n this.allParticipantsSelected = result;\r\n },\r\n selectAllParticipants(): void {\r\n if (this.itemsConfirm && this.itemsConfirm.participants) {\r\n if (this.allParticipantsSelected) {\r\n this.itemsConfirm.participants.forEach((s: any) => {\r\n if (!s.isPresent) {\r\n s.isPresent = true;\r\n this.saveIsPresent(s);\r\n }\r\n });\r\n } else {\r\n this.itemsConfirm.participants.forEach((s: any) => {\r\n if (s.isPresent) {\r\n s.isPresent = false;\r\n this.saveIsPresent(s);\r\n }\r\n });\r\n }\r\n }\r\n },\r\n updateAllLeadersSelected() {\r\n let result = false;\r\n if (this.itemsConfirm && this.itemsConfirm.participants) {\r\n result = !this.itemsConfirm.leaders.some((s: any) => !s.isPresent);\r\n }\r\n this.allLeadersSelected = result;\r\n },\r\n selectAllLeaders(): void {\r\n if (this.itemsConfirm && this.itemsConfirm.participants) {\r\n if (this.allLeadersSelected) {\r\n this.itemsConfirm.leaders.forEach((s: any) => { s.isPresent = true; this.saveIsPresent(s); });\r\n } else {\r\n this.itemsConfirm.leaders.forEach((s: any) => { s.isPresent = false; this.saveIsPresent(s); });\r\n }\r\n }\r\n },\r\n\r\n getEditGroupName(): string {\r\n if (this.editOccasionRequest && this.editOccasionRequest.groupId) {\r\n const index = this.getGroupIndex(this.editOccasionRequest.groupId);\r\n if (index >= 0) {\r\n return this.groups[index].text;\r\n }\r\n }\r\n\r\n return \"\";\r\n },\r\n getGroupIndex(groupId: number) {\r\n if (!groupId) {\r\n return -1;\r\n }\r\n return this.groups.findIndex((s: SelectListItem) => s.value == groupId.toString());\r\n },\r\n closeEdit() {\r\n this.editDialogOpen = false;\r\n this.editOccasionRequest = {} as Occasion;\r\n },\r\n closeCreate() {\r\n this.createDialogOpen = false;\r\n this.registrationRequest = new OccasionCreate();\r\n },\r\n closeConfirm() {\r\n this.confirmDialogOpen = false;\r\n this.ongoingSaves = -1;\r\n this.getOccasionsUnconfirmed();\r\n this.getOccasionsComing();\r\n this.getOccasionsConfirmed();\r\n //Counter for v-dialog. Resets the scrolling position after close\r\n this.dialogKey++;\r\n },\r\n closePersonEdit() { \r\n this.editPersonDialogOpen = false;\r\n this.personRequest = {} as Person; \r\n },\r\n saveParticipantsConfirmed(): void {\r\n const data = { occasionId: this.occasionConfirm.id, isParticipantsConfirmed: this.itemsConfirm.isParticipantsConfirmed };\r\n\r\n this.increaseOngoingSaves();\r\n OccasionService.SetParticipantsConfirmed(data)\r\n .then(result => {\r\n if (!this.itemsConfirm.isParticipantsConfirmed) {\r\n this.itemsConfirm.participantsConfirmed = \"\";\r\n this.itemsConfirm.participantsConfirmedBy = \"\";\r\n //Reload participants when occasion unconfirmed\r\n this.getParticipants(data.occasionId);\r\n }\r\n })\r\n .catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n this.itemsConfirm.isParticipantsConfirmed = !this.itemsConfirm.isParticipantsConfirmed;\r\n this.resetOngoingSaves();\r\n })\r\n .finally(() => {\r\n this.decreaseOngoingSaves();\r\n });\r\n },\r\n getParticipants(id: number) {\r\n OccasionService.GetParticipants(id).then(response => {\r\n this.itemsConfirm = response.data;\r\n this.selectedOccasionGroupId = this.itemsConfirm.groupId;\r\n this.updateAllParticipantsSelected();\r\n this.updateAllLeadersSelected();\r\n this.allPersonsHasMandatoryData = !this.itemsConfirm.participants.some((s: any) => !s.hasMandatoryData) && !this.itemsConfirm.leaders.some((s: any) => !s.hasMandatoryData);\r\n this.isActivitySSNMandatory = this.itemsConfirm.isActivitySSNMandatory; //we get mandatory flag from activity not application setting as we do in the personal register\r\n })\r\n .catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n })\r\n .finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n },\r\n prepareOccasionConfirm(item: Occasion): void {\r\n this.$store.commit('addOverlay');\r\n OccasionService.GetParticipants(item.id).then(response => {\r\n this.itemsConfirm = response.data;\r\n this.confirmDialogOpen = true;\r\n this.selectedOccasionGroupId = this.itemsConfirm.groupId;\r\n this.occasionConfirm = item;\r\n this.updateAllParticipantsSelected();\r\n this.updateAllLeadersSelected();\r\n this.allPersonsHasMandatoryData = !this.itemsConfirm.participants.some((s: any) => !s.hasMandatoryData) && !this.itemsConfirm.leaders.some((s: any) => !s.hasMandatoryData);\r\n this.isActivitySSNMandatory = this.itemsConfirm.isActivitySSNMandatory; //we get mandatory flag from activity not application setting as we do in the personal register\r\n })\r\n .catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n })\r\n .finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n },\r\n saveIsTemporaryLeader(item: any): void {\r\n const data = { personId: item.personId, occasionId: item.occasionId, isTemporaryLeader: item.isTemporaryLeader };\r\n\r\n this.increaseOngoingSaves();\r\n\r\n this.$store.commit('addOverlay');\r\n OccasionService.SetIsTemporaryLeader(data)\r\n .then(result => {\r\n this.prepareOccasionConfirm(this.occasionConfirm);\r\n })\r\n .catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n\r\n item.isTemporaryLeader = !item.isTemporaryLeader;\r\n this.resetOngoingSaves();\r\n })\r\n .finally(() => {\r\n this.$store.commit('removeOverlay');\r\n this.decreaseOngoingSaves();\r\n });\r\n },\r\n saveIsPresent(item: any): void {\r\n const data = { personId: item.personId, occasionId: item.occasionId, isPresent: item.isPresent };\r\n\r\n this.increaseOngoingSaves();\r\n\r\n OccasionService.SetIsPresent(data)\r\n .then(result => {})\r\n .catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n item.isPresent = !item.isPresent;\r\n this.resetOngoingSaves();\r\n })\r\n .finally(() => {\r\n this.decreaseOngoingSaves();\r\n this.updateAllParticipantsSelected();\r\n this.updateAllLeadersSelected();\r\n });\r\n this.updateAllParticipantsSelected();\r\n this.updateAllLeadersSelected();\r\n },\r\n prepareOccasionEdit(item: Occasion): void {\r\n this.$store.commit('addOverlay');\r\n OccasionService.GetOccasion(item.id)\r\n .then(response => {\r\n this.editOccasionRequest = response.data;\r\n this.editDialogOpen = true;\r\n if (this.editOccasionRequest.isRecurring) {\r\n OccasionService.GetRecurringOccasions(this.editOccasionRequest.id).then(responseOcc => {\r\n this.editOccasionRecurringOccasions = responseOcc.data;\r\n })\r\n .catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n })\r\n .finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n })\r\n .finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n },\r\n async createOccasion() {\r\n // If there is only one group in groups we use that group for the occasion\r\n if (this.groups.length == 1) {\r\n this.registrationRequest.groupId = typeof this.groups[0].value !== 'number' ? parseInt(this.groups[0].value) : this.groups[0].value as number;\r\n }\r\n\r\n (this.$refs.locationCreateCombobox as HTMLElement).blur();\r\n\r\n this.$nextTick(() => {\r\n if (!(this.$refs.createForm as VuetifyFormMethods).validate()) {\r\n return;\r\n }\r\n\r\n this.$store.commit('addOverlay');\r\n\r\n OccasionService.CreateOccasion(this.registrationRequest).then(\r\n (result) => {\r\n this.getOccasionsUnconfirmed();\r\n this.getOccasionsComing();\r\n this.getOccasionsConfirmed();\r\n this.closeCreate();\r\n\r\n SnackbarService.addSuccessMessage(result?.data);\r\n\r\n })\r\n .catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n })\r\n .finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n });\r\n },\r\n async removeOccasion(id: number) {\r\n this.showDeleteDialog = false;\r\n this.showDeleteRecurringDialog = false;\r\n\r\n if (id != null) {\r\n this.$store.commit('addOverlay');\r\n OccasionService.RemoveOccasion(id).then(\r\n (result) => {\r\n SnackbarService.addSuccessMessage(result?.data);\r\n\r\n this.getOccasionsUnconfirmed();\r\n this.getOccasionsComing();\r\n this.getOccasionsConfirmed();\r\n },\r\n (error: AxiosError) => {\r\n console.log(error);\r\n\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n }\r\n ).finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n }\r\n },\r\n async removeOccasionAndFollowing(id: string) {\r\n this.showDeleteDialog = false;\r\n this.showDeleteRecurringDialog = false;\r\n\r\n if (id != null) {\r\n this.$store.commit('addOverlay');\r\n OccasionService.RemoveOccasionAndFollowing(parseInt(id)).then(\r\n (result) => {\r\n SnackbarService.addSuccessMessage(result?.data);\r\n\r\n this.getOccasionsUnconfirmed();\r\n this.getOccasionsComing();\r\n this.getOccasionsConfirmed();\r\n },\r\n (error: AxiosError) => {\r\n console.log(error);\r\n\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n }\r\n ).finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n }\r\n },\r\n saveOccasion() {\r\n (this.$refs.locationEditCombobox as HTMLElement).blur();\r\n\r\n this.$nextTick(() => {\r\n if (!(this.$refs.editForm as VuetifyFormMethods).validate()) {\r\n return;\r\n }\r\n this.$store.commit('addOverlay');\r\n OccasionService.SaveOccasion(this.editOccasionRequest as Occasion).then(\r\n (result) => {\r\n SnackbarService.addSuccessMessage(result?.data);\r\n this.getOccasionsUnconfirmed();\r\n this.getOccasionsComing();\r\n this.getOccasionsConfirmed();\r\n this.closeEdit();\r\n },\r\n (error: AxiosError) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n }\r\n ).finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n });\r\n },\r\n async getOccasionsComing() {\r\n const sortBy = (this.optionsComing as any).sortBy ?? [];\r\n const sortDesc = (this.optionsComing as any).sortDesc ?? [];\r\n const page = (this.optionsComing as any).page ?? 1;\r\n const itemsPerPage = (this.optionsComing as any).itemsPerPage ?? 10;\r\n\r\n const data = { sortBy: sortBy, sortDesc: sortDesc, page: page, itemsPerPage: itemsPerPage, showPassed: false };\r\n\r\n this.isTableLoadingComing = true;\r\n OccasionService.GetOccasionsPaged(data).then(response => {\r\n this.itemsComing = response.data.items;\r\n this.totalCountComing = response.data.totalCount;\r\n }).catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n })\r\n .finally(() => {\r\n this.isTableLoadingComing = false;\r\n });\r\n },\r\n async getOccasionsConfirmed() {\r\n const sortBy = (this.optionsConfirmed as any).sortBy ?? [];\r\n const sortDesc = (this.optionsConfirmed as any).sortDesc ?? [];\r\n const page = (this.optionsConfirmed as any).page ?? 1;\r\n const itemsPerPage = (this.optionsConfirmed as any).itemsPerPage ?? 10;\r\n\r\n const data = { sortBy: sortBy, sortDesc: sortDesc, page: page, itemsPerPage: itemsPerPage };\r\n\r\n this.isTableLoadingConfirmed = true;\r\n OccasionService.GetConfirmedPaged(data).then(response => {\r\n this.itemsConfirmed = response.data.items;\r\n this.totalCountConfirmed = response.data.totalCount;\r\n }).catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n })\r\n .finally(() => {\r\n this.isTableLoadingConfirmed = false;\r\n });\r\n },\r\n async getOccasionsUnconfirmed() {\r\n const sortBy = (this.optionsUnconfirmed as any).sortBy ?? [];\r\n const sortDesc = (this.optionsUnconfirmed as any).sortDesc ?? [];\r\n const page = (this.optionsUnconfirmed as any).page ?? 1;\r\n const itemsPerPage = (this.optionsUnconfirmed as any).itemsPerPage ?? 10;\r\n\r\n const data = { sortBy: sortBy, sortDesc: sortDesc, page: page, itemsPerPage: itemsPerPage };\r\n\r\n this.isTableLoadingUnconfirmed = true;\r\n OccasionService.GetUnconfirmedPaged(data).then(response => {\r\n this.itemsUnconfirmed = response.data.items;\r\n console.log(\"Items unconfirmed\", this.itemsUnconfirmed);\r\n this.totalCountUnconfirmed = response.data.totalCount;\r\n }).catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n })\r\n .finally(() => {\r\n this.isTableLoadingUnconfirmed = false;\r\n });\r\n\r\n },\r\n getApplicationSetting(app: ApplicationSetting) {\r\n return this.settings.findIndex((val: any) => val.keyName == app);\r\n },\r\n\r\n async getSettingsByKeyName() {\r\n\r\n SettingService.GetSettingsByKeyNames(\"FormatOfDateOfBirth, ZipCodeVisibleAndMandatory,CityVisibleAndMandatory\")\r\n .then(response => {\r\n this.settings = response.data;\r\n\r\n this.formatDateOfBirth = this.settings[this.getApplicationSetting(ApplicationSetting.FormatOfDateOfBirth)].value.toString();\r\n this.showZipCode = JSON.parse(this.settings[this.getApplicationSetting(ApplicationSetting.ZipCodeVisibleAndMandatory)].value.toString().toLowerCase());\r\n this.showCity = JSON.parse(this.settings[this.getApplicationSetting(ApplicationSetting.CityVisibleAndMandatory)].value.toString().toLowerCase());\r\n\r\n \r\n }).catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n }).finally(() => {\r\n /*this.loading = false;*/\r\n this.$store.commit('removeOverlay');\r\n });\r\n\r\n },\r\n editPerson(person: any) {\r\n // Keeps row in datatable the same, whilst updating the values.\r\n this.$store.commit('addOverlay');\r\n PersonService.GetPerson(person.personId).then(response => {\r\n this.personRequest = response.data;\r\n this.editPersonDialogOpen = true;\r\n }).catch((error) => {\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n })\r\n .finally(() => {\r\n this.$store.commit('removeOverlay');\r\n });\r\n\r\n },\r\n async savePerson(itemToUpdate: Person) {\r\n\r\n if (!(this.$refs.personForm as VuetifyFormMethods).validate()) {\r\n return;\r\n }\r\n\r\n if (itemToUpdate.id != null && itemToUpdate.id > 0) {\r\n PersonService.EditPerson(itemToUpdate, \"\").then((result) => {\r\n // SnackbarService.addSuccessMessage(result?.data, false);\r\n \r\n this.prepareOccasionConfirm(this.occasionConfirm);\r\n this.closePersonEdit();\r\n },\r\n (error: AxiosError) => {\r\n\r\n SnackbarService.addErrorMessage(\r\n error.response?.data || error.response?.statusText\r\n );\r\n }\r\n );\r\n }\r\n },\r\n // rules\r\n validDateOfBirth(value: string): string | boolean {\r\n return validateDateOfBirth(value, this.formatDateOfBirth) || this.$vuetify.lang.t('$vuetify.person.invalidDate');\r\n },\r\n // rules\r\n\r\n /* Not to be used before getPersons() is fixed to not fetch all persons full info and called on created!!!\r\n async getPersons() {\r\n this.persons = (await PersonService.GetPersons()).data;\r\n },\r\n uniqueSocialSecurityNumber(value: string): string | boolean {\r\n // Filter except from the item being edited.\r\n\r\n if (\r\n value &&\r\n this.persons\r\n .filter((x) => x.id != this.personRequest.id)\r\n .findIndex(\r\n (f) =>\r\n f.socialSecurityNumber.trim().toLocaleLowerCase() ==\r\n value.trim().toLocaleLowerCase()\r\n ) > -1\r\n ) {\r\n return false;\r\n //return this.$vuetify.lang.t('$vuetify.person.SSNAlreadyExists') + \" \" + value;\r\n }\r\n\r\n return true;\r\n },*/\r\n\r\n checkValidSSN(value: string): string | boolean {\r\n return validateSSN(value) || this.$vuetify.lang.t('$vuetify.invalidSSN');\r\n },\r\n },\r\n });\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./association-occasions.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./association-occasions.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./association-occasions.vue?vue&type=template&id=5b5b0432&scoped=true\"\nimport script from \"./association-occasions.vue?vue&type=script&lang=ts\"\nexport * from \"./association-occasions.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5b5b0432\",\n null\n \n)\n\nexport default component.exports","import axios from \"axios\";\r\nimport { UserHelper } from \"../UserHelper\";\r\nimport { VueRouter } from 'vue-router/types/router';\r\nimport { Store } from 'vuex'\r\nimport { VueCookies } from 'vue-cookies';\r\n\r\nexport default function setup(store: Store, router: VueRouter, cookies: VueCookies): void {\r\n axios.interceptors.response.use(function (response) {\r\n return response\r\n }, function (error) {\r\n if (error.response.status === 401) {\r\n UserHelper.logoffSRC(store, router, cookies); \r\n }\r\n return Promise.reject(error)\r\n })\r\n} ","import Vue from 'vue'\r\nimport VueRouter, { Route, RouteConfig } from 'vue-router'\r\nimport App from './App.vue'\r\nimport vuetify from './plugins/vuetify'\r\nimport VueCookies from 'vue-cookies';\r\n\r\nimport { store } from '@/stores/Store'\r\nimport Home from '@/pages/home/Home.vue'\r\nimport User from '@/pages/user/Index.vue'\r\nimport AssociationRegister from '@/pages/associationregister/Index.vue'\r\nimport Activity from '@/pages/activity/Index.vue'\r\nimport ContributionPeriods from '@/pages/setting/ContributionPeriods.vue'\r\nimport Logs from '@/pages/setting/Logs.vue'\r\nimport ConfirmUser from '@/pages/confirmUser/Index.vue'\r\nimport Setting from '@/pages/setting/Index.vue'\r\nimport ApplicationSettings from '@/pages/setting/ApplicationSettings.vue'\r\nimport Themes from '@/pages/setting/Themes.vue'\r\nimport Person from '@/pages/person/Index.vue'\r\nimport Groups from \"@/pages/groups/Index.vue\"\r\nimport ChangePassword from '@/pages/changePassword/Index.vue'\r\n\r\nimport Association from \"@/pages/association/association.vue\"\r\nimport AssociationAdmin from \"@/pages/association/association-admin-home.vue\"\r\nimport AssociationGroups from \"@/pages/association/association-admin-groups.vue\"\r\nimport AssociationReport from \"@/pages/association/association-admin-report.vue\"\r\n\r\nimport Occasion from \"@/pages/association/association-occasions.vue\"\r\n\r\n\r\nVue.config.productionTip = false\r\n\r\n// Importing the helpers\r\nimport interceptorsSetup from \"@/helpers/functions/Interceptors\";\r\nimport refreshAuthorizationTokenFromSession from './helpers/functions/AxiosToken';\r\nimport { TabService } from \"@/services/TabService\"\r\nimport { SnackbarService } from './services/SnackbarService';\r\n\r\nrequire('dotenv').config();\r\n\r\nconst routes: RouteConfig[] = [\r\n {\r\n path: '/',\r\n component: Home,\r\n },\r\n {\r\n path: '/user',\r\n component: User,\r\n },\r\n {\r\n path: '/associationregister',\r\n component: AssociationRegister\r\n },\r\n {\r\n path: '/confirmUser',\r\n component: ConfirmUser\r\n },\r\n {\r\n path: '/changePassword',\r\n component: ChangePassword\r\n },\r\n {\r\n path: '/person',\r\n component: Person\r\n },\r\n {\r\n path: '/association/',\r\n component: Association, children: [\r\n {\r\n path: \"\",\r\n component: AssociationAdmin\r\n },\r\n {\r\n path: \"report\",\r\n component: AssociationReport\r\n },\r\n {\r\n path: \"groups\",\r\n component: Groups\r\n },\r\n //{\r\n // path: \"activities\",\r\n // component: Activity\r\n //}, \r\n {\r\n path: \"persons\",\r\n component: Person\r\n }, \r\n {\r\n path: \"occasions\",\r\n component: Occasion,\r\n children: [\r\n {\r\n path: \"occasion\",\r\n beforeEnter: (to: Route, from: Route, next) => {\r\n TabService.hideTabs();\r\n next();\r\n }\r\n }\r\n ]\r\n }\r\n ],\r\n beforeEnter: (to: Route, from: Route, next) => {\r\n TabService.showTabs();\r\n next();\r\n }\r\n },\r\n {\r\n path: '/activity',\r\n component: Activity\r\n },\r\n {\r\n path: '/setting/', component: Setting, children: [\r\n {\r\n path: \"\",\r\n component: ApplicationSettings\r\n },\r\n {\r\n path: \"periods\",\r\n component: ContributionPeriods,\r\n children: [\r\n {\r\n path: \"period\",\r\n beforeEnter: (to: Route, from: Route, next) => {\r\n TabService.hideTabs();\r\n next();\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: \"logs\",\r\n component: Logs\r\n },\r\n {\r\n path: 'themes',\r\n component: Themes\r\n }\r\n ],\r\n beforeEnter: (to: Route, from: Route, next) => {\r\n TabService.showTabs();\r\n next();\r\n }\r\n },\r\n\r\n]\r\n\r\n// 3. Create the router instance and pass the `routes` option\r\n// You can pass in additional options here, but let's\r\n// keep it simple for now.\r\nconst router = new VueRouter({\r\n // 4. Provide the history implementation to use. We are using the hash history for simplicity here.\r\n // router v4: history: VueRouter.createWebHashHistory(),\r\n routes, // short for `routes: routes`\r\n\r\n})\r\n\r\nrouter.afterEach((to, from) => {\r\n SnackbarService.resetMessages();\r\n})\r\n\r\nVue.use(VueCookies);\r\n\r\ninterceptorsSetup(store, router, Vue.$cookies);\r\n\r\nnew Vue({\r\n router: router,\r\n store: store,\r\n vuetify,\r\n render: h => h(App)\r\n}).$mount('#app')\r\n"],"sourceRoot":""}