modoboa 2.6.3__py3-none-any.whl → 2.6.4__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 (252) hide show
  1. modoboa/calendars/backends/caldav_.py +3 -1
  2. modoboa/core/checks.py +5 -0
  3. modoboa/core/tests/test_checks.py +27 -0
  4. modoboa/frontend_dist/assets/{AccountAliasForm-OvFAP6Ru.js → AccountAliasForm-tLHotdIR.js} +1 -1
  5. modoboa/frontend_dist/assets/AccountEditView-DnQIIg47.js +1 -0
  6. modoboa/frontend_dist/assets/AccountLayout-B2HptJzY.js +1 -0
  7. modoboa/frontend_dist/assets/{AccountPasswordSubForm-XZN7PcjO.js → AccountPasswordSubForm-DpADntAL.js} +1 -1
  8. modoboa/frontend_dist/assets/AccountView-CJBGh9Oe.js +1 -0
  9. modoboa/frontend_dist/assets/{AddressBook-xlb9-9-o.js → AddressBook-CrFqzlzZ.js} +1 -1
  10. modoboa/frontend_dist/assets/{AdminLayout-BQfhhYgv.js → AdminLayout-BbCt7YxX.js} +1 -1
  11. modoboa/frontend_dist/assets/AlarmsView-CIlt_IKQ.js +1 -0
  12. modoboa/frontend_dist/assets/AliasEditView-n75NEN_s.js +1 -0
  13. modoboa/frontend_dist/assets/{AliasRecipientForm-_pUaKKG_.js → AliasRecipientForm-jjj5yJJw.js} +1 -1
  14. modoboa/frontend_dist/assets/{AliasView-Da4mvH53.js → AliasView-DFIvPeIm.js} +1 -1
  15. modoboa/frontend_dist/assets/{AuditTrailView-BfLVvAwj.js → AuditTrailView-sWnED3E9.js} +1 -1
  16. modoboa/frontend_dist/assets/CalendarView-DSCBIvef.js +1 -0
  17. modoboa/frontend_dist/assets/{ChoiceField-BpSW5-Ay.js → ChoiceField-RDT6XcnX.js} +1 -1
  18. modoboa/frontend_dist/assets/ComposeEmailForm-D3yUbBJX.css +1 -0
  19. modoboa/frontend_dist/assets/ComposeEmailForm-G3sXQAwI.js +1 -0
  20. modoboa/frontend_dist/assets/ComposeEmailView-Ce1CtFjD.js +1 -0
  21. modoboa/frontend_dist/assets/{ConfirmDialog-BemItW2F.js → ConfirmDialog-Du7aqKbR.js} +1 -1
  22. modoboa/frontend_dist/assets/ConnectedLayout-BHWaBAzH.js +1 -0
  23. modoboa/frontend_dist/assets/ConnectedLayout-C6HNXWkp.css +1 -0
  24. modoboa/frontend_dist/assets/{CreationForm-B00QE2E0.js → CreationForm-CjtILq0_.js} +1 -1
  25. modoboa/frontend_dist/assets/{CreationForm-HaiQhqwK.css → CreationForm-NOzzyspA.css} +1 -1
  26. modoboa/frontend_dist/assets/{DashboardView-CZyZayos.js → DashboardView-DFNwusDZ.js} +1 -1
  27. modoboa/frontend_dist/assets/DomainAdminList-BjtfbhRj.js +1 -0
  28. modoboa/frontend_dist/assets/{DomainEditView-CMsF-ytQ.js → DomainEditView-Cq5Ea4RW.js} +1 -1
  29. modoboa/frontend_dist/assets/{DomainTransportForm-BUDOfXiX.js → DomainTransportForm-DAXJGNLA.js} +1 -1
  30. modoboa/frontend_dist/assets/DomainView-BfpK7U14.js +4 -0
  31. modoboa/frontend_dist/assets/DomainsView-CYxLy-3Y.js +1 -0
  32. modoboa/frontend_dist/assets/{EmailField-BXU27oIO.js → EmailField-DmPc4pyP.js} +1 -1
  33. modoboa/frontend_dist/assets/{EmailView-WHGLT3Ne.js → EmailView-BE3vYZtJ.js} +1 -1
  34. modoboa/frontend_dist/assets/EmptyLayout-DMwKNHfI.js +1 -0
  35. modoboa/frontend_dist/assets/FiltersView-Dps3_fAh.js +1 -0
  36. modoboa/frontend_dist/assets/ForwardEmailView-C0I00eXf.js +1 -0
  37. modoboa/frontend_dist/assets/HtmlEditor-D753fIAJ.js +140 -0
  38. modoboa/frontend_dist/assets/{IdentitiesView-Cl2lbfkM.css → IdentitiesView-C93He_db.css} +1 -1
  39. modoboa/frontend_dist/assets/IdentitiesView-CoGBVhZx.js +1 -0
  40. modoboa/frontend_dist/assets/{InformationView-DF80M5Z2.js → InformationView-eB2ayeLD.js} +1 -1
  41. modoboa/frontend_dist/assets/{LoadingData-Dcu-PCpp.js → LoadingData-Tm56XNwj.js} +1 -1
  42. modoboa/frontend_dist/assets/{LoginCallbackView-D4hN9u_5.js → LoginCallbackView-DjCHUgz5.js} +1 -1
  43. modoboa/frontend_dist/assets/{LoginView-1M33LHpJ.js → LoginView-D0r4XBEl.js} +1 -1
  44. modoboa/frontend_dist/assets/MailboxView-DIVABvk5.css +1 -0
  45. modoboa/frontend_dist/assets/MailboxView-DNokO2WZ.js +5 -0
  46. modoboa/frontend_dist/assets/{MenuItems-CpOwNJeC.js → MenuItems-dl38msRA.js} +1 -1
  47. modoboa/frontend_dist/assets/{MessageView-DODItZwB.js → MessageView-BWh9BqzS.js} +1 -1
  48. modoboa/frontend_dist/assets/{MessagesView-CCYdnuSv.js → MessagesView-BZ7NUOwo.js} +1 -1
  49. modoboa/frontend_dist/assets/MigrationsView-DcOVgmcH.js +1 -0
  50. modoboa/frontend_dist/assets/{ParametersForm-CWxNQ8rG.js → ParametersForm-y02-GM0r.js} +1 -1
  51. modoboa/frontend_dist/assets/ParametersView-B6abt-LH.js +1 -0
  52. modoboa/frontend_dist/assets/ParametersView-v0YS6WU4.js +1 -0
  53. modoboa/frontend_dist/assets/{ProviderEditView-DxGMMxi1.js → ProviderEditView-BaL9mKxJ.js} +1 -1
  54. modoboa/frontend_dist/assets/ProviderGeneralForm-eoHMDO5v.js +1 -0
  55. modoboa/frontend_dist/assets/{ProvidersView-YAYrezMm.js → ProvidersView-Zu-G35u7.js} +1 -1
  56. modoboa/frontend_dist/assets/QuarantineLayout-BHiiksnP.js +1 -0
  57. modoboa/frontend_dist/assets/{QuarantineView-CZewBT4b.js → QuarantineView-BOXSobRz.js} +1 -1
  58. modoboa/frontend_dist/assets/ReplyEmailView-JmSiNWPy.js +1 -0
  59. modoboa/frontend_dist/assets/{ResourcesForm-CD3wObzE.js → ResourcesForm-D0YBapCG.js} +1 -1
  60. modoboa/frontend_dist/assets/SelfServiceLayout-DUmQzUDk.js +1 -0
  61. modoboa/frontend_dist/assets/SettingsView-DMuaKagM.js +6 -0
  62. modoboa/frontend_dist/assets/{StatisticsView-BxSjiD65.js → StatisticsView-CyY_CNcI.js} +1 -1
  63. modoboa/frontend_dist/assets/TimeSerieChart-BTDBH33K.js +1 -0
  64. modoboa/frontend_dist/assets/TimeSerieChart-C3XHmlRd.css +1 -0
  65. modoboa/frontend_dist/assets/UserLayout-DwxcQr4L.js +1 -0
  66. modoboa/frontend_dist/assets/{VAlert-iGJ3gOzk.css → VAlert-Bkuw9MFB.css} +1 -1
  67. modoboa/frontend_dist/assets/VAlert-CNys_LUS.js +1 -0
  68. modoboa/frontend_dist/assets/VApp-B0vRc3-6.js +1 -0
  69. modoboa/frontend_dist/assets/VApp-C9NK-Gu6.css +1 -0
  70. modoboa/frontend_dist/assets/VAutocomplete-Huaz_-hf.js +1 -0
  71. modoboa/frontend_dist/assets/VAutocomplete-hzGuLlUI.css +1 -0
  72. modoboa/frontend_dist/assets/VAvatar-BPhnln71.css +1 -0
  73. modoboa/frontend_dist/assets/VAvatar-JdJfoK0C.js +1 -0
  74. modoboa/frontend_dist/assets/{VBadge-BQrRJ9S0.css → VBadge-Bqx6XeRo.css} +1 -1
  75. modoboa/frontend_dist/assets/VBadge-Cg5iu5LG.js +1 -0
  76. modoboa/frontend_dist/assets/{VCard-BNvk7mV7.css → VCard-BdSLQNRY.css} +1 -1
  77. modoboa/frontend_dist/assets/VCard-BoH6kjPa.js +1 -0
  78. modoboa/frontend_dist/assets/VCheckbox-CCLOJFKF.js +1 -0
  79. modoboa/frontend_dist/assets/{VCheckboxBtn-p4bo2BTE.js → VCheckboxBtn-Ccl786Rg.js} +1 -1
  80. modoboa/frontend_dist/assets/VColorPicker-452uc3tY.js +1 -0
  81. modoboa/frontend_dist/assets/VColorPicker-B_lVDaYR.css +1 -0
  82. modoboa/frontend_dist/assets/{VContainer-CmyIOuWp.js → VContainer-DKMcKasC.js} +1 -1
  83. modoboa/frontend_dist/assets/VDataTable-BkLLfcQK.js +1 -0
  84. modoboa/frontend_dist/assets/VDataTable-CLcLRj9B.css +1 -0
  85. modoboa/frontend_dist/assets/VDataTableServer-B_6fWBA3.js +1 -0
  86. modoboa/frontend_dist/assets/VDataTableVirtual-Ike7oqcC.js +1 -0
  87. modoboa/frontend_dist/assets/VDialog-DIUeAIpw.js +1 -0
  88. modoboa/frontend_dist/assets/{VExpansionPanels-CBqUBAh-.js → VExpansionPanels-BeMgiS7A.js} +1 -1
  89. modoboa/frontend_dist/assets/VExpansionPanels-Dyw0hWW-.css +1 -0
  90. modoboa/frontend_dist/assets/VFileInput-Dvj95FL5.js +1 -0
  91. modoboa/frontend_dist/assets/{VFileInput-VtUg4zpy.css → VFileInput-Dwzvf-gD.css} +1 -1
  92. modoboa/frontend_dist/assets/{VForm-CxFPdkZa.js → VForm-DkphQD3e.js} +1 -1
  93. modoboa/frontend_dist/assets/VGrid-GYROgRMo.css +1 -0
  94. modoboa/frontend_dist/assets/VInput-CbqehdOu.js +1 -0
  95. modoboa/frontend_dist/assets/VMenu-B6SCtOwT.js +1 -0
  96. modoboa/frontend_dist/assets/VMenu-BEipA1lw.css +1 -0
  97. modoboa/frontend_dist/assets/VPicker-BUx70Wjg.js +1 -0
  98. modoboa/frontend_dist/assets/VPicker-ClSXs6kv.css +1 -0
  99. modoboa/frontend_dist/assets/VProgressCircular-C6u34DRJ.css +1 -0
  100. modoboa/frontend_dist/assets/VProgressCircular-DTDGzl2O.js +1 -0
  101. modoboa/frontend_dist/assets/VRadioGroup-CS9ULZ1c.js +1 -0
  102. modoboa/frontend_dist/assets/{VRow-CVWfiMs5.js → VRow-CuVZGqBj.js} +1 -1
  103. modoboa/frontend_dist/assets/VSelect-D5IXDPEX.js +1 -0
  104. modoboa/frontend_dist/assets/VSelect-DQzySRN1.css +1 -0
  105. modoboa/frontend_dist/assets/VSelectionControl-uKY9Zull.js +1 -0
  106. modoboa/frontend_dist/assets/VSheet-HeHw6g5_.js +1 -0
  107. modoboa/frontend_dist/assets/VSpacer-BUxSSJbH.js +1 -0
  108. modoboa/frontend_dist/assets/{VSwitch-Mm7Rd7At.css → VSwitch-C6REVr_Y.css} +1 -1
  109. modoboa/frontend_dist/assets/VSwitch-Dh_dserW.js +1 -0
  110. modoboa/frontend_dist/assets/VTable-BsI6FsWH.css +1 -0
  111. modoboa/frontend_dist/assets/VTable-gDsAUSLX.js +1 -0
  112. modoboa/frontend_dist/assets/VTabs-5XSICLQP.js +1 -0
  113. modoboa/frontend_dist/assets/VTabs-NzpINroH.css +1 -0
  114. modoboa/frontend_dist/assets/VTextField-Cow3HZvI.css +1 -0
  115. modoboa/frontend_dist/assets/VTextField-QXQFhKxm.js +1 -0
  116. modoboa/frontend_dist/assets/VTextarea-Bdy4UKmV.js +1 -0
  117. modoboa/frontend_dist/assets/VTextarea-DyGjqrlm.css +1 -0
  118. modoboa/frontend_dist/assets/VToolbar-CB2GrZpA.css +1 -0
  119. modoboa/frontend_dist/assets/VToolbar-CyrYSqJZ.js +1 -0
  120. modoboa/frontend_dist/assets/VWindowItem-DqNaT6b1.css +1 -0
  121. modoboa/frontend_dist/assets/VWindowItem-kZpArwK1.js +1 -0
  122. modoboa/frontend_dist/assets/WebmailLayout-BzW0LWYp.css +1 -0
  123. modoboa/frontend_dist/assets/WebmailLayout-CNUHODnw.js +1 -0
  124. modoboa/frontend_dist/assets/{accounts-CaYgxMST.js → accounts-DqbBlaLK.js} +1 -1
  125. modoboa/frontend_dist/assets/{admin-BZpOSErf.js → admin-D36m_nXq.js} +1 -1
  126. modoboa/frontend_dist/assets/{aliases-CbIEbmJ9.js → aliases-BtyF8GC8.js} +1 -1
  127. modoboa/frontend_dist/assets/{amavis-BUExu2Ci.js → amavis-B4QhM5Fa.js} +1 -1
  128. modoboa/frontend_dist/assets/{amavis-DrKC7POz.js → amavis-DySmsCJQ.js} +1 -1
  129. modoboa/frontend_dist/assets/{contacts-BszP28I9.js → contacts-Df8ptuMn.js} +1 -1
  130. modoboa/frontend_dist/assets/{domains-DGdr9Equ.js → domains-CSxtTvUh.js} +1 -1
  131. modoboa/frontend_dist/assets/{domains.store-W5AiCN3q.js → domains.store-D4ZqCQ-O.js} +1 -1
  132. modoboa/frontend_dist/assets/filter-DHKXX97M.js +1 -0
  133. modoboa/frontend_dist/assets/{global.store-xmZ6sXxZ.js → global.store-DYMmGKpn.js} +1 -1
  134. modoboa/frontend_dist/assets/{importExport-DMPLMrzl.js → importExport-C-adpHJX.js} +1 -1
  135. modoboa/frontend_dist/assets/index-B1bntsLR.js +995 -0
  136. modoboa/frontend_dist/assets/{index-B1bJH8Ti.css → index-B9q1vO3K.css} +1 -1
  137. modoboa/frontend_dist/assets/index-Bp9Fb67E.js +1 -0
  138. modoboa/frontend_dist/assets/{language.store-DuvIgs5v.js → language.store-_-zrrEiS.js} +1 -1
  139. modoboa/frontend_dist/assets/languages-CxjoT69j.js +1 -0
  140. modoboa/frontend_dist/assets/layout-CjSP_k58.js +1 -0
  141. modoboa/frontend_dist/assets/{layout.store-oWyirLgk.js → layout.store-CF5WRevH.js} +1 -1
  142. modoboa/frontend_dist/assets/{logos-DYp82smF.js → logos-95XYS6uH.js} +1 -1
  143. modoboa/frontend_dist/assets/{logs-B8GaGVAK.js → logs-CyU_PIDh.js} +1 -1
  144. modoboa/frontend_dist/assets/{parameters-CxHnQU2I.js → parameters-BxAXBXU1.js} +1 -1
  145. modoboa/frontend_dist/assets/{parameters.store-VA_AUeEJ.js → parameters.store-CATOSoQZ.js} +1 -1
  146. modoboa/frontend_dist/assets/{permissions-TImOfY3I.js → permissions-cSkGqV3M.js} +1 -1
  147. modoboa/frontend_dist/assets/{ssrBoot-B5vxBC28.js → ssrBoot-05WtbG6H.js} +1 -1
  148. modoboa/frontend_dist/assets/{tag-D-paBiFC.js → tag-BmV84V2s.js} +1 -1
  149. modoboa/frontend_dist/assets/{theme-Tvpj701M.js → theme-myV4ekXo.js} +1 -1
  150. modoboa/frontend_dist/assets/transports-ChdHV5hX.js +1 -0
  151. modoboa/frontend_dist/assets/webmail-B7MNMkv_.js +1 -0
  152. modoboa/frontend_dist/assets/webmail.store-Cm-h6hhE.js +1 -0
  153. modoboa/frontend_dist/index.html +2 -2
  154. modoboa/sievefilters/api/v2/tests.py +6 -0
  155. modoboa/sievefilters/api/v2/viewsets.py +10 -0
  156. modoboa/webmail/serializers.py +2 -1
  157. modoboa/webmail/tests/test_viewsets.py +16 -4
  158. modoboa/webmail/viewsets.py +17 -3
  159. {modoboa-2.6.3.dist-info → modoboa-2.6.4.dist-info}/METADATA +2 -2
  160. {modoboa-2.6.3.dist-info → modoboa-2.6.4.dist-info}/RECORD +165 -164
  161. modoboa/frontend_dist/assets/AccountEditView-N9Rsx1Lu.js +0 -1
  162. modoboa/frontend_dist/assets/AccountLayout-y-oYLez4.js +0 -1
  163. modoboa/frontend_dist/assets/AccountView-CGjtYjdN.js +0 -1
  164. modoboa/frontend_dist/assets/AlarmsView-CWISEf0x.js +0 -1
  165. modoboa/frontend_dist/assets/AliasEditView-BojxR0y0.js +0 -1
  166. modoboa/frontend_dist/assets/CalendarView-BiD8oiJQ.js +0 -1
  167. modoboa/frontend_dist/assets/ComposeEmailForm-DHFthaP6.css +0 -1
  168. modoboa/frontend_dist/assets/ComposeEmailForm-THBK5DPz.js +0 -1
  169. modoboa/frontend_dist/assets/ComposeEmailView-Byb6o1lF.js +0 -1
  170. modoboa/frontend_dist/assets/ConnectedLayout-Bxh21hcH.css +0 -1
  171. modoboa/frontend_dist/assets/ConnectedLayout-CuyGO8mE.js +0 -1
  172. modoboa/frontend_dist/assets/DomainAdminList-BW50F_7s.js +0 -1
  173. modoboa/frontend_dist/assets/DomainView-HFg7eBrA.js +0 -5
  174. modoboa/frontend_dist/assets/DomainsView-DSIdADod.js +0 -1
  175. modoboa/frontend_dist/assets/EmptyLayout-9_hUsyI4.js +0 -1
  176. modoboa/frontend_dist/assets/FiltersView-DxwCWP6V.js +0 -1
  177. modoboa/frontend_dist/assets/ForwardEmailView-R2VNw89Y.js +0 -1
  178. modoboa/frontend_dist/assets/HtmlEditor-9PKspQnj.js +0 -93
  179. modoboa/frontend_dist/assets/IdentitiesView-BiBhYfLG.js +0 -1
  180. modoboa/frontend_dist/assets/MailboxView-7GDx4hP8.js +0 -1
  181. modoboa/frontend_dist/assets/MailboxView-CfStlWhk.css +0 -1
  182. modoboa/frontend_dist/assets/MigrationsView-D8zvt5Gg.js +0 -1
  183. modoboa/frontend_dist/assets/ParametersView-B4LtgRrm.js +0 -1
  184. modoboa/frontend_dist/assets/ParametersView-BEM87Op8.js +0 -1
  185. modoboa/frontend_dist/assets/ProviderGeneralForm-DqVUshAw.js +0 -1
  186. modoboa/frontend_dist/assets/QuarantineLayout-Bj2STsUo.js +0 -1
  187. modoboa/frontend_dist/assets/ReplyEmailView-C-L78-Uh.js +0 -1
  188. modoboa/frontend_dist/assets/SelfServiceLayout-CFzaGLsg.js +0 -1
  189. modoboa/frontend_dist/assets/SettingsView-C7_cp9nZ.js +0 -6
  190. modoboa/frontend_dist/assets/TimeSerieChart-BY4l0TOt.js +0 -1
  191. modoboa/frontend_dist/assets/TimeSerieChart-Dn6Wznn8.css +0 -1
  192. modoboa/frontend_dist/assets/UserLayout-ByBCLOr-.js +0 -1
  193. modoboa/frontend_dist/assets/VAlert-Ck0PurTo.js +0 -1
  194. modoboa/frontend_dist/assets/VApp-CSICh40V.js +0 -1
  195. modoboa/frontend_dist/assets/VApp-DwhR0sAF.css +0 -1
  196. modoboa/frontend_dist/assets/VAutocomplete-BdsSHywe.js +0 -1
  197. modoboa/frontend_dist/assets/VAutocomplete-CPd3yAvV.css +0 -1
  198. modoboa/frontend_dist/assets/VAvatar-BKSHKr1K.js +0 -1
  199. modoboa/frontend_dist/assets/VAvatar-DXG1YGB5.css +0 -1
  200. modoboa/frontend_dist/assets/VBadge-DvuthTvS.js +0 -1
  201. modoboa/frontend_dist/assets/VCard-B7MvPr5E.js +0 -1
  202. modoboa/frontend_dist/assets/VCheckbox-er0bxYP_.js +0 -1
  203. modoboa/frontend_dist/assets/VColorPicker-C5_3l312.css +0 -1
  204. modoboa/frontend_dist/assets/VColorPicker-Dnoyj5rl.js +0 -1
  205. modoboa/frontend_dist/assets/VDataTable-CJyX7uj5.css +0 -1
  206. modoboa/frontend_dist/assets/VDataTable-uO4iY3PI.js +0 -1
  207. modoboa/frontend_dist/assets/VDataTableServer-LfLFgxCE.js +0 -1
  208. modoboa/frontend_dist/assets/VDataTableVirtual-C_aJRTho.js +0 -1
  209. modoboa/frontend_dist/assets/VDialog-ByBq-y2_.js +0 -1
  210. modoboa/frontend_dist/assets/VExpansionPanels-RsCANmDP.css +0 -1
  211. modoboa/frontend_dist/assets/VFileInput-CYUvB_Lr.js +0 -1
  212. modoboa/frontend_dist/assets/VGrid-Cb7FdSrp.css +0 -1
  213. modoboa/frontend_dist/assets/VInput-quQSdtEy.js +0 -1
  214. modoboa/frontend_dist/assets/VMenu--sryJ9Uc.js +0 -1
  215. modoboa/frontend_dist/assets/VMenu-5VuRw-HA.css +0 -1
  216. modoboa/frontend_dist/assets/VPicker-C6hgT7tI.js +0 -1
  217. modoboa/frontend_dist/assets/VPicker-CfsXFhHv.css +0 -1
  218. modoboa/frontend_dist/assets/VProgressCircular-BPJdTVu4.css +0 -1
  219. modoboa/frontend_dist/assets/VProgressCircular-DN4UW8ON.js +0 -1
  220. modoboa/frontend_dist/assets/VRadioGroup-G5s53Jnf.js +0 -1
  221. modoboa/frontend_dist/assets/VSelect-Dvkl50dw.css +0 -1
  222. modoboa/frontend_dist/assets/VSelect-Okzuwz-S.js +0 -1
  223. modoboa/frontend_dist/assets/VSelectionControl-DMlq6-TE.js +0 -1
  224. modoboa/frontend_dist/assets/VSheet-iS_sxEl7.js +0 -1
  225. modoboa/frontend_dist/assets/VSpacer-yH183XvN.js +0 -1
  226. modoboa/frontend_dist/assets/VSwitch-BYsITk7O.js +0 -1
  227. modoboa/frontend_dist/assets/VTable-C1FqhNBY.js +0 -1
  228. modoboa/frontend_dist/assets/VTable-CHRVGI94.css +0 -1
  229. modoboa/frontend_dist/assets/VTabs-Bv8FUb0o.css +0 -1
  230. modoboa/frontend_dist/assets/VTabs-DMJmfYTo.js +0 -1
  231. modoboa/frontend_dist/assets/VTextField-BzBVKKob.css +0 -1
  232. modoboa/frontend_dist/assets/VTextField-fWt9fUJr.js +0 -1
  233. modoboa/frontend_dist/assets/VTextarea-BTR7f0gW.css +0 -1
  234. modoboa/frontend_dist/assets/VTextarea-CVJNAf81.js +0 -1
  235. modoboa/frontend_dist/assets/VToolbar-BxjAEfSk.css +0 -1
  236. modoboa/frontend_dist/assets/VToolbar-DYf0Nubr.js +0 -1
  237. modoboa/frontend_dist/assets/VWindowItem-CWBhiE_Y.css +0 -1
  238. modoboa/frontend_dist/assets/VWindowItem-mmufRveK.js +0 -1
  239. modoboa/frontend_dist/assets/WebmailLayout-BmMZ58iv.js +0 -1
  240. modoboa/frontend_dist/assets/WebmailLayout-UlftFiiT.css +0 -1
  241. modoboa/frontend_dist/assets/filter-BH0Tmqu3.js +0 -1
  242. modoboa/frontend_dist/assets/index-DuzUMVLM.js +0 -1
  243. modoboa/frontend_dist/assets/index-WQ41F5VK.js +0 -982
  244. modoboa/frontend_dist/assets/languages-CE73-P-v.js +0 -1
  245. modoboa/frontend_dist/assets/layout-eXe9ZQ1u.js +0 -1
  246. modoboa/frontend_dist/assets/transports-DmREsCgU.js +0 -1
  247. modoboa/frontend_dist/assets/webmail-BsviLQXI.js +0 -1
  248. {modoboa-2.6.3.data → modoboa-2.6.4.data}/scripts/modoboa-admin.py +0 -0
  249. {modoboa-2.6.3.dist-info → modoboa-2.6.4.dist-info}/WHEEL +0 -0
  250. {modoboa-2.6.3.dist-info → modoboa-2.6.4.dist-info}/entry_points.txt +0 -0
  251. {modoboa-2.6.3.dist-info → modoboa-2.6.4.dist-info}/licenses/LICENSE +0 -0
  252. {modoboa-2.6.3.dist-info → modoboa-2.6.4.dist-info}/top_level.txt +0 -0
