PageSourceSearch

https://resthorn.org/assets/PrivacyPolicy-DoQF0x7Z.js

js resthorn.org collected 2026-10-09 22:50:45 UTC 4,644 bytes, 1 lines download raw bytes

1import{x as m,e as c,l as B,c as a,a as t,g as _,b as r,r as A,w as x,d as w,t as n,F as E,h as I,C as T,y as U,o as i}from"./index-DYdpvxc0.js";import{_ as S}from"./BaseInput-C0qgCmCd.js";import{_ as b}from"./BaseButton-D7by4iey.js";import{_ as j}from"./BaseTextarea-CkUMKpwB.js";import{s as J}from"./sweetalert.min-CAkDJiS4.js";class q{async getAllPolicies(){return m.get("/admin/privacy-policy")}async createOrUpdatePolicy(s="",u){const d={method:s?"PATCH":"POST",url:s?`/admin/privacy-policy/${s}`:"/admin/privacy-policy",data:u};return m.request(d)}async getPolicyByTitle(s){return m.get(`/admin/privacy-policy/${s}`)}async deletePolicyById(s){return m.delete(`/admin/privacy-policy/${s}`)}}const P=new q,z={class:"w-full py-4 bg-white border rounded-xl px-[2%] min-h-screen"},D={class:"flex flex-col w-full"},H=t("h2",{class:"text-xl font-bold"},"Our Policies",-1),L={class:"flex self-end gap-4 items-center justify-center"},R={key:0,class:"w-full"},G={key:0,class:"error-message"},K={key:1,class:"success-message"},Q={class:"w-full bg-[#F5F5F5]"},W={class:"shadow p-4 bg-white"},X={key:0},Y={class:"font-bold"},Z={key:1},ee={class:"font-bold"},te={class:"flex justify-end space-x-2"},se=["onClick"],le=["onClick"],oe={key:1,class:"overflow-auto fixed inset-0 z-50 bg-black/70 modal flex justify-center items-center"},ae={class:"bg-white rounded-lg shadow-lg w-full max-w-md p-6"},ie={class:"text-center"},ce={class:"text-lg font-medium text-gray-900"},ne={class:"mt-4"},de={class:"flex flex-wrap -mx-2"},re={class:"w-full md:w-1/2 px-2 mb-4"},ue={class:"w-full px-2 mb-4"},pe={class:"flex justify-end gap-2 mt-4"},he={__name:"PrivacyPolicy",setup(V){U();const s=c({title:{en:"",ti:""},policy:{en:"",ti:""}}),u=c([]),d=c(""),y=c(""),p=c(!1),f=c(null),v=c(!1),$=c(!0),M=async()=>{const o={title:JSON.stringify(s.value.title),policy:JSON.stringify(s.value.policy)};try{const e=await P.createOrUpdatePolicy(p.value?f.value:"",o);e.success&&(y.value=e.message,J({title:e.message,icon:"success"}),h(),k(),C())}catch(e){e.response&&e.response.status===404&&(d.value=e.response.data.message)}},h=async()=>{try{const o=await P.getAllPolicies();u.value=o.data.map(e=>({...e,title:JSON.parse(e.title),policy:JSON.parse(e.policy)}))}catch{d.value="Failed to fetch policies"}},F=o=>{const e=u.value.find(g=>g.id===o);e&&(s.value={title:{en:e.title.en,ti:e.title.ti},policy:{en:e.policy.en,ti:e.policy.ti}},p.value=!0,f.value=o,v.value=!0)},N=async o=>{try{const e=await P.deletePolicyById(o);e.success&&(y.value=e.message,h())}catch{d.value="Failed to delete policy"}},k=()=>{s.value={title:{en:"",ti:""},policy:{en:"",ti:""}},p.value=!1,f.value=null},C=()=>{v.value=!1,k()};return B(()=>{h()}),(o,e)=>{const g=A("font-awesome-icon");return i(),a("section",z,[t("div",D,[H,t("div",L,[r(S,{inputClass:"border outline-none border-[#288fb2]",type:"search",class:"px-2 py-1",modelValue:o.searchMessage,"onUpdate:modelValue":e[0]||(e[0]=l=>o.searchMessage=l),placeholder:"Search ..."},null,8,["modelValue"]),r(g,{icon:"sync",class:"text-lg text-[#288fb2]"}),r(b,{onClick:e[1]||(e[1]=l=>v.value=!0),class:"p-0"},{default:x(()=>[w(" Add ")]),_:1})])]),u.value.length?(i(),a("div",R,[d.value?(i(),a("div",G,n(d.value),1)):_("",!0),y.value?(i(),a("div",K,n(y.value),1)):_("",!0),t("div",Q,[(i(!0),a(E,null,I(u.value,l=>(i(),a("div",{key:l.id,class:"w-full"},[t("div",W,[$.value?(i(),a("div",X,[t("h3",Y,n(l.title.en),1),t("p",null,n(l.policy.en),1)])):(i(),a("div",Z,[t("h3",ee,n(l.title.ti),1),t("p",null,n(l.policy.ti),1)])),t("div",te,[t("button",{onClick:O=>F(l.id),class:"text-blue-500"},"edit",8,se),t("button",{onClick:O=>N(l.id),class:"text-red-500"},"delete",8,le)])])]))),128))])])):_("",!0),v.value?(i(),a("div",oe,[t("div",ae,[t("div",ie,[t("h3",ce,n(p.value?"Edit Policy":"Add Policy"),1),t("div",ne,[t("form",{onSubmit:T(M,["prevent"]),class:"flex flex-col gap-4"},[t("div",de,[t("div",re,[r(S,{modelValue:s.value.title.en,"onUpdate:modelValue":e[2]||(e[2]=l=>s.value.title.en=l),type:"text",required:"",inputClass:"p-2 border w-full border-gray-300 rounded",placeholder:"Title (English)"},null,8,["modelValue"])]),t("div",ue,[r(j,{modelValue:s.value.policy.en,"onUpdate:modelValue":e[3]||(e[3]=l=>s.value.policy.en=l),inputClass:"p-2 border border-gray-300 rounded",placeholder:"Policy (English)"},null,8,["modelValue"])])]),t("div",pe,[r(b,{onClick:C,type:"button",class:"bg-gray-500 text-white px-4 py-2 rounded"},{default:x(()=>[w("Cancel")]),_:1}),r(b,{type:"submit",class:"bg-[#37a000] text-white px-2 py-2 rounded"},{default:x(()=>[w(n(p.value?"Save changes":"Save Policy"),1)]),_:1})])],32)])])])])):_("",!0)])}}};export{he 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.