modoboa 2.5.0__py3-none-any.whl → 2.6.0__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.
Files changed (183) hide show
  1. modoboa/admin/api/v2/serializers.py +1 -1
  2. modoboa/admin/models/domain.py +1 -1
  3. modoboa/admin/models/mixins.py +3 -1
  4. modoboa/amavis/serializers.py +1 -1
  5. modoboa/autoconfig/__init__.py +0 -0
  6. modoboa/autoconfig/apps.py +6 -0
  7. modoboa/autoconfig/templates/autoconfig/autoconfig.xml +24 -0
  8. modoboa/autoconfig/templates/autoconfig/autodiscover.xml +27 -0
  9. modoboa/autoconfig/tests.py +38 -0
  10. modoboa/autoconfig/urls.py +21 -0
  11. modoboa/autoconfig/views.py +109 -0
  12. modoboa/autoreply/api/v2/tests.py +4 -4
  13. modoboa/calendars/tests.py +8 -8
  14. modoboa/contacts/tests.py +5 -7
  15. modoboa/core/api/v1/tests.py +2 -2
  16. modoboa/core/api/v2/views.py +3 -1
  17. modoboa/core/commands/deploy.py +3 -0
  18. modoboa/core/commands/templates/settings.py.tpl +26 -12
  19. modoboa/core/models.py +1 -1
  20. modoboa/core/tests/test_ldap.py +2 -0
  21. modoboa/core/views/auth.py +27 -8
  22. modoboa/frontend_dist/assets/{AccountAliasForm-BuSy_1n9.js → AccountAliasForm-Bu1I8sLg.js} +1 -1
  23. modoboa/frontend_dist/assets/{AccountEditView-qdJmLM_e.js → AccountEditView-YOpDW-Ob.js} +1 -1
  24. modoboa/frontend_dist/assets/AccountLayout-Cf_FVfvJ.js +1 -0
  25. modoboa/frontend_dist/assets/{AccountPasswordSubForm-DZGt_Xgq.js → AccountPasswordSubForm-B9X5wAXp.js} +1 -1
  26. modoboa/frontend_dist/assets/{AccountView-CO65y0vZ.js → AccountView-DCqbD7oi.js} +1 -1
  27. modoboa/frontend_dist/assets/{AddressBook-BZNUlhek.js → AddressBook-B53LXIsD.js} +1 -1
  28. modoboa/frontend_dist/assets/AdminLayout-DX-RXYiU.js +1 -0
  29. modoboa/frontend_dist/assets/AlarmsView-C0KvogOj.js +1 -0
  30. modoboa/frontend_dist/assets/AliasEditView-BiMPygn9.js +1 -0
  31. modoboa/frontend_dist/assets/AliasEditView-CYDSiX8l.css +1 -0
  32. modoboa/frontend_dist/assets/AliasRecipientForm-BhQfATiS.js +1 -0
  33. modoboa/frontend_dist/assets/{AliasView-GOJ5lyQH.js → AliasView-eIct4lMV.js} +1 -1
  34. modoboa/frontend_dist/assets/{AuditTrailView-fbXmq70e.js → AuditTrailView-FiUNTjpE.js} +1 -1
  35. modoboa/frontend_dist/assets/{CalendarView-LlQQNEPL.js → CalendarView-DbWVDoWq.js} +1 -1
  36. modoboa/frontend_dist/assets/{ChoiceField-B3ReQHVe.js → ChoiceField-17aCFpF6.js} +1 -1
  37. modoboa/frontend_dist/assets/{ComposeEmailForm-Bs1fZXAL.js → ComposeEmailForm-B-BP3lzX.js} +1 -1
  38. modoboa/frontend_dist/assets/ComposeEmailView-6JrFhK1W.js +1 -0
  39. modoboa/frontend_dist/assets/ConfirmDialog-Dr0i2kqK.js +1 -0
  40. modoboa/frontend_dist/assets/ConnectedLayout-irTI2ekJ.js +1 -0
  41. modoboa/frontend_dist/assets/{CreationForm-ORg3fazt.js → CreationForm-BZMhQOez.js} +1 -1
  42. modoboa/frontend_dist/assets/DashboardView-CBpsEG3P.js +1 -0
  43. modoboa/frontend_dist/assets/{DomainAdminList-DVn9x0rB.js → DomainAdminList-BikGujRD.js} +1 -1
  44. modoboa/frontend_dist/assets/{DomainEditView-nAoL64D_.js → DomainEditView-SOvfeZWo.js} +1 -1
  45. modoboa/frontend_dist/assets/{DomainTransportForm-CA-DNUxX.js → DomainTransportForm-CmFZ1Cxm.js} +1 -1
  46. modoboa/frontend_dist/assets/{DomainView-CdXPpwJG.js → DomainView-DasOm4jM.js} +3 -3
  47. modoboa/frontend_dist/assets/{DomainsView-B_59gowf.js → DomainsView-DVJA4-oN.js} +1 -1
  48. modoboa/frontend_dist/assets/{EmailField-CwcwI5xW.js → EmailField-DpBYkqam.js} +1 -1
  49. modoboa/frontend_dist/assets/{EmailView-BshxcfAK.js → EmailView-D9vO7HHB.js} +1 -1
  50. modoboa/frontend_dist/assets/EmptyLayout-Dz3F8c7x.js +1 -0
  51. modoboa/frontend_dist/assets/{FiltersView-Cf20MSTK.js → FiltersView-FjdtF4HL.js} +1 -1
  52. modoboa/frontend_dist/assets/ForwardEmailView-DF5BQJjL.js +1 -0
  53. modoboa/frontend_dist/assets/{HtmlEditor-Bh4c689R.js → HtmlEditor-Zn0wjDog.js} +1 -1
  54. modoboa/frontend_dist/assets/{IdentitiesView-BXAuU1YX.js → IdentitiesView-Cf5eQoKA.js} +1 -1
  55. modoboa/frontend_dist/assets/{IdentitiesView-DPrrRMS5.css → IdentitiesView-D3AAiZLZ.css} +1 -1
  56. modoboa/frontend_dist/assets/{InformationView-Cn5FZW7H.js → InformationView-gEYTQ37R.js} +1 -1
  57. modoboa/frontend_dist/assets/{LoadingData-CdVvm4FI.js → LoadingData-Cxd490P6.js} +1 -1
  58. modoboa/frontend_dist/assets/LoginCallbackView-C9zhejHH.js +1 -0
  59. modoboa/frontend_dist/assets/{LoginView-tHIR4Adc.js → LoginView-sWEH834U.js} +1 -1
  60. modoboa/frontend_dist/assets/{MailboxView-B-aI4XBq.css → MailboxView-CfStlWhk.css} +1 -1
  61. modoboa/frontend_dist/assets/MailboxView-Dn3iDym9.js +1 -0
  62. modoboa/frontend_dist/assets/{MenuItems-PXjiG-fs.js → MenuItems-BRChEdLp.js} +1 -1
  63. modoboa/frontend_dist/assets/{MessageView-Cy4STShm.js → MessageView-CDbJxbxm.js} +1 -1
  64. modoboa/frontend_dist/assets/{MessagesView-DdkuEgfX.js → MessagesView-C_vBxVzN.js} +1 -1
  65. modoboa/frontend_dist/assets/{MigrationsView-CidSEjCF.js → MigrationsView-D6peiQuR.js} +1 -1
  66. modoboa/frontend_dist/assets/{ParametersForm-CAv4SH-E.js → ParametersForm-Dip8Sobe.js} +1 -1
  67. modoboa/frontend_dist/assets/ParametersView-CwI0-9kV.js +1 -0
  68. modoboa/frontend_dist/assets/ParametersView-wFKfiEVR.js +1 -0
  69. modoboa/frontend_dist/assets/{ProviderEditView-CrltAQXl.js → ProviderEditView-EH2NSz3x.js} +1 -1
  70. modoboa/frontend_dist/assets/{ProviderGeneralForm-BYAzVnXM.js → ProviderGeneralForm-CAVNOJp6.js} +1 -1
  71. modoboa/frontend_dist/assets/{ProvidersView-osjIY4Ex.js → ProvidersView-BoH99d3a.js} +1 -1
  72. modoboa/frontend_dist/assets/QuarantineLayout--4g9urq2.js +1 -0
  73. modoboa/frontend_dist/assets/{QuarantineView-D8Qg0MXA.js → QuarantineView-BDzDrWwK.js} +1 -1
  74. modoboa/frontend_dist/assets/ReplyEmailView-D0VgYBnw.js +1 -0
  75. modoboa/frontend_dist/assets/ResourcesForm-C1YGkT8i.js +1 -0
  76. modoboa/frontend_dist/assets/SelfServiceLayout-BYkSLc4n.js +1 -0
  77. modoboa/frontend_dist/assets/{SettingsView-9iNcDhkI.js → SettingsView-Cy5O-88Y.js} +1 -1
  78. modoboa/frontend_dist/assets/{StatisticsView-cHsPyGkL.js → StatisticsView-DtlBQK9z.js} +1 -1
  79. modoboa/frontend_dist/assets/{TimeSerieChart--V83dcJ9.js → TimeSerieChart-DNjvmMDE.js} +1 -1
  80. modoboa/frontend_dist/assets/{TimeSerieChart-CxiwMzE8.css → TimeSerieChart-Dn6Wznn8.css} +1 -1
  81. modoboa/frontend_dist/assets/UserLayout-Cgqq7HVi.js +1 -0
  82. modoboa/frontend_dist/assets/{VAlert-BuaaYN2h.js → VAlert-x6n3drjw.js} +1 -1
  83. modoboa/frontend_dist/assets/{VApp-CKP-6zGP.js → VApp-C74A9rX5.js} +1 -1
  84. modoboa/frontend_dist/assets/{VAutocomplete-Dwv6_Rzq.js → VAutocomplete-Bg2AlW_n.js} +1 -1
  85. modoboa/frontend_dist/assets/{VAvatar-Cmga0vj6.js → VAvatar-J563boKh.js} +1 -1
  86. modoboa/frontend_dist/assets/{VBadge-CixeK87a.js → VBadge-CtEsXuih.js} +1 -1
  87. modoboa/frontend_dist/assets/{VCard-CxH9DWoK.js → VCard-CJ2oGh_i.js} +1 -1
  88. modoboa/frontend_dist/assets/{VCheckbox-62GOpvvP.js → VCheckbox-VicuXIJq.js} +1 -1
  89. modoboa/frontend_dist/assets/{VCheckboxBtn-DMoNtKT8.js → VCheckboxBtn-CLh3m66z.js} +1 -1
  90. modoboa/frontend_dist/assets/{VChip-D_styETR.js → VChip-DvxO74Mw.js} +1 -1
  91. modoboa/frontend_dist/assets/VColorPicker-DcVohVWE.js +1 -0
  92. modoboa/frontend_dist/assets/{VContainer-B46caNs1.js → VContainer-L2EoH3dT.js} +1 -1
  93. modoboa/frontend_dist/assets/{VDataTable-Bh8NbVSx.js → VDataTable-CAT0QYJz.js} +1 -1
  94. modoboa/frontend_dist/assets/{VDataTableServer-BDR5hOmo.js → VDataTableServer-DP13Fhfa.js} +1 -1
  95. modoboa/frontend_dist/assets/{VDataTableVirtual-BOQlNtIG.js → VDataTableVirtual-LVNemzH7.js} +1 -1
  96. modoboa/frontend_dist/assets/{VDialog-BcTg7w6P.js → VDialog-CaQnQSDn.js} +1 -1
  97. modoboa/frontend_dist/assets/{VExpansionPanels-BmH5Jl2Z.js → VExpansionPanels-Dnwgt5uT.js} +1 -1
  98. modoboa/frontend_dist/assets/{VFileInput-BC4yAygd.js → VFileInput-z44hJIWr.js} +1 -1
  99. modoboa/frontend_dist/assets/{VForm-D5iPGkde.js → VForm-BwTUBf4u.js} +1 -1
  100. modoboa/frontend_dist/assets/{VInput-CoDJzvaW.js → VInput-Dpmea5z9.js} +1 -1
  101. modoboa/frontend_dist/assets/{VMenu-gUG70-zD.js → VMenu-DDmBlbM8.js} +1 -1
  102. modoboa/frontend_dist/assets/{VPicker-BXuKT3zB.js → VPicker-Dz7GbXwU.js} +1 -1
  103. modoboa/frontend_dist/assets/{VProgressCircular-BtOPiGCg.js → VProgressCircular-CtqQON49.js} +1 -1
  104. modoboa/frontend_dist/assets/{VRadioGroup-DIFZKSn-.js → VRadioGroup-WW8uMAv4.js} +1 -1
  105. modoboa/frontend_dist/assets/{VRow-ozg66L7j.js → VRow-CAbOSEHS.js} +1 -1
  106. modoboa/frontend_dist/assets/{VSelect-C3RjAa45.js → VSelect-Cdh0qO5m.js} +1 -1
  107. modoboa/frontend_dist/assets/{VSelectionControl-zyz-fJvC.js → VSelectionControl-BN-zQ3C6.js} +1 -1
  108. modoboa/frontend_dist/assets/{VSheet-BNx2X4Mk.js → VSheet-9RDZpWCf.js} +1 -1
  109. modoboa/frontend_dist/assets/VSpacer-BWZq1PhD.js +1 -0
  110. modoboa/frontend_dist/assets/{VSwitch-DwxdeAEq.js → VSwitch-CixaedmQ.js} +1 -1
  111. modoboa/frontend_dist/assets/{VTable-DaLxa4FO.js → VTable-DO7ofPSj.js} +1 -1
  112. modoboa/frontend_dist/assets/{VTabs-BP0Hgsgm.js → VTabs-C1-E1DJE.js} +1 -1
  113. modoboa/frontend_dist/assets/{VTextField-XoGTj1KG.js → VTextField-C9VUP7V9.js} +1 -1
  114. modoboa/frontend_dist/assets/{VTextarea-wBlRMIv_.js → VTextarea-B28SmJ2v.js} +1 -1
  115. modoboa/frontend_dist/assets/{VToolbar-CFZfqeOr.js → VToolbar-Cs-fVa4M.js} +1 -1
  116. modoboa/frontend_dist/assets/VWindowItem-C9PFEbE6.js +1 -0
  117. modoboa/frontend_dist/assets/WebmailLayout-Dp6jIazW.js +1 -0
  118. modoboa/frontend_dist/assets/{accounts-DUzbx6k8.js → accounts-BT429O7P.js} +1 -1
  119. modoboa/frontend_dist/assets/{admin-DewTk2H8.js → admin-Cu5rjY7m.js} +1 -1
  120. modoboa/frontend_dist/assets/{aliases-4sXmjwXp.js → aliases-Q4uTcEh4.js} +1 -1
  121. modoboa/frontend_dist/assets/{amavis-CC0li7_T.js → amavis-Be87kCqw.js} +1 -1
  122. modoboa/frontend_dist/assets/{amavis-DK8SHE6o.js → amavis-Bx0pxvRn.js} +1 -1
  123. modoboa/frontend_dist/assets/{contacts-BjghrPqZ.js → contacts-Dx240BT8.js} +1 -1
  124. modoboa/frontend_dist/assets/{domains-BSawReeu.js → domains-CQv8gtbQ.js} +1 -1
  125. modoboa/frontend_dist/assets/{domains.store-D-vWCEIK.js → domains.store-CfpnnBGo.js} +1 -1
  126. modoboa/frontend_dist/assets/{filter-C82FUCw_.js → filter-C_GJovn5.js} +1 -1
  127. modoboa/frontend_dist/assets/{forwardRefs-cvcnlhoK.js → forwardRefs-DPrLRqxP.js} +1 -1
  128. modoboa/frontend_dist/assets/{global.store-DbkcI5o2.js → global.store-CNChIxQL.js} +1 -1
  129. modoboa/frontend_dist/assets/importExport-7sRHU_3R.js +1 -0
  130. modoboa/frontend_dist/assets/index-YIGRKgNA.js +982 -0
  131. modoboa/frontend_dist/assets/{layout-C5FyYCHK.js → layout-BM4C5b2r.js} +1 -1
  132. modoboa/frontend_dist/assets/{layout.store-NXWtFIwL.js → layout.store-CCOp6tv6.js} +1 -1
  133. modoboa/frontend_dist/assets/{logos-BswdveCV.js → logos-CboXciB_.js} +1 -1
  134. modoboa/frontend_dist/assets/{logs-6CbtfaZS.js → logs-BeuijmJA.js} +1 -1
  135. modoboa/frontend_dist/assets/{parameters-aSQiR7kN.js → parameters-DpVw-Zs4.js} +1 -1
  136. modoboa/frontend_dist/assets/{parameters.store-CzQqVatx.js → parameters.store-DRarkO6b.js} +1 -1
  137. modoboa/frontend_dist/assets/{permissions-DNoefz-n.js → permissions-C33K6cJv.js} +1 -1
  138. modoboa/frontend_dist/assets/{ssrBoot-CKUX4kcb.js → ssrBoot-CpJ-7WlH.js} +1 -1
  139. modoboa/frontend_dist/assets/{tag-B_yWNNJD.js → tag-DV1_zOzl.js} +1 -1
  140. modoboa/frontend_dist/assets/theme-BGzdVPko.js +1 -0
  141. modoboa/frontend_dist/assets/transports-B9mWU1W8.js +1 -0
  142. modoboa/frontend_dist/assets/{webmail-CdU6CD9b.js → webmail-DRyN8JIK.js} +1 -1
  143. modoboa/frontend_dist/index.html +1 -1
  144. modoboa/static/css/offline.css +7 -20
  145. modoboa/templates/registration/base.html +18 -0
  146. modoboa/templates/registration/login.html +1 -1
  147. modoboa/urls.py +1 -0
  148. modoboa/webmail/lib/imaputils.py +2 -2
  149. {modoboa-2.5.0.dist-info → modoboa-2.6.0.dist-info}/METADATA +6 -6
  150. {modoboa-2.5.0.dist-info → modoboa-2.6.0.dist-info}/RECORD +155 -147
  151. {modoboa-2.5.0.dist-info → modoboa-2.6.0.dist-info}/licenses/LICENSE +1 -1
  152. modoboa/frontend_dist/assets/AccountLayout-DrN7vHsX.js +0 -1
  153. modoboa/frontend_dist/assets/AdminLayout-CTNhuwTw.js +0 -1
  154. modoboa/frontend_dist/assets/AlarmsView-DN_JIw9g.js +0 -1
  155. modoboa/frontend_dist/assets/AliasEditView-Cx9410JP.css +0 -1
  156. modoboa/frontend_dist/assets/AliasEditView-DjpPUTp9.js +0 -1
  157. modoboa/frontend_dist/assets/AliasRecipientForm-B1Y8wFdP.js +0 -1
  158. modoboa/frontend_dist/assets/ComposeEmailView-s3LMl3pO.js +0 -1
  159. modoboa/frontend_dist/assets/ConfirmDialog-DY_kUHLG.js +0 -1
  160. modoboa/frontend_dist/assets/ConnectedLayout-UWjiYBNw.js +0 -1
  161. modoboa/frontend_dist/assets/DashboardView-Dplk9itS.js +0 -1
  162. modoboa/frontend_dist/assets/EmptyLayout-DFfhnhLi.js +0 -1
  163. modoboa/frontend_dist/assets/ForwardEmailView-CZG062os.js +0 -1
  164. modoboa/frontend_dist/assets/LoginCallbackView-B9hAH4MI.js +0 -1
  165. modoboa/frontend_dist/assets/MailboxView-Bugu2vhg.js +0 -1
  166. modoboa/frontend_dist/assets/ParametersView-CX7Ffemw.js +0 -1
  167. modoboa/frontend_dist/assets/ParametersView-CrbNcmV3.js +0 -1
  168. modoboa/frontend_dist/assets/QuarantineLayout-B8EcU9vS.js +0 -1
  169. modoboa/frontend_dist/assets/ReplyEmailView-BABPqWhd.js +0 -1
  170. modoboa/frontend_dist/assets/ResourcesForm-OaqdRYVs.js +0 -1
  171. modoboa/frontend_dist/assets/SelfServiceLayout-d277YTGR.js +0 -1
  172. modoboa/frontend_dist/assets/UserLayout-B3sBiTcZ.js +0 -1
  173. modoboa/frontend_dist/assets/VColorPicker-BHscBGQV.js +0 -1
  174. modoboa/frontend_dist/assets/VSpacer-DinPiXs9.js +0 -1
  175. modoboa/frontend_dist/assets/VWindowItem-BB7ETW3b.js +0 -1
  176. modoboa/frontend_dist/assets/WebmailLayout-_Hk1XhVq.js +0 -1
  177. modoboa/frontend_dist/assets/importExport-DzoL4Mvc.js +0 -1
  178. modoboa/frontend_dist/assets/index-BImkz5Jx.js +0 -984
  179. modoboa/frontend_dist/assets/transports-BDNB9wR5.js +0 -1
  180. {modoboa-2.5.0.data → modoboa-2.6.0.data}/scripts/modoboa-admin.py +0 -0
  181. {modoboa-2.5.0.dist-info → modoboa-2.6.0.dist-info}/WHEEL +0 -0
  182. {modoboa-2.5.0.dist-info → modoboa-2.6.0.dist-info}/entry_points.txt +0 -0
  183. {modoboa-2.5.0.dist-info → modoboa-2.6.0.dist-info}/top_level.txt +0 -0
