PageSourceSearch

https://app.schoolmantic.com/_nuxt/CfYPMHC5.js

js schoolmantic.com collected 2026-10-02 00:58:19 UTC 5,023 bytes, 1 lines download raw bytes

1import{_ as O}from"./DNxnX9up.js";import{_ as z}from"./kbSrulB-.js";import{_ as L}from"./CxJktSAr.js";import{e as W,f as Y,h as G,i as Q,j as X,c as T,a as t,k as o,t as k,l as V,D as Z,w as m,b as y,p as w,q as n,s as aa,o as _,z as J,n as $,v as E,B as ea}from"./6JebYMDS.js";import{u as ta}from"./GhPEX-wp.js";const sa={class:"animate-fade-in space-y-4"},oa={key:0,class:"text-sm text-red-600"},la={class:"text-slate-400 font-mono"},na={class:"font-medium"},ia={class:"flex justify-end gap-3 whitespace-nowrap"},ua=["onClick"],ra=["onClick"],da={class:"flex flex-col gap-1"},ma={class:"flex flex-col gap-1"},ha=W({__name:"jabatan-pegawai",setup(ca){const{token:M,user:N,apiFetch:c,fetchMe:S}=Y(),{activeSchoolId:u}=ta(),B=G(),D=n([]),j=n([]),C=n(!0),l=n(""),p=n(!1),d=n(""),i=n(null),v=ea({name:""}),x=aa({get:()=>i.value!==null,set:e=>{e||(i.value=null)}}),r=n(null),h=n(!1),A=[{key:"no",label:"No",align:"center"},{key:"name",label:"Nama Jabatan"},{key:"actions",label:"",align:"right"}];function b(e){const a=e;return a?.data?.error?.message??a?.message??"Terjadi kesalahan, silakan coba lagi"}async function f(){const e=await c(`/schools/${u.value}/job-positions`);j.value=e.jobPositions}async function U(){if(d.value.trim()){l.value="";try{await c(`/schools/${u.value}/job-positions`,{method:"POST",body:{name:d.value}}),d.value="",p.value=!1,await f()}catch(e){l.value=b(e)}}}function R(e){i.value=e,Object.assign(v,{name:e.name})}async function q(){if(i.value){l.value="";try{await c(`/schools/${u.value}/job-positions/${i.value.id}`,{method:"PATCH",body:{name:v.name}}),i.value=null,await f()}catch(e){l.value=b(e)}}}function H(e){r.value=e}async function F(){if(r.value){h.value=!0;try{await c(`/schools/${u.value}/job-positions/${r.value.id}`,{method:"DELETE"}),r.value=null,await f()}catch(e){l.value=b(e)}finally{h.value=!1}}}return Q(u,()=>f().catch(e=>l.value=b(e))),X(async()=>{if(!M.value)return B.push("/login");try{N.value||await S();const e=await c("/auth/my-schools");if(D.value=e.schools,e.schools.length===0){l.value="Belum ada sekolah untuk akun ini.";return}e.schools.some(a=>a.id===u.value)||(u.value=e.schools[0].id),await f()}catch(e){l.value=b(e)}finally{C.value=!1}}),(e,a)=>{const I=O,P=z,K=L;return _(),T("div",sa,[a[10]||(a[10]=t("div",{class:"card"},[t("div",{class:"flex flex-wrap items-center justify-between gap-3"},[t("div",null,[t("h1",{class:"text-xl font-bold text-slate-900 dark:text-slate-50"},"Jabatan Pegawai"),t("p",{class:"mt-1 text-sm text-slate-500 dark:text-slate-400"},"Daftar struktur jabatan pegawai di sekolah.")])])],-1)),o(l)?(_(),T("p",oa,k(o(l)),1)):V("",!0),o(C)?V("",!0):(_(),Z(I,{key:1,columns:A,rows:o(j).map((s,g)=>({...s,no:g+1})),"search-keys":["name"],"search-placeholder":"Cari jabatan...","empty-text":"Belum ada data jabatan pegawai."},{actions:m(()=>[t("button",{type:"button",class:"btn-primary btn-shine text-sm",onClick:a[0]||(a[0]=s=>p.value=!0)},"+ Tambah Jabatan")]),"cell-no":m(({row:s})=>[t("span",la,k(s.no),1)]),"cell-name":m(({row:s})=>[t("span",na,k(s.name),1)]),"cell-actions":m(({row:s})=>[t("div",ia,[t("button",{type:"button",class:"text-xs font-medium text-primary-600 hover:underline",onClick:g=>R(s)},"Edit",8,ua),t("button",{type:"button",class:"text-xs font-medium text-red-500 hover:underline",onClick:g=>H(s)},"Hapus",8,ra)])]),_:1},8,["rows"])),y(P,{modelValue:o(p),"onUpdate:modelValue":a[2]||(a[2]=s=>w(p)?p.value=s:null),title:"Tambah Jabatan Pegawai"},{default:m(()=>[t("form",{class:"flex flex-col gap-3",onSubmit:J(U,["prevent"])},[t("label",da,[a[6]||(a[6]=t("span",{class:"text-xs font-semibold text-slate-500 dark:text-slate-400"},"Nama Jabatan",-1)),$(t("input",{"onUpdate:modelValue":a[1]||(a[1]=s=>w(d)?d.value=s:null),placeholder:"Contoh: Kepala Sekolah, Wali Kelas",required:"",class:"rounded-lg border border-slate-300 px-3 py-2 text-sm dark:border-slate-700 dark:bg-slate-800"},null,512),[[E,o(d)]])]),a[7]||(a[7]=t("button",{type:"submit",class:"btn-primary"},"Tambah Jabatan",-1))],32)]),_:1},8,["modelValue"]),y(P,{modelValue:o(x),"onUpdate:modelValue":a[4]||(a[4]=s=>w(x)?x.value=s:null),title:"Edit Jabatan Pegawai",subtitle:o(i)?o(i).name:""},{default:m(()=>[t("form",{class:"flex flex-col gap-3",onSubmit:J(q,["prevent"])},[t("label",ma,[a[8]||(a[8]=t("span",{class:"text-xs font-semibold text-slate-500 dark:text-slate-400"},"Nama Jabatan",-1)),$(t("input",{"onUpdate:modelValue":a[3]||(a[3]=s=>o(v).name=s),placeholder:"Nama jabatan",required:"",class:"rounded-lg border border-slate-300 px-3 py-2 text-sm dark:border-slate-700 dark:bg-slate-800"},null,512),[[E,o(v).name]])]),a[9]||(a[9]=t("button",{type:"submit",class:"btn-primary"},"Simpan Perubahan",-1))],32)]),_:1},8,["modelValue","subtitle"]),y(K,{"model-value":o(r)!==null,title:"Hapus Jabatan?",message:`Yakin ingin menghapus jabatan ${o(r)?.name}? Tindakan ini tidak bisa dibatalkan.`,loading:o(h),"onUpdate:modelValue":a[5]||(a[5]=s=>!s&&(r.value=null)),onConfirm:F},null,8,["model-value","message","loading"])])}}});
1export{ha 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.