modoboa 2.4.10__py3-none-any.whl → 2.4.11__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- modoboa/admin/api/v1/serializers.py +1 -0
- modoboa/admin/api/v2/serializers.py +1 -1
- modoboa/admin/api/v2/tests.py +11 -1
- modoboa/admin/lib.py +1 -1
- modoboa/admin/models/mailbox.py +15 -13
- modoboa/admin/models/mxrecord.py +4 -0
- modoboa/admin/tests/test_import_.py +11 -11
- modoboa/core/api/v2/serializers.py +9 -0
- modoboa/core/api/v2/tests.py +18 -0
- modoboa/core/api/v2/urls.py +5 -0
- modoboa/core/api/v2/views.py +20 -1
- modoboa/core/app_settings.py +11 -0
- modoboa/core/fido2_auth.py +1 -2
- modoboa/core/management/commands/cleanlogs.py +9 -0
- modoboa/core/tests/test_core.py +5 -0
- modoboa/core/utils.py +3 -0
- modoboa/dnstools/api/v2/serializers.py +9 -11
- modoboa/frontend_dist/assets/{AccountAliasForm-DVXatAhB.js → AccountAliasForm-BV6KvTu6.js} +1 -1
- modoboa/frontend_dist/assets/{AccountEditView-DmvQjxpx.js → AccountEditView-DDOFyfBD.js} +1 -1
- modoboa/frontend_dist/assets/AccountLayout-rX51xgxT.js +1 -0
- modoboa/frontend_dist/assets/{AccountPasswordSubForm-g3IEGrgM.js → AccountPasswordSubForm-D9S6LaeH.js} +1 -1
- modoboa/frontend_dist/assets/AccountView-cmvaZNq3.js +1 -0
- modoboa/frontend_dist/assets/{AddressBook-3RoKiKon.js → AddressBook-DCJxL8SU.js} +1 -1
- modoboa/frontend_dist/assets/AdminLayout-r0wfG2lO.js +1 -0
- modoboa/frontend_dist/assets/{AlarmsView-D3Mh8ntf.js → AlarmsView-C0bqC4PA.js} +1 -1
- modoboa/frontend_dist/assets/{AliasEditView-C15eUZ11.js → AliasEditView-DVoWoCGY.js} +1 -1
- modoboa/frontend_dist/assets/{AliasRecipientForm-DVZXWaUX.js → AliasRecipientForm-IOae6sjF.js} +1 -1
- modoboa/frontend_dist/assets/{AliasView-Cyvc5vMb.js → AliasView-DrONZXOh.js} +1 -1
- modoboa/frontend_dist/assets/{AuditTrailView-LI2XuLLn.js → AuditTrailView-OTkoZaMU.js} +1 -1
- modoboa/frontend_dist/assets/{CalendarView-BpOlPh3f.js → CalendarView-CqF4_Ui9.js} +1 -1
- modoboa/frontend_dist/assets/{ChoiceField-7eU7c_rI.js → ChoiceField-DJ_c78Cm.js} +1 -1
- modoboa/frontend_dist/assets/{ComposeEmailForm-CNfI7ept.js → ComposeEmailForm-DO5_GB3e.js} +1 -1
- modoboa/frontend_dist/assets/ComposeEmailView-A91HCBsN.js +1 -0
- modoboa/frontend_dist/assets/{ConfirmDialog-BvqxQsD1.js → ConfirmDialog-BBcgdAnO.js} +1 -1
- modoboa/frontend_dist/assets/ConnectedLayout-1oRW-Rql.js +1 -0
- modoboa/frontend_dist/assets/{ConnectedLayout-BaJZ3BeR.css → ConnectedLayout-Dvwmicnc.css} +1 -1
- modoboa/frontend_dist/assets/CreationForm-71YJbjsA.js +1 -0
- modoboa/frontend_dist/assets/DashboardView-CdLpSfUl.js +1 -0
- modoboa/frontend_dist/assets/{DashboardView-BLlMi6Qb.css → DashboardView-gwwVAPvt.css} +1 -1
- modoboa/frontend_dist/assets/DomainAdminList-BjC4KsqI.js +1 -0
- modoboa/frontend_dist/assets/{DomainEditView-DocxeOeW.js → DomainEditView-CQjKwYxl.js} +1 -1
- modoboa/frontend_dist/assets/{DomainTransportForm-DPnPGBOp.js → DomainTransportForm-C2xo0Yd7.js} +1 -1
- modoboa/frontend_dist/assets/DomainView-BhhuZI_N.js +5 -0
- modoboa/frontend_dist/assets/DomainsView-Cft4BP8Z.js +1 -0
- modoboa/frontend_dist/assets/{EmailField-BEKxuYni.js → EmailField-C8umy0EU.js} +1 -1
- modoboa/frontend_dist/assets/{EmailView-BsR1Wes5.js → EmailView-ki7uEQPD.js} +1 -1
- modoboa/frontend_dist/assets/EmptyLayout-DaA1XH9n.js +1 -0
- modoboa/frontend_dist/assets/{FiltersView-5rmpC5cC.js → FiltersView-FYFZxG4B.js} +1 -1
- modoboa/frontend_dist/assets/ForwardEmailView-cUbnSYCF.js +1 -0
- modoboa/frontend_dist/assets/{HtmlEditor-uM4AtIGi.js → HtmlEditor-CJ9umKeO.js} +1 -1
- modoboa/frontend_dist/assets/{IdentitiesView-jmuItyMZ.css → IdentitiesView-0ziuQ5s-.css} +1 -1
- modoboa/frontend_dist/assets/IdentitiesView-njNo8N5n.js +1 -0
- modoboa/frontend_dist/assets/{InformationView-CghcvPn2.js → InformationView-D1h38POt.js} +1 -1
- modoboa/frontend_dist/assets/{LoadingData-CVD2Aen8.js → LoadingData-CYwX3Jpn.js} +1 -1
- modoboa/frontend_dist/assets/{LoginCallbackView-sWzBke1g.js → LoginCallbackView-E01qkKn0.js} +1 -1
- modoboa/frontend_dist/assets/{LoginView-wmN73W0f.js → LoginView-Cy4uFV9h.js} +1 -1
- modoboa/frontend_dist/assets/{MailboxView-T_p-_ZtJ.js → MailboxView-IlrLWm_H.js} +1 -1
- modoboa/frontend_dist/assets/{MenuItems-kHCMzR5E.js → MenuItems-BAtHWzAE.js} +1 -1
- modoboa/frontend_dist/assets/MessagesView-OSpjixFq.js +1 -0
- modoboa/frontend_dist/assets/{MigrationsView-7kjqPyYU.js → MigrationsView-DKNOsVzF.js} +1 -1
- modoboa/frontend_dist/assets/{ParametersForm-BCeQljir.js → ParametersForm-BZM0QSvg.js} +1 -1
- modoboa/frontend_dist/assets/ParametersView-C4bXASiq.js +1 -0
- modoboa/frontend_dist/assets/ParametersView-CYXgNmc1.js +1 -0
- modoboa/frontend_dist/assets/{ProviderEditView-DDLMOylC.js → ProviderEditView-CyxCWTST.js} +1 -1
- modoboa/frontend_dist/assets/{ProviderGeneralForm-BwOSKNHK.js → ProviderGeneralForm-BYPjNHqB.js} +1 -1
- modoboa/frontend_dist/assets/ProvidersView-CxrMkRyk.js +1 -0
- modoboa/frontend_dist/assets/ReplyEmailView-Dkw9-N26.js +1 -0
- modoboa/frontend_dist/assets/{ResourcesForm-D87PHeH0.js → ResourcesForm-CuUvrOdY.js} +1 -1
- modoboa/frontend_dist/assets/SettingsView-BxLJBFY0.js +6 -0
- modoboa/frontend_dist/assets/{StatisticsView-CM__Eqku.js → StatisticsView-BN7QsZMT.js} +1 -1
- modoboa/frontend_dist/assets/{TimeSerieChart-C6j0uYR_.js → TimeSerieChart-BMN8BeFZ.js} +1 -1
- modoboa/frontend_dist/assets/UserLayout-B6-JQg4F.js +1 -0
- modoboa/frontend_dist/assets/{VAlert-B7mzOJIO.js → VAlert-DIQTrRif.js} +1 -1
- modoboa/frontend_dist/assets/{VApp-BKxnjOoi.js → VApp-CpkYA7js.js} +1 -1
- modoboa/frontend_dist/assets/{VAutocomplete-Cc4_tcl1.js → VAutocomplete-C4IpXyl8.js} +1 -1
- modoboa/frontend_dist/assets/{VAvatar-BAgTUIvX.js → VAvatar-Lpb-Dion.js} +1 -1
- modoboa/frontend_dist/assets/{VCard-DFWiFORP.js → VCard-er_isjE_.js} +1 -1
- modoboa/frontend_dist/assets/{VCheckbox-CKsH_vq3.js → VCheckbox-D-u8JXP1.js} +1 -1
- modoboa/frontend_dist/assets/{VCheckboxBtn-j7di4leN.js → VCheckboxBtn-Dt810gWf.js} +1 -1
- modoboa/frontend_dist/assets/{VChip-nZ0uhY7t.js → VChip-B4iSpj8_.js} +1 -1
- modoboa/frontend_dist/assets/{VColorPicker-Os2aeP6J.js → VColorPicker-BAjGDsXv.js} +1 -1
- modoboa/frontend_dist/assets/VContainer-DvTbsotR.js +1 -0
- modoboa/frontend_dist/assets/{VDataTable-D_0_xJTl.js → VDataTable-4JRjbtgF.js} +1 -1
- modoboa/frontend_dist/assets/{VDataTableServer-BWTt4Mzi.js → VDataTableServer-tIDT1m3-.js} +1 -1
- modoboa/frontend_dist/assets/{VDataTableVirtual-BwVmkt4u.js → VDataTableVirtual-BlnO18u_.js} +1 -1
- modoboa/frontend_dist/assets/{VDialog-CZqM2Ofu.js → VDialog-Bk6EWNhz.js} +1 -1
- modoboa/frontend_dist/assets/{VExpansionPanels-B5D6GOa3.js → VExpansionPanels-CwGtXDhr.js} +1 -1
- modoboa/frontend_dist/assets/{VFileInput-Cv9DIPki.js → VFileInput-D1_7ZkO_.js} +1 -1
- modoboa/frontend_dist/assets/{VForm-CpoZf60D.js → VForm-DAkW4nfy.js} +1 -1
- modoboa/frontend_dist/assets/{VMenu-B_dVqOmo.js → VMenu-BPFJwj2f.js} +1 -1
- modoboa/frontend_dist/assets/{VPicker-CXkIGEze.js → VPicker-CfT82M8N.js} +1 -1
- modoboa/frontend_dist/assets/{VProgressCircular-CrEXxs7k.js → VProgressCircular-w75-3ogi.js} +1 -1
- modoboa/frontend_dist/assets/{VRadioGroup-D8ypjYOO.js → VRadioGroup-0j6DNC_k.js} +1 -1
- modoboa/frontend_dist/assets/{VRow-C_Ydf6yr.js → VRow-BF35mT1S.js} +1 -1
- modoboa/frontend_dist/assets/{VSelect-CS51PDEt.js → VSelect-Cs4ARbAS.js} +1 -1
- modoboa/frontend_dist/assets/{VSelectionControl-DiOqtY38.js → VSelectionControl-Dg-XyRRS.js} +1 -1
- modoboa/frontend_dist/assets/VSheet-Btq_Mu4s.js +1 -0
- modoboa/frontend_dist/assets/VSpacer-C7xukQmu.js +1 -0
- modoboa/frontend_dist/assets/{VSwitch-Chg5o-Cp.js → VSwitch-Cs1NQrmk.js} +1 -1
- modoboa/frontend_dist/assets/{VTable-KsiZ3cBz.js → VTable-CNz2SGk4.js} +1 -1
- modoboa/frontend_dist/assets/{VTabs-tNrJIYO0.js → VTabs-B1fyVn4M.js} +1 -1
- modoboa/frontend_dist/assets/{VTextField-CLwRV0Cb.js → VTextField-BdyvgvkG.js} +1 -1
- modoboa/frontend_dist/assets/{VTextarea-Di8jbl8m.js → VTextarea-DnOMpe0Q.js} +1 -1
- modoboa/frontend_dist/assets/{VToolbar-CGwhgdmI.js → VToolbar-BiCiBxBJ.js} +1 -1
- modoboa/frontend_dist/assets/{VWindowItem-wWSFAGI-.js → VWindowItem-ChWm_kz3.js} +1 -1
- modoboa/frontend_dist/assets/WebmailLayout-o4uEkp9e.js +1 -0
- modoboa/frontend_dist/assets/admin-o-HRGnmT.js +1 -0
- modoboa/frontend_dist/assets/{aliases-c3n-dCV_.js → aliases-DDVeehyg.js} +1 -1
- modoboa/frontend_dist/assets/{contacts-Bqckz8sr.js → contacts-C84DY-Q1.js} +1 -1
- modoboa/frontend_dist/assets/{domains-nBMR-fRf.js → domains-Bgn4ixHL.js} +1 -1
- modoboa/frontend_dist/assets/{domains.store-ChZgLcqP.js → domains.store-DTE-V7Y1.js} +1 -1
- modoboa/frontend_dist/assets/{filter-D7NrAf6a.js → filter-CnffiQAW.js} +1 -1
- modoboa/frontend_dist/assets/{forwardRefs-Cpc3YYl6.js → forwardRefs-Dvjn_Xq4.js} +1 -1
- modoboa/frontend_dist/assets/{global.store-DUP26-A5.js → global.store-BaiD63EN.js} +1 -1
- modoboa/frontend_dist/assets/{importExport-Dn9vYw7T.js → importExport-BlQYb0NO.js} +1 -1
- modoboa/frontend_dist/assets/index-DuzUMVLM.js +1 -0
- modoboa/frontend_dist/assets/index-I1VDlN4g.js +984 -0
- modoboa/frontend_dist/assets/layout-D8ZJPiJ_.js +1 -0
- modoboa/frontend_dist/assets/{layout.store-BxBoBlgf.js → layout.store-DkjrAoXt.js} +1 -1
- modoboa/frontend_dist/assets/logos-q8SEyAa4.js +1 -0
- modoboa/frontend_dist/assets/{logs-DrTzylW7.js → logs-B7IJ7LBa.js} +1 -1
- modoboa/frontend_dist/assets/{parameters-Lgiqp7aw.js → parameters-A6iBEYQq.js} +1 -1
- modoboa/frontend_dist/assets/{parameters.store-C9k9DuTj.js → parameters.store-BiXS4_6w.js} +1 -1
- modoboa/frontend_dist/assets/{permissions-mL5hLHcW.js → permissions-CITHLHVg.js} +1 -1
- modoboa/frontend_dist/assets/{ssrBoot-BsxW6uW4.js → ssrBoot-AzTdjPjk.js} +1 -1
- modoboa/frontend_dist/assets/{tag-CFK9dzMJ.js → tag-BnSYRTcD.js} +1 -1
- modoboa/frontend_dist/assets/transports-Dz7c6kIy.js +1 -0
- modoboa/frontend_dist/assets/{webmail-KrD8ZhNM.js → webmail-CSH_3l6R.js} +1 -1
- modoboa/frontend_dist/index.html +1 -1
- modoboa/lib/redis.py +1 -5
- modoboa/locale/ja_JP/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/ja_JP/LC_MESSAGES/django.po +122 -263
- {modoboa-2.4.10.dist-info → modoboa-2.4.11.dist-info}/METADATA +1 -1
- {modoboa-2.4.10.dist-info → modoboa-2.4.11.dist-info}/RECORD +139 -138
- modoboa/frontend_dist/assets/AccountLayout-OGtZvlHR.js +0 -1
- modoboa/frontend_dist/assets/AccountView-DsxYqr3k.js +0 -1
- modoboa/frontend_dist/assets/AdminLayout-CWfn8zaQ.js +0 -1
- modoboa/frontend_dist/assets/ComposeEmailView-B866Xsrc.js +0 -1
- modoboa/frontend_dist/assets/ConnectedLayout-BQ3ug6Jh.js +0 -1
- modoboa/frontend_dist/assets/CreationForm-C9Kh05ax.js +0 -1
- modoboa/frontend_dist/assets/DashboardView-Cw-gIcuB.js +0 -1
- modoboa/frontend_dist/assets/DomainAdminList-CsWUNKVk.js +0 -1
- modoboa/frontend_dist/assets/DomainView-Djc_0PsF.js +0 -5
- modoboa/frontend_dist/assets/DomainsView-B-Lxru7P.js +0 -1
- modoboa/frontend_dist/assets/EmptyLayout-BzPFOeLU.js +0 -1
- modoboa/frontend_dist/assets/ForwardEmailView-D7MbetcT.js +0 -1
- modoboa/frontend_dist/assets/IdentitiesView-BqjD9Lue.js +0 -1
- modoboa/frontend_dist/assets/MessagesView-Cerv3xsy.js +0 -1
- modoboa/frontend_dist/assets/ParametersView-DspBxVMV.js +0 -1
- modoboa/frontend_dist/assets/ParametersView-Dy0H5ep1.js +0 -1
- modoboa/frontend_dist/assets/ProvidersView-C99UD0WB.js +0 -1
- modoboa/frontend_dist/assets/ReplyEmailView-DAPBHldd.js +0 -1
- modoboa/frontend_dist/assets/SettingsView-OxDo9wNd.js +0 -6
- modoboa/frontend_dist/assets/UserLayout-CckCGnPS.js +0 -1
- modoboa/frontend_dist/assets/VContainer-Btam4lk2.js +0 -1
- modoboa/frontend_dist/assets/VSheet-5VVWtHvs.js +0 -1
- modoboa/frontend_dist/assets/VSpacer-C6PZ3X24.js +0 -1
- modoboa/frontend_dist/assets/WebmailLayout-DsYThBrz.js +0 -1
- modoboa/frontend_dist/assets/admin-CJVLMHh9.js +0 -1
- modoboa/frontend_dist/assets/index-DV9Li2cg.js +0 -852
- modoboa/frontend_dist/assets/index-DzL89N4E.js +0 -1
- modoboa/frontend_dist/assets/layout-CHO37cA6.js +0 -1
- modoboa/frontend_dist/assets/transports-TO08iTXJ.js +0 -1
- {modoboa-2.4.10.data → modoboa-2.4.11.data}/scripts/modoboa-admin.py +0 -0
- {modoboa-2.4.10.dist-info → modoboa-2.4.11.dist-info}/WHEEL +0 -0
- {modoboa-2.4.10.dist-info → modoboa-2.4.11.dist-info}/entry_points.txt +0 -0
- {modoboa-2.4.10.dist-info → modoboa-2.4.11.dist-info}/licenses/LICENSE +0 -0
- {modoboa-2.4.10.dist-info → modoboa-2.4.11.dist-info}/top_level.txt +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{k as ae,r as $e,c as B,o as V,w as y,a as s,b0 as fe,b1 as Re,ac as R,h as C,a8 as De,d as j,L as U,aA as he,b2 as He,b3 as X,ag as ge,b4 as ye,aF as Oe,v as pe,x as _e,ai as Ue,ar as we,V as Ye,T as ke,g as D,ad as Q,a6 as be,b5 as We,Y as Ge,e as L,B as z,F as N,C as xe,$ as ze,u as Ve,s as Fe,a0 as Xe,i as qe,f as Z,p as je,m as $,G as K,q as ee,l as q,t as Y,a1 as Ze,b as Se,b6 as Ke,ak as Je,_ as Qe,S as et,b7 as tt,U as at,n as nt,z as ot,H as lt}from"./index-DV9Li2cg.js";import{V as rt}from"./VContainer-Btam4lk2.js";import{V as it,a as st}from"./VApp-BKxnjOoi.js";import{u as ut}from"./global.store-DUP26-A5.js";import{u as ct}from"./layout.store-BxBoBlgf.js";import{C as vt,r as dt,u as Ce,D as mt,E as ft,b as Te,s as ht,A as gt,p as Pe,h as Be,V as J,d as te,f as yt,F as pt,G as _t,k as wt,e as kt,z as bt,H as xt,c as Vt}from"./VAvatar-BAgTUIvX.js";import{V as Le,g as St,a as O,h as Ct,c as Tt,b as Pt,f as Bt}from"./forwardRefs-Cpc3YYl6.js";import{u as se}from"./VProgressCircular-CrEXxs7k.js";import{u as Me,m as Lt,a as Mt}from"./tag-CFK9dzMJ.js";import{u as Ee,b as Et,m as At,V as ue,a as ce,c as It}from"./VMenu-B_dVqOmo.js";import{u as Nt,a as $t,V as Rt,b as Dt}from"./layout-CHO37cA6.js";import{u as Ht}from"./ssrBoot-BsxW6uW4.js";import{b as ve}from"./VCard-DFWiFORP.js";import{V as Ot,a as Ut}from"./VRow-C_Ydf6yr.js";import{V as Yt}from"./VSheet-5VVWtHvs.js";const Wt={__name:"ConnectedView",setup(e){return(o,n)=>{const r=$e("router-view");return V(),B(it,null,{default:y(()=>[s(rt,{fluid:"",style:{height:"100%"}},{default:y(()=>[s(r,null,{default:y(({Component:t})=>[s(fe,{name:"fade"},{default:y(()=>[(V(),B(Re(t)))]),_:2},1024)]),_:1})]),_:1})]),_:1})}}},Gt=ae(Wt,[["__scopeId","data-v-b2ffa9e6"]]);function zt(e){let{rootEl:o,isSticky:n,layoutItemStyles:r}=e;const t=R(!1),c=R(0),l=C(()=>{const a=typeof t.value=="boolean"?"top":t.value;return[n.value?{top:"auto",bottom:"auto",height:void 0}:void 0,t.value?{[a]:De(c.value)}:{top:r.value.top}]});j(()=>{U(n,a=>{a?window.addEventListener("scroll",_,{passive:!0}):window.removeEventListener("scroll",_)},{immediate:!0})}),he(()=>{window.removeEventListener("scroll",_)});let u=0;function _(){const a=u>window.scrollY?"up":"down",v=o.value.getBoundingClientRect(),g=parseFloat(r.value.top??0),k=window.scrollY-Math.max(0,c.value-g),x=v.height+Math.max(c.value,g)-window.scrollY-window.innerHeight,f=parseFloat(getComputedStyle(o.value).getPropertyValue("--v-body-scroll-y"))||0;v.height<window.innerHeight-g?(t.value="top",c.value=g):a==="up"&&t.value==="bottom"||a==="down"&&t.value==="top"?(c.value=window.scrollY+v.top-f,t.value=!0):a==="down"&&x<=0?(c.value=0,t.value="bottom"):a==="up"&&k<=0&&(f?t.value!=="top"&&(c.value=-k+f+g,t.value="top"):(c.value=v.top+k,t.value="top")),u=window.scrollY}return{isStuck:t,stickyStyles:l}}const Ft=100,Xt=20;function de(e){return(e<0?-1:1)*Math.sqrt(Math.abs(e))*1.41421356237}function me(e){if(e.length<2)return 0;if(e.length===2)return e[1].t===e[0].t?0:(e[1].d-e[0].d)/(e[1].t-e[0].t);let o=0;for(let n=e.length-1;n>0;n--){if(e[n].t===e[n-1].t)continue;const r=de(o),t=(e[n].d-e[n-1].d)/(e[n].t-e[n-1].t);o+=(t-r)*Math.abs(t),n===e.length-1&&(o*=.5)}return de(o)*1e3}function qt(){const e={};function o(t){Array.from(t.changedTouches).forEach(c=>{(e[c.identifier]??(e[c.identifier]=new He(Xt))).push([t.timeStamp,c])})}function n(t){Array.from(t.changedTouches).forEach(c=>{delete e[c.identifier]})}function r(t){var a;const c=(a=e[t])==null?void 0:a.values().reverse();if(!c)throw new Error(`No samples for touch id ${t}`);const l=c[0],u=[],_=[];for(const v of c){if(l[0]-v[0]>Ft)break;u.push({t:v[0],d:v[1].clientX}),_.push({t:v[0],d:v[1].clientY})}return{x:me(u),y:me(_),get direction(){const{x:v,y:g}=this,[k,x]=[Math.abs(v),Math.abs(g)];return k>x&&v>=0?"right":k>x&&v<=0?"left":x>k&&g>=0?"down":x>k&&g<=0?"up":jt()}}}return{addMovement:o,endTouch:n,getVelocity:r}}function jt(){throw new Error}function Zt(e){let{el:o,isActive:n,isTemporary:r,width:t,touchless:c,position:l}=e;j(()=>{window.addEventListener("touchstart",A,{passive:!0}),window.addEventListener("touchmove",M,{passive:!1}),window.addEventListener("touchend",W,{passive:!0})}),he(()=>{window.removeEventListener("touchstart",A),window.removeEventListener("touchmove",M),window.removeEventListener("touchend",W)});const u=C(()=>["left","right"].includes(l.value)),{addMovement:_,endTouch:a,getVelocity:v}=qt();let g=!1;const k=R(!1),x=R(0),f=R(0);let b;function i(d,h){return(l.value==="left"?d:l.value==="right"?document.documentElement.clientWidth-d:l.value==="top"?d:l.value==="bottom"?document.documentElement.clientHeight-d:G())-(h?t.value:0)}function S(d){let h=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;const p=l.value==="left"?(d-f.value)/t.value:l.value==="right"?(document.documentElement.clientWidth-d-f.value)/t.value:l.value==="top"?(d-f.value)/t.value:l.value==="bottom"?(document.documentElement.clientHeight-d-f.value)/t.value:G();return h?Oe(p):p}function A(d){if(c.value)return;const h=d.changedTouches[0].clientX,p=d.changedTouches[0].clientY,w=25,T=l.value==="left"?h<w:l.value==="right"?h>document.documentElement.clientWidth-w:l.value==="top"?p<w:l.value==="bottom"?p>document.documentElement.clientHeight-w:G(),m=n.value&&(l.value==="left"?h<t.value:l.value==="right"?h>document.documentElement.clientWidth-t.value:l.value==="top"?p<t.value:l.value==="bottom"?p>document.documentElement.clientHeight-t.value:G());(T||m||n.value&&r.value)&&(b=[h,p],f.value=i(u.value?h:p,n.value),x.value=S(u.value?h:p),g=f.value>-20&&f.value<80,a(d),_(d))}function M(d){const h=d.changedTouches[0].clientX,p=d.changedTouches[0].clientY;if(g){if(!d.cancelable){g=!1;return}const T=Math.abs(h-b[0]),m=Math.abs(p-b[1]);(u.value?T>m&&T>3:m>T&&m>3)?(k.value=!0,g=!1):(u.value?m:T)>3&&(g=!1)}if(!k.value)return;d.preventDefault(),_(d);const w=S(u.value?h:p,!1);x.value=Math.max(0,Math.min(1,w)),w>1?f.value=i(u.value?h:p,!0):w<0&&(f.value=i(u.value?h:p,!1))}function W(d){if(g=!1,!k.value)return;_(d),k.value=!1;const h=v(d.changedTouches[0].identifier),p=Math.abs(h.x),w=Math.abs(h.y);(u.value?p>w&&p>400:w>p&&w>3)?n.value=h.direction===({left:"right",right:"left",top:"down",bottom:"up"}[l.value]||G()):n.value=x.value>.5}const H=C(()=>k.value?{transform:l.value==="left"?`translateX(calc(-100% + ${x.value*t.value}px))`:l.value==="right"?`translateX(calc(100% - ${x.value*t.value}px))`:l.value==="top"?`translateY(calc(-100% + ${x.value*t.value}px))`:l.value==="bottom"?`translateY(calc(100% - ${x.value*t.value}px))`:G(),transition:"none"}:void 0);return X(k,()=>{var p,w;const d=((p=o.value)==null?void 0:p.style.transform)??null,h=((w=o.value)==null?void 0:w.style.transition)??null;ge(()=>{var T,m,E,I;(m=o.value)==null||m.style.setProperty("transform",((T=H.value)==null?void 0:T.transform)||"none"),(I=o.value)==null||I.style.setProperty("transition",((E=H.value)==null?void 0:E.transition)||null)}),ye(()=>{var T,m;(T=o.value)==null||T.style.setProperty("transform",d),(m=o.value)==null||m.style.setProperty("transition",h)})}),{isDragging:k,dragProgress:x,dragStyles:H}}function G(){throw new Error}const Kt=["start","end","left","right","top","bottom"],Jt=_e({color:String,disableResizeWatcher:Boolean,disableRouteWatcher:Boolean,expandOnHover:Boolean,floating:Boolean,modelValue:{type:Boolean,default:null},permanent:Boolean,rail:{type:Boolean,default:null},railWidth:{type:[Number,String],default:56},scrim:{type:[Boolean,String],default:!0},image:String,temporary:Boolean,persistent:Boolean,touchless:Boolean,width:{type:[Number,String],default:256},location:{type:String,default:"start",validator:e=>Kt.includes(e)},sticky:Boolean,...gt(),...Mt(),...At(),...ze({mobile:null}),...ht(),...$t(),...Te(),...Lt({tag:"nav"}),...xe()},"VNavigationDrawer"),Qt=pe()({name:"VNavigationDrawer",props:Jt(),emits:{"update:modelValue":e=>!0,"update:rail":e=>!0},setup(e,o){let{attrs:n,emit:r,slots:t}=o;const{isRtl:c}=Ue(),{themeClasses:l}=we(e),{borderClasses:u}=vt(e),{backgroundColorClasses:_,backgroundColorStyles:a}=se(()=>e.color),{elevationClasses:v}=dt(e),{displayClasses:g,mobile:k}=Ye(e),{roundedClasses:x}=Ce(e),f=mt(),b=ke(e,"modelValue",null,P=>!!P),{ssrBootStyles:i}=Ht(),{scopeId:S}=Ee(),A=D(),M=R(!1),{runOpenDelay:W,runCloseDelay:H}=Et(e,P=>{M.value=P}),d=C(()=>e.rail&&e.expandOnHover&&M.value?Number(e.width):Number(e.rail?e.railWidth:e.width)),h=C(()=>ft(e.location,c.value)),p=Q(()=>e.persistent),w=C(()=>!e.permanent&&(k.value||e.temporary)),T=C(()=>e.sticky&&!w.value&&h.value!=="bottom");X(()=>e.expandOnHover&&e.rail!=null,()=>{U(M,P=>r("update:rail",!P))}),X(()=>!e.disableResizeWatcher,()=>{U(w,P=>!e.permanent&&be(()=>b.value=!P))}),X(()=>!e.disableRouteWatcher&&!!f,()=>{U(f.currentRoute,()=>w.value&&(b.value=!1))}),U(()=>e.permanent,P=>{P&&(b.value=!0)}),e.modelValue==null&&!w.value&&(b.value=e.permanent||!k.value);const{isDragging:m,dragProgress:E}=Zt({el:A,isActive:b,isTemporary:w,width:d,touchless:Q(()=>e.touchless),position:h}),I=C(()=>{const P=w.value?0:e.rail&&e.expandOnHover?Number(e.railWidth):d.value;return m.value?P*E.value:P}),{layoutItemStyles:F,layoutItemScrimStyles:Ae}=Nt({id:e.name,order:C(()=>parseInt(e.order,10)),position:h,layoutSize:I,elementSize:d,active:We(b),disableTransitions:Q(()=>m.value),absolute:C(()=>e.absolute||T.value&&typeof ne.value!="string")}),{isStuck:ne,stickyStyles:Ie}=zt({rootEl:A,isSticky:T,layoutItemStyles:F}),oe=se(()=>typeof e.scrim=="string"?e.scrim:null),Ne=C(()=>({...m.value?{opacity:E.value*.2,transition:"none"}:void 0,...Ae.value}));return Ge({VList:{bgColor:"transparent"}}),Me(()=>{const P=t.image||e.image;return L(N,null,[s(e.tag,z({ref:A,onMouseenter:W,onMouseleave:H,class:["v-navigation-drawer",`v-navigation-drawer--${h.value}`,{"v-navigation-drawer--expand-on-hover":e.expandOnHover,"v-navigation-drawer--floating":e.floating,"v-navigation-drawer--is-hovering":M.value,"v-navigation-drawer--rail":e.rail,"v-navigation-drawer--temporary":w.value,"v-navigation-drawer--persistent":p.value,"v-navigation-drawer--active":b.value,"v-navigation-drawer--sticky":T.value},l.value,_.value,u.value,g.value,v.value,x.value,e.class],style:[a.value,F.value,i.value,Ie.value,e.style]},S,n),{default:()=>{var le,re,ie;return[P&&L("div",{key:"image",class:"v-navigation-drawer__img"},[t.image?s(Be,{key:"image-defaults",disabled:!e.image,defaults:{VImg:{alt:"",cover:!0,height:"inherit",src:e.image}}},t.image):s(Pe,{key:"image-img",alt:"",cover:!0,height:"inherit",src:e.image},null)]),t.prepend&&L("div",{class:"v-navigation-drawer__prepend"},[(le=t.prepend)==null?void 0:le.call(t)]),L("div",{class:"v-navigation-drawer__content"},[(re=t.default)==null?void 0:re.call(t)]),t.append&&L("div",{class:"v-navigation-drawer__append"},[(ie=t.append)==null?void 0:ie.call(t)])]}}),s(fe,{name:"fade-transition"},{default:()=>[w.value&&(m.value||b.value)&&!!e.scrim&&L("div",z({class:["v-navigation-drawer__scrim",oe.backgroundColorClasses.value],style:[Ne.value,oe.backgroundColorStyles.value],onClick:()=>{p.value||(b.value=!1)}},S),null)]})])}),{isStuck:ne}}}),ea={class:"d-flex align-center"},ta={__name:"NavBar",props:{color:{type:String,default:"primary"},menuItems:{type:Array,required:!1,default:null},logoRoute:{type:Object,default:null}},setup(e){const o=e,n=ut(),r=Ve(),t=ct(),c=Fe(),l=Xe(),u=D(!1),_=D(!0),a=C(()=>r.authUser),v=C(()=>r.isAuthenticated),g=C(()=>n.notifications.length!==void 0&&n.notifications.length!==0),k=C(()=>l.MENU_LOGO_PATH?l.MENU_LOGO_PATH:new URL("/assets/Modoboa_RVB-BLANC-SANS-BBGoASES.png",import.meta.url).href);function x(f){return v.value?(f.roles===void 0||f.roles.indexOf(a.value.role)!==-1)&&(f.condition===void 0||f.condition())&&f.activated!==!1:!1}return j(()=>{a.value.role===qe.SUPER_ADMIN&&n.fetchNotifications()}),(f,b)=>(V(),B(Qt,{modelValue:_.value,"onUpdate:modelValue":b[2]||(b[2]=i=>_.value=i),rail:u.value,permanent:"",color:e.color,app:""},{default:y(()=>[L("div",ea,[s(Pe,{src:k.value,"max-width":"190",class:"logo",onClick:b[0]||(b[0]=i=>Z(c).push(o.logoRoute))},null,8,["src"]),s(J,{icon:u.value?"mdi-chevron-right":"mdi-chevron-left",variant:"text",onClick:b[1]||(b[1]=je(i=>u.value=!u.value,["stop"]))},null,8,["icon"])]),s(Le,{density:Z(t).compactLeftMenu?"compact":"default",lines:!Z(t).compactLeftMenu,nav:""},{default:y(()=>[(V(!0),$(N,null,K(e.menuItems,i=>(V(),$(N,{key:i.text},[x(i)?(V(),$(N,{key:0},[i.subheader?(V(),B(St,{key:0,class:"text-white"},{default:y(()=>[q(Y(i.text.toUpperCase()),1)]),_:2},1024)):i.action?(V(),B(O,{key:1,value:i,exact:i.exact,title:i.text,"prepend-icon":i.icon,onClick:i.action},null,8,["value","exact","title","prepend-icon","onClick"])):i.children?(V(),B(Ct,{key:3,value:i.text},{activator:y(({props:S})=>[(V(),B(O,z({ref_for:!0},S,{key:i.text,title:i.text,color:"white","prepend-icon":i.icon}),null,16,["title","prepend-icon"]))]),default:y(()=>[(V(!0),$(N,null,K(i.children,S=>(V(),$(N,{key:S.text},[x(S)?(V(),$(N,{key:0},[S.action?(V(),B(O,{key:0,title:S.text,value:S,"prepend-icon":S.icon,onClick:S.action},null,8,["title","value","prepend-icon","onClick"])):(V(),B(O,{key:1,to:S.to,link:"",title:S.text,value:S,"prepend-icon":S.icon},null,8,["to","title","value","prepend-icon"]))],64)):ee("",!0)],64))),128))]),_:2},1032,["value"])):(V(),B(O,{key:2,value:i,to:i.to,link:"",exact:i.exact,title:i.text,"prepend-icon":i.icon},Ze({_:2},[i.withBell&&g.value?{name:"append",fn:y(()=>[s(te,{color:"red",icon:"mdi-bell-alert-outline"})]),key:"0"}:void 0]),1032,["value","to","exact","title","prepend-icon"]))],64)):ee("",!0)],64))),128))]),_:1},8,["density","lines"])]),_:1},8,["modelValue","rail","color"]))}},aa=ae(ta,[["__scopeId","data-v-58cf46ea"]]),na={key:0,class:"top-menu"},oa={class:"mt-2"},la={class:"text-center"},ra={class:"text-h5"},ia={__name:"TopMenu",props:{user:{type:Object,default:null},remote:{type:Boolean,default:!1}},setup(e){const o=e,{$gettext:n}=Se(),r=D([]),t=C(()=>o.user.first_name&&o.user.last_name?`${o.user.first_name[0].toUpperCase()}${o.user.last_name[0].toUpperCase()}`:o.user.username?o.user.username.slice(0,2).toUpperCase():""),c=C(()=>[{text:n("Account"),icon:"mdi-account-circle-outline",to:o.remote?null:{name:"AccountSettings"},href:o.remote?"https://localhost:3000/account":"",click:()=>null},{text:n("Logout"),icon:"mdi-logout",click:l}]);async function l(){Ke()._s.forEach(async u=>await u.$reset())}return j(()=>{Je.getAvailableApplications().then(u=>{r.value=u.data})}),(u,_)=>e.user?(V(),$("div",na,[s(ue,{activator:"parent",location:"bottom"},{activator:y(({props:a})=>[s(J,z({icon:"mdi-apps",flat:"",class:"mr-4"},a),null,16)]),default:y(()=>[s(ve,{"min-width":"350","max-width":"400",class:"pa-4"},{default:y(()=>[s(Ot,{class:"justify-center"},{default:y(()=>[(V(!0),$(N,null,K(r.value,a=>(V(),B(Ut,{key:a.name,cols:"6"},{default:y(()=>[s(Yt,{rounded:"",class:"application text-center pa-4 text-body-2",onClick:v=>u.$router.push(a.url)},{default:y(()=>[s(te,{color:"primary",icon:a.icon,size:"x-large"},null,8,["icon"]),L("div",oa,Y(a.label),1)]),_:2},1032,["onClick"])]),_:2},1024))),128))]),_:1})]),_:1})]),_:1}),s(J,{icon:"",flat:"",color:"primary"},{default:y(()=>[q(Y(t.value)+" ",1),s(ue,{activator:"parent",location:"bottom"},{default:y(()=>[s(ve,{"min-width":"300","max-width":"350"},{default:y(()=>[s(Le,null,{default:y(()=>[L("div",la,[s(yt,{color:"primary"},{default:y(()=>[L("span",ra,Y(t.value),1)]),_:1}),s(O,{title:e.user.username},null,8,["title"])]),s(Tt),(V(!0),$(N,null,K(c.value,a=>(V(),B(O,{key:a.text,to:a.to,href:a.href,link:"",onClick:a.click},{prepend:y(()=>[s(te,{icon:a.icon},null,8,["icon"])]),default:y(()=>[s(Pt,null,{default:y(()=>[q(Y(a.text),1)]),_:2},1024)]),_:2},1032,["to","href","onClick"]))),128))]),_:1})]),_:1})]),_:1})]),_:1})])):ee("",!0)}},sa=ae(ia,[["__scopeId","data-v-adb37b5d"]]),ua={getTheme(){return Qe.get("/theme/")}};function ca(e){const o=R(e());let n=-1;function r(){clearInterval(n)}function t(){r(),be(()=>o.value=e())}function c(l){const u=l?getComputedStyle(l):{transitionDuration:.2},_=parseFloat(u.transitionDuration)*1e3||200;if(r(),o.value<=0)return;const a=performance.now();n=window.setInterval(()=>{const v=performance.now()-a+_;o.value=Math.max(e()-v,0),o.value<=0&&r()},_)}return ye(r),{clear:r,time:o,start:c,reset:t}}const va=_e({multiLine:Boolean,text:String,timer:[Boolean,String],timeout:{type:[Number,String],default:5e3},vertical:Boolean,...Vt({location:"bottom"}),...xt(),...Te(),...bt(),...xe(),...at(It({transition:"v-snackbar-transition"}),["persistent","noClickAnimation","scrim","scrollStrategy"])},"VSnackbar"),da=pe()({name:"VSnackbar",props:va(),emits:{"update:modelValue":e=>!0},setup(e,o){let{slots:n}=o;const r=ke(e,"modelValue"),{positionClasses:t}=pt(e),{scopeId:c}=Ee(),{themeClasses:l}=we(e),{colorClasses:u,colorStyles:_,variantClasses:a}=_t(e),{roundedClasses:v}=Ce(e),g=ca(()=>Number(e.timeout)),k=D(),x=D(),f=R(!1),b=R(0),i=D(),S=et(Rt,void 0);X(()=>!!S,()=>{const m=Dt();ge(()=>{i.value=m.mainStyles.value})}),U(r,M),U(()=>e.timeout,M),j(()=>{r.value&&M()});let A=-1;function M(){g.reset(),window.clearTimeout(A);const m=Number(e.timeout);if(!r.value||m===-1)return;const E=tt(x.value);g.start(E),A=window.setTimeout(()=>{r.value=!1},m)}function W(){g.reset(),window.clearTimeout(A)}function H(){f.value=!0,W()}function d(){f.value=!1,M()}function h(m){b.value=m.touches[0].clientY}function p(m){Math.abs(b.value-m.changedTouches[0].clientY)>50&&(r.value=!1)}function w(){f.value&&d()}const T=C(()=>e.location.split(" ").reduce((m,E)=>(m[`v-snackbar--${E}`]=!0,m),{}));return Me(()=>{const m=ce.filterProps(e),E=!!(n.default||n.text||e.text);return s(ce,z({ref:k,class:["v-snackbar",{"v-snackbar--active":r.value,"v-snackbar--multi-line":e.multiLine&&!e.vertical,"v-snackbar--timer":!!e.timer,"v-snackbar--vertical":e.vertical},T.value,t.value,e.class],style:[i.value,e.style]},m,{modelValue:r.value,"onUpdate:modelValue":I=>r.value=I,contentProps:z({class:["v-snackbar__wrapper",l.value,u.value,v.value,a.value],style:[_.value],onPointerenter:H,onPointerleave:d},m.contentProps),persistent:!0,noClickAnimation:!0,scrim:!1,scrollStrategy:"none",_disableGlobalStack:!0,onTouchstartPassive:h,onTouchend:p,onAfterLeave:w},c),{default:()=>{var I,F;return[wt(!1,"v-snackbar"),e.timer&&!f.value&&L("div",{key:"timer",class:"v-snackbar__timer"},[s(kt,{ref:x,color:typeof e.timer=="string"?e.timer:"info",max:e.timeout,"model-value":g.time.value},null)]),E&&L("div",{key:"content",class:"v-snackbar__content",role:"status","aria-live":"polite"},[((I=n.text)==null?void 0:I.call(n))??e.text,(F=n.default)==null?void 0:F.call(n)]),n.actions&&s(Be,{defaults:{VBtn:{variant:"text",ripple:!1,slim:!0}}},{default:()=>[L("div",{class:"v-snackbar__actions"},[n.actions({isActive:r})])]})]},activator:n.activator})}),Bt({},k)}}),ma=2e3,Ba={__name:"ConnectedLayout",props:{color:{type:String,default:"primary"},menuItems:{type:Array,default:null}},setup(e){const o=Ve(),n=nt(),{$gettext:r}=Se(),t=ot(),c=C(()=>o.authUser),l=C(()=>n.notificationColor),u=C(()=>n.notification),_=D(!1);return n.$onAction(({name:a,after:v})=>{a==="displayNotification"&&v(()=>{_.value=!0})},!0),ua.getTheme().then(a=>{a.data.theme_primary_color!==t.themes.value.light.colors.primary&&(t.themes.value.light.colors.primary=a.data.theme_primary_color),a.data.theme_primary_color_light!==t.themes.value.light.colors["primary-lighten-1"]&&(t.themes.value.light.colors["primary-lighten-1"]=a.data.theme_primary_color_light),a.data.theme_primary_color_dark!==t.themes.value.light.colors["primary-darken-1"]&&(t.themes.value.light.colors["primary-darken-1"]=a.data.theme_primary_color_dark),a.data.theme_secondary_color!==t.themes.value.light.colors.secondary&&(t.themes.value.light.colors.secondary=a.data.theme_secondary_color),a.data.theme_label_color!==t.themes.value.light.colors.label&&(t.themes.value.light.colors.label=a.data.theme_label_color)}),(a,v)=>(V(),B(st,null,{default:y(()=>[lt(a.$slots,"navbar",{},()=>[s(aa,{color:e.color,"menu-items":e.menuItems},null,8,["color","menu-items"])]),s(sa,{user:c.value},null,8,["user"]),s(Gt),s(da,{modelValue:_.value,"onUpdate:modelValue":v[1]||(v[1]=g=>_.value=g),color:l.value,timeout:ma,location:"top"},{actions:y(()=>[s(J,{color:"white",text:"",onClick:v[0]||(v[0]=g=>_.value=!1)},{default:y(()=>[q(Y(Z(r)("Close")),1)]),_:1})]),default:y(()=>[q(Y(u.value)+" ",1)]),_:1},8,["modelValue","color"])]),_:3}))}};export{Qt as V,Ba as _};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as me}from"./ConfirmDialog-BvqxQsD1.js";import{k as pe,b as se,m as T,o as g,G as j,F as W,e as f,t as V,f as h,c as I,w as c,H as M,q as re,a as l,l as x,v as F,x as P,y as ve,h as b,D as fe,J as ye,I as C,S as Ve,T as Se,B as q,U as be,V as oe,W as ge,X as Q,Y as ke,Z as _e,$ as he,g as U,a0 as xe,a1 as we,a2 as Ie,a3 as Ce}from"./index-DV9Li2cg.js";import{a as L,V as ie}from"./VRow-C_Ydf6yr.js";import{V as B,h as ee,i as Pe,R as te,j as $e,k as Ae,d as Be,f as Te,l as We,n as Re,o as Le,p as je}from"./VAvatar-BAgTUIvX.js";import{u as O}from"./tag-CFK9dzMJ.js";import{V as ae,m as Fe,a as le,b as Oe}from"./VWindowItem-wWSFAGI-.js";import{V as Ee}from"./VContainer-Btam4lk2.js";import{V as ne,m as Ne}from"./VSheet-5VVWtHvs.js";import{c as De}from"./forwardRefs-Cpc3YYl6.js";const Ge={class:"subtitle mt-4 d-flex"},ze={class:"text-h6"},Ue=["onClick"],Me={class:"text-grey"},He={__name:"CreationSummary",props:{sections:{type:Array,default:()=>[]}},emits:["modify-step"],setup(e,{emit:S}){const{$gettext:t}=se(),a=S;function o(s){return s.length?s.join(", "):t("Empty")}return(s,i)=>(g(!0),T(W,null,j(e.sections,(d,v)=>(g(),T(W,{key:v},[f("div",Ge,[f("span",ze,V(d.title),1),f("a",{href:"#",class:"edit-link ml-auto",onClick:n=>a("modify-step",v+1)},V(h(t)("Modify")),9,Ue)]),(g(!0),T(W,null,j(d.items,(n,_)=>(g(),I(ie,{key:_,dense:""},{default:c(()=>[n.value!==void 0?M(s.$slots,`item.${n.name}`,{key:0,item:n,displayList:o},()=>[l(L,null,{default:c(()=>[f("span",Me,V(n.key),1)]),_:2},1024),n.type==="yesno"?(g(),I(L,{key:0,class:"text-right"},{default:c(()=>[x(V(s.$yesno(n.value)),1)]),_:2},1024)):n.type==="list"?(g(),I(L,{key:1,class:"text-right"},{default:c(()=>[x(V(o(n.value)),1)]),_:2},1024)):(g(),I(L,{key:2,class:"text-right"},{default:c(()=>[x(V(n.value),1)]),_:2},1024))],!0):re("",!0)]),_:2},1024))),128))],64))),128))}},Ye=pe(He,[["__scopeId","data-v-6e743e1a"]]),J=Symbol.for("vuetify:v-stepper"),ue=P({color:String,disabled:{type:[Boolean,String],default:!1},prevText:{type:String,default:"$vuetify.stepper.prev"},nextText:{type:String,default:"$vuetify.stepper.next"}},"VStepperActions"),qe=F()({name:"VStepperActions",props:ue(),emits:{"click:prev":()=>!0,"click:next":()=>!0},setup(e,S){let{emit:t,slots:a}=S;const{t:o}=ve();function s(){t("click:prev")}function i(){t("click:next")}return O(()=>{const d={onClick:s},v={onClick:i};return f("div",{class:"v-stepper-actions"},[l(ee,{defaults:{VBtn:{disabled:["prev",!0].includes(e.disabled),text:o(e.prevText),variant:"text"}}},{default:()=>{var n;return[((n=a.prev)==null?void 0:n.call(a,{props:d}))??l(B,d,null)]}}),l(ee,{defaults:{VBtn:{color:e.color,disabled:["next",!0].includes(e.disabled),text:o(e.nextText),variant:"tonal"}}},{default:()=>{var n;return[((n=a.next)==null?void 0:n.call(a,{props:v}))??l(B,v,null)]}})])}),{}}}),ce=Pe("v-stepper-header"),Je=P({color:String,title:String,subtitle:String,complete:Boolean,completeIcon:{type:C,default:"$complete"},editable:Boolean,editIcon:{type:C,default:"$edit"},error:Boolean,errorIcon:{type:C,default:"$error"},icon:C,ripple:{type:[Boolean,Object],default:!0},rules:{type:Array,default:()=>[]}},"StepperItem"),Ke=P({...Je(),...We()},"VStepperItem"),H=F()({name:"VStepperItem",directives:{vRipple:te},props:Ke(),emits:{"group:selected":e=>!0},setup(e,S){let{slots:t}=S;const a=$e(e,J,!0),o=b(()=>(a==null?void 0:a.value.value)??e.value),s=b(()=>e.rules.every(w=>w()===!0)),i=b(()=>!e.disabled&&e.editable),d=b(()=>!e.disabled&&e.editable),v=b(()=>e.error||!s.value),n=b(()=>e.complete||e.rules.length>0&&s.value),_=b(()=>v.value?e.errorIcon:n.value?e.completeIcon:a.isSelected.value&&e.editable?e.editIcon:e.icon),p=b(()=>({canEdit:d.value,hasError:v.value,hasCompleted:n.value,title:e.title,subtitle:e.subtitle,step:o.value,value:e.value}));return O(()=>{var k,r,u;const w=(!a||a.isSelected.value||n.value||d.value)&&!v.value&&!e.disabled,R=!!(e.title!=null||t.title),$=!!(e.subtitle!=null||t.subtitle);function y(){a==null||a.toggle()}return fe(f("button",{class:ye(["v-stepper-item",{"v-stepper-item--complete":n.value,"v-stepper-item--disabled":e.disabled,"v-stepper-item--error":v.value},a==null?void 0:a.selectedClass.value]),disabled:!e.editable,type:"button",onClick:y},[i.value&&Ae(!0,"v-stepper-item"),l(Te,{key:"stepper-avatar",class:"v-stepper-item__avatar",color:w?e.color:void 0,size:24},{default:()=>{var m;return[((m=t.icon)==null?void 0:m.call(t,p.value))??(_.value?l(Be,{icon:_.value},null):o.value)]}}),f("div",{class:"v-stepper-item__content"},[R&&f("div",{key:"title",class:"v-stepper-item__title"},[((k=t.title)==null?void 0:k.call(t,p.value))??e.title]),$&&f("div",{key:"subtitle",class:"v-stepper-item__subtitle"},[((r=t.subtitle)==null?void 0:r.call(t,p.value))??e.subtitle]),(u=t.default)==null?void 0:u.call(t,p.value)])]),[[te,e.ripple&&e.editable,null]])}),{}}}),Xe=P({...be(Fe(),["continuous","nextIcon","prevIcon","showArrows","touch","mandatory"])},"VStepperWindow"),de=F()({name:"VStepperWindow",props:Xe(),emits:{"update:modelValue":e=>!0},setup(e,S){let{slots:t}=S;const a=Ve(J,null),o=Se(e,"modelValue"),s=b({get(){var i;return o.value!=null||!a?o.value:(i=a.items.value.find(d=>a.selected.value.includes(d.id)))==null?void 0:i.value},set(i){o.value=i}});return O(()=>{const i=ae.filterProps(e);return l(ae,q({_as:"VStepperWindow"},i,{modelValue:s.value,"onUpdate:modelValue":d=>s.value=d,class:["v-stepper-window",e.class],style:e.style,mandatory:!1,touch:!1}),t)}),{}}}),Ze=P({...Oe()},"VStepperWindowItem"),Y=F()({name:"VStepperWindowItem",props:Ze(),setup(e,S){let{slots:t}=S;return O(()=>{const a=le.filterProps(e);return l(le,q({_as:"VStepperWindowItem"},a,{class:["v-stepper-window-item",e.class],style:e.style}),t)}),{}}}),Qe=P({altLabels:Boolean,bgColor:String,completeIcon:C,editIcon:C,editable:Boolean,errorIcon:C,hideActions:Boolean,items:{type:Array,default:()=>[]},itemTitle:{type:String,default:"title"},itemValue:{type:String,default:"value"},nonLinear:Boolean,flat:Boolean,...he()},"Stepper"),et=P({...Qe(),...Le({mandatory:"force",selectedClass:"v-stepper-item--selected"}),...Ne(),..._e(ue(),["prevText","nextText"])},"VStepper"),tt=F()({name:"VStepper",props:et(),emits:{"update:modelValue":e=>!0},setup(e,S){let{slots:t}=S;const{items:a,next:o,prev:s,selected:i}=Re(e,J),{displayClasses:d,mobile:v}=oe(e),{completeIcon:n,editIcon:_,errorIcon:p,color:w,editable:R,prevText:$,nextText:y}=ge(e),k=b(()=>e.items.map((m,D)=>{const E=Q(m,e.itemTitle,m),G=Q(m,e.itemValue,D+1);return{title:E,value:G,raw:m}})),r=b(()=>a.value.findIndex(m=>i.value.includes(m.id))),u=b(()=>e.disabled?e.disabled:r.value===0?"prev":r.value===a.value.length-1?"next":!1);return ke({VStepperItem:{editable:R,errorIcon:p,completeIcon:n,editIcon:_,prevText:$,nextText:y},VStepperActions:{color:w,disabled:u,prevText:$,nextText:y}}),O(()=>{const m=ne.filterProps(e),D=!!(t.header||e.items.length),E=e.items.length>0,G=!e.hideActions&&!!(E||t.actions);return l(ne,q(m,{color:e.bgColor,class:["v-stepper",{"v-stepper--alt-labels":e.altLabels,"v-stepper--flat":e.flat,"v-stepper--non-linear":e.nonLinear,"v-stepper--mobile":v.value},d.value,e.class],style:e.style}),{default:()=>{var K,X;return[D&&l(ce,{key:"stepper-header"},{default:()=>[k.value.map((A,N)=>{let{raw:z,...Z}=A;return f(W,null,[!!N&&l(De,null,null),l(H,Z,{default:t[`header-item.${Z.value}`]??t.header,icon:t.icon,title:t.title,subtitle:t.subtitle})])})]}),E&&l(de,{key:"stepper-window"},{default:()=>[k.value.map(A=>l(Y,{value:A.value},{default:()=>{var N,z;return((N=t[`item.${A.value}`])==null?void 0:N.call(t,A))??((z=t.item)==null?void 0:z.call(t,A))}}))]}),(K=t.default)==null?void 0:K.call(t,{prev:s,next:o}),G&&(((X=t.actions)==null?void 0:X.call(t,{next:o,prev:s}))??l(qe,{key:"stepper-actions","onClick:prev":s,"onClick:next":o},t))]}})}),{prev:s,next:o}}}),at={class:"d-flex justify-center inner fill-height"},lt={class:"mb-5 text-h5"},nt={class:"text-grey-darken-1"},st={class:"d-flex justify-end mt-4"},rt={class:"text-center text-h3"},ot={class:"d-flex justify-center mt-8"},Vt={__name:"CreationForm",props:{title:{type:String,default:""},steps:{type:Array,default:()=>[]},summarySections:{type:Array,default:()=>[]},getVFormRef:{type:Function,default:null},formGetter:{type:Function,default:null},validateObject:{type:Function,default:null}},emits:["close","create","validationError"],setup(e,{expose:S,emit:t}){const{smAndDown:a}=oe(),o=xe(),s=e,i=U(1),d=U(!1),v=U(),n=b(()=>o.CREATION_FORM_LOGO_PATH?o.CREATION_FORM_LOGO_PATH:new URL("/assets/Modoboa_RVB-BLEU-SANS-pKrnjsR_.png",import.meta.url).href),_=t,{$gettext:p}=se();async function w(){await v.value.open(p("Warning"),p("If you close this form now, your modifications won't be saved. Do you confirm?"),{color:"warning",agreeLabel:p("Yes"),cancelLabel:p("No")})&&_("close")}async function R(y,k){const r=s.getVFormRef(s.steps[y-1]);if(r!==void 0){const{valid:u}=await r.validate();if(!u)return;if(s.validateObject)try{await s.validateObject(y)}catch(m){_("validationError",y,m.response.data);return}}i.value=k}function $(){d.value=!0,_("create")}return S({working:d}),(y,k)=>(g(),T("div",at,[l(tt,{modelValue:i.value,"onUpdate:modelValue":k[1]||(k[1]=r=>i.value=r),mobile:!h(a),class:"vertical-overflow"},{default:c(()=>[l(h(me),{ref_key:"confirm",ref:v},null,512),l(ce,{class:"align-center px-10"},{default:c(()=>[l(je,{src:n.value,"max-width":"190",class:"hidden-sm-and-down"},null,8,["src"]),(g(!0),T(W,null,j(e.steps,(r,u)=>(g(),I(H,{key:r.name,color:"primary",value:u+1,complete:i.value>u+1},{default:c(()=>[x(V(r.title),1)]),_:2},1032,["value","complete"]))),128)),l(H,{value:e.steps.length+1},{default:c(()=>[x(V(h(p)("Summary")),1)]),_:1},8,["value"]),l(B,{icon:"mdi-close",color:"primary",size:h(a)?"small":"x-large",variant:"text",onClick:w},null,8,["size"])]),_:1}),l(de,{class:"mt-4 d-flex justify-center"},{default:c(()=>[(g(!0),T(W,null,j(e.steps,(r,u)=>(g(),I(Y,{key:r.name,value:u+1,class:"flex-grow-1 ma-10"},{default:c(()=>[l(Ee,{fluid:""},{default:c(()=>[l(ie,{align:"center",justify:"center"},{default:c(()=>[l(L,{cols:"8",align:"start"},{default:c(()=>[f("div",lt,[f("span",nt,V(e.title),1),x(" / "+V(r.title),1)]),M(y.$slots,`form.${r.name}`,{step:r,currentStep:u+1})]),_:2},1024)]),_:2},1024)]),_:2},1024),f("div",st,[u+1>1?(g(),I(B,{key:0,class:"mr-10",variant:"text",onClick:m=>i.value=u},{default:c(()=>[x(V(h(p)("Back")),1)]),_:2},1032,["onClick"])):re("",!0),l(B,{color:"primary",size:"large",onClick:m=>R(u+1,u+2)},{default:c(()=>[x(V(h(p)("Next")),1)]),_:2},1032,["onClick"])])]),_:2},1032,["value"]))),128)),l(Y,{value:e.steps.length+1,class:"flex-grow-0"},{default:c(()=>[f("div",rt,V(h(p)("Summary")),1),l(Ye,{sections:e.summarySections,onModifyStep:k[0]||(k[0]=r=>i.value=r)},we({_:2},[j(y.$slots,(r,u)=>({name:u,fn:c(m=>[M(y.$slots,u,Ie(Ce(m)))])}))]),1032,["sections"]),f("div",ot,[l(B,{color:"primary",size:"large",loading:d.value,onClick:$},{default:c(()=>[x(V(h(p)("Confirm and create")),1)]),_:1},8,["loading"])])]),_:3},8,["value"])]),_:3})]),_:3},8,["modelValue","mobile"])]))}};export{Vt as _};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{k as n,g as p,j as b,c as h,o as c,w as e,a as t,l as _,t as i,e as m,b as g,d as w,m as V,f as k}from"./index-DV9Li2cg.js";import{a as v}from"./admin-CJVLMHh9.js";import{V as x,a as y,b as C}from"./VCard-DFWiFORP.js";import{V as N}from"./VDataTable-D_0_xJTl.js";import{p as T}from"./parameters-Lgiqp7aw.js";import{V as A,a as $}from"./VToolbar-CGwhgdmI.js";import{V as B,a as D}from"./VRow-C_Ydf6yr.js";import"./tag-CFK9dzMJ.js";import"./VAvatar-BAgTUIvX.js";import"./VProgressCircular-CrEXxs7k.js";import"./VSelect-CS51PDEt.js";import"./VTextField-CLwRV0Cb.js";import"./forwardRefs-Cpc3YYl6.js";import"./ssrBoot-BsxW6uW4.js";import"./VMenu-B_dVqOmo.js";import"./VCheckboxBtn-j7di4leN.js";import"./VSelectionControl-DiOqtY38.js";import"./VChip-nZ0uhY7t.js";import"./VTable-KsiZ3cBz.js";import"./filter-D7NrAf6a.js";/* empty css */const F=["href"],M={href:"https://modoboa.org/weblog/",target:"_blank"},W={__name:"NewsFeedWidget",async setup(f){let a,o;const s=p([]),d=[{title:"",key:"title"},{title:"",key:"published",align:"end"}],u=([a,o]=b(()=>v.getNewsFeed()),a=await a,o(),a);return s.value=u.data,(l,I)=>(c(),h(C,{title:l.$gettext("Latest news")},{default:e(()=>[t(x,null,{default:e(()=>[t(N,{headers:d,items:s.value,"hide-default-header":"","hide-default-footer":""},{"item.title":e(({item:r})=>[m("a",{href:r.link,target:"_blank"},i(r.title),9,F)]),"item.published":e(({item:r})=>[_(i(l.$date(r.published)),1)]),_:2},1032,["items"])]),_:1}),t(y,{class:"justify-center"},{default:e(()=>[m("div",null,[m("a",M,i(l.$gettext("Visit the official weblog for more information")),1)])]),_:1})]),_:1},8,["title"]))}},j=n(W,[["__scopeId","data-v-e0975b37"]]),G={__name:"DashboardView",setup(f){const{$gettext:a}=g(),o=p("");return w(async()=>{const s=await T.getGlobalApplication("core");s.data.params.custom_welcome_message?o.value=s.data.params.custom_welcome_message:o.value=a("Welcome to Modoboa")}),(s,d)=>(c(),V("div",null,[t(A,{flat:""},{default:e(()=>[t($,null,{default:e(()=>[_(i(o.value),1)]),_:1})]),_:1}),t(B,null,{default:e(()=>[t(D,{sm:"12",md:"6"},{default:e(()=>[t(k(j))]),_:1})]),_:1})]))}},re=n(G,[["__scopeId","data-v-cbf2b4b5"]]);export{re as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as I,b as L,g as v,d as j,c as r,o,w as e,a as l,e as O,m as y,t as s,f as u,q as V,l as m,N as U,i as B}from"./index-DV9Li2cg.js";import{d as h}from"./domains-nBMR-fRf.js";import{c as $,V as q,a as G,b as H}from"./VCard-DFWiFORP.js";import{V as F}from"./VDataTableVirtual-BwVmkt4u.js";import{V as A,d as C}from"./VAvatar-BAgTUIvX.js";import{V as J}from"./VAutocomplete-Cc4_tcl1.js";import{V as K,a as D}from"./VRow-C_Ydf6yr.js";const P={class:"headline"},Q={key:0,class:"headline"},W={key:1,class:"headline"},X={key:0},oe={__name:"DomainAdminList",props:{domain:{type:Object,default:()=>{}},dialogMode:{type:Boolean,default:!1}},emits:["close"],setup(c,{emit:M}){const x=I(),{$gettext:a}=L(),f=c,R=M,p=v([]),_=v([]),S=v([{title:a("Username"),value:"username"},{title:a("Name"),value:"name"},{title:"",value:"actions",align:"end",sortable:!1}]),k=v(!1),d=v(null);function w(){_.value.push({}),k.value=!0}function E(){k.value=!1,R("close")}function g(n){h.getDomainAdministrators(n.pk).then(t=>{_.value=t.data})}function N(){U.getAll({role:[B.RESELLER,B.DOMAIN_ADMIN],page_size:50}).then(n=>{p.value=n.data.results.filter(t=>_.value.find(i=>i.id===t.pk)===void 0)})}function T(){h.addDomainAdministrator(f.domain.pk,d.value.pk).then(()=>{g(f.domain),p.value=p.value.filter(n=>n.pk!==d.value.pk),d.value=null,k.value=!1,x.displayNotification({msg:a("Administrator added")})})}function z(n){h.removeDomainAdministrator(f.domain.pk,n.id).then(()=>{g(f.domain),N(),x.displayNotification({msg:a("Administrator removed")})})}return j(()=>{g(f.domain),N()}),(n,t)=>(o(),r(H,null,{default:e(()=>[l($,null,{default:e(()=>[O("span",P,[c.dialogMode?(o(),y("div",Q,s(u(a)("Administrators of"))+" "+s(c.domain.name),1)):(o(),y("div",W,s(u(a)("Administrators")),1))])]),_:1}),l(q,null,{default:e(()=>[l(F,{headers:S.value,items:_.value},{"item.username":e(({item:i})=>[i.id?(o(),y("span",X,s(i.username),1)):(o(),r(J,{key:1,modelValue:d.value,"onUpdate:modelValue":t[0]||(t[0]=b=>d.value=b),label:u(a)("Select an account"),items:p.value,variant:"outlined","item-title":"username",class:"mt-5","return-object":""},{append:e(()=>[d.value?(o(),r(A,{key:0,variant:"text",color:"primary",size:"x-large",onClick:T},{default:e(()=>[l(C,null,{default:e(()=>t[1]||(t[1]=[m("mdi-content-save")])),_:1,__:[1]})]),_:1})):V("",!0)]),_:1},8,["modelValue","label","items"]))]),"item.name":e(({item:i})=>[m(s(i.first_name)+" "+s(i.last_name),1)]),"item.actions":e(({item:i})=>[i.id?(o(),r(A,{key:0,variant:"text",color:"red",title:u(a)("Remove this administrator"),size:"x-large",onClick:b=>z(i)},{default:e(()=>[l(C,null,{default:e(()=>t[2]||(t[2]=[m("mdi-delete-outline")])),_:1,__:[2]})]),_:2},1032,["title","onClick"])):V("",!0)]),_:2},1032,["headers","items"])]),_:1}),l(G,null,{default:e(()=>[l(K,null,{default:e(()=>[l(D,{align:c.dialogMode?"left":"right"},{default:e(()=>[k.value?V("",!0):(o(),r(A,{key:0,color:"primary",variant:"outlined",onClick:w},{default:e(()=>[l(C,{small:""},{default:e(()=>t[3]||(t[3]=[m("mdi-plus")])),_:1,__:[3]}),m(" "+s(u(a)("Add administrator")),1)]),_:1}))]),_:1},8,["align"]),c.dialogMode?(o(),r(D,{key:0,align:"right"},{default:e(()=>[l(A,{color:"grey darken-1",variant:"text",onClick:E},{default:e(()=>[m(s(u(a)("Close")),1)]),_:1})]),_:1})):V("",!0)]),_:1})]),_:1})]),_:1}))}};export{oe as _};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{_ as _e}from"./DomainAdminList-CsWUNKVk.js";import{c as q}from"./colors-DoZdCu1D.js";import{b as L,m as h,o as n,e as r,a as t,l as u,t as l,J as re,w as e,F as K,G as X,f as o,g as k,K as Q,h as B,d as pe,L as te,r as ue,c as f,q as C,k as ie,n as ye,j as ge,M as ke}from"./index-DV9Li2cg.js";import{f as G,V as N,d as be}from"./VAvatar-BAgTUIvX.js";import{V as he}from"./VTable-KsiZ3cBz.js";import{d as O}from"./domains-nBMR-fRf.js";import{V as se,a as de}from"./VToolbar-CGwhgdmI.js";import{V as le}from"./VSpacer-C6PZ3X24.js";import{V as F,b as R,c as E,a as ce}from"./VCard-DFWiFORP.js";import{V as b,a as c}from"./VRow-C_Ydf6yr.js";import{V as xe}from"./VSheet-5VVWtHvs.js";import{V as we,a as Ve,b as $e}from"./VExpansionPanels-B5D6GOa3.js";import{V as A}from"./VAlert-B7mzOJIO.js";import{_ as De}from"./ConfirmDialog-BvqxQsD1.js";import{V as D}from"./VChip-nZ0uhY7t.js";import{V as Ce}from"./VDataTableVirtual-BwVmkt4u.js";import{V as oe}from"./VDialog-CZqM2Ofu.js";import{t as Me}from"./transports-TO08iTXJ.js";import{L as Ne}from"./LoadingData-CVD2Aen8.js";import{_ as Ie}from"./ResourcesForm-D87PHeH0.js";import{T as ne}from"./TimeSerieChart-C6j0uYR_.js";import{V as Se,a as Te,b as Z,c as ee}from"./VTabs-tNrJIYO0.js";import"./VAutocomplete-Cc4_tcl1.js";import"./VSelect-CS51PDEt.js";import"./VTextField-CLwRV0Cb.js";import"./tag-CFK9dzMJ.js";import"./VProgressCircular-CrEXxs7k.js";import"./forwardRefs-Cpc3YYl6.js";import"./ssrBoot-BsxW6uW4.js";import"./VMenu-B_dVqOmo.js";import"./VCheckboxBtn-j7di4leN.js";import"./VSelectionControl-DiOqtY38.js";import"./filter-D7NrAf6a.js";/* empty css */import"./VDataTable-D_0_xJTl.js";import"./VContainer-Btam4lk2.js";import"./VForm-CpoZf60D.js";import"./VPicker-CXkIGEze.js";import"./VWindowItem-wWSFAGI-.js";const Ae={class:"text-h6"},Ke={width:"40%"},Pe={class:"text-white"},Be={class:"text-white"},Fe={class:"text-white"},Re={class:"text-white"},W={__name:"DmarcSourceTable",props:{title:{type:String,default:""},color:{type:String,default:""},total:{type:Number,default:null},sources:{type:Object,default:null}},setup(s){const{$gettext:a}=L();return(p,i)=>(n(),h("div",null,[r("div",Ae,[u(l(s.title)+" ",1),r("span",{class:re(`text-${s.color}-lighten-2`)},l(s.total),3)]),t(he,null,{default:e(()=>[r("tbody",null,[(n(!0),h(K,null,X(s.sources,(d,v)=>(n(),h(K,{key:v},[r("tr",null,[r("th",Ke,l(v),1),r("th",null,l(o(a)("Total")),1),i[0]||(i[0]=r("th",null,"SPF",-1)),i[1]||(i[1]=r("th",null,"DKIM",-1))]),(n(!0),h(K,null,X(d,(_,w)=>(n(),h("tr",{key:w},[r("td",null,l(w),1),r("td",null,l(_.total),1),r("td",null,[t(G,{color:"green lighten-2",size:"24"},{default:e(()=>[r("span",Pe,l(_.spf.success),1)]),_:2},1024),t(G,{color:"red lighten-2 ml-1",size:"24"},{default:e(()=>[r("span",Be,l(_.spf.failure),1)]),_:2},1024)]),r("td",null,[t(G,{color:"green lighten-2",size:"24"},{default:e(()=>[r("span",Fe,l(_.dkim.success),1)]),_:2},1024),t(G,{color:"red lighten-2 ml-1",size:"24"},{default:e(()=>[r("span",Re,l(_.dkim.failure),1)]),_:2},1024)])]))),128))],64))),128))])]),_:1})]))}},je={key:0},ze={class:"mx-2"},Le={class:"text-subtitle-1"},Oe={key:1},Ee={__name:"DmarcAligmentChart",props:{domain:{type:Object,default:()=>null}},setup(s){const{$gettext:a}=L(),p=["aligned","trusted","forwarded","failed"],i=s,d=k({colors:[q.green.lighten2,q.orange.lighten2,q.blue.lighten2,q.red.lighten2],labels:[a("Fully aligned"),a("Partially aligned"),a("Forwarded"),a("Failed")],legend:{position:"bottom"}}),v=k(null),_=k([{key:"total",label:a("Total"),color:"primary lighten-2"},{key:"aligned",label:a("Fully aligned"),color:"green lighten-2"},{key:"trusted",label:a("Partially aligned"),color:"orange lighten-2"},{key:"forwarded",label:a("Forwarded"),color:"blue lighten-2"},{key:"failed",label:a("Failed"),color:"red lighten-2"}]),w=Q.now(),m=k(w.year),y=k(w.weekNumber),V=k(!1),P=k(!1),U=k(null),j=k([]),I=k({}),Y=B(()=>Q.fromObject({weekYear:m.value,weekNumber:y.value}).startOf("week")),S=B(()=>Q.fromObject({weekYear:m.value,weekNumber:y.value}).endOf("week"));function g(z){let x="";for(const T of z.split(" "))x!==""&&(x+=" "),x+="text-"+T;return x}function H(){y.value===52?(m.value+=1,y.value=1):y.value+=1}function M(){y.value===1?(m.value-=1,y.value=52):y.value-=1}function J(){if(P.value)return;const z=`${m.value}-${y.value}`;P.value=!0,O.getDomainDmarcAlignment(i.domain.pk,z).then(x=>{if(P.value=!1,x.status===204){V.value=!0;return}I.value={total:0},v.value=x.data,j.value=[];for(const T of p){let $=0;for(const ae in x.data[T])for(const ve in x.data[T][ae])$+=x.data[T][ae][ve].total;I.value.total+=$,I.value[T]=$,j.value.push($)}})}return pe(()=>J()),te(y,()=>{J()}),te(m,()=>{J()}),(z,x)=>{const T=ue("apexchart");return v.value?(n(),h("div",je,[t(R,null,{default:e(()=>[t(se,{dense:"",elevation:"0",class:"mr-2"},{default:e(()=>[t(de,null,{default:e(()=>[u(l(o(a)("Alignment")),1)]),_:1}),t(le),t(N,{icon:"mdi-arrow-left",size:"x-small",onClick:M}),r("span",ze,l(Y.value.toLocaleString())+" - "+l(S.value.toLocaleString()),1),t(N,{icon:"mdi-arrow-right",size:"x-small",onClick:H})]),_:1}),t(F,null,{default:e(()=>[t(b,null,{default:e(()=>[t(c,{cols:"5"},{default:e(()=>[j.value?(n(),f(T,{key:0,type:"pie",height:"350",options:d.value,series:j.value},null,8,["options","series"])):C("",!0)]),_:1}),t(c,{cols:"7"},{default:e(()=>[t(b,null,{default:e(()=>[(n(!0),h(K,null,X(_.value,$=>(n(),f(c,{key:$.key,cols:"6"},{default:e(()=>[t(xe,{outlined:"",color:$.color,rounded:""},{default:e(()=>[t(R,{outlined:"",class:"pa-10 text-center"},{default:e(()=>[r("span",{class:re("text-h4 "+g($.color))},l(I.value[$.key]),3),x[1]||(x[1]=r("br",null,null,-1)),r("span",Le,l($.label),1)]),_:2,__:[1]},1024)]),_:2},1032,["color"])]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),t($e,{modelValue:U.value,"onUpdate:modelValue":x[0]||(x[0]=$=>U.value=$),class:"mt-2"},{default:e(()=>[t(we,{title:o(a)("Detail")},{default:e(()=>[t(Ve,null,{default:e(()=>[t(W,{title:o(a)("Trusted sources"),color:"green",total:I.value.aligned,sources:v.value.aligned},null,8,["title","total","sources"]),t(W,{title:o(a)("Partially trusted sources / Forwarders"),color:"orange",total:I.value.trusted,sources:v.value.trusted,class:"mt-4"},null,8,["title","total","sources"]),t(W,{title:o(a)("Forwarders with ARC"),color:"blue",total:I.value.forwarded,sources:v.value.forwarded,class:"mt-4"},null,8,["title","total","sources"]),t(W,{title:o(a)("Unknown sources / Threats"),color:"red",total:I.value.failed,sources:v.value.failed,class:"mt-4"},null,8,["title","total","sources"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"])])):(n(),h("div",Oe,[V.value?(n(),f(A,{key:0,type:"info",variant:"outlined",prominent:"",border:"start",class:"mt-6"},{default:e(()=>[r("div",null,l(o(a)("DMARC support does not seem to be enabled for this domain.")),1),r("div",null,l(o(a)("If you configured it recently, please wait for the first report to be received and processed.")),1)]),_:1})):C("",!0)]))}}},Ue={id:"dkimdns",class:"dkim"},me={__name:"DKIMKeyViewer",props:{domain:{type:Object,default:null}},setup(s){const a=s,p=B(()=>{let d=`v=DKIM1;k=rsa;p=${a.domain.dkim_public_key}`;const v=[];for(;d.length>0;)if(d.length>74)v.push(` "${d.substring(0,74)}"`),d=d.substring(74);else{v.push(` "${d}"`);break}return v.join(`
|
|
2
|
-
`)});function i(){navigator.clipboard.writeText(document.getElementById("dkimdns").textContent)}return(d,v)=>(n(),h("button",{class:"dkimbutton",onClick:v[0]||(v[0]=_=>i())},[r("pre",Ue,l(s.domain.dkim_key_selector)+"._domainkey."+l(s.domain.name)+". IN TXT ("+l(p.value)+`)
|
|
3
|
-
}})`,1)]))}},qe={class:"headline"},Ge={id:"dkimpub",class:"dkim"},We={__name:"DomainDKIMKey",props:{domain:{type:Object,default:null}},emits:["close"],setup(s,{emit:a}){const{$gettext:p}=L(),i=a;function d(){navigator.clipboard.writeText(document.getElementById("dkimpub").textContent)}return(v,_)=>(n(),f(R,null,{default:e(()=>[t(E,null,{default:e(()=>[r("span",qe,l(o(p)("DKIM public key for"))+" "+l(s.domain.name),1)]),_:1}),t(F,null,{default:e(()=>[r("p",null,l(o(p)("Raw format. Click to copy")),1),t(A,{border:"start","colored-border":"","border-color":"primary lighten-3",elevation:"2",dense:""},{default:e(()=>[r("button",{class:"dkimbutton",onClick:_[0]||(_[0]=w=>d())},[r("pre",Ge,l(s.domain.dkim_public_key),1)])]),_:1})]),_:1}),t(F,null,{default:e(()=>[r("p",null,l(o(p)("Bind/named format. Click to copy")),1),t(A,{border:"start","colored-border":"","border-color":"primary lighten-3",elevation:"2",dense:""},{default:e(()=>[t(me,{domain:s.domain},null,8,["domain"])]),_:1})]),_:1}),t(ce,null,{default:e(()=>[t(le),t(N,{onClick:_[1]||(_[1]=w=>i("close"))},{default:e(()=>[u(l(o(p)("Close")),1)]),_:1})]),_:1})]),_:1}))}},Xe={class:"text-subtitle-1 text-grey-darken-2 mb-4"},Ye={class:"text-h6"},He={__name:"DomainDNSConfig",props:{domain:{type:Object,default:null}},emits:["close"],setup(s,{emit:a}){const p=a;return(i,d)=>(n(),f(R,null,{default:e(()=>[t(E,{class:"text-h5"},{default:e(()=>[r("span",null,l(i.$gettext("DNS configuration for "))+" "+l(s.domain.name),1)]),_:1}),t(F,null,{default:e(()=>[r("p",Xe,l(i.$gettext("Here is an example of DNS configuration (bind format). Replace values between [ ] by the appropriate ones.")),1),t(A,{class:"mb-4",border:"start","border-color":"primary lighten-3",elevation:"2",color:"white"},{default:e(()=>[d[1]||(d[1]=r("div",{class:"text-h6"},"MX",-1)),r("pre",null,[u("mail."+l(s.domain.name)+". IN A ",1),r("strong",null,"["+l(i.$gettext("IP address of your Modoboa server"))+"]",1),u(`
|
|
4
|
-
@ IN MX 10 mail.`+l(s.domain.name)+".",1)])]),_:1,__:[1]}),t(A,{class:"mb-4",border:"start","border-color":"primary lighten-3",elevation:"2",dense:"",color:"white"},{default:e(()=>d[2]||(d[2]=[r("div",{class:"text-h6"},"SPF",-1),r("pre",null,'@ IN TXT "v=spf1 mx ~all"',-1)])),_:1,__:[2]}),s.domain.enable_dkim&&s.domain.dkim_public_key?(n(),f(A,{key:0,class:"mb-4",border:"start","border-color":"primary lighten-3",elevation:"2",dense:"",color:"white"},{default:e(()=>[d[3]||(d[3]=r("div",{class:"text-h6"},"DKIM",-1)),t(me,{domain:s.domain},null,8,["domain"])]),_:1,__:[3]})):C("",!0),t(A,{class:"mb-4",border:"start","border-color":"primary lighten-3",elevation:"2",dense:"",color:"white"},{default:e(()=>[d[4]||(d[4]=r("div",{class:"text-h6"},"DMARC",-1)),r("pre",null,"_dmarc."+l(s.domain.name)+'. IN TXT "v=DMARC1; p=quarantine; pct=100;"',1)]),_:1,__:[4]}),t(A,{class:"mb-4",border:"start","border-color":"primary lighten-3",elevation:"2",dense:"",color:"white"},{default:e(()=>[r("div",Ye,l(i.$gettext("Auto configuration")),1),r("pre",null,[u("autoconfig."+l(s.domain.name)+". IN CNAME ",1),r("strong",null,"["+l(i.$gettext("hostname of your automx server"))+"]",1),u(`
|
|
5
|
-
autodiscover.`+l(s.domain.name)+". IN CNAME ",1),r("strong",null,"["+l(i.$gettext("hostname of your automx server"))+"]",1)])]),_:1})]),_:1}),t(ce,null,{default:e(()=>[t(le),t(N,{onClick:d[0]||(d[0]=v=>p("close"))},{default:e(()=>[u(l(i.$gettext("Close")),1)]),_:1})]),_:1})]),_:1}))}},Je=ie(He,[["__scopeId","data-v-506783e1"]]),Qe={class:"overline"},Ze={class:"overline"},et={key:4,class:"d-flex align-center flex-nowrap mt-4"},tt={class:"text-subtitle-2"},lt={class:"ml-6"},at={key:0},ot={key:1},nt={__name:"DNSDetail",props:{modelValue:{type:Object,default:null}},setup(s){const{$gettext:a}=L(),p=ye(),i=s,d=B(()=>i.modelValue),v=k(),_=k({}),w=k([{title:a("Name"),value:"name"},{title:a("Address"),value:"address"},{title:a("Updated"),value:"updated"}]),m=k(!1),y=k(!1),V=k(!1);function P(){navigator.clipboard.writeText(d.value.dkim_public_key),p.displayNotification({msg:a("DKIM key copied to clipboard"),type:"success"})}function U(){const S={dkim_private_key_path:""};O.patchDomain(d.value.pk,S).then(()=>{p.displayNotification({msg:a("A new key will be generated soon. Refresh the page in a moment to see it."),type:"success"}),d.value.dkim_private_key_path="",m.value=!1}).catch(()=>{m.value=!1})}function j(){m.value=!1}async function I(){m.value=!0,O.getDomainDNSDetail(d.value.pk).then(async S=>{_.value=S.data,await v.value.open(a("warning"),a("DKIM key does not seem to be generated yet or has failed. Do you want to requeue the job?"),{color:"warning",cancelLabel:a("No"),agreeLabel:a("Yes")})?U():j()})}function Y(){v.value.open(a("Warning"),a("DKIM keys already exist for this domain. Do you want to overwrite them?"),{color:"error",cancelLabel:a("No"),agreeLabel:a("Yes")})}return te(d,S=>{S&&O.getDomainDNSDetail(S.pk).then(g=>{_.value=g.data})},{immediate:!0}),(S,g)=>{const H=ue("translate");return d.value?(n(),f(R,{key:0},{default:e(()=>[t(E,null,{default:e(()=>[g[6]||(g[6]=r("span",null," DNS ",-1)),t(N,{class:"ml-2",icon:"mdi-information-outline",title:o(a)("DNS configuration help"),variant:"text",density:"compact",onClick:g[0]||(g[0]=M=>y.value=!0)},null,8,["title"])]),_:1,__:[6]}),t(F,null,{default:e(()=>[t(H,{class:"overline"},{default:e(()=>g[7]||(g[7]=[u("MX records")])),_:1,__:[7]}),d.value.dns_global_status=="pending"?(n(),f(b,{key:0},{default:e(()=>[t(c,null,{default:e(()=>[t(D,{color:"info",size:"small"},{default:e(()=>[u(l(o(a)("Pending")),1)]),_:1})]),_:1})]),_:1})):(n(),f(Ce,{key:1,headers:w.value,items:_.value.mx_records},{"item.updated":e(({item:M})=>[u(l(S.$date(M.updated)),1)]),_:2},1032,["headers","items"])),r("div",Qe,l(o(a)("Auto configuration")),1),d.value.dns_global_status=="pending"?(n(),f(b,{key:2},{default:e(()=>[t(c,null,{default:e(()=>[t(D,{color:"info",size:"small"},{default:e(()=>[u(l(o(a)("Pending")),1)]),_:1})]),_:1})]),_:1})):(n(),h(K,{key:3},[t(b,null,{default:e(()=>[t(c,null,{default:e(()=>[_.value.autoconfig_record?(n(),f(D,{key:0,color:"success"},{default:e(()=>[u(l(o(a)("autoconfig record (Mozilla): %{ value }",{value:_.value.autoconfig_record.value})),1)]),_:1})):(n(),f(D,{key:1,color:"warning"},{default:e(()=>[u(l(o(a)("autoconfig record (Mozilla) not found")),1)]),_:1}))]),_:1}),t(c,null,{default:e(()=>[_.value.autodiscover_record?(n(),f(D,{key:0,color:"success"},{default:e(()=>[u(l(o(a)("autodiscover record (Microsoft): %{ value }",{value:_.value.autodiscover_record.value})),1)]),_:1})):(n(),f(D,{key:1,color:"warning"},{default:e(()=>[u(l(o(a)("autodiscover record (Microsoft) not found")),1)]),_:1}))]),_:1})]),_:1}),r("div",Ze,l(o(a)("Authentication")),1),t(b,null,{default:e(()=>[t(c,null,{default:e(()=>[_.value.spf_record?(n(),f(D,{key:0,color:"success"},{default:e(()=>[u(l(o(a)("SPF record found")),1)]),_:1})):(n(),f(D,{key:1,color:"error"},{default:e(()=>[u(l(o(a)("SPF record not found")),1)]),_:1}))]),_:1}),t(c,null,{default:e(()=>[_.value.dkim_record?(n(),f(D,{key:0,color:"success"},{default:e(()=>[u(l(o(a)("DKIM record found")),1)]),_:1})):(n(),f(D,{key:1,color:"error"},{default:e(()=>[u(l(o(a)("DKIM record not found")),1)]),_:1}))]),_:1}),t(c,null,{default:e(()=>[_.value.dmarc_record?(n(),f(D,{key:0,color:"success"},{default:e(()=>[u(l(o(a)("DMARC record found")),1)]),_:1})):(n(),f(D,{key:1,color:"error"},{default:e(()=>[u(l(o(a)("DMARC record not found")),1)]),_:1}))]),_:1})]),_:1})],64)),d.value.enable_dkim?(n(),h("div",et,[r("div",tt,l(o(a)("DKIM key")),1),r("div",lt,[d.value.dkim_private_key_path&&d.value.dkim_public_key?(n(),h("div",at,[t(N,{color:"primary",size:"small",onClick:g[1]||(g[1]=M=>V.value=!0)},{default:e(()=>[u(l(o(a)("Show key")),1)]),_:1}),t(N,{icon:"mdi-content-copy",variant:"text",class:"ml-2",title:o(a)("Copy key to clipboard"),onClick:P},null,8,["title"]),t(N,{icon:"mdi-refresh",title:o(a)("Generate a new DKIM key"),variant:"text",loading:m.value,onClick:Y},null,8,["title","loading"])])):(n(),h("div",ot,[u(l(o(a)("Not generated"))+" ",1),t(N,{icon:"mdi-reload",color:"primary",variant:"text",loading:m.value,onClick:I},null,8,["loading"])]))])])):C("",!0)]),_:1}),t(oe,{modelValue:y.value,"onUpdate:modelValue":g[3]||(g[3]=M=>y.value=M),"max-width":"800px",persistent:""},{default:e(()=>[t(Je,{domain:d.value,onClose:g[2]||(g[2]=M=>y.value=!1)},null,8,["domain"])]),_:1},8,["modelValue"]),t(oe,{modelValue:V.value,"onUpdate:modelValue":g[5]||(g[5]=M=>V.value=M),"max-width":"800px",persistent:""},{default:e(()=>[t(We,{domain:d.value,onClose:g[4]||(g[4]=M=>V.value=!1)},null,8,["domain"])]),_:1},8,["modelValue"]),t(De,{ref_key:"dialog",ref:v},null,512)]),_:1})):C("",!0)}}},fe={__name:"BooleanIcon",props:{value:{type:Boolean}},setup(s){const a=s,p=B(()=>a.value?"mdi-check-circle":"mdi-close-circle"),i=B(()=>a.value?"success":"error");return(d,v)=>(n(),f(be,{icon:p.value,color:i.value},null,8,["icon","color"]))}},rt={class:"headline"},ut={__name:"DomainSummary",props:{domain:{type:Object,default:null}},setup(s){const{$gettext:a}=L();return(p,i)=>s.domain?(n(),f(R,{key:0},{default:e(()=>[t(E,null,{default:e(()=>[r("div",rt,l(o(a)("General information")),1)]),_:1}),t(F,null,{default:e(()=>[t(b,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[u(l(o(a)("Creation date")),1)]),_:1}),t(c,{cols:"6"},{default:e(()=>[u(l(p.$date(s.domain.creation)),1)]),_:1})]),_:1}),t(b,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[u(l(o(a)("Last modification date")),1)]),_:1}),t(c,{cols:"6"},{default:e(()=>[u(l(p.$date(s.domain.last_modification)),1)]),_:1})]),_:1}),t(b,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[u(l(o(a)("Quota")),1)]),_:1}),s.domain.quota==="0"?(n(),f(c,{key:0,cols:"6"},{default:e(()=>[u(l(o(a)("Unlimited")),1)]),_:1})):(n(),f(c,{key:1,cols:"6"},{default:e(()=>[u(l(s.domain.quota)+" "+l(o(a)("MB")),1)]),_:1}))]),_:1}),t(b,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[u(l(o(a)("Default mailbox quota")),1)]),_:1}),s.domain.default_mailbox_quota==="0"?(n(),f(c,{key:0,cols:"6"},{default:e(()=>[u(l(o(a)("Unlimited")),1)]),_:1})):(n(),f(c,{key:1,cols:"6"},{default:e(()=>[u(l(s.domain.default_mailbox_quota)+" MB",1)]),_:1}))]),_:1}),t(b,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[u(l(o(a)("Daily sending limit")),1)]),_:1}),s.domain.message_limit!==void 0&&s.domain.message_limit!==null?(n(),f(c,{key:0,cols:"6"},{default:e(()=>[u(l(s.domain.message_limit)+" "+l(o(a)("messages")),1)]),_:1})):(n(),f(c,{key:1,cols:"6"},{default:e(()=>[u(l(o(a)("Unlimited")),1)]),_:1}))]),_:1}),t(b,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[u(l(o(a)("Mailboxes")),1)]),_:1}),t(c,{cols:"6"},{default:e(()=>[u(l(s.domain.mailbox_count),1)]),_:1})]),_:1}),t(b,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[u(l(o(a)("Aliases")),1)]),_:1}),t(c,{cols:"6"},{default:e(()=>[u(l(s.domain.mbalias_count),1)]),_:1})]),_:1}),t(b,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[u(l(o(a)("Enabled")),1)]),_:1}),t(c,{cols:"6"},{default:e(()=>[t(o(fe),{value:s.domain.enabled,variant:"flat"},null,8,["value"])]),_:1})]),_:1})]),_:1})]),_:1})):C("",!0)}},it={class:"headline"},st={__name:"RelayDomainSummary",props:{domain:{type:Object,default:null}},async setup(s){let a,p;const i=s,d=k([]),v=B(()=>d.value.find(m=>m.name===i.domain.transport.service)),_=m=>i.domain.transport.settings[`${v.value.name}_${m}`],w=([a,p]=ge(()=>Me.getAll()),a=await a,p(),a);return d.value=w.data,(m,y)=>i.domain?(n(),f(R,{key:0},{default:e(()=>[t(E,null,{default:e(()=>[r("div",it,l(m.$gettext("Transport")),1)]),_:1}),t(F,null,{default:e(()=>[t(b,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[u(l(m.$gettext("Service")),1)]),_:1}),t(c,{cols:"6"},{default:e(()=>[u(l(i.domain.transport.service),1)]),_:1})]),_:1}),v.value?(n(!0),h(K,{key:0},X(v.value.settings,(V,P)=>(n(),f(b,{key:P},{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[u(l(V.label),1)]),_:2},1024),t(c,{cols:"6"},{default:e(()=>[V.type!=="boolean"?(n(),h(K,{key:0},[u(l(_(V.name)),1)],64)):(n(),f(o(fe),{key:1,value:_(V.name),variant:"flat"},null,8,["value"]))]),_:2},1024)]),_:2},1024))),128)):C("",!0)]),_:1})]),_:1})):C("",!0)}},dt={key:1},ct={__name:"DomainView",setup(s){const{$gettext:a}=L(),p=ke(),i=k(null),d=k({}),v=k(null);function _(){O.getDomain(p.params.id).then(w=>{i.value=w.data})}return _(),(w,m)=>i.value?(n(),h("div",dt,[t(se,{flat:""},{default:e(()=>[t(de,null,{default:e(()=>[u(l(o(a)("Domain"))+" "+l(i.value.name)+" ",1),t(N,{color:"primary",icon:"mdi-circle-edit-outline",to:{name:"DomainEdit",params:{id:i.value.pk}}},null,8,["to"]),t(N,{color:"primary",icon:"mdi-reload",onClick:m[0]||(m[0]=y=>_())})]),_:1})]),_:1}),t(Se,{modelValue:v.value,"onUpdate:modelValue":m[1]||(m[1]=y=>v.value=y),class:"mb-4",color:"primary"},{default:e(()=>[t(Z,null,{default:e(()=>[u(l(o(a)("General")),1)]),_:1}),t(Z,null,{default:e(()=>[u(l(o(a)("Statistics")),1)]),_:1}),t(Z,null,{default:e(()=>[u(l(o(a)("DMARC")),1)]),_:1})]),_:1},8,["modelValue"]),t(Te,{modelValue:v.value,"onUpdate:modelValue":m[3]||(m[3]=y=>v.value=y)},{default:e(()=>[t(ee,null,{default:e(()=>[t(b,null,{default:e(()=>[t(c,{cols:"12",md:"6"},{default:e(()=>[t(ut,{domain:i.value},null,8,["domain"]),m[5]||(m[5]=r("div",{class:"mt-4"},null,-1)),i.value.type==="relaydomain"?(n(),h(K,{key:0},[t(st,{domain:i.value},null,8,["domain"]),m[4]||(m[4]=r("div",{class:"mt-4"},null,-1))],64)):C("",!0),t(_e,{domain:i.value},null,8,["domain"])]),_:1,__:[5]}),t(c,{cols:"12",md:"6"},{default:e(()=>[t(nt,{modelValue:i.value,"onUpdate:modelValue":m[2]||(m[2]=y=>i.value=y)},null,8,["modelValue"]),m[6]||(m[6]=r("div",{class:"mt-4"},null,-1)),d.value.params&&d.value.params.enable_domain_limits&&i.value.resources&&i.value.resources.length?(n(),f(Ie,{key:0,resources:i.value.resources},null,8,["resources"])):C("",!0)]),_:1,__:[6]})]),_:1})]),_:1}),t(ee,null,{default:e(()=>[t(b,null,{default:e(()=>[t(c,{cols:"12"},{default:e(()=>[i.value.name?(n(),f(ne,{key:0,domain:i.value,"graphic-set":"mailtraffic","graphic-name":"averagetraffic"},null,8,["domain"])):C("",!0)]),_:1}),t(c,{cols:"12"},{default:e(()=>[i.value.name?(n(),f(ne,{key:0,domain:i.value,"graphic-set":"mailtraffic","graphic-name":"averagetrafficsize"},null,8,["domain"])):C("",!0)]),_:1})]),_:1})]),_:1}),t(ee,null,{default:e(()=>[t(Ee,{domain:i.value},null,8,["domain"])]),_:1})]),_:1},8,["modelValue"])])):(n(),f(Ne,{key:0}))}},Jt=ie(ct,[["__scopeId","data-v-628417a7"]]);export{Jt as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as U}from"./domains-nBMR-fRf.js";import{b as M,n as te,g as m,h as B,d as le,c as A,o as C,w as l,a,p as xe,e as v,t as V,f as u,q as E,l as w,s as me,m as q,F as de,v as Ce,x as De,y as we,z as he,A as Ae,B as O,C as Se,I as $e,D as Ne,E as Ue,k as ce,G as Fe,r as Te,H as Le}from"./index-DV9Li2cg.js";import{u as fe}from"./permissions-mL5hLHcW.js";import{V as pe,r as Z}from"./VForm-CpoZf60D.js";import{c as qe,V as Be,a as Re,b as ve}from"./VCard-DFWiFORP.js";import{V as oe}from"./VTextField-CLwRV0Cb.js";import{V as Pe}from"./VSelect-CS51PDEt.js";import{V as J}from"./VSwitch-Chg5o-Cp.js";import{V as Ee}from"./VSpacer-C6PZ3X24.js";import{V as N,u as Oe,a as Me,m as Ie,b as ze,c as Ge,M as Je,d as _e,e as ie}from"./VAvatar-BAgTUIvX.js";import{p as je}from"./parameters-Lgiqp7aw.js";import{_ as We}from"./CreationForm-C9Kh05ax.js";import{_ as Ke,a as Ye,b as He,c as Qe}from"./DomainTransportForm-DPnPGBOp.js";import{_ as Xe}from"./AccountPasswordSubForm-g3IEGrgM.js";import{a as P,V as se}from"./VRow-C_Ydf6yr.js";import{_ as Ze}from"./DomainAdminList-CsWUNKVk.js";import{_ as ea}from"./ConfirmDialog-BvqxQsD1.js";import{V as ee}from"./VChip-nZ0uhY7t.js";import{_ as aa}from"./MenuItems-kHCMzR5E.js";import{V as ta}from"./VCheckboxBtn-j7di4leN.js";import{V as ae}from"./VMenu-B_dVqOmo.js";import{u as la,a as oa}from"./VProgressCircular-CrEXxs7k.js";import{u as na,m as ia,a as sa}from"./tag-CFK9dzMJ.js";import{V as ye,a as ra}from"./VToolbar-CGwhgdmI.js";import{V as be,a as re,b as ue}from"./forwardRefs-Cpc3YYl6.js";import{V as ua}from"./VDataTable-D_0_xJTl.js";import{V as ma}from"./VCheckbox-CKsH_vq3.js";import{V as I}from"./VDialog-CZqM2Ofu.js";import{_ as da,i as ca}from"./importExport-Dn9vYw7T.js";import"./VSelectionControl-DiOqtY38.js";/* empty css */import"./VWindowItem-wWSFAGI-.js";import"./ssrBoot-BsxW6uW4.js";import"./VContainer-Btam4lk2.js";import"./VSheet-5VVWtHvs.js";import"./ChoiceField-7eU7c_rI.js";import"./transports-TO08iTXJ.js";import"./VAutocomplete-Cc4_tcl1.js";import"./filter-D7NrAf6a.js";import"./VAlert-B7mzOJIO.js";import"./VDataTableVirtual-BwVmkt4u.js";import"./VTable-KsiZ3cBz.js";import"./VFileInput-Cv9DIPki.js";const fa={class:"headline"},pa={class:"m-label"},va={class:"m-label"},ge={__name:"DomainAliasForm",props:{domainAlias:{type:Object,default:()=>null}},emits:["close"],setup(r,{emit:_}){const{$gettext:e}=M(),f=_,{displayNotification:D}=te(),y=r,h=m([]),t=m({enabled:!0}),d=m(!1),S=m(),k=B(()=>y.domainAlias?e("Update"):e("Add")),p=B(()=>y.domainAlias?e("Edit domain alias"):e("Add a new domain alias"));async function g(){d.value=!0;try{await U.deleteDomainAlias(y.domainAlias.pk),D({msg:e("Domain alias deleted")}),f("close")}finally{d.value=!1}}async function $(){const{valid:x}=await S.value.validate();if(x){d.value=!0;try{if(!t.value.pk)await U.createDomainAlias(t.value),D({msg:e("Domain alias created")});else{const i=JSON.parse(JSON.stringify(t.value));await U.updateDomainAlias(y.domainAlias.pk,i),D({msg:e("Domain alias updated")})}f("close")}finally{d.value=!1}}}return le(()=>{U.getDomains().then(x=>{h.value=x.data}),y.domainAlias&&(t.value=JSON.parse(JSON.stringify(y.domainAlias)))}),(x,i)=>(C(),A(ve,null,{default:l(()=>[a(pe,{ref_key:"vFormRef",ref:S,onSubmit:xe($,["prevent"])},{default:l(()=>[a(qe,null,{default:l(()=>[v("span",fa,V(p.value),1)]),_:1}),a(Be,null,{default:l(()=>[v("label",pa,V(u(e)("Name")),1),a(oe,{modelValue:t.value.name,"onUpdate:modelValue":i[0]||(i[0]=c=>t.value.name=c),variant:"outlined",density:"compact",rules:[u(Z).required]},null,8,["modelValue","rules"]),v("label",va,V(u(e)("Choose a domain")),1),a(Pe,{modelValue:t.value.target,"onUpdate:modelValue":i[1]||(i[1]=c=>t.value.target=c),items:h.value,"item-title":"name","item-value":"pk",rules:[u(Z).required],"single-line":"",variant:"outlined",density:"compact"},null,8,["modelValue","items","rules"]),a(J,{modelValue:t.value.enabled,"onUpdate:modelValue":i[2]||(i[2]=c=>t.value.enabled=c),label:"Enabled",color:"primary"},null,8,["modelValue"])]),_:1}),a(Re,null,{default:l(()=>[a(Ee),a(N,{loading:d.value,onClick:i[3]||(i[3]=c=>f("close"))},{default:l(()=>[w(V(u(e)("Close")),1)]),_:1},8,["loading"]),r.domainAlias&&r.domainAlias.pk?(C(),A(N,{key:0,color:"error",loading:d.value,onClick:g},{default:l(()=>[w(V(u(e)("Delete")),1)]),_:1},8,["loading"])):E("",!0),a(N,{color:"primary",type:"submit",loading:d.value},{default:l(()=>[w(V(k.value),1)]),_:1},8,["loading"])]),_:1})]),_:1},512)]),_:1}))}},_a={__name:"DomainOptionsForm",props:{modelValue:{type:Object,default:null}},emits:["createAdmin"],setup(r,{expose:_,emit:e}){const{$gettext:f}=M(),D=r,y=e,h=m(),t=m(!1),d=B(()=>D.modelValue);function S(k){y("createAdmin",k)}return _({vFormRef:h}),(k,p)=>(C(),A(pe,{ref_key:"vFormRef",ref:h},{default:l(()=>[a(J,{modelValue:t.value,"onUpdate:modelValue":[p[0]||(p[0]=g=>t.value=g),S],label:u(f)("Create a domain administrator"),color:"primary"},null,8,["modelValue","label"]),a(oe,{modelValue:d.value.domain_admin.username,"onUpdate:modelValue":p[1]||(p[1]=g=>d.value.domain_admin.username=g),label:u(f)("Name"),hint:u(f)("Name of the administrator"),"persistent-hint":"",variant:"outlined",disabled:!t.value,suffix:`@${d.value.name}`,rules:[!t.value||u(Z).required]},null,8,["modelValue","label","hint","disabled","suffix","rules"]),a(Xe,{modelValue:d.value.domain_admin,"onUpdate:modelValue":p[2]||(p[2]=g=>d.value.domain_admin=g),disabled:!t.value},null,8,["modelValue","disabled"]),a(J,{modelValue:d.value.domain_admin.with_mailbox,"onUpdate:modelValue":p[3]||(p[3]=g=>d.value.domain_admin.with_mailbox=g),label:u(f)("With a mailbox"),disabled:!t.value,hint:u(f)("Create a mailbox for the administrator."),"persistent-hint":"",color:"primary"},null,8,["modelValue","label","disabled","hint"]),a(J,{modelValue:d.value.domain_admin.with_aliases,"onUpdate:modelValue":p[4]||(p[4]=g=>d.value.domain_admin.with_aliases=g),label:u(f)("Create aliases"),disabled:!t.value,hint:u(f)("Create standard aliases for the domain."),"persistent-hint":"",color:"primary"},null,8,["modelValue","label","disabled","hint"])]),_:1},512))}},ya={class:"text-grey"},ba={__name:"DomainCreationForm",emits:["close","created"],setup(r,{emit:_}){const{$gettext:e}=M(),f=te(),D=me(),y=_,t=m({name:"",type:"domain",enabled:!0,enable_dns_checks:!0,enable_dkim:!1,dkim_key_selector:"modoboa",quota:0,default_mailbox_quota:0,domain_admin:{username:"admin",random_password:!1,with_mailbox:!1,with_aliases:!1},transport:{settings:{}}});le(()=>{je.getGlobalApplication("admin").then(n=>{const o=n.data.params;t.value.quota=o.default_domain_quota,t.value.default_mailbox_quota=o.default_mailbox_quota,o.default_domain_message_limit!==null&&(t.value.message_limit=o.default_domain_message_limit)})});const d=m(!1),S=m(),k=m(),p=m(),g=m(),$=m(),x=m(),i={general:k,dns:p,limitations:g,options:$,transport:x},c=[{name:"general",title:e("General")},{name:"dns",title:e("DNS")},{name:"limitations",title:e("Limitations")},{name:"options",title:e("Options")}],T=[{name:"general",title:e("General")},{name:"dns",title:e("DNS")},{name:"limitations",title:e("Limitations")},{name:"transport",title:e("Transport")}],j=B(()=>t.value.type==="domain"?c:T),R=B(()=>{const n=[{title:e("General"),items:[{key:e("Name"),value:t.value.name},{key:e("Type"),value:t.value.type},{key:e("Enabled"),value:t.value.enabled,type:"yesno"}]},{title:e("DNS"),items:[{key:e("Enable DNS checks"),value:t.value.enable_dns_checks,type:"yesno"},{key:e("Enable DKIM signing"),value:t.value.enable_dkim,type:"yesno"}]},{title:e("Limitations"),items:[{key:e("Quota"),value:t.value.quota},{key:e("Default mailbox quota"),value:t.value.default_mailbox_quota},{key:e("Message sending limit"),value:t.value.message_limit}]}];if(t.value.enable_dkim&&(n[1].items.push({key:e("DKIM key selector"),value:t.value.dkim_key_selector}),n[1].items.push({key:e("DKIM key length"),value:t.value.dkim_key_length})),t.value.type==="relaydomain"&&t.value.transport.service){const o={title:e("Transport"),items:[{key:e("Service"),value:t.value.transport.service}]};for(const b of x.value.service.settings){const s={key:b.label,value:t.value.transport.settings[`${t.value.transport.service}_${b.name}`]};b.type==="boolean"&&(s.type="yesno"),o.items.push(s)}n.push(o)}else if(t.value.type==="domain"){const o={title:e("Options"),items:[{key:e("Create a domain administrator"),value:d.value,type:"yesno"}]};d.value&&o.items.push({key:e("Administrator name"),value:t.value.domain_admin.username},{name:"random_password",key:e("Random password"),value:t.value.domain_admin.random_password,type:"yesno"},{key:e("With mailbox"),value:t.value.domain_admin.with_mailbox,type:"yesno"},{key:e("Create aliases"),value:t.value.domain_admin.with_aliases,type:"yesno"}),n.push(o)}return n});function z(){y("close")}function W(){navigator.clipboard.writeText(t.value.domain_admin.password).then(()=>{f.displayNotification({msg:e("Password copied to clipboard")})})}function K(n){return i.value[n.name]}function Y(n){return i[n.name].value.vFormRef}async function H(){}function Q(n){d.value=n}async function X(){const n=JSON.parse(JSON.stringify(t.value));d.value||delete n.domain_admin,n.message_limit===""&&delete n.message_limit,n.type==="relaydomain"?x.value.checkSettingTypes(n):delete n.transport;try{const o=await U.createDomain(n);D.push({name:"DomainDetail",params:{id:o.data.pk}}),f.displayNotification({msg:e("Domain created")}),z()}finally{S.value.working=!1}}return(n,o)=>(C(),A(We,{ref_key:"form",ref:S,title:u(e)("New domain"),steps:j.value,"form-getter":K,"get-v-form-ref":Y,"validate-object":H,"summary-sections":R.value,onClose:z,onCreate:X},{"form.general":l(()=>[a(Qe,{ref_key:"general",ref:k,modelValue:t.value,"onUpdate:modelValue":o[0]||(o[0]=b=>t.value=b),class:"ml-4"},null,8,["modelValue"])]),"form.dns":l(()=>[a(He,{ref_key:"dns",ref:p,modelValue:t.value,"onUpdate:modelValue":o[1]||(o[1]=b=>t.value=b),class:"ml-4"},null,8,["modelValue"])]),"form.limitations":l(()=>[a(Ye,{ref_key:"limitations",ref:g,modelValue:t.value,"onUpdate:modelValue":o[2]||(o[2]=b=>t.value=b),class:"ml-4"},null,8,["modelValue"])]),"form.options":l(()=>[a(_a,{ref_key:"options",ref:$,modelValue:t.value,"onUpdate:modelValue":o[3]||(o[3]=b=>t.value=b),class:"ml-4",onCreateAdmin:Q},null,8,["modelValue"])]),"form.transport":l(()=>[a(Ke,{ref_key:"transport",ref:x,modelValue:t.value.transport,"onUpdate:modelValue":o[4]||(o[4]=b=>t.value.transport=b),class:"ml-4"},null,8,["modelValue"])]),"item.random_password":l(({item:b})=>[b.value?(C(),A(P,{key:0,cols:"12",class:"highligth text-white"},{default:l(()=>[a(se,null,{default:l(()=>[a(P,null,{default:l(()=>[v("span",null,V(b.key),1)]),_:2},1024),a(P,{class:"text-right"},{default:l(()=>[w(V(n.$yesno(b.value)),1)]),_:2},1024)]),_:2},1024),a(se,null,{default:l(()=>[a(P,{class:"text-right py-1"},{default:l(()=>[w(V(t.value.domain_admin.password)+" ",1),a(N,{icon:"mdi-clipboard-multiple-outline",color:"white",variant:"text",title:u(e)("Copy to clipboard"),onClick:W},null,8,["title"])]),_:1})]),_:1})]),_:2},1024)):(C(),q(de,{key:1},[a(P,null,{default:l(()=>[v("span",ya,V(b.key),1)]),_:2},1024),a(P,{class:"text-right"},{default:l(()=>[w(V(n.$yesno(b.value)),1)]),_:2},1024)],64))]),_:2},1032,["title","steps","summary-sections"]))}},ga={__name:"DNSStatusChip",props:{status:{type:String,default:"pending"}},setup(r){const _=r,{$gettext:e}=M(),f=B(()=>_.status==="disabled"?e("Disabled"):_.status==="pending"?e("Pending"):_.status==="critical"?e("Problem"):_.status==="ok"?e("Valid"):e("Unknown")),D=B(()=>_.status==="disabled"?"":_.status==="pending"?"info":_.status==="critical"?"error":_.status==="ok"?"success":"warning");return(y,h)=>(C(),A(ee,{color:D.value,size:"small"},{default:l(()=>[w(V(f.value),1)]),_:1},8,["color"]))}},Va=De({bordered:Boolean,color:String,content:[Number,String],dot:Boolean,floating:Boolean,icon:$e,inline:Boolean,label:{type:String,default:"$vuetify.badge"},max:[Number,String],modelValue:{type:Boolean,default:!0},offsetX:[Number,String],offsetY:[Number,String],textColor:String,...sa(),...Ge({location:"top end"}),...ze(),...ia(),...Se(),...Ie({transition:"scale-rotate-transition"})},"VBadge"),ka=Ce()({name:"VBadge",inheritAttrs:!1,props:Va(),setup(r,_){const{backgroundColorClasses:e,backgroundColorStyles:f}=la(()=>r.color),{roundedClasses:D}=Oe(r),{t:y}=we(),{textColorClasses:h,textColorStyles:t}=oa(()=>r.textColor),{themeClasses:d}=he(),{locationStyles:S}=Me(r,!0,k=>(r.floating?r.dot?2:4:r.dot?8:12)+(["top","bottom"].includes(k)?Number(r.offsetY??0):["left","right"].includes(k)?Number(r.offsetX??0):0));return na(()=>{const k=Number(r.content),p=!r.max||isNaN(k)?r.content:k<=Number(r.max)?k:`${r.max}+`,[g,$]=Ae(_.attrs,["aria-atomic","aria-label","aria-live","role","title"]);return a(r.tag,O({class:["v-badge",{"v-badge--bordered":r.bordered,"v-badge--dot":r.dot,"v-badge--floating":r.floating,"v-badge--inline":r.inline},r.class]},$,{style:r.style}),{default:()=>{var x,i;return[v("div",{class:"v-badge__wrapper"},[(i=(x=_.slots).default)==null?void 0:i.call(x),a(Je,{transition:r.transition},{default:()=>{var c,T;return[Ne(v("span",O({class:["v-badge__badge",d.value,e.value,D.value,h.value],style:[f.value,t.value,r.inline?{}:S.value],"aria-atomic":"true","aria-label":y(r.label,k),"aria-live":"polite",role:"status"},g),[r.dot?void 0:_.slots.badge?(T=(c=_.slots).badge)==null?void 0:T.call(c):r.icon?a(_e,{icon:r.icon},null):p]),[[Ue,r.modelValue]])]}})])]}})}),{}}}),xa={class:"v-data-table__td v-data-table-column--no-padding v-data-table-column--align-start"},Ca={key:1},Da={key:1},wa={key:0},ha={class:"text-right"},Aa={class:"grey lighten-4"},Sa=["colspan"],$a=["onClick"],Na={__name:"DomainList",setup(r,{expose:_}){const{$gettext:e}=M(),f=me(),{canSetRole:D}=fe(),y=te(),h=[{title:e("Name"),key:"name"},{title:e("Enabled"),key:"enabled",width:"5%"},{title:e("Aliases"),key:"domainalias_count"},{title:e("DNS status"),key:"dns_global_status",sortable:!1},{title:e("Sending limit"),key:"message_limit"},{title:e("Quota"),key:"allocated_quota_in_percent"}];D.value&&h.push({title:e("Actions"),value:"actions",sortable:!1,align:"end"});const t=m({}),d=m(),S=m([]),k=m(!1),p=m(!1),g=m(null),$=m(null),x=m(!1),i=m(!1),c=m(""),T=m([]),j=m([]);async function R(){t.value={},p.value=!0;try{const n=await U.getDomains();S.value=n.data}finally{p.value=!1}}function z(){i.value=!1,g.value=null,$.value=null}async function W(n){if(await d.value.open(e("Warning"),e("Do you really want to delete the domain %{ domain }?",{domain:n.name}),{color:"error",cancelLabel:e("No"),agreeLabel:e("Yes")})){p.value=!0;try{const b={keep_folder:k.value};await U.deleteDomain(n.pk,b),R(),y.displayNotification({msg:e("Domain deleted")}),k.value=!1}finally{p.value=!1}}}function K(n){f.push({name:"DomainEdit",params:{id:n.pk}})}function Y(n,o){g.value=n,$.value=o,i.value=!0}function H(n,o,b,s){if(b(o)){s(o);return}U.getDomainAliases(n.name).then(F=>{t.value[n.name]=F.data,s(o)})}function Q(n){g.value=n,x.value=!0}function X(n){const o=[{label:e("Administrators"),icon:"mdi-account-supervisor",onClick:Q},{label:e("Edit"),icon:"mdi-circle-edit-outline",onClick:K},{label:e("Delete"),icon:"mdi-delete-outline",onClick:W,color:"red"}];return n.opened_alarms_count&&o.push({label:e("Alarms"),icon:"mdi-bell",color:"red",onClick:()=>f.push({name:"Alarms"})}),o}return le(()=>{R()}),_({reloadDomains:R}),(n,o)=>{const b=Te("router-link");return C(),A(ve,{class:"mt-6"},{default:l(()=>[a(ua,{modelValue:T.value,"onUpdate:modelValue":o[1]||(o[1]=s=>T.value=s),expanded:j.value,headers:h,items:S.value,"item-value":"name",search:c.value,"show-select":"","expand-on-click":"",loading:p.value},{top:l(()=>[a(ye,{color:"white",flat:""},{default:l(()=>[a(oe,{modelValue:c.value,"onUpdate:modelValue":o[0]||(o[0]=s=>c.value=s),"prepend-inner-icon":"mdi-magnify",placeholder:u(e)("Search"),variant:"outlined","single-line":"","hide-details":"",density:"compact",class:"flex-grow-0 w-33 mr-4"},null,8,["modelValue","placeholder"]),Le(n.$slots,"extraActions",{},void 0,!0),a(ae,{location:"bottom"},{activator:l(({props:s})=>[a(N,O({variant:"flat","append-icon":"mdi-chevron-down"},s,{size:"small"}),{default:l(()=>[w(V(u(e)("Actions")),1)]),_:2},1040)]),default:l(()=>[a(be,{density:"compact"})]),_:1}),a(N,{variant:"text",icon:"mdi-reload",onClick:R})]),_:3})]),item:l(({item:s,internalItem:L,isExpanded:F,toggleExpand:ne,isSelected:Ve,toggleSelect:ke})=>[v("tr",null,[v("td",xa,[a(ta,{value:!Ve(L),onClick:G=>ke(L)},null,8,["value","onClick"])]),v("td",null,[a(b,{to:{name:"DomainDetail",params:{id:s.pk}}},{default:l(()=>[w(V(s.name),1)]),_:2},1032,["to"]),s.type==="relaydomain"?(C(),A(ee,{key:0,size:"small",color:"primary",class:"ml-2"},{default:l(()=>[w(V(u(e)("Relay")),1)]),_:1})):E("",!0)]),v("td",null,[a(_e,{color:s.enabled?"success":"error",icon:s.enabled?"mdi-check-circle":"mdi-close-circle",variant:"flat"},null,8,["color","icon"])]),v("td",null,[w(V(s.domainalias_count)+" aliases ",1),s.domainalias_count?(C(),A(N,{key:0,variant:"text",icon:F(L)?"mdi-chevron-up":"mdi-chevron-down",onClick:G=>H(s,L,F,ne)},null,8,["icon","onClick"])):E("",!0)]),v("td",null,[a(ga,{status:s.dns_global_status},null,8,["status"])]),v("td",null,[s.message_limit?(C(),A(ie,{key:0,color:s.sent_messages_in_percent<80?"primary":"warning","model-value":s.sent_messages_in_percent},null,8,["color","model-value"])):(C(),q("span",Ca,V(u(e)("Unlimited")),1))]),v("td",null,[s.quota!=="0"?(C(),A(ie,{key:0,color:s.allocated_quota_in_percent<80?"primary":"warning","model-value":s.allocated_quota_in_percent},null,8,["color","model-value"])):(C(),q("span",Da,V(u(e)("Unlimited")),1))]),u(D)?(C(),q("td",wa,[v("div",ha,[a(ae,{"offset-y":""},{activator:l(({props:G})=>[s.opened_alarms_count?(C(),A(ka,{key:0,bordered:"",color:"error",icon:"mdi-bell",overlap:""},{default:l(()=>[a(N,O({icon:"mdi-dots-horizontal",variant:"text"},G),null,16)]),_:2},1024)):(C(),A(N,O({key:1,icon:"mdi-dots-horizontal",variant:"text"},G),null,16))]),default:l(()=>[a(aa,{items:X(s),obj:s},null,8,["items","obj"])]),_:2},1024)])])):E("",!0)])]),"expanded-row":l(({item:s,columns:L})=>[v("tr",Aa,[v("td",{colspan:L.length},[(C(!0),q(de,null,Fe(t.value[s.name],F=>(C(),q("span",{key:F.name,class:"mr-4"},[v("a",{href:"#",class:"mr-2",onClick:ne=>Y(s,F)},V(F.name),9,$a),a(ee,{variant:"flat",size:"x-small",color:"success"},{default:l(()=>o[6]||(o[6]=[w("DNS OK")])),_:1,__:[6]})]))),128))],8,Sa)])]),_:3},8,["modelValue","expanded","items","search","loading"]),a(ea,{ref_key:"confirm",ref:d},{default:l(()=>[a(ma,{modelValue:k.value,"onUpdate:modelValue":o[2]||(o[2]=s=>k.value=s),label:u(e)("Do not delete domain folder"),"hide-details":""},null,8,["modelValue","label"])]),_:1},512),a(I,{modelValue:i.value,"onUpdate:modelValue":o[3]||(o[3]=s=>i.value=s),persistent:"","max-width":"800px"},{default:l(()=>[a(ge,{"domain-alias":$.value,onClose:z},null,8,["domain-alias"])]),_:1},8,["modelValue"]),a(I,{modelValue:x.value,"onUpdate:modelValue":o[5]||(o[5]=s=>x.value=s),persistent:"","max-width":"800px"},{default:l(()=>[a(Ze,{domain:g.value,"dialog-mode":"",onClose:o[4]||(o[4]=s=>x.value=!1)},null,8,["domain"])]),_:1},8,["modelValue"])]),_:3})}}},Ua=ce(Na,[["__scopeId","data-v-8ed27599"]]),Fa={__name:"DomainsView",setup(r){const _=m(),e=m(!1),f=m(!1),D=m(!1),{$gettext:y}=M(),{canAddDomain:h}=fe(),t=m(),{importContent:d,exportContent:S}=ca();function k(){U.exportAll().then(x=>{S(x.data,"domains",y)})}function p(x){d(U,x,t,y)}const g=()=>{e.value=!1,_.value.reloadDomains()},$=()=>{D.value=!1,_.value.reloadDomains()};return(x,i)=>(C(),q("div",null,[a(ye,{flat:""},{default:l(()=>[a(ra,null,{default:l(()=>[w(V(u(y)("Domains")),1)]),_:1})]),_:1}),a(u(Ua),{ref_key:"domainList",ref:_},{extraActions:l(()=>[u(h)?(C(),A(ae,{key:0,"offset-y":""},{activator:l(({props:c})=>[a(N,O({color:"primary",variant:"outlined"},c,{"prepend-icon":"mdi-plus",class:"mr-4"}),{default:l(()=>[w(V(u(y)("New")),1)]),_:2},1040)]),default:l(()=>[a(be,{density:"compact"},{default:l(()=>[a(re,{onClick:i[0]||(i[0]=c=>f.value=!0)},{default:l(()=>[a(ue,null,{default:l(()=>[w(V(u(y)("Domain")),1)]),_:1})]),_:1}),a(re,{onClick:i[1]||(i[1]=c=>e.value=!0)},{default:l(()=>[a(ue,null,{default:l(()=>[w(V(u(y)("Alias")),1)]),_:1})]),_:1})]),_:1})]),_:1})):E("",!0),u(h)?(C(),A(N,{key:1,class:"mr-2",title:u(y)("Import domains and aliases from CSV file"),variant:"flat",icon:"mdi-file-import-outline",onClick:i[2]||(i[2]=c=>D.value=!0)},null,8,["title"])):E("",!0),a(N,{class:"mr-2",title:u(y)("Export domains and aliases to CSV"),variant:"flat",icon:"mdi-file-export-outline",onClick:k},null,8,["title"])]),_:1},512),a(I,{modelValue:f.value,"onUpdate:modelValue":i[4]||(i[4]=c=>f.value=c),fullscreen:"",scrollable:"","z-index":"10"},{default:l(()=>[a(u(ba),{onClose:i[3]||(i[3]=c=>f.value=!1)})]),_:1},8,["modelValue"]),a(I,{modelValue:e.value,"onUpdate:modelValue":i[6]||(i[6]=c=>e.value=c),persistent:"","max-width":"800px"},{default:l(()=>[a(u(ge),{onClose:i[5]||(i[5]=c=>g())})]),_:1},8,["modelValue"]),a(I,{modelValue:D.value,"onUpdate:modelValue":i[7]||(i[7]=c=>D.value=c),persistent:"","max-width":"800px"},{default:l(()=>[a(u(da),{ref_key:"importForm",ref:t,title:u(y)("Import domains"),onSubmit:p,onClose:$},{help:l(()=>i[8]||(i[8]=[v("ul",null,[v("li",null,[v("em",null,"domain; name; quota; default mailbox quota; enabled")]),v("li",null,[v("em",null,"domainalias; name; targeted domain; enabled")]),v("li",null,[v("em",null,"relaydomain; name; target host; target port; service; enabled; verify recipients")])],-1)])),_:1},8,["title"])]),_:1},8,["modelValue"])]))}},xt=ce(Fa,[["__scopeId","data-v-1068f77b"]]);export{xt as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{V as s,a as c}from"./VApp-BKxnjOoi.js";import{r as m,c as t,o as e,w as o,a as r}from"./index-DV9Li2cg.js";import"./tag-CFK9dzMJ.js";import"./layout-CHO37cA6.js";import"./ssrBoot-BsxW6uW4.js";const u={__name:"EmptyView",setup(a){return(_,n)=>{const p=m("router-view");return e(),t(s,null,{default:o(()=>[r(p)]),_:1})}}},d={__name:"EmptyLayout",setup(a){return(_,n)=>(e(),t(c,null,{default:o(()=>[r(u)]),_:1}))}};export{d as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{g as i,M as m,c as p,f as a,o as e}from"./index-DV9Li2cg.js";import{_ as n}from"./ComposeEmailForm-CNfI7ept.js";import{a as l}from"./webmail-KrD8ZhNM.js";import"./index-DzL89N4E.js";import"./VForm-CpoZf60D.js";import"./tag-CFK9dzMJ.js";import"./VTextField-CLwRV0Cb.js";import"./VAvatar-BAgTUIvX.js";import"./VProgressCircular-CrEXxs7k.js";import"./forwardRefs-Cpc3YYl6.js";import"./ssrBoot-BsxW6uW4.js";import"./VCard-DFWiFORP.js";import"./VFileInput-Cv9DIPki.js";import"./VChip-nZ0uhY7t.js";import"./VTable-KsiZ3cBz.js";import"./VSpacer-C6PZ3X24.js";/* empty css */import"./HtmlEditor-uM4AtIGi.js";import"./VTextarea-Di8jbl8m.js";import"./contacts-Bqckz8sr.js";import"./VToolbar-CGwhgdmI.js";import"./VRow-C_Ydf6yr.js";import"./VSelect-CS51PDEt.js";import"./VMenu-B_dVqOmo.js";import"./VCheckboxBtn-j7di4leN.js";import"./VSelectionControl-DiOqtY38.js";import"./filter-D7NrAf6a.js";import"./VDialog-CZqM2Ofu.js";const J={__name:"ForwardEmailView",setup(s){const o=m(),r=i();return l.getEmailContent(o.query.mailbox,o.query.mailid,{context:"forward"}).then(t=>{r.value=t.data}),(t,c)=>(e(),p(a(n),{"original-email":r.value},null,8,["original-email"]))}};export{J as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as K,Q as oe,R as Se,c as L,o as R,w as t,a,m as Q,F as ce,G as Ue,l as V,t as _,k as pe,b as J,n as le,g as r,h as M,d as Ee,q as Y,B as te,r as Le,H as Ne,f as y,N as q,s as fe,i as X,e as j}from"./index-DV9Li2cg.js";import{_ as ne}from"./MenuItems-kHCMzR5E.js";import{_ as ie}from"./ConfirmDialog-BvqxQsD1.js";import{V as De,a as Te,b as ve}from"./VCard-DFWiFORP.js";import{V as ye}from"./VCheckbox-CKsH_vq3.js";import{V as je}from"./VSpacer-C6PZ3X24.js";import{V as N,d as Z}from"./VAvatar-BAgTUIvX.js";import{a as H}from"./aliases-c3n-dCV_.js";import{d as Me}from"./index-DzL89N4E.js";import{V as ae}from"./VMenu-B_dVqOmo.js";import{V as ze}from"./VChip-nZ0uhY7t.js";import{V as _e,a as Pe}from"./VToolbar-CGwhgdmI.js";import{V as Be}from"./VTextField-CLwRV0Cb.js";import{V as be,a as se,b as re}from"./forwardRefs-Cpc3YYl6.js";import{V as qe,a as ue}from"./VRadioGroup-D8ypjYOO.js";import{V as Oe}from"./VDataTableServer-BWTt4Mzi.js";import{V as W}from"./VDialog-CZqM2Ofu.js";import{_ as Ge,a as We}from"./AliasRecipientForm-DVZXWaUX.js";import{_ as ke}from"./CreationForm-C9Kh05ax.js";import{_ as Qe,A as Ye,a as He,b as Je}from"./AccountAliasForm-DVXatAhB.js";import{u as Ke}from"./permissions-mL5hLHcW.js";import{a as B,V as de}from"./VRow-C_Ydf6yr.js";import{u as Xe}from"./domains.store-ChZgLcqP.js";import{_ as Ze,i as et}from"./importExport-Dn9vYw7T.js";import{V as tt}from"./VSwitch-Chg5o-Cp.js";import"./tag-CFK9dzMJ.js";import"./VCheckboxBtn-j7di4leN.js";import"./VSelectionControl-DiOqtY38.js";import"./VProgressCircular-CrEXxs7k.js";/* empty css */import"./ssrBoot-BsxW6uW4.js";import"./VDataTable-D_0_xJTl.js";import"./VSelect-CS51PDEt.js";import"./VTable-KsiZ3cBz.js";import"./filter-D7NrAf6a.js";import"./EmailField-BEKxuYni.js";import"./VForm-CpoZf60D.js";import"./domains-nBMR-fRf.js";import"./VTextarea-Di8jbl8m.js";import"./VWindowItem-wWSFAGI-.js";import"./VContainer-Btam4lk2.js";import"./VSheet-5VVWtHvs.js";import"./ChoiceField-7eU7c_rI.js";import"./VAlert-B7mzOJIO.js";import"./AccountPasswordSubForm-g3IEGrgM.js";import"./VFileInput-Cv9DIPki.js";const ee="identities",me={getAll(){return K.get(`${ee}/`)},exportAll(){return K.get(`/${ee}/export/`)},importFromCSV(D){return K.post(`/${ee}/import/`,D,{headers:{"Content-Type":"multipart/form-data"}})}},at={__name:"ChooseColumnsForm",props:oe({availableColumns:{type:Array,default:null},mandatoryColumns:{type:Array,default:null},columns:{type:Array,default:null}},{modelValue:{type:Array},modelModifiers:{}}),emits:oe(["apply"],["update:modelValue"]),setup(D,{emit:b}){const e=D,I=Se(D,"modelValue"),S=b,C=()=>{S("apply",I.value)};return I.value=e.columns.map(g=>g.key),(g,k)=>(R(),L(ve,{title:g.$gettext("Choose columns to display")},{default:t(()=>[a(De,null,{default:t(()=>[(R(!0),Q(ce,null,Ue(e.availableColumns,$=>(R(),Q("div",{key:$.key},[a(ye,{modelValue:I.value,"onUpdate:modelValue":k[0]||(k[0]=p=>I.value=p),value:$.key,label:$.title,color:"primary","hide-details":"",density:"compact",disabled:e.mandatoryColumns.includes($.key)},null,8,["modelValue","value","label","disabled"])]))),128))]),_:1}),a(Te,null,{default:t(()=>[a(je),a(N,{color:"primary",variant:"outlined",onClick:C},{default:t(()=>[V(_(g.$gettext("Apply")),1)]),_:1})]),_:1})]),_:1},8,["title"]))}},lt={__name:"IdentityList",setup(D,{expose:b}){const{$gettext:e}=J(),I=fe(),{displayNotification:S}=le(),C={address:{title:e("Address"),key:"address"},enabled:{title:e("Enabled"),key:"enabled"},recipients:{title:e("Recipients"),key:"recipients"},expire_at:{title:e("Expire at"),key:"expire_at"},description:{title:e("Description"),key:"description"},creation:{title:e("Creation date"),key:"creation"},last_modification:{title:e("Last modification"),key:"last_modification"}},g=[C.address,C.enabled,C.recipients],k={username:{title:e("Name"),key:"username"},first_name:{title:e("First name"),key:"first_name"},last_name:{title:e("Last Name"),key:"last_name"},is_active:{title:e("Enabled"),key:"is_active"},role:{title:e("Role"),key:"role"},language:{title:e("Language"),key:"language"},phone_number:{title:e("Phone number"),key:"phone_number"},secondary_email:{title:e("Secondary email"),key:"secondary_email"},tfa_enabled:{title:e("TFA enabled"),key:"tfa_enabled"},totp_enabled:{title:e("TOTP enabled"),key:"totp_enabled"},webauth_enabled:{title:e("WebAutn enabled"),key:"webauth_enabled"},date_joined:{title:e("Creation date"),key:"date_joined"},last_login:{title:e("Last login"),key:"last_login"}},$=[k.username,k.is_active,k.role],p=r("account"),s=r(0),c=r([]),w=r(!1),x=r(""),n=r([]),d=r(!1),F=r(),z=r(),T=r(1),v=r(10),A=r([]),h=r($),P=r(!1),O=M(()=>h.value.concat([{title:e("Actions"),key:"actions",sortable:!1,align:"end"}])),G=M(()=>p.value==="account"?Object.values(k):Object.values(C)),u=M(()=>p.value==="account"?["username"]:["address"]);async function m(i){w.value=!0,c.value=[],A.value=[],i==="account"?h.value=$:h.value=g,await U()}async function f({page:i,itemsPerPage:o,sortBy:E}){T.value=i,v.value=o,A.value=E,U()}async function U(){w.value=!0;const i={page:T.value||1,page_size:v.value||10};A.value&&A.value.length&&(i.ordering=A.value.map(o=>o.order!=="asc"?`-${o.key}`:o.key).join(",")),x.value!==""&&(i.search=x.value);try{const o=p.value==="account"?await q.getAll(i):await H.getAll(i);c.value=o.data.results,s.value=o.data.count,n.value=[]}finally{w.value=!1}}function Ve(i){h.value=G.value.filter(o=>i.includes(o.key)),P.value=!1}function ge(i){const o=[];return p.value==="account"?(i.possible_actions.forEach(E=>{o.push({label:E.label,icon:E.icon,onClick:l=>{E.name==="get_credentials"&&Ae(l),U()}})}),o.push({label:e("Edit"),icon:"mdi-circle-edit-outline",onClick:Ce}),o.push({label:e("Delete"),icon:"mdi-delete-outline",onClick:we,color:"red"})):p.value==="alias"&&(o.push({label:e("Edit"),icon:"mdi-circle-edit-outline",onClick:he}),o.push({label:e("Delete"),icon:"mdi-delete-outline",onClick:Re,color:"red"})),o}function xe(){const i=[];return n.value.length>0&&i.push({label:e("Delete"),icon:"mdi-delete-outline",onClick:$e,color:"red"}),i}function Ce(i){I.push({name:"AccountEdit",params:{id:i.pk}})}async function we(i){if(await z.value.open(e("Warning"),e("Are you sure you want to delete this identity ?"),{color:"error",agreeLabel:e("Yes"),cancelLabel:e("No")})){w.value=!1;try{await q.delete(i.pk,{keepdir:d.value}),U(),S({msg:e("Account deleted")})}finally{w.value=!1}}}async function Ae(i){const o=await q.getCredentials(i.pk),E=new Blob([o.data],{type:o.headers["Content-Type"]}),l=document.createElement("a");l.href=URL.createObjectURL(E),l.download=`credentials_${i.pk}.pdf`,l.click(),URL.revokeObjectURL(l.href)}function he(){}function $e(){}async function Re(i){if(await F.value.open(e("Warning"),e("Are you sure you want to delete this alias?"),{color:"error",agreeLabel:e("Yes"),cancelLabel:e("No")})){w.value=!1;try{await H.delete(i.pk),U(),S({msg:e("Alias deleted")})}finally{w.value=!1}}}function Ie(i){return i.recipients?i.recipients.join(", "):""}return Ee(()=>{U()}),b({fetchIdentities:U}),U=Me(U,500),(i,o)=>{const E=Le("router-link");return R(),L(ve,{class:"mt-6"},{default:t(()=>[a(Oe,{modelValue:n.value,"onUpdate:modelValue":o[3]||(o[3]=l=>n.value=l),headers:O.value,items:c.value,search:x.value,loading:w.value,"items-length":s.value,page:T.value,"items-per-page":v.value,"item-value":"pk",elevation:"0","show-select":"","sort-by":A.value,"onUpdate:options":f},{top:t(()=>[a(_e,{flat:"",color:"white"},{extension:t(()=>[a(qe,{modelValue:p.value,"onUpdate:modelValue":[o[2]||(o[2]=l=>p.value=l),m],inline:"",readonly:w.value,"hide-details":""},{default:t(()=>[a(ue,{color:"primary",label:y(e)("Accounts"),value:"account"},null,8,["label"]),a(ue,{color:"primary",label:y(e)("Alias"),value:"alias"},null,8,["label"])]),_:1},8,["modelValue","readonly"])]),default:t(()=>[a(Be,{modelValue:x.value,"onUpdate:modelValue":o[0]||(o[0]=l=>x.value=l),"prepend-inner-icon":"mdi-magnify",placeholder:y(e)("Search"),variant:"outlined","hide-details":"","single-line":"",flat:"",density:"compact",class:"flex-grow-0 w-33 mr-4"},null,8,["modelValue","placeholder"]),Ne(i.$slots,"extraActions",{},void 0,!0),a(N,{variant:"text",icon:"mdi-format-columns",title:y(e)("Customize displayed columns"),onClick:o[1]||(o[1]=l=>P.value=!0)},null,8,["title"]),n.value.length>1?(R(),L(ae,{key:0,location:"bottom"},{activator:t(({props:l})=>[a(N,te({"append-icon":"mdi-chevron-down"},l,{size:"small",variant:"flat"}),{default:t(()=>[V(_(y(e)("Actions")),1)]),_:2},1040)]),default:t(()=>[a(be,{density:"compact"},{default:t(()=>[a(ne,{items:xe()},null,8,["items"])]),_:1})]),_:1})):Y("",!0),a(N,{variant:"text",icon:"mdi-reload",onClick:U})]),_:3})]),"item.username":t(({item:l})=>[a(E,{to:{name:"AccountDetail",params:{id:l.pk}}},{default:t(()=>[V(_(l.username),1)]),_:2},1032,["to"])]),"item.address":t(({item:l})=>[a(E,{to:{name:"AliasDetail",params:{id:l.pk}}},{default:t(()=>[V(_(l.address),1)]),_:2},1032,["to"])]),"item.is_active":t(({item:l})=>[a(Z,{color:l.is_active?"success":"error",icon:l.is_active?"mdi-check-circle":"mdi-close-circle",variant:"flat"},null,8,["color","icon"])]),"item.enabled":t(({item:l})=>[a(Z,{color:l.enabled?"success":"error",icon:l.enabled?"mdi-check-circle":"mdi-close-circle",variant:"flat"},null,8,["color","icon"])]),"item.recipients":t(({item:l})=>[V(_(Ie(l)),1)]),"item.date_joined":t(({item:l})=>[V(_(i.$date(l.date_joined)),1)]),"item.creation":t(({item:l})=>[V(_(i.$date(l.creation)),1)]),"item.last_modification":t(({item:l})=>[V(_(i.$date(l.last_modification)),1)]),"item.last_login":t(({item:l})=>[V(_(i.$date(l.last_login)),1)]),"item.role":t(({item:l})=>[a(ze,{color:"default",size:"small"},{default:t(()=>[V(_(l.role),1)]),_:2},1024)]),"item.actions":t(({item:l})=>[l.possible_actions!==void 0&&l.possible_actions.length!==0?(R(),L(Z,{key:0,size:"large",color:"blue"},{default:t(()=>o[6]||(o[6]=[V("mdi-circle-small")])),_:1,__:[6]})):Y("",!0),a(ae,{location:"bottom"},{activator:t(({props:Fe})=>[a(N,te(Fe,{size:"small",icon:"mdi-dots-horizontal",variant:"text"}),null,16)]),default:t(()=>[a(ne,{items:ge(l),obj:l},null,8,["items","obj"])]),_:2},1024)]),_:2},1032,["modelValue","headers","items","search","loading","items-length","page","items-per-page","sort-by"]),a(ie,{ref_key:"confirmAlias",ref:F},null,512),a(ie,{ref_key:"confirmAccount",ref:z},{default:t(()=>[a(ye,{modelValue:d.value,"onUpdate:modelValue":o[4]||(o[4]=l=>d.value=l),label:y(e)("Do not delete account folder"),"hide-details":""},null,8,["modelValue","label"])]),_:1},512),a(W,{modelValue:P.value,"onUpdate:modelValue":o[5]||(o[5]=l=>P.value=l),"max-width":"500"},{default:t(()=>[a(at,{columns:h.value,"available-columns":G.value,"mandatory-columns":u.value,onApply:Ve},null,8,["columns","available-columns","mandatory-columns"])]),_:1},8,["modelValue"])]),_:3})}}},ot=pe(lt,[["__scopeId","data-v-328e3f59"]]),nt={__name:"AliasCreationForm",emits:["close","created"],setup(D,{emit:b}){const{$gettext:e}=J(),I=le(),S=fe(),C=b,g=r(),k=r(),$=r(),p={general:k,recipients:$},s=M(()=>{const v=[{title:e("General"),items:[{key:e("Random address"),value:c.value.random,type:"yesno"},{key:e("Address"),value:c.value.address}]}];return c.value.expire_at!==void 0&&v[0].items.push({key:e("Expire at"),value:c.value.expire_at}),c.value.description!==void 0&&v[0].items.push({key:e("Description"),value:c.value.description}),v.push({title:e("Recipients"),items:[{key:e("Recipients"),value:c.value.recipients.join(", ")}]}),v}),c=r(n()),w=r([{name:"general",title:e("General")},{name:"recipients",title:e("Recipients")}]);function x(){c.value=n(),C("close")}function n(){return{random:!1,enabled:!0,recipients:[]}}function d(v){return p.step[v.name]}function F(v){return p[v.name].value.vFormRef}function z(){const v={...c.value};v.recipients.length===0&&delete v.recipients;const A=H.validate(v);return A.catch(h=>{h.response.status===409&&h.response.data.id!==void 0&&(I.displayNotification({msg:e("Alias already exists, redirecting to edit page"),type:"warning"}),S.push({name:"AliasEdit",params:{id:h.response.data.id}}))}),A}async function T(){c.value.domain!==void 0&&delete c.value.domain;try{await H.create(c.value),C("created"),x()}finally{g.value.working=!1}}return(v,A)=>(R(),L(ke,{ref_key:"form",ref:g,title:y(e)("New alias"),steps:w.value,"form-getter":d,"get-v-form-ref":F,"validate-object":z,"summary-sections":s.value,onClose:x,onCreate:T},{"form.general":t(()=>[a(We,{ref_key:"general",ref:k,modelValue:c.value,"onUpdate:modelValue":A[0]||(A[0]=h=>c.value=h)},null,8,["modelValue"])]),"form.recipients":t(()=>[a(Ge,{ref_key:"recipients",ref:$,modelValue:c.value.recipients,"onUpdate:modelValue":A[1]||(A[1]=h=>c.value.recipients=h)},null,8,["modelValue"])]),_:2},1032,["title","steps","summary-sections"]))}},it={class:"grey--text"},st={__name:"AccountCreationForm",emits:["close","created"],setup(D,{emit:b}){const{$gettext:e}=J(),{canSetRole:I}=Ke(),S=le(),C=Xe(),g=b,k=M(()=>s.value.username&&s.value.username.indexOf("@")!==-1),$=M(()=>{const u=[{title:e("Role"),items:[{key:e("Role"),value:s.value.role}]},{title:e("Identification"),items:[{key:e("Username"),value:s.value.username},{key:e("First name"),value:s.value.first_name},{key:e("Last name"),value:s.value.last_name},{name:"random_password",key:e("Random password"),value:s.value.random_password,type:"yesno"},{key:e("Enabled"),value:s.value.is_active,type:"yesno"}]}];return k.value?u.concat([{title:e("Mailbox"),items:[{key:e("Email"),value:s.value.mailbox.full_address},{key:e("Quota"),value:s.value.mailbox.use_domain_quota?e("Domain default value"):s.value.mailbox.quota},{key:e("Message sending limit"),value:s.value.mailbox.message_limit},{key:e("Send only account"),value:s.value.mailbox.is_send_only,type:"yesno"}]},{title:e("Aliases"),items:[{key:e("Aliases"),value:s.value.aliases,type:"list"}]}]):u}),p=M(()=>{const u=[];return I.value&&u.push({name:"role",title:e("Role")}),u.push({name:"identification",title:e("Identification")}),k.value?u.concat([{name:"mailbox",title:e("Mailbox")},{name:"aliases",title:e("Aliases")}]):u}),s=r({aliases:[],is_active:!0,role:X.USER,mailbox:{use_domain_quota:!0},random_password:!1}),c=r(),w=r(),x=r(),n=r(),d=r(),F={role:w,identification:x,mailbox:n,aliases:d};function z(){navigator.clipboard.writeText(s.value.new_password).then(()=>{S.displayNotification({msg:e("Password copied to clipboard")})})}function T(u){return F.step[u.name]}function v(u){return F[u.name].value.vFormRef}function A(u,m){const f=p.value[u-1].name;F[f].value.formErrors&&(F[f].value.formErrors.value=m)}function h(u){const m={...u};return[X.RESELLER,X.SUPER_ADMIN].includes(m.role)&&m.username&&m.username.indexOf("@")===-1&&delete m.mailbox,m.mailbox&&(m.mailbox.message_limit===""&&(m.mailbox.message_limit=null),(m.mailbox.quota===void 0||m.mailbox.quota===null)&&(m.mailbox.quota=0)),m}function P(u){if(u===1)return!0;const m=h({...s.value});return q.validate(m)}function O(){g("close")}async function G(){const u=h({...s.value});u.password=u.new_password,delete u.new_password,delete u.password_confirmation;try{await q.create(u),g("created"),O()}finally{c.value.working=!1}}return C.getDomains(),(u,m)=>(R(),L(ke,{ref_key:"form",ref:c,title:y(e)("New account"),steps:p.value,"form-getter":T,"get-v-form-ref":v,"validate-object":P,"summary-sections":$.value,onClose:O,onCreate:G,onValidationError:A},{"form.role":t(()=>[a(Je,{ref_key:"role",ref:w,modelValue:s.value,"onUpdate:modelValue":m[0]||(m[0]=f=>s.value=f)},null,8,["modelValue"])]),"form.identification":t(()=>[a(He,{ref_key:"identification",ref:x,modelValue:s.value,"onUpdate:modelValue":m[1]||(m[1]=f=>s.value=f)},null,8,["modelValue"])]),"form.mailbox":t(()=>[a(Ye,{ref_key:"mailbox",ref:n,modelValue:s.value,"onUpdate:modelValue":m[2]||(m[2]=f=>s.value=f)},null,8,["modelValue"])]),"form.aliases":t(()=>[a(Qe,{ref_key:"aliases",ref:d,modelValue:s.value,"onUpdate:modelValue":m[3]||(m[3]=f=>s.value=f)},null,8,["modelValue"])]),"item.random_password":t(({item:f})=>[f.value?(R(),L(B,{key:0,cols:"12",class:"highligth text-white"},{default:t(()=>[a(de,null,{default:t(()=>[a(B,null,{default:t(()=>[j("span",null,_(f.key),1)]),_:2},1024),f.type==="yesno"?(R(),L(B,{key:0,class:"text-right"},{default:t(()=>[V(_(u.$yesno(f.value)),1)]),_:2},1024)):Y("",!0)]),_:2},1024),a(de,null,{default:t(()=>[a(B,{class:"text-right py-1"},{default:t(()=>[a(N,{"append-icon":"mdi-clipboard-multiple-outline",color:"white",variant:"text",title:y(e)("Copy to clipboard"),onClick:z},{default:t(()=>[V(_(s.value.new_password),1)]),_:1},8,["title"])]),_:1})]),_:1})]),_:2},1024)):(R(),Q(ce,{key:1},[a(B,null,{default:t(()=>[j("span",it,_(f.key),1)]),_:2},1024),f.type==="yesno"?(R(),L(B,{key:0,class:"text-right"},{default:t(()=>[V(_(u.$yesno(f.value)),1)]),_:2},1024)):Y("",!0)],64))]),_:2},1032,["title","steps","summary-sections"]))}},rt={__name:"IdentitiesView",setup(D){const{$gettext:b,$pgettext:e}=J(),{importContent:I,exportContent:S}=et(),C=r(!1),g=r(!1),k=r(!1),$=r(),p=r();function s(){me.exportAll().then(x=>{S(x.data,"identities",b)})}function c(x,n){x.append("crypt_passwords",n.crypt_passwords),I(me,x,$,b)}function w(){k.value=!1,p.value.fetchIdentities()}return(x,n)=>(R(),Q("div",null,[a(_e,{flat:""},{default:t(()=>[a(Pe,null,{default:t(()=>[V(_(y(b)("Identities")),1)]),_:1})]),_:1}),a(ot,{ref_key:"idList",ref:p},{extraActions:t(()=>[a(ae,{"offset-y":""},{activator:t(({props:d})=>[a(N,te({color:"primary",variant:"outlined"},d,{"prepend-icon":"mdi-plus",class:"mr-4"}),{default:t(()=>[V(_(y(e)("male","New")),1)]),_:2},1040)]),default:t(()=>[a(be,{density:"compact"},{default:t(()=>[a(se,{onClick:n[0]||(n[0]=d=>C.value=!0)},{default:t(()=>[a(re,null,{default:t(()=>[V(_(y(b)("Account")),1)]),_:1})]),_:1}),a(se,{onClick:n[1]||(n[1]=d=>g.value=!0)},{default:t(()=>[a(re,null,{default:t(()=>[V(_(y(b)("Alias")),1)]),_:1})]),_:1})]),_:1})]),_:1}),a(N,{class:"mr-2",title:y(b)("Import accounts and aliases from CSV file"),variant:"flat",icon:"mdi-file-import-outline",onClick:n[2]||(n[2]=d=>k.value=!0)},null,8,["title"]),a(N,{class:"mr-2",title:y(b)("Export accounts and aliases to CSV"),icon:"mdi-file-export-outline",variant:"flat",onClick:s},null,8,["title"])]),_:1},512),a(W,{modelValue:g.value,"onUpdate:modelValue":n[5]||(n[5]=d=>g.value=d),fullscreen:"",scrollable:"","z-index":"10"},{default:t(()=>[a(nt,{onCreated:n[3]||(n[3]=d=>p.value.fetchIdentities()),onClose:n[4]||(n[4]=d=>g.value=!1)})]),_:1},8,["modelValue"]),a(W,{modelValue:C.value,"onUpdate:modelValue":n[8]||(n[8]=d=>C.value=d),fullscreen:"",scrollable:"","z-index":"10"},{default:t(()=>[a(st,{onCreated:n[6]||(n[6]=d=>p.value.fetchIdentities()),onClose:n[7]||(n[7]=d=>C.value=!1)})]),_:1},8,["modelValue"]),a(W,{modelValue:k.value,"onUpdate:modelValue":n[9]||(n[9]=d=>k.value=d),persistent:"","max-width":"800px"},{default:t(()=>[a(y(Ze),{ref_key:"importForm",ref:$,title:y(b)("Import identities"),onSubmit:c,onClose:w},{help:t(()=>n[10]||(n[10]=[j("ul",null,[j("li",null,[j("em",null,"account; loginname; password; first name; last name; enabled; group; address; quota[; domain; ...]")]),j("li",null,[j("em",null,"alias; address; enabled; recipient; [more recipients; ...]")])],-1)])),extraFields:t(({form:d})=>[a(tt,{modelValue:d.crypt_passwords,"onUpdate:modelValue":F=>d.crypt_passwords=F,label:y(b)("Crypt passwords"),color:"primary",density:"compact",hint:y(b)("Check this option if passwords contained in your file are not crypted"),"persistent-hint":""},null,8,["modelValue","onUpdate:modelValue","label","hint"])]),_:1},8,["title"])]),_:1},8,["modelValue"])]))}},ta=pe(rt,[["__scopeId","data-v-c34f0ee8"]]);export{ta as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as y,g as l,c as b,w as a,a as s,l as m,t as c,f as h,o as V,k as T,m as M,F as $}from"./index-DV9Li2cg.js";import{l as D}from"./logs-DrTzylW7.js";import{d as F}from"./index-DzL89N4E.js";import{V as v,a as S}from"./VToolbar-CGwhgdmI.js";import{V as C}from"./VTextField-CLwRV0Cb.js";import{V as I}from"./VDataTableServer-BWTt4Mzi.js";import{b as N}from"./VCard-DFWiFORP.js";import"./tag-CFK9dzMJ.js";import"./VAvatar-BAgTUIvX.js";import"./VProgressCircular-CrEXxs7k.js";import"./forwardRefs-Cpc3YYl6.js";import"./ssrBoot-BsxW6uW4.js";import"./VDataTable-D_0_xJTl.js";import"./VSelect-CS51PDEt.js";import"./VMenu-B_dVqOmo.js";import"./VCheckboxBtn-j7di4leN.js";import"./VSelectionControl-DiOqtY38.js";import"./VChip-nZ0uhY7t.js";import"./VTable-KsiZ3cBz.js";import"./filter-D7NrAf6a.js";const U={__name:"MessageList",setup(k){const{$gettext:t}=y(),d=[{title:t("Queue ID"),key:"queue_id"},{title:t("Date"),key:"date",width:"20%"},{title:t("Status"),key:"status"},{title:t("To"),key:"rcpt"},{title:t("From"),key:"sender"}],p=l(!0),u=l([]),i=l(""),f=l(0);function n({page:o,itemsPerPage:r,sortBy:e,search:w}){let g;e.length&&(g=(e[0].order==="desc"?"-":"")+e[0].key);const x={ordering:g,page:o,page_size:r,search:w};p.value=!0,D.getMessages(x).then(_=>{u.value=_.data.results,f.value=_.data.count,p.value=!1})}return n=F(n,500),(o,r)=>(V(),b(N,{class:"mt-6"},{default:a(()=>[s(I,{headers:d,items:u.value,search:i.value,class:"elevation-0","items-length":f.value,"onUpdate:options":n},{top:a(()=>[s(v,{flat:"",color:"white"},{default:a(()=>[s(C,{modelValue:i.value,"onUpdate:modelValue":r[0]||(r[0]=e=>i.value=e),"prepend-inner-icon":"mdi-magnify",placeholder:h(t)("Search"),variant:"outlined","hide-details":"",density:"compact",class:"flex-grow-0 w-33"},null,8,["modelValue","placeholder"])]),_:1})]),"item.date":a(({item:e})=>[m(c(o.$date(e.date)),1)]),"item.sender":a(({item:e})=>[m(c(o.$truncate(e.sender,50)),1)]),_:2},1032,["items","search","items-length"])]),_:1}))}},q={__name:"MessagesView",setup(k){return(t,d)=>(V(),M($,null,[s(v,{flat:""},{default:a(()=>[s(S,null,{default:a(()=>[m(c(t.$gettext("Message history")),1)]),_:1})]),_:1}),s(h(U))],64))}},ae=T(q,[["__scopeId","data-v-9c91b6c8"]]);export{ae as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{k as b,b as g,g as r,h as S,L as h,M as V,m as x,a as e,w as u,f as n,o as P,l as w,t as G}from"./index-DV9Li2cg.js";import{p}from"./parameters-Lgiqp7aw.js";import{P as A}from"./ParametersForm-BCeQljir.js";import{V as T,a as k}from"./VToolbar-CGwhgdmI.js";import{u as N}from"./global.store-DUP26-A5.js";import{u as B}from"./parameters.store-C9k9DuTj.js";import"./HtmlEditor-uM4AtIGi.js";import"./VAvatar-BAgTUIvX.js";import"./tag-CFK9dzMJ.js";import"./VProgressCircular-CrEXxs7k.js";import"./forwardRefs-Cpc3YYl6.js";import"./ssrBoot-BsxW6uW4.js";import"./VTabs-tNrJIYO0.js";import"./VWindowItem-wWSFAGI-.js";import"./VChip-nZ0uhY7t.js";import"./VMenu-B_dVqOmo.js";import"./VContainer-Btam4lk2.js";/* empty css */import"./VCard-DFWiFORP.js";import"./VSwitch-Chg5o-Cp.js";import"./VTextField-CLwRV0Cb.js";import"./VSelectionControl-DiOqtY38.js";import"./VSelect-CS51PDEt.js";import"./VCheckboxBtn-j7di4leN.js";import"./VTextarea-Di8jbl8m.js";import"./VColorPicker-Os2aeP6J.js";import"./colors-DoZdCu1D.js";import"./VPicker-CXkIGEze.js";import"./VSheet-5VVWtHvs.js";import"./admin-CJVLMHh9.js";const E={__name:"ParametersView",setup(M){const{$gettext:c}=g(),f=N(),o=V(),d=B(),s=r([]),i=r({}),m=r(""),_=S(()=>c("Settings: "+m.value));function l(t){p.getGlobalApplicationStructure(t).then(a=>{s.value=a.data}),p.getGlobalApplication(t).then(a=>{i.value=a.data.params,m.value=a.data.label})}function v(t){f.fetchNotifications(),o.params.app==="imap_migration"&&(d.imapMigrationEnabled=t.enabled_imapmigration)}return h(o,t=>{l(t.params.app)}),l(o.params.app),(t,a)=>(P(),x("div",null,[e(T,{flat:""},{default:u(()=>[e(k,null,{default:u(()=>[w(G(_.value),1)]),_:1})]),_:1}),e(n(A),{app:t.$route.params.app,structure:s.value,values:i.value,"save-function":n(p).saveGlobalApplication,onSuccess:v},null,8,["app","structure","values","save-function"])]))}},lt=b(E,[["__scopeId","data-v-6ffadfb6"]]);export{lt as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{k as v,b as d,g as e,h as _,L as V,M as g,m as h,a as r,w as u,f as c,o as x,l as b,t as w}from"./index-DV9Li2cg.js";import{P}from"./ParametersForm-BCeQljir.js";import{p as o}from"./parameters-Lgiqp7aw.js";import{V as A,a as T}from"./VToolbar-CGwhgdmI.js";import"./HtmlEditor-uM4AtIGi.js";import"./VAvatar-BAgTUIvX.js";import"./tag-CFK9dzMJ.js";import"./VProgressCircular-CrEXxs7k.js";import"./forwardRefs-Cpc3YYl6.js";import"./ssrBoot-BsxW6uW4.js";import"./VTabs-tNrJIYO0.js";import"./VWindowItem-wWSFAGI-.js";import"./VChip-nZ0uhY7t.js";import"./VMenu-B_dVqOmo.js";import"./VContainer-Btam4lk2.js";/* empty css */import"./VCard-DFWiFORP.js";import"./VSwitch-Chg5o-Cp.js";import"./VTextField-CLwRV0Cb.js";import"./VSelectionControl-DiOqtY38.js";import"./VSelect-CS51PDEt.js";import"./VCheckboxBtn-j7di4leN.js";import"./VTextarea-Di8jbl8m.js";import"./VColorPicker-Os2aeP6J.js";import"./colors-DoZdCu1D.js";import"./VPicker-CXkIGEze.js";import"./VSheet-5VVWtHvs.js";const k={__name:"ParametersView",setup(S){const{$gettext:n}=d(),p=g(),s=e(""),i=e([]),m=e({}),f=_(()=>n("Settings: "+s.value));function l(t){o.getUserApplicationStructure(t).then(a=>{i.value=a.data}),o.getUserApplication(t).then(a=>{m.value=a.data.params,s.value=a.data.label})}return V(p,t=>{l(t.params.app)}),l(p.params.app),(t,a)=>(x(),h("div",null,[r(A,{flat:""},{default:u(()=>[r(T,null,{default:u(()=>[b(w(f.value),1)]),_:1})]),_:1}),r(c(P),{app:t.$route.params.app,structure:i.value,values:m.value,"save-function":c(o).saveUserApplication},null,8,["app","structure","values","save-function"])]))}},at=v(k,[["__scopeId","data-v-3e7380ff"]]);export{at as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as U,n as M,h as A,g as x,c as k,o as u,w as e,a as o,f,B as L,e as O,m as h,G as W,F,l as p,t as g,s as q,k as H}from"./index-DV9Li2cg.js";import{_ as J}from"./CreationForm-C9Kh05ax.js";import{u as G,_ as K,a as Q}from"./ProviderGeneralForm-BwOSKNHK.js";import{_ as X}from"./MenuItems-kHCMzR5E.js";import{V as j}from"./VMenu-B_dVqOmo.js";import{V as N,d as E}from"./VAvatar-BAgTUIvX.js";import{V as T}from"./VChip-nZ0uhY7t.js";import{V as z,a as Y}from"./VToolbar-CGwhgdmI.js";import{V as Z}from"./forwardRefs-Cpc3YYl6.js";import{V as I}from"./VSpacer-C6PZ3X24.js";import{V as ee}from"./VTextField-CLwRV0Cb.js";import{V as oe}from"./VDataTable-D_0_xJTl.js";import{b as te}from"./VCard-DFWiFORP.js";import{V as ae}from"./VDialog-CZqM2Ofu.js";import"./ConfirmDialog-BvqxQsD1.js";import"./VRow-C_Ydf6yr.js";/* empty css */import"./tag-CFK9dzMJ.js";import"./VWindowItem-wWSFAGI-.js";import"./ssrBoot-BsxW6uW4.js";import"./VContainer-Btam4lk2.js";import"./VSheet-5VVWtHvs.js";import"./VProgressCircular-CrEXxs7k.js";import"./domains-nBMR-fRf.js";import"./VAutocomplete-Cc4_tcl1.js";import"./VSelect-CS51PDEt.js";import"./VCheckboxBtn-j7di4leN.js";import"./VSelectionControl-DiOqtY38.js";import"./filter-D7NrAf6a.js";import"./VForm-CpoZf60D.js";import"./VSwitch-Chg5o-Cp.js";import"./VTable-KsiZ3cBz.js";const re={__name:"ProviderCreationForm",emits:["close"],setup(D,{emit:s}){const d=s,{$gettext:i}=U(),c=M(),v=G(),B=A(()=>{const n=[];let l=!0;for(const V of a.value.domains){const R=V.new_domain?`${V.name} => ${V.new_domain.name}`:`${V.name} ${i("(the domain will be created locally)")}`;n.push({key:l?i("Associated domain"):"",value:R}),l=!1}return n}),b=A(()=>[{title:i("General"),items:[{key:i("Name"),value:a.value.name},{key:i("Address"),value:a.value.address},{key:i("Port"),value:a.value.port},{key:i("Secured"),value:a.value.secured,type:"yesno"}]},{title:i("Associated domains"),items:B.value}]),P=[{name:"general",title:i("General")},{name:"associated",title:i("Associated domains")}],a=x({domains:[]}),$=x(),C=x(),S={general:$,associated:C};w();function w(){a.value={name:"",address:"",port:993,secured:!0,domains:[]}}function m(){w(),d("close")}function r(n){return S.value[n.name]}function t(n){return console.log(a.value),S[n.name].value.vFormRef}function _(){}function y(){const n={...a.value};n.domains=[];for(const l of a.value.domains)l.new_domain?n.domains.push({name:l.name,new_domain:l.new_domain.pk}):n.domains.push(l);v.createProvider(n).then(()=>{c.displayNotification({msg:i("Provider created")}),m()})}return(n,l)=>(u(),k(f(J),{ref:"form",title:f(i)("New provider"),steps:P,"form-getter":r,"get-v-form-ref":t,"validate-object":_,"summary-sections":b.value,onClose:m,onCreate:y},{"form.general":e(()=>[o(Q,{ref_key:"general",ref:$,modelValue:a.value,"onUpdate:modelValue":l[0]||(l[0]=V=>a.value=V),class:"ml-4"},null,8,["modelValue"])]),"form.associated":e(()=>[o(K,{ref_key:"associated",ref:C,modelValue:a.value.domains,"onUpdate:modelValue":l[1]||(l[1]=V=>a.value.domains=V)},null,8,["modelValue"])]),_:2},1032,["title","summary-sections"]))}},se=["colspan"],ie={__name:"ProvidersList",setup(D){const{$gettext:s}=U(),d=G(),i=q(),c=A(()=>d.providers),v=A(()=>d.providersLoaded),B=[{title:s("Name"),key:"name"},{title:s("Address"),key:"address"},{title:s("Port"),key:"port"},{title:s("Secured"),key:"secured"},{title:s("Associated domains"),key:"domains"},{title:s("Actions"),key:"actions",sortable:!1,align:"right"}],b=x([]),P=x(""),a=x([]);function $(m){d.deleteProvider(m.id)}function C(m){i.push({name:"ProviderEdit",params:{id:m.id}})}function S(){const m=[];return m.push({label:s("Delete"),icon:"mdi-delete-outline",onClick:$,color:"red"}),m.push({label:s("Edit"),icon:"mdi-circle-edit-outline",onClick:C}),m}function w(){d.getProviders()}return v.value||w(),(m,r)=>(u(),k(te,{class:"mt-6"},{default:e(()=>[o(oe,{modelValue:b.value,"onUpdate:modelValue":r[1]||(r[1]=t=>b.value=t),expanded:a.value,"onUpdate:expanded":r[2]||(r[2]=t=>a.value=t),headers:B,items:Object.values(c.value),search:P.value,loading:!v.value,"item-value":"name","single-expand":"","show-select":"","onClick:row":r[3]||(r[3]=(t,_)=>_.expand(!_.isExpanded))},{top:e(()=>[o(z,{color:"white",flat:""},{default:e(()=>[o(j,{location:"bottom"},{activator:e(({props:t})=>[o(N,L(t,{variant:"flat","append-icon":"mdi-chevron-down",size:"small"}),{default:e(()=>[p(g(f(s)("Actions")),1)]),_:2},1040)]),default:e(()=>[o(Z,{density:"compact"})]),_:1}),o(N,{variant:"text",icon:"mdi-reload",onClick:w}),o(I),o(ee,{modelValue:P.value,"onUpdate:modelValue":r[0]||(r[0]=t=>P.value=t),"prepend-inner-icon":"mdi-magnify",placeholder:f(s)("Search"),"single-line":"",variant:"outlined","hide-details":""},null,8,["modelValue","placeholder"])]),_:1})]),"item.secured":e(({item:t})=>[t.secured===!0?(u(),k(E,{key:0,color:"green"},{default:e(()=>r[4]||(r[4]=[p(" mdi-lock ")])),_:1,__:[4]})):(u(),k(E,{key:1,color:"red"},{default:e(()=>r[5]||(r[5]=[p(" mdi-lock-off ")])),_:1,__:[5]}))]),"item.domains":e(({item:t})=>[t.domains.length>0?(u(),k(T,{key:0},{default:e(()=>[p(g(t.domains.length)+" associated domain(s) ",1)]),_:2},1024)):(u(),k(T,{key:1},{default:e(()=>r[6]||(r[6]=[p(" No associated domain ")])),_:1,__:[6]}))]),"expanded-item":e(({headers:t,item:_})=>[O("td",{colspan:t.length},[(u(!0),h(F,null,W(_.domains,(y,n)=>(u(),k(T,{key:n},{default:e(()=>[y.new_domain?(u(),h(F,{key:0},[p(g(y.name)+" --> "+g(y.new_domain.name),1)],64)):(u(),h(F,{key:1},[p(g(y.name)+" --> "+g(y.name),1)],64))]),_:2},1024))),128))],8,se)]),"item.actions":e(({item:t})=>[o(j,{"offset-y":""},{activator:e(({props:_})=>[o(N,L({icon:"mdi-dots-horizontal",variant:"text"},_),null,16)]),default:e(()=>[o(f(X),{items:S(),obj:t},null,8,["items","obj"])]),_:2},1024)]),_:2},1032,["modelValue","expanded","items","search","loading"])]),_:1}))}},ne={__name:"ProvidersView",setup(D){const{$gettext:s}=U(),d=x(!1);return(i,c)=>(u(),h("div",null,[o(z,{flat:""},{default:e(()=>[o(Y,null,{default:e(()=>[p(g(f(s)("Providers")),1)]),_:1}),o(I),o(N,{color:"primary",variant:"flat","prepend-icon":"mdi-plus",onClick:c[0]||(c[0]=v=>d.value=!0)},{default:e(()=>[p(g(f(s)("New")),1)]),_:1})]),_:1}),o(f(ie)),o(ae,{modelValue:d.value,"onUpdate:modelValue":c[2]||(c[2]=v=>d.value=v),fullscreen:"",scrollable:"",transition:"dialog-bottom-transition"},{default:e(()=>[o(f(re),{onClose:c[1]||(c[1]=v=>d.value=!1)})]),_:1},8,["modelValue"])]))}},ze=H(ne,[["__scopeId","data-v-1a3ee9c1"]]);export{ze as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{g as e,c as a,f as p,M as l,o as n}from"./index-DV9Li2cg.js";import{_ as s}from"./ComposeEmailForm-CNfI7ept.js";import{a as u}from"./webmail-KrD8ZhNM.js";import"./index-DzL89N4E.js";import"./VForm-CpoZf60D.js";import"./tag-CFK9dzMJ.js";import"./VTextField-CLwRV0Cb.js";import"./VAvatar-BAgTUIvX.js";import"./VProgressCircular-CrEXxs7k.js";import"./forwardRefs-Cpc3YYl6.js";import"./ssrBoot-BsxW6uW4.js";import"./VCard-DFWiFORP.js";import"./VFileInput-Cv9DIPki.js";import"./VChip-nZ0uhY7t.js";import"./VTable-KsiZ3cBz.js";import"./VSpacer-C6PZ3X24.js";/* empty css */import"./HtmlEditor-uM4AtIGi.js";import"./VTextarea-Di8jbl8m.js";import"./contacts-Bqckz8sr.js";import"./VToolbar-CGwhgdmI.js";import"./VRow-C_Ydf6yr.js";import"./VSelect-CS51PDEt.js";import"./VMenu-B_dVqOmo.js";import"./VCheckboxBtn-j7di4leN.js";import"./VSelectionControl-DiOqtY38.js";import"./filter-D7NrAf6a.js";import"./VDialog-CZqM2Ofu.js";const I={__name:"ReplyEmailView",setup(c){const t=l(),o=e(),r=i=>{o.value="",u.getEmailContent(t.query.mailbox,t.query.mailid,{context:"reply",dformat:i?"html":"plain"}).then(m=>{o.value=m.data})};return r(),(i,m)=>(n(),a(p(s),{"original-email":o.value,"reply-all":p(t).query.all==="true",onOnToggleHtmlMode:r},null,8,["original-email","reply-all"]))}};export{I as default};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import{_ as Ke,b as j,n as se,u as ce,h as J,g as _,d as pe,L as _e,c as O,o as P,w as c,a as u,l as S,t as g,f as m,p as me,e as k,an as Ce,ao as H,a5 as Ue,F as B,v as Ge,x as Ye,T as We,y as Je,Y as Xe,ad as re,a6 as Ze,am as je,a7 as et,B as Re,Z as tt,J as at,ap as Pe,m as D,q as W,G as xe,ak as G,S as ot,aq as nt,k as rt,i as Me}from"./index-DV9Li2cg.js";import{_ as lt}from"./AccountPasswordSubForm-g3IEGrgM.js";import{V as ae,r as oe}from"./VForm-CpoZf60D.js";import{V as Ne,c as Fe,a as Te,b as st}from"./VExpansionPanels-B5D6GOa3.js";import{V as K,u as it,c as ut,d as dt,e as ct}from"./VTextField-CLwRV0Cb.js";import{V as ft}from"./VAutocomplete-Cc4_tcl1.js";import{V as Q,d as be}from"./VAvatar-BAgTUIvX.js";import{c as ge,V as X,b as Z,a as Ee}from"./VCard-DFWiFORP.js";import{V as ve,a as de}from"./VRow-C_Ydf6yr.js";import{V as ee}from"./VAlert-B7mzOJIO.js";import{a as vt}from"./VMenu-B_dVqOmo.js";import{V as mt}from"./VProgressCircular-CrEXxs7k.js";import{b as ht,u as pt,c as gt}from"./tag-CFK9dzMJ.js";import{V as De}from"./VTable-KsiZ3cBz.js";import{V as yt}from"./VSpacer-C6PZ3X24.js";import{V as $e}from"./VDialog-CZqM2Ofu.js";import{V as Oe}from"./VTextarea-Di8jbl8m.js";import{V as Le}from"./VCheckbox-CKsH_vq3.js";import{_ as we}from"./ConfirmDialog-BvqxQsD1.js";import{V as _t}from"./VDataTableVirtual-BwVmkt4u.js";import{V as bt,a as wt}from"./VToolbar-CGwhgdmI.js";import{V as Ct,a as Et,b as ie,c as ue}from"./VTabs-tNrJIYO0.js";import"./VSwitch-Chg5o-Cp.js";import"./VSelectionControl-DiOqtY38.js";import"./forwardRefs-Cpc3YYl6.js";import"./ssrBoot-BsxW6uW4.js";import"./VSelect-CS51PDEt.js";import"./VCheckboxBtn-j7di4leN.js";import"./VChip-nZ0uhY7t.js";import"./filter-D7NrAf6a.js";/* empty css */import"./VDataTable-D_0_xJTl.js";import"./VWindowItem-wWSFAGI-.js";const kt="languages",At={getAll(){return Ke.get(`/${kt}/`)}},Vt={class:"m-label"},St={class:"m-label"},Rt={class:"m-label"},Pt={class:"text-disabled"},Mt={href:"https://explore.transifex.com/tonio/modoboa/",target:"_blank"},Nt={href:"https://github.com/modoboa/modoboa/issues/new/choose",target:"_blank"},Ft={class:"m-label"},Tt={class:"m-label"},It={__name:"ProfileForm",setup(n){const{$gettext:l,available:i}=j(),s=se(),f=ce(),h=J(()=>f.authUser),o=_({}),e=_(),t=_(),a=_({}),r=_([]),d=_(0),v=_(!1),p=_(!1),w=_("");function A(R){o.value={first_name:R.first_name,last_name:R.last_name,language:R.language,phone_number:R.phone_number,secondary_email:R.secondary_email}}async function N(){const{valid:R}=await e.value.validate();R&&(v.value=!0,f.updateAccount(o.value).then(()=>{s.displayNotification({msg:l("Profile updated")}),f.accountLanguage in i||(w.value=l("Language does no exist"))}).finally(()=>v.value=!1))}async function F(){const{valid:R}=await t.value.validate();if(R){p.value=!0;try{await f.updatePassword({password:o.value.password,new_password:o.value.new_password}),s.displayNotification({msg:l("Password updated")}),t.value.reset()}catch(C){C.status===400&&(a.value=C.response.data)}finally{p.value=!1}}}return pe(()=>{A(h.value),At.getAll().then(R=>{r.value=R.data})}),_e(()=>h,R=>{R?A(R):o.value={}}),(R,C)=>(P(),O(st,{modelValue:d.value,"onUpdate:modelValue":C[6]||(C[6]=y=>d.value=y),flat:""},{default:c(()=>[u(Ne,null,{default:c(()=>[u(Fe,null,{default:c(()=>[S(g(m(l)("General settings")),1)]),_:1}),u(Te,null,{default:c(()=>[u(ae,{ref_key:"profileForm",ref:e,onSubmit:me(N,["prevent"])},{default:c(()=>[k("label",Vt,g(m(l)("First name")),1),u(K,{modelValue:o.value.first_name,"onUpdate:modelValue":C[0]||(C[0]=y=>o.value.first_name=y),variant:"outlined",density:"compact"},null,8,["modelValue"]),k("label",St,g(m(l)("Last name")),1),u(K,{modelValue:o.value.last_name,"onUpdate:modelValue":C[1]||(C[1]=y=>o.value.last_name=y),variant:"outlined",density:"compact"},null,8,["modelValue"]),k("label",Rt,[S(g(m(l)("Language"))+" ",1),k("p",Pt,[S(g(m(l)("Feel free to improve the translations"))+" ",1),k("a",Mt,g(m(l)("here")),1),S(" "+g(m(l)("or suggest a new language"))+" ",1),k("a",Nt,g(m(l)("there")),1)])]),u(ft,{modelValue:o.value.language,"onUpdate:modelValue":C[2]||(C[2]=y=>o.value.language=y),items:r.value,"item-title":"label","item-value":"code",variant:"outlined",density:"compact","error-messages":w.value},null,8,["modelValue","items","error-messages"]),k("label",Ft,g(m(l)("Phone number")),1),u(K,{modelValue:o.value.phone_number,"onUpdate:modelValue":C[3]||(C[3]=y=>o.value.phone_number=y),label:m(l)("Phone number"),variant:"outlined",density:"compact"},null,8,["modelValue","label"]),k("label",Tt,g(m(l)("Secondary email")),1),u(K,{modelValue:o.value.secondary_email,"onUpdate:modelValue":C[4]||(C[4]=y=>o.value.secondary_email=y),variant:"outlined",density:"compact",rules:[m(oe).emailOrNull]},null,8,["modelValue","rules"]),u(Q,{color:"success",type:"submit",loading:v.value},{default:c(()=>[S(g(m(l)("Update settings")),1)]),_:1},8,["loading"])]),_:1},512)]),_:1})]),_:1}),u(Ne,null,{default:c(()=>[u(Fe,null,{default:c(()=>[S(g(m(l)("Password")),1)]),_:1}),u(Te,null,{default:c(()=>[u(ae,{ref_key:"passwordForm",ref:t,onSubmit:me(F,["prevent"])},{default:c(()=>[u(lt,{modelValue:o.value,"onUpdate:modelValue":C[5]||(C[5]=y=>o.value=y),"form-errors":a.value,"with-password-check":""},null,8,["modelValue","form-errors"]),u(Q,{color:"success",type:"submit",loading:p.value},{default:c(()=>[S(g(m(l)("Update Password")),1)]),_:1},8,["loading"])]),_:1},512)]),_:1})]),_:1})]),_:1},8,["modelValue"]))}};/*!
|
|
2
|
-
* qrcode.vue v3.6.0
|
|
3
|
-
* A Vue.js component to generate QRCode. Both support Vue 2 and Vue 3
|
|
4
|
-
* © 2017-PRESENT @scopewu(https://github.com/scopewu)
|
|
5
|
-
* MIT License.
|
|
6
|
-
*/var Y=function(){return Y=Object.assign||function(l){for(var i,s=1,f=arguments.length;s<f;s++){i=arguments[s];for(var h in i)Object.prototype.hasOwnProperty.call(i,h)&&(l[h]=i[h])}return l},Y.apply(this,arguments)};var ne;(function(n){var l=function(){function o(e,t,a,r){if(this.version=e,this.errorCorrectionLevel=t,this.modules=[],this.isFunction=[],e<o.MIN_VERSION||e>o.MAX_VERSION)throw new RangeError("Version value out of range");if(r<-1||r>7)throw new RangeError("Mask value out of range");this.size=e*4+17;for(var d=[],v=0;v<this.size;v++)d.push(!1);for(var v=0;v<this.size;v++)this.modules.push(d.slice()),this.isFunction.push(d.slice());this.drawFunctionPatterns();var p=this.addEccAndInterleave(a);if(this.drawCodewords(p),r==-1)for(var w=1e9,v=0;v<8;v++){this.applyMask(v),this.drawFormatBits(v);var A=this.getPenaltyScore();A<w&&(r=v,w=A),this.applyMask(v)}f(0<=r&&r<=7),this.mask=r,this.applyMask(r),this.drawFormatBits(r),this.isFunction=[]}return o.encodeText=function(e,t){var a=n.QrSegment.makeSegments(e);return o.encodeSegments(a,t)},o.encodeBinary=function(e,t){var a=n.QrSegment.makeBytes(e);return o.encodeSegments([a],t)},o.encodeSegments=function(e,t,a,r,d,v){if(a===void 0&&(a=1),r===void 0&&(r=40),d===void 0&&(d=-1),v===void 0&&(v=!0),!(o.MIN_VERSION<=a&&a<=r&&r<=o.MAX_VERSION)||d<-1||d>7)throw new RangeError("Invalid value");var p,w;for(p=a;;p++){var A=o.getNumDataCodewords(p,t)*8,N=h.getTotalBits(e,p);if(N<=A){w=N;break}if(p>=r)throw new RangeError("Data too long")}for(var F=0,R=[o.Ecc.MEDIUM,o.Ecc.QUARTILE,o.Ecc.HIGH];F<R.length;F++){var C=R[F];v&&w<=o.getNumDataCodewords(p,C)*8&&(t=C)}for(var y=[],b=0,V=e;b<V.length;b++){var T=V[b];i(T.mode.modeBits,4,y),i(T.numChars,T.mode.numCharCountBits(p),y);for(var E=0,M=T.getData();E<M.length;E++){var $=M[E];y.push($)}}f(y.length==w);var x=o.getNumDataCodewords(p,t)*8;f(y.length<=x),i(0,Math.min(4,x-y.length),y),i(0,(8-y.length%8)%8,y),f(y.length%8==0);for(var I=236;y.length<x;I^=253)i(I,8,y);for(var q=[];q.length*8<y.length;)q.push(0);return y.forEach(function(ye,fe){return q[fe>>>3]|=ye<<7-(fe&7)}),new o(p,t,q,d)},o.prototype.getModule=function(e,t){return 0<=e&&e<this.size&&0<=t&&t<this.size&&this.modules[t][e]},o.prototype.getModules=function(){return this.modules},o.prototype.drawFunctionPatterns=function(){for(var e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0),this.setFunctionModule(e,6,e%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);for(var t=this.getAlignmentPatternPositions(),a=t.length,e=0;e<a;e++)for(var r=0;r<a;r++)e==0&&r==0||e==0&&r==a-1||e==a-1&&r==0||this.drawAlignmentPattern(t[e],t[r]);this.drawFormatBits(0),this.drawVersion()},o.prototype.drawFormatBits=function(e){for(var t=this.errorCorrectionLevel.formatBits<<3|e,a=t,r=0;r<10;r++)a=a<<1^(a>>>9)*1335;var d=(t<<10|a)^21522;f(d>>>15==0);for(var r=0;r<=5;r++)this.setFunctionModule(8,r,s(d,r));this.setFunctionModule(8,7,s(d,6)),this.setFunctionModule(8,8,s(d,7)),this.setFunctionModule(7,8,s(d,8));for(var r=9;r<15;r++)this.setFunctionModule(14-r,8,s(d,r));for(var r=0;r<8;r++)this.setFunctionModule(this.size-1-r,8,s(d,r));for(var r=8;r<15;r++)this.setFunctionModule(8,this.size-15+r,s(d,r));this.setFunctionModule(8,this.size-8,!0)},o.prototype.drawVersion=function(){if(!(this.version<7)){for(var e=this.version,t=0;t<12;t++)e=e<<1^(e>>>11)*7973;var a=this.version<<12|e;f(a>>>18==0);for(var t=0;t<18;t++){var r=s(a,t),d=this.size-11+t%3,v=Math.floor(t/3);this.setFunctionModule(d,v,r),this.setFunctionModule(v,d,r)}}},o.prototype.drawFinderPattern=function(e,t){for(var a=-4;a<=4;a++)for(var r=-4;r<=4;r++){var d=Math.max(Math.abs(r),Math.abs(a)),v=e+r,p=t+a;0<=v&&v<this.size&&0<=p&&p<this.size&&this.setFunctionModule(v,p,d!=2&&d!=4)}},o.prototype.drawAlignmentPattern=function(e,t){for(var a=-2;a<=2;a++)for(var r=-2;r<=2;r++)this.setFunctionModule(e+r,t+a,Math.max(Math.abs(r),Math.abs(a))!=1)},o.prototype.setFunctionModule=function(e,t,a){this.modules[t][e]=a,this.isFunction[t][e]=!0},o.prototype.addEccAndInterleave=function(e){var t=this.version,a=this.errorCorrectionLevel;if(e.length!=o.getNumDataCodewords(t,a))throw new RangeError("Invalid argument");for(var r=o.NUM_ERROR_CORRECTION_BLOCKS[a.ordinal][t],d=o.ECC_CODEWORDS_PER_BLOCK[a.ordinal][t],v=Math.floor(o.getNumRawDataModules(t)/8),p=r-v%r,w=Math.floor(v/r),A=[],N=o.reedSolomonComputeDivisor(d),F=0,R=0;F<r;F++){var C=e.slice(R,R+w-d+(F<p?0:1));R+=C.length;var y=o.reedSolomonComputeRemainder(C,N);F<p&&C.push(0),A.push(C.concat(y))}for(var b=[],V=function(T){A.forEach(function(E,M){(T!=w-d||M>=p)&&b.push(E[T])})},F=0;F<A[0].length;F++)V(F);return f(b.length==v),b},o.prototype.drawCodewords=function(e){if(e.length!=Math.floor(o.getNumRawDataModules(this.version)/8))throw new RangeError("Invalid argument");for(var t=0,a=this.size-1;a>=1;a-=2){a==6&&(a=5);for(var r=0;r<this.size;r++)for(var d=0;d<2;d++){var v=a-d,p=(a+1&2)==0,w=p?this.size-1-r:r;!this.isFunction[w][v]&&t<e.length*8&&(this.modules[w][v]=s(e[t>>>3],7-(t&7)),t++)}}f(t==e.length*8)},o.prototype.applyMask=function(e){if(e<0||e>7)throw new RangeError("Mask value out of range");for(var t=0;t<this.size;t++)for(var a=0;a<this.size;a++){var r=void 0;switch(e){case 0:r=(a+t)%2==0;break;case 1:r=t%2==0;break;case 2:r=a%3==0;break;case 3:r=(a+t)%3==0;break;case 4:r=(Math.floor(a/3)+Math.floor(t/2))%2==0;break;case 5:r=a*t%2+a*t%3==0;break;case 6:r=(a*t%2+a*t%3)%2==0;break;case 7:r=((a+t)%2+a*t%3)%2==0;break;default:throw new Error("Unreachable")}!this.isFunction[t][a]&&r&&(this.modules[t][a]=!this.modules[t][a])}},o.prototype.getPenaltyScore=function(){for(var e=0,t=0;t<this.size;t++){for(var a=!1,r=0,d=[0,0,0,0,0,0,0],v=0;v<this.size;v++)this.modules[t][v]==a?(r++,r==5?e+=o.PENALTY_N1:r>5&&e++):(this.finderPenaltyAddHistory(r,d),a||(e+=this.finderPenaltyCountPatterns(d)*o.PENALTY_N3),a=this.modules[t][v],r=1);e+=this.finderPenaltyTerminateAndCount(a,r,d)*o.PENALTY_N3}for(var v=0;v<this.size;v++){for(var a=!1,p=0,d=[0,0,0,0,0,0,0],t=0;t<this.size;t++)this.modules[t][v]==a?(p++,p==5?e+=o.PENALTY_N1:p>5&&e++):(this.finderPenaltyAddHistory(p,d),a||(e+=this.finderPenaltyCountPatterns(d)*o.PENALTY_N3),a=this.modules[t][v],p=1);e+=this.finderPenaltyTerminateAndCount(a,p,d)*o.PENALTY_N3}for(var t=0;t<this.size-1;t++)for(var v=0;v<this.size-1;v++){var w=this.modules[t][v];w==this.modules[t][v+1]&&w==this.modules[t+1][v]&&w==this.modules[t+1][v+1]&&(e+=o.PENALTY_N2)}for(var A=0,N=0,F=this.modules;N<F.length;N++){var R=F[N];A=R.reduce(function(b,V){return b+(V?1:0)},A)}var C=this.size*this.size,y=Math.ceil(Math.abs(A*20-C*10)/C)-1;return f(0<=y&&y<=9),e+=y*o.PENALTY_N4,f(0<=e&&e<=2568888),e},o.prototype.getAlignmentPatternPositions=function(){if(this.version==1)return[];for(var e=Math.floor(this.version/7)+2,t=Math.floor((this.version*8+e*3+5)/(e*4-4))*2,a=[6],r=this.size-7;a.length<e;r-=t)a.splice(1,0,r);return a},o.getNumRawDataModules=function(e){if(e<o.MIN_VERSION||e>o.MAX_VERSION)throw new RangeError("Version number out of range");var t=(16*e+128)*e+64;if(e>=2){var a=Math.floor(e/7)+2;t-=(25*a-10)*a-55,e>=7&&(t-=36)}return f(208<=t&&t<=29648),t},o.getNumDataCodewords=function(e,t){return Math.floor(o.getNumRawDataModules(e)/8)-o.ECC_CODEWORDS_PER_BLOCK[t.ordinal][e]*o.NUM_ERROR_CORRECTION_BLOCKS[t.ordinal][e]},o.reedSolomonComputeDivisor=function(e){if(e<1||e>255)throw new RangeError("Degree out of range");for(var t=[],a=0;a<e-1;a++)t.push(0);t.push(1);for(var r=1,a=0;a<e;a++){for(var d=0;d<t.length;d++)t[d]=o.reedSolomonMultiply(t[d],r),d+1<t.length&&(t[d]^=t[d+1]);r=o.reedSolomonMultiply(r,2)}return t},o.reedSolomonComputeRemainder=function(e,t){for(var a=t.map(function(w){return 0}),r=function(w){var A=w^a.shift();a.push(0),t.forEach(function(N,F){return a[F]^=o.reedSolomonMultiply(N,A)})},d=0,v=e;d<v.length;d++){var p=v[d];r(p)}return a},o.reedSolomonMultiply=function(e,t){if(e>>>8||t>>>8)throw new RangeError("Byte out of range");for(var a=0,r=7;r>=0;r--)a=a<<1^(a>>>7)*285,a^=(t>>>r&1)*e;return f(a>>>8==0),a},o.prototype.finderPenaltyCountPatterns=function(e){var t=e[1];f(t<=this.size*3);var a=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(a&&e[0]>=t*4&&e[6]>=t?1:0)+(a&&e[6]>=t*4&&e[0]>=t?1:0)},o.prototype.finderPenaltyTerminateAndCount=function(e,t,a){return e&&(this.finderPenaltyAddHistory(t,a),t=0),t+=this.size,this.finderPenaltyAddHistory(t,a),this.finderPenaltyCountPatterns(a)},o.prototype.finderPenaltyAddHistory=function(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)},o.MIN_VERSION=1,o.MAX_VERSION=40,o.PENALTY_N1=3,o.PENALTY_N2=3,o.PENALTY_N3=40,o.PENALTY_N4=10,o.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],o.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],o}();n.QrCode=l;function i(o,e,t){if(e<0||e>31||o>>>e)throw new RangeError("Value out of range");for(var a=e-1;a>=0;a--)t.push(o>>>a&1)}function s(o,e){return(o>>>e&1)!=0}function f(o){if(!o)throw new Error("Assertion error")}var h=function(){function o(e,t,a){if(this.mode=e,this.numChars=t,this.bitData=a,t<0)throw new RangeError("Invalid argument");this.bitData=a.slice()}return o.makeBytes=function(e){for(var t=[],a=0,r=e;a<r.length;a++){var d=r[a];i(d,8,t)}return new o(o.Mode.BYTE,e.length,t)},o.makeNumeric=function(e){if(!o.isNumeric(e))throw new RangeError("String contains non-numeric characters");for(var t=[],a=0;a<e.length;){var r=Math.min(e.length-a,3);i(parseInt(e.substring(a,a+r),10),r*3+1,t),a+=r}return new o(o.Mode.NUMERIC,e.length,t)},o.makeAlphanumeric=function(e){if(!o.isAlphanumeric(e))throw new RangeError("String contains unencodable characters in alphanumeric mode");var t=[],a;for(a=0;a+2<=e.length;a+=2){var r=o.ALPHANUMERIC_CHARSET.indexOf(e.charAt(a))*45;r+=o.ALPHANUMERIC_CHARSET.indexOf(e.charAt(a+1)),i(r,11,t)}return a<e.length&&i(o.ALPHANUMERIC_CHARSET.indexOf(e.charAt(a)),6,t),new o(o.Mode.ALPHANUMERIC,e.length,t)},o.makeSegments=function(e){return e==""?[]:o.isNumeric(e)?[o.makeNumeric(e)]:o.isAlphanumeric(e)?[o.makeAlphanumeric(e)]:[o.makeBytes(o.toUtf8ByteArray(e))]},o.makeEci=function(e){var t=[];if(e<0)throw new RangeError("ECI assignment value out of range");if(e<128)i(e,8,t);else if(e<16384)i(2,2,t),i(e,14,t);else if(e<1e6)i(6,3,t),i(e,21,t);else throw new RangeError("ECI assignment value out of range");return new o(o.Mode.ECI,0,t)},o.isNumeric=function(e){return o.NUMERIC_REGEX.test(e)},o.isAlphanumeric=function(e){return o.ALPHANUMERIC_REGEX.test(e)},o.prototype.getData=function(){return this.bitData.slice()},o.getTotalBits=function(e,t){for(var a=0,r=0,d=e;r<d.length;r++){var v=d[r],p=v.mode.numCharCountBits(t);if(v.numChars>=1<<p)return 1/0;a+=4+p+v.bitData.length}return a},o.toUtf8ByteArray=function(e){e=encodeURI(e);for(var t=[],a=0;a<e.length;a++)e.charAt(a)!="%"?t.push(e.charCodeAt(a)):(t.push(parseInt(e.substring(a+1,a+3),16)),a+=2);return t},o.NUMERIC_REGEX=/^[0-9]*$/,o.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,o.ALPHANUMERIC_CHARSET="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:",o}();n.QrSegment=h})(ne||(ne={}));(function(n){(function(l){var i=function(){function s(f,h){this.ordinal=f,this.formatBits=h}return s.LOW=new s(0,1),s.MEDIUM=new s(1,0),s.QUARTILE=new s(2,3),s.HIGH=new s(3,2),s}();l.Ecc=i})(n.QrCode||(n.QrCode={}))})(ne||(ne={}));(function(n){(function(l){var i=function(){function s(f,h){this.modeBits=f,this.numBitsCharCount=h}return s.prototype.numCharCountBits=function(f){return this.numBitsCharCount[Math.floor((f+7)/17)]},s.NUMERIC=new s(1,[10,12,14]),s.ALPHANUMERIC=new s(2,[9,11,13]),s.BYTE=new s(4,[8,16,16]),s.KANJI=new s(8,[8,10,12]),s.ECI=new s(7,[0,0,0]),s}();l.Mode=i})(n.QrSegment||(n.QrSegment={}))})(ne||(ne={}));var le=ne,ke="L",Ae={L:le.QrCode.Ecc.LOW,M:le.QrCode.Ecc.MEDIUM,Q:le.QrCode.Ecc.QUARTILE,H:le.QrCode.Ecc.HIGH},Ut=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}();function Ve(n){return n in Ae}function Be(n,l){l===void 0&&(l=0);var i=[];return n.forEach(function(s,f){var h=null;s.forEach(function(o,e){if(!o&&h!==null){i.push("M".concat(h+l," ").concat(f+l,"h").concat(e-h,"v1H").concat(h+l,"z")),h=null;return}if(e===s.length-1){if(!o)return;h===null?i.push("M".concat(e+l,",").concat(f+l," h1v1H").concat(e+l,"z")):i.push("M".concat(h+l,",").concat(f+l," h").concat(e+1-h,"v1H").concat(h+l,"z"));return}o&&h===null&&(h=e)})}),i.join("")}function ze(n,l,i,s){var f=s.width,h=s.height,o=s.x,e=s.y,t=n.length+i*2,a=Math.floor(l*.1),r=t/l,d=(f||a)*r,v=(h||a)*r,p=o==null?n.length/2-d/2:o*r,w=e==null?n.length/2-v/2:e*r,A=null;if(s.excavate){var N=Math.floor(p),F=Math.floor(w),R=Math.ceil(d+p-N),C=Math.ceil(v+w-F);A={x:N,y:F,w:R,h:C}}return{x:p,y:w,h:v,w:d,excavation:A}}function Qe(n,l){return n.slice().map(function(i,s){return s<l.y||s>=l.y+l.h?i:i.map(function(f,h){return h<l.x||h>=l.x+l.w?f:!1})})}var Se={value:{type:String,required:!0,default:""},size:{type:Number,default:100},level:{type:String,default:ke,validator:function(n){return Ve(n)}},background:{type:String,default:"#fff"},foreground:{type:String,default:"#000"},margin:{type:Number,required:!1,default:0},imageSettings:{type:Object,required:!1,default:function(){return{}}},gradient:{type:Boolean,required:!1,default:!1},gradientType:{type:String,required:!1,default:"linear",validator:function(n){return["linear","radial"].indexOf(n)>-1}},gradientStartColor:{type:String,required:!1,default:"#000"},gradientEndColor:{type:String,required:!1,default:"#fff"}},xt=Y(Y({},Se),{renderAs:{type:String,required:!1,default:"canvas",validator:function(n){return["canvas","svg"].indexOf(n)>-1}}}),Dt=Ce({name:"QRCodeSvg",props:Se,setup:function(n){var l=_(0),i=_(""),s,f=function(){var o=n.value,e=n.level,t=n.margin,a=t>>>0,r=Ve(e)?e:ke,d=le.QrCode.encodeText(o,Ae[r]).getModules();if(l.value=d.length+a*2,n.imageSettings.src){var v=ze(d,n.size,a,n.imageSettings);s={x:v.x+a,y:v.y+a,width:v.w,height:v.h},v.excavation&&(d=Qe(d,v.excavation))}i.value=Be(d,a)},h=function(){if(!n.gradient)return null;var o=n.gradientType==="linear"?{x1:"0%",y1:"0%",x2:"100%",y2:"100%"}:{cx:"50%",cy:"50%",r:"50%",fx:"50%",fy:"50%"};return H(n.gradientType==="linear"?"linearGradient":"radialGradient",Y({id:"qr-gradient"},o),[H("stop",{offset:"0%",style:{stopColor:n.gradientStartColor}}),H("stop",{offset:"100%",style:{stopColor:n.gradientEndColor}})])};return f(),Ue(f),function(){return H("svg",{width:n.size,height:n.size,"shape-rendering":"crispEdges",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(l.value," ").concat(l.value)},[H("defs",{},[h()]),H("rect",{width:"100%",height:"100%",fill:n.background}),H("path",{fill:n.gradient?"url(#qr-gradient)":n.foreground,d:i.value}),n.imageSettings.src&&H("image",Y({href:n.imageSettings.src},s))])}}}),$t=Ce({name:"QRCodeCanvas",props:Se,setup:function(n,l){var i=_(null),s=_(null),f=function(){var o=n.value,e=n.level,t=n.size,a=n.margin,r=n.background,d=n.foreground,v=n.gradient,p=n.gradientType,w=n.gradientStartColor,A=n.gradientEndColor,N=a>>>0,F=Ve(e)?e:ke,R=i.value;if(R){var C=R.getContext("2d");if(C){var y=le.QrCode.encodeText(o,Ae[F]).getModules(),b=y.length+N*2,V=s.value,T={x:0,y:0,width:0,height:0},E=n.imageSettings.src&&V!=null&&V.naturalWidth!==0&&V.naturalHeight!==0;if(E){var M=ze(y,n.size,N,n.imageSettings);T={x:M.x+N,y:M.y+N,width:M.w,height:M.h},M.excavation&&(y=Qe(y,M.excavation))}var $=window.devicePixelRatio||1,x=t/b*$;if(R.height=R.width=t*$,C.scale(x,x),C.fillStyle=r,C.fillRect(0,0,b,b),v){var I=void 0;p==="linear"?I=C.createLinearGradient(0,0,b,b):I=C.createRadialGradient(b/2,b/2,0,b/2,b/2,b/2),I.addColorStop(0,w),I.addColorStop(1,A),C.fillStyle=I}else C.fillStyle=d;Ut?C.fill(new Path2D(Be(y,N))):y.forEach(function(q,ye){q.forEach(function(fe,He){fe&&C.fillRect(He+N,ye+N,1,1)})}),E&&C.drawImage(V,T.x,T.y,T.width,T.height)}}};pe(f),Ue(f);var h=l.attrs.style;return function(){return H(B,[H("canvas",Y(Y({},l.attrs),{ref:i,style:Y(Y({},h),{width:"".concat(n.size,"px"),height:"".concat(n.size,"px")})})),n.imageSettings.src&&H("img",{ref:s,src:n.imageSettings.src,style:{display:"none"},onLoad:f})])}}}),Ot=Ce({name:"Qrcode",render:function(){var n=this.$props,l=n.renderAs,i=n.value,s=n.size,f=n.margin,h=n.level,o=n.background,e=n.foreground,t=n.imageSettings,a=n.gradient,r=n.gradientType,d=n.gradientStartColor,v=n.gradientEndColor;return H(l==="svg"?Dt:$t,{value:i,size:s,margin:f,level:h,background:o,foreground:e,imageSettings:t,gradient:a,gradientType:r,gradientStartColor:d,gradientEndColor:v})},props:xt});const Lt=Ye({autofocus:Boolean,divider:String,focusAll:Boolean,label:{type:String,default:"$vuetify.input.otp"},length:{type:[Number,String],default:6},modelValue:{type:[Number,String],default:void 0},placeholder:String,type:{type:String,default:"number"},...gt(),...dt(),...tt(ct({variant:"outlined"}),["baseColor","bgColor","class","color","disabled","error","loading","rounded","style","theme","variant"])},"VOtpInput"),Bt=Ge()({name:"VOtpInput",props:Lt(),emits:{finish:n=>!0,"update:focused":n=>!0,"update:modelValue":n=>!0},setup(n,l){let{attrs:i,emit:s,slots:f}=l;const{dimensionStyles:h}=ht(n),{isFocused:o,focus:e,blur:t}=it(n),a=We(n,"modelValue","",E=>E==null?[]:String(E).split(""),E=>E.join("")),{t:r}=Je(),d=J(()=>Number(n.length)),v=J(()=>Array(d.value).fill(0)),p=_(-1),w=_(),A=_([]),N=J(()=>A.value[p.value]);function F(){if(T(N.value.value)){N.value.value="";return}const E=a.value.slice(),M=N.value.value;E[p.value]=M;let $=null;p.value>a.value.length?$=a.value.length+1:p.value+1!==d.value&&($="next"),a.value=E,$&&Pe(w.value,$)}function R(E){const M=a.value.slice(),$=p.value;let x=null;["ArrowLeft","ArrowRight","Backspace","Delete"].includes(E.key)&&(E.preventDefault(),E.key==="ArrowLeft"?x="prev":E.key==="ArrowRight"?x="next":["Backspace","Delete"].includes(E.key)&&(M[p.value]="",a.value=M,p.value>0&&E.key==="Backspace"?x="prev":requestAnimationFrame(()=>{var I;(I=A.value[$])==null||I.select()})),requestAnimationFrame(()=>{x!=null&&Pe(w.value,x)}))}function C(E,M){var x,I;M.preventDefault(),M.stopPropagation();const $=((x=M==null?void 0:M.clipboardData)==null?void 0:x.getData("Text").trim().slice(0,d.value))??"";T($)||(a.value=$.split(""),(I=A.value)==null||I[E].blur())}function y(){a.value=[]}function b(E,M){e(),p.value=M}function V(){t(),p.value=-1}function T(E){return n.type==="number"&&/[^0-9]/g.test(E)}return Xe({VField:{color:re(()=>n.color),bgColor:re(()=>n.color),baseColor:re(()=>n.baseColor),disabled:re(()=>n.disabled),error:re(()=>n.error),variant:re(()=>n.variant)}},{scoped:!0}),_e(a,E=>{E.length===d.value&&(p.value=d.value-1,s("finish",E.join("")))},{deep:!0}),_e(p,E=>{E<0||Ze(()=>{var M;(M=A.value[E])==null||M.select()})}),pt(()=>{var $;const[E,M]=je(i);return k("div",Re({class:["v-otp-input",{"v-otp-input--divided":!!n.divider},n.class],style:[n.style]},E),[k("div",{ref:w,class:"v-otp-input__content",style:et([h.value])},[v.value.map((x,I)=>k(B,null,[n.divider&&I!==0&&k("span",{class:"v-otp-input__divider"},[n.divider]),u(ut,{focused:o.value&&n.focusAll||p.value===I,key:I},{...f,loader:void 0,default:()=>k("input",{ref:q=>A.value[I]=q,"aria-label":r(n.label,I+1),autofocus:I===0&&n.autofocus,autocomplete:"one-time-code",class:at(["v-otp-input__field"]),disabled:n.disabled,inputmode:n.type==="number"?"numeric":"text",min:n.type==="number"?0:void 0,maxlength:I===0?d.value:"1",placeholder:n.placeholder,type:n.type==="number"?"text":n.type,value:a.value[I],onInput:F,onFocus:q=>b(q,I),onBlur:V,onKeydown:R,onPaste:q=>C(I,q)},null)})])),k("input",Re({class:"v-otp-input-input",type:"hidden"},M,{value:a.value.join("")}),null),u(vt,{contained:!0,"content-class":"v-otp-input__loader","model-value":!!n.loading,persistent:!0},{default:()=>{var x;return[((x=f.loader)==null?void 0:x.call(f))??u(mt,{color:typeof n.loading=="boolean"?void 0:n.loading,indeterminate:!0,size:"24",width:"2"},null)]}}),($=f.default)==null?void 0:$.call(f)])])}),{blur:()=>{var E;(E=A.value)==null||E.some(M=>M.blur())},focus:()=>{var E;(E=A.value)==null||E[0].focus()},reset:y,isFocused:o}}}),zt={class:"text-h6"},Qt={class:"m-label"},qt={class:"mt-4"},Ht={class:"m-label"},Kt={class:"mt-5"},Gt={tag:"p",class:"my-4"},Yt={__name:"TotpAuthForm",setup(n){const{$gettext:l}=j(),i=se(),s=ce(),f=_(),h=_(""),o=_([]),e=_(null),t=_(null),a=_(!1),r=_(!1),d=_(""),v=_([]),p=_([]),w=_(!1),A=J(()=>s.authUser.totp_enabled);function N(){G.getKeyForTFASetup().then(b=>{e.value=b.data.key,t.value=b.data.url})}function F(){navigator.clipboard.writeText(e.value),a.value=!0}function R(){G.startTFASetup().then(()=>{N()})}function C(){s.finalizeTFASetup(h.value).then(b=>{e.value=null,t.value=null,b.status===200&&(p.value=b.data.tokens),w.value=!0}).catch(b=>{b.response.status===400&&(o.value=b.response.data.pin_code)})}async function y(){if(!await f.value.validate())return;const V={password:d.value};r.value=!0,G.disableTFA(V).then(()=>{s.fetchUser()}).catch(T=>{T.response.status===400?v.value=T.response.data.password:i.displayNotification({msg:l(T.response.data),type:"error"})}).finally(()=>{r.value=!1,f.value.reset()})}return(b,V)=>(P(),D("div",null,[u(Z,{flat:""},{default:c(()=>[u(ge,null,{default:c(()=>[k("span",zt,g(m(l)("One-time passwords")),1)]),_:1}),u(X,null,{default:c(()=>[t.value?(P(),O(ve,{key:0},{default:c(()=>[u(de,{cols:"4"},{default:c(()=>[u(ve,{rows:"2"},{default:c(()=>[u(Ot,{value:t.value,size:250,"render-as":"svg",level:"H",class:"qrcode"},null,8,["value"])]),_:1}),u(ve,null,{default:c(()=>[u(Q,{color:"primary",class:"key",onClick:F},{default:c(()=>[S(g(m(l)("Click here to copy the key"))+" ",1),a.value?(P(),O(be,{key:0,color:"success"},{default:c(()=>V[2]||(V[2]=[S(" mdi-check-all ")])),_:1,__:[2]})):W("",!0)]),_:1})]),_:1})]),_:1}),u(de,{cols:"6"},{default:c(()=>[u(ee,{type:"info",class:"ma-4"},{default:c(()=>[S(g(m(l)("Install a soft token authenticator like FreeOTP or Google Authenticator from your application repository and use that app to scan this QR code.")),1)]),_:1}),k("label",Qt,g(m(l)("Pin code")),1),u(Bt,{modelValue:h.value,"onUpdate:modelValue":V[0]||(V[0]=T=>h.value=T),error:o.value.length!==0},null,8,["modelValue","error"]),u(Q,{color:"primary",onClick:C},{default:c(()=>[S(g(m(l)("Register")),1)]),_:1})]),_:1})]),_:1})):w.value?(P(),D(B,{key:1},[u(ee,{type:"success"},{default:c(()=>[S(g(m(l)("Congratulations! Two-factor authentication using one-time passwords is now enabled for your account.")),1)]),_:1}),p.value.length?(P(),D(B,{key:0},[k("p",qt,g(m(l)("The following recovery codes can be used one time each to let you regain access to your account, in case you lose your phone for example. Make sure to save them in a safe place, otherwise you won't be able to access your account anymore.")),1),u(De,{density:"compact"},{default:c(()=>[k("tbody",null,[(P(!0),D(B,null,xe(p.value,T=>(P(),D("tr",{key:T},[k("td",null,g(T),1)]))),128))])]),_:1})],64)):W("",!0)],64)):A.value?(P(),D(B,{key:2},[u(ee,{type:"info",class:"mb-2"},{default:c(()=>[S(g(m(l)("Two-factor authentication using one-time passwords is enabled for your account.")),1)]),_:1}),u(ae,{ref_key:"editTFAForm",ref:f},{default:c(()=>[k("label",Ht,g(m(l)("Password")),1),u(K,{modelValue:d.value,"onUpdate:modelValue":V[1]||(V[1]=T=>d.value=T),autocomplete:"new-password",type:"password",variant:"outlined",density:"compact",rules:[m(oe).required],"error-messages":v.value},null,8,["modelValue","rules","error-messages"]),k("div",Kt,[u(Q,{color:"error",class:"mr-2",loading:r.value,onClick:y},{default:c(()=>[S(g(m(l)("Disable 2FA")),1)]),_:1},8,["loading"])])]),_:1},512)],64)):(P(),D(B,{key:3},[k("div",Gt,g(m(l)("Two-factor authentication (2FA) using one-time passwords is not yet activated for your account.")),1),u(Q,{color:"success",onClick:R},{default:c(()=>[S(g(m(l)("Register authenticator")),1)]),_:1})],64))]),_:1})]),_:1})]))}},Wt={class:"headline"},qe={__name:"RecoveryCodesResetDialog",props:{tokens:{type:Array,default:null}},emits:["close"],setup(n,{emit:l}){const{$gettext:i}=j(),s=l;function f(){s("close")}return(h,o)=>(P(),O(Z,null,{default:c(()=>[u(ge,null,{default:c(()=>[k("span",Wt,g(m(i)("New recovery codes")),1)]),_:1}),u(X,null,{default:c(()=>[u(ee,{type:"info"},{default:c(()=>[S(g(m(i)("The following recovery codes can be used one time each to let you regain access to your account, in case you lose your phone for example. Make sure to save them in a safe place, otherwise you won't be able to access your account anymore.")),1)]),_:1}),u(De,{class:"mt-4",density:"compact"},{default:c(()=>[k("tbody",null,[(P(!0),D(B,null,xe(n.tokens,e=>(P(),D("tr",{key:e},[k("td",null,g(e),1)]))),128))])]),_:1})]),_:1}),u(Ee,null,{default:c(()=>[u(yt),u(Q,{color:"grey darken-1",text:"",onClick:f},{default:c(()=>[S(g(m(i)("Close")),1)]),_:1})]),_:1})]),_:1}))}},Jt={class:"text-h6"},Xt={class:"m-label"},Zt={class:"mt-5"},jt={key:1,tag:"p",class:"my-4"},ea={__name:"BackupCodeAuthForm",setup(n){const{$gettext:l}=j(),i=se(),s=ce(),f=J(()=>s.authUser.tfa_enabled),h=_(!1),o=_(),e=_(""),t=_([]),a=_(),r=_(!1);async function d(){if(!await o.value.validate())return;const w={password:e.value};h.value=!0,G.resetRecoveryCodes(w).then(A=>{t.value=A.data.tokens,r.value=!0}).catch(A=>{A.response.status===400?a.value=A.response.data.password:i.displayNotification({msg:l(A.response.data),type:"error"})}).finally(()=>{h.value=!1,o.value.reset()})}function v(){t.value=[],r.value=!1}return(p,w)=>(P(),D("div",null,[u(Z,{flat:""},{default:c(()=>[u(ge,null,{default:c(()=>[k("span",Jt,g(m(l)("Backup codes")),1)]),_:1}),u(X,null,{default:c(()=>[f.value?(P(),D(B,{key:0},[u(ee,{type:"info",class:"mb-2"},{default:c(()=>[S(g(m(l)("You already have generated backup codes for this account. If you don't remember them or have used them all, you can generate new ones.")),1)]),_:1}),u(ae,{ref_key:"editTFAForm",ref:o},{default:c(()=>[k("label",Xt,g(m(l)("Password")),1),u(K,{modelValue:e.value,"onUpdate:modelValue":w[0]||(w[0]=A=>e.value=A),autocomplete:"new-password",type:"password",variant:"outlined",density:"compact",rules:[m(oe).required],"error-messages":a.value},null,8,["modelValue","rules","error-messages"]),k("div",Zt,[u(Q,{loading:h.value,color:"success",onClick:d},{default:c(()=>[S(g(m(l)("Reset recovery codes")),1)]),_:1},8,["loading"])])]),_:1},512)],64)):(P(),D("div",jt,g(m(l)("No two-factor authentificator is yet set for your account.")),1)),u($e,{modelValue:r.value,"onUpdate:modelValue":w[1]||(w[1]=A=>r.value=A),"max-width":"800px",persistent:""},{default:c(()=>[u(m(qe),{tokens:t.value,onClose:v},null,8,["tokens"])]),_:1},8,["modelValue"])]),_:1})]),_:1})]))}},ta={class:"m-label"},aa={__name:"ForwardForm",setup(n){const{$gettext:l}=j(),i=se(),s=_({}),f=_(!1);function h(){f.value=!0,G.setForward(s.value).then(()=>{f.value=!1,i.displayNotification({type:"success",msg:l("Forward updated")})})}return G.getForward().then(o=>{s.value=o.data}),(o,e)=>(P(),O(Z,{flat:""},{default:c(()=>[u(X,null,{default:c(()=>[k("label",ta,g(m(l)("Recipient(s)")),1),u(Oe,{modelValue:s.value.recipients,"onUpdate:modelValue":e[0]||(e[0]=t=>s.value.recipients=t),hint:m(l)("Indicate one or more recipients separated by a comma (,)"),"persistent-hint":"",rows:"3",variant:"outlined"},null,8,["modelValue","hint"]),u(Le,{modelValue:s.value.keepcopies,"onUpdate:modelValue":e[1]||(e[1]=t=>s.value.keepcopies=t),label:m(l)("Keep local copies"),hint:m(l)("Forward messages and store copies into your local mailbox"),"persistent-hint":""},null,8,["modelValue","label","hint"])]),_:1}),u(Ee,{class:"pa-4"},{default:c(()=>[u(Q,{color:"success",variant:"flat",loading:f.value,onClick:h},{default:c(()=>[S(g(m(l)("Update")),1)]),_:1},8,["loading"])]),_:1})]),_:1}))}},oa={class:"m-label"},na={class:"mb-4"},ra={class:"m-label"},la={class:"mb-4"},sa={class:"m-label"},ia={class:"mb-4"},ua={class:"m-label"},da={__name:"AutoReplyForm",setup(n){const l=se(),{$gettext:i}=j(),s=_({}),f=_(),h=_(!1);async function o(){const{valid:e}=await f.value.validate();e&&(h.value=!0,s.value.fromdate===""&&(s.value.fromdate=null),s.value.untildate===""&&(s.value.untildate=null),G.setARMessage(s.value).then(()=>{l.displayNotification({msg:i("Auto-reply message updated")}),h.value=!1}).catch(()=>{h.value=!1}))}return G.getARMessage().then(e=>{s.value=e.data,s.value.fromdate&&(s.value.fromdate=s.value.fromdate.slice(0,-4)),s.value.untildate&&(s.value.untildate=s.value.untildate.slice(0,-4))}),(e,t)=>(P(),O(Z,{flat:""},{default:c(()=>[u(X,null,{default:c(()=>[u(ae,{ref_key:"formRef",ref:f,onSubmit:me(o,["prevent"])},{default:c(()=>[u(Le,{modelValue:s.value.enabled,"onUpdate:modelValue":t[0]||(t[0]=a=>s.value.enabled=a),label:m(i)("Enabled"),color:"primary","hide-details":"",class:"mb-4"},null,8,["modelValue","label"]),k("label",oa,g(m(i)("Subject")),1),u(K,{modelValue:s.value.subject,"onUpdate:modelValue":t[1]||(t[1]=a=>s.value.subject=a),variant:"outlined",density:"compact",rules:[m(oe).required]},null,8,["modelValue","rules"]),k("div",na,[k("label",ra,g(m(i)("Content")),1),u(Oe,{modelValue:s.value.content,"onUpdate:modelValue":t[2]||(t[2]=a=>s.value.content=a),hint:m(i)("The content of your answer. You can use the following variables, which will be automatically replaced by the appropriate value: %(name)s, %(fromdate)s, %(untildate)s"),"persistent-hint":"",variant:"outlined",rows:"3",density:"compact",rules:[m(oe).required]},null,8,["modelValue","hint","rules"])]),k("div",la,[k("label",sa,g(m(i)("From")),1),u(K,{modelValue:s.value.fromdate,"onUpdate:modelValue":t[3]||(t[3]=a=>s.value.fromdate=a),hint:m(i)("Activate your auto reply from this date"),variant:"outlined","persistent-hint":"",type:"datetime-local",density:"compact"},null,8,["modelValue","hint"])]),k("div",ia,[k("label",ua,g(m(i)("Until")),1),u(K,{modelValue:s.value.untildate,"onUpdate:modelValue":t[4]||(t[4]=a=>s.value.untildate=a),hint:m(i)("Activate your auto reply until this date"),variant:"outlined","persistent-hint":"",type:"datetime-local",density:"compact"},null,8,["modelValue","hint"])]),u(Q,{color:"success",type:"submit",loading:h.value},{default:c(()=>[S(g(m(i)("Update auto-reply")),1)]),_:1},8,["loading"])]),_:1},512)]),_:1})]),_:1}))}},ca={class:"m-label"},fa={class:"ml-5 mr-5"},va=["href"],ma={__name:"APISetupForm",setup(n){const{$gettext:l}=j(),i=se(),s=ot("$config"),f=J(()=>s.API_DOC_URL),h=_(!1),o=_(null),e=_();function t(){navigator.clipboard.writeText(o.value),i.displayNotification({msg:l("API token copied to your clipboard"),type:"success"})}function a(){h.value=!0,G.createAPIToken().then(v=>{o.value=v.data.token,i.displayNotification({msg:l("API token created"),type:"success"})}).finally(()=>h.value=!1)}function r(){e.value.open(l("Warning"),l("You are about to delete your API access token"),{color:"error",cancelLabel:l("Cancel"),agreeLabel:l("Proceed")})}async function d(){await G.deleteAPIToken(),i.displayNotification({msg:l("API token deleted"),type:"success"}),o.value=null}return pe(()=>{G.getAPIToken().then(v=>{o.value=v.data.token})}),(v,p)=>(P(),D(B,null,[o.value?(P(),O(Z,{key:1,flat:""},{default:c(()=>[u(X,null,{default:c(()=>[k("label",ca,g(m(l)("Your API token is:")),1),k("code",fa,g(o.value),1),u(Q,{icon:"mdi-clipboard-plus",density:"compact",title:m(l)("Copy token to clipboard"),variant:"text",onClick:p[0]||(p[0]=w=>t())},null,8,["title"]),u(Q,{icon:"mdi-delete",density:"compact",color:"error",variant:"text",title:m(l)("Delete token"),onClick:r},null,8,["title"])]),_:1})]),_:1})):(P(),O(Z,{key:0,flat:""},{default:c(()=>[u(X,null,{default:c(()=>[S(g(m(l)("Your API token has not been generated yet.")),1)]),_:1}),u(Ee,null,{default:c(()=>[u(Q,{color:"success",variant:"flat",loading:h.value,onClick:a},{default:c(()=>[S(g(m(l)("Generate")),1)]),_:1},8,["loading"])]),_:1})]),_:1})),u(ee,{type:"info",variant:"tonal",border:"start",class:"mt-4"},{default:c(()=>[S(g(m(l)("A documentation of the API is available"))+" ",1),k("a",{href:f.value,target:"_blank"},g(m(l)("here")),9,va),p[1]||(p[1]=S(". "))]),_:1,__:[1]}),u(we,{ref_key:"confirm",ref:e,onAgree:d},null,512)],64))}};function ha(n){const l="==".slice(0,(4-n.length%4)%4),i=n.replace(/-/g,"+").replace(/_/g,"/")+l,s=atob(i),f=new ArrayBuffer(s.length),h=new Uint8Array(f);for(let o=0;o<s.length;o++)h[o]=s.charCodeAt(o);return f}function pa(n){const l=new Uint8Array(n);let i="";for(const h of l)i+=String.fromCharCode(h);return btoa(i).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}var U="copy",te="convert";function he(n,l,i){if(l===U)return i;if(l===te)return n(i);if(l instanceof Array)return i.map(s=>he(n,l[0],s));if(l instanceof Object){const s={};for(const[f,h]of Object.entries(l)){if(h.derive){const o=h.derive(i);o!==void 0&&(i[f]=o)}if(!(f in i)){if(h.required)throw new Error(`Missing key: ${f}`);continue}if(i[f]==null){s[f]=null;continue}s[f]=he(n,h.schema,i[f])}return s}}function Ie(n,l){return{required:!0,schema:n,derive:l}}function L(n){return{required:!0,schema:n}}function z(n){return{required:!1,schema:n}}var ga={type:L(U),id:L(te),transports:z(U)},ya={appid:z(U),appidExclude:z(U),credProps:z(U)},_a={appid:z(U),appidExclude:z(U),credProps:z(U)},ba={publicKey:L({rp:L(U),user:L({id:L(te),name:L(U),displayName:L(U)}),challenge:L(te),pubKeyCredParams:L(U),timeout:z(U),excludeCredentials:z([ga]),authenticatorSelection:z(U),attestation:z(U),extensions:z(ya)}),signal:z(U)},wa={type:L(U),id:L(U),rawId:L(te),authenticatorAttachment:z(U),response:L({clientDataJSON:L(te),attestationObject:L(te),transports:Ie(U,n=>{var l;return((l=n.getTransports)==null?void 0:l.call(n))||[]})}),clientExtensionResults:Ie(_a,n=>n.getClientExtensionResults())};function Ca(n){return he(ha,ba,n)}function Ea(n){return he(pa,wa,n)}async function ka(n){const l=await navigator.credentials.create(n);return l.toJSON=()=>Ea(l),l}const Aa={class:"text-h6"},Va={tag:"p",class:"my-4"},Sa={__name:"FidoAuthForm",setup(n){const l=ce(),{$gettext:i}=j(),s=_(),f=_(!1),h=!!(navigator.credentials&&navigator.credentials.create&&navigator.credentials.get&&window.PublicKeyCredential),o=_(),e=J(()=>l.fidoCreds),t=[{title:i("Name"),key:"name"},{title:i("Added On"),key:"added_on"},{title:i("Last Used"),key:"last_used"},{title:i("Use count"),key:"use_count"},{title:i("Actions"),key:"actions"}],a=_(),r=_(),d=_(),v=_(""),p=_(),w=_(!1);async function A(){const{valid:y}=await o.value.validate();if(!y)return;f.value=!0;const b=await nt.beginFidoRegistration();if(b){const V=Ca(b.data),E=(await ka(V)).toJSON();E.name=s.value,l.addFidoCred(E).then(M=>{M.status===200&&(p.value=M.data.tokens,w.value=!0)}),o.value.reset(),f.value=!1;return}f.value=!1}function N(){p.value=[],w.value=!1}async function F(y){await a.value.open(i("Warning"),i("Do you really want to delete this WebAuthn device?"),{color:"warning",cancelLabel:i("No"),agreeLabel:i("Yes")})&&l.deleteFidoCreds(y.id)}async function R(){return(await d.value.validate()).valid}async function C(y){if(v.value=y.name,!await r.value.open(i("Edition"),i("Edit your device"),{color:"warning",cancelLabel:i("Cancel"),agreeLabel:i("Save")}))return;const V={name:v.value};await l.editFidoCred(y.id,V)}return pe(()=>{l.getFidoCreds()}),(y,b)=>(P(),D(B,null,[k("div",null,[u(Z,{flat:""},{default:c(()=>[u(ge,null,{default:c(()=>[k("span",Aa,g(m(i)("WebAuthn")),1)]),_:1}),u(X,null,{default:c(()=>[u(ve,null,{default:c(()=>[e.value.length===0?(P(),O(de,{key:0,cols:"4"},{default:c(()=>[k("div",Va,g(m(i)("You don't have any WebAuthN device registered as a second authentication method.")),1)]),_:1})):(P(),O(de,{key:1,cols:"8"},{default:c(()=>[k("h3",null,g(m(i)("Registered Webauthn devices")),1),u(_t,{headers:t,items:e.value,"item-value":"id"},{"item.added_on":c(({item:V})=>[S(g(y.$date(V.added_on)),1)]),"item.last_used":c(({item:V})=>[V.last_used===null?(P(),D(B,{key:0},[S(g(m(i)("Never")),1)],64)):(P(),D(B,{key:1},[S(g(y.$date(V.last_used)),1)],64))]),"item.enabled":c(({item:V})=>[S(g(y.$yesno(V.enabled)),1)]),"item.actions":c(({item:V})=>[u(be,{class:"me-2",size:"small",onClick:T=>C(V)},{default:c(()=>b[3]||(b[3]=[S(" mdi-pencil ")])),_:2,__:[3]},1032,["onClick"]),u(be,{size:"small",onClick:T=>F(V)},{default:c(()=>b[4]||(b[4]=[S(" mdi-delete ")])),_:2,__:[4]},1032,["onClick"])]),_:2},1032,["items"])]),_:1})),u(de,{cols:"4"},{default:c(()=>[h?(P(),D(B,{key:0},[k("h3",null,g(m(i)("Enter a name to register a new webauthn device.")),1),u(ae,{ref_key:"fidoForm",ref:o,onSubmit:me(A,["prevent"])},{default:c(()=>[u(K,{modelValue:s.value,"onUpdate:modelValue":b[0]||(b[0]=V=>s.value=V),label:m(i)("New device name"),rules:[m(oe).required]},null,8,["modelValue","label","rules"]),u(Q,{color:"success",type:"submit",loading:f.value},{default:c(()=>[S(g(m(i)("Setup device")),1)]),_:1},8,["loading"])]),_:1},512)],64)):(P(),O(ee,{key:1,type:"error"},{default:c(()=>[S(g(m(i)("Your browser does not seem compatible with WebAuthN")),1)]),_:1}))]),_:1})]),_:1})]),_:1})]),_:1})]),u(we,{ref_key:"confirmDeletion",ref:a},null,512),u(we,{ref_key:"confirmEdition",ref:r,callback_agree:R},{default:c(()=>[u(ae,{ref_key:"editForm",ref:d},{default:c(()=>[u(K,{modelValue:v.value,"onUpdate:modelValue":b[1]||(b[1]=V=>v.value=V),label:m(i)("name"),rules:[m(oe).required]},null,8,["modelValue","label","rules"])]),_:1},512)]),_:1},512),u($e,{modelValue:w.value,"onUpdate:modelValue":b[2]||(b[2]=V=>w.value=V),"max-width":"800px",persistent:""},{default:c(()=>[u(qe,{tokens:p.value,onClose:N},null,8,["tokens"])]),_:1},8,["modelValue"])],64))}},Ra={class:"pa-4"},Pa={__name:"SettingsView",setup(n){const l=ce(),i=_();return(s,f)=>(P(),D(B,null,[u(bt,{flat:""},{default:c(()=>[u(wt,null,{default:c(()=>[S(g(s.$gettext("Account settings")),1)]),_:1})]),_:1}),k("div",Ra,[u(Ct,{modelValue:i.value,"onUpdate:modelValue":f[0]||(f[0]=h=>i.value=h),color:"primary",class:"mb-4"},{default:c(()=>[u(ie,{value:"profile"},{default:c(()=>[S(g(s.$gettext("Profile")),1)]),_:1}),u(ie,{value:"security"},{default:c(()=>[S(g(s.$gettext("Two-factor auth")),1)]),_:1}),m(l).userHasMailbox?(P(),O(ie,{key:0,value:"forward"},{default:c(()=>[S(g(s.$gettext("Forward")),1)]),_:1})):W("",!0),m(l).userHasMailbox?(P(),O(ie,{key:1,value:"autoreply"},{default:c(()=>[S(g(s.$gettext("Auto-reply message")),1)]),_:1})):W("",!0),m(l).authUser.role===m(Me).SUPER_ADMIN?(P(),O(ie,{key:2,value:"api"},{default:c(()=>[S(g(s.$gettext("API access")),1)]),_:1})):W("",!0)]),_:1},8,["modelValue"]),u(Et,{modelValue:i.value,"onUpdate:modelValue":f[1]||(f[1]=h=>i.value=h)},{default:c(()=>[u(ue,{value:"profile"},{default:c(()=>[u(It)]),_:1}),u(ue,{value:"security"},{default:c(()=>[u(Yt),u(Sa),u(ea)]),_:1}),m(l).userHasMailbox?(P(),O(ue,{key:0,value:"forward"},{default:c(()=>[u(aa)]),_:1})):W("",!0),m(l).userHasMailbox?(P(),O(ue,{key:1,value:"autoreply"},{default:c(()=>[u(da)]),_:1})):W("",!0),m(l).authUser.role===m(Me).SUPER_ADMIN?(P(),O(ue,{key:2,value:"api"},{default:c(()=>[u(ma)]),_:1})):W("",!0)]),_:1},8,["modelValue"])])],64))}},uo=rt(Pa,[["__scopeId","data-v-fc9b36ca"]]);export{uo as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as o,f as r,o as m}from"./index-DV9Li2cg.js";import{_ as p}from"./ConnectedLayout-BQ3ug6Jh.js";import{u as e}from"./layout.store-BxBoBlgf.js";import"./VContainer-Btam4lk2.js";/* empty css */import"./tag-CFK9dzMJ.js";import"./VApp-BKxnjOoi.js";import"./layout-CHO37cA6.js";import"./ssrBoot-BsxW6uW4.js";import"./global.store-DUP26-A5.js";import"./admin-CJVLMHh9.js";import"./VAvatar-BAgTUIvX.js";import"./VProgressCircular-CrEXxs7k.js";import"./forwardRefs-Cpc3YYl6.js";import"./VMenu-B_dVqOmo.js";import"./VCard-DFWiFORP.js";import"./VRow-C_Ydf6yr.js";import"./VSheet-5VVWtHvs.js";const b={__name:"UserLayout",setup(i){const t=e();return(s,a)=>(m(),o(p,{"menu-items":r(t).leftMenuItems},null,8,["menu-items"]))}};export{b as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/* empty css */import{b as t,u as r,m as i,c as l,a as m}from"./tag-CFK9dzMJ.js";import{v as c,x as u,ai as p,a as C,a7 as d,J as f}from"./index-DV9Li2cg.js";const y=u({fluid:{type:Boolean,default:!1},...m(),...l(),...i()},"VContainer"),P=c()({name:"VContainer",props:y(),setup(e,a){let{slots:s}=a;const{rtlClasses:n}=p(),{dimensionStyles:o}=t(e);return r(()=>C(e.tag,{class:f(["v-container",{"v-container--fluid":e.fluid},n.value,e.class]),style:d([o.value,e.style])},s)),{}}});export{P as V};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as d,r as v,a as C,F as k,u as P,b as S,H as h,c as g,s as y,A as V}from"./VAvatar-BAgTUIvX.js";import{u as b}from"./VProgressCircular-CrEXxs7k.js";import{b as f,u as p,m as B,c as R,a as T}from"./tag-CFK9dzMJ.js";import{v as x,x as z,ar as D,a as E,a7 as F,J as L,C as A}from"./index-DV9Li2cg.js";const H=z({color:String,...V(),...T(),...R(),...y(),...g(),...h(),...S(),...B(),...A()},"VSheet"),w=x()({name:"VSheet",props:H(),setup(e,s){let{slots:a}=s;const{themeClasses:o}=D(e),{backgroundColorClasses:t,backgroundColorStyles:n}=b(()=>e.color),{borderClasses:r}=d(e),{dimensionStyles:l}=f(e),{elevationClasses:m}=v(e),{locationStyles:u}=C(e),{positionClasses:i}=k(e),{roundedClasses:c}=P(e);return p(()=>E(e.tag,{class:L(["v-sheet",o.value,t.value,r.value,m.value,i.value,c.value,e.class]),style:F([n.value,l.value,u.value,e.style])},a)),{}}});export{w as V,H as m};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/* empty css */import{i as r}from"./VAvatar-BAgTUIvX.js";const p=r("v-spacer","div","VSpacer");export{p as V};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{k as oe,Q as j,R as ne,M as K,n as Q,g as r,L as T,r as se,m as V,o as m,F as A,G as ie,J as z,e as N,c as O,q as E,a,f as _,t as B,p as P,b as W,h as F,w as f,j as G,s as re}from"./index-DV9Li2cg.js";import{_ as ue}from"./ConfirmDialog-BvqxQsD1.js";import{_ as me,V as de}from"./ConnectedLayout-BQ3ug6Jh.js";import{a as C}from"./webmail-KrD8ZhNM.js";import{d as H,V as L,e as ce,p as pe}from"./VAvatar-BAgTUIvX.js";import{V as J}from"./VSpacer-C6PZ3X24.js";import{V as ve,r as fe}from"./VForm-CpoZf60D.js";import{V as be,a as xe,b as ge}from"./VCard-DFWiFORP.js";import{V as ye}from"./VTextField-CLwRV0Cb.js";import{V as Me}from"./VDialog-CZqM2Ofu.js";import{V as Ve}from"./VMenu-B_dVqOmo.js";import{V as _e,a as R}from"./forwardRefs-Cpc3YYl6.js";import"./VToolbar-CGwhgdmI.js";import"./tag-CFK9dzMJ.js";import"./VProgressCircular-CrEXxs7k.js";import"./VContainer-Btam4lk2.js";/* empty css */import"./VApp-BKxnjOoi.js";import"./layout-CHO37cA6.js";import"./ssrBoot-BsxW6uW4.js";import"./global.store-DUP26-A5.js";import"./admin-CJVLMHh9.js";import"./layout.store-BxBoBlgf.js";import"./VRow-C_Ydf6yr.js";import"./VSheet-5VVWtHvs.js";const he="/assets/Modoboa_RVB-BLANC-SANS-BBGoASES.png",Ce=["onClick","onMouseover","onMouseleave"],we={key:0,class:"font-weight-bold"},ke={key:1},Ue={key:0,class:"font-weight-bold"},$e={key:1},Be={__name:"MailboxList",props:j({mailboxes:{type:Array,default:null},lightMode:{type:Boolean,default:!1},compact:{type:Boolean,default:!1},unseenCounters:{type:Boolean,default:!0},allowUnselect:{type:Boolean,default:!1}},{modelValue:{},modelModifiers:{}}),emits:j(["update:modelValue"],["update:modelValue"]),setup(S,{emit:x}){const t=S,n=ne(S,"modelValue"),s=x,h=K(),i=Q(),k={inbox:"mdi-inbox",draft:"mdi-file",junk:"mdi-fire",sent:"mdi-email-fast-outline",trash:"mdi-trash-can-outline",normal:"mdi-folder-outline"},d=r(null),g=r({}),p=r({});function y(e){return e.label.split("/").pop()}function c(e){return d.value===null&&(d.value=e.unseen),d.value}function u(e,w){g.value[e.name]=w}function o(e){return n.value===e.name?"bg-primary-lighten-1":t.lightMode?g.value[e.name]?"bg-primary":"bg-white":g.value[e.name]?"bg-primary-lighten-1":"bg-primary"}function M(e){return p.value[e.name]}function I(e){p.value[e.name]||(p.value[e.name]=!1),p.value[e.name]=!p.value[e.name],p.value[e.name]&&!e.sub.length&&C.getUserMailboxes(e.name).then(w=>{e.sub=w.data.mailboxes})}function D(e){t.allowUnselect&&e===n.value?s("update:modelValue",null):s("update:modelValue",e)}return T(()=>i.mbCounterKey,()=>{C.getUserMailboxUnseen(h.query.mailbox).then(e=>{d.value=e.data.counter})}),(e,w)=>{const q=se("MailboxList",!0);return m(),V("div",null,[(m(!0),V(A,null,ie(t.mailboxes,l=>(m(),V("div",{key:l.name,class:z(["pl-3 text-body-2",{"py-1":!t.compact}])},[N("div",{class:z([o(l),"d-flex mailbox pa-1 align-center"]),onClick:U=>D(l.name),onMouseover:U=>u(l,!0),onMouseleave:U=>u(l,!1)},[a(H,{icon:k[l.type],class:"mr-4"},null,8,["icon"]),l.name===_(h).query.mailbox?(m(),V(A,{key:0},[d.value>0?(m(),V("span",we,B(y(l))+" ("+B(c(l))+") ",1)):(m(),V("span",ke,B(y(l)),1))],64)):(m(),V(A,{key:1},[l.unseen>0?(m(),V("span",Ue,B(y(l))+" ("+B(l.unseen)+") ",1)):(m(),V("span",$e,B(y(l)),1))],64)),a(J),l.sub?(m(),O(L,{key:2,icon:M(l)?"mdi-minus":"mdi-plus",size:"xsmall",variant:"flat",color:"transparent",onClick:P(U=>I(l),["stop"])},null,8,["icon","onClick"])):E("",!0)],42,Ce),M(l)&&l.sub&&l.sub.length?(m(),O(q,{key:0,modelValue:n.value,"onUpdate:modelValue":w[0]||(w[0]=U=>n.value=U),mailboxes:l.sub,class:"mt-1","light-mode":t.lightMode,compact:t.compact},null,8,["modelValue","mailboxes","light-mode","compact"])):E("",!0)],2))),128))])}}},Y=oe(Be,[["__scopeId","data-v-62d5beb0"]]),Ne={class:"mb-2 rounded-lg"},Le={__name:"MailboxForm",props:{userMailboxes:Array,mailbox:{type:String,default:null},hdelimiter:{type:String,default:null}},emits:["close","mailboxRenamed"],setup(S,{emit:x}){const t=S,n=x,{$gettext:s}=W(),{displayNotification:h}=Q(),i=r({}),k=r(),d=r(!1),g=F(()=>t.mailbox?s("Edit mailbox"):s("Create new mailbox")),p=F(()=>t.mailbox?s("Update"):s("Create")),y=()=>{i.value={},n("close")},c=async()=>{const{valid:u}=await k.value.validate();if(u){d.value=!0;try{const o={...i.value};t.mailbox?(o.oldname=t.mailbox,await C.renameUserMailbox(o),h({msg:s("Mailbox renamed")}),n("mailboxRenamed",`${o.parent_mailbox}${t.hdelimiter}${o.name}`)):(await C.createUserMailbox(o),h({msg:s("Mailbox created")})),y()}finally{d.value=!1}}};return T(()=>t.mailbox,u=>{if(u){const o=t.mailbox.split(t.hdelimiter);i.value.name=o.slice(-1)[0],i.value.parent_mailbox=o.slice(0,-1).join(t.hdelimiter)}else i.value={}},{immediate:!0}),(u,o)=>(m(),O(ge,{title:g.value},{default:f(()=>[a(be,null,{default:f(()=>[a(ve,{ref_key:"formRef",ref:k},{default:f(()=>[a(ye,{modelValue:i.value.name,"onUpdate:modelValue":o[0]||(o[0]=M=>i.value.name=M),label:_(s)("Name"),variant:"outlined",density:"compact",rules:[_(fe).required]},null,8,["modelValue","label","rules"]),N("div",Ne,[N("h4",null,B(_(s)("Parent mailbox")),1),a(Y,{modelValue:i.value.parent_mailbox,"onUpdate:modelValue":o[1]||(o[1]=M=>i.value.parent_mailbox=M),"active-mailbox":t.parent,mailboxes:t.userMailboxes,"light-mode":"",compact:"","unseen-counters":!1,"allow-unselect":""},null,8,["modelValue","active-mailbox","mailboxes"])])]),_:1},512)]),_:1}),a(xe,null,{default:f(()=>[a(J),a(L,{text:_(s)("Close"),variant:"flat",loading:d.value,onClick:y},null,8,["text","loading"]),a(L,{text:p.value,variant:"tonal",color:"primary",loading:d.value,onClick:c},null,8,["text","loading"])]),_:1})]),_:1},8,["title"]))}},Se={class:"d-flex align-center"},qe={class:"d-flex justify-center mb-4"},Fe={class:"border-t-sm d-flex align-center bg-grey"},sa={__name:"WebmailLayout",async setup(S){let x,t;const{$gettext:n}=W(),s=K(),h=re(),i=Q(),k=r(),d=r(!0),g=r(!1),p=r(null),y=r(null),c=r(null),u=r(s.query.mailbox||"INBOX"),o=r(!1),M=r([]),I=F(()=>["INBOX"].includes(s.query.mailbox||"INBOX")),D=F(()=>c.value.usage<50?"info":c.value.usage<80?"warning":"error"),e=F(()=>`${c.value.current} / ${c.value.limit} (${c.value.usage}%)`);function w(b){h.push({name:"MailboxView",query:{mailbox:b}}),C.getUserMailboxQuota(b).then(v=>{c.value=v.data})}const q=async()=>{const b=await C.getUserMailboxes();M.value=b.data.mailboxes,y.value=b.data.hdelimiter},l=()=>{h.push({name:"ComposeEmailView"})},U=()=>{o.value=!1,p.value=null,q()},Z=()=>{o.value=!0},ee=()=>{p.value=u.value,o.value=!0},X=b=>{u.value=b,h.push({name:"MailboxView",query:{mailbox:b}})},ae=async()=>{await C.compressUserMailbox({name:u.value}),i.displayNotification({msg:n("Mailbox compressed")})},te=async()=>{await k.value.open(n("Warning"),n("Delete this mailbox?"),{color:"warning",agreeLabel:n("Yes"),cancelLabel:n("No")})&&(await C.deleteUserMailbox({name:u.value}),i.displayNotification({msg:n("Mailbox deleted")}),X("INBOX"))};T(()=>i.dataKey,()=>{q()}),[x,t]=G(()=>q()),await x,t();const le=([x,t]=G(()=>C.getUserMailboxQuota(s.query.mailbox||"INBOX")),x=await x,t(),x);return c.value=le.data,(b,v)=>(m(),V(A,null,[a(me,null,{navbar:f(()=>[a(de,{modelValue:d.value,"onUpdate:modelValue":v[2]||(v[2]=$=>d.value=$),rail:g.value,permanent:"",color:"primary",app:""},{prepend:f(()=>[N("div",Se,[a(pe,{src:he,"max-width":"190",class:"logo"}),a(L,{icon:g.value?"mdi-chevron-right":"mdi-chevron-left",variant:"text",onClick:v[0]||(v[0]=P($=>g.value=!g.value,["stop"]))},null,8,["icon"])]),N("div",qe,[a(L,{text:_(n)("Compose"),color:"secondary",variant:"flat","prepend-icon":"mdi-pencil",onClick:l},null,8,["text"])])]),append:f(()=>[N("div",Fe,[a(L,{class:"ml-2",variant:"text",icon:"",size:"small"},{default:f(()=>[a(H,{icon:"mdi-cog"}),a(Ve,{activator:"parent"},{default:f(()=>[a(_e,{density:"compact"},{default:f(()=>[a(R,{title:_(n)("Create a new mailbox"),"prepend-icon":"mdi-plus",onClick:Z},null,8,["title"]),a(R,{title:_(n)("Edit this mailbox"),"prepend-icon":"mdi-pencil",disabled:I.value,onClick:ee},null,8,["title","disabled"]),a(R,{title:_(n)("Delete this mailbox"),"prepend-icon":"mdi-trash-can",disabled:I.value,onClick:te},null,8,["title","disabled"]),a(R,{title:_(n)("Compress this mailbox"),"prepend-icon":"mdi-folder-zip-outline",onClick:ae},null,8,["title"])]),_:1})]),_:1})]),_:1}),c.value?(m(),O(ce,{key:0,color:D.value,"model-value":c.value.usage,title:e.value},null,8,["color","model-value","title"])):E("",!0)])]),default:f(()=>[a(Y,{modelValue:u.value,"onUpdate:modelValue":[v[1]||(v[1]=$=>u.value=$),w],mailboxes:M.value,class:"mr-2"},null,8,["modelValue","mailboxes"])]),_:1},8,["modelValue","rail"])]),_:1}),a(Me,{modelValue:o.value,"onUpdate:modelValue":v[4]||(v[4]=$=>o.value=$),"max-width":"800"},{default:f(()=>[a(Le,{"user-mailboxes":M.value,mailbox:p.value,hdelimiter:y.value,onMailboxRenamed:X,onClose:v[3]||(v[3]=$=>U())},null,8,["user-mailboxes","mailbox","hdelimiter"])]),_:1},8,["modelValue"]),a(ue,{ref_key:"confirm",ref:k},null,512)],64))}};export{sa as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as t}from"./index-DV9Li2cg.js";const n={getComponentsInformation(){return t.get("/admin/components/")},getNotifications(){return t.get("/admin/notifications/")},getNewsFeed(){return t.get("/admin/news_feed/")}};export{n as a};
|