UNPKG

adaptorex

Version:

Connect all your live interactive storytelling devices and software

2 lines (1 loc) 10.3 kB
import{u as Q,z as W,c as p,r as I,s as X,b as Z,d as a,o as l,e,f as F,g as k,i as y,ai as b,F as M,h as R,w as D,k as d,P as T,j as E,t,q as w,l as x,m as i,B as V,_ as B}from"./index-BpVbOCok.js";const ee={class:"p-4 is-flex is-flex-direction-column"},te=e("div",{class:"is-flex is-justify-content-space-between is-align-items-center mb-4"},[e("h1",{class:"title is-5 is-uppercase"},"Archive")],-1),se={class:""},le=e("h1",{class:"title is-5 is-uppercase mb-4"},"Levels",-1),oe={key:0,class:"has-text-centered py-6"},ae=e("p",{class:"has-text-grey"},"No archived levels found.",-1),ne={key:1,class:"table-container"},ie={class:"table is-fullwidth is-bordered is-hoverable has-background-white"},ce=e("thead",null,[e("tr",null,[e("th",null,"Actions"),e("th",null,"Level Name"),e("th",null,"Description"),e("th",null,"Arguments"),e("th",null,"Created"),e("th",null,"Modified")])],-1),ue={class:"buttons"},de=["onClick"],re=["onClick"],me={class:"has-text-weight-semibold"},he={class:"content is-small"},_e={class:"content is-small"},ve={class:"content is-small"},pe={class:"has-text-grey"},ye={class:"content is-small"},be={class:"has-text-grey"},fe={class:"mt-6"},ge=e("h1",{class:"title is-5 is-uppercase mb-4"},"Documents",-1),ke={key:0,class:"has-text-centered py-6"},De=e("p",{class:"has-text-grey"},"No archived documents found.",-1),Te={key:0,class:"mb-6"},we={class:"subtitle is-6 has-text-weight-semibold mb-3"},xe={class:"table-container"},Ee={class:"table is-fullwidth is-bordered is-hoverable has-background-white"},Ce=e("thead",null,[e("tr",null,[e("th",null,"Actions"),e("th",null,"Document ID"),e("th",null,"Name"),e("th",null,"Created"),e("th",null,"Modified")])],-1),Le={class:"buttons"},Me=["onClick"],Ne=["onClick"],Ae=["onClick"],Re={class:"has-text-weight-semibold"},Se={class:"content is-small"},$e={class:"content is-small"},Oe={class:"has-text-grey"},Ie={class:"content is-small"},Fe={class:"has-text-grey"},Ve={class:"content"},Be={key:0},Pe=e("strong",null,"permanently delete",-1),je={key:0},ze={key:1},Je={key:0},Ue={key:0},qe={key:1},Ge={key:0,class:"has-text-weight-normal"},Ye={class:"content"},He={class:"field"},Ke=e("label",{class:"label"},"Document Information",-1),Qe={class:"box"},We={class:"columns"},Xe={class:"column"},Ze=e("strong",null,"ID:",-1),et=e("strong",null,"Name:",-1),tt=e("strong",null,"Collection:",-1),st={class:"column"},lt=e("strong",null,"Created by:",-1),ot=e("strong",null,"Created at:",-1),at=e("strong",null,"Modified by:",-1),nt=e("strong",null,"Modified at:",-1),it={class:"field"},ct=e("label",{class:"label"},"Document Data (JSON)",-1),ut={class:"box"},dt={class:"has-background-light p-4",style:{"max-height":"400px","overflow-y":"auto","font-size":"0.875rem"}},rt={class:"buttons"},_t={__name:"GameArchive",setup(mt){const h=Q(),P=W(),f=p(()=>h.state.game.selected),S=p(()=>h.state.game.archivedLevels||[]),$=p(()=>h.state.collections.archivedDocuments||{test:"test"}),j=p(()=>{const n=$.value;return Object.keys(n).some(u=>Array.isArray(n[u])&&n[u].length>0)}),s=I({visible:!1,type:null,itemType:null,item:null,collection:null}),o=I({visible:!1,document:null,collection:null});X(()=>{f.value&&(N(),A())});async function N(){try{await h.dispatch("game/getArchivedLevels")}catch(n){console.error("Failed to load archived levels:",n)}}async function A(){try{await h.dispatch("collections/getAllArchivedDocuments")}catch(n){console.error("Failed to load archived documents:",n)}}function g(n,u,_,c=null){s.value={visible:!0,type:n,itemType:u,item:_,collection:c}}function C(){s.value={visible:!1,type:null,itemType:null,item:null,collection:null}}async function z(){if(s.value.item)try{s.value.itemType==="level"?(await h.dispatch("game/deleteLevel",{game:f.value,level:s.value.item.name}),await N()):s.value.itemType==="document"&&(await h.dispatch("collections/deleteDocument",{game:f.value,collection:s.value.collection,document:s.value.item._id}),await A()),C()}catch(n){console.error(`Failed to delete ${s.value.itemType}:`,n)}}async function J(){if(s.value.item)try{s.value.itemType==="level"?(await h.dispatch("game/restoreLevel",{game:f.value,level:s.value.item.name}),await N()):s.value.itemType==="document"&&(await h.dispatch("collections/restoreDocument",{game:f.value,collection:s.value.collection,document:s.value.item._id}),await A()),C()}catch(n){console.error(`Failed to restore ${s.value.itemType}:`,n)}}function U(){P.push({name:"Overview",params:{game:f.value}})}function q(n,u){o.value={visible:!0,document:n,collection:u}}function L(){o.value={visible:!1,document:null,collection:null}}function G(){if(!o.value.document||!o.value.collection)return;const n=o.value.document,u=o.value.collection;L(),g("restore","document",n,u)}function Y(){if(!o.value.document||!o.value.collection)return;const n=o.value.document,u=o.value.collection;L(),g("delete","document",n,u)}const H=p(()=>{if(!s.value.type||!s.value.itemType)return"";const n=s.value.type.toUpperCase(),u=s.value.itemType.toUpperCase();return`${n} ${u}`}),r=p(()=>s.value.item?s.value.itemType==="level"?{itemName:s.value.item.name,itemType:"level",collection:null}:s.value.itemType==="document"?{itemName:s.value.item._id,itemType:"document",collection:s.value.collection}:null:""),K=p(()=>o.value.document?JSON.stringify(o.value.document,null,2):"");return(n,u)=>{const _=Z("permission");return l(),a("div",ee,[te,e("div",se,[le,S.value.length===0?(l(),a("div",oe,[y(b,{icon:"archive",class:"is-size-1 has-text-grey-light mb-3"}),ae,e("button",{class:"button is-light mt-3",onClick:U},"Return to Overview")])):(l(),a("div",ne,[e("table",ie,[ce,e("tbody",null,[(l(!0),a(M,null,R(S.value,c=>(l(),a("tr",{key:c.name},[e("td",null,[e("div",ue,[D((l(),a("a",{class:"button is-small is-rounded is-light",onClick:E(v=>g("restore","level",c),["stop"])},[y(b,{class:"has-text-success",icon:"refresh-cw",tooltip:"Restore Level"})],8,de)),[[_,d(T).RESTORE_LEVEL]]),D((l(),a("a",{class:"button is-small is-rounded is-light",onClick:E(v=>g("delete","level",c),["stop"])},[y(b,{class:"has-text-danger",icon:"trash",tooltip:"Permanently Delete Level"})],8,re)),[[_,d(T).DELETE_LEVEL]])])]),e("td",me,t(c.name),1),e("td",he,t(c?.config?.description||"No description"),1),e("td",_e,t(Object.keys(c?.config?.arguments||{}).join(", ")||"No arguments"),1),e("td",ve,[e("div",null,t(c.created_by),1),e("div",pe,t(d(w)(c.created_at)),1)]),e("td",ye,[e("div",null,t(c.modified_by),1),e("div",be,t(d(w)(c.modified_at)),1)])]))),128))])])]))]),e("div",fe,[ge,j.value?(l(!0),a(M,{key:1},R($.value,(c,v)=>(l(),a(M,{key:v},[c.length>0?(l(),a("div",Te,[e("h2",we,t(v)+" ("+t(c.length)+" archived) ",1),e("div",xe,[e("table",Ee,[Ce,e("tbody",null,[(l(!0),a(M,null,R(c,m=>(l(),a("tr",{key:m._id},[e("td",null,[e("div",Le,[e("a",{class:"button is-small is-rounded is-light",onClick:E(O=>q(m,v),["stop"])},[y(b,{class:"has-text-dark",icon:"eye",tooltip:"View Document Data"})],8,Me),D((l(),a("a",{class:"button is-small is-rounded is-light",onClick:E(O=>g("restore","document",m,v),["stop"])},[y(b,{class:"has-text-success",icon:"refresh-cw",tooltip:"Restore Document"})],8,Ne)),[[_,d(T).RESTORE_ITEMS]]),D((l(),a("a",{class:"button is-small is-rounded is-light",onClick:E(O=>g("delete","document",m,v),["stop"])},[y(b,{class:"has-text-danger",icon:"trash",tooltip:"Permanently Delete Document"})],8,Ae)),[[_,d(T).DELETE_ITEM]])])]),e("td",Re,t(m._id),1),e("td",Se,t(m.name||"No name"),1),e("td",$e,[e("div",null,t(m.created_by),1),e("div",Oe,t(d(w)(m.created_at)),1)]),e("td",Ie,[e("div",null,t(m.modified_by),1),e("div",Fe,t(d(w)(m.modified_at)),1)])]))),128))])])])])):k("",!0)],64))),128)):(l(),a("div",ke,[y(b,{icon:"archive",class:"is-size-1 has-text-grey-light mb-3"}),De]))]),s.value.visible?(l(),F(B,{key:0,modal:s.value,"css-classes":[s.value.type==="delete"?"is-danger":"is-success"],onCloseModal:C},{header:x(()=>[i(t(H.value),1)]),footer:x(()=>[e("button",{class:V(`button ${s.value.type==="delete"?"is-danger":"is-success"} m-1`),onClick:u[0]||(u[0]=c=>s.value.type==="delete"?z():J())},t(s.value.type==="delete"?"DELETE PERMANENTLY":"RESTORE"),3),e("button",{class:"button m-1",onClick:C},"Cancel")]),default:x(()=>[e("div",Ve,[s.value.type==="delete"?(l(),a("p",Be,[i(" Are you sure you want to "),Pe,i(" "+t(r.value?.itemType)+" ",1),e("b",null,t(r.value?.itemName),1),r.value?.collection?(l(),a("span",je,[i(" from collection "),e("b",null,t(r.value.collection),1)])):k("",!0),i(" ? ")])):(l(),a("p",ze,[i(" Are you sure you want to restore "+t(r.value?.itemType)+" ",1),e("b",null,t(r.value?.itemName),1),r.value?.collection?(l(),a("span",Je,[i(" from collection "),e("b",null,t(r.value.collection),1)])):k("",!0),i(" ? ")])),e("p",{class:V(s.value.type==="delete"?"has-text-danger":"has-text-success")},[s.value.type==="delete"?(l(),a("span",Ue," This action cannot be undone. The "+t(r.value?.itemType)+" and all its data will be lost forever. ",1)):(l(),a("span",qe," The "+t(r.value?.itemType)+" will be moved back to the active "+t(r.value?.itemType)+"s list and will be available for use. ",1))],2)])]),_:1},8,["modal","css-classes"])):k("",!0),o.value.visible?(l(),F(B,{key:1,modal:o.value,"css-classes":["is-info"],onCloseModal:L},{header:x(()=>[i(" Document Data - "+t(o.value.document?._id)+" ",1),o.value.collection?(l(),a("span",Ge," ("+t(o.value.collection)+") ",1)):k("",!0)]),footer:x(()=>[e("div",rt,[D((l(),a("button",{class:"button is-success m-1",onClick:G},[i(" Restore Document ")])),[[_,d(T).RESTORE_ITEMS]]),D((l(),a("button",{class:"button is-danger m-1",onClick:Y},[i(" Delete Permanently ")])),[[_,d(T).DELETE_ITEM]]),e("button",{class:"button is-info m-1",onClick:L},"Close")])]),default:x(()=>[e("div",Ye,[e("div",He,[Ke,e("div",Qe,[e("div",We,[e("div",Xe,[e("p",null,[Ze,i(" "+t(o.value.document?._id),1)]),e("p",null,[et,i(" "+t(o.value.document?.name||"No name"),1)]),e("p",null,[tt,i(" "+t(o.value.collection),1)])]),e("div",st,[e("p",null,[lt,i(" "+t(o.value.document?.created_by),1)]),e("p",null,[ot,i(" "+t(d(w)(o.value.document?.created_at)),1)]),e("p",null,[at,i(" "+t(o.value.document?.modified_by),1)]),e("p",null,[nt,i(" "+t(d(w)(o.value.document?.modified_at)),1)])])])])]),e("div",it,[ct,e("div",ut,[e("pre",dt,t(K.value),1)])])])]),_:1},8,["modal"])):k("",!0)])}}};export{_t as default};