@@ -1 +1 @@
1
- import{C as X,H as ie,A as Ee,c as F,o as v,w as t,a as l,l as U,F as T,s as Le,k as _,t as p,_ as fe,b as J,n as oe,g as r,h as z,d as Ne,m as Y,v as ae,f,r as qe,x as De,q as ve,i as Z,e as P}from"./index-BImkz5Jx.js";import{_ as ne}from"./MenuItems-PXjiG-fs.js";import{_ as se}from"./ConfirmDialog-DY_kUHLG.js";import{V as Te,b as je,a as ye}from"./VCard-CxH9DWoK.js";import{V as _e}from"./VCheckbox-62GOpvvP.js";import{V as Me}from"./VSpacer-DinPiXs9.js";import{V as q,c as ee,a as re}from"./VAvatar-Cmga0vj6.js";import{a as G}from"./accounts-DUzbx6k8.js";import{a as H}from"./aliases-4sXmjwXp.js";import{d as Pe}from"./index-DuzUMVLM.js";import{V as le}from"./VMenu-gUG70-zD.js";import{V as ze}from"./VChip-D_styETR.js";import{V as be,a as Oe}from"./VToolbar-CFZfqeOr.js";import{V as Be}from"./VTextField-XoGTj1KG.js";import{V as ge,a as ue,b as de}from"./forwardRefs-cvcnlhoK.js";import{a as We,V as me}from"./VRadioGroup-DIFZKSn-.js";import{V as Ge}from"./VDataTableServer-BDR5hOmo.js";import{V as Q}from"./VDialog-BcTg7w6P.js";import{_ as Qe,a as Ye}from"./AliasRecipientForm-B1Y8wFdP.js";import{_ as ke}from"./CreationForm-ORg3fazt.js";import{_ as He,A as Je,a as Ke,b as Xe}from"./AccountAliasForm-BuSy_1n9.js";import{u as Ze}from"./permissions-DNoefz-n.js";import{a as W,V as ce}from"./VRow-ozg66L7j.js";import{u as et}from"./domains.store-D-vWCEIK.js";import{_ as tt,i as at}from"./importExport-DzoL4Mvc.js";import{V as lt}from"./VSwitch-DwxdeAEq.js";import"./tag-B_yWNNJD.js";import"./VCheckboxBtn-DMoNtKT8.js";import"./VSelectionControl-zyz-fJvC.js";import"./VProgressCircular-BtOPiGCg.js";import"./VInput-CoDJzvaW.js";/* empty css */import"./ssrBoot-CKUX4kcb.js";import"./VDataTable-Bh8NbVSx.js";import"./VSelect-C3RjAa45.js";import"./VTable-DaLxa4FO.js";import"./filter-C82FUCw_.js";import"./EmailField-CwcwI5xW.js";import"./VForm-D5iPGkde.js";import"./domains-BSawReeu.js";import"./VTextarea-wBlRMIv_.js";import"./logos-BswdveCV.js";import"./VWindowItem-BB7ETW3b.js";import"./VContainer-B46caNs1.js";import"./VSheet-BNx2X4Mk.js";import"./ChoiceField-B3ReQHVe.js";import"./VAlert-BuaaYN2h.js";import"./AccountPasswordSubForm-DZGt_Xgq.js";import"./VFileInput-BC4yAygd.js";const te="identities",pe={getAll(){return X.get(`${te}/`)},exportAll(){return X.get(`/${te}/export/`)},importFromCSV(D){return X.post(`/${te}/import/`,D,{headers:{"Content-Type":"multipart/form-data"}})}},ot={__name:"ChooseColumnsForm",props:ie({availableColumns:{type:Array,default:null},mandatoryColumns:{type:Array,default:null},columns:{type:Array,default:null}},{modelValue:{type:Array},modelModifiers:{}}),emits:ie(["apply"],["update:modelValue"]),setup(D,{emit:V}){const e=D,R=Ee(D,"modelValue"),S=V,C=()=>{S("apply",R.value)};return R.value=e.columns.map(x=>x.key),(x,g)=>(v(),F(ye,{title:x.$gettext("Choose columns to display")},{default:t(()=>[l(Te,null,{default:t(()=>[(v(!0),U(T,null,Le(e.availableColumns,A=>(v(),U("div",{key:A.key},[l(_e,{modelValue:R.value,"onUpdate:modelValue":g[0]||(g[0]=h=>R.value=h),value:A.key,label:A.title,color:"primary","hide-details":"",density:"compact",disabled:e.mandatoryColumns.includes(A.key)},null,8,["modelValue","value","label","disabled"])]))),128))]),_:1}),l(je,null,{default:t(()=>[l(Me),l(q,{color:"primary",variant:"outlined",onClick:C},{default:t(()=>[_(p(x.$gettext("Apply")),1)]),_:1})]),_:1})]),_:1},8,["title"]))}},it={key:1},nt={key:1},st={__name:"IdentityList",setup(D,{expose:V}){const{$gettext:e}=J(),R=ve(),{displayNotification:S}=oe(),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"}},x=[C.address,C.enabled,C.recipients],g={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"},quota:{title:e("Quota"),key:"quota_usage"},message_limit:{title:e("Message limit"),key:"sent_messages_in_percent"},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"}},A=[g.username,g.is_active,g.role,g.quota],h=[{value:10,title:"10"},{value:25,title:"25"},{value:50,title:"50"},{value:100,title:"100"}],o=r("account"),c=r(0),E=r([]),y=r(!1),n=r(""),d=r([]),I=r(!1),O=r(),B=r(),k=r(1),$=r(10),w=r([]),j=r(A),M=r(!1),K=z(()=>j.value.concat([{title:e("Actions"),key:"actions",sortable:!1,align:"end"}])),u=z(()=>o.value==="account"?Object.values(g):Object.values(C)),m=z(()=>o.value==="account"?["username"]:["address"]);async function b(s){y.value=!0,E.value=[],w.value=[],s==="account"?j.value=A:j.value=x,await L()}async function Ve({page:s,itemsPerPage:i,sortBy:N}){k.value=s,$.value=i,w.value=N,L()}async function L(){y.value=!0;const s={page:k.value||1,page_size:$.value||10};w.value&&w.value.length&&(s.ordering=w.value.map(i=>i.order!=="asc"?`-${i.key}`:i.key).join(",")),n.value!==""&&(s.search=n.value);try{const i=o.value==="account"?await G.getAll(s):await H.getAll(s);E.value=i.data.results,c.value=i.data.count,d.value=[]}finally{y.value=!1}}function xe(s){j.value=u.value.filter(i=>s.includes(i.key)),M.value=!1}function we(s){const i=[];return o.value==="account"?(s.possible_actions.forEach(N=>{i.push({label:N.label,icon:N.icon,onClick:a=>{N.name==="get_credentials"&&$e(a),L()}})}),i.push({label:e("Edit"),icon:"mdi-circle-edit-outline",onClick:Ae}),i.push({label:e("Delete"),icon:"mdi-delete-outline",onClick:he,color:"red"})):o.value==="alias"&&(i.push({label:e("Edit"),icon:"mdi-circle-edit-outline",onClick:Re}),i.push({label:e("Delete"),icon:"mdi-delete-outline",onClick:Ue,color:"red"})),i}function Ce(){const s=[];return d.value.length>0&&s.push({label:e("Delete"),icon:"mdi-delete-outline",onClick:Ie,color:"red"}),s}function Ae(s){R.push({name:"AccountEdit",params:{id:s.pk}})}async function he(s){if(await B.value.open(e("Warning"),e("Are you sure you want to delete this identity ?"),{color:"error",agreeLabel:e("Yes"),cancelLabel:e("No")})){y.value=!1;try{await G.delete(s.pk,{keepdir:I.value}),L(),S({msg:e("Account deleted")})}finally{y.value=!1}}}async function $e(s){const i=await G.getCredentials(s.pk),N=new Blob([i.data],{type:i.headers["Content-Type"]}),a=document.createElement("a");a.href=URL.createObjectURL(N),a.download=`credentials_${s.pk}.pdf`,a.click(),URL.revokeObjectURL(a.href)}function Re(){}function Ie(){}async function Ue(s){if(await O.value.open(e("Warning"),e("Are you sure you want to delete this alias?"),{color:"error",agreeLabel:e("Yes"),cancelLabel:e("No")})){y.value=!1;try{await H.delete(s.pk),L(),S({msg:e("Alias deleted")})}finally{y.value=!1}}}function Fe(s){return s.recipients?s.recipients.join(", "):""}return Ne(()=>{L()}),V({fetchIdentities:L}),L=Pe(L,500),(s,i)=>{const N=qe("router-link");return v(),F(ye,{class:"mt-6"},{default:t(()=>[l(Ge,{modelValue:d.value,"onUpdate:modelValue":i[3]||(i[3]=a=>d.value=a),headers:K.value,items:E.value,search:n.value,loading:y.value,"items-length":c.value,page:k.value,"items-per-page":$.value,"items-per-page-options":h,"item-value":"pk",elevation:"0","show-select":"","sort-by":w.value,"onUpdate:options":Ve},{top:t(()=>[l(be,{flat:"",color:"white"},{extension:t(()=>[l(We,{modelValue:o.value,"onUpdate:modelValue":[i[2]||(i[2]=a=>o.value=a),b],inline:"",readonly:y.value,"hide-details":""},{default:t(()=>[l(me,{color:"primary",label:f(e)("Accounts"),value:"account"},null,8,["label"]),l(me,{color:"primary",label:f(e)("Alias"),value:"alias"},null,8,["label"])]),_:1},8,["modelValue","readonly"])]),default:t(()=>[l(Be,{modelValue:n.value,"onUpdate:modelValue":i[0]||(i[0]=a=>n.value=a),"prepend-inner-icon":"mdi-magnify",placeholder:f(e)("Search"),variant:"outlined","hide-details":"","single-line":"",flat:"",density:"compact",class:"flex-grow-0 w-33 mr-4"},null,8,["modelValue","placeholder"]),De(s.$slots,"extraActions",{},void 0,!0),l(q,{variant:"text",icon:"mdi-format-columns",title:f(e)("Customize displayed columns"),onClick:i[1]||(i[1]=a=>M.value=!0)},null,8,["title"]),d.value.length>1?(v(),F(le,{key:0,location:"bottom"},{activator:t(({props:a})=>[l(q,ae({"append-icon":"mdi-chevron-down"},a,{size:"small",variant:"flat"}),{default:t(()=>[_(p(f(e)("Actions")),1)]),_:2},1040)]),default:t(()=>[l(ge,{density:"compact"},{default:t(()=>[l(ne,{items:Ce()},null,8,["items"])]),_:1})]),_:1})):Y("",!0),l(q,{variant:"text",icon:"mdi-reload",onClick:L})]),_:3})]),"item.username":t(({item:a})=>[l(N,{to:{name:"AccountDetail",params:{id:a.pk}}},{default:t(()=>[_(p(a.username),1)]),_:2},1032,["to"])]),"item.address":t(({item:a})=>[l(N,{to:{name:"AliasDetail",params:{id:a.pk}}},{default:t(()=>[_(p(a.address),1)]),_:2},1032,["to"])]),"item.is_active":t(({item:a})=>[l(ee,{color:a.is_active?"success":"error",icon:a.is_active?"mdi-check-circle":"mdi-close-circle",variant:"flat"},null,8,["color","icon"])]),"item.enabled":t(({item:a})=>[l(ee,{color:a.enabled?"success":"error",icon:a.enabled?"mdi-check-circle":"mdi-close-circle",variant:"flat"},null,8,["color","icon"])]),"item.recipients":t(({item:a})=>[_(p(Fe(a)),1)]),"item.date_joined":t(({item:a})=>[_(p(s.$date(a.date_joined)),1)]),"item.creation":t(({item:a})=>[_(p(s.$date(a.creation)),1)]),"item.last_modification":t(({item:a})=>[_(p(s.$date(a.last_modification)),1)]),"item.last_login":t(({item:a})=>[_(p(s.$date(a.last_login)),1)]),"item.role":t(({item:a})=>[l(ze,{color:"default",size:"small"},{default:t(()=>[_(p(a.role),1)]),_:2},1024)]),"item.quota_usage":t(({item:a})=>[a.mailbox?(v(),U(T,{key:0},[a.mailbox.quota!=="0"?(v(),F(re,{key:0,color:a.mailbox.quota_usage<80?"primary":"warning","model-value":a.mailbox.quota_usage},null,8,["color","model-value"])):(v(),U("span",it,p(f(e)("Unlimited")),1))],64)):(v(),U(T,{key:1},[_(p(f(e)("No mailbox")),1)],64))]),"item.sent_messages_in_percent":t(({item:a})=>[a.mailbox?(v(),U(T,{key:0},[a.mailbox.message_limit!==null&&a.mailbox.message_limit!==void 0?(v(),U(T,{key:0},[a.mailbox.message_limit!==0?(v(),F(re,{key:0,color:a.mailbox.sent_messages_in_percent<80?"primary":"warning","model-value":a.mailbox.sent_messages_in_percent},null,8,["color","model-value"])):(v(),U("span",nt,p(f(e)("Sending forbidden")),1))],64)):(v(),U(T,{key:1},[_(p(f(e)("Unlimited")),1)],64))],64)):(v(),U(T,{key:1},[_(p(f(e)("No mailbox")),1)],64))]),"item.actions":t(({item:a})=>[a.possible_actions!==void 0&&a.possible_actions.length!==0?(v(),F(ee,{key:0,size:"large",color:"blue"},{default:t(()=>i[6]||(i[6]=[_("mdi-circle-small")])),_:1,__:[6]})):Y("",!0),l(le,{location:"bottom"},{activator:t(({props:Se})=>[l(q,ae(Se,{size:"small",icon:"mdi-dots-horizontal",variant:"text"}),null,16)]),default:t(()=>[l(ne,{items:we(a),obj:a},null,8,["items","obj"])]),_:2},1024)]),_:2},1032,["modelValue","headers","items","search","loading","items-length","page","items-per-page","sort-by"]),l(se,{ref_key:"confirmAlias",ref:O},null,512),l(se,{ref_key:"confirmAccount",ref:B},{default:t(()=>[l(_e,{modelValue:I.value,"onUpdate:modelValue":i[4]||(i[4]=a=>I.value=a),label:f(e)("Do not delete account folder"),"hide-details":""},null,8,["modelValue","label"])]),_:1},512),l(Q,{modelValue:M.value,"onUpdate:modelValue":i[5]||(i[5]=a=>M.value=a),"max-width":"500"},{default:t(()=>[l(ot,{columns:j.value,"available-columns":u.value,"mandatory-columns":m.value,onApply:xe},null,8,["columns","available-columns","mandatory-columns"])]),_:1},8,["modelValue"])]),_:3})}}},rt=fe(st,[["__scopeId","data-v-7c25d4c7"]]),ut={__name:"AliasCreationForm",emits:["close","created"],setup(D,{emit:V}){const{$gettext:e}=J(),R=oe(),S=ve(),C=V,x=r(),g=r(),A=r(),h={general:g,recipients:A},o=z(()=>{const k=[{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&&k[0].items.push({key:e("Expire at"),value:c.value.expire_at}),c.value.description!==void 0&&k[0].items.push({key:e("Description"),value:c.value.description}),k.push({title:e("Recipients"),items:[{key:e("Recipients"),value:c.value.recipients.join(", ")}]}),k}),c=r(n()),E=r([{name:"general",title:e("General")},{name:"recipients",title:e("Recipients")}]);function y(){c.value=n(),C("close")}function n(){return{random:!1,enabled:!0,recipients:[]}}function d(k){return h.step[k.name]}function I(k){return h[k.name].value.vFormRef}function O(){const k={...c.value};k.recipients.length===0&&delete k.recipients;const $=H.validate(k);return $.catch(w=>{w.response.status===409&&w.response.data.id!==void 0&&(R.displayNotification({msg:e("Alias already exists, redirecting to edit page"),type:"warning"}),S.push({name:"AliasEdit",params:{id:w.response.data.id}}))}),$}async function B(){c.value.domain!==void 0&&delete c.value.domain;try{await H.create(c.value),C("created"),y()}finally{x.value.working=!1}}return(k,$)=>(v(),F(ke,{ref_key:"form",ref:x,title:f(e)("New alias"),steps:E.value,"form-getter":d,"get-v-form-ref":I,"validate-object":O,"summary-sections":o.value,onClose:y,onCreate:B},{"form.general":t(()=>[l(Ye,{ref_key:"general",ref:g,modelValue:c.value,"onUpdate:modelValue":$[0]||($[0]=w=>c.value=w)},null,8,["modelValue"])]),"form.recipients":t(()=>[l(Qe,{ref_key:"recipients",ref:A,modelValue:c.value.recipients,"onUpdate:modelValue":$[1]||($[1]=w=>c.value.recipients=w)},null,8,["modelValue"])]),_:2},1032,["title","steps","summary-sections"]))}},dt={class:"grey--text"},mt={__name:"AccountCreationForm",emits:["close","created"],setup(D,{emit:V}){const{$gettext:e}=J(),{canSetRole:R}=Ze(),S=oe(),C=et(),x=V,g=z(()=>o.value.username&&o.value.username.indexOf("@")!==-1),A=z(()=>{const u=[{title:e("Role"),items:[{key:e("Role"),value:o.value.role}]},{title:e("Identification"),items:[{key:e("Username"),value:o.value.username},{key:e("First name"),value:o.value.first_name},{key:e("Last name"),value:o.value.last_name},{name:"random_password",key:e("Random password"),value:o.value.random_password,type:"yesno"},{key:e("Enabled"),value:o.value.is_active,type:"yesno"}]}];return g.value?u.concat([{title:e("Mailbox"),items:[{key:e("Email"),value:o.value.mailbox.full_address},{key:e("Quota"),value:o.value.mailbox.use_domain_quota?e("Domain default value"):o.value.mailbox.quota},{key:e("Message sending limit"),value:o.value.mailbox.message_limit},{key:e("Send only account"),value:o.value.mailbox.is_send_only,type:"yesno"}]},{title:e("Aliases"),items:[{key:e("Aliases"),value:o.value.aliases,type:"list"}]}]):u}),h=z(()=>{const u=[];return R.value&&u.push({name:"role",title:e("Role")}),u.push({name:"identification",title:e("Identification")}),g.value?u.concat([{name:"mailbox",title:e("Mailbox")},{name:"aliases",title:e("Aliases")}]):u}),o=r({aliases:[],is_active:!0,role:Z.USER,mailbox:{use_domain_quota:!0},random_password:!1}),c=r(),E=r(),y=r(),n=r(),d=r(),I={role:E,identification:y,mailbox:n,aliases:d};function O(){navigator.clipboard.writeText(o.value.new_password).then(()=>{S.displayNotification({msg:e("Password copied to clipboard")})})}function B(u){return I.step[u.name]}function k(u){return I[u.name].value.vFormRef}function $(u,m){const b=h.value[u-1].name;I[b].value.formErrors&&(I[b].value.formErrors.value=m)}function w(u){const m={...u};return[Z.RESELLER,Z.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.use_domain_quota&&(m.mailbox.quota===void 0||m.mailbox.quota===null)&&(m.mailbox.quota=0)),m}function j(u){if(u===1)return!0;const m=w({...o.value});return G.validate(m)}function M(){x("close")}async function K(){const u=w({...o.value});u.password=u.new_password,delete u.new_password,delete u.password_confirmation;try{await G.create(u),x("created"),M()}finally{c.value.working=!1}}return C.getDomains(),(u,m)=>(v(),F(ke,{ref_key:"form",ref:c,title:f(e)("New account"),steps:h.value,"form-getter":B,"get-v-form-ref":k,"validate-object":j,"summary-sections":A.value,onClose:M,onCreate:K,onValidationError:$},{"form.role":t(()=>[l(Xe,{ref_key:"role",ref:E,modelValue:o.value,"onUpdate:modelValue":m[0]||(m[0]=b=>o.value=b)},null,8,["modelValue"])]),"form.identification":t(()=>[l(Ke,{ref_key:"identification",ref:y,modelValue:o.value,"onUpdate:modelValue":m[1]||(m[1]=b=>o.value=b)},null,8,["modelValue"])]),"form.mailbox":t(()=>[l(Je,{ref_key:"mailbox",ref:n,modelValue:o.value,"onUpdate:modelValue":m[2]||(m[2]=b=>o.value=b)},null,8,["modelValue"])]),"form.aliases":t(()=>[l(He,{ref_key:"aliases",ref:d,modelValue:o.value,"onUpdate:modelValue":m[3]||(m[3]=b=>o.value=b)},null,8,["modelValue"])]),"item.random_password":t(({item:b})=>[b.value?(v(),F(W,{key:0,cols:"12",class:"highligth text-white"},{default:t(()=>[l(ce,null,{default:t(()=>[l(W,null,{default:t(()=>[P("span",null,p(b.key),1)]),_:2},1024),b.type==="yesno"?(v(),F(W,{key:0,class:"text-right"},{default:t(()=>[_(p(u.$yesno(b.value)),1)]),_:2},1024)):Y("",!0)]),_:2},1024),l(ce,null,{default:t(()=>[l(W,{class:"text-right py-1"},{default:t(()=>[l(q,{"append-icon":"mdi-clipboard-multiple-outline",color:"white",variant:"text",title:f(e)("Copy to clipboard"),onClick:O},{default:t(()=>[_(p(o.value.new_password),1)]),_:1},8,["title"])]),_:1})]),_:1})]),_:2},1024)):(v(),U(T,{key:1},[l(W,null,{default:t(()=>[P("span",dt,p(b.key),1)]),_:2},1024),b.type==="yesno"?(v(),F(W,{key:0,class:"text-right"},{default:t(()=>[_(p(u.$yesno(b.value)),1)]),_:2},1024)):Y("",!0)],64))]),_:2},1032,["title","steps","summary-sections"]))}},ct={__name:"IdentitiesView",setup(D){const{$gettext:V,$pgettext:e}=J(),{importContent:R,exportContent:S}=at(),C=r(!1),x=r(!1),g=r(!1),A=r(),h=r();function o(){pe.exportAll().then(y=>{S(y.data,"identities",V)})}function c(y,n){y.append("crypt_passwords",n.crypt_passwords),R(pe,y,A,V)}function E(){g.value=!1,h.value.fetchIdentities()}return(y,n)=>(v(),U("div",null,[l(be,{flat:""},{default:t(()=>[l(Oe,null,{default:t(()=>[_(p(f(V)("Identities")),1)]),_:1})]),_:1}),l(rt,{ref_key:"idList",ref:h},{extraActions:t(()=>[l(le,{"offset-y":""},{activator:t(({props:d})=>[l(q,ae({color:"primary",variant:"outlined"},d,{"prepend-icon":"mdi-plus",class:"mr-4"}),{default:t(()=>[_(p(f(e)("male","New")),1)]),_:2},1040)]),default:t(()=>[l(ge,{density:"compact"},{default:t(()=>[l(ue,{onClick:n[0]||(n[0]=d=>C.value=!0)},{default:t(()=>[l(de,null,{default:t(()=>[_(p(f(V)("Account")),1)]),_:1})]),_:1}),l(ue,{onClick:n[1]||(n[1]=d=>x.value=!0)},{default:t(()=>[l(de,null,{default:t(()=>[_(p(f(V)("Alias")),1)]),_:1})]),_:1})]),_:1})]),_:1}),l(q,{class:"mr-2",title:f(V)("Import accounts and aliases from CSV file"),variant:"flat",icon:"mdi-file-import-outline",onClick:n[2]||(n[2]=d=>g.value=!0)},null,8,["title"]),l(q,{class:"mr-2",title:f(V)("Export accounts and aliases to CSV"),icon:"mdi-file-export-outline",variant:"flat",onClick:o},null,8,["title"])]),_:1},512),l(Q,{modelValue:x.value,"onUpdate:modelValue":n[5]||(n[5]=d=>x.value=d),fullscreen:"",scrollable:"","z-index":"10"},{default:t(()=>[l(ut,{onCreated:n[3]||(n[3]=d=>h.value.fetchIdentities()),onClose:n[4]||(n[4]=d=>x.value=!1)})]),_:1},8,["modelValue"]),l(Q,{modelValue:C.value,"onUpdate:modelValue":n[8]||(n[8]=d=>C.value=d),fullscreen:"",scrollable:"","z-index":"10"},{default:t(()=>[l(mt,{onCreated:n[6]||(n[6]=d=>h.value.fetchIdentities()),onClose:n[7]||(n[7]=d=>C.value=!1)})]),_:1},8,["modelValue"]),l(Q,{modelValue:g.value,"onUpdate:modelValue":n[9]||(n[9]=d=>g.value=d),persistent:"","max-width":"800px"},{default:t(()=>[l(f(tt),{ref_key:"importForm",ref:A,title:f(V)("Import identities"),onSubmit:c,onClose:E},{help:t(()=>n[10]||(n[10]=[P("ul",null,[P("li",null,[P("em",null,"account; loginname; password; first name; last name; enabled; group; address; quota[; domain; ...]")]),P("li",null,[P("em",null,"alias; address; enabled; recipient; [more recipients; ...]")])],-1)])),extraFields:t(({form:d})=>[l(lt,{modelValue:d.crypt_passwords,"onUpdate:modelValue":I=>d.crypt_passwords=I,label:f(V)("Crypt passwords"),color:"primary",density:"compact",hint:f(V)("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"])]))}},ra=fe(ct,[["__scopeId","data-v-c34f0ee8"]]);export{ra as default};
1
+ import{C as X,H as ie,A as Ee,c as F,o as v,w as t,a as l,l as U,F as D,s as Le,k as _,t as p,_ as fe,b as J,n as oe,h as r,i as z,d as Ne,m as Y,v as ae,f,r as je,x as qe,q as ve,j as Z,e as P}from"./index-YIGRKgNA.js";import{_ as ne}from"./MenuItems-BRChEdLp.js";import{_ as se}from"./ConfirmDialog-Dr0i2kqK.js";import{V as De,b as Te,a as ye}from"./VCard-CJ2oGh_i.js";import{V as _e}from"./VCheckbox-VicuXIJq.js";import{V as Me}from"./VSpacer-BWZq1PhD.js";import{V as j,c as ee,a as re}from"./VAvatar-J563boKh.js";import{a as G}from"./accounts-BT429O7P.js";import{a as H}from"./aliases-Q4uTcEh4.js";import{d as Pe}from"./index-DuzUMVLM.js";import{V as le}from"./VMenu-DDmBlbM8.js";import{V as ze}from"./VChip-DvxO74Mw.js";import{V as be,a as Oe}from"./VToolbar-Cs-fVa4M.js";import{V as Be}from"./VTextField-C9VUP7V9.js";import{V as ge,a as ue,b as de}from"./forwardRefs-DPrLRqxP.js";import{a as We,V as me}from"./VRadioGroup-WW8uMAv4.js";import{V as Ge}from"./VDataTableServer-DP13Fhfa.js";import{V as Q}from"./VDialog-CaQnQSDn.js";import{_ as Qe,a as Ye}from"./AliasRecipientForm-BhQfATiS.js";import{_ as ke}from"./CreationForm-BZMhQOez.js";import{_ as He,A as Je,a as Ke,b as Xe}from"./AccountAliasForm-Bu1I8sLg.js";import{u as Ze}from"./permissions-C33K6cJv.js";import{a as W,V as ce}from"./VRow-CAbOSEHS.js";import{u as et}from"./domains.store-CfpnnBGo.js";import{_ as tt,i as at}from"./importExport-7sRHU_3R.js";import{V as lt}from"./VSwitch-CixaedmQ.js";import"./tag-DV1_zOzl.js";import"./VCheckboxBtn-CLh3m66z.js";import"./VSelectionControl-BN-zQ3C6.js";import"./VProgressCircular-CtqQON49.js";import"./VInput-Dpmea5z9.js";/* empty css */import"./ssrBoot-CpJ-7WlH.js";import"./VDataTable-CAT0QYJz.js";import"./VSelect-Cdh0qO5m.js";import"./VTable-DO7ofPSj.js";import"./filter-C_GJovn5.js";import"./EmailField-DpBYkqam.js";import"./VForm-BwTUBf4u.js";import"./domains-CQv8gtbQ.js";import"./VTextarea-B28SmJ2v.js";import"./logos-CboXciB_.js";import"./VWindowItem-C9PFEbE6.js";import"./VContainer-L2EoH3dT.js";import"./VSheet-9RDZpWCf.js";import"./ChoiceField-17aCFpF6.js";import"./VAlert-x6n3drjw.js";import"./AccountPasswordSubForm-B9X5wAXp.js";import"./VFileInput-z44hJIWr.js";const te="identities",pe={getAll(){return X.get(`${te}/`)},exportAll(){return X.get(`/${te}/export/`)},importFromCSV(q){return X.post(`/${te}/import/`,q,{headers:{"Content-Type":"multipart/form-data"}})}},ot={__name:"ChooseColumnsForm",props:ie({availableColumns:{type:Array,default:null},mandatoryColumns:{type:Array,default:null},columns:{type:Array,default:null}},{modelValue:{type:Array},modelModifiers:{}}),emits:ie(["apply"],["update:modelValue"]),setup(q,{emit:V}){const e=q,R=Ee(q,"modelValue"),S=V,C=()=>{S("apply",R.value)};return R.value=e.columns.map(x=>x.key),(x,g)=>(v(),F(ye,{title:x.$gettext("Choose columns to display")},{default:t(()=>[l(De,null,{default:t(()=>[(v(!0),U(D,null,Le(e.availableColumns,A=>(v(),U("div",{key:A.key},[l(_e,{modelValue:R.value,"onUpdate:modelValue":g[0]||(g[0]=h=>R.value=h),value:A.key,label:A.title,color:"primary","hide-details":"",density:"compact",disabled:e.mandatoryColumns.includes(A.key)},null,8,["modelValue","value","label","disabled"])]))),128))]),_:1}),l(Te,null,{default:t(()=>[l(Me),l(j,{color:"primary",variant:"outlined",onClick:C},{default:t(()=>[_(p(x.$gettext("Apply")),1)]),_:1})]),_:1})]),_:1},8,["title"]))}},it={key:1},nt={key:1},st={__name:"IdentityList",setup(q,{expose:V}){const{$gettext:e}=J(),R=ve(),{displayNotification:S}=oe(),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"}},x=[C.address,C.enabled,C.recipients],g={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"},quota:{title:e("Quota"),key:"quota_usage"},message_limit:{title:e("Message limit"),key:"sent_messages_in_percent"},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"}},A=[g.username,g.is_active,g.role,g.quota],h=[{value:10,title:"10"},{value:25,title:"25"},{value:50,title:"50"},{value:100,title:"100"}],o=r("account"),c=r(0),E=r([]),y=r(!1),i=r(""),d=r([]),I=r(!1),O=r(),B=r(),k=r(1),$=r(10),w=r([]),T=r(A),M=r(!1),K=z(()=>T.value.concat([{title:e("Actions"),key:"actions",sortable:!1,align:"end"}])),u=z(()=>o.value==="account"?Object.values(g):Object.values(C)),m=z(()=>o.value==="account"?["username"]:["address"]);async function b(s){y.value=!0,E.value=[],w.value=[],s==="account"?T.value=A:T.value=x,await L()}async function Ve({page:s,itemsPerPage:n,sortBy:N}){k.value=s,$.value=n,w.value=N,L()}async function L(){y.value=!0;const s={page:k.value||1,page_size:$.value||10};w.value&&w.value.length&&(s.ordering=w.value.map(n=>n.order!=="asc"?`-${n.key}`:n.key).join(",")),i.value!==""&&(s.search=i.value);try{const n=o.value==="account"?await G.getAll(s):await H.getAll(s);E.value=n.data.results,c.value=n.data.count,d.value=[]}finally{y.value=!1}}function xe(s){T.value=u.value.filter(n=>s.includes(n.key)),M.value=!1}function we(s){const n=[];return o.value==="account"?(s.possible_actions.forEach(N=>{n.push({label:N.label,icon:N.icon,onClick:a=>{N.name==="get_credentials"&&$e(a),L()}})}),n.push({label:e("Edit"),icon:"mdi-circle-edit-outline",onClick:Ae}),n.push({label:e("Delete"),icon:"mdi-delete-outline",onClick:he,color:"red"})):o.value==="alias"&&(n.push({label:e("Edit"),icon:"mdi-circle-edit-outline",onClick:Re}),n.push({label:e("Delete"),icon:"mdi-delete-outline",onClick:Ue,color:"red"})),n}function Ce(){const s=[];return d.value.length>0&&s.push({label:e("Delete"),icon:"mdi-delete-outline",onClick:Ie,color:"red"}),s}function Ae(s){R.push({name:"AccountEdit",params:{id:s.pk}})}async function he(s){if(await B.value.open(e("Warning"),e("Are you sure you want to delete this identity ?"),{color:"error",agreeLabel:e("Yes"),cancelLabel:e("No")})){y.value=!1;try{await G.delete(s.pk,{keepdir:I.value}),L(),S({msg:e("Account deleted")})}finally{y.value=!1}}}async function $e(s){const n=await G.getCredentials(s.pk),N=new Blob([n.data],{type:n.headers["Content-Type"]}),a=document.createElement("a");a.href=URL.createObjectURL(N),a.download=`credentials_${s.pk}.pdf`,a.click(),URL.revokeObjectURL(a.href)}function Re(){}function Ie(){}async function Ue(s){if(await O.value.open(e("Warning"),e("Are you sure you want to delete this alias?"),{color:"error",agreeLabel:e("Yes"),cancelLabel:e("No")})){y.value=!1;try{await H.delete(s.pk),L(),S({msg:e("Alias deleted")})}finally{y.value=!1}}}function Fe(s){return s.recipients?s.recipients.join(", "):""}return Ne(()=>{L()}),V({fetchIdentities:L}),L=Pe(L,500),(s,n)=>{const N=je("router-link");return v(),F(ye,{class:"mt-6"},{default:t(()=>[l(Ge,{modelValue:d.value,"onUpdate:modelValue":n[3]||(n[3]=a=>d.value=a),headers:K.value,items:E.value,search:i.value,loading:y.value,"items-length":c.value,page:k.value,"items-per-page":$.value,"items-per-page-options":h,"item-value":"pk",elevation:"0","show-select":"","sort-by":w.value,"onUpdate:options":Ve},{top:t(()=>[l(be,{flat:"",color:"white"},{extension:t(()=>[l(We,{modelValue:o.value,"onUpdate:modelValue":[n[2]||(n[2]=a=>o.value=a),b],inline:"",readonly:y.value,"hide-details":""},{default:t(()=>[l(me,{color:"primary",label:f(e)("Accounts"),value:"account"},null,8,["label"]),l(me,{color:"primary",label:f(e)("Alias"),value:"alias"},null,8,["label"])]),_:1},8,["modelValue","readonly"])]),default:t(()=>[l(Be,{modelValue:i.value,"onUpdate:modelValue":n[0]||(n[0]=a=>i.value=a),"prepend-inner-icon":"mdi-magnify",placeholder:f(e)("Search"),variant:"outlined","hide-details":"","single-line":"",flat:"",density:"compact",class:"flex-grow-0 w-33 mr-4"},null,8,["modelValue","placeholder"]),qe(s.$slots,"extraActions",{},void 0,!0),l(j,{variant:"text",icon:"mdi-format-columns",title:f(e)("Customize displayed columns"),onClick:n[1]||(n[1]=a=>M.value=!0)},null,8,["title"]),d.value.length>1?(v(),F(le,{key:0,location:"bottom"},{activator:t(({props:a})=>[l(j,ae({"append-icon":"mdi-chevron-down"},a,{size:"small",variant:"flat"}),{default:t(()=>[_(p(f(e)("Actions")),1)]),_:2},1040)]),default:t(()=>[l(ge,{density:"compact"},{default:t(()=>[l(ne,{items:Ce()},null,8,["items"])]),_:1})]),_:1})):Y("",!0),l(j,{variant:"text",icon:"mdi-reload",onClick:L})]),_:3})]),"item.username":t(({item:a})=>[l(N,{to:{name:"AccountDetail",params:{id:a.pk}}},{default:t(()=>[_(p(a.username),1)]),_:2},1032,["to"])]),"item.address":t(({item:a})=>[l(N,{to:{name:"AliasDetail",params:{id:a.pk}}},{default:t(()=>[_(p(a.address),1)]),_:2},1032,["to"])]),"item.is_active":t(({item:a})=>[l(ee,{color:a.is_active?"success":"error",icon:a.is_active?"mdi-check-circle":"mdi-close-circle",variant:"flat"},null,8,["color","icon"])]),"item.enabled":t(({item:a})=>[l(ee,{color:a.enabled?"success":"error",icon:a.enabled?"mdi-check-circle":"mdi-close-circle",variant:"flat"},null,8,["color","icon"])]),"item.recipients":t(({item:a})=>[_(p(Fe(a)),1)]),"item.date_joined":t(({item:a})=>[_(p(s.$date(a.date_joined)),1)]),"item.creation":t(({item:a})=>[_(p(s.$date(a.creation)),1)]),"item.last_modification":t(({item:a})=>[_(p(s.$date(a.last_modification)),1)]),"item.last_login":t(({item:a})=>[_(p(s.$date(a.last_login)),1)]),"item.role":t(({item:a})=>[l(ze,{color:"default",size:"small"},{default:t(()=>[_(p(a.role),1)]),_:2},1024)]),"item.quota_usage":t(({item:a})=>[a.mailbox?(v(),U(D,{key:0},[a.mailbox.quota!=="0"?(v(),F(re,{key:0,color:a.mailbox.quota_usage<80?"primary":"warning","model-value":a.mailbox.quota_usage},null,8,["color","model-value"])):(v(),U("span",it,p(f(e)("Unlimited")),1))],64)):(v(),U(D,{key:1},[_(p(f(e)("No mailbox")),1)],64))]),"item.sent_messages_in_percent":t(({item:a})=>[a.mailbox?(v(),U(D,{key:0},[a.mailbox.message_limit!==null&&a.mailbox.message_limit!==void 0?(v(),U(D,{key:0},[a.mailbox.message_limit!==0?(v(),F(re,{key:0,color:a.mailbox.sent_messages_in_percent<80?"primary":"warning","model-value":a.mailbox.sent_messages_in_percent},null,8,["color","model-value"])):(v(),U("span",nt,p(f(e)("Sending forbidden")),1))],64)):(v(),U(D,{key:1},[_(p(f(e)("Unlimited")),1)],64))],64)):(v(),U(D,{key:1},[_(p(f(e)("No mailbox")),1)],64))]),"item.actions":t(({item:a})=>[a.possible_actions!==void 0&&a.possible_actions.length!==0?(v(),F(ee,{key:0,size:"large",color:"blue"},{default:t(()=>n[6]||(n[6]=[_("mdi-circle-small")])),_:1,__:[6]})):Y("",!0),l(le,{location:"bottom"},{activator:t(({props:Se})=>[l(j,ae(Se,{size:"small",icon:"mdi-dots-horizontal",variant:"text"}),null,16)]),default:t(()=>[l(ne,{items:we(a),obj:a},null,8,["items","obj"])]),_:2},1024)]),_:2},1032,["modelValue","headers","items","search","loading","items-length","page","items-per-page","sort-by"]),l(se,{ref_key:"confirmAlias",ref:O},null,512),l(se,{ref_key:"confirmAccount",ref:B},{default:t(()=>[l(_e,{modelValue:I.value,"onUpdate:modelValue":n[4]||(n[4]=a=>I.value=a),label:f(e)("Do not delete account folder"),"hide-details":""},null,8,["modelValue","label"])]),_:1},512),l(Q,{modelValue:M.value,"onUpdate:modelValue":n[5]||(n[5]=a=>M.value=a),"max-width":"500"},{default:t(()=>[l(ot,{columns:T.value,"available-columns":u.value,"mandatory-columns":m.value,onApply:xe},null,8,["columns","available-columns","mandatory-columns"])]),_:1},8,["modelValue"])]),_:3})}}},rt=fe(st,[["__scopeId","data-v-7c25d4c7"]]),ut={__name:"AliasCreationForm",emits:["close","created"],setup(q,{emit:V}){const{$gettext:e}=J(),R=oe(),S=ve(),C=V,x=r(),g=r(),A=r(),h={general:g,recipients:A},o=z(()=>{const k=[{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&&k[0].items.push({key:e("Expire at"),value:c.value.expire_at}),c.value.description!==void 0&&k[0].items.push({key:e("Description"),value:c.value.description}),k.push({title:e("Recipients"),items:[{key:e("Recipients"),value:c.value.recipients.join(", ")}]}),k}),c=r(i()),E=r([{name:"general",title:e("General")},{name:"recipients",title:e("Recipients")}]);function y(){c.value=i(),C("close")}function i(){return{random:!1,enabled:!0,recipients:[]}}function d(k){return h.step[k.name]}function I(k){return h[k.name].value.vFormRef}function O(){const k={...c.value};k.recipients.length===0&&delete k.recipients;const $=H.validate(k);return $.catch(w=>{w.response.status===409&&w.response.data.id!==void 0&&(R.displayNotification({msg:e("Alias already exists, redirecting to edit page"),type:"warning"}),S.push({name:"AliasEdit",params:{id:w.response.data.id}}))}),$}async function B(){c.value.domain!==void 0&&delete c.value.domain;try{await H.create(c.value),C("created"),y()}finally{x.value.working=!1}}return(k,$)=>(v(),F(ke,{ref_key:"form",ref:x,title:f(e)("New alias"),steps:E.value,"form-getter":d,"get-v-form-ref":I,"validate-object":O,"summary-sections":o.value,onClose:y,onCreate:B},{"form.general":t(()=>[l(Ye,{ref_key:"general",ref:g,modelValue:c.value,"onUpdate:modelValue":$[0]||($[0]=w=>c.value=w)},null,8,["modelValue"])]),"form.recipients":t(()=>[l(Qe,{ref_key:"recipients",ref:A,modelValue:c.value.recipients,"onUpdate:modelValue":$[1]||($[1]=w=>c.value.recipients=w)},null,8,["modelValue"])]),_:2},1032,["title","steps","summary-sections"]))}},dt={class:"grey--text"},mt={__name:"AccountCreationForm",emits:["close","created"],setup(q,{emit:V}){const{$gettext:e}=J(),{canSetRole:R}=Ze(),S=oe(),C=et(),x=V,g=z(()=>o.value.username&&o.value.username.indexOf("@")!==-1),A=z(()=>{const u=[{title:e("Role"),items:[{key:e("Role"),value:o.value.role}]},{title:e("Identification"),items:[{key:e("Username"),value:o.value.username},{key:e("First name"),value:o.value.first_name},{key:e("Last name"),value:o.value.last_name},{name:"random_password",key:e("Random password"),value:o.value.random_password,type:"yesno"},{key:e("Enabled"),value:o.value.is_active,type:"yesno"}]}];return g.value?u.concat([{title:e("Mailbox"),items:[{key:e("Email"),value:o.value.mailbox.full_address},{key:e("Quota"),value:o.value.mailbox.use_domain_quota?e("Domain default value"):o.value.mailbox.quota},{key:e("Message sending limit"),value:o.value.mailbox.message_limit},{key:e("Send only account"),value:o.value.mailbox.is_send_only,type:"yesno"}]},{title:e("Aliases"),items:[{key:e("Aliases"),value:o.value.aliases,type:"list"}]}]):u}),h=z(()=>{const u=[];return R.value&&u.push({name:"role",title:e("Role")}),u.push({name:"identification",title:e("Identification")}),g.value?u.concat([{name:"mailbox",title:e("Mailbox")},{name:"aliases",title:e("Aliases")}]):u}),o=r({aliases:[],is_active:!0,role:Z.USER,mailbox:{use_domain_quota:!0},random_password:!1}),c=r(),E=r(),y=r(),i=r(),d=r(),I={role:E,identification:y,mailbox:i,aliases:d};function O(){navigator.clipboard.writeText(o.value.new_password).then(()=>{S.displayNotification({msg:e("Password copied to clipboard")})})}function B(u){return I.step[u.name]}function k(u){return I[u.name].value.vFormRef}function $(u,m){const b=h.value[u-1].name;I[b].value.formErrors&&(I[b].value.formErrors.value=m)}function w(u){const m={...u};return[Z.RESELLER,Z.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.use_domain_quota&&(m.mailbox.quota===void 0||m.mailbox.quota===null)&&(m.mailbox.quota=0)),m}function T(u){if(u===1)return!0;const m=w({...o.value});return G.validate(m)}function M(){x("close")}async function K(){const u=w({...o.value});u.password=u.new_password,delete u.new_password,delete u.password_confirmation;try{await G.create(u),x("created"),M()}finally{c.value.working=!1}}return C.getDomains(),(u,m)=>(v(),F(ke,{ref_key:"form",ref:c,title:f(e)("New account"),steps:h.value,"form-getter":B,"get-v-form-ref":k,"validate-object":T,"summary-sections":A.value,onClose:M,onCreate:K,onValidationError:$},{"form.role":t(()=>[l(Xe,{ref_key:"role",ref:E,modelValue:o.value,"onUpdate:modelValue":m[0]||(m[0]=b=>o.value=b)},null,8,["modelValue"])]),"form.identification":t(()=>[l(Ke,{ref_key:"identification",ref:y,modelValue:o.value,"onUpdate:modelValue":m[1]||(m[1]=b=>o.value=b)},null,8,["modelValue"])]),"form.mailbox":t(()=>[l(Je,{ref_key:"mailbox",ref:i,modelValue:o.value,"onUpdate:modelValue":m[2]||(m[2]=b=>o.value=b)},null,8,["modelValue"])]),"form.aliases":t(()=>[l(He,{ref_key:"aliases",ref:d,modelValue:o.value,"onUpdate:modelValue":m[3]||(m[3]=b=>o.value=b)},null,8,["modelValue"])]),"item.random_password":t(({item:b})=>[b.value?(v(),F(W,{key:0,cols:"12",class:"highligth text-white"},{default:t(()=>[l(ce,null,{default:t(()=>[l(W,null,{default:t(()=>[P("span",null,p(b.key),1)]),_:2},1024),b.type==="yesno"?(v(),F(W,{key:0,class:"text-right"},{default:t(()=>[_(p(u.$yesno(b.value)),1)]),_:2},1024)):Y("",!0)]),_:2},1024),l(ce,null,{default:t(()=>[l(W,{class:"text-right py-1"},{default:t(()=>[l(j,{"append-icon":"mdi-clipboard-multiple-outline",color:"white",variant:"text",title:f(e)("Copy to clipboard"),onClick:O},{default:t(()=>[_(p(o.value.new_password),1)]),_:1},8,["title"])]),_:1})]),_:1})]),_:2},1024)):(v(),U(D,{key:1},[l(W,null,{default:t(()=>[P("span",dt,p(b.key),1)]),_:2},1024),b.type==="yesno"?(v(),F(W,{key:0,class:"text-right"},{default:t(()=>[_(p(u.$yesno(b.value)),1)]),_:2},1024)):Y("",!0)],64))]),_:2},1032,["title","steps","summary-sections"]))}},ct={__name:"IdentitiesView",setup(q){const{$gettext:V,$pgettext:e}=J(),{importContent:R,exportContent:S}=at(),C=r(!1),x=r(!1),g=r(!1),A=r(),h=r();function o(){pe.exportAll().then(y=>{S(y.data,"identities",V)})}function c(y,i){i.crypt_passwords!==void 0&&i.crypt_passwords!==null&&y.append("crypt_passwords",i.crypt_passwords),R(pe,y,A,V)}function E(){g.value=!1,h.value.fetchIdentities()}return(y,i)=>(v(),U("div",null,[l(be,{flat:""},{default:t(()=>[l(Oe,null,{default:t(()=>[_(p(f(V)("Identities")),1)]),_:1})]),_:1}),l(rt,{ref_key:"idList",ref:h},{extraActions:t(()=>[l(le,{"offset-y":""},{activator:t(({props:d})=>[l(j,ae({color:"primary",variant:"outlined"},d,{"prepend-icon":"mdi-plus",class:"mr-4"}),{default:t(()=>[_(p(f(e)("male","New")),1)]),_:2},1040)]),default:t(()=>[l(ge,{density:"compact"},{default:t(()=>[l(ue,{onClick:i[0]||(i[0]=d=>C.value=!0)},{default:t(()=>[l(de,null,{default:t(()=>[_(p(f(V)("Account")),1)]),_:1})]),_:1}),l(ue,{onClick:i[1]||(i[1]=d=>x.value=!0)},{default:t(()=>[l(de,null,{default:t(()=>[_(p(f(V)("Alias")),1)]),_:1})]),_:1})]),_:1})]),_:1}),l(j,{class:"mr-2",title:f(V)("Import accounts and aliases from CSV file"),variant:"flat",icon:"mdi-file-import-outline",onClick:i[2]||(i[2]=d=>g.value=!0)},null,8,["title"]),l(j,{class:"mr-2",title:f(V)("Export accounts and aliases to CSV"),icon:"mdi-file-export-outline",variant:"flat",onClick:o},null,8,["title"])]),_:1},512),l(Q,{modelValue:x.value,"onUpdate:modelValue":i[5]||(i[5]=d=>x.value=d),fullscreen:"",scrollable:"","z-index":"10"},{default:t(()=>[l(ut,{onCreated:i[3]||(i[3]=d=>h.value.fetchIdentities()),onClose:i[4]||(i[4]=d=>x.value=!1)})]),_:1},8,["modelValue"]),l(Q,{modelValue:C.value,"onUpdate:modelValue":i[8]||(i[8]=d=>C.value=d),fullscreen:"",scrollable:"","z-index":"10"},{default:t(()=>[l(mt,{onCreated:i[6]||(i[6]=d=>h.value.fetchIdentities()),onClose:i[7]||(i[7]=d=>C.value=!1)})]),_:1},8,["modelValue"]),l(Q,{modelValue:g.value,"onUpdate:modelValue":i[9]||(i[9]=d=>g.value=d),persistent:"","max-width":"800px"},{default:t(()=>[l(f(tt),{ref_key:"importForm",ref:A,title:f(V)("Import identities"),onSubmit:c,onClose:E},{help:t(()=>i[10]||(i[10]=[P("ul",null,[P("li",null,[P("em",null,"account; loginname; password; first name; last name; enabled; group; address; quota[; domain; ...]")]),P("li",null,[P("em",null,"alias; address; enabled; recipient; [more recipients; ...]")])],-1)])),extraFields:t(({form:d})=>[l(lt,{modelValue:d.crypt_passwords,"onUpdate:modelValue":I=>d.crypt_passwords=I,label:f(V)("Crypt passwords"),color:"primary",density:"compact",hint:f(V)("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"])]))}},ra=fe(ct,[["__scopeId","data-v-c9f88733"]]);export{ra as default};
@@ -1 +1 @@
1
- a[data-v-7c25d4c7]{text-decoration:none;color:rgb(var(--v-theme-primary))}a[data-v-7c25d4c7]:visited{color:rgb(var(--v-theme-primary))}.highligth{background-color:#515d78}.v-toolbar[data-v-c34f0ee8],.v-tabs-items[data-v-c34f0ee8]{background-color:#f7f8fa!important}
1
+ a[data-v-7c25d4c7]{text-decoration:none;color:rgb(var(--v-theme-primary))}a[data-v-7c25d4c7]:visited{color:rgb(var(--v-theme-primary))}.highligth{background-color:#515d78}.v-toolbar[data-v-c9f88733],.v-tabs-items[data-v-c9f88733]{background-color:#f7f8fa!important}
@@ -1 +1 @@
1
- import{_ as w,b as M,g as V,h as k,d as H,l as u,a,c as m,m as p,w as o,f as t,o as l,k as d,t as r,F as _,s as x,e as s}from"./index-BImkz5Jx.js";import{a as I}from"./admin-DewTk2H8.js";import{V as C,a as N}from"./VToolbar-CFZfqeOr.js";import{a as g,c as f,V as v}from"./VCard-CxH9DWoK.js";import{V as T}from"./VAlert-BuaaYN2h.js";import{V as B}from"./VDataTableVirtual-BOQlNtIG.js";import{u as A}from"./global.store-DbkcI5o2.js";import"./tag-B_yWNNJD.js";import"./VAvatar-Cmga0vj6.js";import"./VProgressCircular-BtOPiGCg.js";import"./VDataTable-Bh8NbVSx.js";import"./VSelect-C3RjAa45.js";import"./VTextField-XoGTj1KG.js";import"./VInput-CoDJzvaW.js";import"./forwardRefs-cvcnlhoK.js";import"./ssrBoot-CKUX4kcb.js";import"./VMenu-gUG70-zD.js";import"./VCheckboxBtn-DMoNtKT8.js";import"./VSelectionControl-zyz-fJvC.js";import"./VChip-D_styETR.js";import"./VTable-DaLxa4FO.js";import"./filter-C82FUCw_.js";const S={class:"mt-4"},D=["innerHTML"],G=["innerHTML"],E=["innerHTML"],F=["innerHTML"],O=["innerHTML"],P=["innerHTML"],R=["innerHTML"],U={tag:"p"},Y={tag:"p",class:"text-body-2"},$=["href"],j={__name:"InformationView",setup(q){const{$gettext:e}=M(),h=A(),c=V([]),y=[{title:e("Name"),value:"name"},{title:e("Installed version"),value:"version"},{title:e("Latest version"),value:"last_version"},{title:e("Description"),value:"description"}],L=k(()=>c.value.filter(i=>i.update).length>0);function b(i){return i.update?"green lighten-5":""}return H(()=>{I.getComponentsInformation().then(i=>{c.value=i.data})}),(i,z)=>(l(),u("div",null,[a(C,{flat:""},{default:o(()=>[a(N,null,{default:o(()=>[d(r(t(e)("Information")),1)]),_:1})]),_:1}),t(h).adminNotifications.length?(l(),m(g,{key:0,class:"my-6"},{default:o(()=>[a(f,null,{default:o(()=>[d(r(t(e)("Important messages")),1)]),_:1}),a(v,null,{default:o(()=>[(l(!0),u(_,null,x(t(h).adminNotifications,n=>(l(),m(T,{key:n.id,type:n.color,title:n.text,border:"start",variant:"tonal"},{default:o(()=>[n.id==="deprecatedpasswordscheme"?(l(),u(_,{key:0},[d(r(t(e)("The password scheme you are using has been deprecated and will be removed in the next minor version. The procedure to upgrade to a stronger scheme is as follows:"))+" ",1),s("ol",S,[s("li",{innerHTML:t(e)("Go to <strong>Settings > General</strong> section",!0)},null,8,D),s("li",{innerHTML:t(e)("Change the value of <strong>Default password scheme</strong>",!0)},null,8,G),s("li",{innerHTML:t(e)("Make sure <strong>Update password scheme at login</strong> option is enabled",!0)},null,8,E),s("li",{innerHTML:t(e)("Save your changes")},null,8,F),s("li",null,r(t(e)("Logout / Login with your current account so its password gets updated")),1),s("li",{innerHTML:t(e)("Inform <strong>ALL</strong> your users that they must login to Modoboa to complete the operation",!0)},null,8,O)]),s("p",{class:"mt-4",innerHTML:t(e)("You must apply this procedure <strong>BEFORE</strong> you install a newest version of Modoboa, otherwise <strong>you will be unable to connect to the web interface anymore</strong>.",!0)},null,8,P),s("p",{class:"mt-4",innerHTML:t(e)("Please note that you will see this message until <strong>ALL</strong> user passwords have been converted using the new scheme.",!0)},null,8,R)],64)):p("",!0)]),_:2},1032,["type","title"]))),128))]),_:1})]),_:1})):p("",!0),a(g,{class:"mt-6"},{default:o(()=>[a(f,null,{default:o(()=>[d(r(t(e)("Installed components")),1)]),_:1}),a(v,null,{default:o(()=>[L.value?(l(),m(T,{key:0,variant:"tonal",type:"success",text:"",border:"start"},{default:o(()=>[s("div",U,r(t(e)("One or more updates are available")),1),s("div",Y,r(t(e)("Check out the following list to find related components")),1)]),_:1})):p("",!0),a(B,{headers:y,items:c.value,"item-class":b},{"item.last_version":o(({item:n})=>[n.changelog_url?(l(),u("a",{key:0,href:n.changelog_url,target:"_blank"},r(n.last_version),9,$)):(l(),u(_,{key:1},[d(r(n.last_version),1)],64))]),_:2},1032,["items"])]),_:1})]),_:1})]))}},ge=w(j,[["__scopeId","data-v-f326fdcf"]]);export{ge as default};
1
+ import{_ as w,b as M,h as V,i as k,d as H,l as u,a,c as m,m as p,w as o,f as t,o as l,k as d,t as r,F as _,s as x,e as s}from"./index-YIGRKgNA.js";import{a as I}from"./admin-Cu5rjY7m.js";import{V as C,a as N}from"./VToolbar-Cs-fVa4M.js";import{a as g,c as f,V as v}from"./VCard-CJ2oGh_i.js";import{V as T}from"./VAlert-x6n3drjw.js";import{V as B}from"./VDataTableVirtual-LVNemzH7.js";import{u as A}from"./global.store-CNChIxQL.js";import"./tag-DV1_zOzl.js";import"./VAvatar-J563boKh.js";import"./VProgressCircular-CtqQON49.js";import"./VDataTable-CAT0QYJz.js";import"./VSelect-Cdh0qO5m.js";import"./VTextField-C9VUP7V9.js";import"./VInput-Dpmea5z9.js";import"./forwardRefs-DPrLRqxP.js";import"./ssrBoot-CpJ-7WlH.js";import"./VMenu-DDmBlbM8.js";import"./VCheckboxBtn-CLh3m66z.js";import"./VSelectionControl-BN-zQ3C6.js";import"./VChip-DvxO74Mw.js";import"./VTable-DO7ofPSj.js";import"./filter-C_GJovn5.js";const S={class:"mt-4"},D=["innerHTML"],G=["innerHTML"],E=["innerHTML"],F=["innerHTML"],O=["innerHTML"],P=["innerHTML"],R=["innerHTML"],U={tag:"p"},Y={tag:"p",class:"text-body-2"},$=["href"],j={__name:"InformationView",setup(q){const{$gettext:e}=M(),h=A(),c=V([]),y=[{title:e("Name"),value:"name"},{title:e("Installed version"),value:"version"},{title:e("Latest version"),value:"last_version"},{title:e("Description"),value:"description"}],L=k(()=>c.value.filter(i=>i.update).length>0);function b(i){return i.update?"green lighten-5":""}return H(()=>{I.getComponentsInformation().then(i=>{c.value=i.data})}),(i,z)=>(l(),u("div",null,[a(C,{flat:""},{default:o(()=>[a(N,null,{default:o(()=>[d(r(t(e)("Information")),1)]),_:1})]),_:1}),t(h).adminNotifications.length?(l(),m(g,{key:0,class:"my-6"},{default:o(()=>[a(f,null,{default:o(()=>[d(r(t(e)("Important messages")),1)]),_:1}),a(v,null,{default:o(()=>[(l(!0),u(_,null,x(t(h).adminNotifications,n=>(l(),m(T,{key:n.id,type:n.color,title:n.text,border:"start",variant:"tonal"},{default:o(()=>[n.id==="deprecatedpasswordscheme"?(l(),u(_,{key:0},[d(r(t(e)("The password scheme you are using has been deprecated and will be removed in the next minor version. The procedure to upgrade to a stronger scheme is as follows:"))+" ",1),s("ol",S,[s("li",{innerHTML:t(e)("Go to <strong>Settings > General</strong> section",!0)},null,8,D),s("li",{innerHTML:t(e)("Change the value of <strong>Default password scheme</strong>",!0)},null,8,G),s("li",{innerHTML:t(e)("Make sure <strong>Update password scheme at login</strong> option is enabled",!0)},null,8,E),s("li",{innerHTML:t(e)("Save your changes")},null,8,F),s("li",null,r(t(e)("Logout / Login with your current account so its password gets updated")),1),s("li",{innerHTML:t(e)("Inform <strong>ALL</strong> your users that they must login to Modoboa to complete the operation",!0)},null,8,O)]),s("p",{class:"mt-4",innerHTML:t(e)("You must apply this procedure <strong>BEFORE</strong> you install a newest version of Modoboa, otherwise <strong>you will be unable to connect to the web interface anymore</strong>.",!0)},null,8,P),s("p",{class:"mt-4",innerHTML:t(e)("Please note that you will see this message until <strong>ALL</strong> user passwords have been converted using the new scheme.",!0)},null,8,R)],64)):p("",!0)]),_:2},1032,["type","title"]))),128))]),_:1})]),_:1})):p("",!0),a(g,{class:"mt-6"},{default:o(()=>[a(f,null,{default:o(()=>[d(r(t(e)("Installed components")),1)]),_:1}),a(v,null,{default:o(()=>[L.value?(l(),m(T,{key:0,variant:"tonal",type:"success",text:"",border:"start"},{default:o(()=>[s("div",U,r(t(e)("One or more updates are available")),1),s("div",Y,r(t(e)("Check out the following list to find related components")),1)]),_:1})):p("",!0),a(B,{headers:y,items:c.value,"item-class":b},{"item.last_version":o(({item:n})=>[n.changelog_url?(l(),u("a",{key:0,href:n.changelog_url,target:"_blank"},r(n.last_version),9,$)):(l(),u(_,{key:1},[d(r(n.last_version),1)],64))]),_:2},1032,["items"])]),_:1})]),_:1})]))}},ge=w(j,[["__scopeId","data-v-f326fdcf"]]);export{ge as default};
@@ -1 +1 @@
1
- import{_ as a,c as t,o,w as e,a as r}from"./index-BImkz5Jx.js";import{V as s,a as c}from"./VRow-ozg66L7j.js";import{V as i}from"./VProgressCircular-BtOPiGCg.js";import{V as n}from"./VContainer-B46caNs1.js";const l={};function f(m,_){return o(),t(n,{class:"fill-height",fuild:""},{default:e(()=>[r(s,{align:"center",justify:"center",dense:""},{default:e(()=>[r(c,{cols:"12",sm:"12",md:"12",lg:"12",class:"text-center"},{default:e(()=>[r(i,{color:"primary",indeterminate:"",size:108})]),_:1})]),_:1})]),_:1})}const g=a(l,[["render",f]]);export{g as L};
1
+ import{_ as a,c as t,o,w as e,a as r}from"./index-YIGRKgNA.js";import{V as s,a as c}from"./VRow-CAbOSEHS.js";import{V as i}from"./VProgressCircular-CtqQON49.js";import{V as n}from"./VContainer-L2EoH3dT.js";const l={};function f(m,_){return o(),t(n,{class:"fill-height",fuild:""},{default:e(()=>[r(s,{align:"center",justify:"center",dense:""},{default:e(()=>[r(c,{cols:"12",sm:"12",md:"12",lg:"12",class:"text-center"},{default:e(()=>[r(i,{color:"primary",indeterminate:"",size:108})]),_:1})]),_:1})]),_:1})}const g=a(l,[["render",f]]);export{g as L};
@@ -0,0 +1 @@
1
+ import{u as m,g as r,c as p,w as a,o as u,a as o,e as f,t as _}from"./index-YIGRKgNA.js";import{u as d}from"./theme-BGzdVPko.js";import{V as g}from"./VContainer-L2EoH3dT.js";import{V as h,a as V}from"./VRow-CAbOSEHS.js";import{V as w}from"./VProgressCircular-CtqQON49.js";/* empty css */import"./tag-DV1_zOzl.js";const y={class:"ma-5"},N={__name:"LoginCallbackView",props:{redirectUrl:String},async setup(s){let t,e;const i=s,c=m(),{enableTheme:n}=d();return[t,e]=r(()=>c.completeLogin(i.redirectUrl)),await t,e(),[t,e]=r(()=>n()),await t,e(),(l,C)=>(u(),p(g,{class:"fill-height",fluid:""},{default:a(()=>[o(h,{align:"center",justify:"center"},{default:a(()=>[o(V,{cols:"auto",class:"text-center"},{default:a(()=>[f("h1",y,_(l.$gettext("Attempting to log you in.")),1),o(w,{color:"primary",indeterminate:"",size:128,width:12,"align-self":"center"})]),_:1})]),_:1})]),_:1}))}};export{N as default};
@@ -1 +1 @@
1
- import{u as s,b as r,d as i,c as n,o as c,w as t,a as e,e as l,t as u,f as m}from"./index-BImkz5Jx.js";import{V as f,a as p}from"./VRow-ozg66L7j.js";import{V as _}from"./VProgressCircular-BtOPiGCg.js";import{V as d}from"./VContainer-B46caNs1.js";/* empty css */import"./tag-B_yWNNJD.js";const g={class:"ma-5"},A={__name:"LoginView",setup(V){const a=s(),{$gettext:o}=r();return i(()=>a.login()),(h,x)=>(c(),n(d,{class:"fill-height",fluid:""},{default:t(()=>[e(f,{align:"center",justify:"center"},{default:t(()=>[e(p,{cols:"auto",class:"text-center"},{default:t(()=>[l("h1",g,u(m(o)("Attempting to log you in.")),1),e(_,{color:"primary",indeterminate:"",size:128,width:12,"align-self":"center"})]),_:1})]),_:1})]),_:1}))}};export{A as default};
1
+ import{u as s,b as r,d as i,c as n,o as c,w as t,a as e,e as l,t as u,f as m}from"./index-YIGRKgNA.js";import{V as f,a as p}from"./VRow-CAbOSEHS.js";import{V as _}from"./VProgressCircular-CtqQON49.js";import{V as d}from"./VContainer-L2EoH3dT.js";/* empty css */import"./tag-DV1_zOzl.js";const g={class:"ma-5"},A={__name:"LoginView",setup(V){const a=s(),{$gettext:o}=r();return i(()=>a.login()),(h,x)=>(c(),n(d,{class:"fill-height",fluid:""},{default:t(()=>[e(f,{align:"center",justify:"center"},{default:t(()=>[e(p,{cols:"auto",class:"text-center"},{default:t(()=>[l("h1",g,u(m(o)("Attempting to log you in.")),1),e(_,{color:"primary",indeterminate:"",size:128,width:12,"align-self":"center"})]),_:1})]),_:1})]),_:1}))}};export{A as default};
@@ -1 +1 @@
1
- .v-card-text[data-v-0050ed0f]{padding:0}.emails[data-v-0050ed0f]{margin-top:150px}.clickable[data-v-0050ed0f]{cursor:pointer}.v-skeleton-loader{align-items:center;background:rgb(var(--v-theme-surface));border-radius:4px;display:flex;flex-wrap:wrap;position:relative;vertical-align:top}.v-skeleton-loader__actions{justify-content:end}.v-skeleton-loader .v-skeleton-loader__ossein{height:100%}.v-skeleton-loader .v-skeleton-loader__avatar,.v-skeleton-loader .v-skeleton-loader__button,.v-skeleton-loader .v-skeleton-loader__chip,.v-skeleton-loader .v-skeleton-loader__divider,.v-skeleton-loader .v-skeleton-loader__heading,.v-skeleton-loader .v-skeleton-loader__image,.v-skeleton-loader .v-skeleton-loader__ossein,.v-skeleton-loader .v-skeleton-loader__text{background:rgba(var(--v-theme-on-surface),var(--v-border-opacity))}.v-skeleton-loader .v-skeleton-loader__list-item,.v-skeleton-loader .v-skeleton-loader__list-item-avatar,.v-skeleton-loader .v-skeleton-loader__list-item-text,.v-skeleton-loader .v-skeleton-loader__list-item-two-line,.v-skeleton-loader .v-skeleton-loader__list-item-avatar-two-line,.v-skeleton-loader .v-skeleton-loader__list-item-three-line,.v-skeleton-loader .v-skeleton-loader__list-item-avatar-three-line{border-radius:4px}.v-skeleton-loader__bone{align-items:center;border-radius:inherit;display:flex;flex:1 1 100%;flex-wrap:wrap;overflow:hidden;position:relative}.v-skeleton-loader__bone:after{animation:loading 1.5s infinite;background:linear-gradient(90deg,rgba(var(--v-theme-surface),0),rgba(var(--v-theme-surface),.3),rgba(var(--v-theme-surface),0));transform:translate(-100%);z-index:1}.v-skeleton-loader__bone:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%}.v-skeleton-loader__avatar{border-radius:50%;flex:0 1 auto;margin:8px 16px;max-height:48px;min-height:48px;height:48px;max-width:48px;min-width:48px;width:48px}.v-skeleton-loader__avatar+.v-skeleton-loader__bone{flex:1 1 auto;margin-inline-start:0}.v-skeleton-loader__avatar+.v-skeleton-loader__sentences>.v-skeleton-loader__text,.v-skeleton-loader__avatar+.v-skeleton-loader__paragraph>.v-skeleton-loader__text{margin-inline-start:0}.v-skeleton-loader__button{border-radius:4px;height:36px;margin:16px;max-width:64px}.v-skeleton-loader__button+.v-skeleton-loader__bone{flex:1 1 auto;margin-inline-start:0}.v-skeleton-loader__button+.v-skeleton-loader__sentences>.v-skeleton-loader__text,.v-skeleton-loader__button+.v-skeleton-loader__paragraph>.v-skeleton-loader__text{margin-inline-start:0}.v-skeleton-loader__chip{border-radius:16px;margin:16px;height:32px;max-width:96px}.v-skeleton-loader__chip+.v-skeleton-loader__bone{flex:1 1 auto;margin-inline-start:0}.v-skeleton-loader__chip+.v-skeleton-loader__sentences>.v-skeleton-loader__text,.v-skeleton-loader__chip+.v-skeleton-loader__paragraph>.v-skeleton-loader__text{margin-inline-start:0}.v-skeleton-loader__date-picker{border-radius:inherit}.v-skeleton-loader__date-picker .v-skeleton-loader__list-item:first-child .v-skeleton-loader__text{max-width:88px;width:20%}.v-skeleton-loader__date-picker .v-skeleton-loader__heading{max-width:256px;width:40%}.v-skeleton-loader__date-picker-days{flex-wrap:wrap;margin:16px}.v-skeleton-loader__date-picker-days .v-skeleton-loader__avatar{border-radius:4px;margin:4px;max-width:100%}.v-skeleton-loader__date-picker-options{flex-wrap:nowrap}.v-skeleton-loader__date-picker-options .v-skeleton-loader__text{flex:1 1 auto}.v-skeleton-loader__divider{border-radius:1px;height:2px}.v-skeleton-loader__heading{border-radius:12px;margin:16px;height:24px}.v-skeleton-loader__heading+.v-skeleton-loader__subtitle{margin-top:-16px}.v-skeleton-loader__image{height:150px;border-radius:0}.v-skeleton-loader__card .v-skeleton-loader__image{border-radius:0}.v-skeleton-loader__list-item{margin:16px}.v-skeleton-loader__list-item .v-skeleton-loader__text{margin:0}.v-skeleton-loader__table-thead{justify-content:space-between}.v-skeleton-loader__table-thead .v-skeleton-loader__heading{margin-top:16px;max-width:16px}.v-skeleton-loader__table-tfoot{flex-wrap:nowrap}.v-skeleton-loader__table-tfoot>.v-skeleton-loader__text.v-skeleton-loader__bone{margin-top:16px}.v-skeleton-loader__table-row{align-items:baseline;margin:0 8px;justify-content:space-evenly;flex-wrap:nowrap}.v-skeleton-loader__table-row>.v-skeleton-loader__text.v-skeleton-loader__bone{margin-inline:8px}.v-skeleton-loader__table-row+.v-skeleton-loader__divider{margin:0 16px}.v-skeleton-loader__table-cell{align-items:center;display:flex;height:48px;width:88px}.v-skeleton-loader__table-cell .v-skeleton-loader__text{margin-bottom:0}.v-skeleton-loader__subtitle{max-width:70%}.v-skeleton-loader__subtitle>.v-skeleton-loader__text{height:16px;border-radius:8px}.v-skeleton-loader__text{border-radius:6px;margin:16px;height:12px}.v-skeleton-loader__text+.v-skeleton-loader__text{margin-top:-8px;max-width:50%}.v-skeleton-loader__text+.v-skeleton-loader__text+.v-skeleton-loader__text{max-width:70%}.v-skeleton-loader--boilerplate .v-skeleton-loader__bone:after{display:none}.v-skeleton-loader--is-loading{overflow:hidden}.v-skeleton-loader--tile,.v-skeleton-loader--tile .v-skeleton-loader__bone{border-radius:0}@keyframes loading{to{transform:translate(100%)}}
1
+ .v-card-text[data-v-90e0691b]{padding:0}.emails[data-v-90e0691b]{margin-top:150px}.clickable[data-v-90e0691b]{cursor:pointer}.v-skeleton-loader{align-items:center;background:rgb(var(--v-theme-surface));border-radius:4px;display:flex;flex-wrap:wrap;position:relative;vertical-align:top}.v-skeleton-loader__actions{justify-content:end}.v-skeleton-loader .v-skeleton-loader__ossein{height:100%}.v-skeleton-loader .v-skeleton-loader__avatar,.v-skeleton-loader .v-skeleton-loader__button,.v-skeleton-loader .v-skeleton-loader__chip,.v-skeleton-loader .v-skeleton-loader__divider,.v-skeleton-loader .v-skeleton-loader__heading,.v-skeleton-loader .v-skeleton-loader__image,.v-skeleton-loader .v-skeleton-loader__ossein,.v-skeleton-loader .v-skeleton-loader__text{background:rgba(var(--v-theme-on-surface),var(--v-border-opacity))}.v-skeleton-loader .v-skeleton-loader__list-item,.v-skeleton-loader .v-skeleton-loader__list-item-avatar,.v-skeleton-loader .v-skeleton-loader__list-item-text,.v-skeleton-loader .v-skeleton-loader__list-item-two-line,.v-skeleton-loader .v-skeleton-loader__list-item-avatar-two-line,.v-skeleton-loader .v-skeleton-loader__list-item-three-line,.v-skeleton-loader .v-skeleton-loader__list-item-avatar-three-line{border-radius:4px}.v-skeleton-loader__bone{align-items:center;border-radius:inherit;display:flex;flex:1 1 100%;flex-wrap:wrap;overflow:hidden;position:relative}.v-skeleton-loader__bone:after{animation:loading 1.5s infinite;background:linear-gradient(90deg,rgba(var(--v-theme-surface),0),rgba(var(--v-theme-surface),.3),rgba(var(--v-theme-surface),0));transform:translate(-100%);z-index:1}.v-skeleton-loader__bone:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%}.v-skeleton-loader__avatar{border-radius:50%;flex:0 1 auto;margin:8px 16px;max-height:48px;min-height:48px;height:48px;max-width:48px;min-width:48px;width:48px}.v-skeleton-loader__avatar+.v-skeleton-loader__bone{flex:1 1 auto;margin-inline-start:0}.v-skeleton-loader__avatar+.v-skeleton-loader__sentences>.v-skeleton-loader__text,.v-skeleton-loader__avatar+.v-skeleton-loader__paragraph>.v-skeleton-loader__text{margin-inline-start:0}.v-skeleton-loader__button{border-radius:4px;height:36px;margin:16px;max-width:64px}.v-skeleton-loader__button+.v-skeleton-loader__bone{flex:1 1 auto;margin-inline-start:0}.v-skeleton-loader__button+.v-skeleton-loader__sentences>.v-skeleton-loader__text,.v-skeleton-loader__button+.v-skeleton-loader__paragraph>.v-skeleton-loader__text{margin-inline-start:0}.v-skeleton-loader__chip{border-radius:16px;margin:16px;height:32px;max-width:96px}.v-skeleton-loader__chip+.v-skeleton-loader__bone{flex:1 1 auto;margin-inline-start:0}.v-skeleton-loader__chip+.v-skeleton-loader__sentences>.v-skeleton-loader__text,.v-skeleton-loader__chip+.v-skeleton-loader__paragraph>.v-skeleton-loader__text{margin-inline-start:0}.v-skeleton-loader__date-picker{border-radius:inherit}.v-skeleton-loader__date-picker .v-skeleton-loader__list-item:first-child .v-skeleton-loader__text{max-width:88px;width:20%}.v-skeleton-loader__date-picker .v-skeleton-loader__heading{max-width:256px;width:40%}.v-skeleton-loader__date-picker-days{flex-wrap:wrap;margin:16px}.v-skeleton-loader__date-picker-days .v-skeleton-loader__avatar{border-radius:4px;margin:4px;max-width:100%}.v-skeleton-loader__date-picker-options{flex-wrap:nowrap}.v-skeleton-loader__date-picker-options .v-skeleton-loader__text{flex:1 1 auto}.v-skeleton-loader__divider{border-radius:1px;height:2px}.v-skeleton-loader__heading{border-radius:12px;margin:16px;height:24px}.v-skeleton-loader__heading+.v-skeleton-loader__subtitle{margin-top:-16px}.v-skeleton-loader__image{height:150px;border-radius:0}.v-skeleton-loader__card .v-skeleton-loader__image{border-radius:0}.v-skeleton-loader__list-item{margin:16px}.v-skeleton-loader__list-item .v-skeleton-loader__text{margin:0}.v-skeleton-loader__table-thead{justify-content:space-between}.v-skeleton-loader__table-thead .v-skeleton-loader__heading{margin-top:16px;max-width:16px}.v-skeleton-loader__table-tfoot{flex-wrap:nowrap}.v-skeleton-loader__table-tfoot>.v-skeleton-loader__text.v-skeleton-loader__bone{margin-top:16px}.v-skeleton-loader__table-row{align-items:baseline;margin:0 8px;justify-content:space-evenly;flex-wrap:nowrap}.v-skeleton-loader__table-row>.v-skeleton-loader__text.v-skeleton-loader__bone{margin-inline:8px}.v-skeleton-loader__table-row+.v-skeleton-loader__divider{margin:0 16px}.v-skeleton-loader__table-cell{align-items:center;display:flex;height:48px;width:88px}.v-skeleton-loader__table-cell .v-skeleton-loader__text{margin-bottom:0}.v-skeleton-loader__subtitle{max-width:70%}.v-skeleton-loader__subtitle>.v-skeleton-loader__text{height:16px;border-radius:8px}.v-skeleton-loader__text{border-radius:6px;margin:16px;height:12px}.v-skeleton-loader__text+.v-skeleton-loader__text{margin-top:-8px;max-width:50%}.v-skeleton-loader__text+.v-skeleton-loader__text+.v-skeleton-loader__text{max-width:70%}.v-skeleton-loader--boilerplate .v-skeleton-loader__bone:after{display:none}.v-skeleton-loader--is-loading{overflow:hidden}.v-skeleton-loader--tile,.v-skeleton-loader--tile .v-skeleton-loader__bone{border-radius:0}@keyframes loading{to{transform:translate(100%)}}
@@ -0,0 +1 @@
1
+ import{I as te,J as le,al as se,K as oe,i as O,a5 as ne,e as d,v as ie,am as re,y as X,_ as ue,b as de,n as ce,h,B as me,d as ve,Z as pe,z as J,l as _,a as s,c as v,w as b,m as M,aQ as ge,f as g,t as m,F as U,s as fe,q as ke,o as r}from"./index-YIGRKgNA.js";import{a as x}from"./webmail-DRyN8JIK.js";import{V as he}from"./VToolbar-Cs-fVa4M.js";import{V as j}from"./VCheckbox-VicuXIJq.js";import{V as be}from"./VTextField-C9VUP7V9.js";import{l as xe,p as ye,V as y,c as I}from"./VAvatar-J563boKh.js";import{V as _e}from"./VMenu-DDmBlbM8.js";import{V as Ve,a as $}from"./forwardRefs-DPrLRqxP.js";import{V as q}from"./VSpacer-BWZq1PhD.js";import{a as R,V as Ce}from"./VCard-CJ2oGh_i.js";import{u as we}from"./VProgressCircular-CtqQON49.js";import{a as Se,u as Be,m as Me}from"./tag-DV1_zOzl.js";import{V as $e}from"./VAlert-x6n3drjw.js";import"./VCheckboxBtn-CLh3m66z.js";import"./VSelectionControl-BN-zQ3C6.js";import"./VInput-Dpmea5z9.js";import"./ssrBoot-CpJ-7WlH.js";/* empty css */const Le={actions:"button@2",article:"heading, paragraph",avatar:"avatar",button:"button",card:"image, heading","card-avatar":"image, list-item-avatar",chip:"chip","date-picker":"list-item, heading, divider, date-picker-options, date-picker-days, actions","date-picker-options":"text, avatar@2","date-picker-days":"avatar@28",divider:"divider",heading:"heading",image:"image","list-item":"text","list-item-avatar":"avatar, text","list-item-two-line":"sentences","list-item-avatar-two-line":"avatar, sentences","list-item-three-line":"paragraph","list-item-avatar-three-line":"avatar, paragraph",ossein:"ossein",paragraph:"text@3",sentences:"text@2",subtitle:"text",table:"table-heading, table-thead, table-tbody, table-tfoot","table-heading":"chip, text","table-thead":"heading@6","table-tbody":"table-row-divider@6","table-row-divider":"table-row, divider","table-row":"text@6","table-tfoot":"text@2, avatar@2",text:"text"};function Ie(a){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return d("div",{class:X(["v-skeleton-loader__bone",`v-skeleton-loader__${a}`])},[o])}function D(a){const[o,e]=a.split("@");return Array.from({length:e}).map(()=>z(o))}function z(a){let o=[];if(!a)return o;const e=Le[a];if(a!==e){if(a.includes(","))return K(a);if(a.includes("@"))return D(a);e.includes(",")?o=K(e):e.includes("@")?o=D(e):e&&o.push(z(e))}return[Ie(a,o)]}function K(a){return a.replace(/\s/g,"").split(",").map(z)}const ze=le({boilerplate:Boolean,color:String,loading:Boolean,loadingText:{type:String,default:"$vuetify.loading"},type:{type:[String,Array],default:"ossein"},...Me(),...ye(),...re()},"VSkeletonLoader"),Ae=te()({name:"VSkeletonLoader",props:ze(),setup(a,o){let{slots:e}=o;const{backgroundColorClasses:V,backgroundColorStyles:B}=we(()=>a.color),{dimensionStyles:A}=Se(a),{elevationClasses:E}=xe(a),{themeClasses:p}=se(a),{t:i}=oe(),C=O(()=>z(ne(a.type).join(",")));return Be(()=>{var n;const f=!e.default||a.loading,w=a.boilerplate||!f?{}:{ariaLive:"polite",ariaLabel:i(a.loadingText),role:"alert"};return d("div",ie({class:["v-skeleton-loader",{"v-skeleton-loader--boilerplate":a.boilerplate},p.value,V.value,E.value],style:[B.value,f?A.value:{}]},w),[f?C.value:(n=e.default)==null?void 0:n.call(e)])}),{}}}),Ee={key:2,class:"d-flex align-center"},Ne={class:"text-caption mr-2"},Te={key:1,class:"emails position-absolute top-0 bottom-0 w-100 overflow-y-auto"},Je=["onClick"],Pe={class:"mt-1 text-grey"},Fe=["title"],Ue={key:1},je={class:"text-right"},qe={class:"mt-1"},Re={class:"text-grey"},De={__name:"EmailList",props:{mailbox:{type:String,default:"INBOX"}},setup(a){const o=a,{$gettext:e}=de(),{displayNotification:V,reloadMailboxCounters:B}=ce(),A=ke(),E=me(),p=h(!1),i=h({}),C=h(1),f=h(""),w=h(!1),n=h([]),c=h(!1);let P=null;const S=O(()=>E.query.mailbox||"INBOX"),G=u=>{A.push({name:"EmailView",query:{mailbox:o.mailbox,mailid:u}})},k=()=>{i.value={},p.value=!0,x.getMailboxEmails(o.mailbox,{page:C.value,search:f.value}).then(u=>{i.value=u.data,p.value=!1}).catch(()=>{p.value=!1})},N=()=>{k()},Q=()=>{k()},W=u=>{u?n.value=i.value.results.map(t=>t.imapid):n.value=[]},Z=()=>{n.value.length&&(c.value=!0,x.deleteSelection(S.value,n.value).then(()=>{c.value=!1,V({msg:e("Message(s) deleted")}),k(),B()}))},H=()=>{n.value.length&&(c.value=!0,x.markSelectionAsJunk(S.value,n.value).then(()=>{c.value=!1,V({msg:e("Message(s) marked as junk")}),N()}))},Y=()=>{n.value.length&&(c.value=!0,x.markSelectionAsNotJunk(S.value,n.value).then(()=>{c.value=!1,V({msg:e("Message(s) marked as not junk")}),N()}))},L=u=>{n.value.length&&(c.value=!0,x.flagSelection(S.value,n.value,u).then(()=>{c.value=!1,n.value=[],V({msg:e("Message(s) flagged")}),k(),B()}))},ee=()=>{p.value=!0,x.emptyUserMailbox(S.value).then(()=>{i.value={},p.value=!1,B()})},ae=async u=>{const t=u.flagged?"unflagged":"flagged";await x.flagSelection(S.value,[u.imapid],t),u.flagged=t==="flagged"};return ve(()=>{P=setInterval(N,300*1e3)}),pe(()=>{clearInterval(P)}),J(()=>o.mailbox,()=>{k()},{immediate:!0}),J(n,()=>{n.value.length?w.value=!0:w.value=!1}),J(C,()=>{k()}),(u,t)=>{var F;return r(),_(U,null,[s(R,{class:"mt-6 mb-2 mx-1"},{default:b(()=>[s(he,{color:"white",flat:""},{default:b(()=>[s(j,{modelValue:w.value,"onUpdate:modelValue":[t[0]||(t[0]=l=>w.value=l),W],class:"mr-4","hide-details":""},null,8,["modelValue"]),s(be,{modelValue:f.value,"onUpdate:modelValue":t[1]||(t[1]=l=>f.value=l),"prepend-inner-icon":"mdi-magnify",placeholder:g(e)("Search in messages"),variant:"outlined","single-line":"",flat:"","hide-details":"",density:"compact",class:"flex-grow-0 w-33 mr-4",clearable:"","onClick:clear":k,onKeyup:ge(Q,["enter"])},null,8,["modelValue","placeholder"]),s(y,{class:"ml-2",color:"error",variant:"tonal",icon:"mdi-trash-can",size:"small",loading:c.value,onClick:Z},null,8,["loading"]),u.$route.params.mailbox!=="Junk"?(r(),v(y,{key:0,class:"ml-2",color:"warning",variant:"tonal",icon:"mdi-fire",size:"small",loading:c.value,onClick:H},null,8,["loading"])):(r(),v(y,{key:1,class:"ml-2",color:"success",variant:"tonal",icon:"mdi-thumb-up",size:"small",loading:c.value,onClick:Y},null,8,["loading"])),s(y,{class:"ml-2",variant:"tonal",icon:"",size:"small"},{default:b(()=>[s(I,{icon:"mdi-cog"}),s(_e,{activator:"parent"},{default:b(()=>[s(Ve,{density:"compact"},{default:b(()=>[s($,{title:g(e)("Mark as read"),"prepend-icon":"mdi-eye",onClick:t[2]||(t[2]=()=>L("read"))},null,8,["title"]),s($,{title:g(e)("Mark as unread"),"prepend-icon":"mdi-eye-outline",onClick:t[3]||(t[3]=()=>L("unread"))},null,8,["title"]),s($,{title:g(e)("Mark as followed"),"prepend-icon":"mdi-star",onClick:t[4]||(t[4]=()=>L("flagged"))},null,8,["title"]),s($,{title:g(e)("Mark as unfollowed"),"prepend-icon":"mdi-star-outline",onClick:t[5]||(t[5]=()=>L("unflagged"))},null,8,["title"]),u.$route.params.mailbox!=="Trash"?(r(),v($,{key:0,title:g(e)("Empty mailbox"),"prepend-icon":"mdi-trash-can",onClick:ee},null,8,["title"])):M("",!0)]),_:1})]),_:1})]),_:1}),s(q),i.value.results?(r(),_("div",Ee,[d("div",Ne,m(i.value.first_index)+"-"+m(i.value.last_index)+" "+m(g(e)("on"))+" "+m(i.value.count),1),d("div",null,[s(y,{icon:"mdi-chevron-left",size:"x-small",disabled:i.value.prev_page===null,onClick:t[6]||(t[6]=l=>C.value=i.value.prev_page)},null,8,["disabled"]),s(y,{icon:"mdi-chevron-right",size:"x-small",disabled:i.value.next_page===null,onClick:t[7]||(t[7]=l=>C.value=i.value.next_page)},null,8,["disabled"])])])):M("",!0)]),_:1})]),_:1}),p.value?(r(),v(Ae,{key:0,type:"card@2"})):(r(),_("div",Te,[(F=i.value.results)!=null&&F.length?(r(!0),_(U,{key:0},fe(i.value.results,l=>(r(),v(R,{key:l.imapid,density:"compact",class:"mb-2 mx-1"},{default:b(()=>[s(Ce,{class:X(["d-flex align-center",{"font-weight-bold":l.style==="unseen"}])},{default:b(()=>[s(j,{modelValue:n.value,"onUpdate:modelValue":t[8]||(t[8]=T=>n.value=T),value:l.imapid,"hide-details":""},null,8,["modelValue","value"]),s(y,{icon:l.flagged?"mdi-star":"mdi-star-outline",variant:"flat",onClick:T=>ae(l)},null,8,["icon","onClick"]),d("div",{class:"ml-4 clickable",onClick:T=>G(l.imapid)},[d("div",null,m(l.subject),1),d("div",Pe,[l.from_address.name?(r(),_("span",{key:0,title:l.from_address.address},m(l.from_address.name),9,Fe)):(r(),_("span",Ue,m(l.from_address.address),1))])],8,Je),s(q),d("div",je,[d("div",null,m(l.date),1),d("div",qe,[l.answered?(r(),v(I,{key:0,icon:"mdi-reply-outline"})):M("",!0),l.forwarded?(r(),v(I,{key:1,icon:"mdi-share-outline"})):M("",!0),l.attachments?(r(),v(I,{key:2,icon:"mdi-paperclip"})):M("",!0),d("span",Re,m(u.$filesize(l.size)),1)])])]),_:2},1032,["class"])]),_:2},1024))),128)):(r(),v($e,{key:1,class:"mt-4",type:"info",text:g(e)("No message yet in this mailbox"),variant:"tonal"},null,8,["text"]))]))],64)}}},Ke=ue(De,[["__scopeId","data-v-90e0691b"]]),Oe={class:"position-relative h-100"},Xe={class:"text-h5 ml-4"},ma={__name:"MailboxView",setup(a){return(o,e)=>(r(),_("div",Oe,[d("div",Xe,m(o.$gettext("Webmail")),1),s(Ke,{mailbox:o.$route.query.mailbox||"INBOX"},null,8,["mailbox"])]))}};export{ma as default};
@@ -1 +1 @@
1
- import{a as r,b as n,V as i}from"./forwardRefs-cvcnlhoK.js";import{c as u}from"./VAvatar-Cmga0vj6.js";import{c,o as a,w as t,l as m,F as p,s as d,a as l,k as f,t as k}from"./index-BImkz5Jx.js";const C={__name:"MenuItems",props:{items:{type:Object,default:()=>{}},obj:{type:Object,default:()=>{}}},setup(o){return(_,V)=>(a(),c(i,{density:"compact"},{default:t(()=>[(a(!0),m(p,null,d(o.items,(e,s)=>(a(),c(r,{key:s,value:e,onClick:b=>e.onClick(o.obj)},{prepend:t(()=>[l(u,{color:e.color,icon:e.icon},null,8,["color","icon"])]),default:t(()=>[l(n,null,{default:t(()=>[f(k(e.label),1)]),_:2},1024)]),_:2},1032,["value","onClick"]))),128))]),_:1}))}};export{C as _};
1
+ import{a as r,b as n,V as i}from"./forwardRefs-DPrLRqxP.js";import{c as u}from"./VAvatar-J563boKh.js";import{c,o as a,w as t,l as m,F as p,s as d,a as l,k as f,t as k}from"./index-YIGRKgNA.js";const C={__name:"MenuItems",props:{items:{type:Object,default:()=>{}},obj:{type:Object,default:()=>{}}},setup(o){return(_,V)=>(a(),c(i,{density:"compact"},{default:t(()=>[(a(!0),m(p,null,d(o.items,(e,s)=>(a(),c(r,{key:s,value:e,onClick:b=>e.onClick(o.obj)},{prepend:t(()=>[l(u,{color:e.color,icon:e.icon},null,8,["color","icon"])]),default:t(()=>[l(n,null,{default:t(()=>[f(k(e.label),1)]),_:2},1024)]),_:2},1032,["value","onClick"]))),128))]),_:1}))}};export{C as _};
@@ -1 +1 @@
1
- import{b as j,u as P,n as W,g as p,h as x,B as J,j as A,l as f,e as M,a as s,t as _,f as u,c as y,m as b,w as n,F as R,s as B,q as K,o as i,k as H,i as E}from"./index-BImkz5Jx.js";import{u as O}from"./amavis-DK8SHE6o.js";import{_ as X}from"./ConfirmDialog-DY_kUHLG.js";import{a as h}from"./amavis-CC0li7_T.js";import{V as Y}from"./VToolbar-CFZfqeOr.js";import{V as Z}from"./VAlert-BuaaYN2h.js";import{V as k,c as ee}from"./VAvatar-Cmga0vj6.js";import{V as ae}from"./VMenu-gUG70-zD.js";import{V as te,a as N}from"./forwardRefs-cvcnlhoK.js";import{a as z,V as se}from"./VRow-ozg66L7j.js";import{a as le,V as re}from"./VRadioGroup-DIFZKSn-.js";import"./permissions-DNoefz-n.js";import"./parameters-aSQiR7kN.js";import"./VCard-CxH9DWoK.js";import"./tag-B_yWNNJD.js";import"./VSpacer-DinPiXs9.js";/* empty css */import"./VDialog-BcTg7w6P.js";import"./VProgressCircular-BtOPiGCg.js";import"./ssrBoot-CKUX4kcb.js";import"./VSelectionControl-zyz-fJvC.js";import"./VInput-CoDJzvaW.js";const ie={class:"text-h5 ml-4"},ne={class:"bg-white rounded-lg pa-4 position-relative mt-6 h-100"},oe={key:0},ue={key:1},me={class:"pa-4 bg-grey-lighten-3 rounded"},ce=["innerHTML"],Ne={__name:"MessageView",async setup(de){let o,V;const e=J(),C=K(),{$gettext:t}=j(),q=P(),{displayNotification:w}=W(),m=p(null),v=p(null),L=p(null),r=p(!1),c=p(null),U=x(()=>m.value?m.value:c.value.headers),d=x(()=>{var a;return((a=e.query)==null?void 0:a.secret_id)!==void 0});if(d.value)p(!1);else{const{manualLearningEnabled:a}=([o,V]=A(()=>O()),o=await o,V(),o)}const D=()=>{C.go(-1)},T=async()=>{if(m.value){m.value=null;return}r.value=!0;try{const a=await h.getMessageHeaders(e.params.mailid,e.params.rcpt,e.query.secret_id);m.value=a.data.headers}finally{r.value=!1}},F=async()=>{r.value=!0;const a={rcpt:e.params.rcpt,mailid:e.params.mailid};d.value&&(a.secret_id=e.query.secret_id);try{(await h.releaseMessage(e.params.mailid,a)).data.status==="pending"?w({msg:t("Release request sent")}):w({msg:t("Message released")})}finally{r.value=!1}},I=async()=>{r.value=!0;const a={rcpt:e.params.rcpt,mailid:e.params.mailid};d.value&&(a.secret_id=e.query.secret_id);try{await h.deleteMessage(e.params.mailid,a),w({msg:t("Message deleted")}),d.value||C.push({name:"QuarantineView"})}finally{r.value=!1}},S=async(a,g)=>{manualLearningEnabled.value&&q.authUser.role!==E.USER&&(v.value=q.authUser.role===E.SUPER_ADMIN?"global":"domain",await L.value.open(t("Learning database"),t("Which database should be used for this learning:"),{width:600,noconfirm:!0})),r.value=!0;const l={type:a,selection:[{rcpt:e.params.rcpt,mailid:e.params.mailid}]};v.value&&(l.database=v.value);try{await h.markMessageSelection(l),w({msg:g})}finally{r.value=!1}},G=async()=>{await S("spam",t("Message marked as spam"))},Q=async()=>{await S("ham",t("Message marked as non-spam"))},$=([o,V]=A(()=>h.getMessageContent(e.params.mailid,e.params.rcpt,e.query.secret_id)),o=await o,V(),o);return c.value=$.data,(a,g)=>(i(),f("div",null,[M("div",ie,_(u(t)("Quarantined message")),1),M("div",ne,[s(Y,{color:"white"},{default:n(()=>[d.value?b("",!0):(i(),y(k,{key:0,icon:"mdi-arrow-left",size:"small",variant:"flat",onClick:D})),s(k,{class:"ml-2",color:"success",variant:"tonal",icon:"mdi-check",size:"small",title:u(t)("Release message"),loading:r.value,onClick:F},null,8,["title","loading"]),s(k,{class:"ml-2",color:"error",variant:"tonal",icon:"mdi-trash-can",size:"small",title:u(t)("Delete message"),loading:r.value,onClick:I},null,8,["title","loading"]),d.value?b("",!0):(i(),f(R,{key:1},[a.manualLearningEnabled?(i(),y(k,{key:0,class:"ml-2",variant:"tonal",icon:"",size:"small"},{default:n(()=>[s(ee,{icon:"mdi-cog"}),s(ae,{activator:"parent"},{default:n(()=>[s(te,{density:"compact"},{default:n(()=>[s(N,{title:u(t)("Mark as spam"),onClick:G},null,8,["title"]),s(N,{title:u(t)("Mark as non-spam"),onClick:Q},null,8,["title"])]),_:1})]),_:1})]),_:1})):b("",!0)],64)),s(k,{class:"ml-2",variant:"tonal",size:"small",loading:r.value,onClick:T},{default:n(()=>[m.value?(i(),f("span",ue,_(u(t)("Hide full headers")),1)):(i(),f("span",oe,_(u(t)("View full headers")),1))]),_:1},8,["loading"])]),_:1}),c.value.qtype?(i(),y(Z,{key:0,title:c.value.qtype,text:c.value.qreason,type:"error",variant:"tonal",class:"mb-4",density:"compact"},null,8,["title","text"])):b("",!0),M("div",me,[(i(!0),f(R,null,B(U.value,l=>(i(),y(se,{key:l.name,"no-gutters":""},{default:n(()=>[s(z,{cols:"2",class:"font-weight-bold"},{default:n(()=>[H(_(l.name),1)]),_:2},1024),s(z,{cols:"10"},{default:n(()=>[H(_(l.value),1)]),_:2},1024)]),_:2},1024))),128))]),M("div",{class:"mt-4",innerHTML:c.value.body},null,8,ce)]),s(u(X),{ref_key:"learningRecipientRef",ref:L},{default:n(()=>[s(le,{modelValue:v.value,"onUpdate:modelValue":g[0]||(g[0]=l=>v.value=l),class:"mt-4","hide-details":""},{default:n(()=>[(i(!0),f(R,null,B(a.learningRecipients,l=>(i(),y(re,{key:l.value,value:l.value,label:l.title},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1},512)]))}};export{Ne as default};
1
+ import{b as j,u as P,n as W,h as p,i as x,B as J,g as A,l as f,e as M,a as s,t as _,f as u,c as y,m as b,w as n,F as R,s as B,q as K,o as i,k as H,j as E}from"./index-YIGRKgNA.js";import{u as O}from"./amavis-Bx0pxvRn.js";import{_ as X}from"./ConfirmDialog-Dr0i2kqK.js";import{a as h}from"./amavis-Be87kCqw.js";import{V as Y}from"./VToolbar-Cs-fVa4M.js";import{V as Z}from"./VAlert-x6n3drjw.js";import{V as k,c as ee}from"./VAvatar-J563boKh.js";import{V as ae}from"./VMenu-DDmBlbM8.js";import{V as te,a as N}from"./forwardRefs-DPrLRqxP.js";import{a as z,V as se}from"./VRow-CAbOSEHS.js";import{a as le,V as re}from"./VRadioGroup-WW8uMAv4.js";import"./permissions-C33K6cJv.js";import"./parameters-DpVw-Zs4.js";import"./VCard-CJ2oGh_i.js";import"./tag-DV1_zOzl.js";import"./VSpacer-BWZq1PhD.js";/* empty css */import"./VDialog-CaQnQSDn.js";import"./VProgressCircular-CtqQON49.js";import"./ssrBoot-CpJ-7WlH.js";import"./VSelectionControl-BN-zQ3C6.js";import"./VInput-Dpmea5z9.js";const ie={class:"text-h5 ml-4"},ne={class:"bg-white rounded-lg pa-4 position-relative mt-6 h-100"},oe={key:0},ue={key:1},me={class:"pa-4 bg-grey-lighten-3 rounded"},ce=["innerHTML"],Ne={__name:"MessageView",async setup(de){let o,V;const e=J(),C=K(),{$gettext:t}=j(),q=P(),{displayNotification:w}=W(),m=p(null),v=p(null),L=p(null),r=p(!1),c=p(null),U=x(()=>m.value?m.value:c.value.headers),d=x(()=>{var a;return((a=e.query)==null?void 0:a.secret_id)!==void 0});if(d.value)p(!1);else{const{manualLearningEnabled:a}=([o,V]=A(()=>O()),o=await o,V(),o)}const D=()=>{C.go(-1)},T=async()=>{if(m.value){m.value=null;return}r.value=!0;try{const a=await h.getMessageHeaders(e.params.mailid,e.params.rcpt,e.query.secret_id);m.value=a.data.headers}finally{r.value=!1}},F=async()=>{r.value=!0;const a={rcpt:e.params.rcpt,mailid:e.params.mailid};d.value&&(a.secret_id=e.query.secret_id);try{(await h.releaseMessage(e.params.mailid,a)).data.status==="pending"?w({msg:t("Release request sent")}):w({msg:t("Message released")})}finally{r.value=!1}},I=async()=>{r.value=!0;const a={rcpt:e.params.rcpt,mailid:e.params.mailid};d.value&&(a.secret_id=e.query.secret_id);try{await h.deleteMessage(e.params.mailid,a),w({msg:t("Message deleted")}),d.value||C.push({name:"QuarantineView"})}finally{r.value=!1}},S=async(a,g)=>{manualLearningEnabled.value&&q.authUser.role!==E.USER&&(v.value=q.authUser.role===E.SUPER_ADMIN?"global":"domain",await L.value.open(t("Learning database"),t("Which database should be used for this learning:"),{width:600,noconfirm:!0})),r.value=!0;const l={type:a,selection:[{rcpt:e.params.rcpt,mailid:e.params.mailid}]};v.value&&(l.database=v.value);try{await h.markMessageSelection(l),w({msg:g})}finally{r.value=!1}},G=async()=>{await S("spam",t("Message marked as spam"))},Q=async()=>{await S("ham",t("Message marked as non-spam"))},$=([o,V]=A(()=>h.getMessageContent(e.params.mailid,e.params.rcpt,e.query.secret_id)),o=await o,V(),o);return c.value=$.data,(a,g)=>(i(),f("div",null,[M("div",ie,_(u(t)("Quarantined message")),1),M("div",ne,[s(Y,{color:"white"},{default:n(()=>[d.value?b("",!0):(i(),y(k,{key:0,icon:"mdi-arrow-left",size:"small",variant:"flat",onClick:D})),s(k,{class:"ml-2",color:"success",variant:"tonal",icon:"mdi-check",size:"small",title:u(t)("Release message"),loading:r.value,onClick:F},null,8,["title","loading"]),s(k,{class:"ml-2",color:"error",variant:"tonal",icon:"mdi-trash-can",size:"small",title:u(t)("Delete message"),loading:r.value,onClick:I},null,8,["title","loading"]),d.value?b("",!0):(i(),f(R,{key:1},[a.manualLearningEnabled?(i(),y(k,{key:0,class:"ml-2",variant:"tonal",icon:"",size:"small"},{default:n(()=>[s(ee,{icon:"mdi-cog"}),s(ae,{activator:"parent"},{default:n(()=>[s(te,{density:"compact"},{default:n(()=>[s(N,{title:u(t)("Mark as spam"),onClick:G},null,8,["title"]),s(N,{title:u(t)("Mark as non-spam"),onClick:Q},null,8,["title"])]),_:1})]),_:1})]),_:1})):b("",!0)],64)),s(k,{class:"ml-2",variant:"tonal",size:"small",loading:r.value,onClick:T},{default:n(()=>[m.value?(i(),f("span",ue,_(u(t)("Hide full headers")),1)):(i(),f("span",oe,_(u(t)("View full headers")),1))]),_:1},8,["loading"])]),_:1}),c.value.qtype?(i(),y(Z,{key:0,title:c.value.qtype,text:c.value.qreason,type:"error",variant:"tonal",class:"mb-4",density:"compact"},null,8,["title","text"])):b("",!0),M("div",me,[(i(!0),f(R,null,B(U.value,l=>(i(),y(se,{key:l.name,"no-gutters":""},{default:n(()=>[s(z,{cols:"2",class:"font-weight-bold"},{default:n(()=>[H(_(l.name),1)]),_:2},1024),s(z,{cols:"10"},{default:n(()=>[H(_(l.value),1)]),_:2},1024)]),_:2},1024))),128))]),M("div",{class:"mt-4",innerHTML:c.value.body},null,8,ce)]),s(u(X),{ref_key:"learningRecipientRef",ref:L},{default:n(()=>[s(le,{modelValue:v.value,"onUpdate:modelValue":g[0]||(g[0]=l=>v.value=l),class:"mt-4","hide-details":""},{default:n(()=>[(i(!0),f(R,null,B(a.learningRecipients,l=>(i(),y(re,{key:l.value,value:l.value,label:l.title},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1},512)]))}};export{Ne as default};
@@ -1 +1 @@
1
- import{b as T,g as l,c as b,w as a,a as s,e as M,t as m,k as _,f as h,o as v,_ as $,l as D,F}from"./index-BImkz5Jx.js";import{l as S}from"./logs-6CbtfaZS.js";import{d as N}from"./index-DuzUMVLM.js";import{V,a as B}from"./VToolbar-CFZfqeOr.js";import{V as C}from"./VTextField-XoGTj1KG.js";import{V as I}from"./VDataTableServer-BDR5hOmo.js";import{a as P}from"./VCard-CxH9DWoK.js";import"./tag-B_yWNNJD.js";import"./VAvatar-Cmga0vj6.js";import"./VProgressCircular-BtOPiGCg.js";import"./VInput-CoDJzvaW.js";import"./forwardRefs-cvcnlhoK.js";import"./ssrBoot-CKUX4kcb.js";import"./VDataTable-Bh8NbVSx.js";import"./VSelect-C3RjAa45.js";import"./VMenu-gUG70-zD.js";import"./VCheckboxBtn-DMoNtKT8.js";import"./VSelectionControl-zyz-fJvC.js";import"./VChip-D_styETR.js";import"./VTable-DaLxa4FO.js";import"./filter-C82FUCw_.js";const U=["title"],q={__name:"MessageList",setup(k){const{$gettext:t}=T(),p=[{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"}],w=[{value:10,title:"10"},{value:25,title:"25"},{value:50,title:"50"},{value:100,title:"100"}],c=l(!0),d=l([]),i=l(""),u=l(0);function n({page:o,itemsPerPage:r,sortBy:e,search:x}){let f;e.length&&(f=(e[0].order==="desc"?"-":"")+e[0].key);const y={ordering:f,page:o,page_size:r,search:x};c.value=!0,S.getMessages(y).then(g=>{d.value=g.data.results,u.value=g.data.count,c.value=!1})}return n=N(n,500),(o,r)=>(v(),b(P,{class:"mt-6"},{default:a(()=>[s(I,{headers:p,items:d.value,search:i.value,class:"elevation-0","items-length":u.value,"items-per-page-options":w,"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(o.$date(e.date)),1)]),"item.sender":a(({item:e})=>[M("span",{title:e.sender},m(o.$truncate(e.sender,50)),9,U)]),_:2},1032,["items","search","items-length"])]),_:1}))}},z={__name:"MessagesView",setup(k){return(t,p)=>(v(),D(F,null,[s(V,{flat:""},{default:a(()=>[s(B,null,{default:a(()=>[_(m(t.$gettext("Message history")),1)]),_:1})]),_:1}),s(h(q))],64))}},le=$(z,[["__scopeId","data-v-9c91b6c8"]]);export{le as default};
1
+ import{b as T,h as l,c as b,w as a,a as s,e as M,t as m,k as g,f as h,o as v,_ as $,l as D,F}from"./index-YIGRKgNA.js";import{l as S}from"./logs-BeuijmJA.js";import{d as N}from"./index-DuzUMVLM.js";import{V,a as B}from"./VToolbar-Cs-fVa4M.js";import{V as C}from"./VTextField-C9VUP7V9.js";import{V as I}from"./VDataTableServer-DP13Fhfa.js";import{a as P}from"./VCard-CJ2oGh_i.js";import"./tag-DV1_zOzl.js";import"./VAvatar-J563boKh.js";import"./VProgressCircular-CtqQON49.js";import"./VInput-Dpmea5z9.js";import"./forwardRefs-DPrLRqxP.js";import"./ssrBoot-CpJ-7WlH.js";import"./VDataTable-CAT0QYJz.js";import"./VSelect-Cdh0qO5m.js";import"./VMenu-DDmBlbM8.js";import"./VCheckboxBtn-CLh3m66z.js";import"./VSelectionControl-BN-zQ3C6.js";import"./VChip-DvxO74Mw.js";import"./VTable-DO7ofPSj.js";import"./filter-C_GJovn5.js";const U=["title"],q={__name:"MessageList",setup(k){const{$gettext:t}=T(),p=[{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"}],w=[{value:10,title:"10"},{value:25,title:"25"},{value:50,title:"50"},{value:100,title:"100"}],c=l(!0),d=l([]),i=l(""),u=l(0);function n({page:o,itemsPerPage:r,sortBy:e,search:x}){let f;e.length&&(f=(e[0].order==="desc"?"-":"")+e[0].key);const y={ordering:f,page:o,page_size:r,search:x};c.value=!0,S.getMessages(y).then(_=>{d.value=_.data.results,u.value=_.data.count,c.value=!1})}return n=N(n,500),(o,r)=>(v(),b(P,{class:"mt-6"},{default:a(()=>[s(I,{headers:p,items:d.value,search:i.value,class:"elevation-0","items-length":u.value,"items-per-page-options":w,"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})=>[g(m(o.$date(e.date)),1)]),"item.sender":a(({item:e})=>[M("span",{title:e.sender},m(o.$truncate(e.sender,50)),9,U)]),_:2},1032,["items","search","items-length"])]),_:1}))}},z={__name:"MessagesView",setup(k){return(t,p)=>(v(),D(F,null,[s(V,{flat:""},{default:a(()=>[s(B,null,{default:a(()=>[g(m(t.$gettext("Message history")),1)]),_:1})]),_:1}),s(h(q))],64))}},le=$(z,[["__scopeId","data-v-9c91b6c8"]]);export{le as default};
@@ -1 +1 @@
1
- import{C as c,b as y,n as U,g as s,r as j,c as z,o as C,w as o,a as t,f as g,v as $,k as v,t as _,_ as I,l as L}from"./index-BImkz5Jx.js";import{_ as P}from"./MenuItems-PXjiG-fs.js";import{V as q}from"./VDataTable-Bh8NbVSx.js";import{V as k}from"./VMenu-gUG70-zD.js";import{V as p}from"./VAvatar-Cmga0vj6.js";import{V as T,a as E}from"./VToolbar-CFZfqeOr.js";import{V as F}from"./forwardRefs-cvcnlhoK.js";import{V as B}from"./VSpacer-DinPiXs9.js";import{V as G}from"./VTextField-XoGTj1KG.js";import{a as O}from"./VCard-CxH9DWoK.js";import"./tag-B_yWNNJD.js";import"./VProgressCircular-BtOPiGCg.js";import"./VSelect-C3RjAa45.js";import"./VInput-CoDJzvaW.js";import"./VCheckboxBtn-DMoNtKT8.js";import"./VSelectionControl-zyz-fJvC.js";import"./VChip-D_styETR.js";import"./VTable-DaLxa4FO.js";import"./filter-C82FUCw_.js";import"./ssrBoot-CKUX4kcb.js";/* empty css */const f="migrations",w={getMigrations(r){return c.get(`/${f}/`,{params:r})},getMigration(r,i){return c.get(`/${f}/${r}/`,i)},deleteMigration(r){return c.delete(`/${f}/${r}/`)}},H={__name:"MigrationsList",setup(r){const{$gettext:i}=y(),V=U(),n=s([]),S=[{title:i("Provider"),value:"provider.name"},{title:i("Old account"),value:"username"},{title:i("New account"),value:"mailbox"},{title:i("Actions"),value:"actions",sortable:!1,align:"right"}],x=s([]),u=s(!1),m=s(""),M=s({}),b=s(0);function A(l){w.deleteMigration(l.id).then(()=>{V.displayNotification({msg:i("Migration deleted")}),n.value=n.value.filter(a=>a.id!==l.id)})}function h(l){u.value=!0;let a={};w.getMigrations(a).then(d=>{n.value=d.data,b.value=n.value.length}).finally(()=>u.value=!1)}function D(){const l=[];return l.push({label:i("Delete"),icon:"mdi-delete-outline",onClick:A(),color:"red"}),l}return h(),(l,a)=>{const d=j("router-link");return C(),z(O,{class:"mt-6"},{default:o(()=>[t(q,{modelValue:x.value,"onUpdate:modelValue":a[2]||(a[2]=e=>x.value=e),options:M.value,"onUpdate:options":a[3]||(a[3]=e=>M.value=e),headers:S,items:n.value,search:m.value,"server-items-length":b.value,loading:u.value,"show-select":""},{top:o(()=>[t(T,{color:"white",flat:""},{default:o(()=>[t(k,{location:"bottom"},{activator:o(({props:e})=>[t(p,$(e,{variant:"flat","append-icon":"mdi-chevron-down",size:"small"}),{default:o(()=>[v(_(g(i)("Actions")),1)]),_:2},1040)]),default:o(()=>[t(F,{density:"compact"})]),_:1}),t(p,{variant:"text",icon:"mdi-reload",onClick:a[0]||(a[0]=e=>h())}),t(B),t(G,{modelValue:m.value,"onUpdate:modelValue":a[1]||(a[1]=e=>m.value=e),"prepend-inner-icon":"mdi-magnify",placeholder:"Search",filled:"",variant:"outlined",density:"compact","hide-details":""},null,8,["modelValue"])]),_:1})]),"item.mailbox":o(({item:e})=>[t(d,{to:{name:"AccountDetail",params:{id:e.mailbox.user}}},{default:o(()=>[v(_(e.mailbox.full_address),1)]),_:2},1032,["to"])]),"item.actions":o(({item:e})=>[t(k,{"offset-y":""},{activator:o(({props:N})=>[t(p,$({icon:"mdi-dots-horizontal"},N),null,16)]),default:o(()=>[t(g(P),{items:D(),object:e},null,8,["items","object"])]),_:2},1024)]),_:2},1032,["modelValue","options","items","search","server-items-length","loading"])]),_:1})}}},J={__name:"MigrationsView",setup(r){const{$gettext:i}=y();return(V,n)=>(C(),L("div",null,[t(T,{flat:""},{default:o(()=>[t(E,null,{default:o(()=>[v(_(g(i)("Migrations")),1)]),_:1}),t(B)]),_:1}),t(H)]))}},ft=I(J,[["__scopeId","data-v-5f22702f"]]);export{ft as default};
1
+ import{C as c,b as y,n as U,h as s,r as j,c as z,o as C,w as o,a as t,f as g,v as $,k as v,t as _,_ as I,l as L}from"./index-YIGRKgNA.js";import{_ as P}from"./MenuItems-BRChEdLp.js";import{V as q}from"./VDataTable-CAT0QYJz.js";import{V as k}from"./VMenu-DDmBlbM8.js";import{V as p}from"./VAvatar-J563boKh.js";import{V as T,a as E}from"./VToolbar-Cs-fVa4M.js";import{V as F}from"./forwardRefs-DPrLRqxP.js";import{V as B}from"./VSpacer-BWZq1PhD.js";import{V as G}from"./VTextField-C9VUP7V9.js";import{a as O}from"./VCard-CJ2oGh_i.js";import"./tag-DV1_zOzl.js";import"./VProgressCircular-CtqQON49.js";import"./VSelect-Cdh0qO5m.js";import"./VInput-Dpmea5z9.js";import"./VCheckboxBtn-CLh3m66z.js";import"./VSelectionControl-BN-zQ3C6.js";import"./VChip-DvxO74Mw.js";import"./VTable-DO7ofPSj.js";import"./filter-C_GJovn5.js";import"./ssrBoot-CpJ-7WlH.js";/* empty css */const f="migrations",w={getMigrations(r){return c.get(`/${f}/`,{params:r})},getMigration(r,i){return c.get(`/${f}/${r}/`,i)},deleteMigration(r){return c.delete(`/${f}/${r}/`)}},H={__name:"MigrationsList",setup(r){const{$gettext:i}=y(),V=U(),n=s([]),S=[{title:i("Provider"),value:"provider.name"},{title:i("Old account"),value:"username"},{title:i("New account"),value:"mailbox"},{title:i("Actions"),value:"actions",sortable:!1,align:"right"}],x=s([]),u=s(!1),m=s(""),h=s({}),M=s(0);function A(l){w.deleteMigration(l.id).then(()=>{V.displayNotification({msg:i("Migration deleted")}),n.value=n.value.filter(a=>a.id!==l.id)})}function b(l){u.value=!0;let a={};w.getMigrations(a).then(d=>{n.value=d.data,M.value=n.value.length}).finally(()=>u.value=!1)}function D(){const l=[];return l.push({label:i("Delete"),icon:"mdi-delete-outline",onClick:A(),color:"red"}),l}return b(),(l,a)=>{const d=j("router-link");return C(),z(O,{class:"mt-6"},{default:o(()=>[t(q,{modelValue:x.value,"onUpdate:modelValue":a[2]||(a[2]=e=>x.value=e),options:h.value,"onUpdate:options":a[3]||(a[3]=e=>h.value=e),headers:S,items:n.value,search:m.value,"server-items-length":M.value,loading:u.value,"show-select":""},{top:o(()=>[t(T,{color:"white",flat:""},{default:o(()=>[t(k,{location:"bottom"},{activator:o(({props:e})=>[t(p,$(e,{variant:"flat","append-icon":"mdi-chevron-down",size:"small"}),{default:o(()=>[v(_(g(i)("Actions")),1)]),_:2},1040)]),default:o(()=>[t(F,{density:"compact"})]),_:1}),t(p,{variant:"text",icon:"mdi-reload",onClick:a[0]||(a[0]=e=>b())}),t(B),t(G,{modelValue:m.value,"onUpdate:modelValue":a[1]||(a[1]=e=>m.value=e),"prepend-inner-icon":"mdi-magnify",placeholder:"Search",filled:"",variant:"outlined",density:"compact","hide-details":""},null,8,["modelValue"])]),_:1})]),"item.mailbox":o(({item:e})=>[t(d,{to:{name:"AccountDetail",params:{id:e.mailbox.user}}},{default:o(()=>[v(_(e.mailbox.full_address),1)]),_:2},1032,["to"])]),"item.actions":o(({item:e})=>[t(k,{"offset-y":""},{activator:o(({props:N})=>[t(p,$({icon:"mdi-dots-horizontal"},N),null,16)]),default:o(()=>[t(g(P),{items:D(),object:e},null,8,["items","object"])]),_:2},1024)]),_:2},1032,["modelValue","options","items","search","server-items-length","loading"])]),_:1})}}},J={__name:"MigrationsView",setup(r){const{$gettext:i}=y();return(V,n)=>(C(),L("div",null,[t(T,{flat:""},{default:o(()=>[t(E,null,{default:o(()=>[v(_(g(i)("Migrations")),1)]),_:1}),t(B)]),_:1}),t(H)]))}},ft=I(J,[["__scopeId","data-v-5f22702f"]]);export{ft as default};
@@ -1 +1 @@
1
- import{_ as B,b as P,n as S,h as E,g as p,z as w,l as u,a as c,w as d,F as V,s as y,o as a,c as i,y as N,k as I,t as h,m as z,e as j,f as L}from"./index-BImkz5Jx.js";import{_ as O}from"./HtmlEditor-Bh4c689R.js";import{V as W,a as $,b as A,c as D}from"./VTabs-BP0Hgsgm.js";import{V as G}from"./VAvatar-Cmga0vj6.js";import{V as H}from"./VContainer-B46caNs1.js";import{a as M,V as q}from"./VCard-CxH9DWoK.js";import{V as J}from"./VSwitch-DwxdeAEq.js";import{V as K}from"./VSelect-C3RjAa45.js";import{V as Q}from"./VTextarea-wBlRMIv_.js";import{V as R}from"./VColorPicker-BHscBGQV.js";import{V as X}from"./VTextField-XoGTj1KG.js";const Y={key:0},Z={class:"m-label"},ee={__name:"ParametersForm",props:{app:{type:String,default:""},structure:{type:Array,default:null},values:{type:Object,default:null},saveFunction:{type:Function,default:null}},emits:["success"],setup(x,{emit:F}){const m=x,U=F,{$gettext:g}=P(),{displayNotification:_}=S(),b=E(()=>m.structure.filter(s=>k(s))),v=p(0),r=p({}),l=p({}),f=p([]);w(()=>m.values,s=>{s&&(l.value={...s})}),w(l,()=>{f.value=[]});function k(s){if(s.display==="")return!0;let n=!0;return s.display.split("&").forEach(o=>{let[e,t]=o.split("=");(t==="true"||t==="false")&&(t=!!t),n&=l.value[e]===t}),n}function C(s){return s.filter(n=>k(n))}async function T(){r.value={},f.value=[];try{await m.saveFunction(m.app,l.value),_({msg:g("Parameters updated")}),U("success",l.value)}catch(s){_({msg:g("Could not save parameters"),type:"error"}),r.value=s.response.data,Object.keys(r.value).forEach(n=>{for(let o=0;o<m.structure.length;o++)m.structure[o].parameters.filter(t=>t.name===n).length>0&&f.value.push(o)})}}return(s,n)=>(a(),u(V,null,[c(W,{modelValue:v.value,"onUpdate:modelValue":n[0]||(n[0]=o=>v.value=o),"bg-color":"white"},{default:d(()=>[(a(!0),u(V,null,y(b.value,(o,e)=>(a(),i(A,{key:e,color:"primary",class:N(f.value.includes(e)?"error_tab":"")},{default:d(()=>[I(h(o.label),1)]),_:2},1032,["class"]))),128))]),_:1},8,["modelValue"]),c($,{modelValue:v.value,"onUpdate:modelValue":n[1]||(n[1]=o=>v.value=o)},{default:d(()=>[(a(!0),u(V,null,y(b.value,o=>(a(),i(D,{key:o.label},{default:d(()=>[c(H,{fluid:"",class:"pa-0"},{default:d(()=>[c(M,null,{default:d(()=>[c(q,null,{default:d(()=>[(a(!0),u(V,null,y(C(o.parameters),e=>(a(),u("div",{key:e.name,class:"my-4"},[e.widget==="SeparatorField"?(a(),u("h2",Y,h(e.label),1)):e.widget==="BooleanField"?(a(),u(V,{key:1},[e.widget==="BooleanField"?(a(),i(J,{key:0,modelValue:l.value[e.name],"onUpdate:modelValue":t=>l.value[e.name]=t,label:e.label,hint:e.help_text,error:r.value[e.name]!==void 0,color:"primary",density:"compact","error-messages":r.value[e.name],"persistent-hint":""},null,8,["modelValue","onUpdate:modelValue","label","hint","error","error-messages"])):z("",!0)],64)):(a(),u(V,{key:2},[j("label",Z,h(e.label),1),e.widget==="ChoiceField"?(a(),i(K,{key:0,modelValue:l.value[e.name],"onUpdate:modelValue":t=>l.value[e.name]=t,items:e.choices,"item-title":"text",hint:e.help_text,"persistent-hint":"",density:"compact",variant:"outlined"},null,8,["modelValue","onUpdate:modelValue","items","hint"])):e.widget==="TextareaField"?(a(),i(Q,{key:1,modelValue:l.value[e.name],"onUpdate:modelValue":t=>l.value[e.name]=t,hint:e.help_text,"persistent-hint":"",error:r.value[e.name]!==void 0,"error-messages":r.value[e.name],type:e.widget==="PasswordField"?"password":"text",density:"compact",variant:"outlined"},null,8,["modelValue","onUpdate:modelValue","hint","error","error-messages","type"])):e.widget==="HTMLField"?(a(),i(L(O),{key:2,modelValue:l.value[e.name],"onUpdate:modelValue":t=>l.value[e.name]=t},null,8,["modelValue","onUpdate:modelValue"])):e.widget==="ColorPicker"?(a(),i(R,{key:3,modelValue:l.value[e.name],"onUpdate:modelValue":t=>l.value[e.name]=t,mode:"hexa",hint:e.help_text,"persistent-hint":"",error:r.value[e.name]!==void 0,"error-messages":r.value[e.name],density:"compact",variant:"outlined"},null,8,["modelValue","onUpdate:modelValue","hint","error","error-messages"])):(a(),i(X,{key:4,modelValue:l.value[e.name],"onUpdate:modelValue":t=>l.value[e.name]=t,hint:e.help_text,"persistent-hint":"",error:r.value[e.name]!==void 0,"error-messages":r.value[e.name],type:e.widget==="PasswordField"?"password":"text",density:"compact",variant:"outlined"},null,8,["modelValue","onUpdate:modelValue","hint","error","error-messages","type"]))],64))]))),128))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1},8,["modelValue"]),c(G,{icon:"mdi-content-save",class:"ma-5",position:"fixed",location:"bottom right",color:"green",size:"large",onClick:T})],64))}},ce=B(ee,[["__scopeId","data-v-ddc29a18"]]);export{ce as P};
1
+ import{_ as B,b as P,n as S,i as E,h as p,z as w,l as u,a as c,w as d,F as V,s as y,o as a,c as i,y as N,k as I,t as h,m as z,e as j,f as L}from"./index-YIGRKgNA.js";import{_ as O}from"./HtmlEditor-Zn0wjDog.js";import{V as W,a as $,b as A,c as D}from"./VTabs-C1-E1DJE.js";import{V as G}from"./VAvatar-J563boKh.js";import{V as H}from"./VContainer-L2EoH3dT.js";import{a as M,V as q}from"./VCard-CJ2oGh_i.js";import{V as J}from"./VSwitch-CixaedmQ.js";import{V as K}from"./VSelect-Cdh0qO5m.js";import{V as Q}from"./VTextarea-B28SmJ2v.js";import{V as R}from"./VColorPicker-DcVohVWE.js";import{V as X}from"./VTextField-C9VUP7V9.js";const Y={key:0},Z={class:"m-label"},ee={__name:"ParametersForm",props:{app:{type:String,default:""},structure:{type:Array,default:null},values:{type:Object,default:null},saveFunction:{type:Function,default:null}},emits:["success"],setup(x,{emit:F}){const m=x,U=F,{$gettext:g}=P(),{displayNotification:_}=S(),b=E(()=>m.structure.filter(s=>k(s))),v=p(0),r=p({}),l=p({}),f=p([]);w(()=>m.values,s=>{s&&(l.value={...s})}),w(l,()=>{f.value=[]});function k(s){if(s.display==="")return!0;let n=!0;return s.display.split("&").forEach(o=>{let[e,t]=o.split("=");(t==="true"||t==="false")&&(t=!!t),n&=l.value[e]===t}),n}function C(s){return s.filter(n=>k(n))}async function T(){r.value={},f.value=[];try{await m.saveFunction(m.app,l.value),_({msg:g("Parameters updated")}),U("success",l.value)}catch(s){_({msg:g("Could not save parameters"),type:"error"}),r.value=s.response.data,Object.keys(r.value).forEach(n=>{for(let o=0;o<m.structure.length;o++)m.structure[o].parameters.filter(t=>t.name===n).length>0&&f.value.push(o)})}}return(s,n)=>(a(),u(V,null,[c(W,{modelValue:v.value,"onUpdate:modelValue":n[0]||(n[0]=o=>v.value=o),"bg-color":"white"},{default:d(()=>[(a(!0),u(V,null,y(b.value,(o,e)=>(a(),i(A,{key:e,color:"primary",class:N(f.value.includes(e)?"error_tab":"")},{default:d(()=>[I(h(o.label),1)]),_:2},1032,["class"]))),128))]),_:1},8,["modelValue"]),c($,{modelValue:v.value,"onUpdate:modelValue":n[1]||(n[1]=o=>v.value=o)},{default:d(()=>[(a(!0),u(V,null,y(b.value,o=>(a(),i(D,{key:o.label},{default:d(()=>[c(H,{fluid:"",class:"pa-0"},{default:d(()=>[c(M,null,{default:d(()=>[c(q,null,{default:d(()=>[(a(!0),u(V,null,y(C(o.parameters),e=>(a(),u("div",{key:e.name,class:"my-4"},[e.widget==="SeparatorField"?(a(),u("h2",Y,h(e.label),1)):e.widget==="BooleanField"?(a(),u(V,{key:1},[e.widget==="BooleanField"?(a(),i(J,{key:0,modelValue:l.value[e.name],"onUpdate:modelValue":t=>l.value[e.name]=t,label:e.label,hint:e.help_text,error:r.value[e.name]!==void 0,color:"primary",density:"compact","error-messages":r.value[e.name],"persistent-hint":""},null,8,["modelValue","onUpdate:modelValue","label","hint","error","error-messages"])):z("",!0)],64)):(a(),u(V,{key:2},[j("label",Z,h(e.label),1),e.widget==="ChoiceField"?(a(),i(K,{key:0,modelValue:l.value[e.name],"onUpdate:modelValue":t=>l.value[e.name]=t,items:e.choices,"item-title":"text",hint:e.help_text,"persistent-hint":"",density:"compact",variant:"outlined"},null,8,["modelValue","onUpdate:modelValue","items","hint"])):e.widget==="TextareaField"?(a(),i(Q,{key:1,modelValue:l.value[e.name],"onUpdate:modelValue":t=>l.value[e.name]=t,hint:e.help_text,"persistent-hint":"",error:r.value[e.name]!==void 0,"error-messages":r.value[e.name],type:e.widget==="PasswordField"?"password":"text",density:"compact",variant:"outlined"},null,8,["modelValue","onUpdate:modelValue","hint","error","error-messages","type"])):e.widget==="HTMLField"?(a(),i(L(O),{key:2,modelValue:l.value[e.name],"onUpdate:modelValue":t=>l.value[e.name]=t},null,8,["modelValue","onUpdate:modelValue"])):e.widget==="ColorPicker"?(a(),i(R,{key:3,modelValue:l.value[e.name],"onUpdate:modelValue":t=>l.value[e.name]=t,mode:"hexa",hint:e.help_text,"persistent-hint":"",error:r.value[e.name]!==void 0,"error-messages":r.value[e.name],density:"compact",variant:"outlined"},null,8,["modelValue","onUpdate:modelValue","hint","error","error-messages"])):(a(),i(X,{key:4,modelValue:l.value[e.name],"onUpdate:modelValue":t=>l.value[e.name]=t,hint:e.help_text,"persistent-hint":"",error:r.value[e.name]!==void 0,"error-messages":r.value[e.name],type:e.widget==="PasswordField"?"password":"text",density:"compact",variant:"outlined"},null,8,["modelValue","onUpdate:modelValue","hint","error","error-messages","type"]))],64))]))),128))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1},8,["modelValue"]),c(G,{icon:"mdi-content-save",class:"ma-5",position:"fixed",location:"bottom right",color:"green",size:"large",onClick:T})],64))}},ce=B(ee,[["__scopeId","data-v-ddc29a18"]]);export{ce as P};
@@ -0,0 +1 @@
1
+ import{_ as v,b as _,h as r,i as d,z as V,B as h,l as x,a as e,w as u,f as c,o as b,k as g,t as w}from"./index-YIGRKgNA.js";import{P}from"./ParametersForm-Dip8Sobe.js";import{p as o}from"./parameters-DpVw-Zs4.js";import{V as A,a as T}from"./VToolbar-Cs-fVa4M.js";import"./HtmlEditor-Zn0wjDog.js";import"./VAvatar-J563boKh.js";import"./tag-DV1_zOzl.js";import"./VProgressCircular-CtqQON49.js";import"./forwardRefs-DPrLRqxP.js";import"./ssrBoot-CpJ-7WlH.js";import"./VTabs-C1-E1DJE.js";import"./VWindowItem-C9PFEbE6.js";import"./VChip-DvxO74Mw.js";import"./VMenu-DDmBlbM8.js";import"./VContainer-L2EoH3dT.js";/* empty css */import"./VCard-CJ2oGh_i.js";import"./VSwitch-CixaedmQ.js";import"./VInput-Dpmea5z9.js";import"./VSelectionControl-BN-zQ3C6.js";import"./VSelect-Cdh0qO5m.js";import"./VTextField-C9VUP7V9.js";import"./VCheckboxBtn-CLh3m66z.js";import"./VTextarea-B28SmJ2v.js";import"./VColorPicker-DcVohVWE.js";import"./colors-DoZdCu1D.js";import"./VPicker-Dz7GbXwU.js";import"./VSheet-9RDZpWCf.js";const k={__name:"ParametersView",setup(B){const{$gettext:n}=_(),p=h(),s=r(""),i=r([]),m=r({}),f=d(()=>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)=>(b(),x("div",null,[e(A,{flat:""},{default:u(()=>[e(T,null,{default:u(()=>[g(w(f.value),1)]),_:1})]),_:1}),e(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"])]))}},rt=v(k,[["__scopeId","data-v-3e7380ff"]]);export{rt as default};
@@ -0,0 +1 @@
1
+ import{_ as b,b as g,h as r,i as S,z as h,B as V,l as x,a as e,w as u,f as n,o as P,k as w,t as G}from"./index-YIGRKgNA.js";import{p}from"./parameters-DpVw-Zs4.js";import{P as A}from"./ParametersForm-Dip8Sobe.js";import{V as T,a as k}from"./VToolbar-Cs-fVa4M.js";import{u as B}from"./global.store-CNChIxQL.js";import{u as N}from"./parameters.store-DRarkO6b.js";import"./HtmlEditor-Zn0wjDog.js";import"./VAvatar-J563boKh.js";import"./tag-DV1_zOzl.js";import"./VProgressCircular-CtqQON49.js";import"./forwardRefs-DPrLRqxP.js";import"./ssrBoot-CpJ-7WlH.js";import"./VTabs-C1-E1DJE.js";import"./VWindowItem-C9PFEbE6.js";import"./VChip-DvxO74Mw.js";import"./VMenu-DDmBlbM8.js";import"./VContainer-L2EoH3dT.js";/* empty css */import"./VCard-CJ2oGh_i.js";import"./VSwitch-CixaedmQ.js";import"./VInput-Dpmea5z9.js";import"./VSelectionControl-BN-zQ3C6.js";import"./VSelect-Cdh0qO5m.js";import"./VTextField-C9VUP7V9.js";import"./VCheckboxBtn-CLh3m66z.js";import"./VTextarea-B28SmJ2v.js";import"./VColorPicker-DcVohVWE.js";import"./colors-DoZdCu1D.js";import"./VPicker-Dz7GbXwU.js";import"./VSheet-9RDZpWCf.js";const E={__name:"ParametersView",setup($){const{$gettext:c}=g(),f=B(),o=V(),d=N(),i=r([]),s=r({}),m=r(""),_=S(()=>c("Settings: "+m.value));function l(t){p.getGlobalApplicationStructure(t).then(a=>{i.value=a.data}),p.getGlobalApplication(t).then(a=>{s.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:i.value,values:s.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 +1 @@
1
- import{u as R,a as T,_ as U,p as N}from"./ProviderGeneralForm-BYAzVnXM.js";import{b as S,n as j,q as A,g as v,z as G,l as k,o as i,a,e as w,w as e,k as u,t as n,f as d,c as y,F as q,B as z}from"./index-BImkz5Jx.js";import{d as F,V as $}from"./VAvatar-Cmga0vj6.js";import{V as b,c as E,a as B,b as D}from"./VExpansionPanels-BmH5Jl2Z.js";import{V as g,a as m}from"./VRow-ozg66L7j.js";import"./domains-BSawReeu.js";import"./VTextField-XoGTj1KG.js";import"./tag-B_yWNNJD.js";import"./VInput-CoDJzvaW.js";import"./VProgressCircular-BtOPiGCg.js";import"./forwardRefs-cvcnlhoK.js";import"./ssrBoot-CKUX4kcb.js";import"./VAutocomplete-Dwv6_Rzq.js";import"./VSelect-C3RjAa45.js";import"./VMenu-gUG70-zD.js";import"./VCheckboxBtn-DMoNtKT8.js";import"./VSelectionControl-zyz-fJvC.js";import"./VChip-D_styETR.js";import"./filter-C82FUCw_.js";import"./VForm-D5iPGkde.js";import"./VSpacer-DinPiXs9.js";/* empty css */import"./VSwitch-DwxdeAEq.js";const L={key:0},O={key:0},H={class:"mt-4 d-flex justify-end"},I={__name:"ProviderForm",props:{provider:{type:Object,default:null}},setup(P){const x=P,{$gettext:r}=S(),c=j(),_=A(),V=R(),s=v({domains:[]}),h=v(0),p=v(),f=v();G(()=>x.provider,t=>{t&&(s.value={...t},s.value.domains||(s.value.domains=[]))},{immediate:!0});async function C(){if(p.value!==void 0){const{valid:t}=await p.value.vFormRef.validate();if(!t)return}if(f.value!==void 0){const{valid:t}=await f.value.vFormRef.validate();if(!t)return}try{const t={...s.value};t.domains=[];for(const o of s.value.domains)o.new_domain?t.domains.push({name:o.name,new_domain:o.new_domain.pk||o.new_domain.id}):t.domains.push(o);await N.patchProvider(s.value.id,t).then(()=>{c.displayNotification({msg:r("Provider updated")}),V.getProviders(),_.push({name:"ProvidersList"})})}catch(t){p.value&&p.value.$refs.observer.setErrors(t.response.data),f.value&&f.value.$refs.observer.setErrors(t.response.data)}}return(t,o)=>(i(),k(q,null,[a(D,{modelValue:h.value,"onUpdate:modelValue":o[2]||(o[2]=l=>h.value=l)},{default:e(()=>[a(b,null,{default:e(()=>[a(E,null,{default:e(({open:l})=>[a(g,{"no-gutters":""},{default:e(()=>[a(m,{cols:"4"},{default:e(()=>[u(n(d(r)("General")),1)]),_:1}),a(m,{cols:"8",class:"text-secondary"},{default:e(()=>[a(F,{"leave-absolute":""},{default:e(()=>[l?(i(),k("span",L)):(i(),y(g,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(m,{cols:"6"},{default:e(()=>[u(n(d(r)("Name:"))+" "+n(s.value.name),1)]),_:1})]),_:1}))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1}),a(B,null,{default:e(()=>[a(T,{ref_key:"generalForm",ref:p,modelValue:s.value,"onUpdate:modelValue":o[0]||(o[0]=l=>s.value=l)},null,8,["modelValue"])]),_:1})]),_:1}),a(b,null,{default:e(()=>[a(E,null,{default:e(({open:l})=>[a(g,{"no-gutters":""},{default:e(()=>[a(m,{cols:"4"},{default:e(()=>[u(n(d(r)("Associated domains")),1)]),_:1}),a(m,{cols:"8",class:"text-secondary"},{default:e(()=>[a(F,{"leave-absolute":""},{default:e(()=>[l?(i(),k("span",O)):(i(),y(g,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[s.value.domains.length>0?(i(),y(m,{key:0,cols:"6"},{default:e(()=>[u(n(d(r)("Number of associated domains:"))+" "+n(s.value.domains.length),1)]),_:1})):(i(),y(m,{key:1,cols:"6"},{default:e(()=>[u(n(d(r)("No associated domains")),1)]),_:1}))]),_:1}))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1}),a(B,null,{default:e(()=>[a(U,{ref_key:"associatedForm",ref:f,modelValue:s.value.domains,"onUpdate:modelValue":o[1]||(o[1]=l=>s.value.domains=l)},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),w("div",H,[a($,{onClick:o[3]||(o[3]=l=>t.$router.go(-1))},{default:e(()=>[u(n(d(r)("Cancel")),1)]),_:1}),a($,{class:"ml-4",color:"primary darken-1",onClick:C},{default:e(()=>[u(n(d(r)("Save")),1)]),_:1})])],64))}},J={class:"text-h4"},_e={__name:"ProviderEditView",setup(P){const{$gettext:x}=S(),r=z(),c=v({});return N.getProvider(r.params.id).then(_=>{c.value=_.data}),(_,V)=>(i(),k("div",null,[w("span",J,n(d(x)("Edit provider")),1),V[0]||(V[0]=w("div",{class:"mt-4"},null,-1)),a(I,{provider:c.value},null,8,["provider"])]))}};export{_e as default};
1
+ import{u as R,a as T,_ as U,p as N}from"./ProviderGeneralForm-CAVNOJp6.js";import{b as S,n as j,q as A,h as v,z as G,l as k,o as i,a,e as w,w as e,k as u,t as n,f as d,c as y,F as q,B as z}from"./index-YIGRKgNA.js";import{d as F,V as $}from"./VAvatar-J563boKh.js";import{V as b,c as E,a as B,b as D}from"./VExpansionPanels-Dnwgt5uT.js";import{V as g,a as m}from"./VRow-CAbOSEHS.js";import"./domains-CQv8gtbQ.js";import"./VTextField-C9VUP7V9.js";import"./tag-DV1_zOzl.js";import"./VInput-Dpmea5z9.js";import"./VProgressCircular-CtqQON49.js";import"./forwardRefs-DPrLRqxP.js";import"./ssrBoot-CpJ-7WlH.js";import"./VAutocomplete-Bg2AlW_n.js";import"./VSelect-Cdh0qO5m.js";import"./VMenu-DDmBlbM8.js";import"./VCheckboxBtn-CLh3m66z.js";import"./VSelectionControl-BN-zQ3C6.js";import"./VChip-DvxO74Mw.js";import"./filter-C_GJovn5.js";import"./VForm-BwTUBf4u.js";import"./VSpacer-BWZq1PhD.js";/* empty css */import"./VSwitch-CixaedmQ.js";const L={key:0},O={key:0},H={class:"mt-4 d-flex justify-end"},I={__name:"ProviderForm",props:{provider:{type:Object,default:null}},setup(P){const x=P,{$gettext:r}=S(),c=j(),_=A(),V=R(),s=v({domains:[]}),h=v(0),p=v(),f=v();G(()=>x.provider,t=>{t&&(s.value={...t},s.value.domains||(s.value.domains=[]))},{immediate:!0});async function C(){if(p.value!==void 0){const{valid:t}=await p.value.vFormRef.validate();if(!t)return}if(f.value!==void 0){const{valid:t}=await f.value.vFormRef.validate();if(!t)return}try{const t={...s.value};t.domains=[];for(const o of s.value.domains)o.new_domain?t.domains.push({name:o.name,new_domain:o.new_domain.pk||o.new_domain.id}):t.domains.push(o);await N.patchProvider(s.value.id,t).then(()=>{c.displayNotification({msg:r("Provider updated")}),V.getProviders(),_.push({name:"ProvidersList"})})}catch(t){p.value&&p.value.$refs.observer.setErrors(t.response.data),f.value&&f.value.$refs.observer.setErrors(t.response.data)}}return(t,o)=>(i(),k(q,null,[a(D,{modelValue:h.value,"onUpdate:modelValue":o[2]||(o[2]=l=>h.value=l)},{default:e(()=>[a(b,null,{default:e(()=>[a(E,null,{default:e(({open:l})=>[a(g,{"no-gutters":""},{default:e(()=>[a(m,{cols:"4"},{default:e(()=>[u(n(d(r)("General")),1)]),_:1}),a(m,{cols:"8",class:"text-secondary"},{default:e(()=>[a(F,{"leave-absolute":""},{default:e(()=>[l?(i(),k("span",L)):(i(),y(g,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(m,{cols:"6"},{default:e(()=>[u(n(d(r)("Name:"))+" "+n(s.value.name),1)]),_:1})]),_:1}))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1}),a(B,null,{default:e(()=>[a(T,{ref_key:"generalForm",ref:p,modelValue:s.value,"onUpdate:modelValue":o[0]||(o[0]=l=>s.value=l)},null,8,["modelValue"])]),_:1})]),_:1}),a(b,null,{default:e(()=>[a(E,null,{default:e(({open:l})=>[a(g,{"no-gutters":""},{default:e(()=>[a(m,{cols:"4"},{default:e(()=>[u(n(d(r)("Associated domains")),1)]),_:1}),a(m,{cols:"8",class:"text-secondary"},{default:e(()=>[a(F,{"leave-absolute":""},{default:e(()=>[l?(i(),k("span",O)):(i(),y(g,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[s.value.domains.length>0?(i(),y(m,{key:0,cols:"6"},{default:e(()=>[u(n(d(r)("Number of associated domains:"))+" "+n(s.value.domains.length),1)]),_:1})):(i(),y(m,{key:1,cols:"6"},{default:e(()=>[u(n(d(r)("No associated domains")),1)]),_:1}))]),_:1}))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1}),a(B,null,{default:e(()=>[a(U,{ref_key:"associatedForm",ref:f,modelValue:s.value.domains,"onUpdate:modelValue":o[1]||(o[1]=l=>s.value.domains=l)},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),w("div",H,[a($,{onClick:o[3]||(o[3]=l=>t.$router.go(-1))},{default:e(()=>[u(n(d(r)("Cancel")),1)]),_:1}),a($,{class:"ml-4",color:"primary darken-1",onClick:C},{default:e(()=>[u(n(d(r)("Save")),1)]),_:1})])],64))}},J={class:"text-h4"},_e={__name:"ProviderEditView",setup(P){const{$gettext:x}=S(),r=z(),c=v({});return N.getProvider(r.params.id).then(_=>{c.value=_.data}),(_,V)=>(i(),k("div",null,[w("span",J,n(d(x)("Edit provider")),1),V[0]||(V[0]=w("div",{class:"mt-4"},null,-1)),a(I,{provider:c.value},null,8,["provider"])]))}};export{_e as default};
@@ -1 +1 @@
1
- import{C as y,E as T,n as q,g as m,G,b as K,z as j,l as b,o as v,a as n,w as d,f as _,F as w,s as E,c as $,k,t as A,h as M,e as I}from"./index-BImkz5Jx.js";import{d as O}from"./domains-BSawReeu.js";import{V as C}from"./VTextField-XoGTj1KG.js";import{V as z}from"./VAutocomplete-Dwv6_Rzq.js";import{V as F,r as S}from"./VForm-D5iPGkde.js";import{V as N,c as x}from"./VAvatar-Cmga0vj6.js";import{V as Y}from"./VSpacer-DinPiXs9.js";import{V as H}from"./VChip-D_styETR.js";import{V as J}from"./VInput-CoDJzvaW.js";import{V as Q}from"./VSwitch-DwxdeAEq.js";const g="email-providers",h={getProviders(a){return y.get(`/${g}/`,{params:a})},getProvider(a){return y.get(`/${g}/${a}/`)},createProvider(a){return y.post(`/${g}/`,a)},updateProvider(a,l){return y.put(`/${g}/${a}/`,l)},patchProvider(a,l){return y.patch(`/${g}/${a}/`,l)},deleteProvider(a){return y.delete(`/${g}/${a}/`)},checkProvider(a){return y.post(`/${g}/check_connection/`,a)},checkAssociatedDomain(a){return y.post(`/${g}/check_associated_domain/`,a)}},de=T("providers",()=>{const a=q(),l=m(!1),i=m({}),{$gettext:o}=G;async function p(){l.value=!1,i.value={}}async function f(){return i.value={},l.value=!1,h.getProviders().then(t=>{for(const e of t.data)i.value[e.id]=e;return t}).finally(()=>l.value=!0)}async function r(t){return l.value=!1,h.createProvider(t).then(e=>(i.value[e.data.id]=e.data,e)).finally(()=>l.value=!0)}async function P(t){return l.value=!1,h.deleteProvider({id:t}).then(e=>(delete i.value[t],a.displayNotification({msg:o("Provider deleted")}),e)).finally(()=>l.value=!0)}return{providersLoaded:l,providers:i,getProviders:f,createProvider:r,deleteProvider:P,$reset:p}}),me={__name:"ProviderAssociatedForm",props:{modelValue:{type:Array,default:null}},emits:["update:modelValue"],setup(a,{expose:l,emit:i}){const{$gettext:o}=K(),p=a,f=i,r=m([]),P=m(),t=m(),e=m({name:"",new_domain:""}),u=m([]);j(()=>p.modelValue,s=>{s&&(r.value=[...s])},{immediate:!0});async function D(){await P.value.validate()&&h.checkAssociatedDomain(e.value).then(c=>{c.status===200&&(r.value.push({name:e.value.name,new_domain:e.value.new_domain}),f("update:modelValue",r.value),e.value={name:"",new_domain:""})})}function R(s){r.value.splice(s,1),f("update:modelValue",r.value)}function L(s){const c=s.keyCode;(c===13||c===9)&&(D(),s.preventDefault())}O.getDomains().then(s=>{u.value=s.data});function U(){return r.value.length===0?o("You need to bind at least one domain to the provider."):!0}return l({vFormRef:t}),(s,c)=>(v(),b(w,null,[n(F,{ref_key:"formRef",ref:P},{default:d(()=>[n(C,{ref:"initialdomainField",modelValue:e.value.name,"onUpdate:modelValue":c[0]||(c[0]=V=>e.value.name=V),placeholder:_(o)("Name of the domain to migrate"),variant:"outlined",density:"compact",onKeydown:L},null,8,["modelValue","placeholder"]),n(z,{modelValue:e.value.new_domain,"onUpdate:modelValue":c[1]||(c[1]=V=>e.value.new_domain=V),label:_(o)("Local domain (optional)"),items:u.value,"item-title":"name","return-object":"",variant:"outlined",density:"compact",clearable:"",onKeydown:L},null,8,["modelValue","label","items"])]),_:1},512),n(N,{icon:"mdi-plus",color:"primary",onClick:D}),n(Y),(v(!0),b(w,null,E(r.value,(V,B)=>(v(),$(H,{key:B,class:"mr-2 mt-2",closable:"","onClick:close":Z=>R(B)},{default:d(()=>[V.new_domain?(v(),b(w,{key:0},[k(A(V.name)+" --> "+A(V.new_domain.name),1)],64)):(v(),b(w,{key:1},[k(A(V.name),1)],64))]),_:2},1032,["onClick:close"]))),128)),n(F,{ref_key:"vFormRef",ref:t},{default:d(()=>[n(J,{rules:[U]},null,8,["rules"])]),_:1},512)],64))}},W={class:"my-7"},X={class:"custom-loader"},ce={__name:"ProviderGeneralForm",props:{modelValue:{type:Object,default:null}},setup(a,{expose:l}){const i=a,o=M(()=>i.modelValue),p=m(0),f=m(!1),r=m();async function P(){if(!await r.value.validate())return;f.value=!0;const e={address:o.value.address,port:o.value.port,secured:o.value.secured};h.checkProvider(e).then(()=>{p.value=1}).catch(u=>{console.log(u),p.value=2}).finally(()=>f.value=!1)}return l({vFormRef:r}),(t,e)=>(v(),$(F,{ref_key:"vFormRef",ref:r},{default:d(()=>[n(C,{modelValue:o.value.name,"onUpdate:modelValue":e[0]||(e[0]=u=>o.value.name=u),label:t.$gettext("Provider name"),variant:"outlined",rules:[_(S).required]},null,8,["modelValue","label","rules"]),n(C,{modelValue:o.value.address,"onUpdate:modelValue":e[1]||(e[1]=u=>o.value.address=u),label:t.$gettext("Address (hostname or IP)"),rules:[_(S).required],variant:"outlined"},null,8,["modelValue","label","rules"]),n(C,{modelValue:o.value.port,"onUpdate:modelValue":e[2]||(e[2]=u=>o.value.port=u),label:t.$gettext("IMAP Port"),type:"number",variant:"outlined",rules:[_(S).required,_(S).portNumber]},null,8,["modelValue","label","rules"]),n(Q,{modelValue:o.value.secured,"onUpdate:modelValue":e[3]||(e[3]=u=>o.value.secured=u),label:t.$gettext("Secured"),color:"primary",hint:t.$gettext("Is the IMAP connection secured using SSL/TLS or StartTLS"),"persistent-hint":""},null,8,["modelValue","label","hint"]),I("div",W,[n(N,{loading:f.value,color:"primary",onClick:P},{loader:d(()=>[I("span",X,[n(x,{light:""},{default:d(()=>e[7]||(e[7]=[k("mdi-cached")])),_:1,__:[7]})])]),default:d(()=>[k(A(t.$gettext("Check connection:"))+" ",1),p.value===0?(v(),$(x,{key:0,color:"blue-grey-darken-2"},{default:d(()=>e[4]||(e[4]=[k(" mdi-help-circle-outline ")])),_:1,__:[4]})):p.value===1?(v(),$(x,{key:1,color:"success"},{default:d(()=>e[5]||(e[5]=[k(" mdi-check-all ")])),_:1,__:[5]})):(v(),$(x,{key:2,color:"warning"},{default:d(()=>e[6]||(e[6]=[k(" mdi-alert-circle-outline ")])),_:1,__:[6]}))]),_:1},8,["loading"])])]),_:1},512))}};export{me as _,ce as a,h as p,de as u};
1
+ import{C as y,E as T,n as q,h as m,G,b as K,z as j,l as b,o as v,a as n,w as d,f as _,F as w,s as E,c as $,k,t as A,i as M,e as I}from"./index-YIGRKgNA.js";import{d as O}from"./domains-CQv8gtbQ.js";import{V as C}from"./VTextField-C9VUP7V9.js";import{V as z}from"./VAutocomplete-Bg2AlW_n.js";import{V as F,r as S}from"./VForm-BwTUBf4u.js";import{V as N,c as x}from"./VAvatar-J563boKh.js";import{V as Y}from"./VSpacer-BWZq1PhD.js";import{V as H}from"./VChip-DvxO74Mw.js";import{V as J}from"./VInput-Dpmea5z9.js";import{V as Q}from"./VSwitch-CixaedmQ.js";const g="email-providers",h={getProviders(a){return y.get(`/${g}/`,{params:a})},getProvider(a){return y.get(`/${g}/${a}/`)},createProvider(a){return y.post(`/${g}/`,a)},updateProvider(a,l){return y.put(`/${g}/${a}/`,l)},patchProvider(a,l){return y.patch(`/${g}/${a}/`,l)},deleteProvider(a){return y.delete(`/${g}/${a}/`)},checkProvider(a){return y.post(`/${g}/check_connection/`,a)},checkAssociatedDomain(a){return y.post(`/${g}/check_associated_domain/`,a)}},de=T("providers",()=>{const a=q(),l=m(!1),i=m({}),{$gettext:o}=G;async function p(){l.value=!1,i.value={}}async function f(){return i.value={},l.value=!1,h.getProviders().then(t=>{for(const e of t.data)i.value[e.id]=e;return t}).finally(()=>l.value=!0)}async function r(t){return l.value=!1,h.createProvider(t).then(e=>(i.value[e.data.id]=e.data,e)).finally(()=>l.value=!0)}async function P(t){return l.value=!1,h.deleteProvider({id:t}).then(e=>(delete i.value[t],a.displayNotification({msg:o("Provider deleted")}),e)).finally(()=>l.value=!0)}return{providersLoaded:l,providers:i,getProviders:f,createProvider:r,deleteProvider:P,$reset:p}}),me={__name:"ProviderAssociatedForm",props:{modelValue:{type:Array,default:null}},emits:["update:modelValue"],setup(a,{expose:l,emit:i}){const{$gettext:o}=K(),p=a,f=i,r=m([]),P=m(),t=m(),e=m({name:"",new_domain:""}),u=m([]);j(()=>p.modelValue,s=>{s&&(r.value=[...s])},{immediate:!0});async function D(){await P.value.validate()&&h.checkAssociatedDomain(e.value).then(c=>{c.status===200&&(r.value.push({name:e.value.name,new_domain:e.value.new_domain}),f("update:modelValue",r.value),e.value={name:"",new_domain:""})})}function R(s){r.value.splice(s,1),f("update:modelValue",r.value)}function L(s){const c=s.keyCode;(c===13||c===9)&&(D(),s.preventDefault())}O.getDomains().then(s=>{u.value=s.data});function U(){return r.value.length===0?o("You need to bind at least one domain to the provider."):!0}return l({vFormRef:t}),(s,c)=>(v(),b(w,null,[n(F,{ref_key:"formRef",ref:P},{default:d(()=>[n(C,{ref:"initialdomainField",modelValue:e.value.name,"onUpdate:modelValue":c[0]||(c[0]=V=>e.value.name=V),placeholder:_(o)("Name of the domain to migrate"),variant:"outlined",density:"compact",onKeydown:L},null,8,["modelValue","placeholder"]),n(z,{modelValue:e.value.new_domain,"onUpdate:modelValue":c[1]||(c[1]=V=>e.value.new_domain=V),label:_(o)("Local domain (optional)"),items:u.value,"item-title":"name","return-object":"",variant:"outlined",density:"compact",clearable:"",onKeydown:L},null,8,["modelValue","label","items"])]),_:1},512),n(N,{icon:"mdi-plus",color:"primary",onClick:D}),n(Y),(v(!0),b(w,null,E(r.value,(V,B)=>(v(),$(H,{key:B,class:"mr-2 mt-2",closable:"","onClick:close":Z=>R(B)},{default:d(()=>[V.new_domain?(v(),b(w,{key:0},[k(A(V.name)+" --> "+A(V.new_domain.name),1)],64)):(v(),b(w,{key:1},[k(A(V.name),1)],64))]),_:2},1032,["onClick:close"]))),128)),n(F,{ref_key:"vFormRef",ref:t},{default:d(()=>[n(J,{rules:[U]},null,8,["rules"])]),_:1},512)],64))}},W={class:"my-7"},X={class:"custom-loader"},ce={__name:"ProviderGeneralForm",props:{modelValue:{type:Object,default:null}},setup(a,{expose:l}){const i=a,o=M(()=>i.modelValue),p=m(0),f=m(!1),r=m();async function P(){if(!await r.value.validate())return;f.value=!0;const e={address:o.value.address,port:o.value.port,secured:o.value.secured};h.checkProvider(e).then(()=>{p.value=1}).catch(u=>{console.log(u),p.value=2}).finally(()=>f.value=!1)}return l({vFormRef:r}),(t,e)=>(v(),$(F,{ref_key:"vFormRef",ref:r},{default:d(()=>[n(C,{modelValue:o.value.name,"onUpdate:modelValue":e[0]||(e[0]=u=>o.value.name=u),label:t.$gettext("Provider name"),variant:"outlined",rules:[_(S).required]},null,8,["modelValue","label","rules"]),n(C,{modelValue:o.value.address,"onUpdate:modelValue":e[1]||(e[1]=u=>o.value.address=u),label:t.$gettext("Address (hostname or IP)"),rules:[_(S).required],variant:"outlined"},null,8,["modelValue","label","rules"]),n(C,{modelValue:o.value.port,"onUpdate:modelValue":e[2]||(e[2]=u=>o.value.port=u),label:t.$gettext("IMAP Port"),type:"number",variant:"outlined",rules:[_(S).required,_(S).portNumber]},null,8,["modelValue","label","rules"]),n(Q,{modelValue:o.value.secured,"onUpdate:modelValue":e[3]||(e[3]=u=>o.value.secured=u),label:t.$gettext("Secured"),color:"primary",hint:t.$gettext("Is the IMAP connection secured using SSL/TLS or StartTLS"),"persistent-hint":""},null,8,["modelValue","label","hint"]),I("div",W,[n(N,{loading:f.value,color:"primary",onClick:P},{loader:d(()=>[I("span",X,[n(x,{light:""},{default:d(()=>e[7]||(e[7]=[k("mdi-cached")])),_:1,__:[7]})])]),default:d(()=>[k(A(t.$gettext("Check connection:"))+" ",1),p.value===0?(v(),$(x,{key:0,color:"blue-grey-darken-2"},{default:d(()=>e[4]||(e[4]=[k(" mdi-help-circle-outline ")])),_:1,__:[4]})):p.value===1?(v(),$(x,{key:1,color:"success"},{default:d(()=>e[5]||(e[5]=[k(" mdi-check-all ")])),_:1,__:[5]})):(v(),$(x,{key:2,color:"warning"},{default:d(()=>e[6]||(e[6]=[k(" mdi-alert-circle-outline ")])),_:1,__:[6]}))]),_:1},8,["loading"])])]),_:1},512))}};export{me as _,ce as a,h as p,de as u};
@@ -1 +1 @@
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,v as L,e as q,l as h,s as O,F as B,k as p,t as g,q as W,_ as H}from"./index-BImkz5Jx.js";import{_ as J}from"./CreationForm-ORg3fazt.js";import{u as z,_ as K,a as Q}from"./ProviderGeneralForm-BYAzVnXM.js";import{_ as X}from"./MenuItems-PXjiG-fs.js";import{V as j}from"./VMenu-gUG70-zD.js";import{V as N,c as E}from"./VAvatar-Cmga0vj6.js";import{V as T}from"./VChip-D_styETR.js";import{V as G,a as Y}from"./VToolbar-CFZfqeOr.js";import{V as Z}from"./forwardRefs-cvcnlhoK.js";import{V as I}from"./VSpacer-DinPiXs9.js";import{V as ee}from"./VTextField-XoGTj1KG.js";import{V as oe}from"./VDataTable-Bh8NbVSx.js";import{a as te}from"./VCard-CxH9DWoK.js";import{V as ae}from"./VDialog-BcTg7w6P.js";import"./ConfirmDialog-DY_kUHLG.js";import"./VRow-ozg66L7j.js";/* empty css */import"./tag-B_yWNNJD.js";import"./logos-BswdveCV.js";import"./VWindowItem-BB7ETW3b.js";import"./ssrBoot-CKUX4kcb.js";import"./VContainer-B46caNs1.js";import"./VSheet-BNx2X4Mk.js";import"./VProgressCircular-BtOPiGCg.js";import"./domains-BSawReeu.js";import"./VAutocomplete-Dwv6_Rzq.js";import"./VSelect-C3RjAa45.js";import"./VInput-CoDJzvaW.js";import"./VCheckboxBtn-DMoNtKT8.js";import"./VSelectionControl-zyz-fJvC.js";import"./filter-C82FUCw_.js";import"./VForm-D5iPGkde.js";import"./VSwitch-DwxdeAEq.js";import"./VTable-DaLxa4FO.js";const re={__name:"ProviderCreationForm",emits:["close"],setup(D,{emit:s}){const d=s,{$gettext:i}=U(),c=M(),v=z(),F=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:F.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=z(),i=W(),c=A(()=>d.providers),v=A(()=>d.providersLoaded),F=[{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:F,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(G,{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:_})=>[q("td",{colspan:t.length},[(u(!0),h(B,null,O(_.domains,(y,n)=>(u(),k(T,{key:n},{default:e(()=>[y.new_domain?(u(),h(B,{key:0},[p(g(y.name)+" --> "+g(y.new_domain.name),1)],64)):(u(),h(B,{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(G,{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"])]))}},Re=H(ne,[["__scopeId","data-v-1a3ee9c1"]]);export{Re as default};
1
+ import{b as U,n as M,i as A,h as x,c as k,o as u,w as e,a as o,f,v as L,e as q,l as h,s as O,F as B,k as p,t as y,q as W,_ as H}from"./index-YIGRKgNA.js";import{_ as J}from"./CreationForm-BZMhQOez.js";import{u as z,_ as K,a as Q}from"./ProviderGeneralForm-CAVNOJp6.js";import{_ as X}from"./MenuItems-BRChEdLp.js";import{V as j}from"./VMenu-DDmBlbM8.js";import{V as N,c as E}from"./VAvatar-J563boKh.js";import{V as T}from"./VChip-DvxO74Mw.js";import{V as G,a as Y}from"./VToolbar-Cs-fVa4M.js";import{V as Z}from"./forwardRefs-DPrLRqxP.js";import{V as I}from"./VSpacer-BWZq1PhD.js";import{V as ee}from"./VTextField-C9VUP7V9.js";import{V as oe}from"./VDataTable-CAT0QYJz.js";import{a as te}from"./VCard-CJ2oGh_i.js";import{V as ae}from"./VDialog-CaQnQSDn.js";import"./ConfirmDialog-Dr0i2kqK.js";import"./VRow-CAbOSEHS.js";/* empty css */import"./tag-DV1_zOzl.js";import"./logos-CboXciB_.js";import"./VWindowItem-C9PFEbE6.js";import"./ssrBoot-CpJ-7WlH.js";import"./VContainer-L2EoH3dT.js";import"./VSheet-9RDZpWCf.js";import"./VProgressCircular-CtqQON49.js";import"./domains-CQv8gtbQ.js";import"./VAutocomplete-Bg2AlW_n.js";import"./VSelect-Cdh0qO5m.js";import"./VInput-Dpmea5z9.js";import"./VCheckboxBtn-CLh3m66z.js";import"./VSelectionControl-BN-zQ3C6.js";import"./filter-C_GJovn5.js";import"./VForm-BwTUBf4u.js";import"./VSwitch-CixaedmQ.js";import"./VTable-DO7ofPSj.js";const re={__name:"ProviderCreationForm",emits:["close"],setup(D,{emit:s}){const d=s,{$gettext:i}=U(),c=M(),v=z(),F=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:F.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 g(){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:g},{"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=z(),i=W(),c=A(()=>d.providers),v=A(()=>d.providersLoaded),F=[{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:F,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(G,{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(y(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(y(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:_})=>[q("td",{colspan:t.length},[(u(!0),h(B,null,O(_.domains,(g,n)=>(u(),k(T,{key:n},{default:e(()=>[g.new_domain?(u(),h(B,{key:0},[p(y(g.name)+" --> "+y(g.new_domain.name),1)],64)):(u(),h(B,{key:1},[p(y(g.name)+" --> "+y(g.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(G,{flat:""},{default:e(()=>[o(Y,null,{default:e(()=>[p(y(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(y(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"])]))}},Re=H(ne,[["__scopeId","data-v-1a3ee9c1"]]);export{Re as default};
@@ -0,0 +1 @@
1
+ import{_ as r}from"./ConnectedLayout-irTI2ekJ.js";import{c as o,w as m,o as p,k as i}from"./index-YIGRKgNA.js";import"./theme-BGzdVPko.js";import"./VContainer-L2EoH3dT.js";/* empty css */import"./tag-DV1_zOzl.js";import"./VApp-C74A9rX5.js";import"./layout-BM4C5b2r.js";import"./ssrBoot-CpJ-7WlH.js";import"./logos-CboXciB_.js";import"./layout.store-CCOp6tv6.js";import"./VAvatar-J563boKh.js";import"./VProgressCircular-CtqQON49.js";import"./forwardRefs-DPrLRqxP.js";import"./VMenu-DDmBlbM8.js";import"./global.store-CNChIxQL.js";import"./VBadge-CtEsXuih.js";import"./VCard-CJ2oGh_i.js";import"./VRow-CAbOSEHS.js";import"./VSheet-9RDZpWCf.js";const V={__name:"QuarantineLayout",setup(a){return(e,t)=>(p(),o(r,null,{navbar:m(()=>t[0]||(t[0]=[i(" ")])),_:1}))}};export{V as default};
@@ -1 +1 @@
1
- import{b as me,u as pe,n as fe,j as ve,g as n,z as ye,B as G,c as h,w as o,a as l,k as _,t as c,e as k,m as A,aQ as ge,f as r,v as N,l as Y,s as be,F as he,q as W,i as E,o as m}from"./index-BImkz5Jx.js";import{d as ke}from"./index-DuzUMVLM.js";import{u as _e}from"./amavis-DK8SHE6o.js";import{_ as Ve}from"./ConfirmDialog-DY_kUHLG.js";import{a as R}from"./amavis-CC0li7_T.js";import{c as $,V as M}from"./VAvatar-Cmga0vj6.js";import{V as x}from"./VChip-D_styETR.js";import{V as we}from"./VTextField-XoGTj1KG.js";import{V as I}from"./VMenu-gUG70-zD.js";import{a as O,V as Se}from"./VCard-CxH9DWoK.js";import{a as K,V as b}from"./VRadioGroup-DIFZKSn-.js";import{V as Ce,a as z}from"./forwardRefs-cvcnlhoK.js";import{V as Re}from"./VSelect-C3RjAa45.js";import{V as Me}from"./VDataTableServer-BDR5hOmo.js";import"./permissions-DNoefz-n.js";import"./parameters-aSQiR7kN.js";import"./VToolbar-CFZfqeOr.js";import"./tag-B_yWNNJD.js";import"./VProgressCircular-BtOPiGCg.js";import"./VSpacer-DinPiXs9.js";/* empty css */import"./VDialog-BcTg7w6P.js";import"./VInput-CoDJzvaW.js";import"./VSelectionControl-zyz-fJvC.js";import"./ssrBoot-CKUX4kcb.js";import"./VCheckboxBtn-DMoNtKT8.js";import"./VDataTable-Bh8NbVSx.js";import"./VTable-DaLxa4FO.js";import"./filter-C82FUCw_.js";const xe={class:"d-flex my-4"},Be={class:"mr-2"},Ue=["title"],Te=["title"],je={__name:"QuarantineList",async setup(J){let p,V;const{$gettext:s}=me(),w=W(),B=G(),P=pe(),{displayNotification:S}=fe(),{manualLearningEnabled:D,learningRecipients:X}=([p,V]=ve(()=>_e()),p=await p,V(),p),U=n(1),T=n(10),f=n(null),Q=n(null),i=n(!1),F=n([]),v=n(""),j=n("both"),u=n([]),y=n([]),H=n(0),C=n("all"),Z=[{color:"",key:"all",label:"All"},{color:"success",key:"C",label:"Clean"},{color:"error",key:"S",label:"Spam"},{color:"warning",key:"Y",label:"Spammy"},{color:"error",key:"V",label:"Virus"},{color:"warning",key:"H",label:"Bad Header"},{color:"warning",key:"M",label:"Bad MIME"},{color:"warning",key:"B",label:"Banned"},{color:"warning",key:"O",label:"Over sized"},{color:"warning",key:"T",label:"MTA error"},{color:"",key:"U",label:"Unchecked"}],ee=[{title:"",key:"type",width:"5%"},{title:"",key:"status",width:"5%"},{title:s("Score"),key:"score"},{title:s("To"),key:"to_address"},{title:s("From"),key:"from_address"},{title:s("Subject"),key:"subject"},{title:s("Date"),key:"datetime"}];ye(()=>B.query.requests,()=>{d()});const ae=({item:a})=>({class:a.style}),te=()=>({class:"clickable"}),le=a=>["S","V"].includes(a)?"error":["Y","H","M","B","O","T"].includes(a)?"warning":a==="C"?"success":"",se=a=>a.status==="R"?"mdi-reply":a.status==="S"?"mdi-thumb-down-outline":a.status==="H"?"mdi-thumb-up-outline":"",oe=a=>a.status==="R"?s("Message released"):a.status==="S"?s("Message marked as spam"):a.status==="H"?s("Message marked as non-spam"):"",re=async({page:a,itemsPerPage:t,sortBy:e})=>{U.value=a,T.value=t,y.value=e,d()},d=ke(async()=>{var t;i.value=!0;const a={page:U.value||1,page_size:T.value||10};y.value&&y.value.length&&(a.ordering=y.value.map(e=>e.order!=="asc"?`-${e.key}`:e.key).join(",")),v.value!==""&&(a.search=v.value,a.criteria=j.value),C.value!=="all"&&(a.msgtype=C.value),((t=B.query)==null?void 0:t.requests)==="1"&&(a.viewrequests=1);try{const e=await R.getQuarantineContent(a);F.value=e.data.results,H.value=e.data.count,u.value=[]}finally{i.value=!1}},500),ne=(a,{item:t})=>{w.push({name:"QuarantineMessageView",params:{mailid:t.mailid,rcpt:t.to_address}})},q=()=>{const a={selection:[]};for(const t of u.value)a.selection.push({rcpt:t.to_address,mailid:t.mailid});return a},ie=async()=>{i.value=!0;const a=q();try{await R.deleteSelection(a),d(),S({msg:s("Selection deleted")})}finally{i.value=!1}},ue=async()=>{i.value=!0;const a=q();try{const t=await R.releaseSelection(a);d(),t.data.status==="pending"?S({msg:s("Release request sent")}):S({msg:s("Selection released")})}finally{i.value=!1}},L=async a=>{D.value&&P.authUser.role!==E.USER&&(f.value=P.authUser.role===E.SUPER_ADMIN?"global":"domain",await Q.value.open(s("Learning database"),s("Which database should be used for this learning:"),{width:600,noconfirm:!0})),i.value=!0;const t=q();t.type=a,f.value&&(t.database=f.value);try{await R.markMessageSelection(t),S({msg:s("Selection is being processed...")}),u.value=[]}finally{i.value=!1}},ce=async()=>{await L("spam")},de=async()=>{await L("ham")};return(a,t)=>(m(),h(O,{class:"mt-6"},{default:o(()=>[l(Me,{modelValue:u.value,"onUpdate:modelValue":t[3]||(t[3]=e=>u.value=e),headers:ee,items:F.value,search:v.value,loading:i.value,"items-length":H.value,page:U.value,"items-per-page":T.value,"item-value":"mailid",elevation:"0","show-select":"","return-object":"",density:"compact","sort-by":y.value,"row-props":ae,"cell-props":te,"onUpdate:options":re,"onClick:row":ne},{top:o(()=>[k("div",xe,[l(we,{modelValue:v.value,"onUpdate:modelValue":t[1]||(t[1]=e=>v.value=e),placeholder:r(s)("Search in messages"),variant:"outlined","single-line":"","hide-details":"",class:"flex-grow-0 w-33 mr-4",clearable:"",density:"compact","onClick:clear":r(d),onKeyup:ge(r(d),["enter"])},{"prepend-inner":o(()=>[l(M,{icon:"",variant:"flat",size:"small"},{default:o(()=>[l($,{icon:"mdi-magnify"}),l(I,{activator:"parent"},{default:o(()=>[l(O,null,{default:o(()=>[l(Se,null,{default:o(()=>[l(K,{modelValue:j.value,"onUpdate:modelValue":t[0]||(t[0]=e=>j.value=e)},{default:o(()=>[l(b,{label:r(s)("From address"),value:"from_addr"},null,8,["label"]),l(b,{label:r(s)("Subject"),value:"subject"},null,8,["label"]),l(b,{label:r(s)("To"),value:"to"},null,8,["label"]),l(b,{label:r(s)("both"),value:"both"},null,8,["label"])]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue","placeholder","onClick:clear","onKeyup"]),l(M,{class:"ml-2",color:"success",variant:"tonal",icon:"mdi-check",size:"small",disabled:u.value.length===0,title:r(s)("Release selection"),loading:i.value,onClick:ue},null,8,["disabled","title","loading"]),l(M,{class:"ml-2",color:"error",variant:"tonal",icon:"mdi-trash-can",size:"small",disabled:u.value.length===0,title:r(s)("Delete selection"),loading:i.value,onClick:ie},null,8,["disabled","title","loading"]),r(D)?(m(),h(M,{key:0,class:"ml-2",size:"small",variant:"tonal",icon:"",disabled:u.value.length===0},{default:o(()=>[l($,{icon:"mdi-cog"}),l(I,{activator:"parent"},{default:o(()=>[l(Ce,null,{default:o(()=>[l(z,{title:r(s)("Mark as spam"),onClick:ce},null,8,["title"]),l(z,{title:r(s)("Mark as not spam"),onClick:de},null,8,["title"])]),_:1})]),_:1})]),_:1},8,["disabled"])):A("",!0),l(Re,{modelValue:C.value,"onUpdate:modelValue":[t[2]||(t[2]=e=>C.value=e),r(d)],variant:"outlined",items:Z,class:"ml-2 flex-grow-0",density:"compact","item-title":"label","item-value":"key",chips:"","hide-details":""},{chip:o(({props:e,item:g})=>[k("span",Be,c(r(s)("Display")),1),l(x,N(e,{color:g.raw.color,text:g.raw.label,label:""}),null,16,["color","text"])]),item:o(({props:e,item:g})=>[l(z,N(e,{title:""}),{default:o(()=>[l(x,{color:g.raw.color,label:""},{default:o(()=>[_(c(g.raw.label),1)]),_:2},1032,["color"])]),_:2},1040)]),_:1},8,["modelValue","onUpdate:modelValue"])])]),"item.type":o(({item:e})=>[l(x,{color:le(e.type),size:"small",label:""},{default:o(()=>[_(c(e.type),1)]),_:2},1032,["color"])]),"item.status":o(({item:e})=>[e.status?(m(),h($,{key:0,icon:se(e),title:oe(e),size:"small"},null,8,["icon","title"])):A("",!0)]),"item.from_address":o(({item:e})=>[k("span",{title:e.from_address},c(a.$truncate(e.from_address,30)),9,Ue)]),"item.subject":o(({item:e})=>[k("span",{title:e.subject},c(a.$truncate(e.subject,30)),9,Te)]),"item.datetime":o(({item:e})=>[_(c(a.$date(e.datetime)),1)]),_:2},1032,["modelValue","items","search","loading","items-length","page","items-per-page","sort-by"]),l(r(Ve),{ref_key:"learningRecipientRef",ref:Q},{default:o(()=>[l(K,{modelValue:f.value,"onUpdate:modelValue":t[4]||(t[4]=e=>f.value=e),class:"mt-4","hide-details":""},{default:o(()=>[(m(!0),Y(he,null,be(r(X),e=>(m(),h(b,{key:e.value,value:e.value,label:e.title},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1},512)]),_:1}))}},qe={class:"text-h5 ml-4"},ca={__name:"QuarantineView",setup(J){const p=G(),V=W(),s=()=>{V.replace({name:"QuarantineView"})};return(w,B)=>(m(),Y("div",null,[k("div",qe,[_(c(w.$gettext("Quarantine"))+" ",1),r(p).query.requests==="1"?(m(),h(x,{key:0,color:"primary",variant:"tonal",class:"ml-2",closable:"","onClick:close":s},{default:o(()=>[_(c(w.$gettext("release requests")),1)]),_:1})):A("",!0)]),l(r(je))]))}};export{ca as default};
1
+ import{b as me,u as pe,n as fe,g as ve,h as n,z as ye,B as G,c as h,w as o,a as l,k as _,t as c,e as k,m as A,aQ as ge,f as r,v as N,l as Y,s as be,F as he,q as W,j as E,o as m}from"./index-YIGRKgNA.js";import{d as ke}from"./index-DuzUMVLM.js";import{u as _e}from"./amavis-Bx0pxvRn.js";import{_ as Ve}from"./ConfirmDialog-Dr0i2kqK.js";import{a as R}from"./amavis-Be87kCqw.js";import{c as $,V as M}from"./VAvatar-J563boKh.js";import{V as x}from"./VChip-DvxO74Mw.js";import{V as we}from"./VTextField-C9VUP7V9.js";import{V as I}from"./VMenu-DDmBlbM8.js";import{a as O,V as Se}from"./VCard-CJ2oGh_i.js";import{a as K,V as b}from"./VRadioGroup-WW8uMAv4.js";import{V as Ce,a as z}from"./forwardRefs-DPrLRqxP.js";import{V as Re}from"./VSelect-Cdh0qO5m.js";import{V as Me}from"./VDataTableServer-DP13Fhfa.js";import"./permissions-C33K6cJv.js";import"./parameters-DpVw-Zs4.js";import"./VToolbar-Cs-fVa4M.js";import"./tag-DV1_zOzl.js";import"./VProgressCircular-CtqQON49.js";import"./VSpacer-BWZq1PhD.js";/* empty css */import"./VDialog-CaQnQSDn.js";import"./VInput-Dpmea5z9.js";import"./VSelectionControl-BN-zQ3C6.js";import"./ssrBoot-CpJ-7WlH.js";import"./VCheckboxBtn-CLh3m66z.js";import"./VDataTable-CAT0QYJz.js";import"./VTable-DO7ofPSj.js";import"./filter-C_GJovn5.js";const xe={class:"d-flex my-4"},Be={class:"mr-2"},Ue=["title"],Te=["title"],je={__name:"QuarantineList",async setup(J){let p,V;const{$gettext:s}=me(),w=W(),B=G(),P=pe(),{displayNotification:S}=fe(),{manualLearningEnabled:D,learningRecipients:X}=([p,V]=ve(()=>_e()),p=await p,V(),p),U=n(1),T=n(10),f=n(null),Q=n(null),i=n(!1),F=n([]),v=n(""),j=n("both"),u=n([]),y=n([]),H=n(0),C=n("all"),Z=[{color:"",key:"all",label:"All"},{color:"success",key:"C",label:"Clean"},{color:"error",key:"S",label:"Spam"},{color:"warning",key:"Y",label:"Spammy"},{color:"error",key:"V",label:"Virus"},{color:"warning",key:"H",label:"Bad Header"},{color:"warning",key:"M",label:"Bad MIME"},{color:"warning",key:"B",label:"Banned"},{color:"warning",key:"O",label:"Over sized"},{color:"warning",key:"T",label:"MTA error"},{color:"",key:"U",label:"Unchecked"}],ee=[{title:"",key:"type",width:"5%"},{title:"",key:"status",width:"5%"},{title:s("Score"),key:"score"},{title:s("To"),key:"to_address"},{title:s("From"),key:"from_address"},{title:s("Subject"),key:"subject"},{title:s("Date"),key:"datetime"}];ye(()=>B.query.requests,()=>{d()});const ae=({item:a})=>({class:a.style}),te=()=>({class:"clickable"}),le=a=>["S","V"].includes(a)?"error":["Y","H","M","B","O","T"].includes(a)?"warning":a==="C"?"success":"",se=a=>a.status==="R"?"mdi-reply":a.status==="S"?"mdi-thumb-down-outline":a.status==="H"?"mdi-thumb-up-outline":"",oe=a=>a.status==="R"?s("Message released"):a.status==="S"?s("Message marked as spam"):a.status==="H"?s("Message marked as non-spam"):"",re=async({page:a,itemsPerPage:t,sortBy:e})=>{U.value=a,T.value=t,y.value=e,d()},d=ke(async()=>{var t;i.value=!0;const a={page:U.value||1,page_size:T.value||10};y.value&&y.value.length&&(a.ordering=y.value.map(e=>e.order!=="asc"?`-${e.key}`:e.key).join(",")),v.value!==""&&(a.search=v.value,a.criteria=j.value),C.value!=="all"&&(a.msgtype=C.value),((t=B.query)==null?void 0:t.requests)==="1"&&(a.viewrequests=1);try{const e=await R.getQuarantineContent(a);F.value=e.data.results,H.value=e.data.count,u.value=[]}finally{i.value=!1}},500),ne=(a,{item:t})=>{w.push({name:"QuarantineMessageView",params:{mailid:t.mailid,rcpt:t.to_address}})},q=()=>{const a={selection:[]};for(const t of u.value)a.selection.push({rcpt:t.to_address,mailid:t.mailid});return a},ie=async()=>{i.value=!0;const a=q();try{await R.deleteSelection(a),d(),S({msg:s("Selection deleted")})}finally{i.value=!1}},ue=async()=>{i.value=!0;const a=q();try{const t=await R.releaseSelection(a);d(),t.data.status==="pending"?S({msg:s("Release request sent")}):S({msg:s("Selection released")})}finally{i.value=!1}},L=async a=>{D.value&&P.authUser.role!==E.USER&&(f.value=P.authUser.role===E.SUPER_ADMIN?"global":"domain",await Q.value.open(s("Learning database"),s("Which database should be used for this learning:"),{width:600,noconfirm:!0})),i.value=!0;const t=q();t.type=a,f.value&&(t.database=f.value);try{await R.markMessageSelection(t),S({msg:s("Selection is being processed...")}),u.value=[]}finally{i.value=!1}},ce=async()=>{await L("spam")},de=async()=>{await L("ham")};return(a,t)=>(m(),h(O,{class:"mt-6"},{default:o(()=>[l(Me,{modelValue:u.value,"onUpdate:modelValue":t[3]||(t[3]=e=>u.value=e),headers:ee,items:F.value,search:v.value,loading:i.value,"items-length":H.value,page:U.value,"items-per-page":T.value,"item-value":"mailid",elevation:"0","show-select":"","return-object":"",density:"compact","sort-by":y.value,"row-props":ae,"cell-props":te,"onUpdate:options":re,"onClick:row":ne},{top:o(()=>[k("div",xe,[l(we,{modelValue:v.value,"onUpdate:modelValue":t[1]||(t[1]=e=>v.value=e),placeholder:r(s)("Search in messages"),variant:"outlined","single-line":"","hide-details":"",class:"flex-grow-0 w-33 mr-4",clearable:"",density:"compact","onClick:clear":r(d),onKeyup:ge(r(d),["enter"])},{"prepend-inner":o(()=>[l(M,{icon:"",variant:"flat",size:"small"},{default:o(()=>[l($,{icon:"mdi-magnify"}),l(I,{activator:"parent"},{default:o(()=>[l(O,null,{default:o(()=>[l(Se,null,{default:o(()=>[l(K,{modelValue:j.value,"onUpdate:modelValue":t[0]||(t[0]=e=>j.value=e)},{default:o(()=>[l(b,{label:r(s)("From address"),value:"from_addr"},null,8,["label"]),l(b,{label:r(s)("Subject"),value:"subject"},null,8,["label"]),l(b,{label:r(s)("To"),value:"to"},null,8,["label"]),l(b,{label:r(s)("both"),value:"both"},null,8,["label"])]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue","placeholder","onClick:clear","onKeyup"]),l(M,{class:"ml-2",color:"success",variant:"tonal",icon:"mdi-check",size:"small",disabled:u.value.length===0,title:r(s)("Release selection"),loading:i.value,onClick:ue},null,8,["disabled","title","loading"]),l(M,{class:"ml-2",color:"error",variant:"tonal",icon:"mdi-trash-can",size:"small",disabled:u.value.length===0,title:r(s)("Delete selection"),loading:i.value,onClick:ie},null,8,["disabled","title","loading"]),r(D)?(m(),h(M,{key:0,class:"ml-2",size:"small",variant:"tonal",icon:"",disabled:u.value.length===0},{default:o(()=>[l($,{icon:"mdi-cog"}),l(I,{activator:"parent"},{default:o(()=>[l(Ce,null,{default:o(()=>[l(z,{title:r(s)("Mark as spam"),onClick:ce},null,8,["title"]),l(z,{title:r(s)("Mark as not spam"),onClick:de},null,8,["title"])]),_:1})]),_:1})]),_:1},8,["disabled"])):A("",!0),l(Re,{modelValue:C.value,"onUpdate:modelValue":[t[2]||(t[2]=e=>C.value=e),r(d)],variant:"outlined",items:Z,class:"ml-2 flex-grow-0",density:"compact","item-title":"label","item-value":"key",chips:"","hide-details":""},{chip:o(({props:e,item:g})=>[k("span",Be,c(r(s)("Display")),1),l(x,N(e,{color:g.raw.color,text:g.raw.label,label:""}),null,16,["color","text"])]),item:o(({props:e,item:g})=>[l(z,N(e,{title:""}),{default:o(()=>[l(x,{color:g.raw.color,label:""},{default:o(()=>[_(c(g.raw.label),1)]),_:2},1032,["color"])]),_:2},1040)]),_:1},8,["modelValue","onUpdate:modelValue"])])]),"item.type":o(({item:e})=>[l(x,{color:le(e.type),size:"small",label:""},{default:o(()=>[_(c(e.type),1)]),_:2},1032,["color"])]),"item.status":o(({item:e})=>[e.status?(m(),h($,{key:0,icon:se(e),title:oe(e),size:"small"},null,8,["icon","title"])):A("",!0)]),"item.from_address":o(({item:e})=>[k("span",{title:e.from_address},c(a.$truncate(e.from_address,30)),9,Ue)]),"item.subject":o(({item:e})=>[k("span",{title:e.subject},c(a.$truncate(e.subject,30)),9,Te)]),"item.datetime":o(({item:e})=>[_(c(a.$date(e.datetime)),1)]),_:2},1032,["modelValue","items","search","loading","items-length","page","items-per-page","sort-by"]),l(r(Ve),{ref_key:"learningRecipientRef",ref:Q},{default:o(()=>[l(K,{modelValue:f.value,"onUpdate:modelValue":t[4]||(t[4]=e=>f.value=e),class:"mt-4","hide-details":""},{default:o(()=>[(m(!0),Y(he,null,be(r(X),e=>(m(),h(b,{key:e.value,value:e.value,label:e.title},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1},512)]),_:1}))}},qe={class:"text-h5 ml-4"},ca={__name:"QuarantineView",setup(J){const p=G(),V=W(),s=()=>{V.replace({name:"QuarantineView"})};return(w,B)=>(m(),Y("div",null,[k("div",qe,[_(c(w.$gettext("Quarantine"))+" ",1),r(p).query.requests==="1"?(m(),h(x,{key:0,color:"primary",variant:"tonal",class:"ml-2",closable:"","onClick:close":s},{default:o(()=>[_(c(w.$gettext("release requests")),1)]),_:1})):A("",!0)]),l(r(je))]))}};export{ca as default};
@@ -0,0 +1 @@
1
+ import{h as e,c as a,f as p,B as l,o as n}from"./index-YIGRKgNA.js";import{_ as s}from"./ComposeEmailForm-B-BP3lzX.js";import{a as u}from"./webmail-DRyN8JIK.js";import"./index-DuzUMVLM.js";import"./VForm-BwTUBf4u.js";import"./tag-DV1_zOzl.js";import"./VInput-Dpmea5z9.js";import"./VAvatar-J563boKh.js";import"./VProgressCircular-CtqQON49.js";import"./forwardRefs-DPrLRqxP.js";import"./ssrBoot-CpJ-7WlH.js";import"./VCard-CJ2oGh_i.js";import"./VFileInput-z44hJIWr.js";import"./VTextField-C9VUP7V9.js";import"./VChip-DvxO74Mw.js";import"./VTable-DO7ofPSj.js";import"./VSpacer-BWZq1PhD.js";/* empty css */import"./HtmlEditor-Zn0wjDog.js";import"./VTextarea-B28SmJ2v.js";import"./contacts-Dx240BT8.js";import"./VToolbar-Cs-fVa4M.js";import"./VRow-CAbOSEHS.js";import"./VSelect-Cdh0qO5m.js";import"./VMenu-DDmBlbM8.js";import"./VCheckboxBtn-CLh3m66z.js";import"./VSelectionControl-BN-zQ3C6.js";import"./filter-C_GJovn5.js";import"./VDialog-CaQnQSDn.js";const J={__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{J as default};
@@ -0,0 +1 @@
1
+ import{r as p,V as i}from"./VForm-BwTUBf4u.js";import{V as _}from"./VTextField-C9VUP7V9.js";import{i as f,h as V,c as v,o as l,w as x,l as o,F as s,s as F,e as y,a as b,t as k,f as h}from"./index-YIGRKgNA.js";const B={class:"m-label"},U={__name:"ResourcesForm",props:{modelValue:{type:Object,default:null}},setup(n,{expose:u}){const m=n,t=f(()=>m.modelValue),r=V();function c(){return t.value.map(a=>({name:a.name,max_value:a.max_value}))}return u({vFormRef:r,getPayload:c}),(a,g)=>(l(),v(i,{ref_key:"vFormRef",ref:r},{default:x(()=>[(l(!0),o(s,null,F(t.value,e=>(l(),o(s,{key:e.name},[y("label",B,k(e.label),1),b(_,{modelValue:e.max_value,"onUpdate:modelValue":d=>e.max_value=d,type:"number",variant:"outlined",dense:"",rules:[h(p).required]},null,8,["modelValue","onUpdate:modelValue","rules"])],64))),128))]),_:1},512))}};export{U as _};
@@ -0,0 +1 @@
1
+ import{_ as p}from"./ConnectedLayout-irTI2ekJ.js";import{c as m,w as r,o as i,k as o}from"./index-YIGRKgNA.js";import"./theme-BGzdVPko.js";import"./VContainer-L2EoH3dT.js";/* empty css */import"./tag-DV1_zOzl.js";import"./VApp-C74A9rX5.js";import"./layout-BM4C5b2r.js";import"./ssrBoot-CpJ-7WlH.js";import"./logos-CboXciB_.js";import"./layout.store-CCOp6tv6.js";import"./VAvatar-J563boKh.js";import"./VProgressCircular-CtqQON49.js";import"./forwardRefs-DPrLRqxP.js";import"./VMenu-DDmBlbM8.js";import"./global.store-CNChIxQL.js";import"./VBadge-CtEsXuih.js";import"./VCard-CJ2oGh_i.js";import"./VRow-CAbOSEHS.js";import"./VSheet-9RDZpWCf.js";const V={__name:"SelfServiceLayout",setup(a){return(e,t)=>(i(),m(p,null,{navbar:r(()=>t[0]||(t[0]=[o(" ")])),topbar:r(()=>t[1]||(t[1]=[o(" ")])),_:1}))}};export{V as default};