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.
- modoboa/admin/api/v2/serializers.py +1 -0
- modoboa/admin/app_settings.py +12 -0
- modoboa/admin/{management/commands/subcommands/_mx.py → dns_checker.py} +41 -111
- modoboa/admin/jobs.py +86 -0
- modoboa/admin/management/commands/modo.py +0 -2
- modoboa/admin/tests/test_mailbox_operations.py +4 -4
- modoboa/admin/tests/test_mx.py +68 -56
- modoboa/amavis/jobs.py +11 -0
- modoboa/amavis/tests/test_jobs.py +18 -0
- modoboa/amavis/tests/test_viewsets.py +2 -3
- modoboa/autoconfig/templates/autoconfig/autoconfig.xml +2 -2
- modoboa/autoconfig/templates/autoconfig/autodiscover.xml +14 -0
- modoboa/autoconfig/tests.py +2 -1
- modoboa/autoconfig/views.py +11 -3
- modoboa/autoreply/models.py +4 -4
- modoboa/calendars/backends/caldav_.py +17 -13
- modoboa/calendars/jobs.py +7 -0
- modoboa/calendars/mocks.py +4 -1
- modoboa/calendars/serializers.py +14 -9
- modoboa/calendars/tests.py +10 -9
- modoboa/calendars/viewsets.py +3 -1
- modoboa/contacts/migrations/0008_addressbook_syncing.py +18 -0
- modoboa/contacts/models.py +1 -0
- modoboa/contacts/serializers.py +5 -2
- modoboa/contacts/tasks.py +9 -3
- modoboa/contacts/tests.py +32 -6
- modoboa/contacts/viewsets.py +7 -1
- modoboa/core/api/v2/serializers.py +0 -7
- modoboa/core/api/v2/tests.py +0 -10
- modoboa/core/app_settings.py +0 -22
- modoboa/core/commands/deploy.py +13 -0
- modoboa/core/commands/templates/cron_config.py.tpl +33 -0
- modoboa/core/commands/templates/settings.py.tpl +21 -0
- modoboa/core/jobs.py +34 -0
- modoboa/core/management/commands/load_initial_data.py +1 -1
- modoboa/core/password_hashers/base.py +4 -1
- modoboa/core/tests/test_core.py +0 -14
- modoboa/core/tests/test_jobs.py +40 -0
- modoboa/frontend_dist/assets/{AccountAliasForm-tLHotdIR.js → AccountAliasForm-DO6DwfjE.js} +1 -1
- modoboa/frontend_dist/assets/{AccountEditView-DnQIIg47.js → AccountEditView-CCuN9mGB.js} +1 -1
- modoboa/frontend_dist/assets/AccountLayout-Ge7fzuZg.js +1 -0
- modoboa/frontend_dist/assets/AccountPasswordSubForm-PkFPblkR.js +1 -0
- modoboa/frontend_dist/assets/AccountView-dgseekZ8.js +1 -0
- modoboa/frontend_dist/assets/AddressBook-DZWOHOJj.js +1 -0
- modoboa/frontend_dist/assets/AdminLayout-itB_mmH_.js +1 -0
- modoboa/frontend_dist/assets/AlarmsView-King6zb6.js +1 -0
- modoboa/frontend_dist/assets/{AliasEditView-n75NEN_s.js → AliasEditView-CTjrXYPf.js} +1 -1
- modoboa/frontend_dist/assets/AliasRecipientForm-CI7bXqVp.js +1 -0
- modoboa/frontend_dist/assets/{AliasView-DFIvPeIm.js → AliasView-BN13MNN_.js} +1 -1
- modoboa/frontend_dist/assets/AuditTrailView-C1jQwgoo.js +1 -0
- modoboa/frontend_dist/assets/CalendarView-juHVIHU5.css +1 -0
- modoboa/frontend_dist/assets/CalendarView-rRSzqxrH.js +1 -0
- modoboa/frontend_dist/assets/ChoiceField-DCr12shR.js +1 -0
- modoboa/frontend_dist/assets/ComposeEmailForm-BmtKwFb1.js +2 -0
- modoboa/frontend_dist/assets/ComposeEmailForm-CVNDl-Mq.css +1 -0
- modoboa/frontend_dist/assets/ComposeEmailView-JW22Phrb.js +1 -0
- modoboa/frontend_dist/assets/ConfirmDialog-CWpdwSQ6.js +1 -0
- modoboa/frontend_dist/assets/ConnectedLayout-BP8pO27H.js +1 -0
- modoboa/frontend_dist/assets/{ConnectedLayout-C6HNXWkp.css → ConnectedLayout-Ddpb_6yT.css} +1 -1
- modoboa/frontend_dist/assets/CreationForm-CzelJsVQ.js +1 -0
- modoboa/frontend_dist/assets/DashboardView-BBkBodVj.js +1 -0
- modoboa/frontend_dist/assets/{DomainAdminList-BjtfbhRj.js → DomainAdminList-DD7p3i6F.js} +1 -1
- modoboa/frontend_dist/assets/{DomainEditView-Cq5Ea4RW.js → DomainEditView-DoIoNYC4.js} +1 -1
- modoboa/frontend_dist/assets/{DomainTransportForm-DAXJGNLA.js → DomainTransportForm-CbiJF9z5.js} +1 -1
- modoboa/frontend_dist/assets/{DomainView-BfpK7U14.js → DomainView-BXvznFYz.js} +3 -3
- modoboa/frontend_dist/assets/DomainsView-ffYjiffp.js +1 -0
- modoboa/frontend_dist/assets/EmailField-KhhJYA4D.js +1 -0
- modoboa/frontend_dist/assets/EmailSchedulingForm-CQL5Vfdr.js +1 -0
- modoboa/frontend_dist/assets/EmailView-Bq2bHZBO.js +1 -0
- modoboa/frontend_dist/assets/EmptyLayout-NrTftp18.js +1 -0
- modoboa/frontend_dist/assets/FiltersView-SOQy0U_3.js +1 -0
- modoboa/frontend_dist/assets/ForwardEmailView-kEPDjWUw.js +1 -0
- modoboa/frontend_dist/assets/{HtmlEditor-D753fIAJ.js → HtmlEditor-CyBl5wj2.js} +15 -15
- modoboa/frontend_dist/assets/IdentitiesView-CZFf4oR9.js +1 -0
- modoboa/frontend_dist/assets/InformationView-CAtneAqM.js +1 -0
- modoboa/frontend_dist/assets/{LoadingData-Tm56XNwj.js → LoadingData-C2txD49L.js} +1 -1
- modoboa/frontend_dist/assets/{LoginCallbackView-DjCHUgz5.js → LoginCallbackView-DAvty3CI.js} +1 -1
- modoboa/frontend_dist/assets/{LoginView-D0r4XBEl.js → LoginView-DHYITkn4.js} +1 -1
- modoboa/frontend_dist/assets/MailboxView-BNg2v7mi.css +1 -0
- modoboa/frontend_dist/assets/MailboxView-DHg5A78D.js +5 -0
- modoboa/frontend_dist/assets/MenuItems-C9p70bSC.js +1 -0
- modoboa/frontend_dist/assets/{MessageView-BWh9BqzS.js → MessageView-CrrEJpNI.js} +1 -1
- modoboa/frontend_dist/assets/MessagesView-CyecRd4I.js +1 -0
- modoboa/frontend_dist/assets/MigrationsView-DXGKKz2h.js +1 -0
- modoboa/frontend_dist/assets/{ParametersForm-y02-GM0r.js → ParametersForm-DFKYkPAs.js} +1 -1
- modoboa/frontend_dist/assets/ParametersView-B1wT5oyt.js +1 -0
- modoboa/frontend_dist/assets/ParametersView-CfvVzKea.js +1 -0
- modoboa/frontend_dist/assets/ProviderEditView-De-8ggBp.js +1 -0
- modoboa/frontend_dist/assets/ProviderGeneralForm-DO-IpJMQ.js +1 -0
- modoboa/frontend_dist/assets/ProvidersView-Bhk7sCz4.js +1 -0
- modoboa/frontend_dist/assets/QuarantineLayout-C1YszNmP.js +1 -0
- modoboa/frontend_dist/assets/QuarantineView-cElD_rS-.js +1 -0
- modoboa/frontend_dist/assets/ReplyEmailView-BvuOZdLl.js +1 -0
- modoboa/frontend_dist/assets/ResourcesForm-FWxrmVwo.js +1 -0
- modoboa/frontend_dist/assets/SelfServiceLayout-JHRvfvQf.js +1 -0
- modoboa/frontend_dist/assets/SettingsView-SIsKAXtQ.css +1 -0
- modoboa/frontend_dist/assets/SettingsView-s2l2Xl1L.js +6 -0
- modoboa/frontend_dist/assets/StatisticsView-FiidWvad.js +1 -0
- modoboa/frontend_dist/assets/TimeSerieChart-CdqUHiO_.js +1 -0
- modoboa/frontend_dist/assets/TimeSerieChart-nLIFGI0y.css +1 -0
- modoboa/frontend_dist/assets/UserLayout-DyvI8duf.js +1 -0
- modoboa/frontend_dist/assets/{VAlert-CNys_LUS.js → VAlert-MDbeolOo.js} +1 -1
- modoboa/frontend_dist/assets/VApp-DM1KLQfQ.js +1 -0
- modoboa/frontend_dist/assets/VAutocomplete-C9NL5_uo.css +1 -0
- modoboa/frontend_dist/assets/VAutocomplete-CQsWYWNX.js +1 -0
- modoboa/frontend_dist/assets/VAvatar-CXV_FqpP.js +1 -0
- modoboa/frontend_dist/assets/VBadge-7tDx7aI3.js +1 -0
- modoboa/frontend_dist/assets/{VCard-BoH6kjPa.js → VCard-CBtX8JF-.js} +1 -1
- modoboa/frontend_dist/assets/VCheckbox-zY1MApOy.js +1 -0
- modoboa/frontend_dist/assets/{VCheckboxBtn-Ccl786Rg.js → VCheckboxBtn-B0mIT3E0.js} +1 -1
- modoboa/frontend_dist/assets/VColorPicker-BbCHvk6K.js +1 -0
- modoboa/frontend_dist/assets/{VColorPicker-B_lVDaYR.css → VColorPicker-C9m8L-6U.css} +1 -1
- modoboa/frontend_dist/assets/{VContainer-DKMcKasC.js → VContainer-Cn-vKB3s.js} +1 -1
- modoboa/frontend_dist/assets/VDataTable-CNT9KOSp.js +1 -0
- modoboa/frontend_dist/assets/VDataTableServer-_yn4Ry6U.js +1 -0
- modoboa/frontend_dist/assets/VDataTableVirtual-Csxh3Gp6.js +1 -0
- modoboa/frontend_dist/assets/VDatePicker-_OUDqShN.css +1 -0
- modoboa/frontend_dist/assets/VDatePicker-iFu13xIP.js +2 -0
- modoboa/frontend_dist/assets/VDialog-lKtBdqnp.js +1 -0
- modoboa/frontend_dist/assets/VExpansionPanels-CaIvk9iF.js +1 -0
- modoboa/frontend_dist/assets/VFileInput-C7J_qVmk.js +1 -0
- modoboa/frontend_dist/assets/VForm-fdQ5d-CH.js +1 -0
- modoboa/frontend_dist/assets/VInput-BwHvhzAe.js +1 -0
- modoboa/frontend_dist/assets/VMenu-BpmJf4X2.js +1 -0
- modoboa/frontend_dist/assets/VMenu-C5A_5Hs5.css +1 -0
- modoboa/frontend_dist/assets/VPicker-B7cB3kJg.css +1 -0
- modoboa/frontend_dist/assets/VPicker-BZho70wU.js +1 -0
- modoboa/frontend_dist/assets/VProgressCircular-DRw_-iNj.js +1 -0
- modoboa/frontend_dist/assets/VRadioGroup--eiP5xtJ.js +1 -0
- modoboa/frontend_dist/assets/{VRow-CuVZGqBj.js → VRow-83Qnr5iB.js} +1 -1
- modoboa/frontend_dist/assets/VSelect-BcmGFGif.js +1 -0
- modoboa/frontend_dist/assets/{VSelectionControl-uKY9Zull.js → VSelectionControl-Cqi1xt-q.js} +1 -1
- modoboa/frontend_dist/assets/VSheet-C3MaHhtw.js +1 -0
- modoboa/frontend_dist/assets/VSpacer-CuSkdJZL.js +1 -0
- modoboa/frontend_dist/assets/VSwitch-XumUl685.js +1 -0
- modoboa/frontend_dist/assets/{VTable-gDsAUSLX.js → VTable-f7wcr2AZ.js} +1 -1
- modoboa/frontend_dist/assets/VTabs-CDfdejXj.css +1 -0
- modoboa/frontend_dist/assets/VTabs-y4wNP4im.js +1 -0
- modoboa/frontend_dist/assets/VTextField-BPIvtrn4.js +1 -0
- modoboa/frontend_dist/assets/VTextField-DjbYGlzs.css +1 -0
- modoboa/frontend_dist/assets/VTextarea-B6bGYcC3.js +1 -0
- modoboa/frontend_dist/assets/VTextarea-f6vTjzFy.css +1 -0
- modoboa/frontend_dist/assets/VToolbar-BYDPtwf0.css +1 -0
- modoboa/frontend_dist/assets/VToolbar-CB6wwtYc.js +1 -0
- modoboa/frontend_dist/assets/VWindowItem-CDtLLEkg.js +1 -0
- modoboa/frontend_dist/assets/WebmailLayout-CQQAolnl.css +1 -0
- modoboa/frontend_dist/assets/WebmailLayout-tosQSHLS.js +1 -0
- modoboa/frontend_dist/assets/{accounts-DqbBlaLK.js → accounts-KUsk6LHW.js} +1 -1
- modoboa/frontend_dist/assets/{admin-D36m_nXq.js → admin-BW9cZW0P.js} +1 -1
- modoboa/frontend_dist/assets/{aliases-BtyF8GC8.js → aliases-Ge0hjIsH.js} +1 -1
- modoboa/frontend_dist/assets/{amavis-DySmsCJQ.js → amavis-BbFeFfsk.js} +1 -1
- modoboa/frontend_dist/assets/{amavis-B4QhM5Fa.js → amavis-DtuzP_CS.js} +1 -1
- modoboa/frontend_dist/assets/{contacts-Df8ptuMn.js → contacts-DMJlQTe0.js} +1 -1
- modoboa/frontend_dist/assets/{domains-CSxtTvUh.js → domains-Du64lcXT.js} +1 -1
- modoboa/frontend_dist/assets/domains.store-1U61jeCV.js +1 -0
- modoboa/frontend_dist/assets/events-BM3in65C.js +1 -0
- modoboa/frontend_dist/assets/filter-Dihm6o59.js +1 -0
- modoboa/frontend_dist/assets/importExport-HGcNGWOm.js +1 -0
- modoboa/frontend_dist/assets/{index-B9q1vO3K.css → index-B1EK3MQe.css} +1 -1
- modoboa/frontend_dist/assets/{index-Bp9Fb67E.js → index-Dv00bmw9.js} +1 -1
- modoboa/frontend_dist/assets/index-jui3edpn.js +1001 -0
- modoboa/frontend_dist/assets/{language.store-_-zrrEiS.js → language.store-OcfdXL_-.js} +1 -1
- modoboa/frontend_dist/assets/languages-CF8hxo7x.js +1 -0
- modoboa/frontend_dist/assets/{layout-CjSP_k58.js → layout-DOO7TRTJ.js} +1 -1
- modoboa/frontend_dist/assets/{layout.store-CF5WRevH.js → layout.store-C0g-piJn.js} +1 -1
- modoboa/frontend_dist/assets/{logos-95XYS6uH.js → logos-Dz2Gzei-.js} +1 -1
- modoboa/frontend_dist/assets/{logs-CyU_PIDh.js → logs-CLm32Weu.js} +1 -1
- modoboa/frontend_dist/assets/{parameters-BxAXBXU1.js → parameters-DMIAQ7cd.js} +1 -1
- modoboa/frontend_dist/assets/{parameters.store-CATOSoQZ.js → parameters.store-DLnFzCwV.js} +1 -1
- modoboa/frontend_dist/assets/{permissions-cSkGqV3M.js → permissions-CrpE0b4w.js} +1 -1
- modoboa/frontend_dist/assets/{ssrBoot-05WtbG6H.js → ssrBoot-B7cr7q9U.js} +1 -1
- modoboa/frontend_dist/assets/{tag-BmV84V2s.js → tag-WF93n81Q.js} +1 -1
- modoboa/frontend_dist/assets/{theme-myV4ekXo.js → theme-_0oOYChG.js} +1 -1
- modoboa/frontend_dist/assets/transports-CS61syt-.js +1 -0
- modoboa/frontend_dist/assets/webmail-CYDXU0DS.js +1 -0
- modoboa/frontend_dist/assets/webmail.store-BvHCQSjM.js +1 -0
- modoboa/frontend_dist/index.html +2 -2
- modoboa/imap_migration/api/v2/serializers.py +13 -0
- modoboa/imap_migration/models.py +3 -3
- modoboa/imap_migration/templates/imap_migration/offlineimap.conf +2 -2
- modoboa/imap_migration/tests.py +28 -0
- modoboa/lib/cryptutils.py +2 -2
- modoboa/lib/sysutils.py +1 -1
- modoboa/lib/tests/__init__.py +0 -1
- modoboa/locale/br/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/br/LC_MESSAGES/django.po +753 -317
- modoboa/locale/cs/LC_MESSAGES/django.po +671 -309
- modoboa/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/cs_CZ/LC_MESSAGES/django.po +801 -378
- modoboa/locale/de/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/de/LC_MESSAGES/django.po +1116 -455
- modoboa/locale/de_DE/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/de_DE/LC_MESSAGES/django.po +745 -318
- modoboa/locale/el_GR/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/el_GR/LC_MESSAGES/django.po +825 -393
- modoboa/locale/en/LC_MESSAGES/django.po +669 -309
- modoboa/locale/es/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/es/LC_MESSAGES/django.po +810 -390
- modoboa/locale/es_MX/LC_MESSAGES/django.po +669 -309
- modoboa/locale/fi/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/fi/LC_MESSAGES/django.po +756 -316
- modoboa/locale/fr/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/fr/LC_MESSAGES/django.po +674 -313
- modoboa/locale/hu/LC_MESSAGES/django.po +669 -309
- modoboa/locale/it/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/it/LC_MESSAGES/django.po +807 -380
- modoboa/locale/ja_JP/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/ja_JP/LC_MESSAGES/django.po +951 -419
- modoboa/locale/ka/LC_MESSAGES/django.po +669 -309
- modoboa/locale/nl_NL/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/nl_NL/LC_MESSAGES/django.po +807 -387
- modoboa/locale/no/LC_MESSAGES/django.po +669 -309
- modoboa/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/pl_PL/LC_MESSAGES/django.po +826 -396
- modoboa/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/pt_BR/LC_MESSAGES/django.po +830 -392
- modoboa/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/pt_PT/LC_MESSAGES/django.po +788 -371
- modoboa/locale/ro_RO/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/ro_RO/LC_MESSAGES/django.po +763 -316
- modoboa/locale/ru/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/ru/LC_MESSAGES/django.po +1336 -1046
- modoboa/locale/si/LC_MESSAGES/django.po +669 -309
- modoboa/locale/sk/LC_MESSAGES/django.po +671 -309
- modoboa/locale/sk_SK/LC_MESSAGES/django.po +671 -309
- modoboa/locale/sl_SI/LC_MESSAGES/django.po +695 -315
- modoboa/locale/sv/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/sv/LC_MESSAGES/django.po +819 -387
- modoboa/locale/tr/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/tr/LC_MESSAGES/django.po +737 -315
- modoboa/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/tr_TR/LC_MESSAGES/django.po +711 -310
- modoboa/locale/uk/LC_MESSAGES/django.po +671 -309
- modoboa/locale/zh/LC_MESSAGES/django.po +668 -309
- modoboa/locale/zh_CN/LC_MESSAGES/django.po +668 -309
- modoboa/locale/zh_TW/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/zh_TW/LC_MESSAGES/django.po +747 -316
- modoboa/maillog/jobs.py +11 -0
- modoboa/maillog/tests/test_views.py +5 -4
- modoboa/parameters/api/v2/tests.py +1 -1
- modoboa/policyd/management/commands/policy_daemon.py +5 -1
- modoboa/policyd/tests.py +4 -2
- modoboa/rspamd/tests.py +20 -0
- modoboa/templates/registration/twofactor_code_verify.html +1 -1
- modoboa/webmail/app_settings.py +37 -0
- modoboa/webmail/constants.py +21 -1
- modoboa/webmail/factories.py +19 -0
- modoboa/webmail/jobs.py +27 -0
- modoboa/webmail/lib/__init__.py +0 -2
- modoboa/webmail/lib/imapemail.py +9 -11
- modoboa/webmail/lib/imapheader.py +25 -13
- modoboa/webmail/lib/imaputils.py +51 -13
- modoboa/webmail/lib/sendmail.py +88 -105
- modoboa/webmail/lib/utils.py +109 -0
- modoboa/webmail/migrations/0001_initial.py +90 -0
- modoboa/webmail/migrations/__init__.py +0 -0
- modoboa/webmail/mocks.py +12 -3
- modoboa/webmail/models.py +102 -0
- modoboa/webmail/serializers.py +84 -4
- modoboa/webmail/tests/data.py +21 -0
- modoboa/webmail/tests/test_lib_imaputils.py +33 -0
- modoboa/webmail/tests/test_viewsets.py +108 -0
- modoboa/webmail/urls.py +5 -0
- modoboa/webmail/viewsets.py +39 -9
- {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/METADATA +16 -13
- {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/RECORD +271 -254
- {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/WHEEL +1 -1
- modoboa/admin/management/commands/handle_mailbox_operations.py +0 -103
- modoboa/core/management/commands/cleanlogs.py +0 -53
- modoboa/frontend_dist/assets/AccountLayout-B2HptJzY.js +0 -1
- modoboa/frontend_dist/assets/AccountPasswordSubForm-DpADntAL.js +0 -1
- modoboa/frontend_dist/assets/AccountView-CJBGh9Oe.js +0 -1
- modoboa/frontend_dist/assets/AddressBook-CrFqzlzZ.js +0 -1
- modoboa/frontend_dist/assets/AdminLayout-BbCt7YxX.js +0 -1
- modoboa/frontend_dist/assets/AlarmsView-CIlt_IKQ.js +0 -1
- modoboa/frontend_dist/assets/AliasRecipientForm-jjj5yJJw.js +0 -1
- modoboa/frontend_dist/assets/AuditTrailView-sWnED3E9.js +0 -1
- modoboa/frontend_dist/assets/CalendarView-DSCBIvef.js +0 -1
- modoboa/frontend_dist/assets/ChoiceField-RDT6XcnX.js +0 -1
- modoboa/frontend_dist/assets/ComposeEmailForm-D3yUbBJX.css +0 -1
- modoboa/frontend_dist/assets/ComposeEmailForm-G3sXQAwI.js +0 -1
- modoboa/frontend_dist/assets/ComposeEmailView-Ce1CtFjD.js +0 -1
- modoboa/frontend_dist/assets/ConfirmDialog-Du7aqKbR.js +0 -1
- modoboa/frontend_dist/assets/ConnectedLayout-BHWaBAzH.js +0 -1
- modoboa/frontend_dist/assets/CreationForm-CjtILq0_.js +0 -1
- modoboa/frontend_dist/assets/DashboardView-DFNwusDZ.js +0 -1
- modoboa/frontend_dist/assets/DomainsView-CYxLy-3Y.js +0 -1
- modoboa/frontend_dist/assets/EmailField-DmPc4pyP.js +0 -1
- modoboa/frontend_dist/assets/EmailView-BE3vYZtJ.js +0 -1
- modoboa/frontend_dist/assets/EmptyLayout-DMwKNHfI.js +0 -1
- modoboa/frontend_dist/assets/FiltersView-Dps3_fAh.js +0 -1
- modoboa/frontend_dist/assets/ForwardEmailView-C0I00eXf.js +0 -1
- modoboa/frontend_dist/assets/IdentitiesView-CoGBVhZx.js +0 -1
- modoboa/frontend_dist/assets/InformationView-eB2ayeLD.js +0 -1
- modoboa/frontend_dist/assets/MailboxView-DIVABvk5.css +0 -1
- modoboa/frontend_dist/assets/MailboxView-DNokO2WZ.js +0 -5
- modoboa/frontend_dist/assets/MenuItems-dl38msRA.js +0 -1
- modoboa/frontend_dist/assets/MessagesView-BZ7NUOwo.js +0 -1
- modoboa/frontend_dist/assets/MigrationsView-DcOVgmcH.js +0 -1
- modoboa/frontend_dist/assets/ParametersView-B6abt-LH.js +0 -1
- modoboa/frontend_dist/assets/ParametersView-v0YS6WU4.js +0 -1
- modoboa/frontend_dist/assets/ProviderEditView-BaL9mKxJ.js +0 -1
- modoboa/frontend_dist/assets/ProviderGeneralForm-eoHMDO5v.js +0 -1
- modoboa/frontend_dist/assets/ProvidersView-Zu-G35u7.js +0 -1
- modoboa/frontend_dist/assets/QuarantineLayout-BHiiksnP.js +0 -1
- modoboa/frontend_dist/assets/QuarantineView-BOXSobRz.js +0 -1
- modoboa/frontend_dist/assets/ReplyEmailView-JmSiNWPy.js +0 -1
- modoboa/frontend_dist/assets/ResourcesForm-D0YBapCG.js +0 -1
- modoboa/frontend_dist/assets/SelfServiceLayout-DUmQzUDk.js +0 -1
- modoboa/frontend_dist/assets/SettingsView-DIvKGRBY.css +0 -1
- modoboa/frontend_dist/assets/SettingsView-DMuaKagM.js +0 -6
- modoboa/frontend_dist/assets/StatisticsView-CyY_CNcI.js +0 -1
- modoboa/frontend_dist/assets/TimeSerieChart-BTDBH33K.js +0 -1
- modoboa/frontend_dist/assets/TimeSerieChart-C3XHmlRd.css +0 -1
- modoboa/frontend_dist/assets/UserLayout-DwxcQr4L.js +0 -1
- modoboa/frontend_dist/assets/VApp-B0vRc3-6.js +0 -1
- modoboa/frontend_dist/assets/VAutocomplete-Huaz_-hf.js +0 -1
- modoboa/frontend_dist/assets/VAutocomplete-hzGuLlUI.css +0 -1
- modoboa/frontend_dist/assets/VAvatar-JdJfoK0C.js +0 -1
- modoboa/frontend_dist/assets/VBadge-Cg5iu5LG.js +0 -1
- modoboa/frontend_dist/assets/VCheckbox-CCLOJFKF.js +0 -1
- modoboa/frontend_dist/assets/VColorPicker-452uc3tY.js +0 -1
- modoboa/frontend_dist/assets/VDataTable-BkLLfcQK.js +0 -1
- modoboa/frontend_dist/assets/VDataTableServer-B_6fWBA3.js +0 -1
- modoboa/frontend_dist/assets/VDataTableVirtual-Ike7oqcC.js +0 -1
- modoboa/frontend_dist/assets/VDialog-DIUeAIpw.js +0 -1
- modoboa/frontend_dist/assets/VExpansionPanels-BeMgiS7A.js +0 -1
- modoboa/frontend_dist/assets/VFileInput-Dvj95FL5.js +0 -1
- modoboa/frontend_dist/assets/VForm-DkphQD3e.js +0 -1
- modoboa/frontend_dist/assets/VInput-CbqehdOu.js +0 -1
- modoboa/frontend_dist/assets/VMenu-B6SCtOwT.js +0 -1
- modoboa/frontend_dist/assets/VMenu-BEipA1lw.css +0 -1
- modoboa/frontend_dist/assets/VPicker-BUx70Wjg.js +0 -1
- modoboa/frontend_dist/assets/VPicker-ClSXs6kv.css +0 -1
- modoboa/frontend_dist/assets/VProgressCircular-DTDGzl2O.js +0 -1
- modoboa/frontend_dist/assets/VRadioGroup-CS9ULZ1c.js +0 -1
- modoboa/frontend_dist/assets/VSelect-D5IXDPEX.js +0 -1
- modoboa/frontend_dist/assets/VSheet-HeHw6g5_.js +0 -1
- modoboa/frontend_dist/assets/VSpacer-BUxSSJbH.js +0 -1
- modoboa/frontend_dist/assets/VSwitch-Dh_dserW.js +0 -1
- modoboa/frontend_dist/assets/VTabs-5XSICLQP.js +0 -1
- modoboa/frontend_dist/assets/VTabs-NzpINroH.css +0 -1
- modoboa/frontend_dist/assets/VTextField-Cow3HZvI.css +0 -1
- modoboa/frontend_dist/assets/VTextField-QXQFhKxm.js +0 -1
- modoboa/frontend_dist/assets/VTextarea-Bdy4UKmV.js +0 -1
- modoboa/frontend_dist/assets/VTextarea-DyGjqrlm.css +0 -1
- modoboa/frontend_dist/assets/VToolbar-CB2GrZpA.css +0 -1
- modoboa/frontend_dist/assets/VToolbar-CyrYSqJZ.js +0 -1
- modoboa/frontend_dist/assets/VWindowItem-kZpArwK1.js +0 -1
- modoboa/frontend_dist/assets/WebmailLayout-BzW0LWYp.css +0 -1
- modoboa/frontend_dist/assets/WebmailLayout-CNUHODnw.js +0 -1
- modoboa/frontend_dist/assets/domains.store-D4ZqCQ-O.js +0 -1
- modoboa/frontend_dist/assets/filter-DHKXX97M.js +0 -1
- modoboa/frontend_dist/assets/global.store-DYMmGKpn.js +0 -1
- modoboa/frontend_dist/assets/importExport-C-adpHJX.js +0 -1
- modoboa/frontend_dist/assets/index-B1bntsLR.js +0 -995
- modoboa/frontend_dist/assets/languages-CxjoT69j.js +0 -1
- modoboa/frontend_dist/assets/transports-ChdHV5hX.js +0 -1
- modoboa/frontend_dist/assets/webmail-B7MNMkv_.js +0 -1
- modoboa/frontend_dist/assets/webmail.store-Cm-h6hhE.js +0 -1
- {modoboa-2.6.4.data → modoboa-2.7.0.data}/scripts/modoboa-admin.py +0 -0
- {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/entry_points.txt +0 -0
- {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/licenses/LICENSE +0 -0
- {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.v-toolbar{align-items:flex-start;display:flex;flex:none;flex-direction:column;justify-content:space-between;max-width:100%;position:relative;transition:.2s cubic-bezier(.4,0,.2,1);transition-property:height,width,transform,max-width,left,right,top,bottom,box-shadow;width:100%}@media(prefers-reduced-motion:reduce){.v-toolbar{transition-property:box-shadow}}.v-toolbar{border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0}.v-toolbar--border{border-width:thin;box-shadow:none}.v-toolbar{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-toolbar{border-radius:0}.v-toolbar{background:rgb(var(--v-theme-surface-light));color:rgba(var(--v-theme-on-surface-light),var(--v-high-emphasis-opacity))}.v-toolbar--absolute{position:absolute}.v-toolbar--collapse{max-width:112px;overflow:hidden}.v-toolbar--collapse-end{margin-inline-start:auto}.v-toolbar--collapse.v-toolbar--collapse-start{border-end-end-radius:24px}.v-toolbar--collapse.v-toolbar--collapse-end{border-end-start-radius:24px}.v-toolbar--collapse .v-toolbar-title{display:none}.v-toolbar--flat{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-toolbar--floating{display:inline-flex;width:auto}.v-toolbar--rounded{border-radius:4px}.v-toolbar__content,.v-toolbar__extension{align-items:center;display:flex;flex:0 0 auto;position:relative;transition:inherit;width:100%}.v-toolbar__content{overflow:hidden}.v-toolbar__content>.v-btn:first-child{margin-inline-start:4px}.v-toolbar__content>.v-btn:last-child{margin-inline-end:4px}.v-toolbar__content>.v-toolbar-title{margin-inline-start:20px}.v-toolbar--density-prominent .v-toolbar__content{align-items:flex-start}.v-toolbar__image{display:flex;opacity:var(--v-toolbar-image-opacity, 1);transition-property:opacity}.v-toolbar__image{position:absolute;top:0;left:0;width:100%;height:100%}.v-toolbar__prepend,.v-toolbar__append{align-items:center;align-self:stretch;display:flex}.v-toolbar__prepend{margin-inline:4px auto}.v-toolbar__append{margin-inline:auto 4px}.v-toolbar-title{flex:1 1;font-size:1.25rem;min-width:0}.v-toolbar-title{font-size:1.25rem;font-weight:400;letter-spacing:0;line-height:1.75rem;text-transform:none}.v-toolbar--density-prominent .v-toolbar-title{align-self:flex-end;padding-bottom:6px}.v-toolbar--density-prominent .v-toolbar-title{font-size:1.5rem;font-weight:400;letter-spacing:0;line-height:2.25rem;text-transform:none}.v-toolbar-title__placeholder{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-toolbar-items{display:flex;height:inherit;align-self:stretch}.v-toolbar-items>.v-btn{border-radius:0}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{u as y,c as T,b as V}from"./tag-WF93n81Q.js";import{J as k,K as C,a,a2 as _,z as P,e as l,af as z,as as D,ah as j,j as x,U as w,ag as U,ai as n}from"./index-jui3edpn.js";import{x as $,l as A,n as F,o as J,p as K,A as q,j as G,e as c,k as L}from"./VAvatar-CXV_FqpP.js";import{a as M}from"./VProgressCircular-DRw_-iNj.js";const O=C({text:String,...V(),...T()},"VToolbarTitle"),Q=k()({name:"VToolbarTitle",props:O(),setup(e,s){let{slots:t}=s;return y(()=>{const i=!!(t.default||t.text||e.text);return a(e.tag,{class:P(["v-toolbar-title",e.class]),style:_(e.style)},{default:()=>{var o;return[i&&l("div",{class:"v-toolbar-title__placeholder"},[t.text?t.text():e.text,(o=t.default)==null?void 0:o.call(t)])]}})}),{}}}),W=[null,"prominent","default","comfortable","compact"],X=C({absolute:Boolean,collapse:Boolean,collapsePosition:{type:String,default:"start"},color:String,density:{type:String,default:"default",validator:e=>W.includes(e)},extended:{type:Boolean,default:null},extensionHeight:{type:[Number,String],default:48},flat:Boolean,floating:Boolean,height:{type:[Number,String],default:64},image:String,title:String,...q(),...V(),...K(),...J(),...T({tag:"header"}),...U()},"VToolbar"),te=k()({name:"VToolbar",props:X(),setup(e,s){var m;let{slots:t}=s;const{backgroundColorClasses:i,backgroundColorStyles:o}=M(()=>e.color),{borderClasses:B}=$(e),{elevationClasses:S}=A(e),{roundedClasses:N}=F(e),{themeClasses:H}=z(e),{rtlClasses:I}=D(),d=j(e.extended===null?!!((m=t.extension)!=null&&m.call(t)):e.extended),r=x(()=>parseInt(Number(e.height)+(e.density==="prominent"?Number(e.height):0)-(e.density==="comfortable"?8:0)-(e.density==="compact"?16:0),10)),u=x(()=>d.value?parseInt(Number(e.extensionHeight)+(e.density==="prominent"?Number(e.extensionHeight):0)-(e.density==="comfortable"?4:0)-(e.density==="compact"?8:0),10):0);return w({VBtn:{variant:"text"}}),y(()=>{var v;const R=!!(e.title||t.title),E=!!(t.image||e.image),g=(v=t.extension)==null?void 0:v.call(t);return d.value=e.extended===null?!!g:e.extended,a(e.tag,{class:P(["v-toolbar",`v-toolbar--collapse-${e.collapsePosition}`,{"v-toolbar--absolute":e.absolute,"v-toolbar--collapse":e.collapse,"v-toolbar--flat":e.flat,"v-toolbar--floating":e.floating,[`v-toolbar--density-${e.density}`]:!0},i.value,B.value,S.value,N.value,H.value,I.value,e.class]),style:_([o.value,e.style])},{default:()=>[E&&l("div",{key:"image",class:"v-toolbar__image"},[t.image?a(c,{key:"image-defaults",disabled:!e.image,defaults:{VImg:{cover:!0,src:e.image}}},t.image):a(G,{key:"image-img",cover:!0,src:e.image},null)]),a(c,{defaults:{VTabs:{height:n(r.value)}}},{default:()=>{var b,f,h;return[l("div",{class:"v-toolbar__content",style:{height:n(r.value)}},[t.prepend&&l("div",{class:"v-toolbar__prepend"},[(b=t.prepend)==null?void 0:b.call(t)]),R&&a(Q,{key:"title",text:e.title},{text:t.title}),(f=t.default)==null?void 0:f.call(t),t.append&&l("div",{class:"v-toolbar__append"},[(h=t.append)==null?void 0:h.call(t)])])]}}),a(c,{defaults:{VTabs:{height:n(u.value)}}},{default:()=>[a(L,null,{default:()=>[d.value&&l("div",{class:"v-toolbar__extension",style:{height:n(u.value)}},[g])]})]})]})}),{contentHeight:r,extensionHeight:u}}});export{te as V,Q as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ar as W,K as L,ag as U,J as M,af as q,as as J,L as K,i as k,j as h,ah as E,A as Q,ak as A,a1 as P,a9 as H,a as S,e as y,M as $,a2 as O,z as _,ai as C,at as Z,ae as p,O as tt,ad as et}from"./index-jui3edpn.js";import{c as nt,b as j,u as z}from"./tag-WF93n81Q.js";import{h as ot,V,u as st,M as it,m as at}from"./VAvatar-CXV_FqpP.js";import{k as ut,u as lt,m as ct}from"./VMenu-BpmJf4X2.js";import{u as rt}from"./ssrBoot-B7cr7q9U.js";const vt=t=>{const{touchstartX:o,touchendX:e,touchstartY:n,touchendY:a}=t,l=.5,s=16;t.offsetX=e-o,t.offsetY=a-n,Math.abs(t.offsetY)<l*Math.abs(t.offsetX)&&(t.left&&e<o-s&&t.left(t),t.right&&e>o+s&&t.right(t)),Math.abs(t.offsetX)<l*Math.abs(t.offsetY)&&(t.up&&a<n-s&&t.up(t),t.down&&a>n+s&&t.down(t))};function dt(t,o){var n;const e=t.changedTouches[0];o.touchstartX=e.clientX,o.touchstartY=e.clientY,(n=o.start)==null||n.call(o,{originalEvent:t,...o})}function ft(t,o){var n;const e=t.changedTouches[0];o.touchendX=e.clientX,o.touchendY=e.clientY,(n=o.end)==null||n.call(o,{originalEvent:t,...o}),vt(o)}function ht(t,o){var n;const e=t.changedTouches[0];o.touchmoveX=e.clientX,o.touchmoveY=e.clientY,(n=o.move)==null||n.call(o,{originalEvent:t,...o})}function mt(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const o={touchstartX:0,touchstartY:0,touchendX:0,touchendY:0,touchmoveX:0,touchmoveY:0,offsetX:0,offsetY:0,left:t.left,right:t.right,up:t.up,down:t.down,start:t.start,move:t.move,end:t.end};return{touchstart:e=>dt(e,o),touchend:e=>ft(e,o),touchmove:e=>ht(e,o)}}function gt(t,o){var v;const e=o.value,n=e!=null&&e.parent?t.parentElement:t,a=(e==null?void 0:e.options)??{passive:!0},l=(v=o.instance)==null?void 0:v.$.uid;if(!n||l===void 0)return;const s=mt(o.value);n._touchHandlers=n._touchHandlers??Object.create(null),n._touchHandlers[l]=s,W(s).forEach(d=>{n.addEventListener(d,s[d],a)})}function yt(t,o){var l,s;const e=(l=o.value)!=null&&l.parent?t.parentElement:t,n=(s=o.instance)==null?void 0:s.$.uid;if(!(e!=null&&e._touchHandlers)||n===void 0)return;const a=e._touchHandlers[n];W(a).forEach(v=>{e.removeEventListener(v,a[v])}),delete e._touchHandlers[n]}const I={mounted:gt,unmounted:yt},D=Symbol.for("vuetify:v-window"),F=Symbol.for("vuetify:v-window-group"),wt=L({continuous:Boolean,nextIcon:{type:[Boolean,String,Function,Object],default:"$next"},prevIcon:{type:[Boolean,String,Function,Object],default:"$prev"},reverse:Boolean,showArrows:{type:[Boolean,String],validator:t=>typeof t=="boolean"||t==="hover"},verticalArrows:[Boolean,String],touch:{type:[Object,Boolean],default:void 0},direction:{type:String,default:"horizontal"},modelValue:null,disabled:Boolean,selectedClass:{type:String,default:"v-window-item--active"},mandatory:{type:[Boolean,String],default:"force"},crossfade:Boolean,transitionDuration:Number,...j(),...nt(),...U()},"VWindow"),bt=M()({name:"VWindow",directives:{vTouch:I},props:wt(),emits:{"update:modelValue":t=>!0},setup(t,o){let{slots:e}=o;const{themeClasses:n}=q(t),{isRtl:a}=J(),{t:l}=K(),s=ot(t,F),v=k(),d=h(()=>a.value?!t.reverse:t.reverse),f=E(!1),w=h(()=>{if(t.crossfade)return"v-window-crossfade-transition";const u=t.direction==="vertical"?"y":"x",i=(d.value?!f.value:f.value)?"-reverse":"";return`v-window-${u}${i}-transition`}),B=E(0),T=k(void 0),g=h(()=>s.items.value.findIndex(u=>s.selected.value.includes(u.id)));Q(g,(u,c)=>{let i;const m={left:0,top:0};A&&c>=0&&(i=ut(v.value),m.left=i==null?void 0:i.scrollLeft,m.top=i==null?void 0:i.scrollTop);const R=s.items.value.length,X=R-1;R<=2?f.value=u<c:u===X&&c===0?f.value=!1:u===0&&c===X?f.value=!0:f.value=u<c,P(()=>{if(!A||!i)return;i.scrollTop!==m.top&&i.scrollTo({...m,behavior:"instant"}),requestAnimationFrame(()=>{if(!i)return;i.scrollTop!==m.top&&i.scrollTo({...m,behavior:"instant"})})})},{flush:"sync"}),p(D,{transition:w,isReversed:f,transitionCount:B,transitionHeight:T,rootRef:v});const r=H(()=>t.continuous||g.value!==0),Y=H(()=>t.continuous||g.value!==s.items.value.length-1);function b(){r.value&&s.prev()}function x(){Y.value&&s.next()}const G=h(()=>{const u=[],c={icon:a.value?t.nextIcon:t.prevIcon,class:`v-window__${d.value?"right":"left"}`,onClick:s.prev,"aria-label":l("$vuetify.carousel.prev")};u.push(r.value?e.prev?e.prev({props:c}):S(V,c,null):y("div",null,null));const i={icon:a.value?t.prevIcon:t.nextIcon,class:`v-window__${d.value?"left":"right"}`,onClick:s.next,"aria-label":l("$vuetify.carousel.next")};return u.push(Y.value?e.next?e.next({props:i}):S(V,i,null):y("div",null,null)),u}),N=h(()=>t.touch===!1?t.touch:{...{left:()=>{d.value?b():x()},right:()=>{d.value?x():b()},start:c=>{let{originalEvent:i}=c;i.stopPropagation()}},...t.touch===!0?{}:t.touch});return z(()=>$(S(t.tag,{ref:v,class:_(["v-window",{"v-window--show-arrows-on-hover":t.showArrows==="hover","v-window--vertical-arrows":!!t.verticalArrows,"v-window--crossfade":!!t.crossfade},n.value,t.class]),style:O([t.style,{"--v-window-transition-duration":Z()?null:C(t.transitionDuration,"ms")}])},{default:()=>{var u,c;return[y("div",{class:"v-window__container",style:{height:T.value}},[(u=e.default)==null?void 0:u.call(e,{group:s}),t.showArrows!==!1&&y("div",{class:_(["v-window__controls",{"v-window__controls--left":t.verticalArrows==="left"||t.verticalArrows===!0},{"v-window__controls--right":t.verticalArrows==="right"}])},[G.value])]),(c=e.additional)==null?void 0:c.call(e,{group:s})]}}),[[I,N.value]])),{group:s}}}),Tt=L({reverseTransition:{type:[Boolean,String],default:void 0},transition:{type:[Boolean,String],default:void 0},...j(),...at(),...ct()},"VWindowItem"),xt=M()({name:"VWindowItem",directives:{vTouch:I},props:Tt(),emits:{"group:selected":t=>!0},setup(t,o){let{slots:e}=o;const n=tt(D),a=st(t,F),{isBooted:l}=rt();if(!n||!a)throw new Error("[Vuetify] VWindowItem must be used inside VWindow");const s=E(!1),v=h(()=>l.value&&(n.isReversed.value?t.reverseTransition!==!1:t.transition!==!1));function d(){!s.value||!n||(s.value=!1,n.transitionCount.value>0&&(n.transitionCount.value-=1,n.transitionCount.value===0&&(n.transitionHeight.value=void 0)))}function f(){var r;s.value||!n||(s.value=!0,n.transitionCount.value===0&&(n.transitionHeight.value=C((r=n.rootRef.value)==null?void 0:r.clientHeight)),n.transitionCount.value+=1)}function w(){d()}function B(r){s.value&&P(()=>{!v.value||!s.value||!n||(n.transitionHeight.value=C(r.clientHeight))})}const T=h(()=>{const r=n.isReversed.value?t.reverseTransition:t.transition;return v.value?{name:typeof r!="string"?n.transition.value:r,onBeforeEnter:f,onAfterEnter:d,onEnterCancelled:w,onBeforeLeave:f,onAfterLeave:d,onLeaveCancelled:w,onEnter:B}:!1}),{hasContent:g}=lt(t,a.isSelected);return z(()=>S(it,{transition:T.value,disabled:!l.value},{default:()=>{var r;return[$(y("div",{class:_(["v-window-item",a.selectedClass.value,t.class]),style:O(t.style)},[g.value&&((r=e.default)==null?void 0:r.call(e))]),[[et,a.isSelected.value]])]}})),{groupItem:a}}});export{bt as V,xt as a,Tt as b,wt as m};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.mailbox[data-v-dffe8b9d]{cursor:pointer}.mailbox[data-v-dffe8b9d]:hover{border-radius:5px}.mailbox i[data-v-dffe8b9d],.mailbox span[data-v-dffe8b9d]{pointer-events:none}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as ie,I as W,B as se,C as Y,b as E,p as K,i as m,A as Q,r as re,m as y,o as s,F as O,v as ue,z as G,e as S,c as D,n as X,a as t,f as M,t as U,q as J,j as L,w as f,g as H,s as me}from"./index-jui3edpn.js";import{u as ce}from"./logos-Dz2Gzei-.js";import{_ as de}from"./ConfirmDialog-CWpdwSQ6.js";import{_ as pe,V as ve}from"./ConnectedLayout-BP8pO27H.js";import{a as k}from"./webmail-CYDXU0DS.js";import{u as fe}from"./webmail.store-BvHCQSjM.js";import{c as Z,V as B,a as be,j as xe}from"./VAvatar-CXV_FqpP.js";import{V as ee}from"./VSpacer-CuSkdJZL.js";import{V as ge,r as ye}from"./VForm-fdQ5d-CH.js";import{V as Me,b as Ve,a as _e}from"./VCard-CBtX8JF-.js";import{V as he}from"./VTextField-BPIvtrn4.js";import{V as Ce}from"./VDialog-lKtBdqnp.js";import{V as ke,a as we,b as z}from"./VMenu-BpmJf4X2.js";import"./VToolbar-CB6wwtYc.js";import"./tag-WF93n81Q.js";import"./VProgressCircular-DRw_-iNj.js";import"./theme-_0oOYChG.js";import"./VContainer-Cn-vKB3s.js";/* empty css */import"./VApp-DM1KLQfQ.js";import"./layout-DOO7TRTJ.js";import"./ssrBoot-B7cr7q9U.js";import"./layout.store-C0g-piJn.js";import"./VBadge-7tDx7aI3.js";import"./VRow-83Qnr5iB.js";import"./VSheet-C3MaHhtw.js";import"./VInput-BwHvhzAe.js";const $e=["onClick","onMouseover","onMouseleave","onDragenter","onDragleave","onDrop"],Ue={key:0,class:"font-weight-bold"},Be={key:1},Ne={key:0,class:"font-weight-bold"},Le={key:1},Se={__name:"MailboxList",props:W({mailboxes:{type:Array,default:null},lightMode:{type:Boolean,default:!1},compact:{type:Boolean,default:!1},unseenCounters:{type:Boolean,default:!0},allowUnselect:{type:Boolean,default:!1},rail:{type:Boolean,default:!1}},{modelValue:{},modelModifiers:{}}),emits:W(["update:modelValue"],["update:modelValue"]),setup(q,{emit:V}){const l=q,n=se(q,"modelValue"),r=V,_=Y(),{$gettext:u}=E(),w=K(),b=fe(),N={inbox:"mdi-inbox",draft:"mdi-file",junk:"mdi-fire",sent:"mdi-email-fast-outline",scheduled:"mdi-send-clock-outline",trash:"mdi-trash-can-outline",normal:"mdi-folder-outline"},c=m(null),h=m({}),x=m({});function i(e){return e.label.split("/").pop()}function o(e){return c.value===null&&(c.value=e.unseen),c.value}function d(e,p){h.value[e.name]=p}function I(e){return n.value===e.name?"bg-primary-lighten-1":l.lightMode?h.value[e.name]?"bg-primary":"bg-white":h.value[e.name]?"bg-primary-lighten-1":"bg-primary"}function F(e){return x.value[e.name]}function j(e){x.value[e.name]||(x.value[e.name]=!1),x.value[e.name]=!x.value[e.name],x.value[e.name]&&!e.sub.length&&k.getUserMailboxes(e.name).then(p=>{e.sub=p.data.mailboxes})}function A(e){l.allowUnselect&&e===n.value?r("update:modelValue",null):r("update:modelValue",e)}async function T(e){try{w.displayNotification({msg:u("Moving selection..."),type:"info",timeout:0});const p=await k.moveSelection(_.query.mailbox||"INBOX",e.name,b.selection);b.listingKey++,b.selection=[]}finally{w.hideNotification()}}return Q(()=>w.mbCounterKey,()=>{k.getUserMailboxUnseen(_.query.mailbox).then(e=>{c.value=e.data.counter})}),(e,p)=>{const R=re("MailboxList",!0);return s(),y("div",null,[(s(!0),y(O,null,ue(l.mailboxes,a=>(s(),y("div",{key:a.name,class:G(["pl-3 text-body-2",{"py-1":!l.compact}])},[S("div",{class:G([I(a),"d-flex mailbox pa-1 align-center"]),onClick:C=>A(a.name),onMouseover:C=>d(a,!0),onMouseleave:C=>d(a,!1),onDragover:p[0]||(p[0]=J(()=>{},["prevent"])),onDragenter:C=>d(a,!0),onDragleave:C=>d(a,!1),onDrop:C=>T(a)},[t(Z,{icon:N[a.type],class:"mr-4"},null,8,["icon"]),l.rail?X("",!0):(s(),y(O,{key:0},[a.name===M(_).query.mailbox?(s(),y(O,{key:0},[c.value>0?(s(),y("span",Ue,U(i(a))+" ("+U(o(a))+") ",1)):(s(),y("span",Be,U(i(a)),1))],64)):(s(),y(O,{key:1},[a.unseen>0?(s(),y("span",Ne,U(i(a))+" ("+U(a.unseen)+") ",1)):(s(),y("span",Le,U(i(a)),1))],64)),t(ee),a.sub?(s(),D(B,{key:2,icon:F(a)?"mdi-minus":"mdi-plus",size:"xsmall",variant:"flat",color:"transparent",onClick:C=>j(a)},null,8,["icon","onClick"])):X("",!0)],64))],42,$e),F(a)&&a.sub&&a.sub.length?(s(),D(R,{key:0,modelValue:n.value,"onUpdate:modelValue":p[1]||(p[1]=C=>n.value=C),mailboxes:a.sub,class:"mt-1","light-mode":l.lightMode,compact:l.compact},null,8,["modelValue","mailboxes","light-mode","compact"])):X("",!0)],2))),128))])}}},ae=ie(Se,[["__scopeId","data-v-dffe8b9d"]]),De={class:"mb-2 rounded-lg"},qe={__name:"MailboxForm",props:{userMailboxes:Array,mailbox:{type:String,default:null},hdelimiter:{type:String,default:null}},emits:["close","mailboxRenamed"],setup(q,{emit:V}){const l=q,n=V,{$gettext:r}=E(),{displayNotification:_}=K(),u=m({}),w=m(),b=m(!1),N=L(()=>l.mailbox?r("Edit mailbox"):r("Create new mailbox")),c=L(()=>l.mailbox?r("Update"):r("Create")),h=()=>{u.value={},n("close")},x=async()=>{const{valid:i}=await w.value.validate();if(i){b.value=!0;try{const o={...u.value};l.mailbox?(o.oldname=l.mailbox,await k.renameUserMailbox(o),_({msg:r("Mailbox renamed")}),n("mailboxRenamed",`${o.parent_mailbox}${l.hdelimiter}${o.name}`)):(await k.createUserMailbox(o),_({msg:r("Mailbox created")})),h()}finally{b.value=!1}}};return Q(()=>l.mailbox,i=>{if(i){const o=l.mailbox.split(l.hdelimiter);u.value.name=o.slice(-1)[0],u.value.parent_mailbox=o.slice(0,-1).join(l.hdelimiter)}else u.value={}},{immediate:!0}),(i,o)=>(s(),D(_e,{title:N.value},{default:f(()=>[t(Me,null,{default:f(()=>[t(ge,{ref_key:"formRef",ref:w},{default:f(()=>[t(he,{modelValue:u.value.name,"onUpdate:modelValue":o[0]||(o[0]=d=>u.value.name=d),label:M(r)("Name"),variant:"outlined",density:"compact",rules:[M(ye).required]},null,8,["modelValue","label","rules"]),S("div",De,[S("h4",null,U(M(r)("Parent mailbox")),1),t(ae,{modelValue:u.value.parent_mailbox,"onUpdate:modelValue":o[1]||(o[1]=d=>u.value.parent_mailbox=d),"active-mailbox":l.parent,mailboxes:l.userMailboxes,"light-mode":"",compact:"","unseen-counters":!1,"allow-unselect":""},null,8,["modelValue","active-mailbox","mailboxes"])])]),_:1},512)]),_:1}),t(Ve,null,{default:f(()=>[t(ee),t(B,{text:M(r)("Close"),variant:"flat",loading:b.value,onClick:h},null,8,["text","loading"]),t(B,{text:c.value,variant:"tonal",color:"primary",loading:b.value,onClick:x},null,8,["text","loading"])]),_:1})]),_:1},8,["title"]))}},Ie={class:"d-flex align-center"},Fe={class:"d-flex justify-center mb-4"},Oe={class:"border-t-sm d-flex align-center bg-grey"},ca={__name:"WebmailLayout",async setup(q){let V,l;const{$gettext:n}=E(),r=Y(),_=me(),u=K(),{menuLogoPath:w}=ce(),b=m(),N=m(!0),c=m(!1),h=m(null),x=m(null),i=m(null),o=m(r.query.mailbox||"INBOX"),d=m(!1),I=m([]),F=L(()=>["INBOX"].includes(r.query.mailbox||"INBOX")),j=L(()=>i.value.usage<50?"info":i.value.usage<80?"warning":"error"),A=L(()=>`${i.value.current} / ${i.value.limit} (${i.value.usage}%)`),T=L(()=>u.dataKey);function e(g){_.push({name:"MailboxView",query:{mailbox:g}}),k.getUserMailboxQuota(g).then(v=>{i.value=v.data})}const p=async()=>{const g=await k.getUserMailboxes();I.value=g.data.mailboxes,x.value=g.data.hdelimiter},R=()=>{_.push({name:"ComposeEmailView"})},a=()=>{d.value=!1,h.value=null,p()},C=()=>{d.value=!0},te=()=>{h.value=o.value,d.value=!0},P=g=>{o.value=g,_.push({name:"MailboxView",query:{mailbox:g}})},le=async()=>{await k.compressUserMailbox({name:o.value}),u.displayNotification({msg:n("Mailbox compressed")})},oe=async()=>{await b.value.open(n("Warning"),n("Delete this mailbox?"),{color:"warning",agreeLabel:n("Yes"),cancelLabel:n("No")})&&(await k.deleteUserMailbox({name:o.value}),u.displayNotification({msg:n("Mailbox deleted")}),P("INBOX"))};Q(T,()=>{p()}),[V,l]=H(()=>p()),await V,l();const ne=([V,l]=H(()=>k.getUserMailboxQuota(r.query.mailbox||"INBOX")),V=await V,l(),V);return i.value=ne.data,(g,v)=>(s(),y(O,null,[t(pe,null,{navbar:f(()=>[t(ve,{modelValue:N.value,"onUpdate:modelValue":v[2]||(v[2]=$=>N.value=$),rail:c.value,permanent:"",color:"primary"},{prepend:f(()=>[S("div",Ie,[t(xe,{src:M(w),"max-width":"190",class:"logo"},null,8,["src"]),t(B,{icon:c.value?"mdi-chevron-right":"mdi-chevron-left",variant:"text",onClick:v[0]||(v[0]=J($=>c.value=!c.value,["stop"]))},null,8,["icon"])]),S("div",Fe,[c.value?(s(),D(B,{key:1,icon:"mdi-pencil",color:"secondary",variant:"flat",size:"small",onClick:R})):(s(),D(B,{key:0,text:M(n)("Compose"),color:"secondary",variant:"flat","prepend-icon":"mdi-pencil",onClick:R},null,8,["text"]))])]),append:f(()=>[S("div",Oe,[t(B,{class:"ml-2",variant:"text",icon:"",size:"small"},{default:f(()=>[t(Z,{icon:"mdi-cog"}),t(ke,{activator:"parent"},{default:f(()=>[t(we,{density:"compact"},{default:f(()=>[t(z,{title:M(n)("Create a new mailbox"),"prepend-icon":"mdi-plus",onClick:C},null,8,["title"]),t(z,{title:M(n)("Edit this mailbox"),"prepend-icon":"mdi-pencil",disabled:F.value,onClick:te},null,8,["title","disabled"]),t(z,{title:M(n)("Delete this mailbox"),"prepend-icon":"mdi-trash-can",disabled:F.value,onClick:oe},null,8,["title","disabled"]),t(z,{title:M(n)("Compress this mailbox"),"prepend-icon":"mdi-folder-zip-outline",onClick:le},null,8,["title"])]),_:1})]),_:1})]),_:1}),i.value?(s(),D(be,{key:0,color:j.value,"model-value":i.value.usage,title:A.value},null,8,["color","model-value","title"])):X("",!0)])]),default:f(()=>[t(ae,{modelValue:o.value,"onUpdate:modelValue":[v[1]||(v[1]=$=>o.value=$),e],mailboxes:I.value,class:"mr-2",rail:c.value},null,8,["modelValue","mailboxes","rail"])]),_:1},8,["modelValue","rail"])]),_:1}),t(Ce,{modelValue:d.value,"onUpdate:modelValue":v[4]||(v[4]=$=>d.value=$),"max-width":"800"},{default:f(()=>[t(qe,{"user-mailboxes":I.value,mailbox:h.value,hdelimiter:x.value,onMailboxRenamed:P,onClose:v[3]||(v[3]=$=>a())},null,8,["user-mailboxes","mailbox","hdelimiter"])]),_:1},8,["modelValue"]),t(de,{ref_key:"confirm",ref:b},null,512)],64))}};export{ca as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{E as t}from"./index-jui3edpn.js";const r="accounts",n={getAll(e){return t.get(`/${r}/`,{params:e,paramsSerializer:{indexes:null}})},get(e){return t.get(`${r}/${e}/`)},getRandomPassword(){return t.get(`${r}/random_password/`)},getCredentials(e){return t.get(`credentials/${e}/`,{responseType:"blob"})},validate(e){return t.post(`${r}/validate/`,e)},create(e){return t.post(`${r}/`,e)},patch(e,a){return t.patch(`${r}/${e}/`,a)},delete(e,a){return t.post(`${r}/${e}/delete/`,a)}};export{n as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{E as t}from"./index-jui3edpn.js";const n={getComponentsInformation(){return t.get("/admin/components/")},getNotifications(){return t.get("/admin/notifications/")},getNewsFeed(){return t.get("/admin/news_feed/")},getStatistics(){return t.get("/admin/statistics/")}};export{n as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{E as t}from"./index-jui3edpn.js";const r="aliases",n={getAll(e){return t.get(`${r}/`,{params:e})},get(e){return t.get(`${r}/${e}/`)},getRandomAddress(){return t.get(`${r}/random_address/`)},validate(e){return t.post(`${r}/validate/`,e)},create(e){return t.post(`${r}/`,e)},patch(e,a){return t.patch(`${r}/${e}/`,a)},delete(e){return t.delete(`${r}/${e}/`)}};export{n as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as m,b as p,
|
|
1
|
+
import{u as m,b as p,i as v,j as t,k as l}from"./index-jui3edpn.js";import{u as c}from"./permissions-CrpE0b4w.js";import{p as _}from"./parameters-DMIAQ7cd.js";async function d(){const r=m(),{$gettext:s}=p(),{canViewDomain:n}=c(),a=v(null),u=t(()=>a.value&&a.value.params.manual_learning?r.authUser.role!==l.SUPER_ADMIN?n.value&&a.value.params.domain_level_learning||a.value.params.user_level_learning:!0:!1),i=t(()=>{const e=[];return r.authUser.role===l.SUPER_ADMIN&&e.push({value:"global",title:s("Global database")}),a.value.params.domain_level_learning&&e.push({value:"domain",title:s("Domain's database")}),a.value.params.user_level_learning&&e.push({value:"user",title:s("User's database")}),e}),o=await _.getGlobalApplication("amavis");return a.value=o.data,{learningRecipients:i,manualLearningEnabled:u}}export{d as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{E as a}from"./index-jui3edpn.js";const i={getQuarantineContent(e){return a.get("/amavis/quarantine/",{params:e})},releaseSelection(e){return a.post("/amavis/quarantine/release_selection/",e)},releaseMessage(e,t){return a.post(`/amavis/quarantine/${e}/release/`,t)},deleteSelection(e){return a.post("/amavis/quarantine/delete_selection/",e)},deleteMessage(e,t){return a.post(`/amavis/quarantine/${e}/delete/`,t)},markMessageSelection(e){return a.post("/amavis/quarantine/mark_selection/",e)},getMessageContent(e,t,s){const n={rcpt:t};return s&&(n.secret_id=s),a.get(`/amavis/quarantine/${e}/`,{params:n})},getMessageHeaders(e,t,s){const n={rcpt:t};return s&&(n.secret_id=s),a.get(`/amavis/quarantine/${e}/headers/`,{params:n})},getDomainPolicy(e){return a.get(`/amavis/policies/${e}/`)},updateDomainPolicy(e,t){return a.patch(`/amavis/policies/${e}/`,t)}};export{i as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{E as e}from"./index-jui3edpn.js";const s={getDefaultAddressBook(){return e.get("/address-books/default/")},synchronizeToAddressBook(){return e.get("/address-books/sync_to_cdav/")},synchronizeFromAddressBook(){return e.get("/address-books/sync_from_cdav/")},getContacts(t){return e.get("/contacts/",{params:t})},createContact(t){return e.post("/contacts/",t)},updateContact(t,r){return e.patch(`/contacts/${t}/`,r)},deleteContact(t){return e.delete(`/contacts/${t}/`)},getCategories(){return e.get("/categories/")},addCategory(t){return e.post("/categories/",t)},updateCategory(t,r){return e.patch(`/categories/${t}/`,r)},deleteCategory(t){return e.delete(`/categories/${t}/`)}};export{s as c};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{E as e}from"./index-jui3edpn.js";const a="domains",n="domainaliases",i={getDomains(t){return e.get(`/${a}/`,{params:t})},getDomain(t){return e.get(`/${a}/${t}/`)},getDomainDNSDetail(t){return e.get(`/${a}/${t}/dns_detail/`)},getDomainDmarcAlignment(t,r){return e.get(`${a}/${t}/dmarc/alignment_stats/`,{params:{period:r}})},getDomainAliases(t){let r=`/${n}/`;return t!==void 0&&(r+=`?domain=${t}`),e.get(r)},getDomainAdministrators(t){return e.get(`/${a}/${t}/administrators/`)},addDomainAdministrator(t,r){return e.post(`/${a}/${t}/administrators/add/`,{account:r})},removeDomainAdministrator(t,r){return e.post(`/${a}/${t}/administrators/remove/`,{account:r})},createDomain(t){return e.post(`/${a}/`,t)},updateDomain(t,r){return e.put(`/${a}/${t}/`,r)},patchDomain(t,r){return e.patch(`/${a}/${t}/`,r)},deleteDomain(t,r){return e.post(`/${a}/${t}/delete/`,r)},createDomainAlias(t){return e.post(`/${n}/`,t)},updateDomainAlias(t,r){return e.put(`/${n}/${t}/`,r)},deleteDomainAlias(t){return e.delete(`/${n}/${t}/`)},exportAll(){return e.get(`/${a}/export/`)},importFromCSV(t){return e.post(`/${a}/import/`,t,{headers:{"Content-Type":"multipart/form-data"}})}};export{i as d};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{G as f,i as n}from"./index-jui3edpn.js";import{d as u}from"./domains-Du64lcXT.js";const c=f("domains",()=>{const a=n(!1),s=n([]);async function t(){a.value=!1,s.value={}}async function o(){a.value=!1;try{const e=await u.getDomains({page_size:0});s.value=e.data.results}finally{a.value=!1}}function i(e){return typeof e=="object"?e.name:s.value.find(r=>r.pk===e).name}return{domainsLoaded:a,domains:s,getDomainName:i,getDomains:o,$reset:t}});export{c as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{bp as s,bK as d}from"./index-jui3edpn.js";function a(r,n,l){return Object.keys(r).filter(e=>s(e)&&e.endsWith(n)).reduce((e,t)=>(e[t.slice(0,-n.length)]=i=>d(r[t],i,l(i)),e),{})}export{a as g};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{K as S,ah as v,j as x,f as m,a8 as C,aj as I,T as A,e as k,z as j,F as $}from"./index-jui3edpn.js";const z=(t,l,e)=>{if(t==null||l==null)return-1;if(!l.length)return 0;t=t.toString().toLocaleLowerCase(),l=l.toString().toLocaleLowerCase();const r=[];let n=t.indexOf(l);for(;~n;)r.push([n,n+l.length]),n=t.indexOf(l,n+l.length);return r.length?r:-1};function w(t,l){if(!(t==null||typeof t=="boolean"||t===-1))return typeof t=="number"?[[t,t+l.length]]:Array.isArray(t[0])?t:[t]}const P=S({customFilter:Function,customKeyFilter:Object,filterKeys:[Array,String],filterMode:{type:String,default:"intersection"},noFilter:Boolean},"filter");function B(t,l,e){var s;const r=[],n=(e==null?void 0:e.default)??z,i=e!=null&&e.filterKeys?I(e.filterKeys):!1,a=Object.keys((e==null?void 0:e.customKeyFilter)??{}).length;if(!(t!=null&&t.length))return r;let u=null;e:for(let d=0;d<t.length;d++){const[f,M=f]=I(t[d]),g={},h={};let c=-1;if((l||a>0)&&!(e!=null&&e.noFilter)){let K=!1;if(typeof f=="object"){if(f.type==="divider"||f.type==="subheader"){(u==null?void 0:u.type)==="divider"&&f.type==="subheader"&&r.push(u),u={index:d,matches:{},type:f.type};continue}const O=i||Object.keys(M);K=O.length===a;for(const b of O){const L=A(M,b),_=(s=e==null?void 0:e.customKeyFilter)==null?void 0:s[b];if(c=_?_(L,l,f):n(L,l,f),c!==-1&&c!==!1)_?g[b]=w(c,l):h[b]=w(c,l);else if((e==null?void 0:e.filterMode)==="every")continue e}}else c=n(f,l,f),c!==-1&&c!==!1&&(h.title=w(c,l));const F=Object.keys(h).length,y=Object.keys(g).length;if(!F&&!y||(e==null?void 0:e.filterMode)==="union"&&y!==a&&!F||(e==null?void 0:e.filterMode)==="intersection"&&(y!==a||!F&&a>0&&!K))continue}u&&(r.push(u),u=null),r.push({index:d,matches:{...h,...g}})}return r}function R(t,l,e,r){const n=v([]),i=v(new Map),a=x(()=>r!=null&&r.transform?m(l).map(s=>[s,r.transform(s)]):m(l));C(()=>{const s=typeof e=="function"?e():m(e),d=typeof s!="string"&&typeof s!="number"?"":String(s),f=B(a.value,d,{customKeyFilter:{...t.customKeyFilter,...m(r==null?void 0:r.customKeyFilter)},default:t.customFilter,filterKeys:t.filterKeys,filterMode:t.filterMode,noFilter:t.noFilter}),M=m(l),g=[],h=new Map;f.forEach(c=>{let{index:K,matches:F}=c;const y=M[K];g.push(y),h.set(y.value,F)}),n.value=g,i.value=h});function u(s){return i.value.get(s.value)}return{filteredItems:n,filteredMatches:i,getMatches:u}}function N(t,l,e){return e==null||!e.length?l:e.map((r,n)=>{const i=n===0?0:e[n-1][1],a=[k("span",{class:j(`${t}__unmask`)},[l.slice(i,r[0])]),k("span",{class:j(`${t}__mask`)},[l.slice(r[0],r[1])])];return n===e.length-1&&a.push(k("span",{class:j(`${t}__unmask`)},[l.slice(r[1])])),k($,null,[a])})}export{N as h,P as m,R as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as h,b as g,c as C,o as w,w as l,a as o,q as N,e as v,t as r,y as _,l as p,f as s,p as b}from"./index-jui3edpn.js";import{V as k,r as y}from"./VForm-fdQ5d-CH.js";import{c as F,V as U,b as B,a as T}from"./VCard-CBtX8JF-.js";import{V as q}from"./VAlert-MDbeolOo.js";import{V as L}from"./VFileInput-C7J_qVmk.js";import{V as R}from"./VTextField-BPIvtrn4.js";import{V as $}from"./VSwitch-XumUl685.js";import{V as j}from"./VSpacer-CuSkdJZL.js";import{V as x}from"./VAvatar-CXV_FqpP.js";const D={class:"headline"},I={class:"m-label"},A={class:"m-label"},K={__name:"ImportForm",props:{helpText:{type:String,default:""},title:{type:String,default:""}},emits:["close","submit"],setup(f,{expose:V,emit:i}){const n=i,t=h({}),u=h(),{$gettext:e}=g();function c(){t.value={},n("close")}async function S(){const{valid:d}=await u.value.validate();if(!d)return;const a=new FormData;a.append("sourcefile",t.value.sourcefile),t.value.sepchar&&a.append("sepchar",t.value.sepchar),t.value.continue_if_exists&&a.append("continue_if_exists",t.value.continue_if_exists),n("submit",a,t.value)}return V({close:c}),(d,a)=>(w(),C(T,null,{default:l(()=>[o(k,{ref_key:"vform",ref:u,onSubmit:N(S,["prevent"])},{default:l(()=>[o(F,null,{default:l(()=>[v("span",D,r(f.title),1)]),_:1}),o(U,null,{default:l(()=>[o(q,{variant:"tonal",type:"info",class:"mb-2"},{default:l(()=>[p(r(s(e)("Provide a CSV file where lines respect one of the following formats:"))+" ",1),_(d.$slots,"help"),p(" "+r(s(e)("The first element of each line is mandatory and must be equal to one of the previous values."))+" "+r(s(e)("You can use a different character as separator.")),1)]),_:3}),v("label",I,r(s(e)("Select file")),1),o(L,{modelValue:t.value.sourcefile,"onUpdate:modelValue":a[0]||(a[0]=m=>t.value.sourcefile=m),accept:"text/csv","truncate-length":"15",variant:"outlined",density:"compact",rules:[s(y).required]},null,8,["modelValue","rules"]),v("label",A,r(s(e)("Separator")),1),o(R,{modelValue:t.value.sepchar,"onUpdate:modelValue":a[1]||(a[1]=m=>t.value.sepchar=m),rules:[s(y).required],variant:"outlined",density:"compact"},null,8,["modelValue","rules"]),o($,{modelValue:t.value.continue_if_exists,"onUpdate:modelValue":a[2]||(a[2]=m=>t.value.continue_if_exists=m),label:s(e)("Continue on error"),color:"primary",density:"compact",hint:s(e)("Don't treat duplicated objects as errors"),"persistent-hint":""},null,8,["modelValue","label","hint"]),_(d.$slots,"extraFields",{form:t.value})]),_:3}),o(B,null,{default:l(()=>[o(j),o(x,{onClick:c},{default:l(()=>[p(r(s(e)("Close")),1)]),_:1}),o(x,{color:"primary",type:"submit"},{default:l(()=>[p(r(s(e)("Import")),1)]),_:1})]),_:1})]),_:3},512)]),_:3}))}},Q=()=>{function f(i,n,t){if(!i&&!i.length){b().displayNotification({msg:t("No data to export"),type:"warning"});return}const u=new Blob([i],{type:"text/csv"}),e=document.createElement("a");e.href=URL.createObjectURL(u),e.download=`modoboa-${n}.csv`,e.click(),URL.revokeObjectURL(e.href)}function V(i,n,t,u){i.importFromCSV(n).then(e=>{const c=b();e.data.status?(c.displayNotification({msg:e.data.message}),t.value.close()):c.displayNotification({msg:e.data.message,type:"error"})}).catch(()=>{b().displayNotification({msg:u("CSV seems to be badly formatted"),type:"error"})})}return{exportContent:f,importContent:V}};export{K as _,Q as i};
|