PageSourceSearch

https://solinkcloud.com/assets/UserRolesPage-zNKRPpso.js

js solinkcloud.com collected 2026-10-05 05:35:48 UTC 11,819 bytes, 2 lines download raw bytes

1import{O as se,a as t,ek as K,b8 as J,j as s,dg as ce,W,aY as A,M as Y,V as Q,ii as Z,aR as q,hN as F,BC as te,aO as de,jv as oe,er as ue,BD as me,d9 as pe,b as V,dv as fe,hI as ge,mS as he,u as Re,um as xe,eJ as be,mO as Se,tO as Ue}from"./index-bYydl4Tx.js";import{S as le,a as ne,U as Ce}from"./UserFeatures-BziupuMd.js";import{D as ee}from"./DataManageTable-oGBNFiyQ.js";import{S as je,a as ye,b as re,c as ae}from"./index-CL0e-M1H.js";import"./clsx.m-OkhQ4ujG.js";try{let m=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new m.Error().stack;e&&(m._sentryDebugIds=m._sentryDebugIds||{},m._sentryDebugIds[e]="a355e8c4-fe91-4c40-a331-b2e9c7bc38d5",m._sentryDebugIdIdentifier="sentry-dbid-a355e8c4-fe91-4c40-a331-b2e9c7bc38d5")}catch{}const ve=m=>{const e=se(),{userRoleUsers:p,userRole:n,users:v,userRoles:P}=m,[f,O]=t.useState(!1),[d,T]=t.useState(""),[o,h]=t.useState(""),[k,I]=t.useState(()=>null),[i,R]=t.useState([]),[c,x]=t.useState([]),g=t.useCallback(()=>v.filter(a=>!K(p,["id",a.id])),[p,v]),[M,E]=t.useState(!1),[N,$]=t.useState(g()),[b,S]=t.useState([]),D=()=>{i.forEach(a=>{const{id:u,name:r}=a;Z.updateUser({userId:u,data:{userRoleId:null},callback:()=>{const y=J.getLocalizedStr({string:e.userRoles.removeUserSuccess,replacements:{name:r}});q.success(y),f&&U()}})})},U=()=>{O(!1),h(""),R([])},w=t.useCallback(a=>{const{email:u,name:r}=a,y=`${u} (${r})`,ie=J.getLocalizedStr({string:e.userRoles.removeUserConfirm,replacements:{userName:y,roleName:n?.name}});O(!0),T(`${e.userRoles.removeUser} - ${y}`),h(s.jsx("p",{children:ie})),I(()=>U),R([a])},[e.userRoles.removeUser,e.userRoles.removeUserConfirm,n?.name]),L=()=>{const a=J.getLocalizedStr({string:e.userRoles.removeUsersConfirm,replacements:{name:n?.name}});O(!0),T(e.userRoles.removeUsers),h(s.jsxs("div",{className:"remove-users-confirm",children:[s.jsx("p",{children:a}),s.jsx("ul",{children:c.map((u,r)=>s.jsx("li",{children:`${u.email} (${u.name})`},`user-to-remove-${r}`))})]})),I(()=>U),R(c)},B=()=>{E(!0)},C=()=>{E(!1),S([])},_=()=>{n?.id&&b.forEach(a=>{Z.updateUser({userId:a.id,data:{userRoleId:n.id},callback:()=>{M&&C()}})})};t.useEffect(()=>{$(g())},[g]);const z=[{text:e.general.cancel,onClick:U,isPrimary:!1},{text:e.general.confirm,onClick:D}],G=[{text:e.general.cancel,onClick:C,isPrimary:!1},{disabled:!b.length,text:e.general.save,onClick:_}],j=t.useMemo(()=>[{header:e.general.email,id:"email",props:["email"],renderer:({data:a})=>a.email,sortable:!0},{header:e.dashboard.name,id:"name",props:["name"],renderer:({data:a})=>a.name,sortable:!0},{header:e.usersPage.type,id:"type",props:["userType"],renderer:({data:{userType:a}})=>ce(e,`usersPage.${a}`),sortable:!0}],[e]),H=t.useMemo(()=>[...j,{header:"",id:"actions",props:[],renderer:({data:a})=>s.jsx(W,{className:"table-entry-actions",width:"auto",children:s.jsx(A,{colorMode:"light",dataTestId:`user-row-${a.email}-remove`,text:e.general.remove,type:"clear",tooltip:e.userRoles.removeUserFromRole,onClick:()=>w(a)})}),sortable:!1}],[e,j,w]),X=t.useMemo(()=>[...j,{header:e.usersPage.role,id:"user-role",props:["userRoleId"],renderer:({data:{userRoleId:a}})=>K(P,["id",a])?.name,sortable:!0}],[e.usersPage.role,P,j]),l=J.getLocalizedStr({string:e.usersPage.xUsersSelected,replacements:{number:b.length}});return s.jsxs("div",{className:"edit-user-rule-users-wrapper",children:[s.jsx(ee,{bulkActions:[{icon:s.jsx(Y,{icon:le,size:16}),text:e.general.add,type:"clear",onClick:B},{disabled:!c.length,icon:s.jsx(Y,{icon:ne,size:16}),text:e.general.remove,type:"clear",onClick:L}],id:"user-role-users-table",colorMode:"light",dataTestId:"user-role-users-table",locale:e,data:p,defaultSorting:{prop:"name",isDescending:!1},filterableProps:["name","email"],searchPlaceholder:e.general.search,selectedData:c,selectedString:"",tableColumns:H,updateSelectedData:x,rowsShown:10}),s.jsx(Q,{actions:z,dataTestId:"user-role-remove-user-modal",isOpen:f,onClose:k,title:d,children:s.jsx("div",{className:"confirm-body",children:o})}),s.jsx(Q,{actions:G,dataTestId:"add-users-picker-modal",isOpen:M,title:`${e.userRoles.addUsersToRole} - ${n?.name}`,onClose:C,type:"wide",children:s.jsx("div",{className:"add-users-modal-body",children:s.jsx(ee,{bulkActions:[],id:"add-u
1sers-table",colorMode:"light",dataTestId:"add-users-picker-table",locale:e,data:N,defaultSorting:{prop:"email",isDescending:!1},filterableProps:["email","name","userType","userRoleId"],searchPlaceholder:e.general.search,selectedData:b,selectedString:l,tableColumns:X,updateSelectedData:S,rowsShown:10})})})]})},Te=m=>{const e=se(),{userRole:p,userRoles:n,userRoleUsers:v,users:P,updateUserRoles:f,updateEditingRole:O}=m,{name:d="",description:T="",id:o,defaultUserFeatures:h={}}=p||{},[k,I]=t.useState(!1),[i,R]=t.useState(d),[c,x]=t.useState(T),[g,M]=t.useState(h),[E,N]=t.useState(!1),[$,b]=t.useState(!1),[S,D]=t.useState(void 0),U=t.useRef(!1),w=t.useCallback(()=>{U.current||(U.current=!0)},[]),L=({value:l})=>R(l),B=({value:l})=>x(l),C=t.useMemo(()=>!!K(n,l=>l.name===i?.trim()&&l.id!==o),[n,i,o]),_=t.useMemo(()=>!i?.trim()||C||!E,[E,C,i]),z=t.useMemo(()=>F({string:e.fields.charactersAvailable,replacements:{count:te-(c?.length||0)}}),[e.fields.charactersAvailable,c?.length]),G=()=>{R(d),x(T)},j=()=>{if(o){const l={name:i?.trim(),description:c?.trim()};V().updateUserRole({userRoleId:o,data:l}).then(a=>{const u=F({string:e.userRoles.updateRoleSuccess,replacements:{name:a.name}});q.success(u),f()})}else{const l=fe.getSession()?.tenantId;if(l){const a={customerId:l,name:i,defaultUserFeatures:g,...c?{description:c}:{}};V().createUserRole(a).then(u=>{const r=F({string:e.userRoles.createRoleSuccess,replacements:{name:u.name}});q.success(r),f(),O(u)})}}},H=()=>M(h),X=()=>{if(o){const l={defaultUserFeatures:g};V().updateUserRole({userRoleId:o,data:l}).then(a=>{const u=F({string:e.userRoles.updateRoleSuccess,replacements:{name:a.name}});q.success(u),f()})}};return t.useEffect(()=>{p&&k&&I(!1)},[k,p]),t.useEffect(()=>{b(!de(h,g))},[h,g]),t.useEffect(()=>{U.current&&!i?D(e.userRoles.roleNameEmptyError):D(C?e.userRoles.roleNameDuplicateError:void 0)},[C,i,e]),t.useEffect(()=>{const l=i?.trim();N(o&&d!==l||!o||T!==c?.trim())},[T,d,c,i,o]),t.useEffect(()=>{o&&i?.trim()===d&&N(!1)},[d,i,o]),s.jsxs("section",{className:"edit-user-role-wrapper",children:[k&&s.jsx(oe,{}),!k&&s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"user-role-info-wrapper",children:[s.jsx(ue,{inline:!0,name:"dashboard-name",dataTestId:"user-role-name",labelText:`${e.dashboard.name} *`,value:i,onFocus:w,onChange:L,maxLength:me,errorText:S}),s.jsx(pe,{inline:!0,name:"dashboard-description",dataTestId:"user-role-description",labelText:e.dashboard.description,value:c,onChange:B,rows:4,maxLength:te,charactersAvailableString:z}),s.jsxs(W,{className:"info-actions",justifyContent:"flex-end",children:[s.jsx(A,{disabled:!E,colorMode:"dark",dataTestId:o?"user-role-reset":"user-role-clear",text:o?e.general.reset:e.general.clear,onClick:G,isPrimary:!1}),s.jsx(A,{disabled:_,colorMode:"dark",dataTestId:"user-role-save",text:e.general.save,onClick:j})]})]}),o&&s.jsx("div",{className:"user-role-tabs",children:s.jsxs(je,{children:[s.jsxs(ye,{children:[s.jsx(re,{"data-testid":"user-role-features-tab",children:e.userRoles.features}),s.jsx(re,{"data-testid":"user-role-users-tab",children:e.settingsPage.users})]}),s.jsxs(ae,{children:[s.jsx(Ce,{userRoleId:o||void 0,userFeatures:g,updateUserFeatures:M}),s.jsxs(W,{className:"features-actions",justifyContent:"flex-end",children:[s.jsx(A,{disabled:!$,isPrimary:!1,colorMode:"dark",dataTestId:o?"user-role-features-reset":"user-role-features-clear",text:o?e.general.reset:e.general.clear,onClick:H}),s.jsx(A,{disabled:!$,colorMode:"dark",dataTestId:"user-role-features-save",text:e.general.save,onClick:X})]})]}),s.jsx(ae,{children:s.jsx(ve,{userRoleUsers:v,userRole:p,userRoles:n,users:P})})]})})]})]})},Ie=m=>{const{locale:e,isBanner:p,users:n,areUsersReady:v}=m,P=Re(),[f,O]=t.useState(!0),[d,T]=t.useState(null),[o,h]=t.useState({}),[k,I]=t.useState(!1),[i,R]=t.useState(""),[c,x]=t.useState(null),[g,M]=t.useState(!1),[E,N]=t.useState(""),[$,b]=t.useState(),[S,D]=t.useState([]),[U,w]=t.useState([]),L=()=>{I(!0),R(e.userRoles.newUserRole),x(null)},B=r=>{I(!0),R(`${e.userRoles.editUserRole} - ${r.name}`),x(r)},C=r=>{I(!0),R(e.userRoles.newUserRole),x({...r,id:null,name:`${r.name} (${e.general.copy})`,description:""})},_=()=>{I(!1),setTimeout(()=>{x(null)},1e3)},z=r=>{const y=F({string:e.userRoles.confirmDeleteRole,replacements:{name:r.name}});M(!0),N(`${e.userRoles.deleteUserRole} - ${r.name}`),b(s.jsxs(s.Fragment,{children:[s.jsx("p",{children:y}),s.jsx("p",{children:e.general.cantBeUndone})]})),w([r])},G=()=>{M(!0),N(e.userRoles.deleteUserRoles),w(S),b(s.jsxs(s.Fragment,{children:[s.jsx("p",{children:e.userRoles.confirmDeleteRoles}),s.jsx("p",{children:e.general.cantBeUndone}),s.jsx("ul",{children:S.map((r,y)=>s.jsx("li",{children:r.name},`user-role-${y}`))})]}))},j=()=>{M(!1),N(""),b(""),w([])},H=()=>
1{U.forEach(r=>{const y=F({string:e.userRoles.deleteRoleSuccess,replacements:{name:r.name}});V().deleteUserRole(r.id).then(()=>{q.success(y),j(),a(),D([])})})},X=[{header:e.dashboard.name,id:"name",props:["name"],renderer:({data:r})=>r.name,sortable:!0},{header:e.fields.description,id:"description",props:["description"],renderer:({data:r})=>r.description,sortable:!1},{header:e.userRoles.numberOfUsers,id:"number-of-users",props:["id"],renderer:({data:r})=>o[r.id]?.length||0,sortable:!0},{header:"",id:"actions",props:[],renderer:({data:r})=>s.jsxs(W,{className:"table-entry-actions",width:"auto",children:[s.jsx(A,{colorMode:"light",dataTestId:`${r.name}-edit`,text:e.general.edit,type:"clear",tooltip:e.userRoles.editRole,onClick:()=>B(r)}),s.jsx(A,{colorMode:"light",dataTestId:`${r.name}-duplicate`,text:e.general.clone,type:"clear",tooltip:e.userRoles.duplicateRole,onClick:()=>C(r)}),s.jsx(A,{colorMode:"light",dataTestId:`${r.name}-delete`,text:e.general.delete,type:"clear",tooltip:e.userRoles.deleteRole,onClick:()=>z(r)})]}),sortable:!1}],l=[{text:e.general.cancel,onClick:j,isPrimary:!1},{text:e.general.confirm,onClick:H,isPrimary:!0}],a=t.useCallback(()=>{xe(P).then(r=>T(r))},[P]);t.useEffect(()=>{Z.getUsers(),a()},[a]),t.useEffect(()=>{v&&n&&d&&h(be(n,"userRoleId"))},[v,d,n]),t.useEffect(()=>{d&&f&&v&&O(!1)},[d,f,v]);const u=F({string:e.userRoles.xRolesSeleted,replacements:{number:S.length}});return s.jsxs("div",{className:"user-roles-page container",id:"user-roles-page",children:[s.jsx("h1",{children:e.settingsPage.userRoles}),s.jsx("section",{children:s.jsxs(Se,{type:"section",children:[f&&s.jsx(oe,{loading:!0}),!f&&d&&s.jsx(s.Fragment,{children:s.jsx(ee,{bulkActions:[{icon:s.jsx(Y,{icon:le}),onClick:L,text:e.general.add,type:"clear"},{disabled:!S.length,icon:s.jsx(Y,{icon:ne}),onClick:G,text:e.general.delete,type:"clear"}],className:"user-roles-table",colorMode:"light",data:d,dataTestId:"user-roles-table",defaultSorting:{prop:"name",isDescending:!1},locale:e,filterableProps:["name","description","id"],searchPlaceholder:e.general.search,selectedData:S,selectedString:u,tableColumns:X,updateSelectedData:D})})]})}),s.jsx(Ue,{dataTestId:"user-role-pane",isBanner:p,isOpen:k,position:"right",type:"ultra-wide",title:i,onClose:_,fixedHeader:!0,fixedFooter:!0,children:s.jsx(Te,{userRole:c,userRoles:d||[],userRoleUsers:c?.id?o[c.id]:[],users:n,updateUserRoles:a,updateEditingRole:x})}),s.jsx(Q,{actions:l,dataTestId:"user-role-confirm-modal",isOpen:g,type:"narrow",title:E,onClose:j,children:s.jsx("div",{className:"user-role-confirm-modal-body",children:$})})]})},we=()=>{const m=se(),e=ge(),{data:p,isLoaded:n}=t.useContext(he);return s.jsx(Ie,{locale:m,users:p,areUsersReady:n,isBanner:e})};export{we as default};
2//# sourceMappingURL=UserRolesPage-zNKRPpso.js.map

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.