PageSourceSearch

https://www.cuonthehill.com/static/js/Skills.2cc1d772.chunk.min.js

js cuonthehill.com collected 2026-09-30 16:34:29 UTC 18,138 bytes, 2 lines download raw bytes

1"use strict";(self.webpackChunkclient_v2=self.webpackChunkclient_v2||[]).push([[5101],{65122:(G,O,s)=>{s.d(O,{A:()=>S});var e=s(715621),a=s(537953),P=s(163081),r=s(665790),_=s(768835),B=s(436492),v=s(748607),R=s(883991),b=s(102736),t=s.n(b),u=s(226898),j=s(425170),g=s(294097),i=s(387243);const m={};var V=Object.defineProperty,z=(C,c,h)=>c in C?V(C,c,{enumerable:!0,configurable:!0,writable:!0,value:h}):C[c]=h,A=(C,c,h)=>z(C,typeof c!="symbol"?c+"":c,h);class n extends a.PureComponent{constructor(){super(...arguments),A(this,"state",{initialSettings:{},settings:{},settingsChanged:!1,isSaving:!1}),A(this,"handleSave",async()=>{const{hubInfo:c,setHubInfo:h,settings:K,settingsPath:f,validate:y=()=>!0,setInitialSettings:J,trackSavedChanges:X}=this.props;if(y&&y())try{if(c&&f){this.setState({isSaving:!0});const Q=`/admin/hubs/update-settings?id=${c.id}`;if(X&&X(),await g.E.put(Q,{id:c.id,setting:[{id:f,value:K}]}),(0,j.mei)("Settings saved successfully","success"),h&&c){const T=(0,B.A)(c);(0,v.A)(T,`settings.${f}`,K),h(T)}}this.setState({isSaving:!1,settingsChanged:!1,initialSettings:K}),J&&J(K)}catch(Q){(0,j.UGb)(Q),this.setState({isSaving:!1})}})}componentDidMount(){const{settings:c}=this.props;this.setState({initialSettings:c,settings:c})}componentDidUpdate(c,h){const{settings:K,onIsSavingChange:f}=this.props,{initialSettings:y,isSaving:J}=this.state;this.setState({settings:K,settingsChanged:!(0,R.A)(K,y)}),f&&J!==h.isSaving&&f(J)}render(){const{children:c,title:h,description:K,additionalDescription:f=null,header:y=null,footer:J=null,headerControls:X=null,isLoading:Q=!1,className:T="",bodyClassName:N="",fullWidthBody:H=!1,hasMenu:D=!1,organization:k,navMenuProps:p={}}=this.props,{settingsChanged:W,isSaving:o}=this.state;return(0,e.jsx)(i.A,{organization:k,...p,children:(0,e.jsxs)("div",{className:`settings-page-container ${T}`,children:[h&&(0,e.jsx)("header",{className:`spc__header ${D?"spc_header_wth_menu":""}`,children:this.props.hasOwnProperty("header")?y:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{className:"spc__header__left",children:[(0,e.jsx)("h1",{className:"spc__header__title",children:h}),(0,e.jsx)("p",{className:"spc__header__description",children:K}),this.props.hasOwnProperty("additionalDescription")?f:null]}),X?(0,e.jsx)("div",{className:"spc__header__right",children:X}):null]})}),(0,e.jsx)("div",{className:(0,_.A)("spc__body",{"spc__body-full":H},N),children:c}),(0,e.jsx)("footer",{className:"spc__footer",children:this.props.hasOwnProperty("footer")?J:(0,e.jsx)("div",{className:"spc__footer__content",children:(0,e.jsx)(r.A,{type:"primary",loading:o||Q,disabled:!W,onClick:this.handleSave,children:"Save"})})})]})})}}n.propTypes={title:t().node,description:t().oneOfType([t().string,t().node]),settings:t().object,settingsPath:t().string,setInitialSettings:t().func,validate:t().func,onIsSavingChange:t().func,header:t().node,footer:t().node,headerControls:t().node,isLoading:t().bool,className:t().string,bodyClassName:t().string,children:t().node,additionalDescription:t().node,fullWidthBody:t().bool,hasMenu:t().bool,organization:t().object,navMenuProps:t().object};const d=({appReducer:{hubInfo:C}})=>({hubInfo:C}),E={setHubInfo:u.gWh},S=(0,P.connect)(d,E)(n)},157002:(G,O,s)=>{s.r(O),s.d(O,{default:()=>Q});var e=s(715621),a=s(537953),P=s(145926),r=s(248883),_=s(62644),B=s(637260),v=s(939291),R=s(839050),b=s(527510),t=s(515943),u=s(425170),j=s(65122),g=s(282114);const i=()=>[{id:"add-skill-form",fields:[{id:"skill_name",label:"Skill name",field:"input",placeholder:"Eg. Communication, design , user experience, strategy, etc.",type:"text",size:"large",rules:{required:{value:!0},maxChar:{value:50,message:"Character limit reached"}}},{id:"skill_description",label:"Description",placeholder:"Enter specific details about the skill",field:"textarea",rules:{required:{value:!0},maxChar:{value:500,message:"Character limit reached"}}}]}],V=({handleAddSkill:T,handleUpdateSkill:N,isAddingSkill:H,addSkillModalVisible:D,skills:k,selectedSkill:p,resetModals:W,setPendingSkillAction:o,setPendingSkillName:l})=>{const[x,L]=(0,a.useState)({skill_name:{value:""},skill_description:{value:""}});(0,a.useEffect)(()=>
1{if(p){const F=k==null?void 0:k.find(I=>I.id===p);L({skill_name:{value:(F==null?void 0:F.name)||""},skill_description:{value:(F==null?void 0:F.description)||""}})}},[p,k]);const U=(0,a.useRef)(null),$=()=>{var F;if(!((F=U.current)!=null&&F.validateForm()))return;const I=(0,v.A)(x,"skill_name.value","");l(I),p?(o("edit"),N({id:p,name:I,description:(0,v.A)(x,"skill_description.value","")})):(o("add"),T({name:I,description:(0,v.A)(x,"skill_description.value","")}))},w=()=>{W()},q=F=>{L(I=>({...I,...F}))};return(0,e.jsx)(r.aF,{id:"add-skill-modal",open:D,title:`${p?"Update":"Add"} Skill`,onClose:w,okText:`${p?"Update":"Add"} Skill`,okButtonProps:{type:"primary",loading:H,disabled:H},onOk:$,children:(0,e.jsx)(r.lV,{id:"add-skill-form",fieldSets:i(),data:x,onChange:q,ref:U,onSubmit:F=>{F.preventDefault(),$()}})})},A=({handleDeleteSkill:T,isDeletingSkill:N,deleteModalVisible:H,selectedSkill:D,skills:k,resetModals:p,setPendingSkillAction:W,setPendingSkillName:o})=>{const l=k==null?void 0:k.find(U=>U.id===D),x=()=>{l&&(W("delete"),o(l.name)),T(D)},L=()=>{p()};return(0,e.jsx)(r.aF,{id:"delete-skill-modal",open:H,title:"Delete skill",onClose:L,okText:"Delete",cancelText:"Cancel",okButtonProps:{type:"danger",loading:N,disabled:N},onOk:x,children:(0,e.jsx)("div",{children:"You are about to permanently delete this skill from the platform. Deleting this skill will remove it from all student and mentor profiles, and it cannot be recovered."})})},d=({handleHideSkill:T,isHidingSkill:N,deleteModalVisible:H,selectedSkill:D,skills:k,resetModals:p,setPendingSkillAction:W,setPendingSkillName:o})=>{const l=k==null?void 0:k.find(U=>U.id===D);if(!l)return null;const x=()=>{W(l.isHidden?"unhide":"hide"),o(l.name),T({id:D,isHidden:!(l!=null&&l.isHidden)})},L=()=>{p()};return(0,e.jsx)(r.aF,{id:"hide-skill-modal",open:H,title:`${l!=null&&l.isHidden?"Show":"Hide"} skill`,onClose:L,okText:l!=null&&l.isHidden?"Show":"Hide",cancelText:"Cancel",okButtonProps:{type:"primary",loading:N,disabled:N},onOk:x,children:(0,e.jsx)("div",{children:l!=null&&l.isHidden?"You are about to show this skill in the platform. It will be visible in searches and profiles.":`You are about to hide this skill from the platform. It will no longer be
2        visible in searches or profiles, but can be unhidden later if needed.`})})};var E=s(865952),S=s(321658),C=s.n(S),c=s(805569),h=s(832196),K=s(1843
209),f=s.n(K);const y=({setSelectedSkill:T,setDeleteSkillModalVisible:N,setHideSkillModalVisible:H,setAddSkillModalVisible:D,clusterInfo:k,hubInfo:p,trackElAdmin:W})=>[{title:"Skill name",dataIndex:"name",className:"skills-name",sorter:(o,l)=>f()([o,l],["name"],["asc"])[0]===o?-1:1},{title:"Description",dataIndex:"description",className:"skills-description"},{title:"Created On",dataIndex:"createdAt",className:"skills-created-on",sorter:(o,l)=>f()([o,l],[L=>C()(L.createdAt).unix()],["asc"])[0]===o?-1:1,render:o=>(0,e.jsx)("div",{children:C()(o).format("MMM DD, YYYY")})},{title:"Created By",dataIndex:"createdBy",className:"skills-created-by",sorter:(o,l)=>f()([o,l],[L=>`${L.createdBy.firstName} ${L.createdBy.lastName}`],["asc"])[0]===o?-1:1,render:o=>{const l=(0,h.ID)({moduleName:"profile",clusterInfo:k,hubInfo:p,params:{userIdentifier:o.identifier,openInModal:!0,showBack:!0,hubId:p==null?void 0:p.id,messageOrigin:"SKILLS"}});return(0,e.jsx)(c.N_,{to:l,"aria-label":`${o.firstName} ${o.lastName}'s Profile`,children:(0,e.jsxs)("span",{children:[o.firstName," ",o.lastName]})})}},{title:"Actions",fixed:"right",align:"center",width:"150px",className:"skills-actions",render:(o,l)=>(0,e.jsxs)("div",{className:"action-group",children:[(0,e.jsx)(r.$n,{type:"ghost",className:"delete-button",onClick:()=>{W({eventName:g.cJ.SKILLS.TABLE,cta:"Open Edit Skill",skillName:l.name}),T(l.id),D(!0)},children:(0,e.jsx)(r.C0,{className:"edit-icon",size:20,src:"https://cdn.peoplegrove.com/admin/1655979444064pencil.svg"})}),(0,e.jsx)(r.$n,{type:"ghost",className:"delete-button",onClick:()=>{T(l.id),H(!0)},children:l.isHidden?(0,e.jsx)(r.C0,{className:"visible-icon",src:"https://cdn.peoplegrove.com/admin/1678109854215pg-eye-crossed-o.svg",size:20}):(0,e.jsx)(r.C0,{className:"visible-icon",src:"https://cdn.peoplegrove.com/admin/1678107968680pg-eye-o.svg",size:20})}),(0,e.jsx)(r.$n,{type:"ghost",className:"delete-button",onClick:()=>{T(l.id),N(!0)},children:(0,e.jsx)(_.A,{type:"delete",className:"delete-icon"})})]})}],J={},Q=()=>{const T=(0,R.er)(),N=(0,R.lx)(),H=(0,P.W6)(),[D,k]=(0,a.useState)(!1),[p,W]=(0,a.useState)(!1),[o,l]=(0,a.useState)(!1),[x,L]=(0,a.useState)(0),U=(0,a.useRef)({action:null,skillName:""}),$=(0,g.zP)(),w=(0,a.useCallback)(M=>{U.current.action=M},[]),q=(0,a.useCallback)(M=>{U.current.skillName=M},[]);(0,u.DlR)("skills","enabled",N)||(0,u.QXr)(N,H);const I=()=>{k(!1),W(!1),l(!1),L(0),U.current={action:null,skillName:""}},re=!0,{data:Z,isLoading:ie}=(0,E.K1)(re),{mutate:ce,isLoading:ne}=(0,E.Uv)({onSuccess:()=>{const{skillName:M}=U.current;$({eventName:g.cJ.SKILLS.ACTION,cta:"Submit Add Skill",skillName:M}),(0,u.mei)("Added Successfully!"),I(),b.A.invalidateQueries([t.A.Skills])},onError:M=>{const Y=(0,v.A)(M,"response.data.message")||"Something went wrong!";(0,u.mei)(Y,"error")}}),{mutate:ae,isLoading:te}=(0,E.at)({onSuccess:()=>{const{action:M,skillName:Y}=U.current;M==="edit"&&$({eventName:g.cJ.SKILLS.ACTION,cta:"Submit Edit Skill",skillName:Y}),(M==="hide"||M==="unhide")&&$({eventName:g.cJ.SKILLS.TABLE,cta:M==="hide"?"Hide Skill":"Unhide Skill",skillName:Y}),(0,u.mei)("Updated Successfully!"),I(),b.A.invalidateQueries([t.A.Skills])},onError:M=>{const Y=(0,v.A)(M,"response.data.message")||"Something went wrong!";(0,u.mei)(Y,"error")}}),{mutate:ue,isLoading:ee}=(0,E.Wk)({onSuccess:()=>{const{action:M,skillName:Y}=U.current;M==="delete"&&$({eventName:g.cJ.SKILLS.TABLE,cta:"Delete Skill",skillName:Y}),(0,u.mei)("Deleted Successfully!"),I(),b.A.invalidateQueries([t.A.Skills])},onError:()=>{(0,u.mei)("Something went wrong!","error")}}),me=(0,a.useMemo)(()=>ie||ne||te||ee?{indicator:(0,e.jsx)(_.A,{type:"loading",spin:!0})}:!1,[ie,ne,te,ee]),he=(0,a.useMemo)(()=>y({setSelectedSkill:L,setDeleteSkillModalVisible:W,setHideSkillModalVisible:l,setAddSkillModalVisible:k,clusterInfo:T,hubInfo:N,trackElAdmin:$}),[T,N,ee,$]);return(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(j.A,{className:"skills-container",description:"Add and manage skills acquired for students and alumni to use across the platform. Skills acquired appear in events, pathways, opportunities, programs, and achievements.",title:"Skills Acquired",footer
2:"",children:(0,e.jsx)("div",{className:"amc__body",children:(0,e.jsxs)("div",{className:"body",children:[(0,e.jsxs)("div",{className:"header-section",children:[(0,e.jsxs)("p",{className:"title",children:["Total Skills (",(Z==null?void 0:Z.length)||0,")"]}),(0,e.jsx)("div",{className:"header-section-cta",children:(0,e.jsx)(r.$n,{type:"primary",htmlType:"submit",onClick:()=>{$({eventName:g.cJ.SKILLS.ACTION,cta:"Open Add Skill"}),k(!0)},disabled:ne||te||ee||ie,style:{height:"100%"},children:"Add Skill"})})]}),(0,e.jsx)("div",{className:"skills-table",children:(0,e.jsx)(B.A,{columns:he,dataSource:Z,loading:me,scroll:{x:"max-content"},onChange:(M,Y,le)=>{var oe,de;const se=Array.isArray(le)?le[0]:le;se!=null&&se.order&&$({eventName:g.cJ.SKILLS.TABLE,cta:"Sort",sortField:((oe=se.field)==null?void 0:oe.toString())||((de=se.columnKey)==null?void 0:de.toString()),sortOrder:se.order==="ascend"?"Ascending":"Descending"})}})}),D&&(0,e.jsx)(V,{handleAddSkill:ce,handleUpdateSkill:ae,isAddingSkill:ne,addSkillModalVisible:D,skills:Z,selectedSkill:x,resetModals:I,setPendingSkillAction:w,setPendingSkillName:q}),p&&(0,e.jsx)(A,{handleDeleteSkill:ue,isDeletingSkill:ee,deleteModalVisible:p,selectedSkill:x,skills:Z,resetModals:I,setPendingSkillAction:w,setPendingSkillName:q}),o&&(0,e.jsx)(d,{handleHideSkill:ae,isHidingSkill:te,deleteModalVisible:o,selectedSkill:x,skills:Z,resetModals:I,setPendingSkillAction:w,setPendingSkillName:q})]})})})})}},282114:(G,O,s)=>{s.d(O,{cJ:()=>_,zP:()=>B,gq:()=>P});var e=s(537953),a=s(425170);const P=()=>{const v=(0,a.S6q)("socIntegration","adminToolsEnabled");(0,e.useEffect)(()=>{v||(console.log("User does not have access to this page, redirecting to 404"),window.location.href="/404")},[v])};var r=s(356029);const _={OPPORTUNITIES:{SEARCH:"Admin Tools - Opportunities: Search",FILTERS:"Admin Tools - Opportunities: Filters",ACTION:"Admin Tools - Opportunities: Action",TABLE:"Admin Tools - Opportunities: Table",BULK_EDIT:"Admin Tools - Opportunities: Bulk Edit",MANAGE:"Admin Tools - Opportunities: Manage"},CATEGORY:{SEARCH:"Admin Tools - Category: Search",FILTER:"Admin Tools - Category: Filter",TABLE:"Admin Tools - Category: Table",ACTION:"Admin Tools - Category: Action"},TAGS:{SEARCH:"Admin Tools - Tags: Search",FILTER:"Admin Tools - Tags: Filter",TABLE:"Admin Tools - Tags: Table",ACTION:"Admin Tools - Tags: Action"},SKILLS:{TABLE:"Admin Tools - Skills: Table",ACTION:"Admin Tools - Skills: Action"},APPLICATIONS:{TABLE:"Admin Tools - Applications: Table",ACTION:"Admin Tools - Applications: Action"},SURVEYS:{TABLE:"Admin Tools - Surveys: Table",ACTION:"Admin Tools - Surveys: Action"}},B=()=>{const v=(0,r.E)();return(0,e.useCallback)(({eventName:R,cta:b,action:t,keyword:u,filter:j,filterName:g,tab:i,sortField:m,sortOption:V,sortOrder:z,categoryName:A,tagName:n,skillName:d})=>{v({pgAnalytics:R,pgAnalyticsCategory:"Hub Admin",pgAnalyticsCTA:b,...t&&{pgAnalyticsAction:t},...u&&{pgAnalyticsKeyword:u},...j&&{pgAnalyticsFilter:j},...g&&{pgAnalyticsFilterName:g},...i&&{pgAnalyticsTab:i},...m&&{pgAnalyticsSortField:m},...V&&{pgAnalyticsSortOption:V},...z&&{pgAnalyticsSortOrder:z},...A&&{pgAnalyticsCategoryName:A},...n&&{pgAnalyticsTagName:n},...d&&{pgAnalyticsSkillName:d}})},[v])}},387243:(G,O,s)=>{s.d(O,{A:()=>t});var e=s(715621),a=s(537953),P=s(163081),r=s(885676),_=s(769500),B=s(251637);class v extends a.Component{render(){return(0,e.jsx)(_.A,{...this.props,otherAdminMenu:this.props.clusterMenu})}}const R=({adminDashboard:u,appReducer:j})=>{const{navMenu:g,dashboardLoading:i,quickLinks:m,clusterMenu:V,navMenuVisible:z}=u,{hubInfo:A,currentUser:n,clusterInfo:d}=j;return{navMenu:g,dashboardLoading:i,navMenuVisible:z,clusterMenu:V,quickLinks:m,hubInfo:A,currentUser:n,clusterInfo:d}},b={getHubAdminMenu:r.kA,getClusterAdminMenu:r.T1,setNavMenuVisibility:r.fW},t=(0,P.connect)(R,b)(v)},515943:(G,O,s)=>{s.d(O,{A:()=>P});const e="Skills",P={Skills:`${e}/Skills`,UserSkills:`${e}/UserSkills`}},769500:(G,O,s)=>{s.d(O,{A:()=>z});var e=s(715621),a=s(537953),P=s(145926),r=s(62644),_=s(419611),B=s(839050),v=s(706113),R=s(401644),b=s(222630),t=s(425170),u=s(585742),j=Object.defineProperty,g=(A,n,d)=>n in A?j(A,n,{enumerable:!0,configurable:!0,writable:!0,value:d}):A[n]=d,i=(A,n,d)=>g(A,typeof n!="symbol"?n+"":n,d);const m=A=>{const{quickLinks:n,shouldUseDefaults:d}=(0,v.A9)(),E=(0,B.er)(),S=(0,B.lx)(),C=(0,B.iZ)(),c=(0,P.zy)();let h=n;if(Array.isArray(n)&&S&&(h=n.map(f=>{const y=(0,b.FO)(f.id,S);return y?{...f,route:(0,t.LmZ)(S)+y}:f})),S&&S.isElOnly||S&&S.elOrganizationId&&(0,t.DlR)("socIntegration","enabled",S))h=void 0;else if(d)try{h=(0,R.Eg)(E,S,c,C).quickLinks.map((y,J)=>({id:y.text.toLowerCase().replace(/\s+/g,"-"),title:y.text,route:y.link}))}catch(f){console.error("Error generating default quick links:",f),h=A.quickLinks||[]}return(0,e.jsx)(u.A,{...A,quickLinks:h})};class V extends a.Component{constructor(){super(...arguments),i(this,"closeSider",()=>{const{setNavMenuVisibility:n}=this.props;n(!1)}),i(this,"openSider",()=>{const{setNavMenuVisibility:n}=this.props;n(!0)}),i(this,"renderOpenCloseIcon",()=>{const{navMenuVisible:n}=this.props,d=`admin-dashboard__opner-icn ${n?"admin-dashboard__opner-icn-opn":"admin-dashboard__opner-icn-cls"}`,E=n?this.closeSider:this.openSider;return(0,e.jsxs)("div",{className:d,onClick:E,children:[(0,e.jsx)(r.A,{type:`${n?"left":"menu-unfold"}`}),(0,e.jsx)("div",{children:`${n?"Close":"Open"}`})]})}),i(this,"renderNavContainer",()=>{const{dashboardLoading:n,navMenu:d,navMenuVisible:E}=this.props;return E?E&&(n||!d||!d.length)?(0,e.jsx)(a.Fragment,{children:(0,e.jsx)("div",{className:"admin-dashboard__sider admin-dashboard__opner-ldr",children:(0,e.jsx)(_.A,{})})}):(0,e.jsx)(a.Fragment,{children:(0,e.jsx)(m,{...this.props})}):(0,e.jsx)("div",{className:"admin-dashboard__sider admin-dashboard__opner-ldr"})}),i(this,"renderNav",()=>{const{navMenuVisible:n}=this.props,d=`admin-dashboard__opner-child ${n?"admin-dashboard__opner-child-opn":"admin-dashboard__opner-child-cls"}`,E=`admin-dashboard__opner-sidr ${n?"admin-dashboard__opner-sidr-opn":"admin-dashboard__opner-sidr-cls"}`,S=`admin-dashboard__opner-plchldr ${n?"admin-dashboard__opner-plchldr-opn":"admin-dashboard__opner-plchldr-cls"}`;return(0,e.jsxs)(a.Fragment,{children:[(0,e.jsx)("div",{className:E,
2children:this.renderNavContainer()}),this.renderOpenCloseIcon(),(0,e.jsx)("div",{className:S}),(0,e.jsx)("div",{className:d,children:this.props.children})]})})}componentDidMount(){const{navMenu:n,getHubAdminMenu:d,getClusterAdminMenu:E,organization:S={}}=this.props;let C={};S!=null&&S.id&&(C.organization=S),(!n||!n.length)&&(d&&d(C),E&&!(C!=null&&C.organization)&&E())}render(){return(0,e.jsx)("div",{className:"admin-dashboard admin-dashboard__opner",children:this.renderNav()})}}const z=V},865952:(G,O,s)=>{s.d(O,{K1:()=>_,Uv:()=>u,Wk:()=>g,at:()=>b,nB:()=>v});var e=s(283766),a=s(967489),P=s(515943);const r=async i=>{const{data:m}=await(0,a.lGJ)(i);return m},_=(i,m=!0)=>(0,e.useQuery)([P.A.Skills],()=>m?r(i):Promise.resolve([])),B=async i=>{const{data:m}=await(0,a.Btv)(i);return m},v=i=>(0,e.useQuery)([`${P.A.UserSkills}/${i}`],()=>B(i)),R=async i=>{const{data:m}=await(0,a.fPX)({...i});return m},b=i=>(0,e.useMutation)(R,{...i}),t=async i=>{const{data:m}=await(0,a.S9I)({...i});return m},u=i=>(0,e.useMutation)(t,{...i}),j=async i=>{const{data:m}=await(0,a.hp6)(i);return m},g=i=>(0,e.useMutation)(j,i)}}]);

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.