1import{_ as V,N as j,y as W,b as q,h as d,o as l,c as n,a as e,f as _,g as b,t as o,n as Y,m as G,M as H,F as y,r as S,s as J,i as r,W as u}from"./app-BBJKRKD7.js";const K={class:"position-relative"},Q={key:0,class:"page-loader"},X={class:"col-xl-12 mb-30"},Z={class:"card card-statistics h-100"},ee={class:"card-body"},te={key:0,class:"text-center mb-4"},ae=["src"],se={class:"mt-3 text-muted"},le={class:"mb-1"},ne={class:"mb-1"},re={class:"mb-0"},oe={class:"row"},ie={class:"col-md-8 mb-3"},de={class:"col-md-8 mb-3"},ue=["value"],ce={class:"col-md-4 d-flex align-items-end"},ge=["disabled"],me={key:0},pe={key:1},he={class:"table-responsive"},be={class:"table table-bordered table-striped table-hover"},ve=["src"],fe={key:0},_e=["onClick"],ye=["onClick"],we={__name:"OrgChartImage",props:{menuId:String,menuName:String,page_section_id:String},setup(F){const P=j(),w=r(!0),B=W(),c=r(null),x=r([]),m=r(null),v=r(!1),I=r(null),f=r([]),g=r(null),p=F,C=async()=>{try{const a=await d.get(`/api/org-chart-image/${p.page_section_id}`);c.value=a.data}catch(a){console.error("Error fetching org chart image:",a)}},D=async()=>{try{const a=await d.get("/api/get_allpublisher");f.value=a.data.data,f.value.length===1&&(g.value=f.value[0].id)}catch(a){console.error(a),P.error("Failed to load publishers.")}},k=async()=>{try{const a=await d.get(`/api/org-chart-image-list/${p.page_section_id}`);x.value=a.data}catch(a){console.error("Error fetching org chart list:",a)}},$=a=>{switch(a){case"A":return"Approved";case"U":return"Updated";case"N":return"Pending";case"R":return"Rejected";default:return"-"}},z=a=>{m.value=a.target.files[0]},O=async()=>{var t,i;if(!m.value){u.fire("Warning","Please choose an image.","warning");return}if(!g.value){u.fire("Warning","Please select a publisher.","warning");return}const a=new FormData;a.append("image",m.value),a.append("page_section_id",p.page_section_id),a.append("publisher_id",g.value),v.value=!0;try{await d.post("/api/upload-org-chart-image",a,{headers:{"Content-Type":"multipart/form-data"}}),await u.fire({icon:"success",title:"Uploaded!",text:"Organization chart image uploaded successfully."}),m.value=null,g.value="",await C(),await k()}catch(h){console.error("Upload error:",h),u.fire({icon:"error",title:"Error",text:((i=(t=h.response)==null?void 0:t.data)==null?void 0:i.message)||"Failed to upload image."})}finally{v.value=!1}},R=a=>{const t=`/storage/${a.image_path}`;window.open(t,"_blank")},T=async a=>{if((await u.fire({title:"Delete this image?",text:"This action cannot be undone.",icon:"warning",showCancelButton:!0,confirmButtonText:"Yes, delete it!"})).isConfirmed)try{await d.post("/api/delete-org-chart-image",{id:a}),await u.fire("Deleted!","The image has been removed.","success"),await C(),await k()}catch(i){console.error(i),u.fire("Error","Unable to delete image.","error")}},A=r(""),E=async()=>{try{const a=await d.get(`/api/menu/${p.menuId}`);A.value=a.data.menu.menu_name}catch(a){console.error("Failed to fetch menu",a)}},L=()=>{B.push({name:"CCPagesForm",params:{menuId:p.menuId,menuName:A.value}})};return q(async()=>{try{w.value=!0;const a=await d.get("/api/current-user");I.value=a.data.id,await Promise.all([D(),E(),C(),k()])}catch(a){console.error("Initialization failed",a)}finally{w.value=!1}}),(a,t)=>{var i,h;return l(),n(y,null,[t[15]||(t[15]=e("br",null,null,-1)),e("div",K,[w.value?(l(),n("div",Q,[...t[1]||(t[1]=[e("div",{class:"spinner-border text-primary",role:"status"},null,-1),e("div",{class:"mt-2 text-muted"},"Loading organization charts...",-1)])])):_("",!0),e("div",X,[e("div",Z,[e("div",ee,[e("div",{class:"d-flex justify-content-end mb-3"},[e("button",{class:"btn btn-secondary",onClick:L}," Back ")]),t[11]||(t[11]=e("h5",{class:"card-title"},"Organization Chart",-1)),c.value?(l(),n("div",te,[e("img",{src:`/storage/${c.value.image_path}`,alt:"Organization Chart",class:"img-fluid rounded shadow-sm",style:{"max-height":"500px"}},null,8,ae),e("div",se,[e("p",le,[t[2]||(t[2]=e("strong",null,"Added by:",-1)),b(" "+o(((i=c.value.user)==null?void 0:i.name)||"N/A"),1)]),e("p",ne,[t[3]||(t[3]=e("strong",null,"Publisher:",-1)),b(" "+o(((h=c.value.publisher)==null?void 0:h.name)||"N/A"),1)]),e("p",re,[t[4]||(t[4]=e("strong",null,"Status:",-1)),b(" "+o(c.value.flag||"N/A"),1)])])])):_("",!0),t[12]||(t[12]=e("hr",null,null,-1)),e("form",{onSubmit:Y(O,["prevent"])},[e("div",oe,[e("div",ie,[t[5]||(t[5]=e("label",{class:"form-label"},"Upload Organization Chart Image",-1)),e("input",{type:"file",class:"form-control",accept:"image/*",onChange:z},null,32)]),e("div",de,[t[7]||(t[7]=e("label",{class:"form-label"},"Select Publisher",-1)),G(e("select",{class:"form-select","onUpdate:modelValue":t[0]||(t[0]=s=>g.value=s),required:""},[t[6]||(t[6]=e("option",{value:"",disabled:""},"Select publisher",-1)),(l(!0),n(y,null,S(f.value,s=>(l(),n("option",{key:s.id,value:s.id},o(s.name),9,ue))),128))],512),[[H,g.value]])]),e("div",ce,[e("button",{type:"submit",class:"btn btn-success w-100",disabled:!m.value||v.value},[v.value?(l(),n("span",me,[...t[8]||(t[8]=[e("i",{class:"fas fa-spinner fa-spin me-2"},null,-1),b(" Uploading... ",-1)])])):(l(),n("span",pe,[...t[9]||(t[9]=[e("i",{class:"fas fa-upload me-2"},null,-1),b(" Upload ",-1)])]))],8,ge)])])],32),t[13]||(t[13]=e("hr",null,null,-1)),t[14]||(t[14]=e("h5",{class:"card-title"},"All Uploaded Org Charts",-1)),e("div",he,[e("table",be,[t[10]||(t[10]=e("thead",{class:"table-light"}
1,[e("tr",null,[e("th",null,"Image"),e("th",null,"Added By"),e("th",null,"Publisher"),e("th",null,"Status"),e("th",{style:{width:"130px"}},"Actions")])],-1)),e("tbody",null,[(l(!0),n(y,null,S(x.value,s=>{var N,U;return l(),n("tr",{key:s.id},[e("td",null,[e("img",{src:`/storage/${s.image_path}`,height:"60",class:"rounded shadow-sm"},null,8,ve)]),e("td",null,o(((N=s.user)==null?void 0:N.name)||"N/A"),1),e("td",null,o(((U=s.publisher)==null?void 0:U.name)||"N/A"),1),e("td",null,[e("span",{class:J(["badge",{"bg-success":s.flag==="A","bg-info":s.flag==="U","bg-warning":s.flag==="N","bg-danger":s.flag==="R"}])},o($(s.flag)),3),s.flag==="R"?(l(),n("div",fe," Remarks: "+o(s.rejected_remarks),1)):_("",!0)]),e("td",null,[s.added_by===I.value?(l(),n(y,{key:0},[e("button",{class:"btn btn-primary btn-sm mb-1 w-100",onClick:M=>R(s)}," View ",8,_e),e("button",{class:"btn btn-danger btn-sm w-100",onClick:M=>T(s.id)}," Delete ",8,ye)],64)):_("",!0)])])}),128))])])])])])])])],64)}}},ke=V(we,[["__scopeId","data-v-07a29f2b"]]);export{ke 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.