modoboa 2.6.4__py3-none-any.whl → 2.7.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 (364) hide show
  1. modoboa/admin/api/v2/serializers.py +1 -0
  2. modoboa/admin/app_settings.py +12 -0
  3. modoboa/admin/{management/commands/subcommands/_mx.py → dns_checker.py} +41 -111
  4. modoboa/admin/jobs.py +86 -0
  5. modoboa/admin/management/commands/modo.py +0 -2
  6. modoboa/admin/tests/test_mailbox_operations.py +4 -4
  7. modoboa/admin/tests/test_mx.py +68 -56
  8. modoboa/amavis/jobs.py +11 -0
  9. modoboa/amavis/tests/test_jobs.py +18 -0
  10. modoboa/amavis/tests/test_viewsets.py +2 -3
  11. modoboa/autoconfig/templates/autoconfig/autoconfig.xml +2 -2
  12. modoboa/autoconfig/templates/autoconfig/autodiscover.xml +14 -0
  13. modoboa/autoconfig/tests.py +2 -1
  14. modoboa/autoconfig/views.py +11 -3
  15. modoboa/autoreply/models.py +4 -4
  16. modoboa/calendars/backends/caldav_.py +17 -13
  17. modoboa/calendars/jobs.py +7 -0
  18. modoboa/calendars/mocks.py +4 -1
  19. modoboa/calendars/serializers.py +14 -9
  20. modoboa/calendars/tests.py +10 -9
  21. modoboa/calendars/viewsets.py +3 -1
  22. modoboa/contacts/migrations/0008_addressbook_syncing.py +18 -0
  23. modoboa/contacts/models.py +1 -0
  24. modoboa/contacts/serializers.py +5 -2
  25. modoboa/contacts/tasks.py +9 -3
  26. modoboa/contacts/tests.py +32 -6
  27. modoboa/contacts/viewsets.py +7 -1
  28. modoboa/core/api/v2/serializers.py +0 -7
  29. modoboa/core/api/v2/tests.py +0 -10
  30. modoboa/core/app_settings.py +0 -22
  31. modoboa/core/commands/deploy.py +13 -0
  32. modoboa/core/commands/templates/cron_config.py.tpl +33 -0
  33. modoboa/core/commands/templates/settings.py.tpl +21 -0
  34. modoboa/core/jobs.py +34 -0
  35. modoboa/core/management/commands/load_initial_data.py +1 -1
  36. modoboa/core/password_hashers/base.py +4 -1
  37. modoboa/core/tests/test_core.py +0 -14
  38. modoboa/core/tests/test_jobs.py +40 -0
  39. modoboa/frontend_dist/assets/{AccountAliasForm-tLHotdIR.js → AccountAliasForm-DO6DwfjE.js} +1 -1
  40. modoboa/frontend_dist/assets/{AccountEditView-DnQIIg47.js → AccountEditView-CCuN9mGB.js} +1 -1
  41. modoboa/frontend_dist/assets/AccountLayout-Ge7fzuZg.js +1 -0
  42. modoboa/frontend_dist/assets/AccountPasswordSubForm-PkFPblkR.js +1 -0
  43. modoboa/frontend_dist/assets/AccountView-dgseekZ8.js +1 -0
  44. modoboa/frontend_dist/assets/AddressBook-DZWOHOJj.js +1 -0
  45. modoboa/frontend_dist/assets/AdminLayout-itB_mmH_.js +1 -0
  46. modoboa/frontend_dist/assets/AlarmsView-King6zb6.js +1 -0
  47. modoboa/frontend_dist/assets/{AliasEditView-n75NEN_s.js → AliasEditView-CTjrXYPf.js} +1 -1
  48. modoboa/frontend_dist/assets/AliasRecipientForm-CI7bXqVp.js +1 -0
  49. modoboa/frontend_dist/assets/{AliasView-DFIvPeIm.js → AliasView-BN13MNN_.js} +1 -1
  50. modoboa/frontend_dist/assets/AuditTrailView-C1jQwgoo.js +1 -0
  51. modoboa/frontend_dist/assets/CalendarView-juHVIHU5.css +1 -0
  52. modoboa/frontend_dist/assets/CalendarView-rRSzqxrH.js +1 -0
  53. modoboa/frontend_dist/assets/ChoiceField-DCr12shR.js +1 -0
  54. modoboa/frontend_dist/assets/ComposeEmailForm-BmtKwFb1.js +2 -0
  55. modoboa/frontend_dist/assets/ComposeEmailForm-CVNDl-Mq.css +1 -0
  56. modoboa/frontend_dist/assets/ComposeEmailView-JW22Phrb.js +1 -0
  57. modoboa/frontend_dist/assets/ConfirmDialog-CWpdwSQ6.js +1 -0
  58. modoboa/frontend_dist/assets/ConnectedLayout-BP8pO27H.js +1 -0
  59. modoboa/frontend_dist/assets/{ConnectedLayout-C6HNXWkp.css → ConnectedLayout-Ddpb_6yT.css} +1 -1
  60. modoboa/frontend_dist/assets/CreationForm-CzelJsVQ.js +1 -0
  61. modoboa/frontend_dist/assets/DashboardView-BBkBodVj.js +1 -0
  62. modoboa/frontend_dist/assets/{DomainAdminList-BjtfbhRj.js → DomainAdminList-DD7p3i6F.js} +1 -1
  63. modoboa/frontend_dist/assets/{DomainEditView-Cq5Ea4RW.js → DomainEditView-DoIoNYC4.js} +1 -1
  64. modoboa/frontend_dist/assets/{DomainTransportForm-DAXJGNLA.js → DomainTransportForm-CbiJF9z5.js} +1 -1
  65. modoboa/frontend_dist/assets/{DomainView-BfpK7U14.js → DomainView-BXvznFYz.js} +3 -3
  66. modoboa/frontend_dist/assets/DomainsView-ffYjiffp.js +1 -0
  67. modoboa/frontend_dist/assets/EmailField-KhhJYA4D.js +1 -0
  68. modoboa/frontend_dist/assets/EmailSchedulingForm-CQL5Vfdr.js +1 -0
  69. modoboa/frontend_dist/assets/EmailView-Bq2bHZBO.js +1 -0
  70. modoboa/frontend_dist/assets/EmptyLayout-NrTftp18.js +1 -0
  71. modoboa/frontend_dist/assets/FiltersView-SOQy0U_3.js +1 -0
  72. modoboa/frontend_dist/assets/ForwardEmailView-kEPDjWUw.js +1 -0
  73. modoboa/frontend_dist/assets/{HtmlEditor-D753fIAJ.js → HtmlEditor-CyBl5wj2.js} +15 -15
  74. modoboa/frontend_dist/assets/IdentitiesView-CZFf4oR9.js +1 -0
  75. modoboa/frontend_dist/assets/InformationView-CAtneAqM.js +1 -0
  76. modoboa/frontend_dist/assets/{LoadingData-Tm56XNwj.js → LoadingData-C2txD49L.js} +1 -1
  77. modoboa/frontend_dist/assets/{LoginCallbackView-DjCHUgz5.js → LoginCallbackView-DAvty3CI.js} +1 -1
  78. modoboa/frontend_dist/assets/{LoginView-D0r4XBEl.js → LoginView-DHYITkn4.js} +1 -1
  79. modoboa/frontend_dist/assets/MailboxView-BNg2v7mi.css +1 -0
  80. modoboa/frontend_dist/assets/MailboxView-DHg5A78D.js +5 -0
  81. modoboa/frontend_dist/assets/MenuItems-C9p70bSC.js +1 -0
  82. modoboa/frontend_dist/assets/{MessageView-BWh9BqzS.js → MessageView-CrrEJpNI.js} +1 -1
  83. modoboa/frontend_dist/assets/MessagesView-CyecRd4I.js +1 -0
  84. modoboa/frontend_dist/assets/MigrationsView-DXGKKz2h.js +1 -0
  85. modoboa/frontend_dist/assets/{ParametersForm-y02-GM0r.js → ParametersForm-DFKYkPAs.js} +1 -1
  86. modoboa/frontend_dist/assets/ParametersView-B1wT5oyt.js +1 -0
  87. modoboa/frontend_dist/assets/ParametersView-CfvVzKea.js +1 -0
  88. modoboa/frontend_dist/assets/ProviderEditView-De-8ggBp.js +1 -0
  89. modoboa/frontend_dist/assets/ProviderGeneralForm-DO-IpJMQ.js +1 -0
  90. modoboa/frontend_dist/assets/ProvidersView-Bhk7sCz4.js +1 -0
  91. modoboa/frontend_dist/assets/QuarantineLayout-C1YszNmP.js +1 -0
  92. modoboa/frontend_dist/assets/QuarantineView-cElD_rS-.js +1 -0
  93. modoboa/frontend_dist/assets/ReplyEmailView-BvuOZdLl.js +1 -0
  94. modoboa/frontend_dist/assets/ResourcesForm-FWxrmVwo.js +1 -0
  95. modoboa/frontend_dist/assets/SelfServiceLayout-JHRvfvQf.js +1 -0
  96. modoboa/frontend_dist/assets/SettingsView-SIsKAXtQ.css +1 -0
  97. modoboa/frontend_dist/assets/SettingsView-s2l2Xl1L.js +6 -0
  98. modoboa/frontend_dist/assets/StatisticsView-FiidWvad.js +1 -0
  99. modoboa/frontend_dist/assets/TimeSerieChart-CdqUHiO_.js +1 -0
  100. modoboa/frontend_dist/assets/TimeSerieChart-nLIFGI0y.css +1 -0
  101. modoboa/frontend_dist/assets/UserLayout-DyvI8duf.js +1 -0
  102. modoboa/frontend_dist/assets/{VAlert-CNys_LUS.js → VAlert-MDbeolOo.js} +1 -1
  103. modoboa/frontend_dist/assets/VApp-DM1KLQfQ.js +1 -0
  104. modoboa/frontend_dist/assets/VAutocomplete-C9NL5_uo.css +1 -0
  105. modoboa/frontend_dist/assets/VAutocomplete-CQsWYWNX.js +1 -0
  106. modoboa/frontend_dist/assets/VAvatar-CXV_FqpP.js +1 -0
  107. modoboa/frontend_dist/assets/VBadge-7tDx7aI3.js +1 -0
  108. modoboa/frontend_dist/assets/{VCard-BoH6kjPa.js → VCard-CBtX8JF-.js} +1 -1
  109. modoboa/frontend_dist/assets/VCheckbox-zY1MApOy.js +1 -0
  110. modoboa/frontend_dist/assets/{VCheckboxBtn-Ccl786Rg.js → VCheckboxBtn-B0mIT3E0.js} +1 -1
  111. modoboa/frontend_dist/assets/VColorPicker-BbCHvk6K.js +1 -0
  112. modoboa/frontend_dist/assets/{VColorPicker-B_lVDaYR.css → VColorPicker-C9m8L-6U.css} +1 -1
  113. modoboa/frontend_dist/assets/{VContainer-DKMcKasC.js → VContainer-Cn-vKB3s.js} +1 -1
  114. modoboa/frontend_dist/assets/VDataTable-CNT9KOSp.js +1 -0
  115. modoboa/frontend_dist/assets/VDataTableServer-_yn4Ry6U.js +1 -0
  116. modoboa/frontend_dist/assets/VDataTableVirtual-Csxh3Gp6.js +1 -0
  117. modoboa/frontend_dist/assets/VDatePicker-_OUDqShN.css +1 -0
  118. modoboa/frontend_dist/assets/VDatePicker-iFu13xIP.js +2 -0
  119. modoboa/frontend_dist/assets/VDialog-lKtBdqnp.js +1 -0
  120. modoboa/frontend_dist/assets/VExpansionPanels-CaIvk9iF.js +1 -0
  121. modoboa/frontend_dist/assets/VFileInput-C7J_qVmk.js +1 -0
  122. modoboa/frontend_dist/assets/VForm-fdQ5d-CH.js +1 -0
  123. modoboa/frontend_dist/assets/VInput-BwHvhzAe.js +1 -0
  124. modoboa/frontend_dist/assets/VMenu-BpmJf4X2.js +1 -0
  125. modoboa/frontend_dist/assets/VMenu-C5A_5Hs5.css +1 -0
  126. modoboa/frontend_dist/assets/VPicker-B7cB3kJg.css +1 -0
  127. modoboa/frontend_dist/assets/VPicker-BZho70wU.js +1 -0
  128. modoboa/frontend_dist/assets/VProgressCircular-DRw_-iNj.js +1 -0
  129. modoboa/frontend_dist/assets/VRadioGroup--eiP5xtJ.js +1 -0
  130. modoboa/frontend_dist/assets/{VRow-CuVZGqBj.js → VRow-83Qnr5iB.js} +1 -1
  131. modoboa/frontend_dist/assets/VSelect-BcmGFGif.js +1 -0
  132. modoboa/frontend_dist/assets/{VSelectionControl-uKY9Zull.js → VSelectionControl-Cqi1xt-q.js} +1 -1
  133. modoboa/frontend_dist/assets/VSheet-C3MaHhtw.js +1 -0
  134. modoboa/frontend_dist/assets/VSpacer-CuSkdJZL.js +1 -0
  135. modoboa/frontend_dist/assets/VSwitch-XumUl685.js +1 -0
  136. modoboa/frontend_dist/assets/{VTable-gDsAUSLX.js → VTable-f7wcr2AZ.js} +1 -1
  137. modoboa/frontend_dist/assets/VTabs-CDfdejXj.css +1 -0
  138. modoboa/frontend_dist/assets/VTabs-y4wNP4im.js +1 -0
  139. modoboa/frontend_dist/assets/VTextField-BPIvtrn4.js +1 -0
  140. modoboa/frontend_dist/assets/VTextField-DjbYGlzs.css +1 -0
  141. modoboa/frontend_dist/assets/VTextarea-B6bGYcC3.js +1 -0
  142. modoboa/frontend_dist/assets/VTextarea-f6vTjzFy.css +1 -0
  143. modoboa/frontend_dist/assets/VToolbar-BYDPtwf0.css +1 -0
  144. modoboa/frontend_dist/assets/VToolbar-CB6wwtYc.js +1 -0
  145. modoboa/frontend_dist/assets/VWindowItem-CDtLLEkg.js +1 -0
  146. modoboa/frontend_dist/assets/WebmailLayout-CQQAolnl.css +1 -0
  147. modoboa/frontend_dist/assets/WebmailLayout-tosQSHLS.js +1 -0
  148. modoboa/frontend_dist/assets/{accounts-DqbBlaLK.js → accounts-KUsk6LHW.js} +1 -1
  149. modoboa/frontend_dist/assets/{admin-D36m_nXq.js → admin-BW9cZW0P.js} +1 -1
  150. modoboa/frontend_dist/assets/{aliases-BtyF8GC8.js → aliases-Ge0hjIsH.js} +1 -1
  151. modoboa/frontend_dist/assets/{amavis-DySmsCJQ.js → amavis-BbFeFfsk.js} +1 -1
  152. modoboa/frontend_dist/assets/{amavis-B4QhM5Fa.js → amavis-DtuzP_CS.js} +1 -1
  153. modoboa/frontend_dist/assets/{contacts-Df8ptuMn.js → contacts-DMJlQTe0.js} +1 -1
  154. modoboa/frontend_dist/assets/{domains-CSxtTvUh.js → domains-Du64lcXT.js} +1 -1
  155. modoboa/frontend_dist/assets/domains.store-1U61jeCV.js +1 -0
  156. modoboa/frontend_dist/assets/events-BM3in65C.js +1 -0
  157. modoboa/frontend_dist/assets/filter-Dihm6o59.js +1 -0
  158. modoboa/frontend_dist/assets/importExport-HGcNGWOm.js +1 -0
  159. modoboa/frontend_dist/assets/{index-B9q1vO3K.css → index-B1EK3MQe.css} +1 -1
  160. modoboa/frontend_dist/assets/{index-Bp9Fb67E.js → index-Dv00bmw9.js} +1 -1
  161. modoboa/frontend_dist/assets/index-jui3edpn.js +1001 -0
  162. modoboa/frontend_dist/assets/{language.store-_-zrrEiS.js → language.store-OcfdXL_-.js} +1 -1
  163. modoboa/frontend_dist/assets/languages-CF8hxo7x.js +1 -0
  164. modoboa/frontend_dist/assets/{layout-CjSP_k58.js → layout-DOO7TRTJ.js} +1 -1
  165. modoboa/frontend_dist/assets/{layout.store-CF5WRevH.js → layout.store-C0g-piJn.js} +1 -1
  166. modoboa/frontend_dist/assets/{logos-95XYS6uH.js → logos-Dz2Gzei-.js} +1 -1
  167. modoboa/frontend_dist/assets/{logs-CyU_PIDh.js → logs-CLm32Weu.js} +1 -1
  168. modoboa/frontend_dist/assets/{parameters-BxAXBXU1.js → parameters-DMIAQ7cd.js} +1 -1
  169. modoboa/frontend_dist/assets/{parameters.store-CATOSoQZ.js → parameters.store-DLnFzCwV.js} +1 -1
  170. modoboa/frontend_dist/assets/{permissions-cSkGqV3M.js → permissions-CrpE0b4w.js} +1 -1
  171. modoboa/frontend_dist/assets/{ssrBoot-05WtbG6H.js → ssrBoot-B7cr7q9U.js} +1 -1
  172. modoboa/frontend_dist/assets/{tag-BmV84V2s.js → tag-WF93n81Q.js} +1 -1
  173. modoboa/frontend_dist/assets/{theme-myV4ekXo.js → theme-_0oOYChG.js} +1 -1
  174. modoboa/frontend_dist/assets/transports-CS61syt-.js +1 -0
  175. modoboa/frontend_dist/assets/webmail-CYDXU0DS.js +1 -0
  176. modoboa/frontend_dist/assets/webmail.store-BvHCQSjM.js +1 -0
  177. modoboa/frontend_dist/index.html +2 -2
  178. modoboa/imap_migration/api/v2/serializers.py +13 -0
  179. modoboa/imap_migration/models.py +3 -3
  180. modoboa/imap_migration/templates/imap_migration/offlineimap.conf +2 -2
  181. modoboa/imap_migration/tests.py +28 -0
  182. modoboa/lib/cryptutils.py +2 -2
  183. modoboa/lib/sysutils.py +1 -1
  184. modoboa/lib/tests/__init__.py +0 -1
  185. modoboa/locale/br/LC_MESSAGES/django.mo +0 -0
  186. modoboa/locale/br/LC_MESSAGES/django.po +753 -317
  187. modoboa/locale/cs/LC_MESSAGES/django.po +671 -309
  188. modoboa/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
  189. modoboa/locale/cs_CZ/LC_MESSAGES/django.po +801 -378
  190. modoboa/locale/de/LC_MESSAGES/django.mo +0 -0
  191. modoboa/locale/de/LC_MESSAGES/django.po +1116 -455
  192. modoboa/locale/de_DE/LC_MESSAGES/django.mo +0 -0
  193. modoboa/locale/de_DE/LC_MESSAGES/django.po +745 -318
  194. modoboa/locale/el_GR/LC_MESSAGES/django.mo +0 -0
  195. modoboa/locale/el_GR/LC_MESSAGES/django.po +825 -393
  196. modoboa/locale/en/LC_MESSAGES/django.po +669 -309
  197. modoboa/locale/es/LC_MESSAGES/django.mo +0 -0
  198. modoboa/locale/es/LC_MESSAGES/django.po +810 -390
  199. modoboa/locale/es_MX/LC_MESSAGES/django.po +669 -309
  200. modoboa/locale/fi/LC_MESSAGES/django.mo +0 -0
  201. modoboa/locale/fi/LC_MESSAGES/django.po +756 -316
  202. modoboa/locale/fr/LC_MESSAGES/django.mo +0 -0
  203. modoboa/locale/fr/LC_MESSAGES/django.po +674 -313
  204. modoboa/locale/hu/LC_MESSAGES/django.po +669 -309
  205. modoboa/locale/it/LC_MESSAGES/django.mo +0 -0
  206. modoboa/locale/it/LC_MESSAGES/django.po +807 -380
  207. modoboa/locale/ja_JP/LC_MESSAGES/django.mo +0 -0
  208. modoboa/locale/ja_JP/LC_MESSAGES/django.po +951 -419
  209. modoboa/locale/ka/LC_MESSAGES/django.po +669 -309
  210. modoboa/locale/nl_NL/LC_MESSAGES/django.mo +0 -0
  211. modoboa/locale/nl_NL/LC_MESSAGES/django.po +807 -387
  212. modoboa/locale/no/LC_MESSAGES/django.po +669 -309
  213. modoboa/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
  214. modoboa/locale/pl_PL/LC_MESSAGES/django.po +826 -396
  215. modoboa/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  216. modoboa/locale/pt_BR/LC_MESSAGES/django.po +830 -392
  217. modoboa/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  218. modoboa/locale/pt_PT/LC_MESSAGES/django.po +788 -371
  219. modoboa/locale/ro_RO/LC_MESSAGES/django.mo +0 -0
  220. modoboa/locale/ro_RO/LC_MESSAGES/django.po +763 -316
  221. modoboa/locale/ru/LC_MESSAGES/django.mo +0 -0
  222. modoboa/locale/ru/LC_MESSAGES/django.po +1336 -1046
  223. modoboa/locale/si/LC_MESSAGES/django.po +669 -309
  224. modoboa/locale/sk/LC_MESSAGES/django.po +671 -309
  225. modoboa/locale/sk_SK/LC_MESSAGES/django.po +671 -309
  226. modoboa/locale/sl_SI/LC_MESSAGES/django.po +695 -315
  227. modoboa/locale/sv/LC_MESSAGES/django.mo +0 -0
  228. modoboa/locale/sv/LC_MESSAGES/django.po +819 -387
  229. modoboa/locale/tr/LC_MESSAGES/django.mo +0 -0
  230. modoboa/locale/tr/LC_MESSAGES/django.po +737 -315
  231. modoboa/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
  232. modoboa/locale/tr_TR/LC_MESSAGES/django.po +711 -310
  233. modoboa/locale/uk/LC_MESSAGES/django.po +671 -309
  234. modoboa/locale/zh/LC_MESSAGES/django.po +668 -309
  235. modoboa/locale/zh_CN/LC_MESSAGES/django.po +668 -309
  236. modoboa/locale/zh_TW/LC_MESSAGES/django.mo +0 -0
  237. modoboa/locale/zh_TW/LC_MESSAGES/django.po +747 -316
  238. modoboa/maillog/jobs.py +11 -0
  239. modoboa/maillog/tests/test_views.py +5 -4
  240. modoboa/parameters/api/v2/tests.py +1 -1
  241. modoboa/policyd/management/commands/policy_daemon.py +5 -1
  242. modoboa/policyd/tests.py +4 -2
  243. modoboa/rspamd/tests.py +20 -0
  244. modoboa/templates/registration/twofactor_code_verify.html +1 -1
  245. modoboa/webmail/app_settings.py +37 -0
  246. modoboa/webmail/constants.py +21 -1
  247. modoboa/webmail/factories.py +19 -0
  248. modoboa/webmail/jobs.py +27 -0
  249. modoboa/webmail/lib/__init__.py +0 -2
  250. modoboa/webmail/lib/imapemail.py +9 -11
  251. modoboa/webmail/lib/imapheader.py +25 -13
  252. modoboa/webmail/lib/imaputils.py +51 -13
  253. modoboa/webmail/lib/sendmail.py +88 -105
  254. modoboa/webmail/lib/utils.py +109 -0
  255. modoboa/webmail/migrations/0001_initial.py +90 -0
  256. modoboa/webmail/migrations/__init__.py +0 -0
  257. modoboa/webmail/mocks.py +12 -3
  258. modoboa/webmail/models.py +102 -0
  259. modoboa/webmail/serializers.py +84 -4
  260. modoboa/webmail/tests/data.py +21 -0
  261. modoboa/webmail/tests/test_lib_imaputils.py +33 -0
  262. modoboa/webmail/tests/test_viewsets.py +108 -0
  263. modoboa/webmail/urls.py +5 -0
  264. modoboa/webmail/viewsets.py +39 -9
  265. {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/METADATA +16 -13
  266. {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/RECORD +271 -254
  267. {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/WHEEL +1 -1
  268. modoboa/admin/management/commands/handle_mailbox_operations.py +0 -103
  269. modoboa/core/management/commands/cleanlogs.py +0 -53
  270. modoboa/frontend_dist/assets/AccountLayout-B2HptJzY.js +0 -1
  271. modoboa/frontend_dist/assets/AccountPasswordSubForm-DpADntAL.js +0 -1
  272. modoboa/frontend_dist/assets/AccountView-CJBGh9Oe.js +0 -1
  273. modoboa/frontend_dist/assets/AddressBook-CrFqzlzZ.js +0 -1
  274. modoboa/frontend_dist/assets/AdminLayout-BbCt7YxX.js +0 -1
  275. modoboa/frontend_dist/assets/AlarmsView-CIlt_IKQ.js +0 -1
  276. modoboa/frontend_dist/assets/AliasRecipientForm-jjj5yJJw.js +0 -1
  277. modoboa/frontend_dist/assets/AuditTrailView-sWnED3E9.js +0 -1
  278. modoboa/frontend_dist/assets/CalendarView-DSCBIvef.js +0 -1
  279. modoboa/frontend_dist/assets/ChoiceField-RDT6XcnX.js +0 -1
  280. modoboa/frontend_dist/assets/ComposeEmailForm-D3yUbBJX.css +0 -1
  281. modoboa/frontend_dist/assets/ComposeEmailForm-G3sXQAwI.js +0 -1
  282. modoboa/frontend_dist/assets/ComposeEmailView-Ce1CtFjD.js +0 -1
  283. modoboa/frontend_dist/assets/ConfirmDialog-Du7aqKbR.js +0 -1
  284. modoboa/frontend_dist/assets/ConnectedLayout-BHWaBAzH.js +0 -1
  285. modoboa/frontend_dist/assets/CreationForm-CjtILq0_.js +0 -1
  286. modoboa/frontend_dist/assets/DashboardView-DFNwusDZ.js +0 -1
  287. modoboa/frontend_dist/assets/DomainsView-CYxLy-3Y.js +0 -1
  288. modoboa/frontend_dist/assets/EmailField-DmPc4pyP.js +0 -1
  289. modoboa/frontend_dist/assets/EmailView-BE3vYZtJ.js +0 -1
  290. modoboa/frontend_dist/assets/EmptyLayout-DMwKNHfI.js +0 -1
  291. modoboa/frontend_dist/assets/FiltersView-Dps3_fAh.js +0 -1
  292. modoboa/frontend_dist/assets/ForwardEmailView-C0I00eXf.js +0 -1
  293. modoboa/frontend_dist/assets/IdentitiesView-CoGBVhZx.js +0 -1
  294. modoboa/frontend_dist/assets/InformationView-eB2ayeLD.js +0 -1
  295. modoboa/frontend_dist/assets/MailboxView-DIVABvk5.css +0 -1
  296. modoboa/frontend_dist/assets/MailboxView-DNokO2WZ.js +0 -5
  297. modoboa/frontend_dist/assets/MenuItems-dl38msRA.js +0 -1
  298. modoboa/frontend_dist/assets/MessagesView-BZ7NUOwo.js +0 -1
  299. modoboa/frontend_dist/assets/MigrationsView-DcOVgmcH.js +0 -1
  300. modoboa/frontend_dist/assets/ParametersView-B6abt-LH.js +0 -1
  301. modoboa/frontend_dist/assets/ParametersView-v0YS6WU4.js +0 -1
  302. modoboa/frontend_dist/assets/ProviderEditView-BaL9mKxJ.js +0 -1
  303. modoboa/frontend_dist/assets/ProviderGeneralForm-eoHMDO5v.js +0 -1
  304. modoboa/frontend_dist/assets/ProvidersView-Zu-G35u7.js +0 -1
  305. modoboa/frontend_dist/assets/QuarantineLayout-BHiiksnP.js +0 -1
  306. modoboa/frontend_dist/assets/QuarantineView-BOXSobRz.js +0 -1
  307. modoboa/frontend_dist/assets/ReplyEmailView-JmSiNWPy.js +0 -1
  308. modoboa/frontend_dist/assets/ResourcesForm-D0YBapCG.js +0 -1
  309. modoboa/frontend_dist/assets/SelfServiceLayout-DUmQzUDk.js +0 -1
  310. modoboa/frontend_dist/assets/SettingsView-DIvKGRBY.css +0 -1
  311. modoboa/frontend_dist/assets/SettingsView-DMuaKagM.js +0 -6
  312. modoboa/frontend_dist/assets/StatisticsView-CyY_CNcI.js +0 -1
  313. modoboa/frontend_dist/assets/TimeSerieChart-BTDBH33K.js +0 -1
  314. modoboa/frontend_dist/assets/TimeSerieChart-C3XHmlRd.css +0 -1
  315. modoboa/frontend_dist/assets/UserLayout-DwxcQr4L.js +0 -1
  316. modoboa/frontend_dist/assets/VApp-B0vRc3-6.js +0 -1
  317. modoboa/frontend_dist/assets/VAutocomplete-Huaz_-hf.js +0 -1
  318. modoboa/frontend_dist/assets/VAutocomplete-hzGuLlUI.css +0 -1
  319. modoboa/frontend_dist/assets/VAvatar-JdJfoK0C.js +0 -1
  320. modoboa/frontend_dist/assets/VBadge-Cg5iu5LG.js +0 -1
  321. modoboa/frontend_dist/assets/VCheckbox-CCLOJFKF.js +0 -1
  322. modoboa/frontend_dist/assets/VColorPicker-452uc3tY.js +0 -1
  323. modoboa/frontend_dist/assets/VDataTable-BkLLfcQK.js +0 -1
  324. modoboa/frontend_dist/assets/VDataTableServer-B_6fWBA3.js +0 -1
  325. modoboa/frontend_dist/assets/VDataTableVirtual-Ike7oqcC.js +0 -1
  326. modoboa/frontend_dist/assets/VDialog-DIUeAIpw.js +0 -1
  327. modoboa/frontend_dist/assets/VExpansionPanels-BeMgiS7A.js +0 -1
  328. modoboa/frontend_dist/assets/VFileInput-Dvj95FL5.js +0 -1
  329. modoboa/frontend_dist/assets/VForm-DkphQD3e.js +0 -1
  330. modoboa/frontend_dist/assets/VInput-CbqehdOu.js +0 -1
  331. modoboa/frontend_dist/assets/VMenu-B6SCtOwT.js +0 -1
  332. modoboa/frontend_dist/assets/VMenu-BEipA1lw.css +0 -1
  333. modoboa/frontend_dist/assets/VPicker-BUx70Wjg.js +0 -1
  334. modoboa/frontend_dist/assets/VPicker-ClSXs6kv.css +0 -1
  335. modoboa/frontend_dist/assets/VProgressCircular-DTDGzl2O.js +0 -1
  336. modoboa/frontend_dist/assets/VRadioGroup-CS9ULZ1c.js +0 -1
  337. modoboa/frontend_dist/assets/VSelect-D5IXDPEX.js +0 -1
  338. modoboa/frontend_dist/assets/VSheet-HeHw6g5_.js +0 -1
  339. modoboa/frontend_dist/assets/VSpacer-BUxSSJbH.js +0 -1
  340. modoboa/frontend_dist/assets/VSwitch-Dh_dserW.js +0 -1
  341. modoboa/frontend_dist/assets/VTabs-5XSICLQP.js +0 -1
  342. modoboa/frontend_dist/assets/VTabs-NzpINroH.css +0 -1
  343. modoboa/frontend_dist/assets/VTextField-Cow3HZvI.css +0 -1
  344. modoboa/frontend_dist/assets/VTextField-QXQFhKxm.js +0 -1
  345. modoboa/frontend_dist/assets/VTextarea-Bdy4UKmV.js +0 -1
  346. modoboa/frontend_dist/assets/VTextarea-DyGjqrlm.css +0 -1
  347. modoboa/frontend_dist/assets/VToolbar-CB2GrZpA.css +0 -1
  348. modoboa/frontend_dist/assets/VToolbar-CyrYSqJZ.js +0 -1
  349. modoboa/frontend_dist/assets/VWindowItem-kZpArwK1.js +0 -1
  350. modoboa/frontend_dist/assets/WebmailLayout-BzW0LWYp.css +0 -1
  351. modoboa/frontend_dist/assets/WebmailLayout-CNUHODnw.js +0 -1
  352. modoboa/frontend_dist/assets/domains.store-D4ZqCQ-O.js +0 -1
  353. modoboa/frontend_dist/assets/filter-DHKXX97M.js +0 -1
  354. modoboa/frontend_dist/assets/global.store-DYMmGKpn.js +0 -1
  355. modoboa/frontend_dist/assets/importExport-C-adpHJX.js +0 -1
  356. modoboa/frontend_dist/assets/index-B1bntsLR.js +0 -995
  357. modoboa/frontend_dist/assets/languages-CxjoT69j.js +0 -1
  358. modoboa/frontend_dist/assets/transports-ChdHV5hX.js +0 -1
  359. modoboa/frontend_dist/assets/webmail-B7MNMkv_.js +0 -1
  360. modoboa/frontend_dist/assets/webmail.store-Cm-h6hhE.js +0 -1
  361. {modoboa-2.6.4.data → modoboa-2.7.0.data}/scripts/modoboa-admin.py +0 -0
  362. {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/entry_points.txt +0 -0
  363. {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/licenses/LICENSE +0 -0
  364. {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/top_level.txt +0 -0
@@ -1 +0,0 @@
1
- import{_ as k,i as _,h as V,d as B,l as o,o as a,e as n,t as u,y as m,F as r,s as f,c as L,m as F}from"./index-B1bntsLR.js";import{c as N}from"./VAvatar-JdJfoK0C.js";const P={class:"m-label"},w=["onClick"],I={class:"text-grey-darken-1"},S={__name:"ChoiceField",props:{modelValue:{type:[Number,String],default:null},label:{type:String,default:""},choices:{type:Array,default:()=>[]},disabled:{type:Boolean,default:!1},choicesPerLine:{type:Number,required:!1,default:null}},emits:["update:modelValue"],setup(s,{emit:b}){const l=s,h=b,c=_({get(){return l.modelValue},set(e){h("update:modelValue",e)}}),i=V([]);function p(){if(l.choicesPerLine){let e=0;for(;e<l.choices.length;){const d=l.choices.slice(e,e+l.choicesPerLine);i.value.push(d),e+=l.choicesPerLine}}else i.value.push(l.choices)}function v(e){return!l.disabled&&e===c.value?"primary":""}function y(e){l.disabled||(c.value=e)}return B(()=>{p()}),(e,d)=>(a(),o(r,null,[n("div",{class:m(["text-subtitle-1 text-grey-darken-1 mb-5",{"label--disabled":s.disabled}])},[n("label",P,u(s.label),1)],2),(a(!0),o(r,null,f(i.value,(x,C)=>(a(),o("div",{key:C,class:"d-flex flex-grow-0"},[(a(!0),o(r,null,f(x,(t,g)=>(a(),o("div",{key:g,class:m(["choice rounded pa-10 mr-4 text-center flex-grow-0 mb-4",{"choice--disabled":s.disabled,"choice--selected":!s.disabled&&c.value===t.value}]),onClick:z=>y(t.value)},[t.icon?(a(),L(N,{key:0,class:"d-block mb-2 mx-auto",color:v(t.value),size:"x-large",icon:t.icon},null,8,["color","icon"])):F("",!0),n("span",I,u(t.label),1)],10,w))),128))]))),128))],64))}},D=k(S,[["__scopeId","data-v-762c41e2"]]);export{D as C};
@@ -1 +0,0 @@
1
- .v-combobox--chips.v-input--density-compact .v-field--variant-solo .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-solo-inverted .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-filled .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-solo-filled .v-label.v-field-label--floating{top:0}.v-combobox .v-field .v-text-field__prefix,.v-combobox .v-field .v-text-field__suffix,.v-combobox .v-field .v-field__input,.v-combobox .v-field.v-field{cursor:text}.v-combobox .v-field .v-field__input>input{flex:1 1}.v-combobox .v-field input{min-width:64px}.v-combobox .v-field:not(.v-field--focused) input{min-width:0}.v-combobox .v-field--dirty .v-combobox__selection{margin-inline-end:2px}.v-combobox .v-combobox__selection-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-combobox__content{overflow:hidden}.v-combobox__content{box-shadow:0 2px 4px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 4px 5px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 10px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-menu>.v-overlay__content.v-combobox__content{border-radius:4px}.v-combobox__mask{background:rgb(var(--v-theme-surface-light))}.v-combobox__selection{display:inline-flex;align-items:center;height:1.5rem;letter-spacing:inherit;line-height:inherit;max-width:calc(100% - 4px)}.v-combobox__selection:first-child{margin-inline-start:0}.v-combobox--selecting-index .v-combobox__selection{opacity:var(--v-medium-emphasis-opacity)}.v-combobox--selecting-index .v-combobox__selection--selected{opacity:1}.v-combobox--selecting-index .v-field__input>input{caret-color:transparent}.v-combobox--single:not(.v-combobox--selection-slot).v-text-field input{flex:1 1;position:absolute;left:0;right:0;width:100%;padding-inline:inherit}.v-combobox--single:not(.v-combobox--selection-slot) .v-field--active input{transition:none}.v-combobox--single:not(.v-combobox--selection-slot) .v-field--dirty:not(.v-field--focused) input{opacity:0}.v-combobox--single:not(.v-combobox--selection-slot) .v-field--focused .v-combobox__selection{opacity:0}.v-combobox__menu-icon{margin-inline-start:4px;transition:.2s cubic-bezier(.4,0,.2,1)}.v-combobox--active-menu .v-combobox__menu-icon{transform:rotate(180deg)}
@@ -1 +0,0 @@
1
- import{h as C,c as ae,o as q,w as p,a,k as De,t as J,e as S,f as y,l as ce,F as se,s as Ge,H as ke,A as Je,z as W,I as We,J as Ye,K as Qe,a6 as le,O as we,a5 as Xe,i as L,a0 as oe,bS as Ze,aq as el,v as j,P as ll,bT as al,ar as Se,at as tl,au as ol,a1 as nl,y as ul,b as sl,n as il,u as rl,B as dl,q as cl,m as de}from"./index-B1bntsLR.js";import{d as ml}from"./index-Bp9Fb67E.js";import{a as N}from"./webmail-B7MNMkv_.js";import{V as Me,r as pe}from"./VForm-DkphQD3e.js";import{c as vl,V as fl,b as pl,a as gl}from"./VCard-BoH6kjPa.js";import{V as hl}from"./VFileInput-Dvj95FL5.js";import{V as I,Y as _e,q as Fe,c as Ae,b as Vl,e as yl}from"./VAvatar-JdJfoK0C.js";import{V as bl}from"./VTable-gDsAUSLX.js";import{V as xl}from"./VSpacer-BUxSSJbH.js";import{_ as Cl}from"./HtmlEditor-D753fIAJ.js";import{V as kl}from"./VTextarea-Bdy4UKmV.js";import{c as wl}from"./contacts-Df8ptuMn.js";import{V as Sl}from"./VToolbar-CyrYSqJZ.js";import{V as ne,a as P}from"./VRow-CuVZGqBj.js";import{c as _l,d as Fl,e as Al,f as El,V as Dl,a as Ml}from"./VSelect-D5IXDPEX.js";import{V as ge,b as Ul}from"./VTextField-QXQFhKxm.js";import{b as Il}from"./VProgressCircular-DTDGzl2O.js";import{u as Tl,m as Rl,h as Pl}from"./filter-DHKXX97M.js";import{a as Bl}from"./VInput-CbqehdOu.js";import{f as $l,t as ue,g as ql,V as zl,a as Ll,b as Ee,d as jl,h as Nl}from"./VMenu-B6SCtOwT.js";import{V as Hl}from"./VCheckboxBtn-Ccl786Rg.js";import{u as Ol}from"./tag-BmV84V2s.js";import{V as Kl}from"./VDialog-DIUeAIpw.js";const Gl={class:"w-100 d-flex justify-center"},Jl={__name:"AttachmentsDialog",props:{sessionUid:{type:String,default:null}},emits:["close"],setup(e,{emit:H}){const h=e,o=H,_=C([]),g=C(),m=C(),F=C(!1),T=()=>{o("close")},A=async()=>{const{valid:n}=await m.value.validate();if(!n)return;const E=new FormData;E.append("attachment",g.value),F.value=!0;try{const i=await N.uploadAttachment(h.sessionUid,E);_.value.push(i.data),m.value.reset()}finally{F.value=!1}},k=async n=>{await N.removeAttachment(h.sessionUid,n.tmpname);const E=_.value.findIndex(i=>i.tmpname===n.tmpname);_.value.splice(E,1)};return N.getComposeSession(h.sessionUid).then(n=>{_.value=n.data.attachments}),(n,E)=>(q(),ae(gl,null,{default:p(()=>[a(vl,null,{default:p(()=>[De(J(n.$gettext("Attachments")),1)]),_:1}),a(fl,null,{default:p(()=>[a(Me,{ref_key:"formRef",ref:m},{default:p(()=>[a(hl,{modelValue:g.value,"onUpdate:modelValue":E[0]||(E[0]=i=>g.value=i),density:"compact",variant:"outlined",rules:[y(pe).required]},null,8,["modelValue","rules"]),S("div",Gl,[a(I,{color:"primary",variant:"tonal",text:n.$gettext("Attach"),onClick:A},null,8,["text"])])]),_:1},512),a(bl,{class:"mt-4 border-sm"},{default:p(()=>[S("tbody",null,[(q(!0),ce(se,null,Ge(_.value,i=>(q(),ce("tr",{key:i.fname},[S("td",null,J(i.fname),1),S("td",null,[a(I,{icon:"mdi-trash-can",color:"error",size:"small",variant:"text",onClick:te=>k(i)},null,8,["onClick"])])]))),128))])]),_:1})]),_:1}),a(pl,null,{default:p(()=>[a(xl),a(I,{text:n.$gettext("Close"),variant:"flat",onClick:T},null,8,["text"])]),_:1})]),_:1}))}},Wl={class:"mt-8"},Yl={__name:"BodyEditor",props:ke({editorMode:{type:String,default:null}},{modelValue:{},modelModifiers:{}}),emits:ke(["onToggleHtmlMode"],["update:modelValue"]),setup(e,{emit:H}){const h=e,o=Je(e,"modelValue"),_=H,g=C(!1),m=C(),F=()=>{g.value=!g.value,_("onToggleHtmlMode",g.value)};return W(()=>h.editorMode,T=>{g.value=T==="html"}),(T,A)=>g.value?(q(),ae(y(Cl),{key:0,modelValue:o.value,"onUpdate:modelValue":A[1]||(A[1]=k=>o.value=k),class:"d-flex flex-column flex-grow-1 mt-4"},{"append-toolbar":p(()=>[a(_e,{modelValue:m.value,"onUpdate:modelValue":A[0]||(A[0]=k=>m.value=k),"base-color":"grey-lighten-3",color:"primary",class:"mr-2"},{default:p(()=>[a(I,{text:"HTML",size:"small",onClick:F})]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])):(q(),ce(se,{key:1},[S("div",Wl,[a(_e,{modelValue:m.value,"onUpdate:modelValue":A[2]||(A[2]=k=>m.value=k),"base-color":"grey-lighten-3",color:"primary",class:"mr-2"},{default:p(()=>[a(I,{text:"HTML",size:"small",onClick:F})]),_:1},8,["modelValue"])]),a(kl,{modelValue:o.value,"onUpdate:modelValue":A[3]||(A[3]=k=>o.value=k),class:"border-sm"},null,8,["modelValue"])],64))}},Ql=Ye({alwaysFilter:Boolean,autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...Rl({filterKeys:["title"]}),...Al({hideNoData:!0,returnObject:!0}),...ll(Ul({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"])},"VCombobox"),fe=We()({name:"VCombobox",props:Ql(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:search":e=>!0,"update:menu":e=>!0},setup(e,H){var Ve;let{emit:h,slots:o}=H;const{t:_}=Qe(),g=C(),m=le(!1),F=le(!0),T=le(!1),A=C(),k=C(),n=le(-1);let E=!1;const{items:i,transformIn:te,transformOut:Y}=$l(e),{textColorClasses:O,textColorStyles:Q}=Il(()=>{var l;return(l=g.value)==null?void 0:l.color}),c=we(e,"modelValue",[],l=>te(Xe(l)),l=>{const s=Y(l);return e.multiple?s:s[0]??null}),X=Bl(e),Z=L(()=>!!(e.chips||o.chip)),R=L(()=>Z.value||!!o.selection),M=le(!e.multiple&&!R.value?((Ve=c.value[0])==null?void 0:Ve.title)??"":""),K=le(null),b=L({get:()=>M.value,set:async l=>{var s;if(M.value=l??"",l===null||l===""&&!e.multiple&&!R.value?c.value=[]:!e.multiple&&!R.value&&(c.value=[ue(e,l)],oe(()=>{var x;return(x=k.value)==null?void 0:x.scrollToIndex(0)})),l&&e.multiple&&((s=e.delimiters)!=null&&s.length)){const x=e.delimiters.map(Ze).join("|"),u=l.split(new RegExp(`(?:${x})+`));if(u.length>1){for(let V of u)V=V.trim(),V&&(B(ue(e,V)),await oe());M.value=""}}l||(n.value=-1),F.value=!l}}),ie=L(()=>typeof e.counterValue=="function"?e.counterValue(c.value):typeof e.counterValue=="number"?e.counterValue:e.multiple?c.value.length:b.value.length),{filteredItems:f,getMatches:t}=Tl(e,i,()=>K.value??(e.alwaysFilter||!F.value?b.value:"")),d=L(()=>e.hideSelected&&K.value===null?f.value.filter(l=>!c.value.some(s=>s.value===l.value)):f.value),G=L(()=>e.hideNoData&&!d.value.length||X.isReadonly.value||X.isDisabled.value),ee=we(e,"menu"),v=L({get:()=>ee.value,set:l=>{var s;ee.value&&!l&&((s=A.value)!=null&&s.ΨopenChildren.size)||l&&G.value||(ee.value=l)}}),{menuId:z,ariaExpanded:Ue,ariaControls:Ie,ariaLabel:he}=_l(e,v);W(M,l=>{E?oe(()=>E=!1):m.value&&!v.value&&(v.value=!0),h("update:search",l)}),W(c,l=>{var s;!e.multiple&&!R.value&&(M.value=((s=l[0])==null?void 0:s.title)??"")});const Te=L(()=>c.value.map(l=>l.value)),me=L(()=>{var s;return(e.autoSelectFirst===!0||e.autoSelectFirst==="exact"&&b.value===((s=d.value[0])==null?void 0:s.title))&&d.value.length>0&&!F.value&&!T.value}),ve=C(),Re=Fl(ve,g);function Pe(l){E=!0,oe(()=>E=!1),e.openOnClear&&(v.value=!0)}function Be(){G.value||(v.value=!0)}function $e(l){G.value||(m.value&&(l.preventDefault(),l.stopPropagation()),v.value=!v.value)}function qe(l){var s;(Se(l)||l.key==="Backspace")&&((s=g.value)==null||s.focus())}function ze(l){var u,V,w,$;if(al(l)||X.isReadonly.value)return;const s=(u=g.value)==null?void 0:u.selectionStart,x=c.value.length;if(["Enter","ArrowDown","ArrowUp"].includes(l.key)&&l.preventDefault(),["Enter","ArrowDown"].includes(l.key)&&(v.value=!0),["Escape"].includes(l.key)&&(v.value=!1),me.value&&["Enter","Tab"].includes(l.key)&&!c.value.some(r=>{let{value:U}=r;return U===d.value[0].value})&&B(f.value[0]),l.key==="ArrowDown"&&me.value&&((V=ve.value)==null||V.focus("next")),l.key==="Enter"&&b.value&&(B(ue(e,b.value),!0,!0),R.value&&(M.value="")),["Backspace","Delete"].includes(l.key)){if(!e.multiple&&R.value&&c.value.length>0&&!b.value)return B(c.value[0],!1);if(~n.value){l.preventDefault();const r=n.value;B(c.value[n.value],!1),n.value=r>=x-1?x-2:r}else l.key==="Backspace"&&!b.value&&(n.value=x-1);return}if(e.multiple)if(l.key==="ArrowLeft"){if(n.value<0&&s&&s>0)return;const r=n.value>-1?n.value-1:x-1;c.value[r]?n.value=r:(n.value=-1,(w=g.value)==null||w.setSelectionRange(b.value.length,b.value.length))}else if(l.key==="ArrowRight"){if(n.value<0)return;const r=n.value+1;c.value[r]?n.value=r:(n.value=-1,($=g.value)==null||$.setSelectionRange(0,0))}else~n.value&&Se(l)&&(n.value=-1)}function Le(){var l;e.eager&&((l=k.value)==null||l.calculateVisibleItems())}function je(){var l;m.value&&((l=g.value)==null||l.focus()),F.value=!0,K.value=null}function B(l){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,x=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;if(!(!l||l.props.disabled))if(e.multiple){const u=c.value.findIndex(w=>(e.valueComparator||Fe)(w.value,l.value)),V=s??!~u;if(~u){const w=V?[...c.value,l]:[...c.value];w.splice(u,1),c.value=w}else V&&(c.value=[...c.value,l]);e.clearOnSelect&&(b.value="")}else{const u=s!==!1;c.value=u?[l]:[],(!F.value||e.alwaysFilter)&&M.value&&(K.value=M.value),M.value=u&&!R.value?l.title:"",oe(()=>{v.value=x,F.value=!0})}}function Ne(l){m.value=!0,setTimeout(()=>{T.value=!0})}function He(l){T.value=!1}return W(m,(l,s)=>{if(!(l||l===s)&&(n.value=-1,v.value=!1,b.value)){if(e.multiple){B(ue(e,b.value));return}if(!R.value)return;c.value.some(x=>{let{title:u}=x;return u===b.value})?M.value="":B(ue(e,b.value))}}),W(v,l=>{if(!e.hideSelected&&l&&c.value.length&&F.value){const s=d.value.findIndex(x=>c.value.some(u=>(e.valueComparator||Fe)(u.value,x.value)));el&&window.requestAnimationFrame(()=>{var x;s>=0&&((x=k.value)==null||x.scrollToIndex(s))})}l&&(K.value=null)}),W(i,(l,s)=>{v.value||m.value&&!s.length&&l.length&&(v.value=!0)}),Ol(()=>{const l=!!(!e.hideNoData||d.value.length||o["prepend-item"]||o["append-item"]||o["no-data"]),s=c.value.length>0,x=ge.filterProps(e);return a(ge,j({ref:g},x,{modelValue:b.value,"onUpdate:modelValue":u=>b.value=u,focused:m.value,"onUpdate:focused":u=>m.value=u,validationValue:c.externalValue,counterValue:ie.value,dirty:s,class:["v-combobox",{"v-combobox--active-menu":v.value,"v-combobox--chips":!!e.chips,"v-combobox--selection-slot":!!R.value,"v-combobox--selecting-index":n.value>-1,[`v-combobox--${e.multiple?"multiple":"single"}`]:!0},e.class],style:e.style,readonly:X.isReadonly.value,placeholder:s?void 0:e.placeholder,"onClick:clear":Pe,"onMousedown:control":Be,onKeydown:ze,"aria-expanded":Ue.value,"aria-controls":Ie.value}),{...o,default:()=>S(se,null,[a(zl,j({id:z.value,ref:A,modelValue:v.value,"onUpdate:modelValue":u=>v.value=u,activator:"parent",contentClass:"v-combobox__content",disabled:G.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,onAfterEnter:Le,onAfterLeave:je},e.menuProps),{default:()=>[l&&a(Ll,j({ref:ve,filterable:!0,selected:Te.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:u=>u.preventDefault(),selectable:!0,onKeydown:qe,onFocusin:Ne,onFocusout:He,tabindex:"-1","aria-live":"polite",color:e.itemColor??e.color},Re,e.listProps),{default:()=>{var u,V,w;return[(u=o["prepend-item"])==null?void 0:u.call(o),!d.value.length&&!e.hideNoData&&(((V=o["no-data"])==null?void 0:V.call(o))??a(Ee,{key:"no-data",title:_(e.noDataText)},null)),a(El,{ref:k,renderless:!0,items:d.value,itemKey:"value"},{default:$=>{var be,xe,Ce;let{item:r,index:U,itemRef:D}=$;const ye=j(r.props,{ref:D,key:r.value,active:me.value&&U===0?!0:void 0,onClick:()=>B(r,null)});return r.type==="divider"?((be=o.divider)==null?void 0:be.call(o,{props:r.raw,index:U}))??a(jl,j(r.props,{key:`divider-${U}`}),null):r.type==="subheader"?((xe=o.subheader)==null?void 0:xe.call(o,{props:r.raw,index:U}))??a(Nl,j(r.props,{key:`subheader-${U}`}),null):((Ce=o.item)==null?void 0:Ce.call(o,{item:r,index:U,props:ye}))??a(Ee,j(ye,{role:"option"}),{prepend:re=>{let{isSelected:Oe}=re;return S(se,null,[e.multiple&&!e.hideSelected?a(Hl,{key:r.value,modelValue:Oe,ripple:!1,tabindex:"-1",onClick:Ke=>Ke.preventDefault()},null):void 0,r.props.prependAvatar&&a(Vl,{image:r.props.prependAvatar},null),r.props.prependIcon&&a(Ae,{icon:r.props.prependIcon},null)])},title:()=>{var re;return F.value?r.title:Pl("v-combobox",r.title,(re=t(r))==null?void 0:re.title)}})}}),(w=o["append-item"])==null?void 0:w.call(o)]}})]}),c.value.map((u,V)=>{function w(D){D.stopPropagation(),D.preventDefault(),B(u,!1)}const $={"onClick:close":w,onKeydown(D){D.key!=="Enter"&&D.key!==" "||(D.preventDefault(),D.stopPropagation(),w(D))},onMousedown(D){D.preventDefault(),D.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},r=Z.value?!!o.chip:!!o.selection,U=r?ol(Z.value?o.chip({item:u,index:V,props:$}):o.selection({item:u,index:V})):void 0;if(!(r&&!U))return S("div",{key:u.value,class:ul(["v-combobox__selection",V===n.value&&["v-combobox__selection--selected",O.value]]),style:nl(V===n.value?Q.value:{})},[Z.value?o.chip?a(yl,{key:"chip-defaults",defaults:{VChip:{closable:e.closableChips,size:"small",text:u.title}}},{default:()=>[U]}):a(Dl,j({key:"chip",closable:e.closableChips,size:"small",text:u.title,disabled:u.props.disabled},$),null):U??S("span",{class:"v-combobox__selection-text"},[u.title,e.multiple&&V<c.value.length-1&&S("span",{class:"v-combobox__selection-comma"},[De(",")])])])})]),"append-inner":function(){var $,r;for(var u=arguments.length,V=new Array(u),w=0;w<u;w++)V[w]=arguments[w];return S(se,null,[($=o["append-inner"])==null?void 0:$.call(o,...V),(!e.hideNoData||e.items.length)&&e.menuIcon?a(Ae,{class:"v-combobox__menu-icon",color:(r=g.value)==null?void 0:r.fieldIconColor,icon:e.menuIcon,onMousedown:$e,onClick:tl,"aria-label":he.value,title:he.value,tabindex:"-1"},null):void 0])}})}),ql({isFocused:m,isPristine:F,menu:v,search:b,selectionIndex:n,filteredItems:f,select:B},g)}}),Xl={class:"position-relative h-100"},Zl={class:"bg-white rounded-lg pa-4 position-relative h-100 d-flex flex-column"},ka={__name:"ComposeEmailForm",props:{originalEmail:{type:Object,default:null},replyAll:{type:Boolean,default:!1}},emits:["onToggleHtmlMode"],setup(e,{emit:H}){const h=e,o=H,_=dl(),g=cl(),{$gettext:m}=sl(),{displayNotification:F}=il(),T=rl(),A=C([]),k=C(0),n=C([]),E=C("plain"),i=C({}),te=C(),Y=C(!1),O=C(!1),Q=C(!1),c=C(!1),X=()=>{g.push({name:"MailboxView"})},Z=()=>{if(i.value={sender:T.authUser.username},h.originalEmail){if(i.value.to=h.originalEmail.reply_to?[h.originalEmail.reply_to]:[h.originalEmail.from_address.address],h.replyAll){let f=h.originalEmail.to.filter(t=>t.address!==T.authUser.username).map(t=>t.fulladdress);h.originalEmail.cc&&h.originalEmail.cc.length&&(f=f.concat(h.originalEmail.cc.map(t=>t.fulladdress))),i.value.cc=f,O.value=!0}i.value.subject=h.originalEmail.subject,i.value.body=h.originalEmail.body,h.originalEmail.message_id&&(i.value.in_reply_to=h.originalEmail.message_id)}},R=async()=>{var G,ee;const{valid:f}=await te.value.validate();if(!f)return;c.value=!0;const t={...i.value},d=[];for(const v of t.to)d.push(typeof v=="string"?v:v.emails[0].address);if(t.to=d,(G=t.cc)!=null&&G.length){const v=[];for(const z of t.cc)v.push(typeof z=="string"?z:z.emails[0].address);t.cc=v}if((ee=t.bcc)!=null&&ee.length){const v=[];for(const z of t.bcc)v.push(typeof z=="string"?z:z.emails[0].address);t.bcc=v}try{await N.sendEmailFromComposeSession(_.query.uid,t),g.push({name:"MailboxView"}),F({msg:m("Email sent")})}catch(v){console.log(v)}finally{c.value=!1}},M=()=>{Y.value=!0},K=async()=>{Y.value=!1;const f=await N.getUploadedAttachments(_.query.uid);k.value=f.data.length},b=ml(async f=>{if(f){const t={search:f},d=await wl.getContacts(t);d.data.length&&(n.value=d.data)}else n.value=[]},500),ie=f=>{f.signature&&(i.value.body?i.value.body+=f.signature:i.value.body=f.signature),E.value=f.editor_format};return W(()=>h.originalEmail,()=>{Z()},{immediate:!0}),_.query.uid?N.getComposeSession(_.query.uid).then(f=>{k.value=f.data.attachments.length,ie(f.data)}):N.createComposeSession().then(f=>{const t={..._.query,uid:f.data.uid};g.push({name:_.name,query:t}),ie(f.data)}),N.getAllowedSenders().then(f=>{A.value=f.data}),(f,t)=>(q(),ce("div",Xl,[S("div",Zl,[a(Sl,{color:"white"},{default:p(()=>[a(I,{icon:"mdi-arrow-left",size:"small",variant:"flat",onClick:X}),a(I,{class:"ml-2",color:"primary",variant:"tonal","prepend-icon":"mdi-send",loading:c.value,text:y(m)("Send"),onClick:R},null,8,["loading","text"]),a(I,{class:"ml-2",variant:"tonal","prepend-icon":"mdi-paperclip",text:y(m)("Attachments")+` (${k.value})`,onClick:M},null,8,["text"])]),_:1}),a(Me,{ref_key:"formRef",ref:te,class:"flex-grow-1 d-flex flex-column"},{default:p(()=>[S("div",null,[a(ne,{class:"align-center"},{default:p(()=>[a(P,{cols:"2"},{default:p(()=>[S("span",null,J(y(m)("From")),1)]),_:1}),a(P,{cols:"8"},{default:p(()=>[a(Ml,{modelValue:i.value.sender,"onUpdate:modelValue":t[0]||(t[0]=d=>i.value.sender=d),items:A.value,"item-title":"address","item-value":"address",variant:"outlined",density:"compact","hide-details":"auto",rules:[y(pe).required]},null,8,["modelValue","items","rules"])]),_:1})]),_:1}),a(ne,{class:"align-center"},{default:p(()=>[a(P,{cols:"2"},{default:p(()=>[S("span",null,J(y(m)("To")),1)]),_:1}),a(P,{cols:"8"},{default:p(()=>[a(fe,{modelValue:i.value.to,"onUpdate:modelValue":t[1]||(t[1]=d=>i.value.to=d),items:n.value,"item-title":"display_name","return-object":"",placeholder:y(m)("Provide one or more addresses"),variant:"outlined",density:"compact","hide-details":"auto",chips:"",multiple:"",rules:[y(pe).required],"onUpdate:search":y(b)},null,8,["modelValue","items","placeholder","rules","onUpdate:search"])]),_:1}),a(P,{cols:"2"},{default:p(()=>[O.value?de("",!0):(q(),ae(I,{key:0,text:y(m)("Cc"),"prepend-icon":"mdi-plus",size:"x-small",variant:"flat",onClick:t[2]||(t[2]=d=>O.value=!0)},null,8,["text"])),Q.value?de("",!0):(q(),ae(I,{key:1,text:y(m)("Bcc"),"prepend-icon":"mdi-plus",size:"x-small",variant:"flat",onClick:t[3]||(t[3]=d=>Q.value=!0)},null,8,["text"]))]),_:1})]),_:1}),O.value?(q(),ae(ne,{key:0,class:"align-center"},{default:p(()=>[a(P,{cols:"2"},{default:p(()=>[S("span",null,J(y(m)("Cc")),1),a(I,{icon:"mdi-close",variant:"flat",size:"x-small",onClick:t[4]||(t[4]=d=>O.value=!1)})]),_:1}),a(P,{cols:"8"},{default:p(()=>[a(fe,{modelValue:i.value.cc,"onUpdate:modelValue":t[5]||(t[5]=d=>i.value.cc=d),items:n.value,"item-title":"display_name","return-object":"",placeholder:y(m)("Provide one or more addresses"),variant:"outlined",density:"compact","hide-details":"auto",chips:"",multiple:"","hide-no-data":!1,"onUpdate:search":y(b)},null,8,["modelValue","items","placeholder","onUpdate:search"])]),_:1})]),_:1})):de("",!0),Q.value?(q(),ae(ne,{key:1,class:"align-center"},{default:p(()=>[a(P,{cols:"2"},{default:p(()=>[S("span",null,J(y(m)("Bcc")),1),a(I,{icon:"mdi-close",variant:"flat",size:"x-small",onClick:t[6]||(t[6]=d=>Q.value=!1)})]),_:1}),a(P,{cols:"8"},{default:p(()=>[a(fe,{modelValue:i.value.bcc,"onUpdate:modelValue":t[7]||(t[7]=d=>i.value.bcc=d),items:n.value,"item-title":"display_name","return-object":"",placeholder:y(m)("Provide one or more addresses"),variant:"outlined",density:"compact","hide-details":"auto",chips:"",multiple:"","hide-no-data":!1,"onUpdate:search":y(b)},null,8,["modelValue","items","placeholder","onUpdate:search"])]),_:1})]),_:1})):de("",!0),a(ne,{class:"align-center"},{default:p(()=>[a(P,{cols:"2"},{default:p(()=>[S("span",null,J(y(m)("Subject")),1)]),_:1}),a(P,{cols:"8"},{default:p(()=>[a(ge,{modelValue:i.value.subject,"onUpdate:modelValue":t[8]||(t[8]=d=>i.value.subject=d),variant:"outlined",density:"compact","hide-details":"auto"},null,8,["modelValue"])]),_:1})]),_:1})]),a(y(Yl),{modelValue:i.value.body,"onUpdate:modelValue":t[9]||(t[9]=d=>i.value.body=d),"editor-mode":E.value,onOnToggleHtmlMode:t[10]||(t[10]=d=>o("onToggleHtmlMode",d))},null,8,["modelValue","editor-mode"])]),_:1},512)]),a(Kl,{modelValue:Y.value,"onUpdate:modelValue":t[11]||(t[11]=d=>Y.value=d),"max-width":"800"},{default:p(()=>[a(y(Jl),{"session-uid":y(_).query.uid,onClose:K},null,8,["session-uid"])]),_:1},8,["modelValue"])]))}};export{ka as _};
@@ -1 +0,0 @@
1
- import{_ as o}from"./ComposeEmailForm-G3sXQAwI.js";import{c as r,f as t,o as m}from"./index-B1bntsLR.js";import"./index-Bp9Fb67E.js";import"./webmail-B7MNMkv_.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 F={__name:"ComposeEmailView",setup(p){return(i,e)=>(m(),r(t(o)))}};export{F as default};
@@ -1 +0,0 @@
1
- import{b as y,h as s,c as V,w as a,a as l,L as C,k as r,t as n,am as L,x as T,m as z,aV as D,o as x}from"./index-B1bntsLR.js";import{V as S,a as B}from"./VToolbar-CyrYSqJZ.js";import{V as K,b as N,a as I}from"./VCard-BoH6kjPa.js";import{V as O}from"./VSpacer-BUxSSJbH.js";import{V as _}from"./VAvatar-JdJfoK0C.js";import{V as $}from"./VDialog-DIUeAIpw.js";const U={__name:"ConfirmDialog",props:{callback_agree:{type:Function,default:null}},setup(b,{expose:g}){const{$gettext:f}=y(),m=b,o=s(!1),c=s(""),p=s("");let u;const e=s({color:"primary",width:400,zIndex:2400,noconfirm:!1,cancelLabel:f("Cancel"),agreeLabel:f("OK")});function w(i,t,d){return o.value=!0,p.value=i,c.value=t,e.value=Object.assign(e.value,d),new Promise(k=>{u=k})}g({open:w});async function h(){m.callback_agree!==null&&!await m.callback_agree()||(u(!0),o.value=!1)}function v(){u(!1),o.value=!1}return(i,t)=>(x(),V($,{modelValue:o.value,"onUpdate:modelValue":t[0]||(t[0]=d=>o.value=d),"max-width":e.value.width,"z-index":e.value.zIndex,onKeydown:D(v,["esc"])},{default:a(()=>[l(I,null,{default:a(()=>[l(S,{color:e.value.color,density:"compact",variant:"flat"},{default:a(()=>[l(B,{class:"text-body-2 font-weight-bold"},{default:a(()=>[r(n(p.value),1)]),_:1})]),_:1},8,["color"]),C(l(K,{class:"pa-4"},{default:a(()=>[r(n(c.value)+" ",1),T(i.$slots,"default")]),_:3},512),[[L,!!c.value]]),l(N,{class:"pt-3"},{default:a(()=>[l(O),e.value.noconfirm?z("",!0):(x(),V(_,{key:0,onClick:v},{default:a(()=>[r(n(e.value.cancelLabel),1)]),_:1})),l(_,{color:e.value.color,onClick:h},{default:a(()=>[r(n(e.value.agreeLabel),1)]),_:1},8,["color"])]),_:1})]),_:3})]),_:3},8,["modelValue","max-width","z-index"]))}};export{U as _};
@@ -1 +0,0 @@
1
- import{_ as oe,r as Oe,c as C,o as b,w as f,a as u,bc as pe,bd as Ye,a6 as A,i as x,a2 as He,d as ee,z as W,aB as we,be as Ue,ah as q,aa as ke,b8 as be,aE as We,I as _e,J as xe,ac as ze,ao as Ve,Q as Xe,O as Se,h as Y,a7 as te,a0 as Ce,aX as Fe,T as je,e as P,v as J,F as L,ap as Te,V as qe,u as Pe,q as Ge,f as O,p as Ze,l as I,s as G,m as Q,k as F,t as R,b as Be,bf as Je,ae as Ke,N as Qe,bg as et,P as tt,n as at,g as nt,x as ce}from"./index-B1bntsLR.js";import{u as ot}from"./theme-myV4ekXo.js";import{V as lt}from"./VContainer-DKMcKasC.js";import{V as rt,a as st}from"./VApp-B0vRc3-6.js";import{u as ut}from"./logos-95XYS6uH.js";import{u as it}from"./layout.store-CF5WRevH.js";import{x as ct,l as vt,n as Me,y as dt,z as ft,o as Ee,p as mt,A as ht,j as Le,e as Ie,V as Z,c as K,b as gt,B as yt,C as pt,g as wt,a as kt,D as bt,E as _t,F as xt}from"./VAvatar-JdJfoK0C.js";import{j as Ne,l as Vt,n as St,a as ne,h as Ct,b as $,o as Tt,V as ae,d as ve,c as de,e as fe,g as Pt,p as Bt}from"./VMenu-B6SCtOwT.js";import{u as me}from"./VProgressCircular-DTDGzl2O.js";import{u as $e,c as Mt,b as Et}from"./tag-BmV84V2s.js";import{a as Lt,b as It,V as Nt,u as $t}from"./layout-CjSP_k58.js";import{u as At}from"./ssrBoot-05WtbG6H.js";import{u as Dt}from"./global.store-DYMmGKpn.js";import{V as Rt}from"./VBadge-Cg5iu5LG.js";import{a as he}from"./VCard-BoH6kjPa.js";import{V as Ot,a as Yt}from"./VRow-CuVZGqBj.js";import{V as Ht}from"./VSheet-HeHw6g5_.js";const Ut={__name:"ConnectedView",setup(e){return(s,n)=>{const i=Oe("router-view");return b(),C(rt,null,{default:f(()=>[u(lt,{fluid:"",style:{height:"100%"}},{default:f(()=>[u(i,null,{default:f(({Component:t})=>[u(pe,{name:"fade"},{default:f(()=>[(b(),C(Ye(t)))]),_:2},1024)]),_:1})]),_:1})]),_:1})}}},Wt=oe(Ut,[["__scopeId","data-v-b2ffa9e6"]]);function zt(e){let{rootEl:s,isSticky:n,layoutItemStyles:i}=e;const t=A(!1),v=A(0),l=x(()=>{const _=typeof t.value=="boolean"?"top":t.value;return[n.value?{top:"auto",bottom:"auto",height:void 0}:void 0,t.value?{[_]:He(v.value)}:{top:i.value.top}]});ee(()=>{W(n,_=>{_?window.addEventListener("scroll",p,{passive:!0}):window.removeEventListener("scroll",p)},{immediate:!0})}),we(()=>{window.removeEventListener("scroll",p)});let y=0;function p(){const _=y>window.scrollY?"up":"down",o=s.value.getBoundingClientRect(),d=parseFloat(i.value.top??0),c=window.scrollY-Math.max(0,v.value-d),a=o.height+Math.max(v.value,d)-window.scrollY-window.innerHeight,r=parseFloat(getComputedStyle(s.value).getPropertyValue("--v-body-scroll-y"))||0;o.height<window.innerHeight-d?(t.value="top",v.value=d):_==="up"&&t.value==="bottom"||_==="down"&&t.value==="top"?(v.value=window.scrollY+o.top-r,t.value=!0):_==="down"&&a<=0?(v.value=0,t.value="bottom"):_==="up"&&c<=0&&(r?t.value!=="top"&&(v.value=-c+r+d,t.value="top"):(v.value=o.top+c,t.value="top")),y=window.scrollY}return{isStuck:t,stickyStyles:l}}const Xt=100,Ft=20;function ge(e){return(e<0?-1:1)*Math.sqrt(Math.abs(e))*1.41421356237}function ye(e){if(e.length<2)return 0;if(e.length===2)return e[1].t===e[0].t?0:(e[1].d-e[0].d)/(e[1].t-e[0].t);let s=0;for(let n=e.length-1;n>0;n--){if(e[n].t===e[n-1].t)continue;const i=ge(s),t=(e[n].d-e[n-1].d)/(e[n].t-e[n-1].t);s+=(t-i)*Math.abs(t),n===e.length-1&&(s*=.5)}return ge(s)*1e3}function jt(){const e={};function s(t){Array.from(t.changedTouches).forEach(v=>{(e[v.identifier]??(e[v.identifier]=new Ue(Ft))).push([t.timeStamp,v])})}function n(t){Array.from(t.changedTouches).forEach(v=>{delete e[v.identifier]})}function i(t){var _;const v=(_=e[t])==null?void 0:_.values().reverse();if(!v)throw new Error(`No samples for touch id ${t}`);const l=v[0],y=[],p=[];for(const o of v){if(l[0]-o[0]>Xt)break;y.push({t:o[0],d:o[1].clientX}),p.push({t:o[0],d:o[1].clientY})}return{x:ye(y),y:ye(p),get direction(){const{x:o,y:d}=this,[c,a]=[Math.abs(o),Math.abs(d)];return c>a&&o>=0?"right":c>a&&o<=0?"left":a>c&&d>=0?"down":a>c&&d<=0?"up":qt()}}}return{addMovement:s,endTouch:n,getVelocity:i}}function qt(){throw new Error}function Gt(e){let{el:s,isActive:n,isTemporary:i,width:t,touchless:v,position:l}=e;ee(()=>{window.addEventListener("touchstart",E,{passive:!0}),window.addEventListener("touchmove",B,{passive:!1}),window.addEventListener("touchend",z,{passive:!0})}),we(()=>{window.removeEventListener("touchstart",E),window.removeEventListener("touchmove",B),window.removeEventListener("touchend",z)});const y=x(()=>["left","right"].includes(l.value)),{addMovement:p,endTouch:_,getVelocity:o}=jt();let d=!1;const c=A(!1),a=A(0),r=A(0);let V;function D(m,g){return(l.value==="left"?m:l.value==="right"?document.documentElement.clientWidth-m:l.value==="top"?m:l.value==="bottom"?document.documentElement.clientHeight-m:X())-(g?t.value:0)}function H(m){let g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;const w=l.value==="left"?(m-r.value)/t.value:l.value==="right"?(document.documentElement.clientWidth-m-r.value)/t.value:l.value==="top"?(m-r.value)/t.value:l.value==="bottom"?(document.documentElement.clientHeight-m-r.value)/t.value:X();return g?We(w):w}function E(m){if(v.value)return;const g=m.changedTouches[0].clientX,w=m.changedTouches[0].clientY,k=25,S=l.value==="left"?g<k:l.value==="right"?g>document.documentElement.clientWidth-k:l.value==="top"?w<k:l.value==="bottom"?w>document.documentElement.clientHeight-k:X(),h=n.value&&(l.value==="left"?g<t.value:l.value==="right"?g>document.documentElement.clientWidth-t.value:l.value==="top"?w<t.value:l.value==="bottom"?w>document.documentElement.clientHeight-t.value:X());(S||h||n.value&&i.value)&&(V=[g,w],r.value=D(y.value?g:w,n.value),a.value=H(y.value?g:w),d=r.value>-20&&r.value<80,_(m),p(m))}function B(m){const g=m.changedTouches[0].clientX,w=m.changedTouches[0].clientY;if(d){if(!m.cancelable){d=!1;return}const S=Math.abs(g-V[0]),h=Math.abs(w-V[1]);(y.value?S>h&&S>3:h>S&&h>3)?(c.value=!0,d=!1):(y.value?h:S)>3&&(d=!1)}if(!c.value)return;m.preventDefault(),p(m);const k=H(y.value?g:w,!1);a.value=Math.max(0,Math.min(1,k)),k>1?r.value=D(y.value?g:w,!0):k<0&&(r.value=D(y.value?g:w,!1))}function z(m){if(d=!1,!c.value)return;p(m),c.value=!1;const g=o(m.changedTouches[0].identifier),w=Math.abs(g.x),k=Math.abs(g.y);(y.value?w>k&&w>400:k>w&&k>3)?n.value=g.direction===({left:"right",right:"left",top:"down",bottom:"up"}[l.value]||X()):n.value=a.value>.5}const U=x(()=>c.value?{transform:l.value==="left"?`translateX(calc(-100% + ${a.value*t.value}px))`:l.value==="right"?`translateX(calc(100% - ${a.value*t.value}px))`:l.value==="top"?`translateY(calc(-100% + ${a.value*t.value}px))`:l.value==="bottom"?`translateY(calc(100% - ${a.value*t.value}px))`:X(),transition:"none"}:void 0);return q(c,()=>{var w,k;const m=((w=s.value)==null?void 0:w.style.transform)??null,g=((k=s.value)==null?void 0:k.style.transition)??null;ke(()=>{var S,h,M,N;(h=s.value)==null||h.style.setProperty("transform",((S=U.value)==null?void 0:S.transform)||"none"),(N=s.value)==null||N.style.setProperty("transition",((M=U.value)==null?void 0:M.transition)||null)}),be(()=>{var S,h;(S=s.value)==null||S.style.setProperty("transform",m),(h=s.value)==null||h.style.setProperty("transition",g)})}),{isDragging:c,dragProgress:a,dragStyles:U}}function X(){throw new Error}const Zt=["start","end","left","right","top","bottom"],Jt=xe({color:String,disableResizeWatcher:Boolean,disableRouteWatcher:Boolean,expandOnHover:Boolean,floating:Boolean,modelValue:{type:Boolean,default:null},permanent:Boolean,rail:{type:Boolean,default:null},railWidth:{type:[Number,String],default:56},scrim:{type:[Boolean,String],default:!0},image:String,temporary:Boolean,persistent:Boolean,touchless:Boolean,width:{type:[Number,String],default:256},location:{type:String,default:"start",validator:e=>Zt.includes(e)},sticky:Boolean,...ht(),...Et(),...St(),...qe({mobile:null}),...mt(),...It(),...Ee(),...Mt({tag:"nav"}),...Te()},"VNavigationDrawer"),Kt=_e()({name:"VNavigationDrawer",props:Jt(),emits:{"update:modelValue":e=>!0,"update:rail":e=>!0},setup(e,s){let{attrs:n,emit:i,slots:t}=s;const{isRtl:v}=ze(),{themeClasses:l}=Ve(e),{borderClasses:y}=ct(e),{backgroundColorClasses:p,backgroundColorStyles:_}=me(()=>e.color),{elevationClasses:o}=vt(e),{displayClasses:d,mobile:c}=Xe(e),{roundedClasses:a}=Me(e),r=dt(),V=Se(e,"modelValue",null,T=>!!T),{ssrBootStyles:D}=At(),{scopeId:H}=Ne(),E=Y(),B=A(!1),{runOpenDelay:z,runCloseDelay:U}=Vt(e,T=>{B.value=T}),m=x(()=>e.rail&&e.expandOnHover&&B.value?Number(e.width):Number(e.rail?e.railWidth:e.width)),g=x(()=>ft(e.location,v.value)),w=te(()=>e.persistent),k=x(()=>!e.permanent&&(c.value||e.temporary)),S=x(()=>e.sticky&&!k.value&&g.value!=="bottom");q(()=>e.expandOnHover&&e.rail!=null,()=>{W(B,T=>i("update:rail",!T))}),q(()=>!e.disableResizeWatcher,()=>{W(k,T=>!e.permanent&&Ce(()=>V.value=!T))}),q(()=>!e.disableRouteWatcher&&!!r,()=>{W(r.currentRoute,()=>k.value&&(V.value=!1))}),W(()=>e.permanent,T=>{T&&(V.value=!0)}),e.modelValue==null&&!k.value&&(V.value=e.permanent||!c.value);const{isDragging:h,dragProgress:M}=Gt({el:E,isActive:V,isTemporary:k,width:m,touchless:te(()=>e.touchless),position:g}),N=x(()=>{const T=k.value?0:e.rail&&e.expandOnHover?Number(e.railWidth):m.value;return h.value?T*M.value:T}),{layoutItemStyles:j,layoutItemScrimStyles:Ae}=Lt({id:e.name,order:x(()=>parseInt(e.order,10)),position:g,layoutSize:N,elementSize:m,active:Fe(V),disableTransitions:te(()=>h.value),absolute:x(()=>e.absolute||S.value&&typeof le.value!="string")}),{isStuck:le,stickyStyles:De}=zt({rootEl:E,isSticky:S,layoutItemStyles:j}),re=me(()=>typeof e.scrim=="string"?e.scrim:null),Re=x(()=>({...h.value?{opacity:M.value*.2,transition:"none"}:void 0,...Ae.value}));return je({VList:{bgColor:"transparent"}}),$e(()=>{const T=t.image||e.image;return P(L,null,[u(e.tag,J({ref:E,onMouseenter:z,onMouseleave:U,class:["v-navigation-drawer",`v-navigation-drawer--${g.value}`,{"v-navigation-drawer--expand-on-hover":e.expandOnHover,"v-navigation-drawer--floating":e.floating,"v-navigation-drawer--is-hovering":B.value,"v-navigation-drawer--rail":e.rail,"v-navigation-drawer--temporary":k.value,"v-navigation-drawer--persistent":w.value,"v-navigation-drawer--active":V.value,"v-navigation-drawer--sticky":S.value},l.value,p.value,y.value,d.value,o.value,a.value,e.class],style:[_.value,j.value,D.value,De.value,e.style]},H,n),{default:()=>{var se,ue,ie;return[T&&P("div",{key:"image",class:"v-navigation-drawer__img"},[t.image?u(Ie,{key:"image-defaults",disabled:!e.image,defaults:{VImg:{alt:"",cover:!0,height:"inherit",src:e.image}}},t.image):u(Le,{key:"image-img",alt:"",cover:!0,height:"inherit",src:e.image},null)]),t.prepend&&P("div",{class:"v-navigation-drawer__prepend"},[(se=t.prepend)==null?void 0:se.call(t)]),P("div",{class:"v-navigation-drawer__content"},[(ue=t.default)==null?void 0:ue.call(t)]),t.append&&P("div",{class:"v-navigation-drawer__append"},[(ie=t.append)==null?void 0:ie.call(t)])]}}),u(pe,{name:"fade-transition"},{default:()=>[k.value&&(h.value||V.value)&&!!e.scrim&&P("div",J({class:["v-navigation-drawer__scrim",re.backgroundColorClasses.value],style:[Re.value,re.backgroundColorStyles.value],onClick:()=>{w.value||(V.value=!1)}},H),null)]})])}),{isStuck:le}}}),Qt={class:"d-flex align-center"},ea={__name:"NavBar",props:{color:{type:String,default:"primary"},menuItems:{type:Array,required:!1,default:null},logoRoute:{type:Object,default:null}},setup(e){const s=e,n=Pe(),i=it(),t=Ge(),{menuLogoPath:v}=ut(),l=Y(!1),y=Y(!0),p=x(()=>n.authUser),_=x(()=>n.isAuthenticated);function o(d){return _.value?(d.roles===void 0||d.roles.indexOf(p.value.role)!==-1)&&(d.condition===void 0||d.condition())&&d.activated!==!1:!1}return(d,c)=>(b(),C(Kt,{modelValue:y.value,"onUpdate:modelValue":c[2]||(c[2]=a=>y.value=a),rail:l.value,permanent:"",color:e.color,app:""},{default:f(()=>[P("div",Qt,[u(Le,{src:O(v),"max-width":"190",class:"logo",onClick:c[0]||(c[0]=a=>O(t).push(s.logoRoute))},null,8,["src"]),u(Z,{icon:l.value?"mdi-chevron-right":"mdi-chevron-left",variant:"text",onClick:c[1]||(c[1]=Ze(a=>l.value=!l.value,["stop"]))},null,8,["icon"])]),u(ne,{density:O(i).compactLeftMenu?"compact":"default",lines:!O(i).compactLeftMenu,nav:""},{default:f(()=>[(b(!0),I(L,null,G(e.menuItems,a=>(b(),I(L,{key:a.text},[o(a)?(b(),I(L,{key:0},[a.subheader?(b(),C(Ct,{key:0,class:"text-white"},{default:f(()=>[F(R(a.text.toUpperCase()),1)]),_:2},1024)):a.action?(b(),C($,{key:1,value:a,exact:a.exact,title:a.text,"prepend-icon":a.icon,onClick:a.action},null,8,["value","exact","title","prepend-icon","onClick"])):a.children?(b(),C(Tt,{key:3,value:a.text},{activator:f(({props:r})=>[(b(),C($,J({ref_for:!0},r,{key:a.text,title:a.text,color:"white","prepend-icon":a.icon}),null,16,["title","prepend-icon"]))]),default:f(()=>[(b(!0),I(L,null,G(a.children,r=>(b(),I(L,{key:r.text},[o(r)?(b(),I(L,{key:0},[r.action?(b(),C($,{key:0,title:r.text,value:r,"prepend-icon":r.icon,onClick:r.action},null,8,["title","value","prepend-icon","onClick"])):(b(),C($,{key:1,to:r.to,link:"",title:r.text,value:r,"prepend-icon":r.icon},null,8,["to","title","value","prepend-icon"]))],64)):Q("",!0)],64))),128))]),_:2},1032,["value"])):(b(),C($,{key:2,value:a,to:a.to,link:"",exact:a.exact,title:a.text,"prepend-icon":a.icon},null,8,["value","to","exact","title","prepend-icon"]))],64)):Q("",!0)],64))),128))]),_:1},8,["density","lines"])]),_:1},8,["modelValue","rail","color"]))}},ta=oe(ea,[["__scopeId","data-v-4deeb2f7"]]),aa={key:0,class:"top-menu"},na={class:"text-center"},oa={class:"mt-2"},la={class:"text-center"},ra={class:"text-h5"},sa={__name:"TopMenu",props:{user:{type:Object,default:null},remote:{type:Boolean,default:!1}},setup(e){const s=e,{$gettext:n}=Be(),i=Dt(),t=Y([]),v=x(()=>s.user.first_name&&s.user.last_name?`${s.user.first_name[0].toUpperCase()}${s.user.last_name[0].toUpperCase()}`:s.user.username?s.user.username.slice(0,2).toUpperCase():""),l=x(()=>[{text:n("Account"),icon:"mdi-account-circle-outline",to:s.remote?null:{name:"AccountSettings"},href:s.remote?"https://localhost:3000/account":"",click:()=>null},{text:n("Logout"),icon:"mdi-logout",click:y}]);async function y(){Je()._s.forEach(async p=>await p.$reset())}return ee(()=>{Ke.getAvailableApplications().then(p=>{t.value=p.data}),i.fetchNotifications()}),(p,_)=>e.user?(b(),I("div",aa,[O(i).activeNotifications?(b(),C(Z,{key:0,icon:"",color:"error",class:"mr-4",variant:"tonal",size:"small"},{default:f(()=>[u(K,{icon:"mdi-bell"}),u(ae,{activator:"parent",location:"bottom"},{default:f(()=>[u(ne,null,{default:f(()=>[P("div",na,[u($,{title:O(n)("Notifications")},null,8,["title"])]),u(ve),(b(!0),I(L,null,G(O(i).notifications,o=>(b(),C($,{key:o.id,to:o.url},{prepend:f(()=>[u(Rt,{color:o.color,content:o.counter,inline:""},null,8,["color","content"])]),default:f(()=>[u(de,null,{default:f(()=>[F(R(o.text),1)]),_:2},1024)]),_:2},1032,["to"]))),128))]),_:1})]),_:1})]),_:1})):Q("",!0),u(Z,{icon:"",class:"mr-4",variant:"flat"},{default:f(()=>[u(K,{icon:"mdi-apps"}),u(ae,{activator:"parent",location:"bottom"},{default:f(()=>[u(he,{"min-width":"350","max-width":"400",class:"pa-4"},{default:f(()=>[u(Ot,{class:"justify-center"},{default:f(()=>[(b(!0),I(L,null,G(t.value,o=>(b(),C(Yt,{key:o.name,cols:"6"},{default:f(()=>[u(Ht,{rounded:"",class:"application text-center pa-4 text-body-2",onClick:d=>p.$router.push(o.url)},{default:f(()=>[u(K,{color:"primary",icon:o.icon,size:"x-large"},null,8,["icon"]),P("div",oa,R(o.label),1)]),_:2},1032,["onClick"])]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})]),_:1}),u(Z,{icon:"",flat:"",color:"primary"},{default:f(()=>[F(R(v.value)+" ",1),u(ae,{activator:"parent",location:"bottom"},{default:f(()=>[u(he,{"min-width":"300","max-width":"350"},{default:f(()=>[u(ne,null,{default:f(()=>[P("div",la,[u(gt,{color:"primary"},{default:f(()=>[P("span",ra,R(v.value),1)]),_:1}),u($,{title:e.user.username},null,8,["title"])]),u(ve),(b(!0),I(L,null,G(l.value,o=>(b(),C($,{key:o.text,to:o.to,href:o.href,link:"",onClick:o.click},{prepend:f(()=>[u(K,{icon:o.icon},null,8,["icon"])]),default:f(()=>[u(de,null,{default:f(()=>[F(R(o.text),1)]),_:2},1024)]),_:2},1032,["to","href","onClick"]))),128))]),_:1})]),_:1})]),_:1})]),_:1})])):Q("",!0)}},ua=oe(sa,[["__scopeId","data-v-7bd1943d"]]);function ia(e){const s=A(e());let n=-1;function i(){clearInterval(n)}function t(){i(),Ce(()=>s.value=e())}function v(l){const y=l?getComputedStyle(l):{transitionDuration:.2},p=parseFloat(y.transitionDuration)*1e3||200;if(i(),s.value<=0)return;const _=performance.now();n=window.setInterval(()=>{const o=performance.now()-_+p;s.value=Math.max(e()-o,0),s.value<=0&&i()},p)}return be(i),{clear:i,time:s,start:v,reset:t}}const ca=xe({multiLine:Boolean,text:String,timer:[Boolean,String],timeout:{type:[Number,String],default:5e3},vertical:Boolean,...xt({location:"bottom"}),..._t(),...Ee(),...bt(),...Te(),...tt(Bt({transition:"v-snackbar-transition"}),["persistent","noClickAnimation","scrim","scrollStrategy","stickToTarget"])},"VSnackbar"),va=_e()({name:"VSnackbar",props:ca(),emits:{"update:modelValue":e=>!0},setup(e,s){let{slots:n}=s;const i=Se(e,"modelValue"),{positionClasses:t}=yt(e),{scopeId:v}=Ne(),{themeClasses:l}=Ve(e),{colorClasses:y,colorStyles:p,variantClasses:_}=pt(e),{roundedClasses:o}=Me(e),d=ia(()=>Number(e.timeout)),c=Y(),a=Y(),r=A(!1),V=A(0),D=Y(),H=Qe(Nt,void 0);q(()=>!!H,()=>{const h=$t();ke(()=>{D.value=h.mainStyles.value})}),W(i,B),W(()=>e.timeout,B),ee(()=>{i.value&&B()});let E=-1;function B(){d.reset(),window.clearTimeout(E);const h=Number(e.timeout);if(!i.value||h===-1)return;const M=et(a.value);d.start(M),E=window.setTimeout(()=>{i.value=!1},h)}function z(){d.reset(),window.clearTimeout(E)}function U(){r.value=!0,z()}function m(){r.value=!1,B()}function g(h){V.value=h.touches[0].clientY}function w(h){Math.abs(V.value-h.changedTouches[0].clientY)>50&&(i.value=!1)}function k(){r.value&&m()}const S=x(()=>e.location.split(" ").reduce((h,M)=>(h[`v-snackbar--${M}`]=!0,h),{}));return $e(()=>{const h=fe.filterProps(e),M=!!(n.default||n.text||e.text);return u(fe,J({ref:c,class:["v-snackbar",{"v-snackbar--active":i.value,"v-snackbar--multi-line":e.multiLine&&!e.vertical,"v-snackbar--timer":!!e.timer,"v-snackbar--vertical":e.vertical},S.value,t.value,e.class],style:[D.value,e.style]},h,{modelValue:i.value,"onUpdate:modelValue":N=>i.value=N,contentProps:J({class:["v-snackbar__wrapper",l.value,y.value,o.value,_.value],style:[p.value],onPointerenter:U,onPointerleave:m},h.contentProps),persistent:!0,noClickAnimation:!0,scrim:!1,scrollStrategy:"none",_disableGlobalStack:!0,onTouchstartPassive:g,onTouchend:w,onAfterLeave:k},v),{default:()=>{var N,j;return[wt(!1,"v-snackbar"),e.timer&&!r.value&&P("div",{key:"timer",class:"v-snackbar__timer"},[u(kt,{ref:a,color:typeof e.timer=="string"?e.timer:"info",max:e.timeout,modelValue:d.time.value},null)]),M&&P("div",{key:"content",class:"v-snackbar__content",role:"status","aria-live":"polite"},[((N=n.text)==null?void 0:N.call(n))??e.text,(j=n.default)==null?void 0:j.call(n)]),n.actions&&u(Ie,{defaults:{VBtn:{variant:"text",ripple:!1,slim:!0}}},{default:()=>[P("div",{class:"v-snackbar__actions"},[n.actions({isActive:i})])]})]},activator:n.activator})}),Pt({},c)}}),Ba={__name:"ConnectedLayout",props:{color:{type:String,default:"primary"},menuItems:{type:Array,default:null},loadTheme:{type:Boolean,default:!0}},async setup(e){let s,n;const i=Pe(),t=at(),{$gettext:v}=Be(),{enableTheme:l}=ot(),y=e,p=x(()=>i.authUser),_=x(()=>t.notificationColor),o=x(()=>t.notificationTimeout),d=x(()=>t.notification),c=Y(!1);return t.$onAction(({name:a,after:r})=>{a==="displayNotification"&&r(()=>{c.value=!0}),a==="hideNotification"&&r(()=>{c.value=!1})},!0),y.loadTheme&&([s,n]=nt(()=>l()),await s,n()),(a,r)=>(b(),C(st,null,{default:f(()=>[ce(a.$slots,"navbar",{},()=>[u(ta,{color:e.color,"menu-items":e.menuItems},null,8,["color","menu-items"])]),ce(a.$slots,"topbar",{},()=>[u(ua,{user:p.value},null,8,["user"])]),u(Wt),u(va,{modelValue:c.value,"onUpdate:modelValue":r[1]||(r[1]=V=>c.value=V),color:_.value,timeout:o.value,location:"top"},{actions:f(()=>[u(Z,{color:"white",text:"",onClick:r[0]||(r[0]=V=>c.value=!1)},{default:f(()=>[F(R(O(v)("Close")),1)]),_:1})]),default:f(()=>[F(R(d.value)+" ",1)]),_:1},8,["modelValue","color","timeout"])]),_:3}))}};export{Kt as V,Ba as _};
@@ -1 +0,0 @@
1
- import{_ as me}from"./ConfirmDialog-Du7aqKbR.js";import{_ as pe,b as ne,l as A,o as S,s as F,F as T,e as v,t as f,f as _,c as C,w as c,x as U,m as re,a as l,k as x,I as R,J as $,K as ve,i as b,L as fe,y as ye,M as P,N as Ve,O as Se,v as J,P as be,Q as oe,R as ke,S as Z,T as ge,U as he,V as _e,h as M,W as xe,X as we,Y as Ie}from"./index-B1bntsLR.js";import{a as j,V as ie}from"./VRow-CuVZGqBj.js";import{u as Ce}from"./logos-95XYS6uH.js";import{V as W,e as ee,f as Pe,R as te,u as $e,g as Be,c as We,b as Ae,m as Te,h as Le,i as je,j as Fe}from"./VAvatar-JdJfoK0C.js";import{u as D}from"./tag-BmV84V2s.js";import{V as ae,m as Re,a as le,b as De}from"./VWindowItem-kZpArwK1.js";import{V as Ne}from"./VContainer-DKMcKasC.js";import{V as se,m as Ee}from"./VSheet-HeHw6g5_.js";import{d as ze}from"./VMenu-B6SCtOwT.js";const Ge={class:"subtitle mt-4 d-flex"},Oe={class:"text-h6"},Me=["onClick"],Ue={class:"text-grey"},He={__name:"CreationSummary",props:{sections:{type:Array,default:()=>[]}},emits:["modify-step"],setup(e,{emit:y}){const{$gettext:t}=ne(),a=y;function u(n){return n.length?n.join(", "):t("Empty")}return(n,o)=>(S(!0),A(T,null,F(e.sections,(d,p)=>(S(),A(T,{key:p},[v("div",Ge,[v("span",Oe,f(d.title),1),v("a",{href:"#",class:"edit-link ml-auto",onClick:s=>a("modify-step",p+1)},f(_(t)("Modify")),9,Me)]),(S(!0),A(T,null,F(d.items,(s,m)=>(S(),C(ie,{key:m,dense:""},{default:c(()=>[s.value!==void 0?U(n.$slots,`item.${s.name}`,{key:0,item:s,displayList:u},()=>[l(j,null,{default:c(()=>[v("span",Ue,f(s.key),1)]),_:2},1024),s.type==="yesno"?(S(),C(j,{key:0,class:"text-right"},{default:c(()=>[x(f(n.$yesno(s.value)),1)]),_:2},1024)):s.type==="list"?(S(),C(j,{key:1,class:"text-right"},{default:c(()=>[x(f(u(s.value)),1)]),_:2},1024)):(S(),C(j,{key:2,class:"text-right"},{default:c(()=>[x(f(s.value),1)]),_:2},1024))],!0):re("",!0)]),_:2},1024))),128))],64))),128))}},Ye=pe(He,[["__scopeId","data-v-6e743e1a"]]),K=Symbol.for("vuetify:v-stepper"),ue=$({color:String,disabled:{type:[Boolean,String],default:!1},prevText:{type:String,default:"$vuetify.stepper.prev"},nextText:{type:String,default:"$vuetify.stepper.next"}},"VStepperActions"),Je=R()({name:"VStepperActions",props:ue(),emits:{"click:prev":()=>!0,"click:next":()=>!0},setup(e,y){let{emit:t,slots:a}=y;const{t:u}=ve();function n(){t("click:prev")}function o(){t("click:next")}return D(()=>{const d={onClick:n},p={onClick:o};return v("div",{class:"v-stepper-actions"},[l(ee,{defaults:{VBtn:{disabled:["prev",!0].includes(e.disabled),text:u(e.prevText),variant:"text"}}},{default:()=>{var s;return[((s=a.prev)==null?void 0:s.call(a,{props:d}))??l(W,d,null)]}}),l(ee,{defaults:{VBtn:{color:e.color,disabled:["next",!0].includes(e.disabled),text:u(e.nextText),variant:"tonal"}}},{default:()=>{var s;return[((s=a.next)==null?void 0:s.call(a,{props:p}))??l(W,p,null)]}})])}),{}}}),ce=Pe("v-stepper-header"),Ke=$({color:String,title:String,subtitle:String,complete:Boolean,completeIcon:{type:P,default:"$complete"},editable:Boolean,editIcon:{type:P,default:"$edit"},error:Boolean,errorIcon:{type:P,default:"$error"},icon:P,ripple:{type:[Boolean,Object],default:!0},rules:{type:Array,default:()=>[]}},"StepperItem"),Qe=$({...Ke(),...Te()},"VStepperItem"),H=R()({name:"VStepperItem",directives:{vRipple:te},props:Qe(),emits:{"group:selected":e=>!0},setup(e,y){let{slots:t}=y;const a=$e(e,K,!0),u=b(()=>(a==null?void 0:a.value.value)??e.value),n=b(()=>e.rules.every(I=>I()===!0)),o=b(()=>!e.disabled&&e.editable),d=b(()=>!e.disabled&&e.editable),p=b(()=>e.error||!n.value),s=b(()=>e.complete||e.rules.length>0&&n.value),m=b(()=>p.value?e.errorIcon:s.value?e.completeIcon:a.isSelected.value&&e.editable?e.editIcon:e.icon),w=b(()=>({canEdit:d.value,hasError:p.value,hasCompleted:s.value,title:e.title,subtitle:e.subtitle,step:u.value,value:e.value}));return D(()=>{var r,i,h;const I=(!a||a.isSelected.value||s.value||d.value)&&!p.value&&!e.disabled,L=!!(e.title!=null||t.title),V=!!(e.subtitle!=null||t.subtitle);function k(){a==null||a.toggle()}return fe(v("button",{class:ye(["v-stepper-item",{"v-stepper-item--complete":s.value,"v-stepper-item--disabled":e.disabled,"v-stepper-item--error":p.value},a==null?void 0:a.selectedClass.value]),disabled:!e.editable,type:"button",onClick:k},[o.value&&Be(!0,"v-stepper-item"),l(Ae,{key:"stepper-avatar",class:"v-stepper-item__avatar",color:I?e.color:void 0,size:24},{default:()=>{var g;return[((g=t.icon)==null?void 0:g.call(t,w.value))??(m.value?l(We,{icon:m.value},null):u.value)]}}),v("div",{class:"v-stepper-item__content"},[L&&v("div",{key:"title",class:"v-stepper-item__title"},[((r=t.title)==null?void 0:r.call(t,w.value))??e.title]),V&&v("div",{key:"subtitle",class:"v-stepper-item__subtitle"},[((i=t.subtitle)==null?void 0:i.call(t,w.value))??e.subtitle]),(h=t.default)==null?void 0:h.call(t,w.value)])]),[[te,e.editable&&e.ripple,null]])}),{}}}),Xe=$({...be(Re(),["continuous","nextIcon","prevIcon","showArrows","touch","mandatory"])},"VStepperWindow"),de=R()({name:"VStepperWindow",props:Xe(),emits:{"update:modelValue":e=>!0},setup(e,y){let{slots:t}=y;const a=Ve(K,null),u=Se(e,"modelValue"),n=b({get(){var o;return u.value!=null||!a?u.value:(o=a.items.value.find(d=>a.selected.value.includes(d.id)))==null?void 0:o.value},set(o){u.value=o}});return D(()=>{const o=ae.filterProps(e);return l(ae,J({_as:"VStepperWindow"},o,{modelValue:n.value,"onUpdate:modelValue":d=>n.value=d,class:["v-stepper-window",e.class],style:e.style,mandatory:!1,touch:!1}),t)}),{}}}),qe=$({...De()},"VStepperWindowItem"),Y=R()({name:"VStepperWindowItem",props:qe(),setup(e,y){let{slots:t}=y;return D(()=>{const a=le.filterProps(e);return l(le,J({_as:"VStepperWindowItem"},a,{class:["v-stepper-window-item",e.class],style:e.style}),t)}),{}}}),Ze=$({altLabels:Boolean,bgColor:String,completeIcon:P,editIcon:P,editable:Boolean,errorIcon:P,hideActions:Boolean,items:{type:Array,default:()=>[]},itemTitle:{type:String,default:"title"},itemValue:{type:String,default:"value"},nonLinear:Boolean,flat:Boolean,..._e()},"Stepper"),et=$({...Ze(),...je({mandatory:"force",selectedClass:"v-stepper-item--selected"}),...Ee(),...he(ue(),["prevText","nextText"])},"VStepper"),tt=R()({name:"VStepper",props:et(),emits:{"update:modelValue":e=>!0},setup(e,y){let{slots:t}=y;const{items:a,next:u,prev:n,selected:o}=Le(e,K),{displayClasses:d,mobile:p}=oe(e),{completeIcon:s,editIcon:m,errorIcon:w,color:I,editable:L,prevText:V,nextText:k}=ke(e),r=b(()=>e.items.map((g,z)=>{const N=Z(g,e.itemTitle,g),G=Z(g,e.itemValue,z+1);return{title:N,value:G,raw:g}})),i=b(()=>a.value.findIndex(g=>o.value.includes(g.id))),h=b(()=>e.disabled?e.disabled:i.value===0?"prev":i.value===a.value.length-1?"next":!1);return ge({VStepperItem:{editable:L,errorIcon:w,completeIcon:s,editIcon:m,prevText:V,nextText:k},VStepperActions:{color:I,disabled:h,prevText:V,nextText:k}}),D(()=>{const g=se.filterProps(e),z=!!(t.header||e.items.length),N=e.items.length>0,G=!e.hideActions&&!!(N||t.actions);return l(se,J(g,{color:e.bgColor,class:["v-stepper",{"v-stepper--alt-labels":e.altLabels,"v-stepper--flat":e.flat,"v-stepper--non-linear":e.nonLinear,"v-stepper--mobile":p.value},d.value,e.class],style:e.style}),{default:()=>{var Q,X;return[z&&l(ce,{key:"stepper-header"},{default:()=>[r.value.map((B,E)=>{let{raw:O,...q}=B;return v(T,null,[!!E&&l(ze,null,null),l(H,q,{default:t[`header-item.${q.value}`]??t.header,icon:t.icon,title:t.title,subtitle:t.subtitle})])})]}),N&&l(de,{key:"stepper-window"},{default:()=>[r.value.map(B=>l(Y,{value:B.value},{default:()=>{var E,O;return((E=t[`item.${B.value}`])==null?void 0:E.call(t,B))??((O=t.item)==null?void 0:O.call(t,B))}}))]}),(Q=t.default)==null?void 0:Q.call(t,{prev:n,next:u}),G&&(((X=t.actions)==null?void 0:X.call(t,{next:u,prev:n}))??l(Je,{key:"stepper-actions","onClick:prev":n,"onClick:next":u},t))]}})}),{prev:n,next:u}}}),at={class:"d-flex justify-center inner fill-height"},lt={class:"mb-5 text-h5"},st={class:"text-grey-darken-1"},nt={class:"d-flex justify-end mt-4"},rt={class:"text-center text-h3"},ot={class:"d-flex justify-center mt-8"},St={__name:"CreationForm",props:{title:{type:String,default:""},steps:{type:Array,default:()=>[]},summarySections:{type:Array,default:()=>[]},getVFormRef:{type:Function,default:null},formGetter:{type:Function,default:null},validateObject:{type:Function,default:null}},emits:["close","create","validationError"],setup(e,{expose:y,emit:t}){const{smAndDown:a}=oe(),{creationFormLogoPath:u}=Ce(),n=e,o=M(1),d=M(!1),p=M(),s=t,{$gettext:m}=ne();async function w(){await p.value.open(m("Warning"),m("If you close this form now, your modifications won't be saved. Do you confirm?"),{color:"warning",agreeLabel:m("Yes"),cancelLabel:m("No")})&&s("close")}async function I(V,k){const r=n.getVFormRef(n.steps[V-1]);if(r!==void 0){const{valid:i}=await r.validate();if(!i)return;if(n.validateObject)try{await n.validateObject(V)}catch(h){s("validationError",V,h.response.data);return}}o.value=k}function L(){d.value=!0,s("create")}return y({working:d}),(V,k)=>(S(),A("div",at,[l(tt,{modelValue:o.value,"onUpdate:modelValue":k[1]||(k[1]=r=>o.value=r),mobile:!_(a),class:"vertical-overflow"},{default:c(()=>[l(_(me),{ref_key:"confirm",ref:p},null,512),l(ce,{class:"align-center px-10"},{default:c(()=>[l(Fe,{src:_(u),"max-width":"190",class:"hidden-sm-and-down"},null,8,["src"]),(S(!0),A(T,null,F(e.steps,(r,i)=>(S(),C(H,{key:r.name,color:"primary",value:i+1,complete:o.value>i+1},{default:c(()=>[x(f(r.title),1)]),_:2},1032,["value","complete"]))),128)),l(H,{value:e.steps.length+1},{default:c(()=>[x(f(_(m)("Summary")),1)]),_:1},8,["value"]),l(W,{icon:"mdi-close",color:"primary",size:_(a)?"small":"x-large",variant:"text",onClick:w},null,8,["size"])]),_:1}),l(de,{class:"mt-4 d-flex justify-center"},{default:c(()=>[(S(!0),A(T,null,F(e.steps,(r,i)=>(S(),C(Y,{key:r.name,value:i+1,class:"flex-grow-1 ma-10"},{default:c(()=>[l(Ne,{fluid:""},{default:c(()=>[l(ie,{align:"center",justify:"center"},{default:c(()=>[l(j,{cols:"8",align:"start"},{default:c(()=>[v("div",lt,[v("span",st,f(e.title),1),x(" / "+f(r.title),1)]),U(V.$slots,`form.${r.name}`,{step:r,currentStep:i+1})]),_:2},1024)]),_:2},1024)]),_:2},1024),v("div",nt,[i+1>1?(S(),C(W,{key:0,class:"mr-10",variant:"text",onClick:h=>o.value=i},{default:c(()=>[x(f(_(m)("Back")),1)]),_:1},8,["onClick"])):re("",!0),l(W,{color:"primary",size:"large",onClick:h=>I(i+1,i+2)},{default:c(()=>[x(f(_(m)("Next")),1)]),_:1},8,["onClick"])])]),_:2},1032,["value"]))),128)),l(Y,{value:e.steps.length+1,class:"flex-grow-0"},{default:c(()=>[v("div",rt,f(_(m)("Summary")),1),l(Ye,{sections:e.summarySections,onModifyStep:k[0]||(k[0]=r=>o.value=r)},xe({_:2},[F(V.$slots,(r,i)=>({name:i,fn:c(h=>[U(V.$slots,i,we(Ie(h)))])}))]),1032,["sections"]),v("div",ot,[l(W,{color:"primary",size:"large",loading:d.value,onClick:L},{default:c(()=>[x(f(_(m)("Confirm and create")),1)]),_:1},8,["loading"])])]),_:3},8,["value"])]),_:3})]),_:3},8,["modelValue","mobile"])]))}};export{St as _};
@@ -1 +0,0 @@
1
- import{h as _,g,c as p,o as m,w as o,a as l,e as t,t as a,_ as b,k as V,b as k,u as x,d as y,l as A,m as N,f as c,j as C}from"./index-B1bntsLR.js";import{a as w}from"./admin-D36m_nXq.js";import{V as v,a as $,b as D}from"./VCard-BoH6kjPa.js";import{V as S}from"./VTable-gDsAUSLX.js";import{V as T}from"./VDataTable-BkLLfcQK.js";import{p as B}from"./parameters-BxAXBXU1.js";import{V as M,a as W}from"./VToolbar-CyrYSqJZ.js";import{V as F,a as h}from"./VRow-CuVZGqBj.js";import"./tag-BmV84V2s.js";import"./VAvatar-JdJfoK0C.js";import"./VProgressCircular-DTDGzl2O.js";import"./VSelect-D5IXDPEX.js";import"./VTextField-QXQFhKxm.js";import"./VInput-CbqehdOu.js";import"./VMenu-B6SCtOwT.js";import"./ssrBoot-05WtbG6H.js";import"./VCheckboxBtn-Ccl786Rg.js";import"./VSelectionControl-uKY9Zull.js";import"./filter-DHKXX97M.js";/* empty css */const G={__name:"GlobalStatisticsWidget",async setup(f){let s,n;const e=_({}),i=([s,n]=g(()=>w.getStatistics()),s=await s,n(),s);return e.value=i.data,(r,u)=>(m(),p($,{title:r.$gettext("Statistics")},{default:o(()=>[l(v,null,{default:o(()=>[l(S,null,{default:o(()=>[t("tbody",null,[t("tr",null,[t("td",null,a(r.$gettext("Domain count")),1),t("td",null,a(e.value.domain_count),1)]),t("tr",null,[t("td",null,a(r.$gettext("Domain alias count")),1),t("td",null,a(e.value.domain_alias_count),1)]),t("tr",null,[t("td",null,a(r.$gettext("Account count")),1),t("td",null,a(e.value.account_count),1)]),t("tr",null,[t("td",null,a(r.$gettext("Alias count")),1),t("td",null,a(e.value.alias_count),1)])])]),_:1})]),_:1})]),_:1},8,["title"]))}},I=["href"],j={href:"https://modoboa.org/weblog/",target:"_blank"},E={__name:"NewsFeedWidget",async setup(f){let s,n;const e=_([]),i=[{title:"",key:"title"},{title:"",key:"published",align:"end"}],r=([s,n]=g(()=>w.getNewsFeed()),s=await s,n(),s);return e.value=r.data,(u,L)=>(m(),p($,{title:u.$gettext("Latest news")},{default:o(()=>[l(v,null,{default:o(()=>[l(T,{headers:i,items:e.value,"hide-default-header":"","hide-default-footer":""},{"item.title":o(({item:d})=>[t("a",{href:d.link,target:"_blank"},a(d.title),9,I)]),"item.published":o(({item:d})=>[V(a(u.$date(d.published)),1)]),_:2},1032,["items"])]),_:1}),l(D,{class:"justify-center"},{default:o(()=>[t("div",null,[t("a",j,a(u.$gettext("Visit the official weblog for more information")),1)])]),_:1})]),_:1},8,["title"]))}},R=b(E,[["__scopeId","data-v-e0975b37"]]),U={__name:"DashboardView",setup(f){const{$gettext:s}=k(),n=x(),e=_("");return y(async()=>{const i=await B.getGlobalApplication("core");i.data.params.custom_welcome_message?e.value=i.data.params.custom_welcome_message:e.value=s("Welcome to Modoboa")}),(i,r)=>(m(),A("div",null,[l(M,{flat:""},{default:o(()=>[l(W,null,{default:o(()=>[V(a(e.value),1)]),_:1})]),_:1}),l(F,null,{default:o(()=>[l(h,{sm:"12",md:"6"},{default:o(()=>[l(c(R)),c(n).authUser.role===c(C).SUPER_ADMIN?(m(),p(c(G),{key:0,class:"mt-4"})):N("",!0)]),_:1}),l(h,{sm:"12",md:"6"})]),_:1})]))}},ut=b(U,[["__scopeId","data-v-24210b96"]]);export{ut as default};
@@ -1 +0,0 @@
1
- import{d as E}from"./domains-CSxtTvUh.js";import{b as J,n as ne,h as n,i as I,d as ie,c as A,o as V,w as l,a,p as we,e as $,t as c,f as i,m as H,k as h,q as ce,l as j,F as fe,_ as ve,s as he,v as X,r as Ce,x as Ae}from"./index-B1bntsLR.js";import{u as _e}from"./permissions-cSkGqV3M.js";import{d as $e}from"./index-Bp9Fb67E.js";import{V as ye,r as te}from"./VForm-DkphQD3e.js";import{c as Se,V as Ue,b as Ne,a as ge}from"./VCard-BoH6kjPa.js";import{V as se}from"./VTextField-QXQFhKxm.js";import{V as Fe}from"./VAutocomplete-Huaz_-hf.js";import{V as Z}from"./VSwitch-Dh_dserW.js";import{V as qe}from"./VSpacer-BUxSSJbH.js";import{V as q,a as me}from"./VAvatar-JdJfoK0C.js";import{p as Le}from"./parameters-BxAXBXU1.js";import{_ as Te}from"./CreationForm-CjtILq0_.js";import{_ as Ee,a as Re,b as Oe,c as Pe}from"./DomainTransportForm-DAXJGNLA.js";import{_ as ze}from"./AccountPasswordSubForm-DpADntAL.js";import{a as B,V as ue}from"./VRow-CuVZGqBj.js";import{_ as Ie,a as Me}from"./DomainAdminList-BjtfbhRj.js";import{_ as Be}from"./ConfirmDialog-Du7aqKbR.js";import{V as le}from"./VSelect-D5IXDPEX.js";import{_ as je}from"./MenuItems-dl38msRA.js";import{V as oe,a as be,b as de,c as pe}from"./VMenu-B6SCtOwT.js";import{V as Je}from"./VBadge-Cg5iu5LG.js";import{V as Ve,a as Ge}from"./VToolbar-CyrYSqJZ.js";import{V as We}from"./VDataTableServer-B_6fWBA3.js";import{V as Ke}from"./VCheckbox-CCLOJFKF.js";import{V as Q}from"./VDialog-DIUeAIpw.js";import{_ as Qe,i as He}from"./importExport-C-adpHJX.js";import"./tag-BmV84V2s.js";import"./VInput-CbqehdOu.js";import"./VProgressCircular-DTDGzl2O.js";import"./filter-DHKXX97M.js";import"./VCheckboxBtn-Ccl786Rg.js";import"./VSelectionControl-uKY9Zull.js";/* empty css */import"./logos-95XYS6uH.js";import"./VWindowItem-kZpArwK1.js";import"./ssrBoot-05WtbG6H.js";import"./VContainer-DKMcKasC.js";import"./VSheet-HeHw6g5_.js";import"./ChoiceField-RDT6XcnX.js";import"./transports-ChdHV5hX.js";import"./accounts-DqbBlaLK.js";import"./VAlert-CNys_LUS.js";import"./VDataTableVirtual-Ike7oqcC.js";import"./VDataTable-BkLLfcQK.js";import"./VTable-gDsAUSLX.js";import"./VFileInput-Dvj95FL5.js";const Ye={class:"headline"},Xe={class:"m-label"},Ze={class:"m-label"},ke={__name:"DomainAliasForm",props:{domainAlias:{type:Object,default:()=>null}},emits:["close","aliasDeleted"],setup(T,{emit:k}){const{$gettext:e}=J(),d=k,{displayNotification:w}=ne(),f=T,U=n([]),t=n({enabled:!0}),r=n(!1),F=n(),C=n(""),v=I(()=>f.domainAlias?e("Update"):e("Add")),_=I(()=>f.domainAlias?e("Edit domain alias"):e("Add a new domain alias"));async function L(){r.value=!0;try{await E.deleteDomainAlias(f.domainAlias.pk),w({msg:e("Domain alias deleted")}),d("aliasDeleted"),d("close")}finally{r.value=!1}}function D(){const N={page_size:0};C.value&&(N.search=C.value),E.getDomains(N).then(x=>{U.value=x.data.results})}const m=$e(D,500);async function g(){const{valid:N}=await F.value.validate();if(N){r.value=!0;try{if(!t.value.pk)await E.createDomainAlias(t.value),w({msg:e("Domain alias created")});else{const x=JSON.parse(JSON.stringify(t.value));await E.updateDomainAlias(f.domainAlias.pk,x),w({msg:e("Domain alias updated")})}d("close")}finally{r.value=!1}}}return ie(()=>{D(),f.domainAlias&&(t.value=JSON.parse(JSON.stringify(f.domainAlias)))}),(N,x)=>(V(),A(ge,null,{default:l(()=>[a(ye,{ref_key:"vFormRef",ref:F,onSubmit:we(g,["prevent"])},{default:l(()=>[a(Se,null,{default:l(()=>[$("span",Ye,c(_.value),1)]),_:1}),a(Ue,null,{default:l(()=>[$("label",Xe,c(i(e)("Name")),1),a(se,{modelValue:t.value.name,"onUpdate:modelValue":x[0]||(x[0]=S=>t.value.name=S),variant:"outlined",density:"compact",rules:[i(te).required]},null,8,["modelValue","rules"]),$("label",Ze,c(i(e)("Choose a domain")),1),a(Fe,{modelValue:t.value.target,"onUpdate:modelValue":x[1]||(x[1]=S=>t.value.target=S),search:C.value,"onUpdate:search":[x[2]||(x[2]=S=>C.value=S),i(m)],items:U.value,"item-title":"name","item-value":"pk",rules:[i(te).required],variant:"outlined",density:"compact",clearable:""},null,8,["modelValue","search","items","rules","onUpdate:search"]),a(Z,{modelValue:t.value.enabled,"onUpdate:modelValue":x[3]||(x[3]=S=>t.value.enabled=S),label:"Enabled",color:"primary"},null,8,["modelValue"])]),_:1}),a(Ne,null,{default:l(()=>[a(qe),a(q,{loading:r.value,onClick:x[4]||(x[4]=S=>d("close"))},{default:l(()=>[h(c(i(e)("Close")),1)]),_:1},8,["loading"]),T.domainAlias&&T.domainAlias.pk?(V(),A(q,{key:0,color:"error",loading:r.value,onClick:L},{default:l(()=>[h(c(i(e)("Delete")),1)]),_:1},8,["loading"])):H("",!0),a(q,{color:"primary",type:"submit",loading:r.value},{default:l(()=>[h(c(v.value),1)]),_:1},8,["loading"])]),_:1})]),_:1},512)]),_:1}))}},ea={__name:"DomainOptionsForm",props:{modelValue:{type:Object,default:null}},emits:["createAdmin"],setup(T,{expose:k,emit:e}){const{$gettext:d}=J(),w=T,f=e,U=n(),t=n(!1),r=I(()=>w.modelValue);function F(C){f("createAdmin",C)}return k({vFormRef:U}),(C,v)=>(V(),A(ye,{ref_key:"vFormRef",ref:U},{default:l(()=>[a(Z,{modelValue:t.value,"onUpdate:modelValue":[v[0]||(v[0]=_=>t.value=_),F],label:i(d)("Create a domain administrator"),color:"primary"},null,8,["modelValue","label"]),a(se,{modelValue:r.value.domain_admin.username,"onUpdate:modelValue":v[1]||(v[1]=_=>r.value.domain_admin.username=_),label:i(d)("Name"),hint:i(d)("Name of the administrator"),"persistent-hint":"",variant:"outlined",disabled:!t.value,suffix:`@${r.value.name}`,rules:[!t.value||i(te).required]},null,8,["modelValue","label","hint","disabled","suffix","rules"]),a(ze,{modelValue:r.value.domain_admin,"onUpdate:modelValue":v[2]||(v[2]=_=>r.value.domain_admin=_),disabled:!t.value},null,8,["modelValue","disabled"]),a(Z,{modelValue:r.value.domain_admin.with_mailbox,"onUpdate:modelValue":v[3]||(v[3]=_=>r.value.domain_admin.with_mailbox=_),label:i(d)("With a mailbox"),disabled:!t.value,hint:i(d)("Create a mailbox for the administrator."),"persistent-hint":"",color:"primary"},null,8,["modelValue","label","disabled","hint"]),a(Z,{modelValue:r.value.domain_admin.with_aliases,"onUpdate:modelValue":v[4]||(v[4]=_=>r.value.domain_admin.with_aliases=_),label:i(d)("Create aliases"),disabled:!t.value,hint:i(d)("Create standard aliases for the domain."),"persistent-hint":"",color:"primary"},null,8,["modelValue","label","disabled","hint"])]),_:1},512))}},aa={class:"text-grey"},ta={__name:"DomainCreationForm",emits:["close","created"],setup(T,{emit:k}){const{$gettext:e}=J(),d=ne(),w=ce(),f=k,t=n({name:"",type:"domain",enabled:!0,enable_dns_checks:!0,enable_dkim:!1,dkim_key_selector:"modoboa",quota:0,default_mailbox_quota:0,domain_admin:{username:"admin",random_password:!1,with_mailbox:!1,with_aliases:!1},transport:{settings:{}}});ie(()=>{Le.getGlobalApplication("admin").then(u=>{const p=u.data.params;t.value.quota=p.default_domain_quota,t.value.default_mailbox_quota=p.default_mailbox_quota,p.default_domain_message_limit!==null&&(t.value.message_limit=p.default_domain_message_limit)})});const r=n(!1),F=n(),C=n(),v=n(),_=n(),L=n(),D=n(),m={general:C,dns:v,limitations:_,options:L,transport:D},g=[{name:"general",title:e("General")},{name:"dns",title:e("DNS")},{name:"limitations",title:e("Limitations")},{name:"options",title:e("Options")}],N=[{name:"general",title:e("General")},{name:"dns",title:e("DNS")},{name:"limitations",title:e("Limitations")},{name:"transport",title:e("Transport")}],x=I(()=>t.value.type==="domain"?g:N),S=I(()=>{const u=[{title:e("General"),items:[{key:e("Name"),value:t.value.name},{key:e("Type"),value:t.value.type},{key:e("Enabled"),value:t.value.enabled,type:"yesno"}]},{title:e("DNS"),items:[{key:e("Enable DNS checks"),value:t.value.enable_dns_checks,type:"yesno"},{key:e("Enable DKIM signing"),value:t.value.enable_dkim,type:"yesno"}]},{title:e("Limitations"),items:[{key:e("Quota"),value:t.value.quota},{key:e("Default mailbox quota"),value:t.value.default_mailbox_quota},{key:e("Message sending limit"),value:t.value.message_limit}]}];if(t.value.enable_dkim&&(u[1].items.push({key:e("DKIM key selector"),value:t.value.dkim_key_selector}),u[1].items.push({key:e("DKIM key length"),value:t.value.dkim_key_length})),t.value.type==="relaydomain"&&t.value.transport.service){const p={title:e("Transport"),items:[{key:e("Service"),value:t.value.transport.service}]};for(const b of D.value.service.settings){const Y={key:b.label,value:t.value.transport.settings[`${t.value.transport.service}_${b.name}`]};b.type==="boolean"&&(Y.type="yesno"),p.items.push(Y)}u.push(p)}else if(t.value.type==="domain"){const p={title:e("Options"),items:[{key:e("Create a domain administrator"),value:r.value,type:"yesno"}]};r.value&&p.items.push({key:e("Administrator name"),value:t.value.domain_admin.username},{name:"random_password",key:e("Random password"),value:t.value.domain_admin.random_password,type:"yesno"},{key:e("With mailbox"),value:t.value.domain_admin.with_mailbox,type:"yesno"},{key:e("Create aliases"),value:t.value.domain_admin.with_aliases,type:"yesno"}),u.push(p)}return u});function G(){f("close")}function W(){navigator.clipboard.writeText(t.value.domain_admin.password).then(()=>{d.displayNotification({msg:e("Password copied to clipboard")})})}function K(u){return m.value[u.name]}function M(u){return m[u.name].value.vFormRef}async function R(){}function ee(u){r.value=u}async function ae(){const u=JSON.parse(JSON.stringify(t.value));r.value||delete u.domain_admin,u.message_limit===""&&delete u.message_limit,u.type==="relaydomain"?D.value.checkSettingTypes(u):delete u.transport;try{const p=await E.createDomain(u);w.push({name:"DomainDetail",params:{id:p.data.pk}}),d.displayNotification({msg:e("Domain created")}),G()}finally{F.value.working=!1}}return(u,p)=>(V(),A(Te,{ref_key:"form",ref:F,title:i(e)("New domain"),steps:x.value,"form-getter":K,"get-v-form-ref":M,"validate-object":R,"summary-sections":S.value,onClose:G,onCreate:ae},{"form.general":l(()=>[a(Pe,{ref_key:"general",ref:C,modelValue:t.value,"onUpdate:modelValue":p[0]||(p[0]=b=>t.value=b),class:"ml-4"},null,8,["modelValue"])]),"form.dns":l(()=>[a(Oe,{ref_key:"dns",ref:v,modelValue:t.value,"onUpdate:modelValue":p[1]||(p[1]=b=>t.value=b),class:"ml-4"},null,8,["modelValue"])]),"form.limitations":l(()=>[a(Re,{ref_key:"limitations",ref:_,modelValue:t.value,"onUpdate:modelValue":p[2]||(p[2]=b=>t.value=b),class:"ml-4"},null,8,["modelValue"])]),"form.options":l(()=>[a(ea,{ref_key:"options",ref:L,modelValue:t.value,"onUpdate:modelValue":p[3]||(p[3]=b=>t.value=b),class:"ml-4",onCreateAdmin:ee},null,8,["modelValue"])]),"form.transport":l(()=>[a(Ee,{ref_key:"transport",ref:D,modelValue:t.value.transport,"onUpdate:modelValue":p[4]||(p[4]=b=>t.value.transport=b),class:"ml-4"},null,8,["modelValue"])]),"item.random_password":l(({item:b})=>[b.value?(V(),A(B,{key:0,cols:"12",class:"highligth text-white"},{default:l(()=>[a(ue,null,{default:l(()=>[a(B,null,{default:l(()=>[$("span",null,c(b.key),1)]),_:2},1024),a(B,{class:"text-right"},{default:l(()=>[h(c(u.$yesno(b.value)),1)]),_:2},1024)]),_:2},1024),a(ue,null,{default:l(()=>[a(B,{class:"text-right py-1"},{default:l(()=>[h(c(t.value.domain_admin.password)+" ",1),a(q,{icon:"mdi-clipboard-multiple-outline",color:"white",variant:"text",title:i(e)("Copy to clipboard"),onClick:W},null,8,["title"])]),_:1})]),_:1})]),_:2},1024)):(V(),j(fe,{key:1},[a(B,null,{default:l(()=>[$("span",aa,c(b.key),1)]),_:2},1024),a(B,{class:"text-right"},{default:l(()=>[h(c(u.$yesno(b.value)),1)]),_:2},1024)],64))]),_:2},1032,["title","steps","summary-sections"]))}},la={__name:"DNSStatusChip",props:{status:{type:String,default:"pending"}},setup(T){const k=T,{$gettext:e}=J(),d=I(()=>k.status==="disabled"?e("Disabled"):k.status==="pending"?e("Pending"):k.status==="critical"?e("Problem"):k.status==="ok"?e("Valid"):e("Unknown")),w=I(()=>k.status==="disabled"?"":k.status==="pending"?"info":k.status==="critical"?"error":k.status==="ok"?"success":"warning");return(f,U)=>(V(),A(le,{color:w.value,size:"small"},{default:l(()=>[h(c(d.value),1)]),_:1},8,["color"]))}},oa={key:1},na={key:1},ia={class:"text-right"},sa={class:"grey lighten-4"},ra=["colspan"],ma={__name:"DomainList",setup(T,{expose:k}){const{$gettext:e}=J(),d=ce(),{canSetRole:w}=_e(),f=ne(),U=[{title:e("Name"),key:"name"},{title:e("Enabled"),key:"enabled",width:"5%"},{title:e("Aliases"),key:"data-table-expand",width:"10%"},{title:e("DNS status"),key:"dns_global_status",sortable:!1},{title:e("Sending limit"),key:"message_limit"},{title:e("Quota"),key:"allocated_quota_in_percent",sortable:!1}],t=[{value:10,title:"10"},{value:25,title:"25"},{value:50,title:"50"},{value:100,title:"100"}];w.value&&U.push({title:e("Actions"),value:"actions",sortable:!1,align:"end"});const r=n({}),F=n(),C=n([]),v=n(!1),_=n(!1),L=n(null),D=n(null),m=n(!1),g=n(!1),N=n(""),x=n([]),S=n([]),G=n(0),W=n(1),K=n(10),M=n([]);async function R(){const y={page:W.value||1,page_size:K.value||10};M.value&&M.value.length&&(y.ordering=M.value.map(s=>s.order!=="asc"?`-${s.key}`:s.key).join(",")),N.value!==""&&(y.search=N.value),r.value={},_.value=!0,S.value=[];try{const s=await E.getDomains(y);C.value=s.data.results,G.value=s.data.count}finally{_.value=!1}}async function ee({page:y,itemsPerPage:s,sortBy:z}){W.value=y,K.value=s,M.value=z,await R()}function ae(){g.value=!1,L.value=null,D.value=null}async function u(y){if(await F.value.open(e("Warning"),e("Do you really want to delete the domain %{ domain }?",{domain:y.name}),{color:"error",cancelLabel:e("No"),agreeLabel:e("Yes")})){_.value=!0;try{const z={keep_folder:v.value};await E.deleteDomain(y.pk,z),R(),f.displayNotification({msg:e("Domain deleted")}),v.value=!1}finally{_.value=!1}}}function p(y){d.push({name:"DomainEdit",params:{id:y.pk}})}function b(y,s){L.value=y,D.value=s,g.value=!0}async function Y(y,s,z,o){if(!z(s)){const P=await E.getDomainAliases(y.name);r.value[y.name]=P.data}o(s)}function xe(y){L.value=y,m.value=!0}function De(y){const s=[{label:e("Administrators"),icon:"mdi-account-supervisor",onClick:xe},{label:e("Edit"),icon:"mdi-circle-edit-outline",onClick:p},{label:e("Delete"),icon:"mdi-delete-outline",onClick:u,color:"red"}];return y.opened_alarms_count&&s.push({label:e("Alarms"),icon:"mdi-bell",color:"red",onClick:()=>d.push({name:"Alarms",query:{search:y.name}})}),s}return ie(()=>{R()}),k({reloadDomains:R}),(y,s)=>{const z=Ce("router-link");return V(),A(ge,{class:"mt-6"},{default:l(()=>[a(We,{modelValue:x.value,"onUpdate:modelValue":s[1]||(s[1]=o=>x.value=o),expanded:S.value,"onUpdate:expanded":s[2]||(s[2]=o=>S.value=o),headers:U,items:C.value,"items-length":G.value,page:W.value,"items-per-page":K.value,"items-per-page-options":t,"item-value":"pk",search:N.value,"show-select":"","show-expand":"",loading:_.value,"onUpdate:options":ee},{top:l(()=>[a(Ve,{color:"white",flat:""},{default:l(()=>[a(se,{modelValue:N.value,"onUpdate:modelValue":s[0]||(s[0]=o=>N.value=o),"prepend-inner-icon":"mdi-magnify",placeholder:i(e)("Search"),variant:"outlined","single-line":"","hide-details":"",density:"compact",class:"flex-grow-0 w-33 mr-4"},null,8,["modelValue","placeholder"]),Ae(y.$slots,"extraActions",{},void 0,!0),a(oe,{location:"bottom"},{activator:l(({props:o})=>[a(q,X({variant:"flat","append-icon":"mdi-chevron-down"},o,{size:"small"}),{default:l(()=>[h(c(i(e)("Actions")),1)]),_:1},16)]),default:l(()=>[a(be,{density:"compact"})]),_:1}),a(q,{variant:"text",icon:"mdi-reload",onClick:R})]),_:3})]),"item.name":l(({item:o})=>[a(z,{to:{name:"DomainDetail",params:{id:o.pk}}},{default:l(()=>[h(c(o.name),1)]),_:2},1032,["to"]),o.type==="relaydomain"?(V(),A(le,{key:0,size:"small",color:"primary",class:"ml-2"},{default:l(()=>[h(c(i(e)("Relay")),1)]),_:1})):H("",!0)]),"item.enabled":l(({item:o})=>[a(Ie,{value:o.enabled},null,8,["value"])]),"item.data-table-expand":l(({item:o,internalItem:O,isExpanded:P,toggleExpand:re})=>[h(c(o.domainalias_count)+" aliases ",1),o.domainalias_count?(V(),A(q,{key:0,variant:"text",size:"small",icon:P(O)?"mdi-chevron-up":"mdi-chevron-down",onClick:pa=>Y(o,O,P,re)},null,8,["icon","onClick"])):H("",!0)]),"item.dns_global_status":l(({item:o})=>[a(la,{status:o.dns_global_status},null,8,["status"])]),"item.message_limit":l(({item:o})=>[o.message_limit?(V(),A(me,{key:0,color:o.sent_messages_in_percent<80?"primary":"warning","model-value":o.sent_messages_in_percent},null,8,["color","model-value"])):(V(),j("span",oa,c(i(e)("Unlimited")),1))]),"item.allocated_quota_in_percent":l(({item:o})=>[o.quota!=="0"?(V(),A(me,{key:0,color:o.allocated_quota_in_percent<80?"primary":"warning","model-value":o.allocated_quota_in_percent},null,8,["color","model-value"])):(V(),j("span",na,c(i(e)("Unlimited")),1))]),"item.actions":l(({item:o})=>[$("div",ia,[a(oe,{"offset-y":""},{activator:l(({props:O})=>[o.opened_alarms_count?(V(),A(Je,{key:0,bordered:"",color:"error",icon:"mdi-bell",overlap:""},{default:l(()=>[a(q,X({icon:"mdi-dots-horizontal",variant:"text"},O),null,16)]),_:2},1024)):(V(),A(q,X({key:1,icon:"mdi-dots-horizontal",variant:"text"},O),null,16))]),default:l(()=>[a(je,{items:De(o),obj:o},null,8,["items","obj"])]),_:2},1024)])]),"expanded-row":l(({item:o,columns:O})=>[$("tr",sa,[$("td",{colspan:O.length},[(V(!0),j(fe,null,he(r.value[o.name],P=>(V(),j("span",{key:P.name,class:"mr-4"},[a(le,{class:"mr-2",onClick:re=>b(o,P)},{default:l(()=>[h(c(P.name),1)]),_:2},1032,["onClick"])]))),128))],8,ra)])]),_:2},1032,["modelValue","expanded","items","items-length","page","items-per-page","search","loading"]),a(Be,{ref_key:"confirm",ref:F},{default:l(()=>[a(Ke,{modelValue:v.value,"onUpdate:modelValue":s[3]||(s[3]=o=>v.value=o),label:i(e)("Do not delete domain folder"),"hide-details":""},null,8,["modelValue","label"])]),_:1},512),a(Q,{modelValue:g.value,"onUpdate:modelValue":s[4]||(s[4]=o=>g.value=o),persistent:"","max-width":"800px"},{default:l(()=>[a(ke,{"domain-alias":D.value,onClose:ae,onAliasDeleted:R},null,8,["domain-alias"])]),_:1},8,["modelValue"]),a(Q,{modelValue:m.value,"onUpdate:modelValue":s[6]||(s[6]=o=>m.value=o),persistent:"","max-width":"800px"},{default:l(()=>[a(Me,{domain:L.value,"dialog-mode":"",onClose:s[5]||(s[5]=o=>m.value=!1)},null,8,["domain"])]),_:1},8,["modelValue"])]),_:3})}}},ua=ve(ma,[["__scopeId","data-v-f195dac6"]]),da={__name:"DomainsView",setup(T){const k=n(),e=n(!1),d=n(!1),w=n(!1),{$gettext:f}=J(),{canAddDomain:U}=_e(),t=n(),{importContent:r,exportContent:F}=He();function C(){E.exportAll().then(D=>{F(D.data,"domains",f)})}function v(D){r(E,D,t,f)}const _=()=>{e.value=!1,k.value.reloadDomains()},L=()=>{w.value=!1,k.value.reloadDomains()};return(D,m)=>(V(),j("div",null,[a(Ve,{flat:""},{default:l(()=>[a(Ge,null,{default:l(()=>[h(c(i(f)("Domains")),1)]),_:1})]),_:1}),a(i(ua),{ref_key:"domainList",ref:k},{extraActions:l(()=>[i(U)?(V(),A(oe,{key:0,"offset-y":""},{activator:l(({props:g})=>[a(q,X({color:"primary",variant:"outlined"},g,{"prepend-icon":"mdi-plus",class:"mr-4"}),{default:l(()=>[h(c(D.$pgettext("male","New")),1)]),_:1},16)]),default:l(()=>[a(be,{density:"compact"},{default:l(()=>[a(de,{onClick:m[0]||(m[0]=g=>d.value=!0)},{default:l(()=>[a(pe,null,{default:l(()=>[h(c(i(f)("Domain")),1)]),_:1})]),_:1}),a(de,{onClick:m[1]||(m[1]=g=>e.value=!0)},{default:l(()=>[a(pe,null,{default:l(()=>[h(c(i(f)("Alias")),1)]),_:1})]),_:1})]),_:1})]),_:1})):H("",!0),i(U)?(V(),A(q,{key:1,class:"mr-2",title:i(f)("Import domains and aliases from CSV file"),variant:"flat",icon:"mdi-file-import-outline",onClick:m[2]||(m[2]=g=>w.value=!0)},null,8,["title"])):H("",!0),a(q,{class:"mr-2",title:i(f)("Export domains and aliases to CSV"),variant:"flat",icon:"mdi-file-export-outline",onClick:C},null,8,["title"])]),_:1},512),a(Q,{modelValue:d.value,"onUpdate:modelValue":m[4]||(m[4]=g=>d.value=g),fullscreen:"",scrollable:"","z-index":"10"},{default:l(()=>[a(i(ta),{onClose:m[3]||(m[3]=g=>d.value=!1)})]),_:1},8,["modelValue"]),a(Q,{modelValue:e.value,"onUpdate:modelValue":m[6]||(m[6]=g=>e.value=g),persistent:"","max-width":"800px"},{default:l(()=>[a(i(ke),{onClose:m[5]||(m[5]=g=>_())})]),_:1},8,["modelValue"]),a(Q,{modelValue:w.value,"onUpdate:modelValue":m[7]||(m[7]=g=>w.value=g),persistent:"","max-width":"800px"},{default:l(()=>[a(i(Qe),{ref_key:"importForm",ref:t,title:i(f)("Import domains"),onSubmit:v,onClose:L},{help:l(()=>[...m[8]||(m[8]=[$("ul",null,[$("li",null,[$("em",null,"domain; name; quota; default mailbox quota; enabled")]),$("li",null,[$("em",null,"domainalias; name; targeted domain; enabled")]),$("li",null,[$("em",null,"relaydomain; name; target host; target port; service; enabled; verify recipients")])],-1)])]),_:1},8,["title"])]),_:1},8,["modelValue"])]))}},it=ve(da,[["__scopeId","data-v-de80aa3f"]]);export{it as default};
@@ -1 +0,0 @@
1
- import{j as $,_ as b,i as p,h as n,d as F,Z as z,$ as A,a0 as B,l as g,o as d,a as y,m as T,v as U,a1 as N,w,F as S,s as R,c as W,y as j,k as K,t as O}from"./index-B1bntsLR.js";import{V as P}from"./VTextField-QXQFhKxm.js";import{b as Z,c as q,a as G}from"./VMenu-B6SCtOwT.js";import{u as H}from"./domains.store-D4ZqCQ-O.js";const J={__name:"EmailField",props:{modelValue:{type:String,default:""},allowAdd:{type:Boolean,default:!1},role:{type:String,default:$.USER},errorMsg:{type:Array,default:()=>[]}},emits:["domain-selected","update:model-value"],setup(x,{emit:E}){const h=H(),o=x,V=E,r=p({get(){return o.modelValue},set(e){v.value=[],e.indexOf("@")!==-1?(u.value=e.split("@")[1],o.allowAdd?t.value=s.value.length>0:t.value=!0):t.value=!1,V("update:model-value",e)}}),s=p(()=>Object.values(h.domains).filter(e=>e.name.startsWith(u.value))),v=p({get(){return[...D.value,...o.errorMsg]},set(e){D.value=e}}),u=n(""),l=n(0),t=n(!1),k=n(500),_=n(),D=n([]);function C(e){const a=e.keyCode;a===40||a===34?(t.value?M():(u.value="",t.value=!0),e.preventDefault()):a===38||a===33?(t.value?I():(u.value="",t.value=!0),e.preventDefault()):a===13||a===9?(s.value.length>0?c(s.value[l.value]):o.allowAdd&&c(),e.preventDefault()):a===27&&s.value.length>0&&(t.value=!1,e.preventDefault())}function M(){l.value>=s.value.length-1?l.value=0:l.value+=1}function I(){l.value<=0?l.value=s.value.length-1:l.value-=1}function c(e){e!==void 0&&(r.value=r.value.split("@")[0]+"@"+e.name),t.value=!1,V("domain-selected")}function m(){k.value=_.value.$el.clientWidth}return F(()=>{h.getDomains(),window.addEventListener("resize",m)}),z(()=>{window.removeEventListener("resize",m)}),A(()=>{B(()=>{m()})}),(e,a)=>(d(),g(S,null,[y(P,U({ref_key:"inputRef",ref:_,modelValue:r.value,"onUpdate:modelValue":a[0]||(a[0]=i=>r.value=i),variant:"outlined"},e.$attrs,{"error-messages":v.value,error:v.value.length>0,density:"compact",autocomplete:"new-password",onKeydown:C}),null,16,["modelValue","error-messages","error"]),t.value?(d(),g("div",{key:0,class:"menu",style:N(`width: ${k.value}px;`)},[y(G,{class:"list"},{default:w(()=>[(d(!0),g(S,null,R(s.value,(i,f)=>(d(),W(Z,{key:f,class:j(l.value===f?"bg-primary-lighten-1":""),onClick:L=>c(i),onMouseenter:L=>l.value=f},{default:w(()=>[y(q,null,{default:w(()=>[K(O(i.name),1)]),_:2},1024)]),_:2},1032,["class","onClick","onMouseenter"]))),128))]),_:1})],4)):T("",!0)],64))}},te=b(J,[["__scopeId","data-v-bed4b698"]]);export{te as E};
@@ -1 +0,0 @@
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};
@@ -1 +0,0 @@
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};
@@ -1 +0,0 @@
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};
@@ -1 +0,0 @@
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};
@@ -1 +0,0 @@
1
- import{C as Z,H as se,A as Ee,c as F,o as p,w as t,a as l,l as R,F as T,s as Le,k as y,t as f,_ as ye,b as X,n as ie,h as u,i as z,d as Ne,m as J,v as le,f as v,r as De,x as Te,q as ne,j as ee,e as P}from"./index-B1bntsLR.js";import{_ as re}from"./MenuItems-dl38msRA.js";import{_ as ue}from"./ConfirmDialog-Du7aqKbR.js";import{V as je,b as qe,a as _e}from"./VCard-BoH6kjPa.js";import{V as be}from"./VCheckbox-CCLOJFKF.js";import{V as Me}from"./VSpacer-BUxSSJbH.js";import{V as q,c as te,a as de}from"./VAvatar-JdJfoK0C.js";import{a as G}from"./accounts-DqbBlaLK.js";import{a as K}from"./aliases-BtyF8GC8.js";import{d as Pe}from"./index-Bp9Fb67E.js";import{V as oe,a as ge,b as me,c as ce}from"./VMenu-B6SCtOwT.js";import{V as ze}from"./VSelect-D5IXDPEX.js";import{V as ke,a as Oe}from"./VToolbar-CyrYSqJZ.js";import{V as Be}from"./VTextField-QXQFhKxm.js";import{a as We,V as pe}from"./VRadioGroup-CS9ULZ1c.js";import{V as Ge}from"./VDataTableServer-B_6fWBA3.js";import{V as H}from"./VDialog-DIUeAIpw.js";import{_ as Qe,a as Ye}from"./AliasRecipientForm-jjj5yJJw.js";import{_ as Ve}from"./CreationForm-CjtILq0_.js";import{_ as He,A as Je,a as Ke,b as Xe}from"./AccountAliasForm-tLHotdIR.js";import{u as Ze}from"./permissions-cSkGqV3M.js";import{a as W,V as fe}from"./VRow-CuVZGqBj.js";import{u as et}from"./domains.store-D4ZqCQ-O.js";import{_ as tt,i as at}from"./importExport-C-adpHJX.js";import{V as lt}from"./VSwitch-Dh_dserW.js";import"./tag-BmV84V2s.js";import"./VCheckboxBtn-Ccl786Rg.js";import"./VSelectionControl-uKY9Zull.js";import"./VProgressCircular-DTDGzl2O.js";import"./VInput-CbqehdOu.js";/* empty css */import"./ssrBoot-05WtbG6H.js";import"./VDataTable-BkLLfcQK.js";import"./VTable-gDsAUSLX.js";import"./filter-DHKXX97M.js";import"./EmailField-DmPc4pyP.js";import"./VForm-DkphQD3e.js";import"./domains-CSxtTvUh.js";import"./VTextarea-Bdy4UKmV.js";import"./logos-95XYS6uH.js";import"./VWindowItem-kZpArwK1.js";import"./VContainer-DKMcKasC.js";import"./VSheet-HeHw6g5_.js";import"./ChoiceField-RDT6XcnX.js";import"./VAlert-CNys_LUS.js";import"./AccountPasswordSubForm-DpADntAL.js";import"./VFileInput-Dvj95FL5.js";const ae="identities",ve={getAll(){return Z.get(`${ae}/`)},exportAll(S){return Z.get(`/${ae}/export/`,{params:{type:S}})},importFromCSV(S){return Z.post(`/${ae}/import/`,S,{headers:{"Content-Type":"multipart/form-data"}})}},ot={__name:"ChooseColumnsForm",props:se({availableColumns:{type:Array,default:null},mandatoryColumns:{type:Array,default:null},columns:{type:Array,default:null}},{modelValue:{type:Array},modelModifiers:{}}),emits:se(["apply"],["update:modelValue"]),setup(S,{emit:k}){const e=S,n=Ee(S,"modelValue"),U=k,x=()=>{U("apply",n.value)};return n.value=e.columns.map(w=>w.key),(w,V)=>(p(),F(_e,{title:w.$gettext("Choose columns to display")},{default:t(()=>[l(je,null,{default:t(()=>[(p(!0),R(T,null,Le(e.availableColumns,C=>(p(),R("div",{key:C.key},[l(be,{modelValue:n.value,"onUpdate:modelValue":V[0]||(V[0]=h=>n.value=h),value:C.key,label:C.title,color:"primary","hide-details":"",density:"compact",disabled:e.mandatoryColumns.includes(C.key)},null,8,["modelValue","value","label","disabled"])]))),128))]),_:1}),l(qe,null,{default:t(()=>[l(Me),l(q,{color:"primary",variant:"outlined",onClick:x},{default:t(()=>[y(f(w.$gettext("Apply")),1)]),_:1})]),_:1})]),_:1},8,["title"]))}},it={key:1},nt={key:1},st={__name:"IdentityList",setup(S,{expose:k}){const{$gettext:e}=X(),n=ne(),{displayNotification:U}=ie(),x={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"}},w=[x.address,x.enabled,x.recipients],V={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"}},C=[V.username,V.is_active,V.role,V.quota],h=[{value:10,title:"10"},{value:25,title:"25"},{value:50,title:"50"},{value:100,title:"100"}],$=u("account"),o=u(0),E=u([]),_=u(!1),i=u(""),m=u([]),L=u(!1),j=u(),O=u(),b=u(1),I=u(10),A=u([]),M=u(C),B=u(!1),Q=z(()=>M.value.concat([{title:e("Actions"),key:"actions",sortable:!1,align:"end"}])),Y=z(()=>$.value==="account"?Object.values(V):Object.values(x)),c=z(()=>$.value==="account"?["username"]:["address"]);async function d(r){_.value=!0,E.value=[],A.value=[],r==="account"?M.value=C:M.value=w,await N()}async function g({page:r,itemsPerPage:s,sortBy:D}){b.value=r,I.value=s,A.value=D,N()}async function N(){_.value=!0;const r={page:b.value||1,page_size:I.value||10};A.value&&A.value.length&&(r.ordering=A.value.map(s=>s.order!=="asc"?`-${s.key}`:s.key).join(",")),i.value!==""&&(r.search=i.value);try{const s=$.value==="account"?await G.getAll(r):await K.getAll(r);E.value=s.data.results,o.value=s.data.count,m.value=[]}finally{_.value=!1}}function xe(r){M.value=Y.value.filter(s=>r.includes(s.key)),B.value=!1}function we(r){const s=[];return $.value==="account"?(r.possible_actions.forEach(D=>{s.push({label:D.label,icon:D.icon,onClick:a=>{D.name==="get_credentials"&&$e(a),N()}})}),s.push({label:e("Edit"),icon:"mdi-circle-edit-outline",onClick:Ae}),s.push({label:e("Delete"),icon:"mdi-delete-outline",onClick:he,color:"red"})):$.value==="alias"&&(s.push({label:e("Edit"),icon:"mdi-circle-edit-outline",onClick:Re}),s.push({label:e("Delete"),icon:"mdi-delete-outline",onClick:Ue,color:"red"})),s}function Ce(){const r=[];return m.value.length>0&&r.push({label:e("Delete"),icon:"mdi-delete-outline",onClick:Ie,color:"red"}),r}function Ae(r){n.push({name:"AccountEdit",params:{id:r.pk}})}async function he(r){if(await O.value.open(e("Warning"),e("Are you sure you want to delete this identity ?"),{color:"error",agreeLabel:e("Yes"),cancelLabel:e("No")})){_.value=!1;try{await G.delete(r.pk,{keepdir:L.value}),N(),U({msg:e("Account deleted")})}finally{_.value=!1}}}async function $e(r){const s=await G.getCredentials(r.pk),D=new Blob([s.data],{type:s.headers["Content-Type"]}),a=document.createElement("a");a.href=URL.createObjectURL(D),a.download=`credentials_${r.pk}.pdf`,a.click(),URL.revokeObjectURL(a.href)}function Re(r){n.push({name:"AliasEdit",params:{id:r.pk}})}function Ie(){}async function Ue(r){if(await j.value.open(e("Warning"),e("Are you sure you want to delete this alias?"),{color:"error",agreeLabel:e("Yes"),cancelLabel:e("No")})){_.value=!1;try{await K.delete(r.pk),N(),U({msg:e("Alias deleted")})}finally{_.value=!1}}}function Fe(r){return r.recipients?r.recipients.join(", "):""}return Ne(()=>{N()}),k({fetchIdentities:N,identityType:$}),N=Pe(N,500),(r,s)=>{const D=De("router-link");return p(),F(_e,{class:"mt-6"},{default:t(()=>[l(Ge,{modelValue:m.value,"onUpdate:modelValue":s[3]||(s[3]=a=>m.value=a),headers:Q.value,items:E.value,search:i.value,loading:_.value,"items-length":o.value,page:b.value,"items-per-page":I.value,"items-per-page-options":h,"item-value":"pk",elevation:"0","show-select":"","sort-by":A.value,"onUpdate:options":g},{top:t(()=>[l(ke,{flat:"",color:"white"},{extension:t(()=>[l(We,{modelValue:$.value,"onUpdate:modelValue":[s[2]||(s[2]=a=>$.value=a),d],inline:"",readonly:_.value,"hide-details":""},{default:t(()=>[l(pe,{color:"primary",label:v(e)("Accounts"),value:"account"},null,8,["label"]),l(pe,{color:"primary",label:v(e)("Alias"),value:"alias"},null,8,["label"])]),_:1},8,["modelValue","readonly"])]),default:t(()=>[l(Be,{modelValue:i.value,"onUpdate:modelValue":s[0]||(s[0]=a=>i.value=a),"prepend-inner-icon":"mdi-magnify",placeholder:v(e)("Search"),variant:"outlined","hide-details":"","single-line":"",flat:"",density:"compact",class:"flex-grow-0 w-33 mr-4"},null,8,["modelValue","placeholder"]),Te(r.$slots,"extraActions",{},void 0,!0),l(q,{variant:"text",icon:"mdi-format-columns",title:v(e)("Customize displayed columns"),onClick:s[1]||(s[1]=a=>B.value=!0)},null,8,["title"]),m.value.length>1?(p(),F(oe,{key:0,location:"bottom"},{activator:t(({props:a})=>[l(q,le({"append-icon":"mdi-chevron-down"},a,{size:"small",variant:"flat"}),{default:t(()=>[y(f(v(e)("Actions")),1)]),_:1},16)]),default:t(()=>[l(ge,{density:"compact"},{default:t(()=>[l(re,{items:Ce()},null,8,["items"])]),_:1})]),_:1})):J("",!0),l(q,{variant:"text",icon:"mdi-reload",onClick:N})]),_:3})]),"item.username":t(({item:a})=>[l(D,{to:{name:"AccountDetail",params:{id:a.pk}}},{default:t(()=>[y(f(a.username),1)]),_:2},1032,["to"])]),"item.address":t(({item:a})=>[l(D,{to:{name:"AliasDetail",params:{id:a.pk}}},{default:t(()=>[y(f(a.address),1)]),_:2},1032,["to"])]),"item.is_active":t(({item:a})=>[l(te,{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(te,{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})=>[y(f(Fe(a)),1)]),"item.date_joined":t(({item:a})=>[y(f(r.$date(a.date_joined)),1)]),"item.creation":t(({item:a})=>[y(f(r.$date(a.creation)),1)]),"item.last_modification":t(({item:a})=>[y(f(r.$date(a.last_modification)),1)]),"item.last_login":t(({item:a})=>[a.last_login?(p(),R(T,{key:0},[y(f(r.$date(a.last_login)),1)],64)):(p(),R(T,{key:1},[y(f(v(e)("Never logged-in")),1)],64))]),"item.role":t(({item:a})=>[l(ze,{color:"default",size:"small"},{default:t(()=>[y(f(a.role),1)]),_:2},1024)]),"item.quota_usage":t(({item:a})=>[a.mailbox?(p(),R(T,{key:0},[a.mailbox.quota!=="0"?(p(),F(de,{key:0,color:a.mailbox.quota_usage<80?"primary":"warning","model-value":a.mailbox.quota_usage},null,8,["color","model-value"])):(p(),R("span",it,f(v(e)("Unlimited")),1))],64)):(p(),R(T,{key:1},[y(f(v(e)("No mailbox")),1)],64))]),"item.sent_messages_in_percent":t(({item:a})=>[a.mailbox?(p(),R(T,{key:0},[a.mailbox.message_limit!==null&&a.mailbox.message_limit!==void 0?(p(),R(T,{key:0},[a.mailbox.message_limit!==0?(p(),F(de,{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"])):(p(),R("span",nt,f(v(e)("Sending forbidden")),1))],64)):(p(),R(T,{key:1},[y(f(v(e)("Unlimited")),1)],64))],64)):(p(),R(T,{key:1},[y(f(v(e)("No mailbox")),1)],64))]),"item.actions":t(({item:a})=>[a.possible_actions!==void 0&&a.possible_actions.length!==0?(p(),F(te,{key:0,size:"large",color:"blue"},{default:t(()=>[...s[6]||(s[6]=[y("mdi-circle-small",-1)])]),_:1})):J("",!0),l(oe,{location:"bottom"},{activator:t(({props:Se})=>[l(q,le(Se,{size:"small",icon:"mdi-dots-horizontal",variant:"text"}),null,16)]),default:t(()=>[l(re,{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(ue,{ref_key:"confirmAlias",ref:j},null,512),l(ue,{ref_key:"confirmAccount",ref:O},{default:t(()=>[l(be,{modelValue:L.value,"onUpdate:modelValue":s[4]||(s[4]=a=>L.value=a),label:v(e)("Do not delete account folder"),"hide-details":""},null,8,["modelValue","label"])]),_:1},512),l(H,{modelValue:B.value,"onUpdate:modelValue":s[5]||(s[5]=a=>B.value=a),"max-width":"500"},{default:t(()=>[l(ot,{columns:M.value,"available-columns":Y.value,"mandatory-columns":c.value,onApply:xe},null,8,["columns","available-columns","mandatory-columns"])]),_:1},8,["modelValue"])]),_:3})}}},rt=ye(st,[["__scopeId","data-v-564ee4b8"]]),ut={__name:"AliasCreationForm",emits:["close"],setup(S,{emit:k}){const{$gettext:e}=X(),n=ie(),U=ne(),x=k,w=u(),V=u(),C=u(),h={general:V,recipients:C},$=z(()=>{const b=[{title:e("General"),items:[{key:e("Random address"),value:o.value.random,type:"yesno"},{key:e("Address"),value:o.value.address}]}];return o.value.expire_at!==void 0&&b[0].items.push({key:e("Expire at"),value:o.value.expire_at}),o.value.description!==void 0&&b[0].items.push({key:e("Description"),value:o.value.description}),b.push({title:e("Recipients"),items:[{key:e("Recipients"),value:o.value.recipients.join(", ")}]}),b}),o=u(i()),E=u([{name:"general",title:e("General")},{name:"recipients",title:e("Recipients")}]);function _(){o.value=i(),x("close")}function i(){return{random:!1,enabled:!0,recipients:[]}}function m(b){return h.step[b.name]}function L(b){return h[b.name].value.vFormRef}function j(){const b={...o.value};b.recipients.length===0&&delete b.recipients;const I=K.validate(b);return I.catch(A=>{A.response.status===409&&A.response.data.id!==void 0&&(n.displayNotification({msg:e("Alias already exists, redirecting to edit page"),type:"warning"}),U.push({name:"AliasEdit",params:{id:A.response.data.id}}))}),I}async function O(){o.value.domain!==void 0&&delete o.value.domain;try{const b=await K.create(o.value);U.push({name:"AliasDetail",params:{id:b.data.pk}}),n.displayNotification({msg:e("Alias created")}),_()}finally{w.value.working=!1}}return(b,I)=>(p(),F(Ve,{ref_key:"form",ref:w,title:v(e)("New alias"),steps:E.value,"form-getter":m,"get-v-form-ref":L,"validate-object":j,"summary-sections":$.value,onClose:_,onCreate:O},{"form.general":t(()=>[l(Ye,{ref_key:"general",ref:V,modelValue:o.value,"onUpdate:modelValue":I[0]||(I[0]=A=>o.value=A)},null,8,["modelValue"])]),"form.recipients":t(()=>[l(Qe,{ref_key:"recipients",ref:C,modelValue:o.value.recipients,"onUpdate:modelValue":I[1]||(I[1]=A=>o.value.recipients=A)},null,8,["modelValue"])]),_:2},1032,["title","steps","summary-sections"]))}},dt={class:"grey--text"},mt={__name:"AccountCreationForm",emits:["close"],setup(S,{emit:k}){const e=ne(),{$gettext:n}=X(),{canSetRole:U}=Ze(),x=ie(),w=et(),V=k,C=z(()=>o.value.username&&o.value.username.indexOf("@")!==-1),h=z(()=>{const c=[{title:n("Role"),items:[{key:n("Role"),value:o.value.role}]},{title:n("Identification"),items:[{key:n("Username"),value:o.value.username},{key:n("First name"),value:o.value.first_name},{key:n("Last name"),value:o.value.last_name},{name:"random_password",key:n("Random password"),value:o.value.random_password,type:"yesno"},{key:n("Enabled"),value:o.value.is_active,type:"yesno"}]}];return C.value?c.concat([{title:n("Mailbox"),items:[{key:n("Email"),value:o.value.mailbox.full_address},{key:n("Quota"),value:o.value.mailbox.use_domain_quota?n("Domain default value"):o.value.mailbox.quota},{key:n("Message sending limit"),value:o.value.mailbox.message_limit},{key:n("Send only account"),value:o.value.mailbox.is_send_only,type:"yesno"}]},{title:n("Aliases"),items:[{key:n("Aliases"),value:o.value.aliases,type:"list"}]}]):c}),$=z(()=>{const c=[];return U.value&&c.push({name:"role",title:n("Role")}),c.push({name:"identification",title:n("Identification")}),C.value?c.concat([{name:"mailbox",title:n("Mailbox")},{name:"aliases",title:n("Aliases")}]):c}),o=u({aliases:[],is_active:!0,role:ee.USER,mailbox:{use_domain_quota:!0},random_password:!1}),E=u(),_=u(),i=u(),m=u(),L=u(),j={role:_,identification:i,mailbox:m,aliases:L};function O(){navigator.clipboard.writeText(o.value.new_password).then(()=>{x.displayNotification({msg:n("Password copied to clipboard")})})}function b(c){return j.step[c.name]}function I(c){return j[c.name].value.vFormRef}function A(c,d){const g=$.value[c-1].name;j[g].value.formErrors&&(j[g].value.formErrors.value=d)}function M(c){const d={...c};return[ee.RESELLER,ee.SUPER_ADMIN].includes(d.role)&&d.username&&d.username.indexOf("@")===-1&&delete d.mailbox,d.mailbox&&(d.mailbox.message_limit===""&&(d.mailbox.message_limit=null),!d.mailbox.use_domain_quota&&(d.mailbox.quota===void 0||d.mailbox.quota===null)&&(d.mailbox.quota=0)),d}function B(c){if(c===1)return!0;const d=M({...o.value});return G.validate(d)}function Q(){V("close")}async function Y(){const c=M({...o.value});c.password=c.new_password,delete c.new_password,delete c.password_confirmation;try{const d=await G.create(c);e.push({name:"AccountDetail",params:{id:d.data.pk}}),x.displayNotification({msg:n("Account created")}),Q()}finally{E.value.working=!1}}return w.getDomains(),(c,d)=>(p(),F(Ve,{ref_key:"form",ref:E,title:v(n)("New account"),steps:$.value,"form-getter":b,"get-v-form-ref":I,"validate-object":B,"summary-sections":h.value,onClose:Q,onCreate:Y,onValidationError:A},{"form.role":t(()=>[l(Xe,{ref_key:"role",ref:_,modelValue:o.value,"onUpdate:modelValue":d[0]||(d[0]=g=>o.value=g)},null,8,["modelValue"])]),"form.identification":t(()=>[l(Ke,{ref_key:"identification",ref:i,modelValue:o.value,"onUpdate:modelValue":d[1]||(d[1]=g=>o.value=g)},null,8,["modelValue"])]),"form.mailbox":t(()=>[l(Je,{ref_key:"mailbox",ref:m,modelValue:o.value,"onUpdate:modelValue":d[2]||(d[2]=g=>o.value=g)},null,8,["modelValue"])]),"form.aliases":t(()=>[l(He,{ref_key:"aliases",ref:L,modelValue:o.value,"onUpdate:modelValue":d[3]||(d[3]=g=>o.value=g)},null,8,["modelValue"])]),"item.random_password":t(({item:g})=>[g.value?(p(),F(W,{key:0,cols:"12",class:"highligth text-white"},{default:t(()=>[l(fe,null,{default:t(()=>[l(W,null,{default:t(()=>[P("span",null,f(g.key),1)]),_:2},1024),g.type==="yesno"?(p(),F(W,{key:0,class:"text-right"},{default:t(()=>[y(f(c.$yesno(g.value)),1)]),_:2},1024)):J("",!0)]),_:2},1024),l(fe,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:v(n)("Copy to clipboard"),onClick:O},{default:t(()=>[y(f(o.value.new_password),1)]),_:1},8,["title"])]),_:1})]),_:1})]),_:2},1024)):(p(),R(T,{key:1},[l(W,null,{default:t(()=>[P("span",dt,f(g.key),1)]),_:2},1024),g.type==="yesno"?(p(),F(W,{key:0,class:"text-right"},{default:t(()=>[y(f(c.$yesno(g.value)),1)]),_:2},1024)):J("",!0)],64))]),_:2},1032,["title","steps","summary-sections"]))}},ct={__name:"IdentitiesView",setup(S){const{$gettext:k,$pgettext:e}=X(),{importContent:n,exportContent:U}=at(),x=u(!1),w=u(!1),V=u(!1),C=u(),h=u();function $(){ve.exportAll(h.value.identityType).then(_=>{U(_.data,`${h.value.identityType}-list`,k)})}function o(_,i){i.crypt_passwords!==void 0&&i.crypt_passwords!==null&&_.append("crypt_passwords",i.crypt_passwords),n(ve,_,C,k)}function E(){V.value=!1,h.value.fetchIdentities()}return(_,i)=>(p(),R("div",null,[l(ke,{flat:""},{default:t(()=>[l(Oe,null,{default:t(()=>[y(f(v(k)("Identities")),1)]),_:1})]),_:1}),l(rt,{ref_key:"idList",ref:h},{extraActions:t(()=>[l(oe,{"offset-y":""},{activator:t(({props:m})=>[l(q,le({color:"primary",variant:"outlined"},m,{"prepend-icon":"mdi-plus",class:"mr-4"}),{default:t(()=>[y(f(v(e)("male","New")),1)]),_:1},16)]),default:t(()=>[l(ge,{density:"compact"},{default:t(()=>[l(me,{onClick:i[0]||(i[0]=m=>x.value=!0)},{default:t(()=>[l(ce,null,{default:t(()=>[y(f(v(k)("Account")),1)]),_:1})]),_:1}),l(me,{onClick:i[1]||(i[1]=m=>w.value=!0)},{default:t(()=>[l(ce,null,{default:t(()=>[y(f(v(k)("Alias")),1)]),_:1})]),_:1})]),_:1})]),_:1}),l(q,{class:"mr-2",title:v(k)("Import accounts and aliases from CSV file"),variant:"flat",icon:"mdi-file-import-outline",onClick:i[2]||(i[2]=m=>V.value=!0)},null,8,["title"]),l(q,{class:"mr-2",title:v(k)("Export accounts and aliases to CSV"),icon:"mdi-file-export-outline",variant:"flat",onClick:$},null,8,["title"])]),_:1},512),l(H,{modelValue:w.value,"onUpdate:modelValue":i[5]||(i[5]=m=>w.value=m),fullscreen:"",scrollable:"","z-index":"10"},{default:t(()=>[l(ut,{onCreated:i[3]||(i[3]=m=>h.value.fetchIdentities()),onClose:i[4]||(i[4]=m=>w.value=!1)})]),_:1},8,["modelValue"]),l(H,{modelValue:x.value,"onUpdate:modelValue":i[8]||(i[8]=m=>x.value=m),fullscreen:"",scrollable:"","z-index":"10"},{default:t(()=>[l(mt,{onCreated:i[6]||(i[6]=m=>h.value.fetchIdentities()),onClose:i[7]||(i[7]=m=>x.value=!1)})]),_:1},8,["modelValue"]),l(H,{modelValue:V.value,"onUpdate:modelValue":i[9]||(i[9]=m=>V.value=m),persistent:"","max-width":"800px"},{default:t(()=>[l(v(tt),{ref_key:"importForm",ref:C,title:v(k)("Import identities"),onSubmit:o,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:m})=>[l(lt,{modelValue:m.crypt_passwords,"onUpdate:modelValue":L=>m.crypt_passwords=L,label:v(k)("Crypt passwords"),color:"primary",density:"compact",hint:v(k)("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"])]))}},na=ye(ct,[["__scopeId","data-v-76745e51"]]);export{na as default};
@@ -1 +0,0 @@
1
- import{_ as w,b as M,h as V,i as k,d as H,l as u,a as r,c as m,m as p,w as o,f as t,o as l,k as d,t as a,F as _,s as x,e as s}from"./index-B1bntsLR.js";import{a as I}from"./admin-D36m_nXq.js";import{V as C,a as N}from"./VToolbar-CyrYSqJZ.js";import{a as g,c as f,V as v}from"./VCard-BoH6kjPa.js";import{V as T}from"./VAlert-CNys_LUS.js";import{V as B}from"./VDataTableVirtual-Ike7oqcC.js";import{u as A}from"./global.store-DYMmGKpn.js";import"./tag-BmV84V2s.js";import"./VAvatar-JdJfoK0C.js";import"./VProgressCircular-DTDGzl2O.js";import"./VDataTable-BkLLfcQK.js";import"./VSelect-D5IXDPEX.js";import"./VTextField-QXQFhKxm.js";import"./VInput-CbqehdOu.js";import"./VMenu-B6SCtOwT.js";import"./ssrBoot-05WtbG6H.js";import"./VCheckboxBtn-Ccl786Rg.js";import"./VSelectionControl-uKY9Zull.js";import"./VTable-gDsAUSLX.js";import"./filter-DHKXX97M.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,[r(C,{flat:""},{default:o(()=>[r(N,null,{default:o(()=>[d(a(t(e)("Information")),1)]),_:1})]),_:1}),t(h).adminNotifications.length?(l(),m(g,{key:0,class:"my-6"},{default:o(()=>[r(f,null,{default:o(()=>[d(a(t(e)("Important messages")),1)]),_:1}),r(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(a(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,a(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),r(g,{class:"mt-6"},{default:o(()=>[r(f,null,{default:o(()=>[d(a(t(e)("Installed components")),1)]),_:1}),r(v,null,{default:o(()=>[L.value?(l(),m(T,{key:0,variant:"tonal",type:"success",text:"",border:"start"},{default:o(()=>[s("div",U,a(t(e)("One or more updates are available")),1),s("div",Y,a(t(e)("Check out the following list to find related components")),1)]),_:1})):p("",!0),r(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"},a(n.last_version),9,$)):(l(),u(_,{key:1},[d(a(n.last_version),1)],64))]),_:2},1032,["items"])]),_:1})]),_:1})]))}},_e=w(j,[["__scopeId","data-v-f326fdcf"]]);export{_e as default};
@@ -1 +0,0 @@
1
- .v-card-text[data-v-7fa30d1a]{padding:0}.emails[data-v-7fa30d1a]{margin-top:150px}.clickable[data-v-7fa30d1a]{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))}@media(forced-colors:active){.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:canvastext}}.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%}@media(forced-colors:active)and (pointer:fine){.v-skeleton-loader__bone{cursor:progress}}.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,5 +0,0 @@
1
- import{I as se,J as oe,ao as ne,K as ie,i as X,a5 as re,e as u,v as de,F,ap as ue,y as W,_ as ce,b as me,n as ge,h as S,B as pe,d as ve,Z as fe,z as E,l as _,a as o,c as p,w as b,m as L,aV as he,f as m,t as g,s as ke,q as be,o as d}from"./index-B1bntsLR.js";import{a as y}from"./webmail-B7MNMkv_.js";import{V as ye}from"./VToolbar-CyrYSqJZ.js";import{V as j}from"./VCheckbox-CCLOJFKF.js";import{V as xe}from"./VTextField-QXQFhKxm.js";import{l as _e,p as Ve,V as x,c as z}from"./VAvatar-JdJfoK0C.js";import{V as Ce,a as we,b as I}from"./VMenu-B6SCtOwT.js";import{V as q}from"./VSpacer-BUxSSJbH.js";import{a as K,V as Se}from"./VCard-BoH6kjPa.js";import{u as $e}from"./VProgressCircular-DTDGzl2O.js";import{a as Me,u as Be,m as Le}from"./tag-BmV84V2s.js";import{V as Ie}from"./VAlert-CNys_LUS.js";import{u as Te}from"./webmail.store-Cm-h6hhE.js";import"./VCheckboxBtn-Ccl786Rg.js";import"./VSelectionControl-uKY9Zull.js";import"./VInput-CbqehdOu.js";import"./ssrBoot-05WtbG6H.js";/* empty css */const Ae={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 Ee(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return u("div",{class:W(["v-skeleton-loader__bone",`v-skeleton-loader__${t}`])},[n])}function R(t){const[n,a]=t.split("@");return Array.from({length:a}).map(()=>N(n))}function N(t){let n=[];if(!t)return n;const a=Ae[t];if(t!==a){if(t.includes(","))return O(t);if(t.includes("@"))return R(t);a.includes(",")?n=O(a):a.includes("@")?n=R(a):a&&n.push(N(a))}return[Ee(t,n)]}function O(t){return t.replace(/\s/g,"").split(",").map(N)}const ze=oe({boilerplate:Boolean,color:String,loading:Boolean,loadingText:{type:String,default:"$vuetify.loading"},type:{type:[String,Array],default:"ossein"},...Le(),...Ve(),...ue()},"VSkeletonLoader"),Ne=se()({name:"VSkeletonLoader",inheritAttrs:!1,props:ze(),setup(t,n){let{attrs:a,slots:V}=n;const{backgroundColorClasses:C,backgroundColorStyles:$}=$e(()=>t.color),{dimensionStyles:s}=Me(t),{elevationClasses:D}=_e(t),{themeClasses:J}=ne(t),{t:v}=ie(),r=X(()=>N(re(t.type).join(",")));return Be(()=>{var k;const h=!V.default||t.loading,M=t.boilerplate||!h?{}:{ariaLive:"polite",ariaLabel:v(t.loadingText),role:"alert"};return h?u("div",de({class:["v-skeleton-loader",{"v-skeleton-loader--boilerplate":t.boilerplate},J.value,C.value,D.value],style:[$.value,s.value]},M,a),[r.value]):u(F,null,[(k=V.default)==null?void 0:k.call(V)])}),{}}}),De={key:2,class:"d-flex align-center"},Je={class:"text-caption mr-2"},Pe={key:1,class:"emails position-absolute top-0 bottom-0 w-100 overflow-y-auto"},Fe=["onClick"],Ue={class:"mt-1 text-grey"},je=["title"],qe={key:1},Ke={class:"text-right"},Re={class:"mt-1"},Oe={class:"text-grey"},Xe={__name:"EmailList",props:{mailbox:{type:String,default:"INBOX"}},setup(t){const n=t,{$gettext:a,$ngettext:V}=me(),{displayNotification:C,reloadMailboxCounters:$}=ge(),s=Te(),D=be(),J=pe(),v=S(!1),r=S({}),h=S(1),M=S(""),k=S(!1),c=S(!1);let U=null;const w=X(()=>J.query.mailbox||"INBOX"),G=i=>{D.push({name:"EmailView",query:{mailbox:n.mailbox,mailid:i}})},f=()=>{r.value={},v.value=!0,y.getMailboxEmails(n.mailbox,{page:h.value,search:M.value}).then(i=>{r.value=i.data,v.value=!1}).catch(()=>{v.value=!1})},P=()=>{f()},H=()=>{f()},Z=i=>{i?s.selection=r.value.results.map(e=>e.imapid):s.selection=[]},Q=()=>{s.selection.length&&(c.value=!0,y.deleteSelection(w.value,s.selection).then(()=>{c.value=!1,C({msg:a("Message(s) deleted")}),f(),$()}))},Y=()=>{s.selection.length&&(c.value=!0,y.markSelectionAsJunk(w.value,s.selection).then(()=>{c.value=!1,C({msg:a("Message(s) marked as junk")}),P()}))},ee=()=>{s.selection.length&&(c.value=!0,y.markSelectionAsNotJunk(w.value,s.selection).then(()=>{c.value=!1,C({msg:a("Message(s) marked as not junk")}),P()}))},T=i=>{s.selection.length&&(c.value=!0,y.flagSelection(w.value,s.selection,i).then(()=>{c.value=!1,s.selection=[],C({msg:a("Message(s) flagged")}),f(),$()}))},te=()=>{v.value=!0,y.emptyUserMailbox(w.value).then(()=>{r.value={},v.value=!1,$()})},ae=async i=>{const e=i.flagged?"unflagged":"flagged";await y.flagSelection(w.value,[i.imapid],e),i.flagged=e==="flagged"},le=i=>{s.selection.includes(i.imapid)||(s.selection=[i.imapid]);const e=document.createElement("div"),B=s.selection.length||0,l=V("%{count} message","%{count} messages",B,{count:B});e.innerHTML=`
2
- <div class="pa-4 rounded-lg" style="background: #a9a9a9; opacity: 0.8; width: 300px">
3
- <div style="font-weight: 600">${l}</div>
4
- </div>
5
- `,document.body.appendChild(e),event.dataTransfer.setDragImage(e,-10,-10),setTimeout(()=>e.remove(),0)};return ve(()=>{U=setInterval(P,300*1e3)}),fe(()=>{clearInterval(U)}),E(()=>n.mailbox,()=>{f()},{immediate:!0}),E(()=>s.selection,()=>{s.selection.length?k.value=!0:k.value=!1}),E(()=>s.listingKey,()=>{f()}),E(h,()=>{f()}),(i,e)=>{var B;return d(),_(F,null,[o(K,{class:"mt-6 mb-2 mx-1"},{default:b(()=>[o(ye,{color:"white",flat:""},{default:b(()=>[o(j,{modelValue:k.value,"onUpdate:modelValue":[e[0]||(e[0]=l=>k.value=l),Z],class:"mr-4","hide-details":"",color:"primary"},null,8,["modelValue"]),o(xe,{modelValue:M.value,"onUpdate:modelValue":e[1]||(e[1]=l=>M.value=l),"prepend-inner-icon":"mdi-magnify",placeholder:m(a)("Search in messages"),variant:"outlined","single-line":"",flat:"","hide-details":"",density:"compact",class:"flex-grow-0 w-33 mr-4",clearable:"","onClick:clear":f,onKeyup:he(H,["enter"])},null,8,["modelValue","placeholder"]),o(x,{class:"ml-2",color:"error",variant:"tonal",icon:"mdi-trash-can",size:"small",loading:c.value,onClick:Q},null,8,["loading"]),i.$route.params.mailbox!=="Junk"?(d(),p(x,{key:0,class:"ml-2",color:"warning",variant:"tonal",icon:"mdi-fire",size:"small",loading:c.value,onClick:Y},null,8,["loading"])):(d(),p(x,{key:1,class:"ml-2",color:"success",variant:"tonal",icon:"mdi-thumb-up",size:"small",loading:c.value,onClick:ee},null,8,["loading"])),o(x,{class:"ml-2",variant:"tonal",icon:"",size:"small"},{default:b(()=>[o(z,{icon:"mdi-cog"}),o(Ce,{activator:"parent"},{default:b(()=>[o(we,{density:"compact"},{default:b(()=>[o(I,{title:m(a)("Mark as read"),"prepend-icon":"mdi-eye",onClick:e[2]||(e[2]=()=>T("read"))},null,8,["title"]),o(I,{title:m(a)("Mark as unread"),"prepend-icon":"mdi-eye-outline",onClick:e[3]||(e[3]=()=>T("unread"))},null,8,["title"]),o(I,{title:m(a)("Mark as followed"),"prepend-icon":"mdi-star",onClick:e[4]||(e[4]=()=>T("flagged"))},null,8,["title"]),o(I,{title:m(a)("Mark as unfollowed"),"prepend-icon":"mdi-star-outline",onClick:e[5]||(e[5]=()=>T("unflagged"))},null,8,["title"]),i.$route.params.mailbox!=="Trash"?(d(),p(I,{key:0,title:m(a)("Empty mailbox"),"prepend-icon":"mdi-trash-can",onClick:te},null,8,["title"])):L("",!0)]),_:1})]),_:1})]),_:1}),o(q),r.value.results?(d(),_("div",De,[u("div",Je,g(r.value.first_index)+"-"+g(r.value.last_index)+" "+g(m(a)("on"))+" "+g(r.value.count),1),u("div",null,[o(x,{icon:"mdi-chevron-left",size:"x-small",disabled:r.value.prev_page===null,onClick:e[6]||(e[6]=l=>h.value=r.value.prev_page)},null,8,["disabled"]),o(x,{icon:"mdi-chevron-right",size:"x-small",disabled:r.value.next_page===null,onClick:e[7]||(e[7]=l=>h.value=r.value.next_page)},null,8,["disabled"])])])):L("",!0)]),_:1})]),_:1}),v.value?(d(),p(Ne,{key:0,type:"card@2"})):(d(),_("div",Pe,[(B=r.value.results)!=null&&B.length?(d(!0),_(F,{key:0},ke(r.value.results,l=>(d(),p(K,{key:l.imapid,density:"compact",class:"mb-2 mx-1",draggable:"true",onDragstart:A=>le(l)},{default:b(()=>[o(Se,{class:W(["d-flex align-center",{"font-weight-bold":l.style==="unseen"}])},{default:b(()=>[o(j,{modelValue:m(s).selection,"onUpdate:modelValue":e[8]||(e[8]=A=>m(s).selection=A),value:l.imapid,color:"primary","hide-details":""},null,8,["modelValue","value"]),o(x,{icon:l.flagged?"mdi-star":"mdi-star-outline",variant:"flat",onClick:A=>ae(l)},null,8,["icon","onClick"]),u("div",{class:"ml-4 clickable",onClick:A=>G(l.imapid)},[u("div",null,g(l.subject),1),u("div",Ue,[l.from_address.name?(d(),_("span",{key:0,title:l.from_address.address},g(l.from_address.name),9,je)):(d(),_("span",qe,g(l.from_address.address),1))])],8,Fe),o(q),u("div",Ke,[u("div",null,g(l.date),1),u("div",Re,[l.answered?(d(),p(z,{key:0,icon:"mdi-reply-outline"})):L("",!0),l.forwarded?(d(),p(z,{key:1,icon:"mdi-share-outline"})):L("",!0),l.attachments?(d(),p(z,{key:2,icon:"mdi-paperclip"})):L("",!0),u("span",Oe,g(i.$filesize(l.size)),1)])])]),_:2},1032,["class"])]),_:2},1032,["onDragstart"]))),128)):(d(),p(Ie,{key:1,class:"mt-4",type:"info",text:m(a)("No message yet in this mailbox"),variant:"tonal"},null,8,["text"]))]))],64)}}},We=ce(Xe,[["__scopeId","data-v-7fa30d1a"]]),Ge={class:"position-relative h-100"},He={class:"text-h5 ml-4"},vt={__name:"MailboxView",setup(t){return(n,a)=>(d(),_("div",Ge,[u("div",He,g(n.$gettext("Webmail")),1),o(We,{mailbox:n.$route.query.mailbox||"INBOX"},null,8,["mailbox"])]))}};export{vt as default};
@@ -1 +0,0 @@
1
- import{b as r,c as n,a as i}from"./VMenu-B6SCtOwT.js";import{c as u}from"./VAvatar-JdJfoK0C.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-B1bntsLR.js";const C={__name:"MenuItems",props:{items:{type:Object,default:()=>{}},obj:{type:Object,default:()=>{}}},setup(o){return(_,b)=>(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:V=>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 +0,0 @@
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-B1bntsLR.js";import{l as S}from"./logs-CyU_PIDh.js";import{d as N}from"./index-Bp9Fb67E.js";import{V,a as B}from"./VToolbar-CyrYSqJZ.js";import{V as C}from"./VTextField-QXQFhKxm.js";import{V as I}from"./VDataTableServer-B_6fWBA3.js";import{a as P}from"./VCard-BoH6kjPa.js";import"./tag-BmV84V2s.js";import"./VAvatar-JdJfoK0C.js";import"./VProgressCircular-DTDGzl2O.js";import"./VInput-CbqehdOu.js";import"./VMenu-B6SCtOwT.js";import"./ssrBoot-05WtbG6H.js";import"./VDataTable-BkLLfcQK.js";import"./VSelect-D5IXDPEX.js";import"./VCheckboxBtn-Ccl786Rg.js";import"./VSelectionControl-uKY9Zull.js";import"./VTable-gDsAUSLX.js";import"./filter-DHKXX97M.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))}},oe=$(z,[["__scopeId","data-v-9c91b6c8"]]);export{oe as default};
@@ -1 +0,0 @@
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 e,f as g,v as w,k as v,t as _,_ as I,l as L}from"./index-B1bntsLR.js";import{_ as P}from"./MenuItems-dl38msRA.js";import{V as q}from"./VDataTable-BkLLfcQK.js";import{V as $,a as E}from"./VMenu-B6SCtOwT.js";import{V as p}from"./VAvatar-JdJfoK0C.js";import{V as T,a as F}from"./VToolbar-CyrYSqJZ.js";import{V as G}from"./VTextField-QXQFhKxm.js";import{V as B}from"./VSpacer-BUxSSJbH.js";import{a as O}from"./VCard-BoH6kjPa.js";import"./tag-BmV84V2s.js";import"./VProgressCircular-DTDGzl2O.js";import"./VSelect-D5IXDPEX.js";import"./VInput-CbqehdOu.js";import"./VCheckboxBtn-Ccl786Rg.js";import"./VSelectionControl-uKY9Zull.js";import"./VTable-gDsAUSLX.js";import"./filter-DHKXX97M.js";import"./ssrBoot-05WtbG6H.js";/* empty css */const f="migrations",k={getMigrations(l){return c.get(`/${f}/`,{params:l})},getMigration(l,i){return c.get(`/${f}/${l}/`,i)},deleteMigration(l){return c.delete(`/${f}/${l}/`)}},H={__name:"MigrationsList",setup(l){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(r){k.deleteMigration(r.id).then(()=>{V.displayNotification({msg:i("Migration deleted")}),n.value=n.value.filter(a=>a.id!==r.id)})}function b(r){u.value=!0;let a={};k.getMigrations(a).then(d=>{n.value=d.data,M.value=n.value.length}).finally(()=>u.value=!1)}function D(){const r=[];return r.push({label:i("Delete"),icon:"mdi-delete-outline",onClick:A(),color:"red"}),r}return b(),(r,a)=>{const d=j("router-link");return C(),z(O,{class:"mt-6"},{default:o(()=>[e(q,{modelValue:x.value,"onUpdate:modelValue":a[2]||(a[2]=t=>x.value=t),options:h.value,"onUpdate:options":a[3]||(a[3]=t=>h.value=t),headers:S,items:n.value,search:m.value,"server-items-length":M.value,loading:u.value,"show-select":""},{top:o(()=>[e(T,{color:"white",flat:""},{default:o(()=>[e(G,{modelValue:m.value,"onUpdate:modelValue":a[0]||(a[0]=t=>m.value=t),"prepend-inner-icon":"mdi-magnify",placeholder:"Search",filled:"",variant:"outlined",density:"compact","hide-details":"",class:"flex-grow-0 w-33 mr-4"},null,8,["modelValue"]),e($,{location:"bottom"},{activator:o(({props:t})=>[e(p,w(t,{variant:"flat","append-icon":"mdi-chevron-down",size:"small"}),{default:o(()=>[v(_(g(i)("Actions")),1)]),_:1},16)]),default:o(()=>[e(E,{density:"compact"})]),_:1}),e(p,{variant:"text",icon:"mdi-reload",onClick:a[1]||(a[1]=t=>b())}),e(B)]),_:1})]),"item.mailbox":o(({item:t})=>[e(d,{to:{name:"AccountDetail",params:{id:t.mailbox.user}}},{default:o(()=>[v(_(t.mailbox.full_address),1)]),_:2},1032,["to"])]),"item.actions":o(({item:t})=>[e($,{"offset-y":""},{activator:o(({props:N})=>[e(p,w({icon:"mdi-dots-horizontal"},N),null,16)]),default:o(()=>[e(g(P),{items:D(),object:t},null,8,["items","object"])]),_:2},1024)]),_:2},1032,["modelValue","options","items","search","server-items-length","loading"])]),_:1})}}},J={__name:"MigrationsView",setup(l){const{$gettext:i}=y();return(V,n)=>(C(),L("div",null,[e(T,{flat:""},{default:o(()=>[e(F,null,{default:o(()=>[v(_(g(i)("Migrations")),1)]),_:1}),e(B)]),_:1}),e(H)]))}},ce=I(J,[["__scopeId","data-v-5f22702f"]]);export{ce as default};
@@ -1 +0,0 @@
1
- import{_ as v,b as _,h as e,i as d,z as V,B as h,l as x,a as r,w as u,f as c,o as b,k as g,t as w}from"./index-B1bntsLR.js";import{P}from"./ParametersForm-y02-GM0r.js";import{p as o}from"./parameters-BxAXBXU1.js";import{V as A,a as T}from"./VToolbar-CyrYSqJZ.js";import"./HtmlEditor-D753fIAJ.js";import"./VAvatar-JdJfoK0C.js";import"./tag-BmV84V2s.js";import"./VProgressCircular-DTDGzl2O.js";import"./VMenu-B6SCtOwT.js";import"./ssrBoot-05WtbG6H.js";import"./VTabs-5XSICLQP.js";import"./VWindowItem-kZpArwK1.js";import"./VSelect-D5IXDPEX.js";import"./VTextField-QXQFhKxm.js";import"./VInput-CbqehdOu.js";import"./VCheckboxBtn-Ccl786Rg.js";import"./VSelectionControl-uKY9Zull.js";import"./VContainer-DKMcKasC.js";/* empty css */import"./VCard-BoH6kjPa.js";import"./VSwitch-Dh_dserW.js";import"./VTextarea-Bdy4UKmV.js";import"./VColorPicker-452uc3tY.js";import"./colors-DoZdCu1D.js";import"./VPicker-BUx70Wjg.js";import"./VSheet-HeHw6g5_.js";const k={__name:"ParametersView",setup(B){const{$gettext:n}=_(),p=h(),s=e(""),i=e([]),m=e({}),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,[r(A,{flat:""},{default:u(()=>[r(T,null,{default:u(()=>[g(w(f.value),1)]),_:1})]),_:1}),r(c(P),{app:t.$route.params.app,structure:i.value,values:m.value,"save-function":c(o).saveUserApplication},null,8,["app","structure","values","save-function"])]))}},tt=v(k,[["__scopeId","data-v-3e7380ff"]]);export{tt as default};
@@ -1 +0,0 @@
1
- import{_ as g,b as S,h as o,i as h,z as V,B as P,l as k,a as l,c as w,w as u,f as n,o as c,k as x,t as G}from"./index-B1bntsLR.js";import{p as r}from"./parameters-BxAXBXU1.js";import{P as A}from"./ParametersForm-y02-GM0r.js";import{V as B,a as T}from"./VToolbar-CyrYSqJZ.js";import{u as N}from"./global.store-DYMmGKpn.js";import{u as $}from"./parameters.store-CATOSoQZ.js";import"./HtmlEditor-D753fIAJ.js";import"./VAvatar-JdJfoK0C.js";import"./tag-BmV84V2s.js";import"./VProgressCircular-DTDGzl2O.js";import"./VMenu-B6SCtOwT.js";import"./ssrBoot-05WtbG6H.js";import"./VTabs-5XSICLQP.js";import"./VWindowItem-kZpArwK1.js";import"./VSelect-D5IXDPEX.js";import"./VTextField-QXQFhKxm.js";import"./VInput-CbqehdOu.js";import"./VCheckboxBtn-Ccl786Rg.js";import"./VSelectionControl-uKY9Zull.js";import"./VContainer-DKMcKasC.js";/* empty css */import"./VCard-BoH6kjPa.js";import"./VSwitch-Dh_dserW.js";import"./VTextarea-Bdy4UKmV.js";import"./VColorPicker-452uc3tY.js";import"./colors-DoZdCu1D.js";import"./VPicker-BUx70Wjg.js";import"./VSheet-HeHw6g5_.js";const y={__name:"ParametersView",setup(E){const{$gettext:f}=S(),d=N(),e=P(),_=$(),p=o([]),s=o({}),i=o(""),v=h(()=>f("Settings: "+i.value));function m(t){r.getGlobalApplicationStructure(t).then(a=>{p.value=a.data}),r.getGlobalApplication(t).then(a=>{s.value=a.data.params,i.value=a.data.label})}function b(t){d.fetchNotifications(),e.params.app==="imap_migration"&&(_.imapMigrationEnabled=t.enabled_imapmigration)}return V(e,t=>{m(t.params.app)}),m(e.params.app),(t,a)=>(c(),k("div",null,[l(B,{flat:""},{default:u(()=>[l(T,null,{default:u(()=>[x(G(v.value),1)]),_:1})]),_:1}),(c(),w(n(A),{key:t.$route.params.app,app:t.$route.params.app,structure:p.value,values:s.value,"save-function":n(r).saveGlobalApplication,onSuccess:b},null,8,["app","structure","values","save-function"]))]))}},mt=g(y,[["__scopeId","data-v-53ef9637"]]);export{mt as default};
@@ -1 +0,0 @@
1
- import{u as R,a as T,_ as U,p as N}from"./ProviderGeneralForm-eoHMDO5v.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-B1bntsLR.js";import{d as F,V as $}from"./VAvatar-JdJfoK0C.js";import{V as b,c as E,a as B,b as D}from"./VExpansionPanels-BeMgiS7A.js";import{V as g,a as m}from"./VRow-CuVZGqBj.js";import"./domains-CSxtTvUh.js";import"./VTextField-QXQFhKxm.js";import"./tag-BmV84V2s.js";import"./VInput-CbqehdOu.js";import"./VProgressCircular-DTDGzl2O.js";import"./VMenu-B6SCtOwT.js";import"./ssrBoot-05WtbG6H.js";import"./VAutocomplete-Huaz_-hf.js";import"./VSelect-D5IXDPEX.js";import"./VCheckboxBtn-Ccl786Rg.js";import"./VSelectionControl-uKY9Zull.js";import"./filter-DHKXX97M.js";import"./VForm-DkphQD3e.js";import"./VSpacer-BUxSSJbH.js";/* empty css */import"./VSwitch-Dh_dserW.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){const{valid:t}=await p.value.vFormRef.validate();if(!t)return}if(f.value){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($,{variant:"outlined",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",variant:"outlined",onClick:C},{default:e(()=>[u(n(d(r)("Save")),1)]),_:1})])],64))}},J={class:"text-h4"},ve={__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{ve as default};
@@ -1 +0,0 @@
1
- import{C as y,E as j,n as z,h as m,G as E,b as M,z as O,g as Y,l as S,o as p,a as r,w as d,f as h,F as x,s as H,c as b,k as P,t as D,i as J,e as R}from"./index-B1bntsLR.js";import{d as Q}from"./domains-CSxtTvUh.js";import{V as F}from"./VTextField-QXQFhKxm.js";import{V as W}from"./VAutocomplete-Huaz_-hf.js";import{V as L,r as A}from"./VForm-DkphQD3e.js";import{V as U,c as C}from"./VAvatar-JdJfoK0C.js";import{V as X}from"./VSpacer-BUxSSJbH.js";import{V as Z}from"./VSelect-D5IXDPEX.js";import{V as ee}from"./VInput-CbqehdOu.js";import{V as ae}from"./VSwitch-Dh_dserW.js";const g="email-providers",w={getProviders(t){return y.get(`/${g}/`,{params:t})},getProvider(t){return y.get(`/${g}/${t}/`)},createProvider(t){return y.post(`/${g}/`,t)},updateProvider(t,l){return y.put(`/${g}/${t}/`,l)},patchProvider(t,l){return y.patch(`/${g}/${t}/`,l)},deleteProvider(t){return y.delete(`/${g}/${t}/`)},checkProvider(t){return y.post(`/${g}/check_connection/`,t)},checkAssociatedDomain(t){return y.post(`/${g}/check_associated_domain/`,t)}},fe=j("providers",()=>{const t=z(),l=m(!1),i=m({}),{$gettext:o}=E;async function c(){l.value=!1,i.value={}}async function v(){return i.value={},l.value=!1,w.getProviders().then(a=>{for(const e of a.data)i.value[e.id]=e;return a}).finally(()=>l.value=!0)}async function k(a){return l.value=!1,w.createProvider(a).then(e=>(i.value[e.data.id]=e.data,e)).finally(()=>l.value=!0)}async function $(a){return l.value=!1,w.deleteProvider(a).then(e=>(delete i.value[a],t.displayNotification({msg:o("Provider deleted")}),e)).finally(()=>l.value=!0)}return{providersLoaded:l,providers:i,getProviders:v,createProvider:k,deleteProvider:$,$reset:c}}),Ve={__name:"ProviderAssociatedForm",props:{modelValue:{type:Array,default:null}},emits:["update:modelValue"],async setup(t,{expose:l,emit:i}){let o,c;const{$gettext:v}=M(),k=t,$=i,a=m([]),e=m(),n=m(),f=m({name:"",new_domain:""}),_=m([]);O(()=>k.modelValue,u=>{u&&(a.value=[...u])},{immediate:!0});async function N(){await e.value.validate()&&w.checkAssociatedDomain(f.value).then(s=>{s.status===200&&(a.value.push({name:f.value.name,new_domain:f.value.new_domain}),$("update:modelValue",a.value),f.value={name:"",new_domain:""})})}function T(u){a.value.splice(u,1),$("update:modelValue",a.value)}function B(u){const s=u.keyCode;(s===13||s===9)&&(N(),u.preventDefault())}function q(u){return console.log(_.value),_.value.find(s=>s.pk===u).name}function G(){return a.value.length===0?v("You need to bind at least one domain to the provider."):!0}l({vFormRef:n});const K=([o,c]=Y(()=>Q.getDomains({page_size:0})),o=await o,c(),o);return _.value=K.data.results,(u,s)=>(p(),S(x,null,[r(L,{ref_key:"formRef",ref:e},{default:d(()=>[r(F,{ref:"initialdomainField",modelValue:f.value.name,"onUpdate:modelValue":s[0]||(s[0]=V=>f.value.name=V),placeholder:h(v)("Name of the domain to migrate"),variant:"outlined",density:"compact",onKeydown:B},null,8,["modelValue","placeholder"]),r(W,{modelValue:f.value.new_domain,"onUpdate:modelValue":s[1]||(s[1]=V=>f.value.new_domain=V),label:h(v)("Local domain (optional)"),items:_.value,"item-title":"name","return-object":"",variant:"outlined",density:"compact",clearable:"",onKeydown:B},null,8,["modelValue","label","items"])]),_:1},512),r(U,{icon:"mdi-plus",color:"primary",onClick:N}),r(X),(p(!0),S(x,null,H(a.value,(V,I)=>(p(),b(Z,{key:I,class:"mr-2 mt-2",closable:"","onClick:close":le=>T(I)},{default:d(()=>[V.new_domain?(p(),S(x,{key:0},[P(D(V.name)+" --> "+D(q(V.new_domain)),1)],64)):(p(),S(x,{key:1},[P(D(V.name),1)],64))]),_:2},1032,["onClick:close"]))),128)),r(L,{ref_key:"vFormRef",ref:n},{default:d(()=>[r(ee,{rules:[G]},null,8,["rules"])]),_:1},512)],64))}},te={class:"my-7"},oe={class:"custom-loader"},ye={__name:"ProviderGeneralForm",props:{modelValue:{type:Object,default:null}},setup(t,{expose:l}){const i=t,o=J(()=>i.modelValue),c=m(0),v=m(!1),k=m();async function $(){if(!await k.value.validate())return;v.value=!0;const e={address:o.value.address,port:o.value.port,secured:o.value.secured};w.checkProvider(e).then(()=>{c.value=1}).catch(n=>{console.log(n),c.value=2}).finally(()=>v.value=!1)}return l({vFormRef:k}),(a,e)=>(p(),b(L,{ref_key:"vFormRef",ref:k},{default:d(()=>[r(F,{modelValue:o.value.name,"onUpdate:modelValue":e[0]||(e[0]=n=>o.value.name=n),label:a.$gettext("Provider name"),variant:"outlined",density:"compact",rules:[h(A).required]},null,8,["modelValue","label","rules"]),r(F,{modelValue:o.value.address,"onUpdate:modelValue":e[1]||(e[1]=n=>o.value.address=n),label:a.$gettext("Address (hostname or IP)"),rules:[h(A).required],variant:"outlined",density:"compact"},null,8,["modelValue","label","rules"]),r(F,{modelValue:o.value.port,"onUpdate:modelValue":e[2]||(e[2]=n=>o.value.port=n),label:a.$gettext("IMAP Port"),type:"number",variant:"outlined",density:"compact",rules:[h(A).required,h(A).portNumber]},null,8,["modelValue","label","rules"]),r(ae,{modelValue:o.value.secured,"onUpdate:modelValue":e[3]||(e[3]=n=>o.value.secured=n),label:a.$gettext("Secured"),color:"primary",hint:a.$gettext("Is the IMAP connection secured using SSL/TLS or StartTLS"),"persistent-hint":""},null,8,["modelValue","label","hint"]),R("div",te,[r(U,{loading:v.value,color:"primary",onClick:$},{loader:d(()=>[R("span",oe,[r(C,{light:""},{default:d(()=>[...e[7]||(e[7]=[P("mdi-cached",-1)])]),_:1})])]),default:d(()=>[P(D(a.$gettext("Check connection:"))+" ",1),c.value===0?(p(),b(C,{key:0,color:"blue-grey-darken-2"},{default:d(()=>[...e[4]||(e[4]=[P(" mdi-help-circle-outline ",-1)])]),_:1})):c.value===1?(p(),b(C,{key:1,color:"success"},{default:d(()=>[...e[5]||(e[5]=[P(" mdi-check-all ",-1)])]),_:1})):(p(),b(C,{key:2,color:"warning"},{default:d(()=>[...e[6]||(e[6]=[P(" mdi-alert-circle-outline ",-1)])]),_:1}))]),_:1},8,["loading"])])]),_:1},512))}};export{Ve as _,ye as a,w as p,fe as u};
@@ -1 +0,0 @@
1
- import{b as U,n as R,i as N,h as x,c as k,o as u,w as e,a as o,f as g,v as L,e as M,l as A,s as q,F as B,k as p,t as V,x as O,q as W,_ as H}from"./index-B1bntsLR.js";import{_ as J}from"./CreationForm-CjtILq0_.js";import{u as z,_ as K,a as Q}from"./ProviderGeneralForm-eoHMDO5v.js";import{_ as X}from"./MenuItems-dl38msRA.js";import{V as j,a as Y}from"./VMenu-B6SCtOwT.js";import{V as h,c as E}from"./VAvatar-JdJfoK0C.js";import{V as T}from"./VSelect-D5IXDPEX.js";import{V as G,a as Z}from"./VToolbar-CyrYSqJZ.js";import{V as ee}from"./VTextField-QXQFhKxm.js";import{V as te}from"./VSpacer-BUxSSJbH.js";import{V as oe}from"./VDataTable-BkLLfcQK.js";import{a as ae}from"./VCard-BoH6kjPa.js";import{V as se}from"./VDialog-DIUeAIpw.js";import"./ConfirmDialog-Du7aqKbR.js";import"./VRow-CuVZGqBj.js";/* empty css */import"./tag-BmV84V2s.js";import"./logos-95XYS6uH.js";import"./VWindowItem-kZpArwK1.js";import"./ssrBoot-05WtbG6H.js";import"./VContainer-DKMcKasC.js";import"./VSheet-HeHw6g5_.js";import"./VProgressCircular-DTDGzl2O.js";import"./domains-CSxtTvUh.js";import"./VAutocomplete-Huaz_-hf.js";import"./filter-DHKXX97M.js";import"./VInput-CbqehdOu.js";import"./VCheckboxBtn-Ccl786Rg.js";import"./VSelectionControl-uKY9Zull.js";import"./VForm-DkphQD3e.js";import"./VSwitch-Dh_dserW.js";import"./VTable-gDsAUSLX.js";const re={__name:"ProviderCreationForm",emits:["close"],setup(D,{emit:i}){const m=i,{$gettext:a}=U(),c=R(),f=z(),F=N(()=>{const n=[];let d=!0;for(const _ of s.value.domains){const I=_.new_domain?`${_.name} => ${_.new_domain.name}`:`${_.name} ${a("(the domain will be created locally)")}`;n.push({key:d?a("Associated domain"):"",value:I}),d=!1}return n}),b=N(()=>[{title:a("General"),items:[{key:a("Name"),value:s.value.name},{key:a("Address"),value:s.value.address},{key:a("Port"),value:s.value.port},{key:a("Secured"),value:s.value.secured,type:"yesno"}]},{title:a("Associated domains"),items:F.value}]),w=[{name:"general",title:a("General")},{name:"associated",title:a("Associated domains")}],s=x({domains:[]}),$=x(),S=x(),C={general:$,associated:S};P();function P(){s.value={name:"",address:"",port:993,secured:!0,domains:[]}}function l(){P(),m("close")}function r(n){return C.value[n.name]}function t(n){return console.log(s.value),C[n.name].value.vFormRef}function v(){}function y(){const n={...s.value};n.domains=[];for(const d of s.value.domains)d.new_domain?n.domains.push({name:d.name,new_domain:d.new_domain.pk}):n.domains.push(d);f.createProvider(n).then(()=>{c.displayNotification({msg:a("Provider created")}),l()})}return(n,d)=>(u(),k(g(J),{ref:"form",title:g(a)("New provider"),steps:w,"form-getter":r,"get-v-form-ref":t,"validate-object":v,"summary-sections":b.value,onClose:l,onCreate:y},{"form.general":e(()=>[o(Q,{ref_key:"general",ref:$,modelValue:s.value,"onUpdate:modelValue":d[0]||(d[0]=_=>s.value=_),class:"ml-4"},null,8,["modelValue"])]),"form.associated":e(()=>[o(K,{ref_key:"associated",ref:S,modelValue:s.value.domains,"onUpdate:modelValue":d[1]||(d[1]=_=>s.value.domains=_)},null,8,["modelValue"])]),_:2},1032,["title","summary-sections"]))}},ie=["colspan"],ne={__name:"ProvidersList",setup(D){const{$gettext:i}=U(),m=z(),a=W(),c=N(()=>m.providers),f=N(()=>m.providersLoaded),F=[{title:i("Name"),key:"name"},{title:i("Address"),key:"address"},{title:i("Port"),key:"port"},{title:i("Secured"),key:"secured"},{title:i("Associated domains"),key:"domains"},{title:i("Actions"),key:"actions",sortable:!1,align:"right"}],b=x([]),w=x(""),s=x([]);function $(l){m.deleteProvider(l.id)}function S(l){a.push({name:"ProviderEdit",params:{id:l.id}})}function C(){const l=[];return l.push({label:i("Delete"),icon:"mdi-delete-outline",onClick:$,color:"red"}),l.push({label:i("Edit"),icon:"mdi-circle-edit-outline",onClick:S}),l}function P(){m.getProviders()}return f.value||P(),(l,r)=>(u(),k(ae,{class:"mt-6"},{default:e(()=>[o(oe,{modelValue:b.value,"onUpdate:modelValue":r[1]||(r[1]=t=>b.value=t),expanded:s.value,"onUpdate:expanded":r[2]||(r[2]=t=>s.value=t),headers:F,items:Object.values(c.value),search:w.value,loading:!f.value,"item-value":"name","single-expand":"","show-select":"","onClick:row":r[3]||(r[3]=(t,v)=>v.expand(!v.isExpanded))},{top:e(()=>[o(G,{color:"white",flat:""},{default:e(()=>[o(ee,{modelValue:w.value,"onUpdate:modelValue":r[0]||(r[0]=t=>w.value=t),"prepend-inner-icon":"mdi-magnify",placeholder:g(i)("Search"),"single-line":"",variant:"outlined","hide-details":"",density:"compact",class:"flex-grow-0 w-33 mr-4"},null,8,["modelValue","placeholder"]),O(l.$slots,"extraActions"),o(j,{location:"bottom"},{activator:e(({props:t})=>[o(h,L(t,{variant:"flat","append-icon":"mdi-chevron-down",size:"small"}),{default:e(()=>[p(V(g(i)("Actions")),1)]),_:1},16)]),default:e(()=>[o(Y,{density:"compact"})]),_:1}),o(h,{variant:"text",icon:"mdi-reload",onClick:P}),o(te)]),_:3})]),"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)])]),_:1})):(u(),k(E,{key:1,color:"red"},{default:e(()=>[...r[5]||(r[5]=[p(" mdi-lock-off ",-1)])]),_:1}))]),"item.domains":e(({item:t})=>[t.domains.length>0?(u(),k(T,{key:0},{default:e(()=>[p(V(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)])]),_:1}))]),"expanded-item":e(({headers:t,item:v})=>[M("td",{colspan:t.length},[(u(!0),A(B,null,q(v.domains,(y,n)=>(u(),k(T,{key:n},{default:e(()=>[y.new_domain?(u(),A(B,{key:0},[p(V(y.name)+" --> "+V(y.new_domain.name),1)],64)):(u(),A(B,{key:1},[p(V(y.name)+" --> "+V(y.name),1)],64))]),_:2},1024))),128))],8,ie)]),"item.actions":e(({item:t})=>[o(j,{"offset-y":""},{activator:e(({props:v})=>[o(h,L({icon:"mdi-dots-horizontal",variant:"text"},v),null,16)]),default:e(()=>[o(g(X),{items:C(),obj:t},null,8,["items","obj"])]),_:2},1024)]),_:2},1032,["modelValue","expanded","items","search","loading"])]),_:3}))}},le={__name:"ProvidersView",setup(D){const{$gettext:i}=U(),m=x(!1);return(a,c)=>(u(),A("div",null,[o(G,{flat:""},{default:e(()=>[o(Z,null,{default:e(()=>[p(V(g(i)("Providers")),1)]),_:1})]),_:1}),o(g(ne),null,{extraActions:e(()=>[o(h,{color:"primary",variant:"outlined","prepend-icon":"mdi-plus",onClick:c[0]||(c[0]=f=>m.value=!0)},{default:e(()=>[p(V(a.$pgettext("male","New")),1)]),_:1})]),_:1}),o(se,{modelValue:m.value,"onUpdate:modelValue":c[2]||(c[2]=f=>m.value=f),fullscreen:"",scrollable:"",transition:"dialog-bottom-transition"},{default:e(()=>[o(g(re),{onClose:c[1]||(c[1]=f=>m.value=!1)})]),_:1},8,["modelValue"])]))}},Ie=H(le,[["__scopeId","data-v-38468b5b"]]);export{Ie as default};
@@ -1 +0,0 @@
1
- import{_ as r}from"./ConnectedLayout-BHWaBAzH.js";import{c as o,w as m,o as p,k as i}from"./index-B1bntsLR.js";import"./theme-myV4ekXo.js";import"./VContainer-DKMcKasC.js";/* empty css */import"./tag-BmV84V2s.js";import"./VApp-B0vRc3-6.js";import"./layout-CjSP_k58.js";import"./ssrBoot-05WtbG6H.js";import"./logos-95XYS6uH.js";import"./layout.store-CF5WRevH.js";import"./VAvatar-JdJfoK0C.js";import"./VProgressCircular-DTDGzl2O.js";import"./VMenu-B6SCtOwT.js";import"./global.store-DYMmGKpn.js";import"./VBadge-Cg5iu5LG.js";import"./VCard-BoH6kjPa.js";import"./VRow-CuVZGqBj.js";import"./VSheet-HeHw6g5_.js";const T={__name:"QuarantineLayout",setup(a){return(e,t)=>(p(),o(r,null,{navbar:m(()=>[...t[0]||(t[0]=[i(" ",-1)])]),_:1}))}};export{T as default};