1import{_ as w,c as n,a as s,A as v,B as m,z as y,t as i,e as h,H as u,F as c,r as p,U as b,d as _,j as f,f as k,o as r}from"./BwjkGPNs.js";const T={setup(){f({meta:[{name:"robots",content:"noindex, nofollow"}]});var a=k();return{api:a}},data(){return{password:"",authenticated:!1,loading:!1,error:"",data:null,templates:[{key:"welcome",label:"Welcome"},{key:"digest",label:"Daily Digest"},{key:"acca_won",label:"Acca Won"},{key:"acca_lost",label:"Acca Lost"},{key:"favorite_alert",label:"Favorite Alert"},{key:"password_reset",label:"Password Reset"}],activeTemplate:"welcome",previewLang:"en",languages:["en","ru","es","pt","fr","de","it","bg","ro","el","hu","pl","nl","cs","sv","tr","ko","th","vi","id","tl","zh","ar"],preview:null,previewLoading:!1,testEmail:"",sending:!1,sendResult:"",translations:null,transLangs:[],transKeys:[],transFilter:"",transLoading:!1}},mounted(){var a=localStorage.getItem("admin_emails_password");a&&(this.password=a,this.login())},computed:{filteredTransKeys(){if(!this.transKeys.length)return[];if(!this.transFilter)return this.transKeys;var a=this.transFilter.toLowerCase();return this.transKeys.filter(function(e){return e.toLowerCase().indexOf(a)!==-1})}},methods:{async login(){this.loading=!0,this.error="";try{var a=await this.api.getAdminEmails({password:this.password,action:"dashboard"});!a||a.error?(this.error="Wrong password or server error",this.authenticated=!1,localStorage.removeItem("admin_emails_password")):(this.data=a,this.authenticated=!0,localStorage.setItem("admin_emails_password",this.password),this.previewTemplate("welcome"))}catch{this.error="Request failed"}this.loading=!1},async refresh(){this.loading=!0;try{var a=await this.api.getAdminEmails({password:this.password,action:"dashboard"});a&&!a.error&&(this.data=a)}catch{}this.loading=!1},logout(){this.authenticated=!1,this.password="",this.data=null,this.preview=null,localStorage.removeItem("admin_emails_password")},async previewTemplate(a){this.activeTemplate=a,this.previewLoading=!0,this.sendResult="";try{var e=await this.api.getAdminEmails({password:this.password,action:"preview",type:a,lang:this.previewLang});this.preview=e}catch{this.preview=null}this.previewLoading=!1},async sendTest(){if(this.testEmail){this.sending=!0,this.sendResult="";try{var a=await this.api.getAdminEmails({password:this.password,action:"send_test",type:this.activeTemplate,to:this.testEmail,lang:this.previewLang});this.sendResult=a?.success?"OK":a?.error||"Failed"}catch{this.sendResult="Error"}this.sending=!1}},async loadTranslations(){this.transLoading=!0;try{var a=await this.api.getAdminEmails({password:this.password,action:"translations"});a&&a.translations&&(this.translations=a.translations,this.transLangs=a.languages||[],this.transKeys=a.keys||[])}catch{}this.transLoading=!1},formatDate(a){return a?a.replace("T"," ").substring(0,16):""}}},L={class:"admin-emails"},E={key:0,class:"login-box"},S=["disabled"],C={key:0,class:"error-msg"},F={key:1},R={class:"header-bar"},A={class:"header-actions"},D=["disabled"],K={class:"section"},x={class:"cards"},j={class:"card"},U={class:"card-value"},B={class:"card"},V={class:"card-value"},q={class:"card"},O={class:"card-value"},I={class:"card-value"},N={class:"card"},z={class:"card-value"},M={class:"card-value"},P={key:0,class:"section"},W={class:"data-table"},H={class:"type-badge"},Q={class:"num-cell num-green"},G={class:"num-cell"},J={class:"section"},X={class:"template-tabs"},Y=["onClick"],Z={class:"lang-selector"},$=["value"],ss={key:0,class:"preview-loading"},es={key:1,class:"preview-wrap"},ts={class:"preview-subject"},ls={class:"preview-actions"},as=["disabled"],is=["srcdoc"],ns={class:"section"},rs={key:0,class:"preview-loading"},os=["disabled"],ds={key:1,class:"translations-wrap"},us={class:"trans-filter"},cs={class:"trans-table-scroll"},ps={class:"data-table trans-table"},hs={class:"key-col"},vs={key:1,class:"section"},ms={class:"data-table"},gs={class:"date-cell"},ws={class:"type-badge"},ys={class:"email-cell"},bs={class:"subject-cell"};function _s(a,e,g,fs,t,o){return r(),n("div",L,[t.authenticated?(r(),n("div",F,[s("div",R,[e[11]||(e[11]=s("h1",null,"Email Dashboard",-1)),s("div",A,[s("button",{onClick:e[2]||(e[2]=(...l)=>o.refresh&&o.refresh(...l)),disabled:t.loading},i(t.loading?"Loading...":"Refresh"),9,D),s("button",{onClick:e[3]||(e[3]=(...l)=>o.logout&&o.logout(...l)),class:"btn-logout"},"Logout")])]),s("section",K,[e[18]||(e[18]=s("h2",null,"Overview",-1)),s("div",x,[s("div",j,[s("div",U,i(t.data.users.total),1),e[12]||(e[12]=s("div",{class:"card-label"},"Total Users",-1))]),s("div",B,[s("div",V,i(t.data.users.promoEnabled),1),e[13]||(e[13]=s("div",{class:"card-label"},"Digest Subscribers",-1))]),s("div",q,[s("div",O,i(t.data.users.notifEnabled),1),e[14]||(e[14]=s("div",{class:"card-label"},"Favorite Alerts ON",-1))]),s("div",{class:u(["card",{"card-warn":t.data.queue.pending>100}])},[s("div",I,i(t.data.queue.pending),1),e[15]||(e[15]=s("div",{class:"card-label"},"Queue Pending",-1))],2),s("div",N,[s("div",z,i(t.data.queue.sent),1),e[16]||(e[16]=s("div",{class:"card-label"},"Sent Today",-1))]),s("div",{class:u(["card",{"card-danger":t.data.queue.failed>0}])},[s("div",M,i(t.data.queue.failed),1),e[17]||(e[17]=s("div",{class:"card-label"},"Failed Today",-1))],2)])]),t.data.logsByType&&Object.keys(t.data.logsByType).length?(r(),n("section",P,[e[20]||(e[20]=s("h2",null,"Last 7 Days by Type",-1)),s("table",W,[e[19]||(e[19]=s("thead",null,[s("tr",null,[s("th",null,"Type"),s("th",null,"Sent"),s("th",null,"Failed"),s("th",null,"Total")])],-1)),s("tbody",null,[(r(!0),n(c,null,p(t.data.logsByType,(l,d)=>(r(),n("tr",{key:d},[s("td",null,[s("span",H,i(d),1)]),s("td",Q,i(l.sent),1),s("td",{class:u(["num-cell",{"num-red":l.failed>0}])},i(l.failed),3),s("td",G,i(l.sent+l.failed),1)]))),128))])])])):h("",!0),s("section",J,[e[23]||(e[23]=s("h2",null,"Email Templates",-1)),s("div",X,[(r(!0),n(c,null,p(t.templates,l=>(r(),n("button",{key:l.key,class:u(["template-tab",{active:t.activeTemplate===l.key}]),onClick:d=>o.previewTemplate(l.key)},i(l.label),11,Y))),128))]),s("div",Z,[e[21]||(e[21]=s("label",null,"Language:",-1)),v(s("select",{"onUpdate:modelValue":e[4]||(e[4]=l=>t.previewLang=l),onChange:e[5]||(e[5]=l=>o.previewTemplate(t.activeTemplate))},[(r(!0),n(c,null,p(t.languages,l=>(r(),n("option",{key:l,value:l},i(l.toUpperCase()),9,$))),128))],544),[[b,t.previewLang]])]),t.previewLoading?(r(),n("div",ss,"Loading preview...")):t.preview?(r(),n("div",es,[s("div",ts,[e[22]||(e[22]=_("Subject: ",-1)),s("strong",null,i(t.preview.subject),1)]),s("div",ls,[v(s("input",{"onUpdate:modelValue":e[6]||(e[6]=l=>t.testEmail=l),type:"email",placeholder:"Email to send test",class:"test-email-input"},null,512),[[m,t.testEmail]]),s("button",{onClick:e[7]||(e[7]=(...l)=>o.sendTest&&o.sendTest(...l)),disabled:t.sending,class:"btn-send"},i(t.sending?"Sending...":"Send Test"),9,as),t.sendResult?(r(),n("span",{key:0,class:u(t.sendResult==="OK"?"send-ok":"send-fail")},i(t.sendResult),3)):h("",!0)]),s("iframe",{class:"preview-frame",srcdoc:t.preview.html},null,8,is)])):h("",!0)]),s("section",ns,[e[25]||(e[25]=s("h2",null,"Email Translations",-1)),t.translations?(r(),n("div",ds,[s("div",us,[v(s("input",{"onUpdate:modelValue":e[9]||(e[9]=l=>t.transFilter=l),type:"text",placeholder:"Filter keys...",class:"test-email-input"},null,512),[[m,t.transFilter]])]),s("div",cs,[s("table",ps,[s("thead",null,[s("tr",null,[e[24]||(e[24]=s("th",{class:"key-col"},"Key",-1)),(r(!0),n(c,null,p(t.transLangs,l=>(r(),n("th",{key:l},i(l.toUpperCase()),1))),128))])]),s("tbody",null,[(r(!0),n(c,null,p(o.filteredTransKeys,l=>(r(),n("tr",{key:l},[s("td",hs,[s("code",null,i(l),1)]),(r(!0),n(c,null,p(t.transLangs,d=>(r(),n("td",{key:d,class:u(["trans-cell",{"trans-missing":!t.translations[d]||!t.translations[d][l]}])},i(t.translations[d]&&t.translations[d][l]?t.translations[d][l]:"â"),3))),128))]))),128))])])])])):(r(),n("div",rs,[s("button",{onClick:e[8]||(e[8]=(...l)=>o.loadTranslations&&o.loadTranslations(...l)),disabled:t.transLoading,class:"btn-send"},i(t.transLoading?"Loading...":"Load Translations"),9,os)]))]),t.data.recentLogs&&t.data.recentLogs.length?(r(),n("section",vs,[e[27]||(e[27]=s("h2",null,"Recent Emails (last 20)",-1)),s("table",ms,[e[26]||(e[26]=s("thead",null,[s("tr",null,[s("th",null,"Date"),s("th",null,"Type"),s("th",null,"Recipient"),s("th",null,"Subject"),s("th",null,"Status")])],-1)),s("tbody",null,[(r(!0),n(c,null,p(t.data.recentLogs,l=>(r(),n("tr",{key:l.id},[s("td",gs,i(o.formatDate(l.created_at)),1),s("td",null,[s("span",ws,i(l.email_type),1)]),s("td",ys,i(l.recipient),1),s("td",bs,i(l.subject),1),s("td",null,[s("span",{class:u(["status-badge","status-"+l.status])},i(l.status),3)])]))),128))])])])):h("",!0)])):(r(),n("div",E,[e[10]||(e[10]=s("h2",null,"Email Templates & Queue",-1)),s("form",{onSubmit:e[1]||(e[1]=y((...l)=>o.login&&o.login(...l),["prevent"]))},[v(s("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>t.password=l),type:"password",placeholder:"Password",autofocus:""},null,512),[[m,t.password]]),s("button",{type:"submit",disabled:t.loading},"Login",8,S)],32),t.error?(r(),n("p",C,i(t.error),1)):h("",!0)]))])}const Ts=w(T,[["render",_s]]);export{Ts 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.