1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4134],{41733:function(e,r,n){"use strict";var t=n(64836);r.Z=void 0;var i=t(n(64938)),a=n(85893),o=(0,i.default)((0,a.jsx)("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"}),"Delete");r.Z=o},41715:function(e,r,n){"use strict";var t=n(64836);r.Z=void 0;var i=t(n(64938)),a=n(85893),o=(0,i.default)((0,a.jsx)("path",{d:"M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm-9-2V7H4v3H1v2h3v3h2v-3h3v-2H6zm9 4c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"}),"PersonAdd");r.Z=o},80332:function(e,r,n){"use strict";var t=n(64836);r.Z=void 0;var i=t(n(64938)),a=n(85893),o=(0,i.default)((0,a.jsx)("path",{d:"M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm2 16H5V5h11.17L19 7.83V19zm-7-7c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zM6 6h9v4H6z"}),"SaveOutlined");r.Z=o},258:function(e,r,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/admin/organizations/[orgId]",function(){return n(27795)}])},50613:function(e,r,n){"use strict";var t=n(85893),i=n(87918),a=n(86010),o=n(50591);let s=e=>{let{sx:r,skin:n,color:s,rounded:l}=e,d=(0,o.Z)(),c={primary:{...d.primaryLight},secondary:{...d.secondaryLight},success:{...d.successLight},error:{...d.errorLight},warning:{...d.warningLight},info:{...d.infoLight}},u={...e};return u.rounded=void 0,(0,t.jsx)(i.Z,{...u,variant:"filled",className:(0,a.Z)({"MuiChip-rounded":l,"MuiChip-light":"light"===n}),sx:"light"===n&&s?Object.assign(c[s],r):r})};r.Z=s},50591:function(e,r,n){"use strict";var t=n(2734),i=n(25812);let a=()=>{let e=(0,t.Z)();return{primaryFilled:{color:e.palette.primary.contrastText,backgroundColor:e.palette.primary.main},primaryLight:{color:e.palette.primary.main,backgroundColor:(0,i.E)(e.palette.primary.main,.12)},secondaryFilled:{color:e.palette.secondary.contrastText,backgroundColor:e.palette.secondary.main},secondaryLight:{color:e.palette.secondary.main,backgroundColor:(0,i.E)(e.palette.secondary.main,.12)},successFilled:{color:e.palette.success.contrastText,backgroundColor:e.palette.success.main},successLight:{color:e.palette.success.main,backgroundColor:(0,i.E)(e.palette.success.main,.12)},errorFilled:{color:e.palette.error.contrastText,backgroundColor:e.palette.error.main},errorLight:{color:e.palette.error.main,backgroundColor:(0,i.E)(e.palette.error.main,.12)},warningFilled:{color:e.palette.warning.contrastText,backgroundColor:e.palette.warning.main},warningLight:{color:e.palette.warning.main,backgroundColor:(0,i.E)(e.palette.warning.main,.12)},infoFilled:{color:e.palette.info.contrastText,backgroundColor:e.palette.info.main},infoLight:{color:e.palette.info.main,backgroundColor:(0,i.E)(e.palette.info.main,.12)}}};r.Z=a},9354:function(e,r,n){"use strict";n.d(r,{o:function(){return m}});var t=n(85893);n(67294);var i=n(37645),a=n(50657),o=n(99226),s=n(93946),l=n(6514),d=n(98456),c=n(50594);let u={spinner:{position:"absolute",top:"50%",left:"50%",marginTop:"-12px",marginLeft:"-12px"}},m=e=>{let{children:r,open:n,title:m,showSpinner:g=!1,containerStyles:h,onClose:x}=e,p=()=>{x()};return(0,t.jsx)(a.Z,{onClose:p,open:n,children:(0,t.jsxs)(o.Z,{sx:h,children:[(0,t.jsxs)(i.Z,{sx:{textAlign:"center",marginTop:"16px"},children:[m,(0,t.jsx)(s.Z,{onClick:x,sx:{position:"absolute",right:"8px",top:"8px",color:e=>e.palette.grey[500]},children:(0,t.jsx)(c.Z,{})})]}),(0,t.jsx)(l.Z,{children:g?(0,t.jsx)(d.Z,{sx:u.spinner}):r})]})})}},27795:function(e,r,n){"use strict";n.r(r),n.d(r,{default:function(){return O}});var t=n(85893),i=n(67294),a=n(7631),o=n(45013),s=n(22120),l=n(11163),d=n(16310),c=n(47533),u=n(55008),m=n(50613),g=n(87536),h=n(86501),x=n(99226),p=n(87952),f=n(15861),v=n(86886),j=n(94054),Z=n(50135),b=n(83321),y=n(63730),w=n(6882),C=n(41733),z=n(41715);let k=e=>{let{t:r}=(0,s.$G)();return(0,t.jsxs)(v.ZP,{container:!0,columnSpacing:2,sx:{padding:"6px 12px"},children:[(0,t.jsx)(v.ZP,{item:!0,children:(0,t.jsx)(b.Z,{onClick:e.onAdd,startIcon:(0,t.jsx)(z.Z,{}),variant:"outlined",children:r("adminPage.organizations.addUserButtonLabel")})}),(0,t.jsx)(v.ZP,{item:!0,children:(0,t.jsx)(b.Z,{disabled:e.disableDelete,onClick:e.onDelete,startIcon:(0,t.jsx)(C.Z,{sx:{color:e.disableDelete?"#e7e6e8":"red"}}),variant:"outlined",children:r("adminPage.organizations.deleteUserButtonLabel")})})]})};var S=n(80332),P=n(81134),M=n(9354),E=n(31425),T=n(51049);let I=e=>{let{open:r,onComplete:n,onClose:a,users:o}=e,[l,d]=i.useState([]),{t:c}=(0,s.$G)(),g=()=>{a(),d([])},h=()=>{let e=o.filter(e=>l.includes(e.id));n(e),g()},v=(0,i.useMemo)(()=>[{flex:.3,minWidth:100,field:"name",renderHeader:()=>(0,t.jsx)(y.Z,{icon:"mdi:account-outline",fontSize:20}),renderCell:e=>{var r;let{row:n}=e;return(0,t.jsxs)(x.Z,{sx:{display:"flex",alignItems:"center"},children:[(0,t.jsx)(p.Z,{alt:n.firstName||"",sx:{width:"1.875rem",he
1ight:"1.875rem",borderRadius:5},src:(null===(r=n.avatar)||void 0===r?void 0:r.src)||""}),(0,t.jsxs)(x.Z,{sx:{display:"flex",alignItems:"flex-start",flexDirection:"column",ml:2},children:[(0,t.jsxs)(f.Z,{variant:"subtitle1",children:[n.firstName," ",n.lastName]}),(0,t.jsx)(f.Z,{noWrap:!0,variant:"caption",children:"".concat(n.email)})]})]})}},{flex:.25,minWidth:40,field:"role",renderHeader:()=>(0,t.jsx)(y.Z,{icon:"mdi:check-circle-outline",fontSize:20}),renderCell:e=>{let{row:r}=e;switch(r.role){case u.i4.Student:return(0,t.jsx)(m.Z,{label:c("userRoles.Student"),skin:"light",color:"success"});case u.i4.Teacher:return(0,t.jsx)(m.Z,{label:c("userRoles.Teacher"),skin:"light",color:"info"});case u.i4.OrganizationAdmin:return(0,t.jsx)(m.Z,{label:c("userRoles.OrganizationAdmin"),skin:"light",color:"warning"});case u.i4.Admin:return(0,t.jsx)(m.Z,{label:c("userRoles.Admin"),skin:"light",color:"warning"});default:return(0,t.jsx)(t.Fragment,{})}}}],[c]);return(0,t.jsxs)(M.o,{open:r,onClose:g,title:c("adminPage.organizations.addUsersDialogTitle"),containerStyles:{width:"600px"},children:[(0,t.jsx)(f.Z,{variant:"body1",children:c("adminPage.organizations.addUsersDialogDescription")}),(0,t.jsx)(x.Z,{sx:{maxHeight:"700px",overflowY:"scroll"},children:(0,t.jsx)(w._,{columns:v,rows:o,autoHeight:!0,disableRowSelectionOnClick:!0,pageSizeOptions:[7,10,25,50,100],checkboxSelection:!0,onRowSelectionModelChange:e=>{d(e)},rowSelectionModel:l})}),(0,t.jsxs)(E.Z,{className:"dialog-actions-dense",sx:{marginTop:"8px"},children:[(0,t.jsx)(b.Z,{onClick:g,children:c("common.cancel")}),(0,t.jsx)(T.KM,{onClick:h,children:c("common.confirm")})]})]})},L={name:"",description:"",userIds:[]},N=()=>{let e=(0,l.useRouter)(),r=(0,a.m)(),{t:n}=(0,s.$G)(),{showConfirmation:o}=(0,P.p)(),[C,z]=(0,i.useState)([]),[M,E]=(0,i.useState)([]),[T,N]=(0,i.useState)([]),[O,R]=(0,i.useState)([]),[D,H]=(0,i.useState)(!0),[_,V]=(0,i.useState)(!1),A=(0,i.useMemo)(()=>d.Ry().shape({id:d.Rx().required(),name:d.Z_().required(n("adminPage.organizations.errorMessages.invalidName")),description:d.Z_(),userIds:d.IX()}),[n]),{control:F,setError:U,reset:W,handleSubmit:q,watch:X,formState:{errors:G,isDirty:B}}=(0,g.cI)({defaultValues:L,mode:"onBlur",resolver:(0,c.X)(A)}),Q=async e=>{try{let t=await r.organization.update(e);if(!t.ok)throw Error(t.error.message);h.ZP.success(n("adminPage.organizations.organizationUpdated"),{duration:5e3})}catch(e){h.ZP.error(n("adminPage.organizations.errorMessages.editOrganizationFailed"),{duration:5e3}),console.error("Failed to edit organization. Error: ",e)}finally{Y()}},$=async()=>{V(!0)},K=(0,i.useMemo)(()=>[{flex:.3,minWidth:100,field:"name",renderHeader:()=>(0,t.jsx)(y.Z,{icon:"mdi:account-outline",fontSize:20}),renderCell:e=>{var r;let{row:n}=e;return(0,t.jsxs)(x.Z,{sx:{display:"flex",alignItems:"center"},children:[(0,t.jsx)(p.Z,{alt:n.firstName||"",sx:{width:"1.875rem",he
1ight:"1.875rem",borderRadius:5},src:(null===(r=n.avatar)||void 0===r?void 0:r.src)||""}),(0,t.jsxs)(x.Z,{sx:{display:"flex",alignItems:"flex-start",flexDirection:"column",ml:2},children:[(0,t.jsxs)(f.Z,{variant:"subtitle1",children:[n.firstName," ",n.lastName]}),(0,t.jsx)(f.Z,{noWrap:!0,variant:"caption",children:"".concat(n.email)})]})]})}},{flex:.25,minWidth:80,field:"role",renderHeader:()=>(0,t.jsx)(y.Z,{icon:"mdi:check-circle-outline",fontSize:20}),renderCell:e=>{let{row:r}=e;switch(r.role){case u.i4.Student:return(0,t.jsx)(m.Z,{label:n("userRoles.Student"),skin:"light",color:"success"});case u.i4.Teacher:return(0,t.jsx)(m.Z,{label:n("userRoles.Teacher"),skin:"light",color:"info"});case u.i4.OrganizationAdmin:return(0,t.jsx)(m.Z,{label:n("userRoles.OrganizationAdmin"),skin:"light",color:"warning"});case u.i4.Admin:return(0,t.jsx)(m.Z,{label:n("userRoles.Admin"),skin:"light",color:"warning"});default:return(0,t.jsx)(t.Fragment,{})}}}],[n]),Y=async()=>{let n=e.query.orgId;try{var t;let i=await r.organization.get(Number(n));if(!i.ok)throw H(!1),e.push("/404"),Error(i.error.message);let a=i.data;return W({...a,userIds:null===(t=a.userOrganizationMemberships)||void 0===t?void 0:t.map(e=>{var r;return null===(r=e.user)||void 0===r?void 0:r.id})}),a}catch(e){console.error("Failed to get organization. Error: ",e)}};return(i.useEffect(()=>{let n=e.query.orgId;if(n){let n=async()=>{let n=await Y();if(!n){H(!1),e.push("/404");return}let{data:t}=await r.user.getAll(),i=t.filter(e=>!e.isDeleted),a=i.filter(e=>{var r;return null===(r=n.userOrganizationMemberships)||void 0===r?void 0:r.some(r=>{var n;return(null===(n=r.user)||void 0===n?void 0:n.id)===e.id})}),o=i.filter(e=>{var r;return!(null===(r=n.userOrganizationMemberships)||void 0===r?void 0:r.some(r=>{var n;return(null===(n=r.user)||void 0===n?void 0:n.id)===e.id}))});N(i),z(a),E(o),H(!1)};n()}},[e.query.orgId]),i.useEffect(()=>{let r=e.asPath,t=e=>{if(B)return e.preventDefault(),e.returnValue=n("adminPage.organizations.errorMessages.unsavedChangesMessageDescription")},i=t=>{if(B&&r!==t&&"/404/"!==t&&!confirm(n("adminPage.organizations.errorMessages.unsavedChangesMessageDescription")))throw e.events.emit("routeChangeError"),window.history.pushState(null,"",r),"routeChange aborted."};return window.addEventListener("beforeunload",t),e.events.on("routeChangeStart",i),()=>{window.removeEventListener("beforeunload",t),e.events.off("routeChangeStart",i)}},[e,B,n]),D)?(0,t.jsx)(t.Fragment,{children:"loading..."}):(0,t.jsx)(t.Fragment,{children:(0,t.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:q(Q),children:[(0,t.jsx)(x.Z,{sx:{marginTop:2},children:(0,t.jsxs)(v.ZP,{container:!0,columnSpacing:2,rowGap:5,direction:"row",children:[(0,t.jsx)(v.ZP,{item:!0,xs:12,md:6,children:(0,t.jsx)(j.Z,{fullWidth:!0,children:(0,t.jsx)(g.Qr,{name:"name",control:F,rules:{required:!0},render:e=>{var r;let{field:{value:i,onChange:a}}=e;return(0,t.jsx)(Z.Z,{label:n("adminPage.organizations.nameInput"),value:i,error:!!G.name,helperText:!!G.name&&(null===(r=G.name)||void 0===r?void 0:r.message),onChange:e=>{a(e.target.value)}})}})})}),(0,t.jsx)(v.ZP,{item:!0,xs:12,md:12,children:(0,t.jsx)(j.Z,{fullWidth:!0,children:(0,t.jsx)(g.Qr,{name:"description",control:F,render:e=>{var r;let{field:{value:i,onChange:a}}=e;return(0,t.jsx)(Z.Z,{label:n("adminPage.organizations.descriptionInput"),value:i,multiline:!0,error:!!G.description,helperText:!!G.description&&(null===(r=G.description)||void 0===r?void 0:r.message),onChange:e=>{a(e.target.value)}})}})})})]})}),(0,t.jsx)(f.Z,{variant:"h6",sx:{mt:4},children:n("adminPage.organizations.userListTitle")}),(0,t.jsx)(g.Qr,{name:"userIds",control:F,render:e=>{let{field:{value:r,onChange:n}}=e;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(w._,{style:{minHeight:"65vh"},columns:K,rows:C,disableRowSelectionOnClick:!0,pageSizeOptions:[7,10,25,50,100],checkboxSelection:!0,slots:{toolbar:()=>k({onDelete:()=>{let e=C.filter(e=>!O.includes(e.id));n(e.map(e=>e.id)),z(e),E(T.filter(r=>!e.some(e=>e.id===r.id))),R([])},onAdd:$,disableDelete:0===O.length})},onRowSelectionModelChange:e=>{R(e)},rowSelectionModel:O}),(0,t.jsx)(I,{users:M,open:_,onClose:()=>{V(!1)},onComplete:e=>{let r=[...C,...e];n(r.map(e=>e.id)),z(r);let t=M.filter(e=>!r.some(r=>r.id===e.id));E(t)}})]})}}),(0,t.jsx)(b.Z,{startIcon:(0,t.jsx)(S.Z,{}),sx:{width:"130px"},variant:"contained",type:"submit",disabled:!B,children:n("common.save")})]})})};N.acl={action:o.H.Read,subject:o.D.AdminPage};var O=N},47533:function(e,r,n){"use strict";n.d(r,{X:function(){return s}});var t=n(87536),i=function(e,r,n){if(e&&"reportValidity"in e){var i=(0,t.U2)(n,r);e.setCustomValidity(i&&i.message||""),e.reportValidity()}},a=function(e,r){var n=function(n){var t=r.fields[n];t&&t.ref&&"reportValidity"in t.ref?i(t.ref,n,e):t.refs&&t.refs.forEac
1h(function(r){return i(r,n,e)})};for(var t in r.fields)n(t)},o=function(e,r){r.shouldUseNativeValidation&&a(e,r);var n={};for(var i in e){var o=(0,t.U2)(r.fields,i);(0,t.t8)(n,i,Object.assign(e[i]||{},{ref:o&&o.ref}))}return n},s=function(e,r,n){return void 0===r&&(r={}),void 0===n&&(n={}),function(i,s,l){try{return Promise.resolve(function(t,o){try{var d=(r.context,Promise.resolve(e["sync"===n.mode?"validateSync":"validate"](i,Object.assign({abortEarly:!1},r,{context:s}))).then(function(e){return l.shouldUseNativeValidation&&a({},l),{values:n.raw?i:e,errors:{}}}))}catch(e){return o(e)}return d&&d.then?d.then(void 0,o):d}(0,function(e){var r;if(!e.inner)throw e;return{values:{},errors:o((r=!l.shouldUseNativeValidation&&"all"===l.criteriaMode,(e.inner||[]).reduce(function(e,n){if(e[n.path]||(e[n.path]={message:n.message,type:n.type}),r){var i=e[n.path].types,a=i&&i[n.type];e[n.path]=(0,t.KN)(n.path,r,e,n.type,a?[].concat(a,n.message):n.message)}return e},{})),l)}}))}catch(e){return Promise.reject(e)}}}}},function(e){e.O(0,[6886,2395,135,3420,6310,4386,4277,9774,2888,179],function(){return e(e.s=258)}),_N_E=e.O()}]);
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.