PageSourceSearch

https://rspersahabatan.go.id/_nuxt/TLTNRAHU.js

js rspersahabatan.go.id collected 2026-10-09 04:43:43 UTC 11,690 bytes, 1 lines download raw bytes

1import{_ as X}from"./PFUwJ63T.js";import{_ as Y}from"./t4-Ll4Fl.js";import{_ as tt}from"./BcLSJ4YG.js";import{d as et,A as at,c as o,e,j as r,k as P,l as j,g as a,n as F,h as C,F as M,r as st,t as g,i as nt,m as p,G as N,o as d,f as h,L as lt,v as U,M as it,y as ot,H as O,p as rt}from"./Brsw7EL3.js";import{u as dt}from"./CDLjacJf.js";import{u as ut}from"./DxKzjjTg.js";import{u as mt}from"./ugE287kb.js";import"./BxrPWtJi.js";const pt={class:"grid grid-cols-1 md:grid-cols-2 gap-3"},ct={key:0},ft={key:1},bt={key:2,class:"ml-auto inline-flex items-center gap-1.5 text-brand-teal-700"},vt={key:1,class:"rounded-2xl border border-slate-200 bg-white py-14 text-center text-slate-400"},gt={key:2,class:"rounded-2xl border border-dashed border-slate-200 bg-white py-14 text-center text-slate-400"},xt={key:3,class:"space-y-2"},kt=["draggable","onDragstart","onDragover","onDragleave","onDrop"],_t={class:"flex items-stretch gap-2 p-3"},yt=["title"],wt={class:"shrink-0 w-10 grid place-items-center text-slate-400 text-xs poppins-semibold"},ht={class:"flex-1 min-w-0 py-1"},qt={class:"font-semibold text-brand-ink-800 leading-snug"},Dt={key:0,class:"text-xs text-slate-500 leading-snug mt-1 line-clamp-2"},At={class:"shrink-0 grid place-items-center"},Tt={class:"shrink-0 flex items-center gap-1"},Ft=["onClick"],Ct=["onClick"],St={class:"text-[12px] text-slate-400 text-right pt-1 px-1"},Ut={class:"bg-brand-teal-50/60 border border-brand-teal-100 rounded-lg p-3 flex items-start gap-3 text-xs"},Et={class:"inline-flex items-center gap-1.5 cursor-pointer shrink-0"},Vt={class:"font-semibold"},Qt={class:"grid grid-cols-1 sm:grid-cols-2 gap-3"},$t={class:"flex items-end"},Pt={class:"inline-flex items-center gap-2 cursor-pointer"},jt={key:0,class:"bg-rose-50 border border-rose-200 text-rose-700 text-sm rounded-lg px-3 py-2"},Mt={class:"flex justify-end gap-2 pt-2 border-t border-slate-100"},Nt=["disabled"],Ot=200,Zt=et({__name:"faq",setup(Rt){dt({title:"FAQ - RS Persahabatan Admin"});const q=ut(),f=mt(),u=N({search:"",status:""}),m=p([]),E=p(!1),S=p(0);async function D(){E.value=!0;try{const s=new URLSearchParams({page:"1",per_page:String(Ot)});u.search&&s.set("search",u.search),u.status&&s.set("status",u.status);const t=await q.request(`/admin/faq?${s}`);t.success&&(m.value=t.data.items||[],S.value=t.data.pagination?.total||m.value.length)}catch(s){f.error("Gagal memuat",s?.data?.message||"")}finally{E.value=!1}}function V(){D()}function R(){u.search="",u.status="",V()}const x=p(null),k=p(null),Q=p(!1),b=rt(()=>!!u.search||!!u.status);function B(s,t){if(b.value){t.preventDefault();return}x.value=s,t.dataTransfer&&(t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",String(s)))}function G(s,t){x.value!==null&&(t.preventDefault(),t.dataTransfer&&(t.dataTransfer.dropEffect="move"),k.value!==s&&(k.value=s))}function H(s){k.value===s&&(k.value=null)}async function L(s,t){t.preventDefault();const y=x.value;if(x.value=null,k.value=null,y===null||y===s)return;const w=m.value.slice(),[$]=w.splice(y,1);w.splice(s,0,$),w.forEach((n,i)=>{n.sort_order=(i+1)*10}),m.value=w,Q.value=!0;try{const n={items:w.map(i=>({id:i.id,sort_order:i.sort_order}))};await q.request("/admin/faq/reorder",{method:"POST",body:n})}catch(n){f.error("Gagal simpan urutan",n?.data?.message||""),await D()}finally{Q.value=!1}}function K(){x.value=null,k.value=null}const _=p(!1),A=p(null),l=N({question_id:"",answer_id:"",sort_order:0,is_active:!0,auto_translate:!0}),T=p(!1),v=p("");function I(){A.value=null,l.question_id="",l.answer_id="",l.sort_order=(m.value.length+1)*10,l.is_active=!0,l.auto_translate=!0,v.value="",_.value=!0}function J(s){A.value=s,l.question_id=s.question?.id||"",l.answer_id=s.answer?.id||"",l.sort_order=s.sort_order,l.is_active=s.is_active,l.auto_translate=!0,v.value="",_.value=!0}async function z(){if(v.value="",!l.question_id.trim()){v.value="Pertanyaan wajib diisi.";return}if(!l.answer_id.trim()){v.value="Jawaban wajib diisi.";return}T.value=!0;try{const s={question:{id:l.question_id.trim()},answer:{id:l.answer_id.trim()},sort_order:Number(l.sort_order)||0,is_active:l.is_active,auto_translate:l.auto_translate};A.value?(await q.request(`/admin/faq/${A.value.id}`,{method:"PUT",body:s}),f.success("FAQ diperbarui")):(await q.request("/admin/faq",{method:"POST",body:s}),f.success("FAQ ditambahkan")),_.value=!1,D()}catch(s){v.value=s?.data?.message||"Gagal simpan"}finally{T.value=!1}}async function Z(s){try{await q.request(`/admin/faq/${s.id}/toggle-active`,{method:"PUT"}),s.is_active=!s.is_active}catch(t){f.error("Gagal ubah status",t?.data?.message||"")}}async function W(s){if((await f.confirm({title:"Hapus FAQ?",text:`"${s.question?.id||"FAQ"}" akan dihapus permanen.`,confirmText:"Hapus",icon:"warning",danger:!0})).isConfirmed)try{await q.request(`/admin/faq/${s.id}`,{method:"DELETE"}),f.success("Dihapus"),D()}catch(y){f.error("Gagal hapus",y?.data?.message||"")}}return at(D),(s,t)=>{const y=X,w=Y,$=tt;return d(),o("div",null,[e("div",{class:"flex flex-col md:flex-row md:items-center md:justify-between gap-3 mb-4"},[t[10]||(t[10]=e("div",null,[e("h1",{class:"text-2xl font-display font-extrabold text-brand-ink-800"},[e("i",{class:"fa-solid fa-circle-question text-brand-teal mr-2"}),r("FAQ ")]),e("p",{class:"text-slate-500 text-sm mt-1"}," Kelola pertanyaan yang sering diajukan, ditampilkan di halaman publik /faq. ")],-1)),e("button",{class:"btn btn-primary self-start md:self-auto",onClick:I},[...t[9]||(t[9]=[e("i",{class:"fa-solid fa-plus"},null,-1),r(" Tambah FAQ ",-1)])])]),P(y,{onApply:V,onReset:R},{default:j(()=>[e("div",pt,[e("div",null,[t[11]||(t[11]=e("label",{class:"block text-xs font-semibold text-slate-600 mb-1.5"},"Cari pertanyaan",-1)),h(e("input",{"onUpdate:modelValue":t[0]||(t[0]=n=>a(u).search=n),class:"input text-sm",placeholder:"Cari di pertanyaan / jawaban…",onKeyup:lt(V,["enter"])},null,544),[[U,a(u).search]])]),e("div",null,[t[13]||(t[13]=e("label",{class:"block text-xs font-semibold text-slate-600 mb-1.5"},"Status",-1)),h(e("select",{"onUpdate:modelValue":t[1]||(t[1]=n=>a(u).status=n),class:"input text-sm"},[...t[12]||(t[12]=[e("option",{value:""},"Semua",-1),e("option",{value:"active"},"Aktif",-1),e("option",{value:"inactive"},"Nonaktif",-1)])],512),[[it,a(u).status]])])])]),_:1}),a(m).length>1?(d(),o("div",{key:0,class:F(["mb-3 flex items-center gap-2 text-xs",a(b)?"text-amber-700 bg-amber-50 border border-amber-100":"text-slate-500 bg-slate-50 border border-slate-100"]),style:{"border-radius":"8px",padding:"8px 12px"}},[e("i",{class:F(["fa-solid",a(b)?"fa-circle-info text-amber-600":"fa-arrows-up-down text-brand-teal"])},null,2),a(b)?(d(),o("span",ct," Drag-and-drop dinonaktifkan saat filter aktif. Reset filter untuk menyusun ulang urutan. ")):(d(),o("span",ft,[...t[14]||(t[14]=[r(" Tarik kartu menggunakan ikon ",-1),e("i",{class:"fa-solid fa-grip-vertical mx-0.5"},null,-1),r(" untuk menyusun ulang urutan FAQ. ",-1)])])),a(Q)?(d(),o("span",bt,[...t[15]||(t[15]=[e("i",{class:"fa-solid fa-spinner fa-spin"},null,-1),r(" Menyimpan urutan… ",-1)])])):C("",!0)],2)):C("",!0),a(E)?(d(),o("div",vt,[...t[16]||(t[16]=[e("i",{class:"fa-solid fa-spinner fa-spin text-2xl mb-2 block"},null,-1),r(" Memuat data… ",-1)])])):a(m).length===0?(d(),o("div",gt,[...t[17]||(t[17]=[e("i",{class:"fa-regular fa-folder-open text-3xl mb-3 block"},null,-1),e("p",{class:"text-sm"},'Belum ada FAQ. Klik "Tambah FAQ" untuk membuat yang pertama.',-1)])])):(d(),o("div",xt,[(d(!0),o(M,null,st(a(m),(n,i)=>(d(),o("div",{key:n.id,class:F(["bg-white rounded-2xl border border-slate-200 transition-all",[a(x)===i?"opacity-40":"",a(k)===i&&a(x)!==i?"ring-2 ring-brand-teal border-brand-teal":"",a(b)?"":"hover:shadow-card"]]),draggable:!a(b),onDragstart:c=>B(i,c),onDragover:c=>G(i,c),onDragleave:c=>H(i),onDrop:c=>L(i,c),onDragend:K},[e("div",_t,[e("div",{class:F(["shrink-0 w-9 grid place-items-center cursor-grab active:cursor-grabbing select-none rounded-lg",a(b)?"text-slate-200 cursor-not-allowed":"text-slate-300 hover:text-brand-teal hover:bg-slate-50"]),title:a(b)?"Reset filter dulu untuk menyusun ulang":"Tarik untuk menyusun ulang"},[...t[18]||(t[18]=[e("i",{class:"fa-solid fa-grip-vertical"},null,-1)])],10,yt),e("div",wt,g(Number(i)+1),1),e("div",ht,[e("div",qt,g(n.question?.id||"—"),1),n.answer?.id?(d(),o("div",Dt,g(n.answer.id),1)):C("",!0)]),e("div",At,[P(w,{active:n.is_active,onToggle:c=>Z(n)},null,8,["active","onToggle"])]),e("div",Tt,[e("button",{class:"w-8 h-8 rounded-lg text-slate-400 hover:bg-brand-teal-50 hover:text-brand-teal-700",title:"Edit",onClick:c=>J(n)},[...t[19]||(t[19]=[e("i",{class:"fa-solid fa-pen text-xs"},null,-1)])],8,Ft),e("button",{class:"w-8 h-8 rounded-lg text-slate-400 hover:bg-rose-50 hover:text-rose-600",title:"Hapus",onClick:c=>W(n)}
1,[...t[20]||(t[20]=[e("i",{class:"fa-solid fa-trash text-xs"},null,-1)])],8,Ct)])])],42,kt))),128)),e("div",St,[r(g(a(m).length),1),a(S)&&a(S)!==a(m).length?(d(),o(M,{key:0},[r(" dari "+g(a(S)),1)],64)):C("",!0),t[21]||(t[21]=r(" FAQ ",-1))])])),P($,{modelValue:a(_),"onUpdate:modelValue":t[8]||(t[8]=n=>nt(_)?_.value=n:null),title:a(A)?"Edit FAQ":"Tambah FAQ",size:"md"},{default:j(()=>[e("form",{class:"space-y-4",onSubmit:ot(z,["prevent"])},[e("div",Ut,[t[22]||(t[22]=e("i",{class:"fa-solid fa-language text-brand-teal-700 mt-0.5"},null,-1)),t[23]||(t[23]=e("div",{class:"flex-1"},[e("div",{class:"font-semibold text-brand-ink-800"},"Auto-translate aktif"),e("div",{class:"text-slate-600"},"Cukup isi bahasa Indonesia — otomatis diterjemahkan ke EN/RU/KO/ZH saat simpan.")],-1)),e("label",Et,[h(e("input",{"onUpdate:modelValue":t[2]||(t[2]=n=>a(l).auto_translate=n),type:"checkbox",class:"accent-brand-teal w-4 h-4"},null,512),[[O,a(l).auto_translate]]),e("span",Vt,g(a(l).auto_translate?"ON":"OFF"),1)])]),e("div",null,[t[24]||(t[24]=e("label",{class:"block text-xs font-semibold text-slate-600 mb-1.5"},[r(" Pertanyaan "),e("span",{class:"text-rose-500"},"*")],-1)),h(e("input",{"onUpdate:modelValue":t[3]||(t[3]=n=>a(l).question_id=n),type:"text",class:"input",required:"",placeholder:"Contoh: Bagaimana cara mendaftar BPJS?"},null,512),[[U,a(l).question_id]])]),e("div",null,[t[25]||(t[25]=e("label",{class:"block text-xs font-semibold text-slate-600 mb-1.5"},[r(" Jawaban "),e("span",{class:"text-rose-500"},"*")],-1)),h(e("textarea",{"onUpdate:modelValue":t[4]||(t[4]=n=>a(l).answer_id=n),rows:"6",class:"input",placeholder:"Tulis jawaban yang lengkap dan jelas…"},null,512),[[U,a(l).answer_id]])]),e("div",Qt,[e("div",null,[t[26]||(t[26]=e("label",{class:"block text-xs font-semibold text-slate-600 mb-1.5"},"Urutan",-1)),h(e("input",{"onUpdate:modelValue":t[5]||(t[5]=n=>a(l).sort_order=n),type:"number",class:"input",placeholder:"0"},null,512),[[U,a(l).sort_order,void 0,{number:!0}]]),t[27]||(t[27]=e("div",{class:"text-[11px] text-slate-400 mt-1"},"Atau pakai drag-and-drop di list.",-1))]),e("div",$t,[e("label",Pt,[h(e("input",{"onUpdate:modelValue":t[6]||(t[6]=n=>a(l).is_active=n),type:"checkbox",class:"accent-brand-teal w-4 h-4"},null,512),[[O,a(l).is_active]]),t[28]||(t[28]=e("span",{class:"text-sm font-medium text-slate-700"}," Aktif — tampilkan di halaman publik ",-1))])])]),a(v)?(d(),o("div",jt,[t[29]||(t[29]=e("i",{class:"fa-solid fa-triangle-exclamation mr-1"},null,-1)),r(g(a(v)),1)])):C("",!0),e("div",Mt,[e("button",{type:"button",class:"btn btn-ghost",onClick:t[7]||(t[7]=n=>_.value=!1)},"Batal"),e("button",{type:"submit",class:"btn btn-primary",disabled:a(T)},[e("i",{class:F(["fa-solid",a(T)?"fa-spinner fa-spin":"fa-floppy-disk"])},null,2),r(" "+g(a(T)?"Menyimpan…":"Simpan"),1)],8,Nt)])],32)]),_:1},8,["modelValue","title"])])}}});export{Zt 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.