r2-explorer 1.1.10 → 1.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dashboard/assets/{AuthLayout.44d95d02.js → AuthLayout.0d7701f7.js} +1 -1
- package/dashboard/assets/EmailFilePage.12cbd72f.js +2 -0
- package/dashboard/assets/ErrorNotFound.edf4fcea.js +1 -0
- package/dashboard/{spa/assets/LoginPage.ca226917.js → assets/LoginPage.55d653ae.js} +1 -1
- package/dashboard/assets/{auth-store.c1556190.js → auth-store.a55ef8b1.js} +1 -1
- package/dashboard/assets/{auth.e242b7eb.js → auth.7340ecd2.js} +1 -1
- package/dashboard/assets/{bus.4a606b2f.js → bus.88084376.js} +1 -1
- package/dashboard/assets/{index.a1f775a6.css → index.4aacbd79.css} +1 -1
- package/dashboard/assets/{index.706c4d3e.js → index.a267d362.js} +28 -28
- package/dashboard/index.html +2 -2
- package/dashboard/spa/assets/{AuthLayout.44d95d02.js → AuthLayout.0d7701f7.js} +1 -1
- package/dashboard/spa/assets/EmailFilePage.12cbd72f.js +2 -0
- package/dashboard/spa/assets/ErrorNotFound.edf4fcea.js +1 -0
- package/dashboard/{assets/LoginPage.ca226917.js → spa/assets/LoginPage.55d653ae.js} +1 -1
- package/dashboard/spa/assets/{auth-store.c1556190.js → auth-store.a55ef8b1.js} +1 -1
- package/dashboard/spa/assets/{auth.e242b7eb.js → auth.7340ecd2.js} +1 -1
- package/dashboard/spa/assets/{bus.4a606b2f.js → bus.88084376.js} +1 -1
- package/dashboard/spa/assets/{index.a1f775a6.css → index.4aacbd79.css} +1 -1
- package/dashboard/spa/assets/{index.706c4d3e.js → index.a267d362.js} +28 -28
- package/dashboard/spa/index.html +2 -2
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +792 -454
- package/dist/index.mjs +782 -444
- package/package.json +15 -15
- package/dashboard/assets/EmailFilePage.ccbeefd3.js +0 -2
- package/dashboard/assets/ErrorNotFound.19a254c5.js +0 -1
- package/dashboard/spa/assets/EmailFilePage.ccbeefd3.js +0 -2
- package/dashboard/spa/assets/ErrorNotFound.19a254c5.js +0 -1
package/dashboard/index.html
CHANGED
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
color: #333;
|
|
34
34
|
font-size: 1.2rem;
|
|
35
35
|
margin-bottom: 0.5rem;
|
|
36
|
-
}</style> <script type="module" crossorigin src="/assets/index.
|
|
37
|
-
<link rel="stylesheet" href="/assets/index.
|
|
36
|
+
}</style> <script type="module" crossorigin src="/assets/index.a267d362.js"></script>
|
|
37
|
+
<link rel="stylesheet" href="/assets/index.4aacbd79.css">
|
|
38
38
|
</head><body><div id=q-app></div></body><script>var elem = document.getElementById('q-app')
|
|
39
39
|
elem.innerHTML = `
|
|
40
40
|
<div class="initialLoading">
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as a,c as n,r,o as s,e as c,w as e,Q as _,f as o,g as p}from"./index.
|
|
1
|
+
import{_ as a,c as n,r,o as s,e as c,w as e,Q as _,f as o,g as p}from"./index.a267d362.js";const u=n({name:"AuthLayout",components:{}});function f(i,d,l,m,h,v){const t=r("router-view");return s(),c(_,{view:"hHh lpR fFf"},{default:e(()=>[o(p,{class:"container"},{default:e(()=>[o(t)]),_:1})]),_:1})}var x=a(u,[["render",f]]);export{x as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{h as F,k as C,l as H,m as I,_ as M,c as A,G as v,H as w,I as S,J as m,u as E,K as Q,o as i,L as c,f as s,w as l,F as y,M as P,x as p,E as k,N as g,z as f,O as $,e as _,B,y as o,A as u,t as b,P as q,R as L,S as z}from"./index.a267d362.js";var W=F({name:"QBtnGroup",props:{unelevated:Boolean,outline:Boolean,flat:Boolean,rounded:Boolean,square:Boolean,push:Boolean,stretch:Boolean,glossy:Boolean,spread:Boolean},setup(e,{slots:t}){const h=C(()=>{const n=["unelevated","outline","flat","rounded","square","push","stretch","glossy"].filter(a=>e[a]===!0).map(a=>`q-btn-group--${a}`).join(" ");return`q-btn-group row no-wrap${n.length!==0?" "+n:""}`+(e.spread===!0?" q-btn-group--spread":" inline")});return()=>H("div",{class:h.value},I(t.default))}});const N=A({name:"EmailFolderPage",data:()=>({srcdoc:null,file:null,fileHead:null,timeInterval:null,attachments:[]}),computed:{selectedBucket:function(){return this.$route.params.bucket},selectedFolder:function(){return this.$route.params.folder},selectedFile:function(){return this.$route.params.file},filePath:function(){const e=v(this.selectedFile);return`.r2-explorer/emails/${this.selectedFolder}/${e}`}},watch:{selectedBucket(e){this.$router.push({name:"email-folder",params:{bucket:e,folder:w(this.selectedFolder)}})}},methods:{timeSince:S,contentFinishedLoading(){clearInterval(this.timeInterval),this.timeInterval=null,this.resizeIframe()},resizeIframe(){this.$refs.renderWindow&&(this.$refs.renderWindow.style.height=`${this.$refs.renderWindow.contentWindow.document.documentElement.scrollHeight}px`)},fetchEmail:async function(){const e=v(this.selectedFile),t=await m.downloadFile(this.selectedBucket,this.filePath,{}),h=e.split(".json")[0];this.file=t.data;let n=t.data.html;if(n){n=n.replaceAll(/<a(.*?)>(.*?)<\/a>/gi,'<a$1 target="_blank">$2</a>');for(const a of t.data.attachments){a.display=!0,a.downloadUrl=`${this.mainStore.serverUrl}/api/buckets/${this.selectedBucket}/${w(`.r2-explorer/emails/${this.selectedFolder}/${h}/${a.filename}`)}`;let r=a.contentId;if(r){r.startsWith("<")&&r.endsWith(">")&&(r=r.substring(1,r.length-1));const d=`cid:${r}`;n.includes(d)&&(n=n.replaceAll(`cid:${r}`,a.downloadUrl),a.display=!1)}}this.srcdoc=n}this.attachments=t.data.attachments.filter(a=>a.display),m.headFile(this.selectedBucket,this.filePath).then(async a=>{a.customMetadata.read==="false"?this.fileHead=await m.updateMetadata(this.selectedBucket,this.filePath,{...a.customMetadata,read:!0}):this.fileHead=a}),setTimeout(()=>{this.contentFinishedLoading()},1e4),this.timeInterval=setInterval(()=>{this.resizeIframe()},400)},markAsUnread:async function(){this.fileHead=await m.updateMetadata(this.selectedBucket,this.filePath,{...this.fileHead.customMetadata,read:!1}),this.q.notify({group:!1,icon:"done",spinner:!1,message:"Email marked as unread!",timeout:2500})},markAsRead:async function(){this.fileHead=await m.updateMetadata(this.selectedBucket,this.filePath,{...this.fileHead.customMetadata,read:!0}),this.q.notify({group:!1,icon:"done",spinner:!1,message:"Email marked as read!",timeout:2500})},downloadAtt:e=>{console.log(e);const t=document.createElement("a");t.download=e.filename,t.href=e.downloadUrl,document.body.appendChild(t),t.click(),document.body.removeChild(t)}},created(){this.fetchEmail()},setup(){return{mainStore:E(),q:Q()}}}),U={key:0},T={class:"font-18 q-my-none"},V={class:"d-flex row"},D={class:"d-flex column"},G={class:"text-muted"},R={class:"q-ml-auto"},j={class:""},x={class:"overflow-auto d-block email-wrapper"},J=["srcdoc"],K=["innerHTML"],O={class:"row attachments"},X={key:1,class:"text-center q-my-lg"};function Y(e,t,h,n,a,r){return this.file?(i(),c("div",U,[s(y,null,{default:l(()=>[s(p,{class:"bg-grey-2 text-black",vertical:""},{default:l(()=>[s(W,{unelevated:""},{default:l(()=>[s(k,{push:"",icon:"arrow_back",to:{name:"email-folder",params:{bucket:e.$route.params.bucket,folder:e.$route.params.folder}}},{default:l(()=>[s(g,null,{default:l(()=>t[1]||(t[1]=[f("Back")])),_:1})]),_:1},8,["to"]),e.fileHead?(i(),c($,{key:0},[e.fileHead.customMetadata.read==="true"?(i(),_(k,{key:0,push:"",icon:"mark_email_unread",onClick:e.markAsUnread},{default:l(()=>[s(g,null,{default:l(()=>t[2]||(t[2]=[f("Mark email as unread")])),_:1})]),_:1},8,["onClick"])):(i(),_(k,{key:1,push:"",icon:"mark_email_read",onClick:e.markAsRead},{default:l(()=>[s(g,null,{default:l(()=>t[3]||(t[3]=[f("Mark email as read")])),_:1})]),_:1},8,["onClick"]))],64)):B("",!0)]),_:1})]),_:1}),s(p,{vertical:""},{default:l(()=>[o("h5",T,u(e.file.subject),1)]),_:1}),s(p,{horizontal:"",class:"q-px-sm"},{default:l(()=>[o("div",V,[s(b,{name:"account_circle",size:"xl",class:"q-mr-sm"}),o("div",D,[o("span",null,[f(u(e.file.from.name)+" ",1),o("small",G,"<"+u(e.file.from.address)+">",1)]),o("span",null,"to "+u(e.file.to[0].address),1)])]),o("div",R,[o("small",j,u(e.file.date)+" ("+u(e.timeSince(new Date(e.file.date)))+")",1)])]),_:1}),s(q,{vertical:""},{default:l(()=>[o("div",x,[e.srcdoc?(i(),c("iframe",{key:0,frameborder:"0",scrolling:"no",class:"w-100 d-block",onLoad:t[0]||(t[0]=(...d)=>e.contentFinishedLoading&&e.contentFinishedLoading(...d)),ref:"renderWindow",id:"renderWindow",srcdoc:e.srcdoc,sandbox:"allow-popups allow-popups-to-escape-sandbox allow-same-origin",csp:"script-src 'none'"},null,40,J)):(i(),c("div",{key:1,innerHTML:e.file.text.replaceAll(`
|
|
2
|
+
`,"<br>")},null,8,K))])]),_:1}),e.attachments.length>0?(i(),_(q,{key:0,vertical:""},{default:l(()=>[s(L),t[4]||(t[4]=o("h6",{class:"q-my-md"},"Attachments",-1)),o("div",O,[(i(!0),c($,null,z(e.file.attachments,d=>(i(),c("div",{class:"col-md-4 col-sm-12",key:d.filename},[s(y,null,{default:l(()=>[s(p,{class:"q-pa-sm flex",style:{"align-items":"center"}},{default:l(()=>[s(b,{name:"description",size:"md",color:"blue",class:"q-mr-sm"}),f(" "+u(d.filename)+" ",1),s(k,{color:"white","text-color":"black",icon:"download",class:"q-mr-0 q-ml-auto",onClick:Z=>e.downloadAtt(d)},null,8,["onClick"])]),_:2},1024)]),_:2},1024)]))),128))])]),_:1})):B("",!0)]),_:1})])):(i(),c("div",X,[s(P,{color:"primary",size:"3em"})]))}var te=M(N,[["render",Y],["__scopeId","data-v-59368c26"]]);export{te as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as o,c as s,o as r,L as n,y as t,f as a,E as l}from"./index.a267d362.js";const c=s({name:"ErrorNotFound"}),d={class:"fullscreen bg-blue text-white text-center q-pa-md flex flex-center"};function i(p,e,f,u,x,m){return r(),n("div",d,[t("div",null,[e[0]||(e[0]=t("div",{style:{"font-size":"30vh"}}," 404 ",-1)),e[1]||(e[1]=t("div",{class:"text-h2",style:{opacity:".4"}}," Oops. Nothing here... ",-1)),a(l,{class:"q-mt-xl",color:"white","text-color":"blue",unelevated:"",to:"/",label:"Go Home","no-caps":""})])])}var _=o(c,[["render",i]]);export{_ as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h,i as w,j as y,k as u,l as r,m,n as k,p as q,q as C,s as S,t as V,_ as x,c as Q,o as p,e as v,w as t,v as B,f as o,x as f,y as g,z as E,A as I,B as _,C as $,D as b,E as A,F as D}from"./index.
|
|
1
|
+
import{h,i as w,j as y,k as u,l as r,m,n as k,p as q,q as C,s as S,t as V,_ as x,c as Q,o as p,e as v,w as t,v as B,f as o,x as f,y as g,z as E,A as I,B as _,C as $,D as b,E as A,F as D}from"./index.a267d362.js";import{u as P}from"./auth-store.a55ef8b1.js";var N=h({name:"QBanner",props:{...w,inlineActions:Boolean,dense:Boolean,rounded:Boolean},setup(e,{slots:a}){const{proxy:{$q:s}}=k(),d=y(e,s),l=u(()=>"q-banner row items-center"+(e.dense===!0?" q-banner--dense":"")+(d.value===!0?" q-banner--dark q-dark":"")+(e.rounded===!0?" rounded-borders":"")),i=u(()=>`q-banner__actions row items-center justify-end col-${e.inlineActions===!0?"auto":"all"}`);return()=>{const n=[r("div",{class:"q-banner__avatar col-auto row items-center self-start"},m(a.avatar)),r("div",{class:"q-banner__content col text-body2"},m(a.default))],c=m(a.action);return c!==void 0&&n.push(r("div",{class:i.value},c)),r("div",{class:l.value+(e.inlineActions===!1&&c!==void 0?" q-banner--top-padding":""),role:"alert"},n)}}}),U=h({name:"QToggle",props:{...q,icon:String,iconColor:String},emits:C,setup(e){function a(s,d){const l=u(()=>(s.value===!0?e.checkedIcon:d.value===!0?e.indeterminateIcon:e.uncheckedIcon)||e.icon),i=u(()=>s.value===!0?e.iconColor:null);return()=>[r("div",{class:"q-toggle__track"}),r("div",{class:"q-toggle__thumb absolute flex flex-center no-wrap"},l.value!==void 0?[r(V,{name:l.value,color:i.value})]:void 0)]}return S("toggle",a)}});const z=P(),j=Q({name:"login-page",components:{},data(){return{loading:!1,showError:"",form:{username:"",password:"",remind:!0}}},methods:{async onSubmit(){this.loading=!0;try{await z.LogIn(this.$router,this.form),this.showError=""}catch(e){throw this.showError=e.message,e}finally{this.loading=!1}}}});function F(e,a,s,d,l,i){return p(),v(B,{class:"flex flex-center"},{default:t(()=>[o(D,{class:"q-pa-md shadow-2",bordered:""},{default:t(()=>[o(f,{class:"text-center"},{default:t(()=>a[3]||(a[3]=[g("div",{class:"text-grey-9 text-h5 text-weight-bold"},"Sign in",-1),g("div",{class:"text-grey-8"},"Enter your email address and password to access admin panel.",-1)])),_:1}),e.showError?(p(),v(f,{key:0},{default:t(()=>[o(N,{"inline-actions":"",class:"text-white bg-red"},{default:t(()=>[E(I(e.showError),1)]),_:1})]),_:1})):_("",!0),o(f,null,{default:t(()=>[o($,{onSubmit:e.onSubmit,class:"q-gutter-sm"},{default:t(()=>[o(b,{filled:"",modelValue:e.form.username,"onUpdate:modelValue":a[0]||(a[0]=n=>e.form.username=n),label:"Username","lazy-rules":"",type:"text"},null,8,["modelValue"]),o(b,{filled:"",modelValue:e.form.password,"onUpdate:modelValue":a[1]||(a[1]=n=>e.form.password=n),label:"Password","lazy-rules":"",type:"password"},null,8,["modelValue"]),o(U,{modelValue:e.form.remind,"onUpdate:modelValue":a[2]||(a[2]=n=>e.form.remind=n),label:"Remember me"},null,8,["modelValue"]),g("div",null,[o(A,{loading:e.loading,label:"Sign in",type:"submit",color:"primary"},null,8,["loading"])])]),_:1},8,["onSubmit"])]),_:1})]),_:1})]),_:1})}var R=x(j,[["render",F]]);export{R as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as l,u as i,a as r}from"./index.
|
|
1
|
+
import{d as l,u as i,a as r}from"./index.a267d362.js";const a="r2_explorer_session_token",c=l("auth",{state:()=>({}),getters:{isAuthenticated:e=>!!e.user,StateUser:e=>e.user},actions:{async LogIn(e,s){const o=i(),t=btoa(`${s.username}:${s.password}`);r.defaults.headers.common.Authorization=`Basic ${t}`;try{await o.loadServerConfigs(e,this.q)}catch(n){throw console.log(n),delete r.defaults.headers.common.Authorization,new Error("Invalid username or password")}r.defaults.headers.common.Authorization=`Basic ${t}`,s.remind===!0?localStorage.setItem(a,t):sessionStorage.setItem(a,t)},async CheckLoginInStorage(e,s){let o=sessionStorage.getItem(a),t=!1;if(o||(o=localStorage.getItem(a)),!o)return!1;const n=i();return r.defaults.headers.common.Authorization=`Basic ${o}`,t=await n.loadServerConfigs(e,s,!0),t||delete r.defaults.headers.common.Authorization,!1},async LogOut(e){localStorage.removeItem(a),sessionStorage.removeItem(a),await e.replace({name:"login"})}}});export{c as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as e,u as r}from"./index.
|
|
1
|
+
import{b as e,u as r}from"./index.a267d362.js";import{u as s}from"./auth-store.a55ef8b1.js";var c=e(async({app:o,router:t,store:a})=>{await s(a).CheckLoginInStorage(t,o.config.globalProperties.$q)===!1&&await r(a).loadServerConfigs(t,o.config.globalProperties.$q,!0)});export{c as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as c}from"./index.
|
|
1
|
+
import{b as c}from"./index.a267d362.js";class n{constructor(){this.__stack={}}on(t,s,i){return(this.__stack[t]||(this.__stack[t]=[])).push({fn:s,ctx:i}),this}once(t,s,i){const o=(...e)=>{this.off(t,o),s.apply(i,e)};return o.__callback=s,this.on(t,o,i)}emit(t){const s=this.__stack[t];if(s!==void 0){const i=[].slice.call(arguments,1);s.forEach(o=>{o.fn.apply(o.ctx,i)})}return this}off(t,s){const i=this.__stack[t];if(i===void 0)return this;if(s===void 0)return delete this.__stack[t],this;const o=i.filter(e=>e.fn!==s&&e.fn.__callback!==s);return o.length!==0?this.__stack[t]=o:delete this.__stack[t],this}}var h=c(({app:r})=>{const t=new n;r.config.globalProperties.$bus=t,r.provide("bus",t)});export{h as default};
|