PageSourceSearch

https://misc.org.au/assets/AdminLayout-zrsJP3Az.js

js misc.org.au collected 2026-10-02 22:50:02 UTC 4,479 bytes, 1 lines download raw bytes

1import{e as u,l as p,r as x,j as e,N as _,O as f}from"./index-BRCmFheh.js";const v=[{label:null,items:[{to:"/admin",label:"Dashboard",end:!0,roles:null}]},{label:"Manage",items:[{to:"/admin/members",label:"Members",roles:["members_admin"]},{to:"/admin/member-reports",label:"Member Reports",roles:["members_admin"]},{to:"/admin/events",label:"Events",roles:["members_admin"]},{to:"/admin/newsletter",label:"Newsletter",roles:["newsletter_manager"]},{to:"/admin/comms",label:"Comms",roles:["members_admin"]},{to:"/admin/membership-payments",label:"Membership Payments",roles:["members_admin"]},{to:"/admin/lrd-compliance",label:"LRD Compliance",roles:["members_admin"]},{to:"/admin/coaching-records",label:"Coaching / RO Records",roles:["members_admin"]},{to:"/admin/coaching-status",label:"Coaching / Training Status",roles:["members_admin"]}]},{label:"Submissions",items:[{to:"/admin/submissions",label:"New Members",roles:["members_admin"]},{to:"/admin/details-updates",label:"Member Details Changes",roles:["members_admin"]},{to:"/admin/join-workflow",label:"Waiting List & Workflow",roles:["members_admin"]},{to:"/admin/join-workflow/groups",label:"Induction & Safety Groups",roles:["members_admin"]}]},{label:"Training",items:[{to:"/admin/training",label:"Sessions & Bookings",roles:["coaching_manager"]},{to:"/admin/training-reports",label:"Training Reports",roles:["coaching_manager"]},{to:"/admin/training-roster",label:"Weekly Roster",roles:["coaching_manager"]},{to:"/admin/training-coaches",label:"Coaches",roles:["coaching_manager"]},{to:"/admin/training-coaching-schedule",label:"Coaching Schedule",roles:["coaching_manager"]}]},{label:"CMS",items:[{to:"/admin/pages",label:"Pages",roles:["content_manager"]},{to:"/admin/posts",label:"News Posts",roles:["content_manager"]},{to:"/admin/media",label:"Media",roles:["content_manager"]},{to:"/admin/hero-images",label:"Front Page",roles:["content_manager"]},{to:"/admin/documents",label:"Documents",roles:["content_manager"]},{to:"/admin/uniform",label:"Uniform",roles:["content_manager"]}]},{label:"Admin",items:[{to:"/admin/admin-users",label:"Admin Users",roles:["siteadmin"]},{to:"/admin/settings",label:"Site Settings",roles:["siteadmin"]},{to:"/admin/scheduled-tasks",label:"Scheduled Tasks",roles:["siteadmin"]}]},{label:"Account",items:[{to:"/admin/mfa",label:"Two-Factor Authentication",roles:null}]}],S={siteadmin:"Site Admin",members_admin:"Members Admin",coaching_manager:"Coaching Manager",newsletter_manager:"Newsletter Manager",content_manager:"Content Manager"};function N(){const{adminLogout:o,adminRole:n}=u(),m=p(),[s,l]=x.useState(!1),r=async()=>{await o(),m("/admin/login",{replace:!0})},d=a=>a===null||n==="siteadmin"||a.includes(n??""),c=v.map(a=>({...a,items:a.items.filter(i=>d(i.roles))})).filter(a=>a.items.length>0);return e.jsxs("div",{style:{minHeight:"100vh",display:"flex",flexDirection:"column"},children:[e.jsxs("header",{className:"admin-header",children:[e.jsxs("a",{className:"logo",href:"/",style:{display:"flex",alignItems:"center",gap:10,textDecoration:"none",flexShrink:0},children:[e.jsx("img",{src:"/images/MISC-Colour-6x-1-300x294.png",alt:"MISC",width:28,height:28}),e.jsx("span",{style:{fontWeight:700,fontSize:"0.9rem",color:"var(--fg)"},children:"MISC Admin"})]}),e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:16},children:[n&&e.jsx("span",{style:{fontSize:"0.75rem",color:"var(--dim)",whiteSpace:"nowrap"},children:S[n]??n}),e.jsx("button",{onClick:r,style:{background:"none",border:"1px solid var(--border)",color:"var(--muted)",cursor:"pointer",padding:"5px 12px",borderRadius:3,fontSize:"0.8rem"},children:"Sign out"})]})]}),e.jsx("div",{className:"admin-sidebar-toggle-bar",children:e.jsx("button",{className:"admin-sidebar-toggle-btn","aria-expanded":s,"aria-controls":"adminNav",onClick:()=>l(a=>!a),children:s?"Close menu":"Admin menu"})}),e.jsxs("div",{className:"admin-shell",children:[e.jsx("aside",{className:`admin-sidebar${s?" open":""}`,id:"adminNav",children:c.map((a,i)=>e.jsxs("div",{className:"nav-group",children:[a.label&&e.jsx("span",{className:"nav-section-label",children:a.label}),e.jsx("div",{className:"nav-group-items",children:a.items.map(({to:t,label:b,end:g})=>e.jsx(_,{to:t,end:g,className:({isActive:h})=>h?"active":"",onClick:()=>l(!1),children:b},t))})]},a.label??`top-${i}`))}),e.jsx("main",{style:{flex:1,padding:"32px 24px",maxWidth:1200,width:"100%",margin:"0 auto"},children:e.jsx(f,{})})]})]})}export{N as default};

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.