@@ -1 +1 @@
1
- import{A as te,q as O,b as G,n as H,h as w,c as g,o as i,w as s,a,f as m,d as le,Z as oe,z as se,B as ne,a0 as F,l as p,L as ie,aj as re,e as d,m as L,t as v,k as S,F as _,s as R,X as ue,Y as de,v as I}from"./index-WQ41F5VK.js";import{a as C}from"./webmail-BsviLQXI.js";import{c as me}from"./contacts-BszP28I9.js";import{a as D,b as q,V as U}from"./VMenu--sryJ9Uc.js";import{V as f,c as A}from"./VAvatar-BKSHKr1K.js";import{a as W,V as ce,b as pe}from"./VCard-B7MvPr5E.js";import{V as ve}from"./VToolbar-DYf0Nubr.js";import{V as P}from"./VSpacer-yH183XvN.js";import{V as fe}from"./VDialog-ByBq-y2_.js";import"./tag-D-paBiFC.js";import"./ssrBoot-B5vxBC28.js";import"./VProgressCircular-DN4UW8ON.js";/* empty css */const B={__name:"ContactCard",props:{modelValue:{},modelModifiers:{}},emits:["update:modelValue"],setup(N){const l=te(N,"modelValue"),E=O(),{$gettext:M}=G(),{displayNotification:n}=H(),c=w(!1),x=async()=>{const V={emails:[{address:l.value.address,type:"other"}]};l.value.name?V.display_name=l.value.name:V.display_name=l.value.address,c.value=!0;let h;try{h=await me.createContact(V),l.value.contact_id=h.data.pk}finally{c.value=!1}n({msg:M("Contact added to address book")})},o=()=>{E.push({name:"ContactList"})};return(V,h)=>(i(),g(W,{"min-width":"300"},{default:s(()=>[a(D,null,{default:s(()=>[a(q,{subtitle:l.value.name?l.value.address:"",title:l.value.name||l.value.address},{append:s(()=>[l.value.contact_id?(i(),g(f,{key:1,icon:"mdi-pencil",variant:"text",loading:c.value,title:m(M)("Update contact"),onClick:o},null,8,["loading","title"])):(i(),g(f,{key:0,color:"secondary",icon:"mdi-card-account-mail-outline",variant:"text",loading:c.value,title:m(M)("Add to contacts"),onClick:x},null,8,["loading","title"]))]),_:1},8,["subtitle","title"])]),_:1})]),_:1}))}},ye={class:"bg-white rounded-lg pa-4 position-relative h-100"},ke={class:"d-flex mt-2"},ge={class:"text-grey text-body-2"},Ve={class:"text-grey"},be={class:"mt-2 text-grey"},_e={key:0},we={key:0,class:"mt-2"},xe=["onClick"],De={__name:"EmailView",setup(N){const{$gettext:l}=G(),{displayNotification:E,reloadMailboxCounters:M}=H(),n=ne(),c=O(),x=w(!1),o=w(null),V=w(null),h=w(null),T=w(!1),$=w(!1),y=w(!1);le(()=>{window.addEventListener("resize",z),j()}),oe(()=>{window.removeEventListener("resize",z)}),se(x,()=>{j()});const X=()=>{c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}})},z=()=>{const u=document.querySelector("iframe"),e=h.value.getBoundingClientRect();u.style.top=`${e.bottom}px`,u.style.width=`${e.width-24}px`,u.style.height=`${window.innerHeight-e.bottom-32}px`},j=()=>{const u={dformat:"html",links:x.value?"1":"0"};C.getEmailContent(n.query.mailbox,n.query.mailid,u).then(e=>{M(),o.value=e.data,F(()=>{const k=document.createElement("iframe");k.classList.add("email-frame"),document.querySelector("iframe").replaceWith(k);const t=k.contentDocument;t.write(o.value.body),t.close(),T.value=!0,F(z)})})},Y=(u,e)=>{C.getEmailAttachment(n.query.mailbox,n.query.mailid,e).then(k=>{const t=new Blob([k.data],{type:k.headers["Content-Type"]}),r=document.createElement("a");r.href=URL.createObjectURL(t),r.download=u,r.click(),URL.revokeObjectURL(r.href)})},Z=()=>{y.value=!0,C.deleteSelection(n.query.mailbox,[n.query.mailid]).then(()=>{y.value=!1,c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}}),E({msg:l("Message deleted")})})},K=()=>{y.value=!0,C.markSelectionAsJunk(n.query.mailbox,[n.query.mailid]).then(()=>{y.value=!1,c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}}),E({msg:l("Message marked as junk")})})},Q=()=>{y.value=!0,C.markSelectionAsNotJunk(n.query.mailbox,[n.query.mailid]).then(()=>{y.value=!1,c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}}),E({msg:l("Message marked as not junk")})})},ee=async()=>{if(!V.value){const u=await C.getEmailSource(n.query.mailbox,n.query.mailid);V.value=u.data.source}$.value=!0},J=u=>{const e={...n.query};u&&(e.all=u),c.push({name:"ReplyEmailView",query:e})},ae=()=>{c.push({name:"ForwardEmailView",query:n.query})};return(u,e)=>{var k;return i(),p(_,null,[ie(d("div",ye,[a(ve,{color:"white"},{default:s(()=>[a(f,{icon:"mdi-arrow-left",size:"small",variant:"flat",onClick:X}),a(f,{color:"primary",variant:"tonal","prepend-icon":"mdi-reply",onClick:e[1]||(e[1]=()=>J())},{append:s(()=>[a(f,{size:"x-small",variant:"plain"},{default:s(()=>[a(A,{icon:"mdi-chevron-down"}),a(U,{activator:"parent"},{default:s(()=>[a(D,null,{default:s(()=>[a(q,{title:m(l)("Reply all"),onClick:e[0]||(e[0]=()=>J(!0))},null,8,["title"]),a(q,{title:m(l)("Forward"),onClick:ae},null,8,["title"])]),_:1})]),_:1})]),_:1})]),default:s(()=>[S(v(m(l)("Reply"))+" ",1)]),_:1}),a(f,{class:"ml-2",color:"error",variant:"tonal",icon:"mdi-trash-can",size:"small",loading:y.value,onClick:Z},null,8,["loading"]),m(n).params.mailbox!=="Junk"?(i(),g(f,{key:0,class:"ml-2",color:"warning",variant:"tonal",icon:"mdi-fire",size:"small",loading:y.value,onClick:K},null,8,["loading"])):(i(),g(f,{key:1,class:"ml-2",color:"success",variant:"tonal",icon:"mdi-thumb-up",size:"small",loading:y.value,onClick:Q},null,8,["loading"])),a(f,{class:"ml-2",variant:"tonal",icon:"",size:"small"},{default:s(()=>[a(A,{icon:"mdi-cog"}),a(U,{activator:"parent"},{default:s(()=>[a(D,{density:"compact"},{default:s(()=>[x.value?(i(),g(q,{key:1,title:m(l)("Disable links"),onClick:e[3]||(e[3]=t=>x.value=!1)},null,8,["title"])):(i(),g(q,{key:0,title:m(l)("Enable links"),onClick:e[2]||(e[2]=t=>x.value=!0)},null,8,["title"])),a(q,{title:m(l)("Display source"),onClick:ee},null,8,["title"])]),_:1})]),_:1})]),_:1})]),_:1}),o.value?(i(),p("div",{key:0,ref_key:"headers",ref:h,class:"bg-white pa-4"},[d("h2",null,v(o.value.subject),1),d("div",ke,[a(U,{key:"sender"},{activator:s(({props:t})=>[d("h3",ue(de(t)),[o.value.from_address.name?(i(),p(_,{key:0},[S(v(o.value.from_address.name)+" ",1),d("span",ge," <"+v(o.value.from_address.address)+"> ",1)],64)):(i(),p(_,{key:1},[S(v(o.value.from_address.address),1)],64))],16)]),default:s(()=>[a(B,{modelValue:o.value.from_address,"onUpdate:modelValue":e[4]||(e[4]=t=>o.value.from_address=t)},null,8,["modelValue"])]),_:1}),a(P),d("span",Ve,v(o.value.date),1)]),d("div",be,[S(v(m(l)("To"))+" ",1),(i(!0),p(_,null,R(o.value.to,(t,r)=>(i(),g(U,{key:`to-${r}`},{activator:s(({props:b})=>[r>0?(i(),p("span",_e,", ")):L("",!0),d("span",I({ref_for:!0},b),v(t.name||t.address),17)]),default:s(()=>[a(B,{modelValue:o.value.to[r],"onUpdate:modelValue":b=>o.value.to[r]=b},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024))),128)),(k=o.value.cc)!=null&&k.length?(i(!0),p(_,{key:0},R(o.value.cc,(t,r)=>(i(),g(U,{key:`cc-${r}`},{activator:s(({props:b})=>[e[7]||(e[7]=d("span",null,", ",-1)),d("span",I({ref_for:!0},b),v(t.name||t.address),17)]),default:s(()=>[a(B,{modelValue:o.value.cc[r],"onUpdate:modelValue":b=>o.value.cc[r]=b},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024))),128)):L("",!0)]),o.value.attachments.length?(i(),p("div",we,[a(A,{icon:"mdi-paperclip"}),(i(!0),p(_,null,R(o.value.attachments,(t,r)=>(i(),p(_,{key:t.name},[r>0?(i(),p(_,{key:0},[S(", ")],64)):L("",!0),d("a",{href:"#",onClick:b=>Y(t.name,t.partnum)},v(t.name),9,xe)],64))),128))])):L("",!0)],512)):L("",!0),e[8]||(e[8]=d("iframe",{class:"email-frame"},null,-1))],512),[[re,T.value]]),a(fe,{modelValue:$.value,"onUpdate:modelValue":e[6]||(e[6]=t=>$.value=t),"max-width":"1200"},{default:s(()=>[a(W,{title:m(l)("Message source")},{default:s(()=>[a(ce,{class:"text-caption overflow-x-auto"},{default:s(()=>[d("pre",null,v(V.value),1)]),_:1}),a(pe,null,{default:s(()=>[a(P),a(f,{text:m(l)("Close"),onClick:e[5]||(e[5]=t=>$.value=!1)},null,8,["text"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"])],64)}}};export{De as default};
1
+ import{A as te,q as O,b as G,n as H,h as w,c as g,o as i,w as s,a,f as m,d as le,Z as oe,z as se,B as ne,a0 as F,l as p,L as ie,am as re,e as d,m as L,t as v,k as S,F as _,s as R,X as ue,Y as de,v as I}from"./index-B1bntsLR.js";import{a as C}from"./webmail-B7MNMkv_.js";import{c as me}from"./contacts-Df8ptuMn.js";import{a as D,b as q,V as U}from"./VMenu-B6SCtOwT.js";import{V as f,c as A}from"./VAvatar-JdJfoK0C.js";import{a as W,V as ce,b as pe}from"./VCard-BoH6kjPa.js";import{V as ve}from"./VToolbar-CyrYSqJZ.js";import{V as P}from"./VSpacer-BUxSSJbH.js";import{V as fe}from"./VDialog-DIUeAIpw.js";import"./tag-BmV84V2s.js";import"./ssrBoot-05WtbG6H.js";import"./VProgressCircular-DTDGzl2O.js";/* empty css */const B={__name:"ContactCard",props:{modelValue:{},modelModifiers:{}},emits:["update:modelValue"],setup(N){const l=te(N,"modelValue"),E=O(),{$gettext:M}=G(),{displayNotification:n}=H(),c=w(!1),x=async()=>{const V={emails:[{address:l.value.address,type:"other"}]};l.value.name?V.display_name=l.value.name:V.display_name=l.value.address,c.value=!0;let h;try{h=await me.createContact(V),l.value.contact_id=h.data.pk}finally{c.value=!1}n({msg:M("Contact added to address book")})},o=()=>{E.push({name:"ContactList"})};return(V,h)=>(i(),g(W,{"min-width":"300"},{default:s(()=>[a(D,null,{default:s(()=>[a(q,{subtitle:l.value.name?l.value.address:"",title:l.value.name||l.value.address},{append:s(()=>[l.value.contact_id?(i(),g(f,{key:1,icon:"mdi-pencil",variant:"text",loading:c.value,title:m(M)("Update contact"),onClick:o},null,8,["loading","title"])):(i(),g(f,{key:0,color:"secondary",icon:"mdi-card-account-mail-outline",variant:"text",loading:c.value,title:m(M)("Add to contacts"),onClick:x},null,8,["loading","title"]))]),_:1},8,["subtitle","title"])]),_:1})]),_:1}))}},ye={class:"bg-white rounded-lg pa-4 position-relative h-100"},ke={class:"d-flex mt-2"},ge={class:"text-grey text-body-2"},Ve={class:"text-grey"},be={class:"mt-2 text-grey"},_e={key:0},we={key:0,class:"mt-2"},xe=["onClick"],De={__name:"EmailView",setup(N){const{$gettext:l}=G(),{displayNotification:E,reloadMailboxCounters:M}=H(),n=ne(),c=O(),x=w(!1),o=w(null),V=w(null),h=w(null),T=w(!1),$=w(!1),y=w(!1);le(()=>{window.addEventListener("resize",z),j()}),oe(()=>{window.removeEventListener("resize",z)}),se(x,()=>{j()});const X=()=>{c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}})},z=()=>{const u=document.querySelector("iframe"),e=h.value.getBoundingClientRect();u.style.top=`${e.bottom}px`,u.style.width=`${e.width-24}px`,u.style.height=`${window.innerHeight-e.bottom-32}px`},j=()=>{const u={dformat:"html",links:x.value?"1":"0"};C.getEmailContent(n.query.mailbox,n.query.mailid,u).then(e=>{M(),o.value=e.data,F(()=>{const k=document.createElement("iframe");k.classList.add("email-frame"),document.querySelector("iframe").replaceWith(k);const t=k.contentDocument;t.write(o.value.body),t.close(),T.value=!0,F(z)})})},Y=(u,e)=>{C.getEmailAttachment(n.query.mailbox,n.query.mailid,e).then(k=>{const t=new Blob([k.data],{type:k.headers["Content-Type"]}),r=document.createElement("a");r.href=URL.createObjectURL(t),r.download=u,r.click(),URL.revokeObjectURL(r.href)})},Z=()=>{y.value=!0,C.deleteSelection(n.query.mailbox,[n.query.mailid]).then(()=>{y.value=!1,c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}}),E({msg:l("Message deleted")})})},K=()=>{y.value=!0,C.markSelectionAsJunk(n.query.mailbox,[n.query.mailid]).then(()=>{y.value=!1,c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}}),E({msg:l("Message marked as junk")})})},Q=()=>{y.value=!0,C.markSelectionAsNotJunk(n.query.mailbox,[n.query.mailid]).then(()=>{y.value=!1,c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}}),E({msg:l("Message marked as not junk")})})},ee=async()=>{if(!V.value){const u=await C.getEmailSource(n.query.mailbox,n.query.mailid);V.value=u.data.source}$.value=!0},J=u=>{const e={...n.query};u&&(e.all=u),c.push({name:"ReplyEmailView",query:e})},ae=()=>{c.push({name:"ForwardEmailView",query:n.query})};return(u,e)=>{var k;return i(),p(_,null,[ie(d("div",ye,[a(ve,{color:"white"},{default:s(()=>[a(f,{icon:"mdi-arrow-left",size:"small",variant:"flat",onClick:X}),a(f,{color:"primary",variant:"tonal","prepend-icon":"mdi-reply",onClick:e[1]||(e[1]=()=>J())},{append:s(()=>[a(f,{size:"x-small",variant:"plain"},{default:s(()=>[a(A,{icon:"mdi-chevron-down"}),a(U,{activator:"parent"},{default:s(()=>[a(D,null,{default:s(()=>[a(q,{title:m(l)("Reply all"),onClick:e[0]||(e[0]=()=>J(!0))},null,8,["title"]),a(q,{title:m(l)("Forward"),onClick:ae},null,8,["title"])]),_:1})]),_:1})]),_:1})]),default:s(()=>[S(v(m(l)("Reply"))+" ",1)]),_:1}),a(f,{class:"ml-2",color:"error",variant:"tonal",icon:"mdi-trash-can",size:"small",loading:y.value,onClick:Z},null,8,["loading"]),m(n).params.mailbox!=="Junk"?(i(),g(f,{key:0,class:"ml-2",color:"warning",variant:"tonal",icon:"mdi-fire",size:"small",loading:y.value,onClick:K},null,8,["loading"])):(i(),g(f,{key:1,class:"ml-2",color:"success",variant:"tonal",icon:"mdi-thumb-up",size:"small",loading:y.value,onClick:Q},null,8,["loading"])),a(f,{class:"ml-2",variant:"tonal",icon:"",size:"small"},{default:s(()=>[a(A,{icon:"mdi-cog"}),a(U,{activator:"parent"},{default:s(()=>[a(D,{density:"compact"},{default:s(()=>[x.value?(i(),g(q,{key:1,title:m(l)("Disable links"),onClick:e[3]||(e[3]=t=>x.value=!1)},null,8,["title"])):(i(),g(q,{key:0,title:m(l)("Enable links"),onClick:e[2]||(e[2]=t=>x.value=!0)},null,8,["title"])),a(q,{title:m(l)("Display source"),onClick:ee},null,8,["title"])]),_:1})]),_:1})]),_:1})]),_:1}),o.value?(i(),p("div",{key:0,ref_key:"headers",ref:h,class:"bg-white pa-4"},[d("h2",null,v(o.value.subject),1),d("div",ke,[a(U,{key:"sender"},{activator:s(({props:t})=>[d("h3",ue(de(t)),[o.value.from_address.name?(i(),p(_,{key:0},[S(v(o.value.from_address.name)+" ",1),d("span",ge," <"+v(o.value.from_address.address)+"> ",1)],64)):(i(),p(_,{key:1},[S(v(o.value.from_address.address),1)],64))],16)]),default:s(()=>[a(B,{modelValue:o.value.from_address,"onUpdate:modelValue":e[4]||(e[4]=t=>o.value.from_address=t)},null,8,["modelValue"])]),_:1}),a(P),d("span",Ve,v(o.value.date),1)]),d("div",be,[S(v(m(l)("To"))+" ",1),(i(!0),p(_,null,R(o.value.to,(t,r)=>(i(),g(U,{key:`to-${r}`},{activator:s(({props:b})=>[r>0?(i(),p("span",_e,", ")):L("",!0),d("span",I({ref_for:!0},b),v(t.name||t.address),17)]),default:s(()=>[a(B,{modelValue:o.value.to[r],"onUpdate:modelValue":b=>o.value.to[r]=b},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024))),128)),(k=o.value.cc)!=null&&k.length?(i(!0),p(_,{key:0},R(o.value.cc,(t,r)=>(i(),g(U,{key:`cc-${r}`},{activator:s(({props:b})=>[e[7]||(e[7]=d("span",null,", ",-1)),d("span",I({ref_for:!0},b),v(t.name||t.address),17)]),default:s(()=>[a(B,{modelValue:o.value.cc[r],"onUpdate:modelValue":b=>o.value.cc[r]=b},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024))),128)):L("",!0)]),o.value.attachments.length?(i(),p("div",we,[a(A,{icon:"mdi-paperclip"}),(i(!0),p(_,null,R(o.value.attachments,(t,r)=>(i(),p(_,{key:t.name},[r>0?(i(),p(_,{key:0},[S(", ")],64)):L("",!0),d("a",{href:"#",onClick:b=>Y(t.name,t.partnum)},v(t.name),9,xe)],64))),128))])):L("",!0)],512)):L("",!0),e[8]||(e[8]=d("iframe",{class:"email-frame"},null,-1))],512),[[re,T.value]]),a(fe,{modelValue:$.value,"onUpdate:modelValue":e[6]||(e[6]=t=>$.value=t),"max-width":"1200"},{default:s(()=>[a(W,{title:m(l)("Message source")},{default:s(()=>[a(ce,{class:"text-caption overflow-x-auto"},{default:s(()=>[d("pre",null,v(V.value),1)]),_:1}),a(pe,null,{default:s(()=>[a(P),a(f,{text:m(l)("Close"),onClick:e[5]||(e[5]=t=>$.value=!1)},null,8,["text"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"])],64)}}};export{De as default};
@@ -0,0 +1 @@
1
+ import{V as s,a as c}from"./VApp-B0vRc3-6.js";import{r as m,c as t,o as e,w as o,a as r}from"./index-B1bntsLR.js";import"./tag-BmV84V2s.js";import"./layout-CjSP_k58.js";import"./ssrBoot-05WtbG6H.js";const u={__name:"EmptyView",setup(a){return(_,n)=>{const p=m("router-view");return e(),t(s,null,{default:o(()=>[r(p)]),_:1})}}},d={__name:"EmptyLayout",setup(a){return(_,n)=>(e(),t(c,null,{default:o(()=>[r(u)]),_:1}))}};export{d as default};
@@ -0,0 +1 @@
1
+ import{b as le,n as ae,h as d,c as k,o as c,w as f,a as l,f as n,ae as V,i as ie,z as P,e as j,l as _,m as A,t as z,F as J,s as Z,B as _e,q as Se,g as xe,v as ne,k as ee}from"./index-B1bntsLR.js";import{V as oe,r as U}from"./VForm-DkphQD3e.js";import{V as me,b as ce,a as de}from"./VCard-BoH6kjPa.js";import{V as H}from"./VTextField-QXQFhKxm.js";import{V as fe}from"./VSwitch-Dh_dserW.js";import{d as ve,V as re}from"./VMenu-B6SCtOwT.js";import{V as pe}from"./VSpacer-BUxSSJbH.js";import{V as g,c as Ue}from"./VAvatar-JdJfoK0C.js";import{a as Ae,V as te}from"./VRadioGroup-CS9ULZ1c.js";import{a as I}from"./VSelect-D5IXDPEX.js";import{V as Ne}from"./VCheckbox-CCLOJFKF.js";import{_ as se}from"./MenuItems-dl38msRA.js";import{V as $e}from"./VToolbar-CyrYSqJZ.js";import{V as Re}from"./VDataTable-BkLLfcQK.js";import{V as ue}from"./VDialog-DIUeAIpw.js";import{V as De}from"./VAutocomplete-Huaz_-hf.js";import{V as Te}from"./VTextarea-Bdy4UKmV.js";import"./tag-BmV84V2s.js";import"./VInput-CbqehdOu.js";import"./VProgressCircular-DTDGzl2O.js";import"./VSelectionControl-uKY9Zull.js";import"./ssrBoot-05WtbG6H.js";/* empty css */import"./VCheckboxBtn-Ccl786Rg.js";import"./VTable-gDsAUSLX.js";import"./filter-DHKXX97M.js";const qe={__name:"FilterSetForm",emits:["close"],setup(K,{emit:O}){const{$gettext:p}=le(),B=O,N=ae(),a=d({}),o=d(),b=d(!1);function F(){o.value.reset(),a.value={},B("close")}async function h(){const{valid:e}=await o.value.validate();if(e){b.value=!0;try{await V.createFilterSet(a.value),N.displayNotification({msg:p("Filter set created")}),F()}finally{b.value=!1}}}return(e,w)=>(c(),k(de,{title:n(p)("Create a new filter set")},{default:f(()=>[l(me,null,{default:f(()=>[l(oe,{ref_key:"formRef",ref:o},{default:f(()=>[l(H,{modelValue:a.value.name,"onUpdate:modelValue":w[0]||(w[0]=C=>a.value.name=C),label:n(p)("Name"),variant:"outlined",rules:[n(U).required]},null,8,["modelValue","label","rules"]),l(fe,{label:n(p)("Active"),modelValue:a.value.active,"onUpdate:modelValue":w[1]||(w[1]=C=>a.value.active=C),color:"primary"},null,8,["label","modelValue"])]),_:1},512)]),_:1}),l(ve),l(ce,null,{default:f(()=>[l(pe),l(g,{text:n(p)("Cancel"),variant:"plain",onClick:F},null,8,["text"]),l(g,{color:"primary",text:n(p)("Create"),onClick:h},null,8,["text"])]),_:1})]),_:1},8,["title"]))}},je={class:"bg-grey-lighten-4 rounded pa-3"},Oe={class:"mt-4 bg-grey-lighten-4 rounded pa-3"},Be={class:"mx-2 d-flex flex-column flex-grow-1"},Ee={__name:"FilterForm",props:{filterSet:{type:String,default:null},filter:{type:Object,required:!1,default:null}},emits:["close"],setup(K,{emit:O}){const p=K,B=O,N=ae(),{$gettext:a}=le(),o=d({}),b=d([]),F=d([]),h=d(),e=d($()),w=d(!1),C=ie(()=>p.filter?a("Edit filter"):a("New filter")),G=ie(()=>p.filter?a("Update"):a("Create"));let S;P(()=>p.filter,m=>{m?(e.value=JSON.parse(JSON.stringify(m)),S=m.name):e.value=$()},{immediate:!0});function E(){B("close"),e.value=$()}function $(){return{match_type:"anyof",conditions:[{}],actions:[{args:{}}]}}function L(m){for(const v of b.value)if(v.name===m)return v.operators;return[]}function R(m){for(const v of b.value)if(v.name===e.value.conditions[m].name){for(const r of v.operators)if(r.name===e.value.conditions[m].operator)return r.type==="string"?"text":"number"}}function Q(m){for(const v of F.value)if(v.name===m)return v.args;return[]}function W(){e.value.conditions.push({name:b.value[0].name,operator:b.value[0].operators[0].name})}function X(m){e.value.conditions.splice(m,1)}function Y(){e.value.actions.push({name:F.value[0].name,args:{}})}function D(m){e.value.actions.splice(m,1)}async function x(){const{valid:m}=await h.value.validate();if(!m)return;w.value=!0;let v;const r=JSON.parse(JSON.stringify(e.value));for(const y of r.actions)for(const[u,M]of Object.entries(y.args))typeof M=="boolean"&&!M&&delete y.args[u];try{p.filter?(await V.updateFilter(p.filterSet,S,r),v=a("Filter updated")):(await V.createFilter(p.filterSet,r),v=a("Filter added"))}catch(y){y.response.status===400&&y.response.data&&(o.value=y.response.data);return}finally{w.value=!1}N.displayNotification({msg:v}),E()}return V.getFilterConditionTemplates().then(m=>{b.value=m.data,p.filter||(e.value.conditions[0].name=b.value[0].name,e.value.conditions[0].operator=b.value[0].operators[0].name)}),V.getFilterActionTemplates().then(m=>{F.value=m.data,p.filter||(e.value.actions[0].name=F.value[0].name)}),(m,v)=>(c(),k(de,{title:C.value},{default:f(()=>[l(me,null,{default:f(()=>[l(oe,{ref_key:"formRef",ref:h},{default:f(()=>[l(H,{modelValue:e.value.name,"onUpdate:modelValue":v[0]||(v[0]=r=>e.value.name=r),label:n(a)("Name"),variant:"outlined",density:"compact",rules:[n(U).required],"error-messages":o.value.name?o.value.name:[]},null,8,["modelValue","label","rules","error-messages"]),j("div",je,[j("h4",null,z(n(a)("Conditions")),1),l(Ae,{modelValue:e.value.match_type,"onUpdate:modelValue":v[1]||(v[1]=r=>e.value.match_type=r),color:"primary",inline:""},{default:f(()=>[l(te,{label:n(a)("All of the following"),value:"allof"},null,8,["label"]),l(te,{label:n(a)("Any of the following"),value:"anyof"},null,8,["label"]),l(te,{label:n(a)("All messages"),value:"all"},null,8,["label"])]),_:1},8,["modelValue"]),e.value.match_type!=="all"?(c(!0),_(J,{key:0},Z(e.value.conditions,(r,y)=>(c(),_("div",{key:`condition-${y}`,class:"d-flex align-start"},[l(I,{modelValue:r.name,"onUpdate:modelValue":u=>r.name=u,label:n(a)("Choose a header"),items:b.value,"item-title":"label","item-value":"name",variant:"outlined",density:"compact",rules:[n(U).required]},null,8,["modelValue","onUpdate:modelValue","label","items","rules"]),l(I,{modelValue:r.operator,"onUpdate:modelValue":u=>r.operator=u,label:n(a)("Choose an operator"),items:L(r.name),"item-title":"label","item-value":"name",variant:"outlined",class:"ml-2",density:"compact",rules:[n(U).required]},null,8,["modelValue","onUpdate:modelValue","label","items","rules"]),l(H,{modelValue:r.value,"onUpdate:modelValue":u=>r.value=u,label:n(a)("Value"),variant:"outlined",class:"ml-2",density:"compact",type:R(y),rules:[n(U).required]},null,8,["modelValue","onUpdate:modelValue","label","type","rules"]),y===0?(c(),k(g,{key:0,icon:"mdi-plus",variant:"text",title:n(a)("Add condition"),color:"primary",onClick:W},null,8,["title"])):(c(),k(g,{key:1,icon:"mdi-trash-can",variant:"text",title:n(a)("Remove condition"),color:"error",onClick:u=>X(y)},null,8,["title","onClick"]))]))),128)):A("",!0)]),j("div",Oe,[j("h4",null,z(n(a)("Actions")),1),(c(!0),_(J,null,Z(e.value.actions,(r,y)=>(c(),_("div",{key:`action-${y}`,class:"d-flex align-start mt-2"},[l(I,{modelValue:r.name,"onUpdate:modelValue":u=>r.name=u,label:n(a)("Choose an action"),items:F.value,"item-title":"label","item-value":"name",variant:"outlined",density:"compact",class:"flex-grow-0"},null,8,["modelValue","onUpdate:modelValue","label","items"]),j("div",Be,[(c(!0),_(J,null,Z(Q(r.name),(u,M)=>(c(),_(J,{key:`arg-${y}-${M}`},[u.type==="list"?(c(),k(I,{key:0,modelValue:r.args[u.name],"onUpdate:modelValue":T=>r.args[u.name]=T,items:u.choices,"item-title":"label",density:"compact",variant:"outlined",rules:[n(U).required]},null,8,["modelValue","onUpdate:modelValue","items","rules"])):A("",!0),u.type==="string"?(c(),k(H,{key:1,modelValue:r.args[u.name],"onUpdate:modelValue":T=>r.args[u.name]=T,density:"compact",variant:"outlined",rules:[n(U).required]},null,8,["modelValue","onUpdate:modelValue","rules"])):A("",!0),u.type==="boolean"?(c(),k(Ne,{key:2,modelValue:r.args[u.name],"onUpdate:modelValue":T=>r.args[u.name]=T,label:u.label,color:"primary",value:u.value,density:"compact"},null,8,["modelValue","onUpdate:modelValue","label","value"])):A("",!0)],64))),128))]),y===0?(c(),k(g,{key:0,icon:"mdi-plus",variant:"text",title:n(a)("Add action"),color:"primary",onClick:Y},null,8,["title"])):(c(),k(g,{key:1,icon:"mdi-trash-can",variant:"text",title:n(a)("Remove action"),color:"error",onClick:u=>D(y)},null,8,["title","onClick"]))]))),128))])]),_:1},512)]),_:1}),l(ve),l(ce,null,{default:f(()=>[l(pe),l(g,{text:n(a)("Cancel"),variant:"elevated",onClick:E},null,8,["text"]),l(g,{color:"primary",variant:"elevated",text:G.value,loading:w.value,onClick:x},null,8,["text","loading"])]),_:1})]),_:1},8,["title"]))}},Le={class:"pa-4"},Me={class:"text-h6 font-weight-regular mb-4"},ze={key:0,class:"bg-white mt-4 pa-2"},Je={class:"d-flex align-center"},yt={__name:"FiltersView",async setup(K){let O,p;const B=Se(),N=_e(),a=ae(),{$gettext:o}=le(),b=d([]),F=d([]),h=d(""),e=d(),w=d(!1),C=d([]),G=d(),S=d(!1),E=d(!1),$=d(null),L=d(!1),R=d(!1),Q=[{title:o("Name"),key:"name"},{title:o("Active"),key:"enabled"},{title:"",key:"filter_actions",align:"end"}];P(e,t=>{t?(x(t.name),N.params.filterset!==t.name&&B.push({name:"AccountFilters",params:{filterset:t.name}})):B.push({name:"AccountFilters"})}),P(S,t=>{t?V.downloadFilterSet(e.value.name).then(i=>{h.value=i.data}):x(e.value.name)}),P(h,()=>{C.value.length&&(C.value=[])});function W(t){let i=t.name;return t.active?i+=" ("+o("active")+")":i+=" ("+o("inactive")+")",i}async function X(){L.value=!1,await D()}function Y(){R.value=!1,$.value=null,x(e.value.name)}async function D(){const t=await V.getFilterSets();if(t.data.length>0&&t.data[0].active&&t.data[0].name===null?b.value=t.data.slice(1):b.value=t.data,N.params.filterset){for(const i of b.value)if(i.name===N.params.filterset){e.value=i;break}}else for(const i of b.value)if(i.name){e.value=i;break}}function x(t){w.value=!0,V.getFilters(t).then(i=>{F.value=i.data,w.value=!1}).catch(i=>{i.response.status===518&&(S.value=!0,a.displayNotification({msg:o("Failed to display template. Using raw mode"),type:"warning"}))})}function m(t){$.value=t,R.value=!0}function v(t){V.enableFilter(e.value.name,t.name).then(()=>{t.enabled=!0,a.displayNotification({msg:o("Filter enabled")})})}function r(t){V.disableFilter(e.value.name,t.name).then(()=>{t.enabled=!1,a.displayNotification({msg:o("Filter disabled")})})}function y(t){V.deleteFilter(e.value.name,t.name).then(()=>{a.displayNotification({msg:o("Filter removed")}),x(e.value.name)})}async function u(t){await V.moveFilterDown(e.value.name,t.name),x(e.value.name)}async function M(t){await V.moveFilterUp(e.value.name,t.name),x(e.value.name)}async function T(t){await V.activateFilterSet(t.name),await D(),a.displayNotification({msg:o("Filter set activated")})}async function ye(){await V.deactivateActiveFilterSet(),await D(),a.displayNotification({msg:o("Active filter set deactivated")})}async function Ve(t){await V.deleteFilterSet(t.name),a.displayNotification({msg:o("Filter set removed")}),e.value=null,await D()}async function be(){const{valid:t}=await G.value.validate();if(!t)return;const i={content:h.value};E.value=!0;try{await V.saveFilterSet(e.value.name,i),a.displayNotification({msg:o("Filter set updated")})}catch(s){s.response.status===400&&s.response.data.content&&(C.value=s.response.data.content)}finally{E.value=!1}}async function ge(t){const i=await V.downloadFilterSet(t.name),s=new Blob([i.data],{type:"text/plain"}),q=document.createElement("a");q.href=URL.createObjectURL(s),q.download=`${t.name}.txt`,q.click(),URL.revokeObjectURL(q.href)}const Fe=[{label:o("Edit"),icon:"mdi-circle-edit-outline",onClick:m},{label:o("Delete"),icon:"mdi-delete-outline",onClick:y,color:"red"}];function we(t,i){const s=[...Fe];return t.enabled?s.push({label:o("Disable"),icon:"mdi-stop",color:"red",onClick:r}):s.push({label:o("Enable"),icon:"mdi-check",color:"success",onClick:v}),i!==F.value.length-1&&s.push({label:o("Move down"),icon:"mdi-arrow-down",onClick:u}),i!==0&&s.push({label:o("Move up"),icon:"mdi-arrow-up",onClick:M}),s}const ke=[{label:o("Download filter set"),icon:"mdi-download",onClick:ge},{label:o("Delete filter set"),color:"error",icon:"mdi-trash-can",onClick:Ve}];function he(){const t=[];return e.value.active?t.push({label:o("Deactivate filter set"),color:"error",icon:"mdi-close",onClick:ye}):t.push({label:o("Activate filter set"),color:"success",icon:"mdi-check",onClick:T}),t.concat(ke)}return[O,p]=xe(()=>D()),await O,p(),(t,i)=>(c(),_("div",Le,[j("div",Me,z(n(o)("Message filters")),1),l($e,{color:"white",flat:"",class:"px-4"},{default:f(()=>[l(De,{modelValue:e.value,"onUpdate:modelValue":i[0]||(i[0]=s=>e.value=s),label:n(o)("Select a filter set"),items:b.value,"item-title":W,"return-object":"",variant:"outlined","hide-details":"",class:"flex-grow-0",style:{width:"200px"},density:"compact"},null,8,["modelValue","label","items"]),l(g,{color:"primary",icon:"mdi-plus",size:"small",class:"mx-4",title:n(o)("Add filter set"),onClick:i[1]||(i[1]=s=>L.value=!0)},null,8,["title"]),e.value?(c(),k(re,{key:0},{activator:f(({props:s})=>[l(g,ne({icon:"mdi-dots-vertical"},s,{size:"small",color:"default"}),null,16)]),default:f(()=>[l(se,{items:he(),obj:e.value},null,8,["items","obj"])]),_:1})):A("",!0),e.value?(c(),k(fe,{key:1,modelValue:S.value,"onUpdate:modelValue":i[2]||(i[2]=s=>S.value=s),label:n(o)("Raw mode"),color:"primary",class:"ml-4","hide-details":""},null,8,["modelValue","label"])):A("",!0)]),_:1}),e.value?(c(),_("div",ze,[S.value?(c(),_(J,{key:1},[l(oe,{ref_key:"rawFormRef",ref:G},{default:f(()=>[l(Te,{modelValue:h.value,"onUpdate:modelValue":i[4]||(i[4]=s=>h.value=s),variant:"outlined","auto-grow":"",rules:[n(U).required],"error-messages":C.value},null,8,["modelValue","rules","error-messages"])]),_:1},512),l(g,{color:"success",loading:E.value,class:"mt-2",onClick:be},{default:f(()=>[ee(z(n(o)("Save")),1)]),_:1},8,["loading"])],64)):(c(),_(J,{key:0},[j("div",Je,[l(g,{color:"primary",title:n(o)("Add new filter"),class:"mx-auto",variant:"outlined",onClick:i[3]||(i[3]=s=>R.value=!0)},{default:f(()=>[l(Ue,{icon:"mdi-plus"}),ee(" "+z(n(o)("New")),1)]),_:1},8,["title"])]),l(Re,{headers:Q,items:F.value,loading:w.value},{"item.enabled":f(({item:s})=>[ee(z(t.$yesno(s.enabled)),1)]),"item.filter_actions":f(({index:s,item:q})=>[l(re,{"offset-y":""},{activator:f(({props:Ce})=>[l(g,ne({icon:"mdi-dots-horizontal",variant:"text"},Ce),null,16)]),default:f(()=>[l(se,{items:we(q,s),obj:q},null,8,["items","obj"])]),_:2},1024)]),_:2},1032,["items","loading"])],64))])):A("",!0),l(ue,{modelValue:L.value,"onUpdate:modelValue":i[5]||(i[5]=s=>L.value=s),"max-width":"600"},{default:f(()=>[l(qe,{onClose:X})]),_:1},8,["modelValue"]),l(ue,{modelValue:R.value,"onUpdate:modelValue":i[6]||(i[6]=s=>R.value=s),"max-width":"800"},{default:f(()=>[e.value?(c(),k(Ee,{key:0,"filter-set":e.value.name,filter:$.value,onClose:Y},null,8,["filter-set","filter"])):A("",!0)]),_:1},8,["modelValue"])]))}};export{yt as default};
@@ -0,0 +1 @@
1
+ import{h as i,B as m,c as p,f as a,o as e}from"./index-B1bntsLR.js";import{_ as n}from"./ComposeEmailForm-G3sXQAwI.js";import{a as l}from"./webmail-B7MNMkv_.js";import"./index-Bp9Fb67E.js";import"./VForm-DkphQD3e.js";import"./tag-BmV84V2s.js";import"./VInput-CbqehdOu.js";import"./VAvatar-JdJfoK0C.js";import"./VProgressCircular-DTDGzl2O.js";import"./VMenu-B6SCtOwT.js";import"./ssrBoot-05WtbG6H.js";import"./VCard-BoH6kjPa.js";import"./VFileInput-Dvj95FL5.js";import"./VTextField-QXQFhKxm.js";import"./VSelect-D5IXDPEX.js";import"./VCheckboxBtn-Ccl786Rg.js";import"./VSelectionControl-uKY9Zull.js";import"./VTable-gDsAUSLX.js";import"./VSpacer-BUxSSJbH.js";/* empty css */import"./HtmlEditor-D753fIAJ.js";import"./VTextarea-Bdy4UKmV.js";import"./contacts-Df8ptuMn.js";import"./VToolbar-CyrYSqJZ.js";import"./VRow-CuVZGqBj.js";import"./filter-DHKXX97M.js";import"./VDialog-DIUeAIpw.js";const J={__name:"ForwardEmailView",setup(s){const o=m(),r=i();return l.getEmailContent(o.query.mailbox,o.query.mailid,{context:"forward"}).then(t=>{r.value=t.data}),(t,c)=>(e(),p(a(n),{"original-email":r.value},null,8,["original-email"]))}};export{J as default};