PageSourceSearch

https://fels-wagram.at/assets/index.0d13f923.js

js fels-wagram.at collected 2026-09-25 06:56:53 UTC 4,652 bytes, 1 lines download raw bytes

1import{c as r,o as i,m as g,a as s,t as o,x as f,n as m,F as y,r as v,d,b as u,_,$ as k,i as b}from"./client.0d13f92.js";const w={class:"cms-admincenter-notifications"},C={class:"cms-modern-card"},q={class:"cms-modern-card-header"},N={class:"cms-modern-card-title-wrapper"},S={class:"cms-modern-card-header-actions"},x={class:"cms-modern-card-content"},$={key:0,class:"empty-state"},E={key:1,class:"notif-table"},z={class:"type-badge"},A={class:"preview"},D={class:"muted"},B={class:"right"};function I(t,e,j,F,l,a){const c=_,p=k("tippy");return i(),r("div",w,[e[5]||(e[5]=g('<div class="cms-modern-card-page-header" data-v-f575f5c6><div class="cms-modern-card-page-header-icon" data-v-f575f5c6><i class="material-icons" data-v-f575f5c6>notifications_active</i></div><div class="cms-modern-card-page-header-content" data-v-f575f5c6><h1 data-v-f575f5c6>Notifications</h1><p data-v-f575f5c6>Push &amp; Newsletter laufen über die Message Queue — Vorschau &amp; manuelle Freigabe</p><p class="help-text" data-v-f575f5c6>Pausieren &amp; Dry-Run werden zentral unter „Message Queue → Einstellungen&quot; verwaltet.</p></div></div>',1)),s("div",C,[s("div",q,[e[2]||(e[2]=s("div",{class:"cms-modern-card-icon primary"},[s("i",{class:"material-icons"},"notifications")],-1)),s("div",N,[e[1]||(e[1]=s("h2",null,"Ausgehende Notifications",-1)),s("p",null,o(l.total)+" Einträge (Push + Newsletter)",1)]),s("div",S,[f((i(),r("div",{class:"cms-btn round",onClick:e[0]||(e[0]=(...n)=>a.load&&a.load(...n))},[s("i",{class:m(["material-icons",{spinning:l.loading}])},"sync",2)])),[[p,{text:"Aktualisieren"}]])])]),s("div",x,[!l.loading&&l.messages.length===0?(i(),r("div",$,e[3]||(e[3]=[s("i",{class:"material-icons"},"inbox",-1),s("p",null,"Keine Notifications gefunden",-1)]))):(i(),r("table",E,[e[4]||(e[4]=s("thead",null,[s("tr",null,[s("th",null,"Typ"),s("th",null,"Status"),s("th",null,"Inhalt"),s("th",null,"Erstellt"),s("th",{class:"right"},"Aktion")])],-1)),s("tbody",null,[(i(!0),r(y,null,v(l.messages,n=>(i(),r("tr",{key:n._id},[s("td",null,[s("span",z,o(n.type),1)]),s("td",null,[s("span",{class:m(["status-badge","st-"+n.status])},o(n.status),3)]),s("td",A,o(a.preview(n)),1),s("td",D,o(a.fmt(n.createdAt)),1),s("td",B,[a.canSend(n)?(i(),d(c,{key:0,size:"small",variant:"ghost",label:"Jetzt senden",onClick:h=>a.sendNow(n)},null,8,["onClick"])):u("",!0),a.canSendReal(n)?(i(),d(c,{key:1,size:"small",variant:"primary",icon:"mark_email_read",label:"Echt senden",onClick:h=>a.sendReal(n)},null,8,["onClick"])):u("",!0),a.canCancel(n)?(i(),d(c,{key:2,size:"small",variant:"ghost",label:"Abbrechen",onClick:h=>a.cancel(n)},null,8,["onClick"])):u("",!0)])]))),128))])]))])])])}const R={name:"CmsAdmincenterNotificationsIndex",data(){return{loading:!1,messages:[],total:0}},computed:{token(){var t;return(t=this.$store.state.auth)==null?void 0:t.token}},mounted(){this.load()},methods:{async load(){this.loading=!0;try{const t=await this.$store.request("get","/api/v1/message-queue/messages",{types:"push,newsletter",limit:50,skip:0},{token:this.token});this.messages=t.messages||[],this.total=t.total||0}catch(t){console.error("notifications: load failed",t),this.$notify({content:"Notifications konnten nicht geladen werden",type:"error"})}finally{this.loading=!1}},async sendNow(t){try{await this.$store.request("post",`/api/v1/message-queue/messages/${t._id}/send-now`,{},{token:this.token}),this.$notify({content:"Freigegeben — wird jetzt gesendet"}),this.load()}catch(e){this.$notify({content:e.message,type:"error"})}},async sendReal(t){try{await this.$store.request("post",`/api/v1/message-queue/messages/${t._id}/send-real`,{},{token:this.token}),this.$notify({content:"Echt gesendet (umgeht Simulate)"}),this.load()}catch(e){this.$notify({content:e.message,type:"error"})}},async cancel(t){try{await this.$store.request("post",`/api/v1/message-queue/messages/${t._id}/cancel`,{},{token:this.token}),this.$notify({content:"Abgebrochen"}),this.load()}catch(e){this.$notify({content:e.message,type:"error"})}},canSend(t){return["queued","delayed","held"].includes(t.status)},canSendReal(t){return["queued","delayed","held","simulated"].includes(t.status)},canCancel(t){return["queued","delayed","held"].includes(t.status)},preview(t){const e=t.payload||{};return t.type==="push"?e.title||e.topic||e.token||"(Push)":t.type==="newsletter"?e.subject?e.subject:e.kind==="campaign"?`Kampagnen-Schritt ${e.stepIndex??""}`:`Sending ${e.sendingId||""}`.trim():e.subject||e.to||""},fmt(t){if(!t)return"";
1try{return new Date(t).toLocaleString("de-DE")}catch{return String(t)}}}},V=b(R,[["render",I],["__scopeId","data-v-f575f5c6"]]);export{V 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.