Files
nademitex_admin/dist/assets/BannersView-CZaBcIQn.js
T
mohmdsdgandCopilot 9854842ada fix(auth): secure sessions and app routing
Validate sessions against the API, honor configurable base paths, and route unknown pages to 404. Keep development ports stable so user and admin apps cannot be confused.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-09-24 20:14:11 +03:30

1 line
6.6 KiB
JavaScript

import{$ as e,Ct as t,G as n,J as r,N as i,Q as a,R as o,St as s,V as c,X as l,Z as u,dt as d,et as f,gt as p,ht as m,it as h,l as g,lt as _,nt as v,rt as y,st as ee,vt as b,xt as x,yt as S,z as C}from"./index-B2VD3zy8.js";import{t as w}from"./AdminPageSkeleton-BJpm6oxf.js";import{t as T}from"./BaseSwitch-dp2xMemS.js";import{t as te}from"./BaseEmptyState-DGu6Pfui.js";import{t as E}from"./AdminImagePicker-C0OGC-bB.js";import{t as D}from"./AdminSelect-BeLNl2Qz.js";var O={class:`banners-page`},k={key:2,class:`admin-card`},A={class:`admin-table`},j={key:0,class:`banner-sub`},M={class:`actions`},N=[`onClick`],P=[`onClick`],F={class:`field`},I={class:`field`},L={class:`field__head`},R={class:`field`},z={class:`field__head`},B={class:`field`},ne={class:`field__head`},V={class:`field`},H={class:`field`},U=[`disabled`],W=c(h({__name:`BannersView`,setup(c){let h=[{value:`home_hero`,label:`خانه — بنر اصلی`},{value:`products_hero`,label:`لیست محصولات`},{value:`categories_hero`,label:`دسته‌بندی‌ها`}],W=S([]),G=S(!0),K=S(!1),q=S(!1),J=S(null),Y=C(),X=b({slot:`home_hero`,title:``,subtitle:``,ctaLabel:``,ctaLink:`/categories`,imageUrl:null,displayOrder:0,isActive:!0,showTitle:!0,showSubtitle:!0,showCta:!0}),Z=l(()=>J.value?`ویرایش بنر`:`افزودن بنر`);function re(e){return h.find(t=>t.value===e)?.label??e}async function Q(){G.value=!0;try{W.value=await g.list()}catch(e){Y.error(e instanceof i?e.message:`بارگذاری بنرها ناموفق بود.`)}finally{G.value=!1}}function $(){J.value=null,Object.assign(X,{slot:`home_hero`,title:``,subtitle:``,ctaLabel:`مشاهده کالکشن`,ctaLink:`/categories`,imageUrl:null,displayOrder:W.value.length,isActive:!0,showTitle:!0,showSubtitle:!0,showCta:!0}),q.value=!0}function ie(e){J.value=e.id,Object.assign(X,{slot:e.slot,title:e.title,subtitle:e.subtitle,ctaLabel:e.ctaLabel,ctaLink:e.ctaLink||`/categories`,imageUrl:e.imageUrl||null,displayOrder:e.displayOrder,isActive:e.isActive,showTitle:e.showTitle!==!1,showSubtitle:e.showSubtitle!==!1,showCta:e.showCta!==!1}),q.value=!0}async function ae(){if(X.title.trim()){K.value=!0;try{let e={slot:X.slot,title:X.title.trim(),subtitle:X.subtitle.trim()||null,ctaLabel:X.ctaLabel.trim()||null,ctaLink:X.ctaLink.trim()||null,imageUrl:X.imageUrl,displayOrder:X.displayOrder,isActive:X.isActive,showTitle:X.showTitle,showSubtitle:X.showSubtitle,showCta:X.showCta};J.value?await g.update(J.value,e):await g.create(e),q.value=!1,Y.success(`بنر ذخیره شد.`),await Q()}catch(e){Y.error(e instanceof i?e.message:`ذخیره بنر ناموفق بود.`)}finally{K.value=!1}}}async function oe(e){if(window.confirm(`بنر «${e.title}» حذف شود؟`))try{await g.remove(e.id),Y.success(`بنر حذف شد.`),await Q()}catch(e){Y.error(e instanceof i?e.message:`حذف بنر ناموفق بود.`)}}return ee(()=>{Q()}),(i,c)=>(_(),f(`div`,O,[u(`div`,{class:`admin-page-header`},[c[13]||=u(`div`,null,[u(`h1`,{class:`admin-page-header__title`},`بنرها`),u(`p`,{class:`admin-page-header__sub`},`بنر بخش‌های مختلف اپ کاربر را از اینجا مدیریت کنید.`)],-1),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:$},`افزودن بنر`)]),G.value?(_(),a(w,{key:0,variant:`table`})):W.value.length?(_(),f(`div`,k,[u(`table`,A,[c[14]||=u(`thead`,null,[u(`tr`,null,[u(`th`,null,`تصویر`),u(`th`,null,`عنوان`),u(`th`,null,`بخش`),u(`th`,null,`دکمه`),u(`th`,null,`فعال`),u(`th`,{class:`actions`},`عملیات`)])],-1),u(`tbody`,null,[(_(!0),f(r,null,d(W.value,n=>(_(),f(`tr`,{key:n.id},[u(`td`,null,[u(`span`,{class:x([`banner-thumb`,{"banner-thumb--empty":!n.imageUrl}]),style:s(n.imageUrl?{backgroundImage:`url(${n.imageUrl})`}:void 0)},null,6)]),u(`td`,null,[u(`strong`,null,t(n.title),1),n.subtitle?(_(),f(`p`,j,t(n.subtitle),1)):e(``,!0)]),u(`td`,null,t(re(n.slot)),1),u(`td`,null,t(n.ctaLabel||`—`),1),u(`td`,null,t(n.isActive?`بله`:`خیر`),1),u(`td`,M,[u(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:e=>ie(n)},` ویرایش `,8,N),u(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:e=>oe(n)},` حذف `,8,P)])]))),128))])])])):(_(),a(te,{key:1,title:`بنری ثبت نشده`,description:`اولین بنر خانه را اضافه کنید.`},{default:m(()=>[u(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:$},` افزودن بنر `)]),_:1})),y(o,{open:q.value,title:Z.value,onClose:c[12]||=e=>q.value=!1},{footer:m(()=>[u(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:c[11]||=e=>q.value=!1},`انصراف`),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!X.title.trim()||K.value,onClick:ae},t(K.value?`در حال ذخیره...`:`ذخیره`),9,U)]),default:m(()=>[u(`label`,F,[c[15]||=v(` بخش نمایش `,-1),y(D,{modelValue:X.slot,"onUpdate:modelValue":c[0]||=e=>X.slot=e,options:h},null,8,[`modelValue`])]),u(`div`,I,[u(`span`,L,[c[16]||=v(` عنوان `,-1),y(T,{modelValue:X.showTitle,"onUpdate:modelValue":c[1]||=e=>X.showTitle=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`])]),p(u(`input`,{"onUpdate:modelValue":c[2]||=e=>X.title=e,class:`admin-input`},null,512),[[n,X.title]])]),u(`div`,R,[u(`span`,z,[c[17]||=v(` زیرعنوان `,-1),y(T,{modelValue:X.showSubtitle,"onUpdate:modelValue":c[3]||=e=>X.showSubtitle=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`])]),p(u(`input`,{"onUpdate:modelValue":c[4]||=e=>X.subtitle=e,class:`admin-input`},null,512),[[n,X.subtitle]])]),u(`div`,B,[u(`span`,ne,[c[18]||=v(` متن دکمه `,-1),y(T,{modelValue:X.showCta,"onUpdate:modelValue":c[5]||=e=>X.showCta=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`])]),p(u(`input`,{"onUpdate:modelValue":c[6]||=e=>X.ctaLabel=e,class:`admin-input`},null,512),[[n,X.ctaLabel]])]),u(`label`,V,[c[19]||=v(` لینک دکمه `,-1),p(u(`input`,{"onUpdate:modelValue":c[7]||=e=>X.ctaLink=e,class:`admin-input`,dir:`ltr`,placeholder:`/categories`},null,512),[[n,X.ctaLink]])]),u(`label`,H,[c[20]||=v(`ترتیب نمایش`,-1),p(u(`input`,{"onUpdate:modelValue":c[8]||=e=>X.displayOrder=e,type:`number`,min:`0`,class:`admin-input`},null,512),[[n,X.displayOrder,void 0,{number:!0}]])]),y(E,{modelValue:X.imageUrl,"onUpdate:modelValue":c[9]||=e=>X.imageUrl=e,label:`تصویر بنر`},null,8,[`modelValue`]),y(T,{modelValue:X.isActive,"onUpdate:modelValue":c[10]||=e=>X.isActive=e,label:`فعال`},null,8,[`modelValue`])]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-1ca3d686`]]);export{W as default};