1"use strict";(self["webpackChunkclient"]=self["webpackChunkclient"]||[]).push([[2466],{3408:function(e,t,a){a.d(t,{A:function(){return P}});var i=a(20641),l=a(90033);const s=["data-setting-key"],o={class:"setting-content"},n={class:"setting-label"},r={class:"label mb-1"},u={key:0,class:"has-text-danger"},p={key:0,class:"help has-text-grey is-size-7 mt-0"},c={class:"setting-control"},d=["label"],y=["value"],m=["value"],h=["value"],f={class:"icon-text"},g={key:0,class:"icon is-small"},v={key:0,class:"setting-badge"};function b(e,t,a,b,S,k){const w=(0,i.g2)("b-switch"),P=(0,i.g2)("b-input"),A=(0,i.g2)("b-select"),D=(0,i.g2)("font-awesome-icon"),C=(0,i.g2)("router-link");return(0,i.uX)(),(0,i.CE)("div",{class:"setting-item","data-setting-key":a.settingKey},[(0,i.Lk)("div",o,[(0,i.Lk)("div",n,[(0,i.Lk)("label",r,[(0,i.eW)((0,l.v_)(a.label)+" ",1),a.required?((0,i.uX)(),(0,i.CE)("span",u," * ")):(0,i.Q3)("",!0)]),a.help?((0,i.uX)(),(0,i.CE)("p",p,(0,l.v_)(a.help),1)):(0,i.Q3)("",!0)]),(0,i.Lk)("div",c,["switch"===a.type?((0,i.uX)(),(0,i.Wv)(w,{key:0,"model-value":a.modelValue,disabled:a.disabled,"onUpdate:modelValue":t[0]||(t[0]=t=>e.$emit("update:modelValue",t))},null,8,["model-value","disabled"])):"text"===a.type||"email"===a.type||"url"===a.type?((0,i.uX)(),(0,i.Wv)(P,{key:1,"model-value":a.modelValue,type:a.type,placeholder:a.placeholder,disabled:a.disabled,"onUpdate:modelValue":t[1]||(t[1]=t=>e.$emit("update:modelValue",t))},null,8,["model-value","type","placeholder","disabled"])):"number"===a.type?((0,i.uX)(),(0,i.Wv)(P,{key:2,"model-value":a.modelValue,type:"number",min:a.min,max:a.max,placeholder:a.placeholder,disabled:a.disabled,"onUpdate:modelValue":t[2]||(t[2]=t=>e.$emit("update:modelValue",t))},null,8,["model-value","min","max","placeholder","disabled"])):"select"===a.type?((0,i.uX)(),(0,i.Wv)(A,{key:3,"model-value":a.modelValue,placeholder:a.placeholder,disabled:a.disabled,"onUpdate:modelValue":t[3]||(t[3]=t=>e.$emit("update:modelValue",t))},{default:(0,i.k6)(()=>[a.optionGroups?((0,i.uX)(!0),(0,i.CE)(i.FK,{key:0},(0,i.pI)(a.optionGroups,(e,t)=>((0,i.uX)(),(0,i.CE)(i.FK,{key:t},[e.label?((0,i.uX)(),(0,i.CE)("optgroup",{key:0,label:e.label},[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.options,e=>((0,i.uX)(),(0,i.CE)("option",{key:e.value,value:e.value},(0,l.v_)(e.label),9,y))),128))],8,d)):((0,i.uX)(!0),(0,i.CE)(i.FK,{key:1},(0,i.pI)(e.options,e=>((0,i.uX)(),(0,i.CE)("option",{key:e.value,value:e.value},(0,l.v_)(e.label),9,m))),128))],64))),128)):((0,i.uX)(!0),(0,i.CE)(i.FK,{key:1},(0,i.pI)(a.options,e=>((0,i.uX)(),(0,i.CE)("option",{key:e.value,value:e.value},(0,l.v_)(e.label),9,h))),128))]),_:1},8,["model-value","placeholder","disabled"])):"textarea"===a.type?((0,i.uX)(),(0,i.Wv)(P,{key:4,"model-value":a.modelValue,type:"textarea",rows:a.rows,placeholder:a.placeholder,disabled:a.disabled,"onUpdate:modelValue":t[4]||(t[4]=t=>e.$emit("update:modelValue",t))},null,8,["model-value","rows","placeholder","disabled"])):"link"===a.type?((0,i.uX)(),(0,i.Wv)(C,{key:5,to:a.to,class:"button is-rounded is-primary is-light is-small"},{default:(0,i.k6)(()=>[(0,i.Lk)("span",f,[a.linkIcon?((0,i.uX)(),(0,i.CE)("span",g,[(0,i.bF)(D,{icon:a.linkIcon},null,8,["icon"])])):(0,i.Q3)("",!0),(0,i.Lk)("span",null,(0,l.v_)(a.linkText||e.$t("Configure")),1)])]),_:1},8,["to"])):(0,i.RG)(e.$slots,"default",{key:6},void 0,!0)])]),a.badge?((0,i.uX)(),(0,i.CE)("div",v,[(0,i.Lk)("span",{class:(0,l.C4)(["tag is-rounded",a.badgeClass])},(0,l.v_)(a.badge),3)])):(0,i.Q3)("",!0)],8,s)}var S={name:"SettingItem",props:{settingKey:{type:String,default:null},label:{type:String,required:!0},help:{type:String,default:null},type:{type:String,default:"text",validator:e=>["switch","text","email","url","number","select","textarea","link","custom"].includes(e)},modelValue:{type:[String,Number,Boolean,Array,Object],default:null},placeholder:{type:String,default:null},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},options:{type:Array,default:()=>[]},optionGroups:{type:Array,default:null},min:{type:Number,default:null},max:{type:Number,default:null},rows:{type:Number,default:3},to:{type:[String,Object],default:null},linkText:{type:String,default:null},linkIcon:{type:String,default:"fa-light fa-arrow-right"},badge:{type:String,default:null},badgeClass:{type:String,default:"is-info is-light"}}},k=a(66262);const w=(0,k.A)(S,[["render",b],["__scopeId","data-v-5af34279"]]);var P=w},9155:function(e,t,a){a.d(t,{s:function(){return i}});const i={userTypes:[{key:"hasUserTypes",type:"switch",label:"Enable User Types",help:"Categorize users by type (member, volunteer, staff, etc.)"},{key:"hasRoles",type:"switch",label:"Enable Roles",help:"Assign roles and responsibilities to users"},{key:"hasVolunteerRoles",type:"switch",label:"Enable Volunteer Roles",help:"Special volunteer role management"},{key:"whoCanSeeUserType",type:"select",label:"Who Can See User Types",help:"Set visibility level for user type information",options:"permissionLevelOptions"},{key:"whoCanFilterUsersByType",type:"select",label:"Who Can Filter Users by Type",help:"Controls who can filter the member list by user type",options:"adminOrUserOptions",showIf:e=>e.hasUserTypes},{key:"defaultUserTypeIdAfterRegistration",type:"select",label:"Default User Type After Registration",help:"User type to assign to new registrations",options:"userTypeOptions",placeholder:"Select user type"},{key:"guestUserTypeId",type:"select",label:"Guest User Type",help:"User type for guest users",options:"userTypeOptions",placeholder:"Select user type"}],registration:[{key:"hasRegistrationForm",type:"switch",label:"Enable Registration Form",help:"Allow new user registrations through form"},{key:"hasManualApprove",type:"switch",label:"Manual Approval",help:"New registrations require admin a
1pproval"},{key:"hasFullMembership",type:"switch",label:"Full Membership Status",help:"Enable full membership designation for users"},{key:"dateJoinedEqualsDateFullMember",type:"switch",label:"Join Date = Full Member Date",help:"Set full member date equal to join date automatically"},{key:"sendWelcomeMessageOnStatusActive",type:"switch",label:"Send Welcome Message",help:"Send welcome message when user status becomes active"},{key:"notifyAdminsOfNewRegistrations",type:"switch",label:"Notify Admins of New Registrations",help:"Send notification to admins for each new registration"},{key:"notifyAdminsOnAccountDeactivation",type:"switch",label:"Notify Admins on Account Deactivation",help:"Send notification to admins when a member closes their own account"},{key:"canReactivateAccountOnLogin",type:"switch",label:"Allow Account Reactivation",help:"Users can reactivate deactivated accounts on login. With manual approval on, the account waits for an admin to approve it"},{key:"passwordLoginByDefault",type:"switch",label:"Default to Password Login",help:"Show the password login form by default instead of the email one-time code. Members can still switch to a code."},{key:"defaultStatusForAdminRegistration",type:"select",label:"Default Status for Admin-Created Users",help:"Status assigned to new users when registered by administrators",options:[{value:"ACTIVE",label:"Active"},{value:"INACTIVE",label:"Inactive"},{value:"UNAPPROVED",label:"Unapproved"},{value:"WAITING_LIST",label:"Waiting List"},{value:"SUSPENDED",label:"Suspended"},{value:"EXCLUDED",label:"Excluded"}]}],invitations:[{key:"hasUserInvitation",type:"switch",label:"Enable User Invitations",help:"Allow members to invite others to join"},{key:"whoCanSendUserInvitation",type:"select",label:"Who Can Send Invitations",help:"Set permission level for sending invitations",options:"roleOptions",showIf:e=>e.hasUserInvitation}],family:[{key:"hasFamilyMembers",type:"switch",label:"Enable Family Members",help:"Allow linking family member accounts"},{key:"hasFamilyNonMembers",type:"switch",label:"Non-Member Family Profiles",help:"Allow profiles for family members who aren't full members"}],profile:[{key:"hasCardId",type:"switch",label:"Enable Card/Member IDs",help:"Assign unique card/member ID numbers to users"},{key:"hasOrganisationalChart",type:"switch",label:"Organizational Chart",help:"Display organizational structure and hierarchy"},{key:"hasListFieldAge",type:"switch",label:"Show Age in Lists",help:"Display age field in user lists and directories"},{key:"adminCanChangeProfileImage",type:"switch",label:"Admin Can Change Profile Images",help:"Allow admins to modify user profile images"},{key:"nameDisplayLastNameFirst",type:"switch",label:"Display Last Name First",help:"Show user names as 'Last Name - First Name' instead of 'First Name - Last Name'"},{key:"profileCompletionEnabled",type:"switch",label:"Profile Completion Enabled",help:"Show users profile completion percentage"},{key:"hasSkills",type:"switch",label:"Enable Skills Field",help:"Adds a Skills custom field to user profiles, seeded with a predefined catalog. Existing skill selections are preserved if toggled off."},{key:"hasAvailability",type:"switch",label:"Enable Weekly Availability",help:"Lets members declare how many volunteer hours they have available per weekday. Adds a profile widget and a weekday filter on the user list. Existing values are preserved if toggled off."},{key:"hasProfileActivity",type:"switch",label:"Enable Profile Notes & Activity",help:"Adds an Activity tab to member profiles where staff can leave notes and see a timeline of donations, form submissions, tags and note changes. Visible only to users with HR or Financial permission for that member, never to the member themselves. Existing notes are preserved if toggled off."},{key:"congressionalDistrictTagging",type:"switch",label:"Auto-Tag US Congressional District",help:'Tags members and contacts with their US Congressional district (e.g. "District: TX-07"), looked up from their address whenever it changes. US addresses only; members elsewhere are left untagged. Each lookup costs Geocodio credits. Existing tags are removed if toggled off only when an address later changes.'}],visibility:[{key:"seeMembersInGeneralUnitGroup",type:"select",label:"Who Can See Members in General Groups",help:"Set visibility level for general group members",options:"permissionLevelOptions"},{key:"seeMembersInLocalCenter",type:"select",label:"Who Can See Local Center Members",help:"Set visibility level for local center members",options:"permissionLevelOptions"},{key:"privatizeUserProfiles",type:"switch",label:"Restrict Profiles to Shared Local Centers",help:"Prevents users from seeing profiles from other local centers"},{key:"allowLocalAdminsToModifyUserPermissions",type:"switch",label:"Allow Local Admins to Modify User Permissions",help:"Allow local admins to modify user statuses, permissions, and roles"}],referral:[{key:"numberOfReferralsNeededForSignup",type:"select",label:"Number of Referrals Needed for Signup",help:"Number of referrals required before a user can complete signup",options:[{value:null,label:"None"},{value:1,label:"1"},{value:2,label:"2"},{value:3,label:"3"},{value:4,label:"4"},{value:5,label:"5"},{value:6,label:"6"},{value:7,label:"7"},{value:8,label:"8"},{value:9,label:"9"},{value:10,label:"10"}]}],resignation:[{key:"autoCloseAccountsThatResign",type:"switch",label:"Automatically Inactivate Accounts After Resignation",help:"When a resignation request is approved, the userâs account will be set to inactive automatically."}],custom:[{key:"customHomepage",type:"text",label:"Custom Homepage Route",help:"Vue route name for logged-in users homepage (e.g. EventList, ProjectList)",placeholder:"Dashboard"},{key:"anonymousHomepage",type:"text",label:"Anonymous Homepage URL",help:"Custom homepage route for anonymous visitors",placeholder:"/welcome"},{key:"hasConnections",type:"switch",label:"Has Connections",help:"Allows users to connect with each-other on the platform"},{key:"userRecommendations",type:"switch",label:"User Recommendations",help:"Shows recommendations to users to enrich their network. This feature needs to be configured in the dashboard."},{key:"hasMergeProfiles",type:"switch",label:"Merge Profiles",help:"Allow HR admins to merge duplicate user and contact profiles"}],privacyDefaults:[{key:"profilePrivacyDefaultName",type:"switch",label:"Name",help:"Show full name to community by default",settingsKey:"permission"},{key:"profilePrivacyDefaultEmail",type:"switch",label:"Email",help:"Show email to community by default",settingsKey:"permission"},{key:"profilePrivacyDefaultPhone",type:"switch",label:"Phone",help:"Show phone number to community by default",settingsKey:"permission"},{key:"profilePrivacyDefaultAge",type:"switch",label:"Age",help:"Show age to community by default",settingsKey:"permission"},{key:"profilePrivacyDefaultTown",type:"switch",label:"Town",help:"Show town/location to community by default",settingsKey:"permission"},{key:"profilePrivacyDefaultImage",type:"switch",label:"Profile Image",help:"Show profile image to community by default",settingsKey:"permission"},{key:"profilePrivacyDefaultProfession",type:"switch",label:"Profession",help:"Show profession to community by default",settingsKey:"permission"},{key:"profilePrivacyDefaultSocial",type:"switch",label:"Social Media",help:"Show social media links to community by default",settingsKey:"permission"}]}},70956:function(e,t,a){a.d(t,{A:function(){return v}});var i=a(20641),l=a(90033),s=a(53751);const o={class:"settings-section card"},n={class:"card-content"},r={class:"is-flex is-align-items-center"}
1,u={class:"title is-size-6 mb-0"},p={class:"section-header-actions is-flex is-align-items-center"},c={key:0,class:"help has-text-grey mr-3 is-size-7"},d={key:1,class:"icon is-small"},y={class:"section-content"};function m(e,t,a,m,h,f){const g=(0,i.g2)("font-awesome-icon");return(0,i.uX)(),(0,i.CE)("div",o,[(0,i.Lk)("div",n,[(0,i.Lk)("div",{class:(0,l.C4)(["section-header",{"is-clickable":a.collapsible}]),onClick:t[0]||(t[0]=e=>a.collapsible&&f.toggleCollapse())},[(0,i.Lk)("div",r,[(0,i.Lk)("h3",u,(0,l.v_)(a.title),1),a.badge?((0,i.uX)(),(0,i.CE)("span",{key:0,class:(0,l.C4)(["tag is-rounded ml-3",a.badgeClass])},(0,l.v_)(a.badge),3)):(0,i.Q3)("",!0)]),(0,i.Lk)("div",p,[a.description?((0,i.uX)(),(0,i.CE)("p",c,(0,l.v_)(a.description),1)):(0,i.Q3)("",!0),a.collapsible?((0,i.uX)(),(0,i.CE)("span",d,[(0,i.bF)(g,{icon:h.isExpanded?"fa-light fa-chevron-up":"fa-light fa-chevron-down"},null,8,["icon"])])):(0,i.Q3)("",!0)])],2),(0,i.bo)((0,i.Lk)("div",y,[(0,i.RG)(e.$slots,"default",{},void 0,!0)],512),[[s.aG,h.isExpanded]])])])}var h={name:"SettingsSection",props:{title:{type:String,required:!0},description:{type:String,default:null},collapsible:{type:Boolean,default:!1},defaultExpanded:{type:Boolean,default:!0},badge:{type:String,default:null},badgeClass:{type:String,default:"is-info is-light"}},data(){return{isExpanded:this.defaultExpanded}},methods:{toggleCollapse(){this.isExpanded=!this.isExpanded}}},f=a(66262);const g=(0,f.A)(h,[["render",m],["__scopeId","data-v-131c8c24"]]);var v=g},71993:function(e,t){t.A={data(){return{autoSaveTimeout:null,isAutoSaving:!1}},methods:{autoSaveSetting(e,t,a){this.settings[e]=t,this.isAutoSaving=!0,this.autoSaveTimeout&&clearTimeout(this.autoSaveTimeout),this.autoSaveTimeout=setTimeout(()=>{this.performAutoSave(a)},1200)},performAutoSave(e){this.isAutoSaving=!0;const t={settingFeatures:{...this.tenant.settingFeatures,[e]:this.settings}};this.$http.plain.patch(`/tenants/${this.tenant.id}`,t).then(e=>{this.$buefy.toast.open({duration:3e3,message:this.$t("Settings saved automatically"),type:"is-success",position:"is-bottom-right"}),this.$store.commit("setTenant",e.data),this.$store.state.spaces[e.data.slug].tenant=e.data}).catch(e=>{console.log(e),this.$buefy.toast.open({duration:5e3,message:this.$t("Error saving settings"),type:"is-danger",position:"is-bottom-right"})}).finally(()=>{this.isAutoSaving=!1})},autoSaveMultipleGroups(e,t,a,i){this[a][e]=t,this.isAutoSaving=!0,this.autoSaveTimeout&&clearTimeout(this.autoSaveTimeout),this.autoSaveTimeout=setTimeout(()=>{this.performMultiGroupSave(i)},800)},performMultiGroupSave(e){this.isAutoSaving=!0;const t={settingFeatures:{...this.tenant.settingFeatures,...e}};this.$http.plain.patch(`/tenants/${this.tenant.id}`,t).then(e=>{this.$buefy.toast.open({duration:3e3,message:this.$t("Settings saved automatically"),type:"is-success",position:"is-bottom-right"}),this.$store.commit("setTenant",e.data),this.$store.state.spaces[e.data.slug].tenant=e.data}).catch(e=>{console.log(e),this.$buefy.toast.open({duration:5e3,message:this.$t("Error saving settings"),type:"is-danger",position:"is-bottom-right"})}).finally(()=>{this.isAutoSaving=!1})}},beforeUnmount(){this.autoSaveTimeout&&clearTimeout(this.autoSaveTimeout)}}},72466:function(e,t,a){a.r(t),a.d(t,{default:function(){return g}});var i=a(20641),l=a(53751),s=a(90033);const o={key:0,class:"auto-save-indicator mb-5"},n={class:"auto-save-content"};function r(e,t,a,r,u,p){const c=(0,i.g2)("b-loading"),d=(0,i.g2)("setting-item"),y=(0,i.g2)("settings-section"),m=(0,i.g2)("font-awesome-icon");return(0,i.uX)(),(0,i.CE)("div",null,[(0,i.bF)(c,{modelValue:u.isLoading,"onUpdate:modelValue":t[0]||(t[0]=e=>u.isLoading=e),"is-full-page":!1},null,8,["modelValue"]),(0,i.bF)(y,{title:e.$t("Default Privacy Settings"),description:e.$t("Set default privacy settings for new members. Toggle ON means the field is visible to the community by default.")},{default:(0,i.k6)(()=>[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(p.privacyDefaultsSettings,t=>((0,i.uX)(),(0,i.Wv)(d,{key:t.key,modelValue:u.privacySettings[t.key],"onUpdate:modelValue":[e=>u.privacySettings[t.key]=e,e=>p.savePrivacySetting(t.key,e)],label:e.$t(t.label),help:e.$t(t.help),type:t.type},null,8,["modelValue","onUpdate:modelValue","label","help","type"]))),128))]),_:1},8,["title","description"]),(0,i.bF)(l.eB,{name:"fade"},{default:(0,i.k6)(()=>[e.isAutoSaving?((0,i.uX)(),(0,i.CE)("div",o,[(0,i.Lk)("div",n,[(0,i.bF)(m,{icon:"fa-light fa-circle-notch",spin:"",class:"mr-2"}),(0,i.Lk)("span",null,(0,s.v_)(e.$t("Saving"))+"...",1)])])):(0,i.Q3)("",!0)]),_:1})])}var u=a(70956),p=a(3408),c=a(40834),d=a(9155),y=a(71993),m={name:"PrivacyDefaultsConfig",components:{SettingsSection:u.A,SettingItem:p.A},mixins:[y.A],data(){return{isLoading:!1,privacySettings:{}}},computed:{...(0,c.L8)(["tenant"]),privacyDefaultsSettings(){return d.s.privacyDefaults}},created(){this.loadSettings()},methods:{loadSettings(){const e={profilePrivacyDefaultName:!0,profilePrivacyDefaultEmail:!1,profilePrivacyDefaultPhone:!1,profilePrivacyDefaultAge:!1,profilePrivacyDefaultTown:!0,profilePrivacyDefaultImage:!0,profilePrivacyDefaultProfession:!0,profilePrivacyDefaultSocial:!0};if(this.tenant?.settingFeatures?.permission){const e=this.tenant.settingFeatures.permission;this.privacySettings={profilePrivacyDefaultName:!this.toBoolean(e.profilePrivacyDefaultName??!1),profilePrivacyDefaultEmail:!this.toBoolean(e.profilePrivacyDefaultEmail??!0),profilePrivacyDefaultPhone:!this.toBoolean(e.profilePrivacyDefaultPhone??!0),profilePrivacyDefaultAge:!this.toBoolean(e.profilePrivacyDefaultAge??!0),profilePrivacyDefaultTown:!this.toBoolean(e.profilePrivacyDefaultTown??!1),profilePrivacyDefaultImage:!this.toBoolean(e.profilePrivacyDefaultImage??!1),profilePrivacyDefaultProfession:!this.toBoolean(e.profilePrivacyDefaultProfession??!1),profilePrivacyDefaultSocial:!this.toBoolean(e.profilePrivacyDefaultSocial??!1)}}else this.privacySettings=e},toBoolean(e){return"boolean"===typeof e?e:null!==e&&void 0!==e&&("true"===e||!0===e||1===e)},savePrivacySetting(e,t){this.privacySettings[e]=t;const a=this.convertSettingsForSave();this.autoSaveMultipleGroups(e,t,"privacySettings",{permission:a})},convertSettingsForSave(){return{...this.tenant.settingFeatures.permission||{},profilePrivacyDefaultName:!this.privacySettings.profilePrivacyDefaultName,profilePrivacyDefaultEmail:!this.privacySettings.profilePrivacyDefaultEmail,profilePrivacyDefaultPhone:!this.privacySettings.profilePrivacyDefaultPhone,profilePrivacyDefaultAge:!this.privacySettings.profilePrivacyDefaultAge,profilePrivacyDefaultTown:!this.privacySettings.profilePrivacyDefaultTown,profilePrivacyDefaultImage:!this.privacySettings.profilePrivacyDefaultImage,profilePrivacyDefaultProfession:!this.privacySettings.profilePrivacyDefaultProfession,profilePrivacyDefaultSocial:!this.privacySettings.profilePrivacyDefaultSocial}}}},h=a(66262);const f=(0,h.A)(m,[["render",r],["__scopeId","data-v-b697da1e"]]);var g=f}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.