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
|
+
import{E as Z,I as se,B as Se,c as E,o as p,w as t,a as l,m as R,F as T,v as Le,l as y,t as f,_ as ye,b as X,p as ie,i as u,j as z,d as Ne,n as J,x as le,f as v,r as De,y as Te,s as ne,k as ee,e as P}from"./index-jui3edpn.js";import{_ as re}from"./MenuItems-C9p70bSC.js";import{_ as ue}from"./ConfirmDialog-CWpdwSQ6.js";import{V as je,b as qe,a as _e}from"./VCard-CBtX8JF-.js";import{V as be}from"./VCheckbox-zY1MApOy.js";import{V as Me}from"./VSpacer-CuSkdJZL.js";import{V as q,c as te,a as de}from"./VAvatar-CXV_FqpP.js";import{a as G}from"./accounts-KUsk6LHW.js";import{a as K}from"./aliases-Ge0hjIsH.js";import{d as Pe}from"./index-Dv00bmw9.js";import{V as oe,a as ge,b as me,c as ce}from"./VMenu-BpmJf4X2.js";import{V as ze}from"./VSelect-BcmGFGif.js";import{V as ke,a as Be}from"./VToolbar-CB6wwtYc.js";import{V as Oe}from"./VTextField-BPIvtrn4.js";import{a as We,V as pe}from"./VRadioGroup--eiP5xtJ.js";import{V as Ge}from"./VDataTableServer-_yn4Ry6U.js";import{V as H}from"./VDialog-lKtBdqnp.js";import{_ as Qe,a as Ye}from"./AliasRecipientForm-CI7bXqVp.js";import{_ as Ve}from"./CreationForm-CzelJsVQ.js";import{_ as He,A as Je,a as Ke,b as Xe}from"./AccountAliasForm-DO6DwfjE.js";import{u as Ze}from"./permissions-CrpE0b4w.js";import{a as W,V as fe}from"./VRow-83Qnr5iB.js";import{u as et}from"./domains.store-1U61jeCV.js";import{_ as tt,i as at}from"./importExport-HGcNGWOm.js";import{V as lt}from"./VSwitch-XumUl685.js";import"./tag-WF93n81Q.js";import"./VCheckboxBtn-B0mIT3E0.js";import"./VSelectionControl-Cqi1xt-q.js";import"./VProgressCircular-DRw_-iNj.js";import"./VInput-BwHvhzAe.js";/* empty css */import"./ssrBoot-B7cr7q9U.js";import"./VDataTable-CNT9KOSp.js";import"./events-BM3in65C.js";import"./VTable-f7wcr2AZ.js";import"./filter-Dihm6o59.js";import"./EmailField-KhhJYA4D.js";import"./VForm-fdQ5d-CH.js";import"./domains-Du64lcXT.js";import"./VTextarea-B6bGYcC3.js";import"./logos-Dz2Gzei-.js";import"./VWindowItem-CDtLLEkg.js";import"./VContainer-Cn-vKB3s.js";import"./VSheet-C3MaHhtw.js";import"./ChoiceField-DCr12shR.js";import"./VAlert-MDbeolOo.js";import"./AccountPasswordSubForm-PkFPblkR.js";import"./VFileInput-C7J_qVmk.js";const ae="identities",ve={getAll(){return Z.get(`${ae}/`)},exportAll(F){return Z.get(`/${ae}/export/`,{params:{type:F}})},importFromCSV(F){return Z.post(`/${ae}/import/`,F,{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(F,{emit:k}){const e=F,n=Se(F,"modelValue"),U=k,x=()=>{U("apply",n.value)};return n.value=e.columns.map(w=>w.key),(w,V)=>(p(),E(_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(F,{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),S=u([]),_=u(!1),i=u(""),m=u([]),L=u(!1),j=u(),B=u(),b=u(1),I=u(10),A=u([]),M=u(C),O=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,S.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);S.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)),O.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 B.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 Ee(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(),E(_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:S.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(Oe,{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=>O.value=!0)},null,8,["title"]),m.value.length>1?(p(),E(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(Ee(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(),E(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(),E(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(),E(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:Fe})=>[l(q,le(Fe,{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:B},{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:O.value,"onUpdate:modelValue":s[5]||(s[5]=a=>O.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(F,{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()),S=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 B(){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(),E(Ve,{ref_key:"form",ref:w,title:v(e)("New alias"),steps:S.value,"form-getter":m,"get-v-form-ref":L,"validate-object":j,"summary-sections":$.value,onClose:_,onCreate:B},{"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(F,{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}),S=u(),_=u(),i=u(),m=u(),L=u(),j={role:_,identification:i,mailbox:m,aliases:L};function B(){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 O(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{S.value.working=!1}}return w.getDomains(),(c,d)=>(p(),E(Ve,{ref_key:"form",ref:S,title:v(n)("New account"),steps:$.value,"form-getter":b,"get-v-form-ref":I,"validate-object":O,"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(),E(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(),E(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:B},{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(),E(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(F){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 S(){V.value=!1,h.value.fetchIdentities()}return(_,i)=>(p(),R("div",null,[l(ke,{flat:""},{default:t(()=>[l(Be,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:S},{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"])]))}},sa=ye(ct,[["__scopeId","data-v-76745e51"]]);export{sa as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as w,b as M,h as V,i as H,j as k,d as x,m as u,a as r,c as m,n as p,w as o,f as t,o as l,l as d,t as a,F as _,v as I,e as s}from"./index-jui3edpn.js";import{a as C}from"./admin-BW9cZW0P.js";import{V as N,a as B}from"./VToolbar-CB6wwtYc.js";import{a as g,c as f,V as v}from"./VCard-CBtX8JF-.js";import{V as T}from"./VAlert-MDbeolOo.js";import{V as A}from"./VDataTableVirtual-Csxh3Gp6.js";import"./tag-WF93n81Q.js";import"./VAvatar-CXV_FqpP.js";import"./VProgressCircular-DRw_-iNj.js";import"./VDataTable-CNT9KOSp.js";import"./VSelect-BcmGFGif.js";import"./VInput-BwHvhzAe.js";import"./VTextField-BPIvtrn4.js";import"./VMenu-BpmJf4X2.js";import"./ssrBoot-B7cr7q9U.js";import"./VCheckboxBtn-B0mIT3E0.js";import"./VSelectionControl-Cqi1xt-q.js";import"./events-BM3in65C.js";import"./VTable-f7wcr2AZ.js";import"./filter-Dihm6o59.js";const S={class:"mt-4"},D=["innerHTML"],G=["innerHTML"],E=["innerHTML"],F=["innerHTML"],O=["innerHTML"],j=["innerHTML"],P=["innerHTML"],R={tag:"p"},U={tag:"p",class:"text-body-2"},Y=["href"],$={__name:"InformationView",setup(q){const{$gettext:e}=M(),h=V(),c=H([]),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 x(()=>{C.getComponentsInformation().then(i=>{c.value=i.data})}),(i,z)=>(l(),u("div",null,[r(N,{flat:""},{default:o(()=>[r(B,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,I(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,j),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,P)],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",R,a(t(e)("One or more updates are available")),1),s("div",U,a(t(e)("Check out the following list to find related components")),1)]),_:1})):p("",!0),r(A,{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,Y)):(l(),u(_,{key:1},[d(a(n.last_version),1)],64))]),_:2},1032,["items"])]),_:1})]),_:1})]))}},_e=w($,[["__scopeId","data-v-f326fdcf"]]);export{_e as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as a,c as t,o,w as e,a as r}from"./index-
|
|
1
|
+
import{_ as a,c as t,o,w as e,a as r}from"./index-jui3edpn.js";import{V as s,a as c}from"./VRow-83Qnr5iB.js";import{V as i}from"./VProgressCircular-DRw_-iNj.js";import{V as n}from"./VContainer-Cn-vKB3s.js";const l={};function f(m,_){return o(),t(n,{class:"fill-height",fuild:""},{default:e(()=>[r(s,{align:"center",justify:"center",dense:""},{default:e(()=>[r(c,{cols:"12",sm:"12",md:"12",lg:"12",class:"text-center"},{default:e(()=>[r(i,{color:"primary",indeterminate:"",size:108})]),_:1})]),_:1})]),_:1})}const g=a(l,[["render",f]]);export{g as L};
|
modoboa/frontend_dist/assets/{LoginCallbackView-DjCHUgz5.js → LoginCallbackView-DAvty3CI.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as m,g as r,c as p,w as a,o as u,a as o,e as f,t as _}from"./index-
|
|
1
|
+
import{u as m,g as r,c as p,w as a,o as u,a as o,e as f,t as _}from"./index-jui3edpn.js";import{u as d}from"./theme-_0oOYChG.js";import{V as g}from"./VContainer-Cn-vKB3s.js";import{V as h,a as V}from"./VRow-83Qnr5iB.js";import{V as w}from"./VProgressCircular-DRw_-iNj.js";/* empty css */import"./tag-WF93n81Q.js";const y={class:"ma-5"},N={__name:"LoginCallbackView",props:{redirectUrl:String},async setup(s){let t,e;const i=s,c=m(),{enableTheme:n}=d();return[t,e]=r(()=>c.completeLogin(i.redirectUrl)),await t,e(),[t,e]=r(()=>n()),await t,e(),(l,C)=>(u(),p(g,{class:"fill-height",fluid:""},{default:a(()=>[o(h,{align:"center",justify:"center"},{default:a(()=>[o(V,{cols:"auto",class:"text-center"},{default:a(()=>[f("h1",y,_(l.$gettext("Attempting to log you in.")),1),o(w,{color:"primary",indeterminate:"",size:128,width:12,"align-self":"center"})]),_:1})]),_:1})]),_:1}))}};export{N as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as s,b as r,d as i,c as n,o as c,w as t,a as e,e as l,t as u,f as m}from"./index-
|
|
1
|
+
import{u as s,b as r,d as i,c as n,o as c,w as t,a as e,e as l,t as u,f as m}from"./index-jui3edpn.js";import{V as f,a as p}from"./VRow-83Qnr5iB.js";import{V as _}from"./VProgressCircular-DRw_-iNj.js";import{V as d}from"./VContainer-Cn-vKB3s.js";/* empty css */import"./tag-WF93n81Q.js";const g={class:"ma-5"},A={__name:"LoginView",setup(V){const a=s(),{$gettext:o}=r();return i(()=>a.login()),(h,x)=>(c(),n(d,{class:"fill-height",fluid:""},{default:t(()=>[e(f,{align:"center",justify:"center"},{default:t(()=>[e(p,{cols:"auto",class:"text-center"},{default:t(()=>[l("h1",g,u(m(o)("Attempting to log you in.")),1),e(_,{color:"primary",indeterminate:"",size:128,width:12,"align-self":"center"})]),_:1})]),_:1})]),_:1}))}};export{A as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.v-card-text[data-v-fc1b4878]{padding:0}.emails[data-v-fc1b4878]{margin-top:150px}.clickable[data-v-fc1b4878]{cursor:pointer}.scheduling-top[data-v-fc1b4878]{top:45px}.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%)}}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{j as J,m as u,o as n,v as oe,F as M,n as x,t as p,J as Ve,K as we,af as Ce,L as $e,aj as Me,e as v,x as ne,ag as Ee,z as X,_ as Ae,b as Le,p as Be,i as b,C as Te,d as De,$ as Ie,A as F,a as o,c as g,w as c,aW as ze,f as m,l as Ne,s as je,D as Q}from"./index-jui3edpn.js";import{_ as Fe}from"./EmailSchedulingForm-CQL5Vfdr.js";import{_ as Ue}from"./MenuItems-C9p70bSC.js";import{a as y}from"./webmail-CYDXU0DS.js";import{V as Je}from"./VToolbar-CB6wwtYc.js";import{V as Y}from"./VCheckbox-zY1MApOy.js";import{V as Pe}from"./VTextField-BPIvtrn4.js";import{l as Oe,p as Re,V,c as U}from"./VAvatar-CXV_FqpP.js";import{V as Z,a as qe,b as D}from"./VMenu-BpmJf4X2.js";import{V as ee}from"./VSpacer-CuSkdJZL.js";import{a as W,V as Ke}from"./VCard-CBtX8JF-.js";import{a as We}from"./VProgressCircular-DRw_-iNj.js";import{a as Xe,u as Ge,m as He}from"./tag-WF93n81Q.js";import{V as te}from"./VAlert-MDbeolOo.js";import{V as ae}from"./VDialog-lKtBdqnp.js";import{u as Qe}from"./webmail.store-BvHCQSjM.js";import"./VForm-fdQ5d-CH.js";import"./VInput-BwHvhzAe.js";import"./VDatePicker-iFu13xIP.js";import"./VBadge-7tDx7aI3.js";import"./VPicker-BZho70wU.js";import"./VSheet-C3MaHhtw.js";import"./VCheckboxBtn-B0mIT3E0.js";import"./VSelectionControl-Cqi1xt-q.js";import"./ssrBoot-B7cr7q9U.js";/* empty css */const Ye=["title"],Ze={key:1},et={key:2},tt={key:3},at={__name:"EmailAddressList",props:{addresses:{type:Array,default:null}},setup(s){const i=s,t=J(()=>i.addresses.length>2?i.addresses.slice(0,2):i.addresses);return(C,_)=>(n(!0),u(M,null,oe(t.value,(f,r)=>(n(),u(M,{key:f},[f.name?(n(),u("span",{key:0,title:f.address},p(f.name),9,Ye)):(n(),u("span",Ze,p(f.address),1)),r<t.value.length-1?(n(),u("span",et,", ")):t.value.length<i.addresses.length?(n(),u("span",tt,", ...")):x("",!0)],64))),128))}},lt={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 st(s){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return v("div",{class:X(["v-skeleton-loader__bone",`v-skeleton-loader__${s}`])},[i])}function le(s){const[i,t]=s.split("@");return Array.from({length:t}).map(()=>P(i))}function P(s){let i=[];if(!s)return i;const t=lt[s];if(s!==t){if(s.includes(","))return se(s);if(s.includes("@"))return le(s);t.includes(",")?i=se(t):t.includes("@")?i=le(t):t&&i.push(P(t))}return[st(s,i)]}function se(s){return s.replace(/\s/g,"").split(",").map(P)}const ot=we({boilerplate:Boolean,color:String,loading:Boolean,loadingText:{type:String,default:"$vuetify.loading"},type:{type:[String,Array],default:"ossein"},...He(),...Re(),...Ee()},"VSkeletonLoader"),nt=Ve()({name:"VSkeletonLoader",inheritAttrs:!1,props:ot(),setup(s,i){let{attrs:t,slots:C}=i;const{backgroundColorClasses:_,backgroundColorStyles:f}=We(()=>s.color),{dimensionStyles:r}=Xe(s),{elevationClasses:O}=Oe(s),{themeClasses:R}=Ce(s),{t:L}=$e(),w=J(()=>P(Me(s.type).join(",")));return Ge(()=>{var B;const d=!C.default||s.loading,E=s.boilerplate||!d?{}:{ariaLive:"polite",ariaLabel:L(s.loadingText),role:"alert"};return d?v("div",ne({class:["v-skeleton-loader",{"v-skeleton-loader--boilerplate":s.boilerplate},R.value,_.value,O.value],style:[f.value,r.value]},E,t),[w.value]):v(M,null,[(B=C.default)==null?void 0:B.call(C)])}),{}}}),it={key:2,class:"d-flex align-center"},rt={class:"text-caption mr-2"},dt=["onClick"],ut={class:"mt-1 text-grey"},ct={class:"text-right"},mt={key:0},vt=["onClick"],gt={class:"mt-1"},pt={class:"text-grey"},ft={__name:"EmailList",props:{mailbox:{type:String,default:"INBOX"}},setup(s){const i=s,{$gettext:t,$ngettext:C}=Le(),{displayNotification:_,reloadMailboxCounters:f}=Be(),r=Qe(),O=je(),R=Te(),L=b(null),w=b(!1),d=b({}),E=b(1),B=b(""),q=b(""),I=b(!1),z=b(!1),N=b(!1),h=b(!1);let G=null;const A=J(()=>R.query.mailbox||"INBOX"),S=J(()=>i.mailbox==="Scheduled"),ie=()=>[{label:t("Reschedule"),icon:"mdi-send-clock-outline",onClick:ue},{label:t("Delete"),icon:"mdi-delete-outline",onClick:ve,color:"red"}],re=a=>S.value?a.recipients:[a.from_address],H=a=>S.value?a.scheduled_datetime:a.date,de=a=>!S.value||!a.scheduled_datetime_raw?!1:Q.fromISO(a.scheduled_datetime_raw)<Q.now(),ue=a=>{L.value=a,N.value=!0},ce=async a=>{const e={scheduled_datetime:a};await y.updateScheduledMessage(L.value.scheduled_id,e),k(),_({msg:t("Scheduling updated")})},me=()=>{N.value=!1},ve=async a=>{await y.deleteScheduledMessage(a.scheduled_id),k(),_({msg:t("Scheduled canceled and message moved to trash folder")})},ge=async a=>{const e=await y.getScheduledMessage(a.scheduled_id);B.value=e.data.error,z.value=!0},pe=a=>{O.push({name:"EmailView",query:{mailbox:i.mailbox,mailid:a}})},k=()=>{d.value={},w.value=!0,y.getMailboxEmails(i.mailbox,{page:E.value,search:q.value}).then(a=>{d.value=a.data,w.value=!1}).catch(()=>{w.value=!1})},K=()=>{k()},fe=()=>{k()},he=a=>{a?r.selection=d.value.results.map(e=>e.imapid):r.selection=[]},ke=()=>{r.selection.length&&(h.value=!0,y.deleteSelection(A.value,r.selection).then(()=>{h.value=!1,_({msg:t("Message(s) deleted")}),k(),f()}))},be=()=>{r.selection.length&&(h.value=!0,y.markSelectionAsJunk(A.value,r.selection).then(()=>{h.value=!1,_({msg:t("Message(s) marked as junk")}),K()}))},ye=()=>{r.selection.length&&(h.value=!0,y.markSelectionAsNotJunk(A.value,r.selection).then(()=>{h.value=!1,_({msg:t("Message(s) marked as not junk")}),K()}))},j=a=>{r.selection.length&&(h.value=!0,y.flagSelection(A.value,r.selection,a).then(()=>{h.value=!1,r.selection=[],_({msg:t("Message(s) flagged")}),k(),f()}))},xe=()=>{w.value=!0,y.emptyUserMailbox(A.value).then(()=>{d.value={},w.value=!1,f()})},_e=async a=>{const e=a.flagged?"unflagged":"flagged";await y.flagSelection(A.value,[a.imapid],e),a.flagged=e==="flagged"},Se=a=>{r.selection.includes(a.imapid)||(r.selection=[a.imapid]);const e=document.createElement("div"),T=r.selection.length||0,l=C("%{count} message","%{count} messages",T,{count:T});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 De(()=>{G=setInterval(K,300*1e3)}),Ie(()=>{clearInterval(G)}),F(()=>i.mailbox,()=>{k()},{immediate:!0}),F(()=>r.selection,()=>{r.selection.length?I.value=!0:I.value=!1}),F(()=>r.listingKey,()=>{k()}),F(E,()=>{k()}),(a,e)=>{var T;return n(),u(M,null,[o(W,{class:"mt-6 mb-2 mx-1"},{default:c(()=>[o(Je,{color:"white",flat:""},{default:c(()=>[o(Y,{modelValue:I.value,"onUpdate:modelValue":[e[0]||(e[0]=l=>I.value=l),he],class:"mr-4","hide-details":"",color:"primary"},null,8,["modelValue"]),o(Pe,{modelValue:q.value,"onUpdate:modelValue":e[1]||(e[1]=l=>q.value=l),"prepend-inner-icon":"mdi-magnify",placeholder:m(t)("Search in messages"),variant:"outlined","single-line":"",flat:"","hide-details":"",density:"compact",class:"flex-grow-0 w-33 mr-4",clearable:"","onClick:clear":k,onKeyup:ze(fe,["enter"])},null,8,["modelValue","placeholder"]),S.value?x("",!0):(n(),g(V,{key:0,class:"ml-2",color:"error",variant:"tonal",icon:"mdi-trash-can",size:"small",loading:h.value,onClick:ke},null,8,["loading"])),S.value?x("",!0):(n(),u(M,{key:1},[a.$route.params.mailbox!=="Junk"?(n(),g(V,{key:0,class:"ml-2",color:"warning",variant:"tonal",icon:"mdi-fire",size:"small",loading:h.value,onClick:be},null,8,["loading"])):(n(),g(V,{key:1,class:"ml-2",color:"success",variant:"tonal",icon:"mdi-thumb-up",size:"small",loading:h.value,onClick:ye},null,8,["loading"]))],64)),o(V,{class:"ml-2",variant:"tonal",icon:"",size:"small"},{default:c(()=>[o(U,{icon:"mdi-cog"}),o(Z,{activator:"parent"},{default:c(()=>[o(qe,{density:"compact"},{default:c(()=>[o(D,{title:m(t)("Mark as read"),"prepend-icon":"mdi-eye",onClick:e[2]||(e[2]=()=>j("read"))},null,8,["title"]),o(D,{title:m(t)("Mark as unread"),"prepend-icon":"mdi-eye-outline",onClick:e[3]||(e[3]=()=>j("unread"))},null,8,["title"]),o(D,{title:m(t)("Mark as followed"),"prepend-icon":"mdi-star",onClick:e[4]||(e[4]=()=>j("flagged"))},null,8,["title"]),o(D,{title:m(t)("Mark as unfollowed"),"prepend-icon":"mdi-star-outline",onClick:e[5]||(e[5]=()=>j("unflagged"))},null,8,["title"]),a.$route.query.mailbox==="Trash"?(n(),g(D,{key:0,title:m(t)("Empty mailbox"),"prepend-icon":"mdi-trash-can",onClick:xe},null,8,["title"])):x("",!0)]),_:1})]),_:1})]),_:1}),o(ee),d.value.results?(n(),u("div",it,[v("div",rt,p(d.value.first_index)+"-"+p(d.value.last_index)+" "+p(m(t)("on"))+" "+p(d.value.count),1),v("div",null,[o(V,{icon:"mdi-chevron-left",size:"x-small",disabled:d.value.prev_page===null,onClick:e[6]||(e[6]=l=>E.value=d.value.prev_page)},null,8,["disabled"]),o(V,{icon:"mdi-chevron-right",size:"x-small",disabled:d.value.next_page===null,onClick:e[7]||(e[7]=l=>E.value=d.value.next_page)},null,8,["disabled"])])])):x("",!0)]),_:1})]),_:1}),w.value?(n(),g(nt,{key:0,type:"card@2"})):(n(),u(M,{key:1},[S.value?(n(),g(te,{key:0,type:"info",variant:"tonal",density:"compact",class:"mx-1"},{default:c(()=>[Ne(p(m(t)("Scheduled messages will be sent at the specified date and time. (visible on the right)")),1)]),_:1})):x("",!0),v("div",{class:X(["emails position-absolute bottom-0 w-100 overflow-y-auto",{"top-0":!S.value,"scheduling-top":S.value}])},[(T=d.value.results)!=null&&T.length?(n(!0),u(M,{key:0},oe(d.value.results,l=>(n(),g(W,{key:l.imapid,density:"compact",class:"mb-2 mx-1",draggable:"true",onDragstart:$=>Se(l)},{default:c(()=>[o(Ke,{class:X(["d-flex align-center",{"font-weight-bold":l.style==="unseen"}])},{default:c(()=>[o(Y,{modelValue:m(r).selection,"onUpdate:modelValue":e[8]||(e[8]=$=>m(r).selection=$),value:l.imapid,color:"primary","hide-details":""},null,8,["modelValue","value"]),o(V,{icon:l.flagged?"mdi-star":"mdi-star-outline",variant:"flat",onClick:$=>_e(l)},null,8,["icon","onClick"]),S.value?(n(),g(Z,{key:0,location:"bottom"},{activator:c(({props:$})=>[o(V,ne({icon:"mdi-dots-vertical"},{ref_for:!0},$,{size:"small",variant:"text"}),null,16)]),default:c(()=>[o(Ue,{items:ie(),obj:l},null,8,["items","obj"])]),_:2},1024)):x("",!0),v("div",{class:"ml-4 clickable",onClick:$=>pe(l.imapid)},[v("div",null,p(l.subject),1),v("div",ut,[o(at,{addresses:re(l)},null,8,["addresses"])])],8,dt),o(ee),v("div",ct,[de(l)?(n(),u("div",{key:1,class:"text-error font-weight-bold",style:{cursor:"pointer"},onClick:$=>ge(l)},p(H(l)),9,vt)):(n(),u("div",mt,p(H(l)),1)),v("div",gt,[l.answered?(n(),g(U,{key:0,icon:"mdi-reply-outline"})):x("",!0),l.forwarded?(n(),g(U,{key:1,icon:"mdi-share-outline"})):x("",!0),l.attachments?(n(),g(U,{key:2,icon:"mdi-paperclip"})):x("",!0),v("span",pt,p(a.$filesize(l.size)),1)])])]),_:2},1032,["class"])]),_:2},1032,["onDragstart"]))),128)):(n(),g(te,{key:1,class:"mt-4",type:"info",text:m(t)("No message yet in this mailbox"),variant:"tonal"},null,8,["text"]))],2),o(ae,{modelValue:N.value,"onUpdate:modelValue":e[9]||(e[9]=l=>N.value=l),"max-width":"800"},{default:c(()=>[o(Fe,{"initial-date":L.value.scheduled_datetime_raw,onSchedule:ce,onClose:me},null,8,["initial-date"])]),_:1},8,["modelValue"]),o(ae,{modelValue:z.value,"onUpdate:modelValue":e[11]||(e[11]=l=>z.value=l),"max-width":"400"},{default:c(()=>[o(W,{"max-width":"400",text:B.value,title:m(t)("Sending failure")},{":actions":c(()=>[o(V,{class:"ms-auto",text:m(t)("Close"),onClick:e[10]||(e[10]=l=>z.value=!1)},null,8,["text"])]),_:1},8,["text","title"])]),_:1},8,["modelValue"])],64))],64)}}},ht=Ae(ft,[["__scopeId","data-v-fc1b4878"]]),kt={class:"position-relative h-100"},bt={class:"text-h5 ml-4"},Kt={__name:"MailboxView",setup(s){return(i,t)=>(n(),u("div",kt,[v("div",bt,p(i.$gettext("Webmail")),1),o(ht,{mailbox:i.$route.query.mailbox||"INBOX"},null,8,["mailbox"])]))}};export{Kt as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as s,c as n,a as i}from"./VMenu-BpmJf4X2.js";import{c as u}from"./VAvatar-CXV_FqpP.js";import{c,o as a,w as t,m,F as p,v as d,a as l,l as f,t as _}from"./index-jui3edpn.js";const x={__name:"MenuItems",props:{items:{type:Object,default:()=>{}},obj:{type:Object,default:()=>{}}},setup(o){return(k,b)=>(a(),c(i,{density:"compact"},{default:t(()=>[(a(!0),m(p,null,d(o.items,(e,r)=>(a(),c(s,{key:r,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(_(e.label),1)]),_:2},1024)]),_:2},1032,["value","onClick"]))),128))]),_:1}))}};export{x as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as j,u as P,
|
|
1
|
+
import{b as j,u as P,p as W,i as p,j as x,C as J,g as A,m as f,e as b,a as s,t as _,f as u,c as y,n as M,w as n,F as R,v as H,s as K,o as r,l as B,k as E}from"./index-jui3edpn.js";import{u as O}from"./amavis-BbFeFfsk.js";import{_ as X}from"./ConfirmDialog-CWpdwSQ6.js";import{a as h}from"./amavis-DtuzP_CS.js";import{V as Y}from"./VToolbar-CB6wwtYc.js";import{V as Z}from"./VAlert-MDbeolOo.js";import{V as k,c as ee}from"./VAvatar-CXV_FqpP.js";import{V as ae,a as te,b as N}from"./VMenu-BpmJf4X2.js";import{a as z,V as se}from"./VRow-83Qnr5iB.js";import{a as le,V as ie}from"./VRadioGroup--eiP5xtJ.js";import"./permissions-CrpE0b4w.js";import"./parameters-DMIAQ7cd.js";import"./VCard-CBtX8JF-.js";import"./tag-WF93n81Q.js";import"./VSpacer-CuSkdJZL.js";/* empty css */import"./VDialog-lKtBdqnp.js";import"./VProgressCircular-DRw_-iNj.js";import"./ssrBoot-B7cr7q9U.js";import"./VSelectionControl-Cqi1xt-q.js";import"./VInput-BwHvhzAe.js";const re={class:"text-h5 ml-4"},ne={class:"bg-white rounded-lg pa-4 position-relative mt-6 h-100"},oe={key:0},ue={key:1},me={class:"pa-4 bg-grey-lighten-3 rounded"},ce=["innerHTML"],Ee={__name:"MessageView",async setup(de){let o,V;const e=J(),C=K(),{$gettext:t}=j(),q=P(),{displayNotification:w}=W(),m=p(null),v=p(null),L=p(null),i=p(!1),c=p(null),U=x(()=>m.value?m.value:c.value.headers),d=x(()=>{var a;return((a=e.query)==null?void 0:a.secret_id)!==void 0});if(d.value)p(!1);else{const{manualLearningEnabled:a}=([o,V]=A(()=>O()),o=await o,V(),o)}const D=()=>{C.go(-1)},T=async()=>{if(m.value){m.value=null;return}i.value=!0;try{const a=await h.getMessageHeaders(e.params.mailid,e.params.rcpt,e.query.secret_id);m.value=a.data.headers}finally{i.value=!1}},F=async()=>{i.value=!0;const a={rcpt:e.params.rcpt,mailid:e.params.mailid};d.value&&(a.secret_id=e.query.secret_id);try{(await h.releaseMessage(e.params.mailid,a)).data.status==="pending"?w({msg:t("Release request sent")}):w({msg:t("Message released")})}finally{i.value=!1}},I=async()=>{i.value=!0;const a={rcpt:e.params.rcpt,mailid:e.params.mailid};d.value&&(a.secret_id=e.query.secret_id);try{await h.deleteMessage(e.params.mailid,a),w({msg:t("Message deleted")}),d.value||C.push({name:"QuarantineView"})}finally{i.value=!1}},S=async(a,g)=>{manualLearningEnabled.value&&q.authUser.role!==E.USER&&(v.value=q.authUser.role===E.SUPER_ADMIN?"global":"domain",await L.value.open(t("Learning database"),t("Which database should be used for this learning:"),{width:600,noconfirm:!0})),i.value=!0;const l={type:a,selection:[{rcpt:e.params.rcpt,mailid:e.params.mailid}]};v.value&&(l.database=v.value);try{await h.markMessageSelection(l),w({msg:g})}finally{i.value=!1}},G=async()=>{await S("spam",t("Message marked as spam"))},Q=async()=>{await S("ham",t("Message marked as non-spam"))},$=([o,V]=A(()=>h.getMessageContent(e.params.mailid,e.params.rcpt,e.query.secret_id)),o=await o,V(),o);return c.value=$.data,(a,g)=>(r(),f("div",null,[b("div",re,_(u(t)("Quarantined message")),1),b("div",ne,[s(Y,{color:"white"},{default:n(()=>[d.value?M("",!0):(r(),y(k,{key:0,icon:"mdi-arrow-left",size:"small",variant:"flat",onClick:D})),s(k,{class:"ml-2",color:"success",variant:"tonal",icon:"mdi-check",size:"small",title:u(t)("Release message"),loading:i.value,onClick:F},null,8,["title","loading"]),s(k,{class:"ml-2",color:"error",variant:"tonal",icon:"mdi-trash-can",size:"small",title:u(t)("Delete message"),loading:i.value,onClick:I},null,8,["title","loading"]),d.value?M("",!0):(r(),f(R,{key:1},[a.manualLearningEnabled?(r(),y(k,{key:0,class:"ml-2",variant:"tonal",icon:"",size:"small"},{default:n(()=>[s(ee,{icon:"mdi-cog"}),s(ae,{activator:"parent"},{default:n(()=>[s(te,{density:"compact"},{default:n(()=>[s(N,{title:u(t)("Mark as spam"),onClick:G},null,8,["title"]),s(N,{title:u(t)("Mark as non-spam"),onClick:Q},null,8,["title"])]),_:1})]),_:1})]),_:1})):M("",!0)],64)),s(k,{class:"ml-2",variant:"tonal",size:"small",loading:i.value,onClick:T},{default:n(()=>[m.value?(r(),f("span",ue,_(u(t)("Hide full headers")),1)):(r(),f("span",oe,_(u(t)("View full headers")),1))]),_:1},8,["loading"])]),_:1}),c.value.qtype?(r(),y(Z,{key:0,title:c.value.qtype,text:c.value.qreason,type:"error",variant:"tonal",class:"mb-4",density:"compact"},null,8,["title","text"])):M("",!0),b("div",me,[(r(!0),f(R,null,H(U.value,l=>(r(),y(se,{key:l.name,"no-gutters":""},{default:n(()=>[s(z,{cols:"2",class:"font-weight-bold"},{default:n(()=>[B(_(l.name),1)]),_:2},1024),s(z,{cols:"10"},{default:n(()=>[B(_(l.value),1)]),_:2},1024)]),_:2},1024))),128))]),b("div",{class:"mt-4",innerHTML:c.value.body},null,8,ce)]),s(u(X),{ref_key:"learningRecipientRef",ref:L},{default:n(()=>[s(le,{modelValue:v.value,"onUpdate:modelValue":g[0]||(g[0]=l=>v.value=l),class:"mt-4","hide-details":""},{default:n(()=>[(r(!0),f(R,null,H(a.learningRecipients,l=>(r(),y(ie,{key:l.value,value:l.value,label:l.title},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1},512)]))}};export{Ee as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as T,i as l,c as b,w as a,a as s,e as M,t as m,l as g,f as h,o as v,_ as $,m as D,F}from"./index-jui3edpn.js";import{l as S}from"./logs-CLm32Weu.js";import{d as N}from"./index-Dv00bmw9.js";import{V,a as B}from"./VToolbar-CB6wwtYc.js";import{V as C}from"./VTextField-BPIvtrn4.js";import{V as I}from"./VDataTableServer-_yn4Ry6U.js";import{a as P}from"./VCard-CBtX8JF-.js";import"./tag-WF93n81Q.js";import"./VAvatar-CXV_FqpP.js";import"./VProgressCircular-DRw_-iNj.js";import"./VInput-BwHvhzAe.js";import"./VMenu-BpmJf4X2.js";import"./ssrBoot-B7cr7q9U.js";import"./VDataTable-CNT9KOSp.js";import"./VSelect-BcmGFGif.js";import"./VCheckboxBtn-B0mIT3E0.js";import"./VSelectionControl-Cqi1xt-q.js";import"./events-BM3in65C.js";import"./VTable-f7wcr2AZ.js";import"./filter-Dihm6o59.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))}},re=$(z,[["__scopeId","data-v-9c91b6c8"]]);export{re as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{E as f,b as C,p as j,i as n,g as E,r as I,c as L,o as T,w as o,a as t,f as _,x as y,l as V,t as x,_ as P,m as q}from"./index-jui3edpn.js";import{_ as F}from"./MenuItems-C9p70bSC.js";import{V as G}from"./VDataTable-CNT9KOSp.js";import{V as $,a as O}from"./VMenu-BpmJf4X2.js";import{V as g}from"./VAvatar-CXV_FqpP.js";import{V as A,a as H}from"./VToolbar-CB6wwtYc.js";import{V as J}from"./VTextField-BPIvtrn4.js";import{V as B}from"./VSpacer-CuSkdJZL.js";import{a as K}from"./VCard-CBtX8JF-.js";import"./tag-WF93n81Q.js";import"./VProgressCircular-DRw_-iNj.js";import"./VSelect-BcmGFGif.js";import"./VInput-BwHvhzAe.js";import"./VCheckboxBtn-B0mIT3E0.js";import"./VSelectionControl-Cqi1xt-q.js";import"./events-BM3in65C.js";import"./VTable-f7wcr2AZ.js";import"./filter-Dihm6o59.js";import"./ssrBoot-B7cr7q9U.js";/* empty css */const v="migrations",k={getMigrations(l){return f.get(`/${v}/`,{params:l})},getMigration(l,s){return f.get(`/${v}/${l}/`,s)},deleteMigration(l){return f.delete(`/${v}/${l}/`)}},Q={__name:"MigrationsList",async setup(l){let s,u;const{$gettext:i}=C(),S=j(),m=n([]),D=[{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:"end"}],b=n([]),c=n(!1),d=n(""),M=n({}),h=n(0);function N(r){k.deleteMigration(r.id).then(()=>{S.displayNotification({msg:i("Migration deleted")}),m.value=m.value.filter(a=>a.id!==r.id)})}async function w(r){c.value=!0;let a={};try{const p=await k.getMigrations(a);m.value=p.data,h.value=m.value.length}finally{c.value=!1}}function z(){const r=[];return r.push({label:i("Delete"),icon:"mdi-delete-outline",onClick:N,color:"red"}),r}return[s,u]=E(()=>w()),await s,u(),(r,a)=>{const p=I("router-link");return T(),L(K,{class:"mt-6"},{default:o(()=>[t(G,{modelValue:b.value,"onUpdate:modelValue":a[2]||(a[2]=e=>b.value=e),options:M.value,"onUpdate:options":a[3]||(a[3]=e=>M.value=e),headers:D,items:m.value,search:d.value,"server-items-length":h.value,loading:c.value,"show-select":""},{top:o(()=>[t(A,{color:"white",flat:""},{default:o(()=>[t(J,{modelValue:d.value,"onUpdate:modelValue":a[0]||(a[0]=e=>d.value=e),"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"]),t($,{location:"bottom"},{activator:o(({props:e})=>[t(g,y(e,{variant:"flat","append-icon":"mdi-chevron-down",size:"small"}),{default:o(()=>[V(x(_(i)("Actions")),1)]),_:1},16)]),default:o(()=>[t(O,{density:"compact"})]),_:1}),t(g,{variant:"text",icon:"mdi-reload",onClick:a[1]||(a[1]=e=>w())}),t(B)]),_:1})]),"item.mailbox":o(({item:e})=>[t(p,{to:{name:"AccountDetail",params:{id:e.mailbox.user}}},{default:o(()=>[V(x(e.mailbox.full_address),1)]),_:2},1032,["to"])]),"item.actions":o(({item:e})=>[t($,{location:"bottom"},{activator:o(({props:U})=>[t(g,y({icon:"mdi-dots-horizontal"},U,{size:"small",variant:"text"}),null,16)]),default:o(()=>[t(_(F),{items:z(),obj:e},null,8,["items","obj"])]),_:2},1024)]),_:2},1032,["modelValue","options","items","search","server-items-length","loading"])]),_:1})}}},R={__name:"MigrationsView",setup(l){const{$gettext:s}=C();return(u,i)=>(T(),q("div",null,[t(A,{flat:""},{default:o(()=>[t(H,null,{default:o(()=>[V(x(_(s)("Migrations")),1)]),_:1}),t(B)]),_:1}),t(Q)]))}},vt=P(R,[["__scopeId","data-v-5f22702f"]]);export{vt as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as P,b as B,
|
|
1
|
+
import{_ as P,b as B,p as S,j as E,i as p,A as x,m as u,a as c,w as d,F as V,v as y,o as a,c as i,z as N,l as I,t as h,n as j,e as z,f as A}from"./index-jui3edpn.js";import{_ as L}from"./HtmlEditor-CyBl5wj2.js";import{V as O,a as W,b as $,c as D}from"./VTabs-y4wNP4im.js";import{V as G}from"./VAvatar-CXV_FqpP.js";import{V as H}from"./VContainer-Cn-vKB3s.js";import{a as M,V as q}from"./VCard-CBtX8JF-.js";import{V as J}from"./VSwitch-XumUl685.js";import{a as K}from"./VSelect-BcmGFGif.js";import{V as Q}from"./VTextarea-B6bGYcC3.js";import{V as R}from"./VColorPicker-BbCHvk6K.js";import{V as X}from"./VTextField-BPIvtrn4.js";const Y={key:0},Z={class:"m-label"},ee={__name:"ParametersForm",props:{app:{type:String,default:""},structure:{type:Array,default:null},values:{type:Object,default:null},saveFunction:{type:Function,default:null}},emits:["success"],setup(k,{emit:F}){const m=k,U=F,{$gettext:g}=B(),{displayNotification:_}=S(),b=E(()=>m.structure.filter(s=>w(s))),f=p(0),r=p({}),l=p({}),v=p([]);x(()=>m.values,s=>{s&&(l.value={...s})}),x(l,()=>{v.value=[]});function w(s){if(s.display==="")return!0;let n=!0;return s.display.split("&").forEach(o=>{let[e,t]=o.split("=");(t==="true"||t==="false")&&(t=t==="true"),n&=l.value[e]===t}),n}function C(s){return s.filter(n=>w(n))}async function T(){r.value={},v.value=[];try{await m.saveFunction(m.app,l.value),_({msg:g("Parameters updated")}),U("success",l.value)}catch(s){_({msg:g("Could not save parameters"),type:"error"}),r.value=s.response.data,Object.keys(r.value).forEach(n=>{for(let o=0;o<m.structure.length;o++)m.structure[o].parameters.filter(t=>t.name===n).length>0&&v.value.push(o)})}}return(s,n)=>(a(),u(V,null,[c(O,{modelValue:f.value,"onUpdate:modelValue":n[0]||(n[0]=o=>f.value=o),"bg-color":"white"},{default:d(()=>[(a(!0),u(V,null,y(b.value,(o,e)=>(a(),i($,{key:e,color:"primary",class:N(v.value.includes(e)?"error_tab":"")},{default:d(()=>[I(h(o.label),1)]),_:2},1032,["class"]))),128))]),_:1},8,["modelValue"]),c(W,{modelValue:f.value,"onUpdate:modelValue":n[1]||(n[1]=o=>f.value=o)},{default:d(()=>[(a(!0),u(V,null,y(b.value,o=>(a(),i(D,{key:o.label},{default:d(()=>[c(H,{fluid:"",class:"pa-0"},{default:d(()=>[c(M,null,{default:d(()=>[c(q,null,{default:d(()=>[(a(!0),u(V,null,y(C(o.parameters),e=>(a(),u("div",{key:e.name,class:"my-4"},[e.widget==="SeparatorField"?(a(),u("h2",Y,h(e.label),1)):e.widget==="BooleanField"?(a(),u(V,{key:1},[e.widget==="BooleanField"?(a(),i(J,{key:0,modelValue:l.value[e.name],"onUpdate:modelValue":t=>l.value[e.name]=t,label:e.label,hint:e.help_text,error:r.value[e.name]!==void 0,color:"primary",density:"compact","error-messages":r.value[e.name],"persistent-hint":""},null,8,["modelValue","onUpdate:modelValue","label","hint","error","error-messages"])):j("",!0)],64)):(a(),u(V,{key:2},[z("label",Z,h(e.label),1),e.widget==="ChoiceField"?(a(),i(K,{key:0,modelValue:l.value[e.name],"onUpdate:modelValue":t=>l.value[e.name]=t,items:e.choices,"item-title":"text",hint:e.help_text,"persistent-hint":"",density:"compact",variant:"outlined"},null,8,["modelValue","onUpdate:modelValue","items","hint"])):e.widget==="TextareaField"?(a(),i(Q,{key:1,modelValue:l.value[e.name],"onUpdate:modelValue":t=>l.value[e.name]=t,hint:e.help_text,"persistent-hint":"",error:r.value[e.name]!==void 0,"error-messages":r.value[e.name],type:e.widget==="PasswordField"?"password":"text",density:"compact",variant:"outlined"},null,8,["modelValue","onUpdate:modelValue","hint","error","error-messages","type"])):e.widget==="HTMLField"?(a(),i(A(L),{key:2,modelValue:l.value[e.name],"onUpdate:modelValue":t=>l.value[e.name]=t},null,8,["modelValue","onUpdate:modelValue"])):e.widget==="ColorPicker"?(a(),i(R,{key:3,modelValue:l.value[e.name],"onUpdate:modelValue":t=>l.value[e.name]=t,mode:"hexa",hint:e.help_text,"persistent-hint":"",error:r.value[e.name]!==void 0,"error-messages":r.value[e.name],density:"compact",variant:"outlined"},null,8,["modelValue","onUpdate:modelValue","hint","error","error-messages"])):(a(),i(X,{key:4,modelValue:l.value[e.name],"onUpdate:modelValue":t=>l.value[e.name]=t,hint:e.help_text,"persistent-hint":"",error:r.value[e.name]!==void 0,"error-messages":r.value[e.name],type:e.widget==="PasswordField"?"password":"text",density:"compact",variant:"outlined"},null,8,["modelValue","onUpdate:modelValue","hint","error","error-messages","type"]))],64))]))),128))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1},8,["modelValue"]),c(G,{icon:"mdi-content-save",class:"ma-5",position:"fixed",location:"bottom right",color:"green",size:"large",onClick:T})],64))}},ce=P(ee,[["__scopeId","data-v-c6f18df9"]]);export{ce as P};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as v,b as _,i as e,j as d,A as V,C as x,m as b,a as r,w as u,f as c,o as g,l as h,t as w}from"./index-jui3edpn.js";import{P as A}from"./ParametersForm-DFKYkPAs.js";import{p as o}from"./parameters-DMIAQ7cd.js";import{V as P,a as T}from"./VToolbar-CB6wwtYc.js";import"./HtmlEditor-CyBl5wj2.js";import"./VAvatar-CXV_FqpP.js";import"./tag-WF93n81Q.js";import"./VProgressCircular-DRw_-iNj.js";import"./VMenu-BpmJf4X2.js";import"./ssrBoot-B7cr7q9U.js";import"./VTabs-y4wNP4im.js";import"./VWindowItem-CDtLLEkg.js";import"./VSelect-BcmGFGif.js";import"./VInput-BwHvhzAe.js";import"./VTextField-BPIvtrn4.js";import"./VCheckboxBtn-B0mIT3E0.js";import"./VSelectionControl-Cqi1xt-q.js";import"./VContainer-Cn-vKB3s.js";/* empty css */import"./VCard-CBtX8JF-.js";import"./VSwitch-XumUl685.js";import"./VTextarea-B6bGYcC3.js";import"./VColorPicker-BbCHvk6K.js";import"./colors-DoZdCu1D.js";import"./VPicker-BZho70wU.js";import"./VSheet-C3MaHhtw.js";const S={__name:"ParametersView",setup(U){const{$gettext:n}=_(),p=x(),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)=>(g(),b("div",null,[r(P,{flat:""},{default:u(()=>[r(T,null,{default:u(()=>[h(w(f.value),1)]),_:1})]),_:1}),r(c(A),{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(S,[["__scopeId","data-v-3e7380ff"]]);export{tt as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as g,b as S,h,i as o,j as V,A as P,C as w,m as x,a as l,c as A,w as u,f as n,o as c,l as G,t as k}from"./index-jui3edpn.js";import{p as r}from"./parameters-DMIAQ7cd.js";import{P as T}from"./ParametersForm-DFKYkPAs.js";import{V as B,a as N}from"./VToolbar-CB6wwtYc.js";import{u as $}from"./parameters.store-DLnFzCwV.js";import"./HtmlEditor-CyBl5wj2.js";import"./VAvatar-CXV_FqpP.js";import"./tag-WF93n81Q.js";import"./VProgressCircular-DRw_-iNj.js";import"./VMenu-BpmJf4X2.js";import"./ssrBoot-B7cr7q9U.js";import"./VTabs-y4wNP4im.js";import"./VWindowItem-CDtLLEkg.js";import"./VSelect-BcmGFGif.js";import"./VInput-BwHvhzAe.js";import"./VTextField-BPIvtrn4.js";import"./VCheckboxBtn-B0mIT3E0.js";import"./VSelectionControl-Cqi1xt-q.js";import"./VContainer-Cn-vKB3s.js";/* empty css */import"./VCard-CBtX8JF-.js";import"./VSwitch-XumUl685.js";import"./VTextarea-B6bGYcC3.js";import"./VColorPicker-BbCHvk6K.js";import"./colors-DoZdCu1D.js";import"./VPicker-BZho70wU.js";import"./VSheet-C3MaHhtw.js";const y={__name:"ParametersView",setup(C){const{$gettext:f}=S(),d=h(),e=w(),_=$(),p=o([]),s=o({}),i=o(""),v=V(()=>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 P(e,t=>{m(t.params.app)}),m(e.params.app),(t,a)=>(c(),x("div",null,[l(B,{flat:""},{default:u(()=>[l(N,null,{default:u(()=>[G(k(v.value),1)]),_:1})]),_:1}),(c(),A(n(T),{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"]))]))}},it=g(y,[["__scopeId","data-v-53ef9637"]]);export{it as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{u as R,a as T,_ as A,p as B}from"./ProviderGeneralForm-DO-IpJMQ.js";import{b as C,p as U,s as j,i as v,A as D,m as w,o as i,a,e as k,w as e,l as u,t as n,f as d,c as y,F as G,C as I}from"./index-jui3edpn.js";import{d as h,V as F}from"./VAvatar-CXV_FqpP.js";import{V as $,c as E,a as N,b as L}from"./VExpansionPanels-CaIvk9iF.js";import{V as g,a as m}from"./VRow-83Qnr5iB.js";import"./VTextField-BPIvtrn4.js";import"./tag-WF93n81Q.js";import"./VInput-BwHvhzAe.js";import"./VProgressCircular-DRw_-iNj.js";import"./VMenu-BpmJf4X2.js";import"./ssrBoot-B7cr7q9U.js";import"./VAutocomplete-CQsWYWNX.js";import"./VSelect-BcmGFGif.js";import"./VCheckboxBtn-B0mIT3E0.js";import"./VSelectionControl-Cqi1xt-q.js";import"./filter-Dihm6o59.js";import"./VForm-fdQ5d-CH.js";import"./VSpacer-CuSkdJZL.js";/* empty css */import"./domains.store-1U61jeCV.js";import"./domains-Du64lcXT.js";import"./VSwitch-XumUl685.js";const O={key:0},q={key:0},z={class:"mt-4 d-flex justify-end"},H={__name:"ProviderForm",props:{provider:{type:Object,default:null}},setup(P){const x=P,{$gettext:l}=C(),c=U(),_=j(),V=R(),s=v({domains:[]}),b=v(0),p=v(),f=v();D(()=>x.provider,t=>{t&&(s.value={...t},s.value.domains||(s.value.domains=[]))},{immediate:!0});async function S(){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)if(o.new_domain){const r=Number.isInteger(o.new_domain)?o.new_domain:o.new_domain.pk;t.domains.push({name:o.name,new_domain:r})}else t.domains.push(o);await B.patchProvider(s.value.id,t).then(()=>{c.displayNotification({msg:l("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(),w(G,null,[a(L,{modelValue:b.value,"onUpdate:modelValue":o[2]||(o[2]=r=>b.value=r)},{default:e(()=>[a($,null,{default:e(()=>[a(E,null,{default:e(({open:r})=>[a(g,{"no-gutters":""},{default:e(()=>[a(m,{cols:"4"},{default:e(()=>[u(n(d(l)("General")),1)]),_:1}),a(m,{cols:"8",class:"text-secondary"},{default:e(()=>[a(h,{"leave-absolute":""},{default:e(()=>[r?(i(),w("span",O)):(i(),y(g,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(m,{cols:"6"},{default:e(()=>[u(n(d(l)("Name:"))+" "+n(s.value.name),1)]),_:1})]),_:1}))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1}),a(N,null,{default:e(()=>[a(T,{ref_key:"generalForm",ref:p,modelValue:s.value,"onUpdate:modelValue":o[0]||(o[0]=r=>s.value=r)},null,8,["modelValue"])]),_:1})]),_:1}),a($,null,{default:e(()=>[a(E,null,{default:e(({open:r})=>[a(g,{"no-gutters":""},{default:e(()=>[a(m,{cols:"4"},{default:e(()=>[u(n(d(l)("Associated domains")),1)]),_:1}),a(m,{cols:"8",class:"text-secondary"},{default:e(()=>[a(h,{"leave-absolute":""},{default:e(()=>[r?(i(),w("span",q)):(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(l)("Number of associated domains:"))+" "+n(s.value.domains.length),1)]),_:1})):(i(),y(m,{key:1,cols:"6"},{default:e(()=>[u(n(d(l)("No associated domains")),1)]),_:1}))]),_:1}))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1}),a(N,null,{default:e(()=>[a(A,{ref_key:"associatedForm",ref:f,modelValue:s.value.domains,"onUpdate:modelValue":o[1]||(o[1]=r=>s.value.domains=r)},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),k("div",z,[a(F,{variant:"outlined",onClick:o[3]||(o[3]=r=>t.$router.go(-1))},{default:e(()=>[u(n(d(l)("Cancel")),1)]),_:1}),a(F,{class:"ml-4",color:"primary darken-1",variant:"outlined",onClick:S},{default:e(()=>[u(n(d(l)("Save")),1)]),_:1})])],64))}},J={class:"text-h4"},ce={__name:"ProviderEditView",setup(P){const{$gettext:x}=C(),l=I(),c=v({});return B.getProvider(l.params.id).then(_=>{c.value=_.data}),(_,V)=>(i(),w("div",null,[k("span",J,n(d(x)("Edit provider")),1),V[0]||(V[0]=k("div",{class:"mt-4"},null,-1)),a(H,{provider:c.value},null,8,["provider"])]))}};export{ce as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{E as g,G as q,p as G,i as V,H as K,b as E,A as M,g as O,m as _,o as f,a as r,w as i,f as P,F as S,v as H,c as h,l as $,t as C,j as Y,e as I}from"./index-jui3edpn.js";import{V as D}from"./VTextField-BPIvtrn4.js";import{V as z}from"./VAutocomplete-CQsWYWNX.js";import{V as F,r as x}from"./VForm-fdQ5d-CH.js";import{V as R,c as A}from"./VAvatar-CXV_FqpP.js";import{V as J}from"./VSpacer-CuSkdJZL.js";import{V as Q}from"./VSelect-BcmGFGif.js";import{V as W}from"./VInput-BwHvhzAe.js";import{u as X}from"./domains.store-1U61jeCV.js";import{V as Z}from"./VSwitch-XumUl685.js";const k="email-providers",w={getProviders(t){return g.get(`/${k}/`,{params:t})},getProvider(t){return g.get(`/${k}/${t}/`)},createProvider(t){return g.post(`/${k}/`,t)},updateProvider(t,o){return g.put(`/${k}/${t}/`,o)},patchProvider(t,o){return g.patch(`/${k}/${t}/`,o)},deleteProvider(t){return g.delete(`/${k}/${t}/`)},checkProvider(t){return g.post(`/${k}/check_connection/`,t)},checkAssociatedDomain(t){return g.post(`/${k}/check_associated_domain/`,t)}},ve=q("providers",()=>{const t=G(),o=V(!1),u=V({}),{$gettext:l}=K;async function d(){o.value=!1,u.value={}}async function m(){return u.value={},o.value=!1,w.getProviders().then(a=>{for(const e of a.data)u.value[e.id]=e;return a}).finally(()=>o.value=!0)}async function s(a){return o.value=!1,w.createProvider(a).then(e=>(u.value[e.data.id]=e.data,e)).finally(()=>o.value=!0)}async function b(a){return o.value=!1,w.deleteProvider(a).then(e=>(delete u.value[a],t.displayNotification({msg:l("Provider deleted")}),e)).finally(()=>o.value=!0)}return{providersLoaded:o,providers:u,getProviders:m,createProvider:s,deleteProvider:b,$reset:d}}),pe={__name:"ProviderAssociatedForm",props:{modelValue:{type:Array,default:null}},emits:["update:modelValue"],async setup(t,{expose:o,emit:u}){let l,d;const{$gettext:m}=E(),s=X(),b=t,a=u,e=V([]),n=V(),L=V(),y=V({name:"",new_domain:""});M(()=>b.modelValue,c=>{c&&(e.value=[...c])},{immediate:!0});async function N(){await n.value.validate()&&w.checkAssociatedDomain(y.value).then(v=>{v.status===200&&(e.value.push({name:y.value.name,new_domain:y.value.new_domain}),a("update:modelValue",e.value),y.value={name:"",new_domain:""})})}function U(c){e.value.splice(c,1),a("update:modelValue",e.value)}function B(c){const v=c.keyCode;(v===13||v===9)&&(N(),c.preventDefault())}function T(){return e.value.length===0?m("You need to bind at least one domain to the provider."):!0}return o({vFormRef:L}),s.domainsLoaded||([l,d]=O(()=>s.getDomains()),await l,d()),(c,v)=>(f(),_(S,null,[r(F,{ref_key:"formRef",ref:n},{default:i(()=>[r(D,{ref:"initialdomainField",modelValue:y.value.name,"onUpdate:modelValue":v[0]||(v[0]=p=>y.value.name=p),placeholder:P(m)("Name of the domain to migrate"),variant:"outlined",density:"compact",onKeydown:B},null,8,["modelValue","placeholder"]),r(z,{modelValue:y.value.new_domain,"onUpdate:modelValue":v[1]||(v[1]=p=>y.value.new_domain=p),label:P(m)("Local domain (optional)"),items:P(s).domains,"item-title":"name","return-object":"",variant:"outlined",density:"compact",clearable:"",onKeydown:B},null,8,["modelValue","label","items"])]),_:1},512),r(R,{icon:"mdi-plus",color:"primary",onClick:N}),r(J),(f(!0),_(S,null,H(e.value,(p,j)=>(f(),h(Q,{key:p,class:"mr-2 mt-2",closable:"","onClick:close":ae=>U(j)},{default:i(()=>[p.new_domain?(f(),_(S,{key:0},[$(C(p.name)+" --> "+C(P(s).getDomainName(p.new_domain)),1)],64)):(f(),_(S,{key:1},[$(C(p.name),1)],64))]),_:2},1032,["onClick:close"]))),128)),r(F,{ref_key:"vFormRef",ref:L},{default:i(()=>[r(W,{rules:[T]},null,8,["rules"])]),_:1},512)],64))}},ee={class:"my-7"},te={class:"custom-loader"},fe={__name:"ProviderGeneralForm",props:{modelValue:{type:Object,default:null}},setup(t,{expose:o}){const u=t,l=Y(()=>u.modelValue),d=V(0),m=V(!1),s=V();async function b(){if(!await s.value.validate())return;m.value=!0;const e={address:l.value.address,port:l.value.port,secured:l.value.secured};w.checkProvider(e).then(()=>{d.value=1}).catch(n=>{console.log(n),d.value=2}).finally(()=>m.value=!1)}return o({vFormRef:s}),(a,e)=>(f(),h(F,{ref_key:"vFormRef",ref:s},{default:i(()=>[r(D,{modelValue:l.value.name,"onUpdate:modelValue":e[0]||(e[0]=n=>l.value.name=n),label:a.$gettext("Provider name"),variant:"outlined",density:"compact",rules:[P(x).required]},null,8,["modelValue","label","rules"]),r(D,{modelValue:l.value.address,"onUpdate:modelValue":e[1]||(e[1]=n=>l.value.address=n),label:a.$gettext("Address (hostname or IP)"),rules:[P(x).required],variant:"outlined",density:"compact"},null,8,["modelValue","label","rules"]),r(D,{modelValue:l.value.port,"onUpdate:modelValue":e[2]||(e[2]=n=>l.value.port=n),label:a.$gettext("IMAP Port"),type:"number",variant:"outlined",density:"compact",rules:[P(x).required,P(x).portNumber]},null,8,["modelValue","label","rules"]),r(Z,{modelValue:l.value.secured,"onUpdate:modelValue":e[3]||(e[3]=n=>l.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"]),I("div",ee,[r(R,{loading:m.value,color:"primary",onClick:b},{loader:i(()=>[I("span",te,[r(A,{light:""},{default:i(()=>[...e[7]||(e[7]=[$("mdi-cached",-1)])]),_:1})])]),default:i(()=>[$(C(a.$gettext("Check connection:"))+" ",1),d.value===0?(f(),h(A,{key:0,color:"blue-grey-darken-2"},{default:i(()=>[...e[4]||(e[4]=[$(" mdi-help-circle-outline ",-1)])]),_:1})):d.value===1?(f(),h(A,{key:1,color:"success"},{default:i(()=>[...e[5]||(e[5]=[$(" mdi-check-all ",-1)])]),_:1})):(f(),h(A,{key:2,color:"warning"},{default:i(()=>[...e[6]||(e[6]=[$(" mdi-alert-circle-outline ",-1)])]),_:1}))]),_:1},8,["loading"])])]),_:1},512))}};export{pe as _,fe as a,w as p,ve as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as U,p as W,j as A,i as y,c as V,o as c,w as t,a,f as p,g as L,x as E,e as I,m as C,v as q,F as B,l as v,t as _,y as H,s as J,_ as K}from"./index-jui3edpn.js";import{_ as Q}from"./CreationForm-CzelJsVQ.js";import{u as G,_ as X,a as Y}from"./ProviderGeneralForm-DO-IpJMQ.js";import{_ as Z}from"./MenuItems-C9p70bSC.js";import{V as R,a as ee}from"./VMenu-BpmJf4X2.js";import{V as h,c as z}from"./VAvatar-CXV_FqpP.js";import{V as T}from"./VSelect-BcmGFGif.js";import{V as M,a as te}from"./VToolbar-CB6wwtYc.js";import{V as oe}from"./VTextField-BPIvtrn4.js";import{V as ae}from"./VSpacer-CuSkdJZL.js";import{V as se}from"./VDataTable-CNT9KOSp.js";import{a as re}from"./VCard-CBtX8JF-.js";import{u as ne}from"./domains.store-1U61jeCV.js";import{V as ie}from"./VDialog-lKtBdqnp.js";import"./ConfirmDialog-CWpdwSQ6.js";import"./VRow-83Qnr5iB.js";/* empty css */import"./tag-WF93n81Q.js";import"./logos-Dz2Gzei-.js";import"./VWindowItem-CDtLLEkg.js";import"./ssrBoot-B7cr7q9U.js";import"./VContainer-Cn-vKB3s.js";import"./VSheet-C3MaHhtw.js";import"./VProgressCircular-DRw_-iNj.js";import"./VAutocomplete-CQsWYWNX.js";import"./VInput-BwHvhzAe.js";import"./filter-Dihm6o59.js";import"./VCheckboxBtn-B0mIT3E0.js";import"./VSelectionControl-Cqi1xt-q.js";import"./VForm-fdQ5d-CH.js";import"./VSwitch-XumUl685.js";import"./events-BM3in65C.js";import"./VTable-f7wcr2AZ.js";import"./domains-Du64lcXT.js";const le={__name:"ProviderCreationForm",emits:["close"],setup(j,{emit:g}){const d=g,{$gettext:e}=U(),m=W(),u=G(),N=A(()=>{const n=[];let s=!0;for(const f of i.value.domains){const O=f.new_domain?`${f.name} => ${f.new_domain.name}`:`${f.name} ${e("(the domain will be created locally)")}`;n.push({key:s?e("Associated domain"):"",value:O}),s=!1}return n}),D=A(()=>[{title:e("General"),items:[{key:e("Name"),value:i.value.name},{key:e("Address"),value:i.value.address},{key:e("Port"),value:i.value.port},{key:e("Secured"),value:i.value.secured,type:"yesno"}]},{title:e("Associated domains"),items:N.value}]),P=[{name:"general",title:e("General")},{name:"associated",title:e("Associated domains")}],i=y({domains:[]}),w=y(),k=y(),x=y(),b={general:k,associated:x};$();function $(){i.value={name:"",address:"",port:993,secured:!0,domains:[]}}function S(){$(),d("close")}function F(n){return b.value[n.name]}function l(n){return b[n.name].value.vFormRef}function r(){}async function o(){const n={...i.value};n.domains=[];for(const s of i.value.domains)s.new_domain?n.domains.push({name:s.name,new_domain:s.new_domain.pk}):n.domains.push(s);try{await u.createProvider(n),m.displayNotification({msg:e("Provider created")}),S()}finally{w.value.working=!1}}return(n,s)=>(c(),V(p(Q),{ref_key:"form",ref:w,title:p(e)("New provider"),steps:P,"form-getter":F,"get-v-form-ref":l,"validate-object":r,"summary-sections":D.value,onClose:S,onCreate:o},{"form.general":t(()=>[a(Y,{ref_key:"general",ref:k,modelValue:i.value,"onUpdate:modelValue":s[0]||(s[0]=f=>i.value=f),class:"ml-4"},null,8,["modelValue"])]),"form.associated":t(()=>[a(X,{ref_key:"associated",ref:x,modelValue:i.value.domains,"onUpdate:modelValue":s[1]||(s[1]=f=>i.value.domains=f)},null,8,["modelValue"])]),_:2},1032,["title","summary-sections"]))}},de=["colspan"],me={__name:"ProvidersList",async setup(j){let g,d;const{$gettext:e}=U(),m=ne(),u=G(),N=J(),D=A(()=>u.providers),P=A(()=>u.providersLoaded),i=[{title:e("Name"),key:"name"},{title:e("Address"),key:"address"},{title:e("Port"),key:"port"},{title:e("Secured"),key:"secured"},{title:e("Associated domains"),key:"domains"},{title:e("Actions"),key:"actions",sortable:!1,align:"right"}],w=y([]),k=y(""),x=y([]);function b(l){u.deleteProvider(l.id)}function $(l){N.push({name:"ProviderEdit",params:{id:l.id}})}const S=(l,r)=>{r.toggleExpand(r.internalItem)};function F(){const l=[];return l.push({label:e("Delete"),icon:"mdi-delete-outline",onClick:b,color:"red"}),l.push({label:e("Edit"),icon:"mdi-circle-edit-outline",onClick:$}),l}return P.value||([g,d]=L(()=>u.getProviders()),await g,d()),[g,d]=L(()=>m.getDomains()),await g,d(),(l,r)=>(c(),V(re,{class:"mt-6"},{default:t(()=>[a(se,{modelValue:w.value,"onUpdate:modelValue":r[2]||(r[2]=o=>w.value=o),expanded:x.value,"onUpdate:expanded":r[3]||(r[3]=o=>x.value=o),headers:i,items:Object.values(D.value),search:k.value,loading:!P.value,"item-value":"name","single-expand":"","show-select":"","onClick:row":S},{top:t(()=>[a(M,{color:"white",flat:""},{default:t(()=>[a(oe,{modelValue:k.value,"onUpdate:modelValue":r[0]||(r[0]=o=>k.value=o),"prepend-inner-icon":"mdi-magnify",placeholder:p(e)("Search"),"single-line":"",variant:"outlined","hide-details":"",density:"compact",class:"flex-grow-0 w-33 mr-4"},null,8,["modelValue","placeholder"]),H(l.$slots,"extraActions"),a(R,{location:"bottom"},{activator:t(({props:o})=>[a(h,E(o,{variant:"flat","append-icon":"mdi-chevron-down",size:"small"}),{default:t(()=>[v(_(p(e)("Actions")),1)]),_:1},16)]),default:t(()=>[a(ee,{density:"compact"})]),_:1}),a(h,{variant:"text",icon:"mdi-reload",onClick:r[1]||(r[1]=o=>p(u).getProviders())}),a(ae)]),_:3})]),"item.secured":t(({item:o})=>[o.secured===!0?(c(),V(z,{key:0,color:"green"},{default:t(()=>[...r[4]||(r[4]=[v(" mdi-lock ",-1)])]),_:1})):(c(),V(z,{key:1,color:"red"},{default:t(()=>[...r[5]||(r[5]=[v(" mdi-lock-off ",-1)])]),_:1}))]),"item.domains":t(({item:o})=>[o.domains.length>0?(c(),V(T,{key:0},{default:t(()=>[v(_(l.$ngettext("%{count} associated domain","%{count} associated domains",o.domains.length,{count:o.domains.length})),1)]),_:2},1024)):(c(),V(T,{key:1},{default:t(()=>[v(_(p(e)("No associated domain")),1)]),_:1}))]),"expanded-row":t(({columns:o,item:n})=>[I("tr",null,[I("td",{colspan:o.length},[(c(!0),C(B,null,q(n.domains,(s,f)=>(c(),V(T,{key:f,class:"mr-2"},{default:t(()=>[s.new_domain?(c(),C(B,{key:0},[v(_(s.name)+" --> "+_(p(m).getDomainName(s.new_domain)),1)],64)):(c(),C(B,{key:1},[v(_(s.name)+" --> "+_(s.name),1)],64))]),_:2},1024))),128))],8,de)])]),"item.actions":t(({item:o})=>[a(R,{"offset-y":""},{activator:t(({props:n})=>[a(h,E({icon:"mdi-dots-horizontal",variant:"text"},n),null,16)]),default:t(()=>[a(p(Z),{items:F(),obj:o},null,8,["items","obj"])]),_:2},1024)]),_:2},1032,["modelValue","expanded","items","search","loading"])]),_:3}))}},ue={__name:"ProvidersView",setup(j){const{$gettext:g}=U(),d=y(!1);return(e,m)=>(c(),C("div",null,[a(M,{flat:""},{default:t(()=>[a(te,null,{default:t(()=>[v(_(p(g)("Providers")),1)]),_:1})]),_:1}),a(p(me),null,{extraActions:t(()=>[a(h,{color:"primary",variant:"outlined","prepend-icon":"mdi-plus",onClick:m[0]||(m[0]=u=>d.value=!0)},{default:t(()=>[v(_(e.$pgettext("male","New")),1)]),_:1})]),_:1}),a(ie,{modelValue:d.value,"onUpdate:modelValue":m[2]||(m[2]=u=>d.value=u),fullscreen:"",scrollable:"",transition:"dialog-bottom-transition"},{default:t(()=>[a(p(le),{onClose:m[1]||(m[1]=u=>d.value=!1)})]),_:1},8,["modelValue"])]))}},qe=K(ue,[["__scopeId","data-v-38468b5b"]]);export{qe as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as r}from"./ConnectedLayout-BP8pO27H.js";import{c as o,w as m,o as p,l as i}from"./index-jui3edpn.js";import"./theme-_0oOYChG.js";import"./VContainer-Cn-vKB3s.js";/* empty css */import"./tag-WF93n81Q.js";import"./VApp-DM1KLQfQ.js";import"./layout-DOO7TRTJ.js";import"./ssrBoot-B7cr7q9U.js";import"./logos-Dz2Gzei-.js";import"./layout.store-C0g-piJn.js";import"./VAvatar-CXV_FqpP.js";import"./VProgressCircular-DRw_-iNj.js";import"./VMenu-BpmJf4X2.js";import"./VBadge-7tDx7aI3.js";import"./VCard-CBtX8JF-.js";import"./VRow-83Qnr5iB.js";import"./VSheet-C3MaHhtw.js";const Q={__name:"QuarantineLayout",setup(a){return(e,t)=>(p(),o(r,null,{navbar:m(()=>[...t[0]||(t[0]=[i(" ",-1)])]),_:1}))}};export{Q as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as me,u as pe,p as fe,g as ve,i as n,A as ye,C as G,c as h,w as o,a as l,l as _,t as c,e as k,n as z,aW as ge,f as r,x as Q,m as W,v as be,F as he,s as Y,k as E,o as m}from"./index-jui3edpn.js";import{d as ke}from"./index-Dv00bmw9.js";import{u as _e}from"./amavis-BbFeFfsk.js";import{_ as Ve}from"./ConfirmDialog-CWpdwSQ6.js";import{a as R}from"./amavis-DtuzP_CS.js";import{c as j,V as M}from"./VAvatar-CXV_FqpP.js";import{V as x,a as we}from"./VSelect-BcmGFGif.js";import{V as Se}from"./VTextField-BPIvtrn4.js";import{V as I,a as Ce,b as q}from"./VMenu-BpmJf4X2.js";import{a as O,V as Re}from"./VCard-CBtX8JF-.js";import{a as K,V as b}from"./VRadioGroup--eiP5xtJ.js";import{V as Me}from"./VDataTableServer-_yn4Ry6U.js";import"./permissions-CrpE0b4w.js";import"./parameters-DMIAQ7cd.js";import"./VToolbar-CB6wwtYc.js";import"./tag-WF93n81Q.js";import"./VProgressCircular-DRw_-iNj.js";import"./VSpacer-CuSkdJZL.js";/* empty css */import"./VDialog-lKtBdqnp.js";import"./VInput-BwHvhzAe.js";import"./VCheckboxBtn-B0mIT3E0.js";import"./VSelectionControl-Cqi1xt-q.js";import"./ssrBoot-B7cr7q9U.js";import"./VDataTable-CNT9KOSp.js";import"./events-BM3in65C.js";import"./VTable-f7wcr2AZ.js";import"./filter-Dihm6o59.js";const xe={class:"d-flex my-4"},Ue={class:"mr-2"},Be=["title"],Te=["title"],Ae={__name:"QuarantineList",async setup(J){let p,V;const{$gettext:s}=me(),w=Y(),U=G(),P=pe(),{displayNotification:S}=fe(),{manualLearningEnabled:D,learningRecipients:X}=([p,V]=ve(()=>_e()),p=await p,V(),p),B=n(1),T=n(10),f=n(null),F=n(null),i=n(!1),H=n([]),v=n(""),A=n("both"),u=n([]),y=n([]),L=n(0),C=n("all"),Z=[{color:"",key:"all",label:"All"},{color:"success",key:"C",label:"Clean"},{color:"error",key:"S",label:"Spam"},{color:"warning",key:"Y",label:"Spammy"},{color:"error",key:"V",label:"Virus"},{color:"warning",key:"H",label:"Bad Header"},{color:"warning",key:"M",label:"Bad MIME"},{color:"warning",key:"B",label:"Banned"},{color:"warning",key:"O",label:"Over sized"},{color:"warning",key:"T",label:"MTA error"},{color:"",key:"U",label:"Unchecked"}],ee=[{title:"",key:"type",width:"5%"},{title:"",key:"status",width:"5%"},{title:s("Score"),key:"score"},{title:s("To"),key:"to_address"},{title:s("From"),key:"from_address"},{title:s("Subject"),key:"subject"},{title:s("Date"),key:"datetime"}];ye(()=>U.query.requests,()=>{d()});const ae=({item:a})=>({class:a.style}),te=()=>({class:"clickable"}),le=a=>["S","V"].includes(a)?"error":["Y","H","M","B","O","T"].includes(a)?"warning":a==="C"?"success":"",se=a=>a.status==="R"?"mdi-reply":a.status==="S"?"mdi-thumb-down-outline":a.status==="H"?"mdi-thumb-up-outline":"",oe=a=>a.status==="R"?s("Message released"):a.status==="S"?s("Message marked as spam"):a.status==="H"?s("Message marked as non-spam"):"",re=async({page:a,itemsPerPage:t,sortBy:e})=>{B.value=a,T.value=t,y.value=e,d()},d=ke(async()=>{var t;i.value=!0;const a={page:B.value||1,page_size:T.value||10};y.value&&y.value.length&&(a.ordering=y.value.map(e=>e.order!=="asc"?`-${e.key}`:e.key).join(",")),v.value!==""&&(a.search=v.value,a.criteria=A.value),C.value!=="all"&&(a.msgtype=C.value),((t=U.query)==null?void 0:t.requests)==="1"&&(a.viewrequests=1);try{const e=await R.getQuarantineContent(a);H.value=e.data.results,L.value=e.data.count,u.value=[]}finally{i.value=!1}},500),ne=(a,{item:t})=>{w.push({name:"QuarantineMessageView",params:{mailid:t.mailid,rcpt:t.to_address}})},$=()=>{const a={selection:[]};for(const t of u.value)a.selection.push({rcpt:t.to_address,mailid:t.mailid});return a},ie=async()=>{i.value=!0;const a=$();try{await R.deleteSelection(a),d(),S({msg:s("Selection deleted")})}finally{i.value=!1}},ue=async()=>{i.value=!0;const a=$();try{const t=await R.releaseSelection(a);d(),t.data.status==="pending"?S({msg:s("Release request sent")}):S({msg:s("Selection released")})}finally{i.value=!1}},N=async a=>{D.value&&P.authUser.role!==E.USER&&(f.value=P.authUser.role===E.SUPER_ADMIN?"global":"domain",await F.value.open(s("Learning database"),s("Which database should be used for this learning:"),{width:600,noconfirm:!0})),i.value=!0;const t=$();t.type=a,f.value&&(t.database=f.value);try{await R.markMessageSelection(t),S({msg:s("Selection is being processed...")}),u.value=[]}finally{i.value=!1}},ce=async()=>{await N("spam")},de=async()=>{await N("ham")};return(a,t)=>(m(),h(O,{class:"mt-6"},{default:o(()=>[l(Me,{modelValue:u.value,"onUpdate:modelValue":t[3]||(t[3]=e=>u.value=e),headers:ee,items:H.value,search:v.value,loading:i.value,"items-length":L.value,page:B.value,"items-per-page":T.value,"item-value":"mailid",elevation:"0","show-select":"","return-object":"",density:"compact","sort-by":y.value,"row-props":ae,"cell-props":te,"onUpdate:options":re,"onClick:row":ne},{top:o(()=>[k("div",xe,[l(Se,{modelValue:v.value,"onUpdate:modelValue":t[1]||(t[1]=e=>v.value=e),placeholder:r(s)("Search in messages"),variant:"outlined","single-line":"","hide-details":"",class:"flex-grow-0 w-33 mr-4",clearable:"",density:"compact","onClick:clear":r(d),onKeyup:ge(r(d),["enter"])},{"prepend-inner":o(()=>[l(M,{icon:"",variant:"flat",size:"small"},{default:o(()=>[l(j,{icon:"mdi-magnify"}),l(I,{activator:"parent"},{default:o(()=>[l(O,null,{default:o(()=>[l(Re,null,{default:o(()=>[l(K,{modelValue:A.value,"onUpdate:modelValue":t[0]||(t[0]=e=>A.value=e)},{default:o(()=>[l(b,{label:r(s)("From address"),value:"from_addr"},null,8,["label"]),l(b,{label:r(s)("Subject"),value:"subject"},null,8,["label"]),l(b,{label:r(s)("To"),value:"to"},null,8,["label"]),l(b,{label:r(s)("both"),value:"both"},null,8,["label"])]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue","placeholder","onClick:clear","onKeyup"]),l(M,{class:"ml-2",color:"success",variant:"tonal",icon:"mdi-check",size:"small",disabled:u.value.length===0,title:r(s)("Release selection"),loading:i.value,onClick:ue},null,8,["disabled","title","loading"]),l(M,{class:"ml-2",color:"error",variant:"tonal",icon:"mdi-trash-can",size:"small",disabled:u.value.length===0,title:r(s)("Delete selection"),loading:i.value,onClick:ie},null,8,["disabled","title","loading"]),r(D)?(m(),h(M,{key:0,class:"ml-2",size:"small",variant:"tonal",icon:"",disabled:u.value.length===0},{default:o(()=>[l(j,{icon:"mdi-cog"}),l(I,{activator:"parent"},{default:o(()=>[l(Ce,null,{default:o(()=>[l(q,{title:r(s)("Mark as spam"),onClick:ce},null,8,["title"]),l(q,{title:r(s)("Mark as not spam"),onClick:de},null,8,["title"])]),_:1})]),_:1})]),_:1},8,["disabled"])):z("",!0),l(we,{modelValue:C.value,"onUpdate:modelValue":[t[2]||(t[2]=e=>C.value=e),r(d)],variant:"outlined",items:Z,class:"ml-2 flex-grow-0",density:"compact","item-title":"label","item-value":"key",chips:"","hide-details":""},{chip:o(({props:e,item:g})=>[k("span",Ue,c(r(s)("Display")),1),l(x,Q(e,{color:g.raw.color,text:g.raw.label,label:""}),null,16,["color","text"])]),item:o(({props:e,item:g})=>[l(q,Q(e,{title:""}),{default:o(()=>[l(x,{color:g.raw.color,label:""},{default:o(()=>[_(c(g.raw.label),1)]),_:2},1032,["color"])]),_:2},1040)]),_:1},8,["modelValue","onUpdate:modelValue"])])]),"item.type":o(({item:e})=>[l(x,{color:le(e.type),size:"small",label:""},{default:o(()=>[_(c(e.type),1)]),_:2},1032,["color"])]),"item.status":o(({item:e})=>[e.status?(m(),h(j,{key:0,icon:se(e),title:oe(e),size:"small"},null,8,["icon","title"])):z("",!0)]),"item.from_address":o(({item:e})=>[k("span",{title:e.from_address},c(a.$truncate(e.from_address,30)),9,Be)]),"item.subject":o(({item:e})=>[k("span",{title:e.subject},c(a.$truncate(e.subject,30)),9,Te)]),"item.datetime":o(({item:e})=>[_(c(a.$date(e.datetime)),1)]),_:2},1032,["modelValue","items","search","loading","items-length","page","items-per-page","sort-by"]),l(r(Ve),{ref_key:"learningRecipientRef",ref:F},{default:o(()=>[l(K,{modelValue:f.value,"onUpdate:modelValue":t[4]||(t[4]=e=>f.value=e),class:"mt-4","hide-details":""},{default:o(()=>[(m(!0),W(he,null,be(r(X),e=>(m(),h(b,{key:e.value,value:e.value,label:e.title},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1},512)]),_:1}))}},$e={class:"text-h5 ml-4"},ua={__name:"QuarantineView",setup(J){const p=G(),V=Y(),s=()=>{V.replace({name:"QuarantineView"})};return(w,U)=>(m(),W("div",null,[k("div",$e,[_(c(w.$gettext("Quarantine"))+" ",1),r(p).query.requests==="1"?(m(),h(x,{key:0,color:"primary",variant:"tonal",class:"ml-2",closable:"","onClick:close":s},{default:o(()=>[_(c(w.$gettext("release requests")),1)]),_:1})):z("",!0)]),l(r(Ae))]))}};export{ua as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e,c as a,f as p,C as l,o as n}from"./index-jui3edpn.js";import{_ as s}from"./ComposeEmailForm-BmtKwFb1.js";import{a as u}from"./webmail-CYDXU0DS.js";import"./index-Dv00bmw9.js";import"./VForm-fdQ5d-CH.js";import"./tag-WF93n81Q.js";import"./VInput-BwHvhzAe.js";import"./VAvatar-CXV_FqpP.js";import"./VProgressCircular-DRw_-iNj.js";import"./VMenu-BpmJf4X2.js";import"./ssrBoot-B7cr7q9U.js";import"./VCard-CBtX8JF-.js";import"./VFileInput-C7J_qVmk.js";import"./VTextField-BPIvtrn4.js";import"./VSelect-BcmGFGif.js";import"./VCheckboxBtn-B0mIT3E0.js";import"./VSelectionControl-Cqi1xt-q.js";import"./VTable-f7wcr2AZ.js";import"./VSpacer-CuSkdJZL.js";/* empty css */import"./HtmlEditor-CyBl5wj2.js";import"./VTextarea-B6bGYcC3.js";import"./EmailSchedulingForm-CQL5Vfdr.js";import"./VDatePicker-iFu13xIP.js";import"./VBadge-7tDx7aI3.js";import"./VPicker-BZho70wU.js";import"./VSheet-C3MaHhtw.js";import"./contacts-DMJlQTe0.js";import"./VToolbar-CB6wwtYc.js";import"./VRow-83Qnr5iB.js";import"./filter-Dihm6o59.js";import"./VDialog-lKtBdqnp.js";const N={__name:"ReplyEmailView",setup(c){const t=l(),o=e(),r=i=>{o.value="",u.getEmailContent(t.query.mailbox,t.query.mailid,{context:"reply",dformat:i?"html":"plain"}).then(m=>{o.value=m.data})};return r(),(i,m)=>(n(),a(p(s),{"original-email":o.value,"reply-all":p(t).query.all==="true",onOnToggleHtmlMode:r},null,8,["original-email","reply-all"]))}};export{N as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as p,V as i}from"./VForm-fdQ5d-CH.js";import{V as _}from"./VTextField-BPIvtrn4.js";import{j as f,i as V,c as v,o as l,w as x,m as o,F as s,v as F,e as y,a as b,t as k,f as B}from"./index-jui3edpn.js";const g={class:"m-label"},N={__name:"ResourcesForm",props:{modelValue:{type:Object,default:null}},setup(m,{expose:n}){const u=m,t=f(()=>u.modelValue),r=V();function c(){return t.value.map(a=>({name:a.name,max_value:a.max_value}))}return n({vFormRef:r,getPayload:c}),(a,h)=>(l(),v(i,{ref_key:"vFormRef",ref:r},{default:x(()=>[(l(!0),o(s,null,F(t.value,e=>(l(),o(s,{key:e.name},[y("label",g,k(e.label),1),b(_,{modelValue:e.max_value,"onUpdate:modelValue":d=>e.max_value=d,type:"number",variant:"outlined",dense:"",rules:[B(p).required]},null,8,["modelValue","onUpdate:modelValue","rules"])],64))),128))]),_:1},512))}};export{N as _};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as p}from"./ConnectedLayout-BP8pO27H.js";import{c as m,w as r,o as i,l as o}from"./index-jui3edpn.js";import"./theme-_0oOYChG.js";import"./VContainer-Cn-vKB3s.js";/* empty css */import"./tag-WF93n81Q.js";import"./VApp-DM1KLQfQ.js";import"./layout-DOO7TRTJ.js";import"./ssrBoot-B7cr7q9U.js";import"./logos-Dz2Gzei-.js";import"./layout.store-C0g-piJn.js";import"./VAvatar-CXV_FqpP.js";import"./VProgressCircular-DRw_-iNj.js";import"./VMenu-BpmJf4X2.js";import"./VBadge-7tDx7aI3.js";import"./VCard-CBtX8JF-.js";import"./VRow-83Qnr5iB.js";import"./VSheet-C3MaHhtw.js";const N={__name:"SelfServiceLayout",setup(a){return(e,t)=>(i(),m(p,null,{navbar:r(()=>[...t[0]||(t[0]=[o(" ",-1)])]),topbar:r(()=>[...t[1]||(t[1]=[o(" ",-1)])]),_:1}))}};export{N as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.qrcode{margin-left:20px;margin-top:2em}.key{margin-left:10px;margin-top:1.75em}.v-otp-input{align-items:center;display:flex;justify-content:center;padding:.5rem 0;position:relative}.v-otp-input{border-radius:4px}.v-otp-input .v-field{height:100%}.v-otp-input .v-field .v-field__outline__start,.v-otp-input .v-field .v-field__outline__end{flex:1}.v-otp-input__divider{margin:0 8px}.v-otp-input__content{align-items:center;display:flex;gap:.5rem;height:64px;padding:.5rem;justify-content:center;max-width:320px;position:relative;border-radius:inherit}.v-otp-input--divided .v-otp-input__content{max-width:360px}.v-otp-input__field{color:inherit;font-size:1.25rem;height:100%;outline:none;text-align:center;width:100%}.v-otp-input__field[type=number]::-webkit-outer-spin-button,.v-otp-input__field[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.v-otp-input__field[type=number]{-moz-appearance:textfield}.v-otp-input__loader{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.v-otp-input__loader .v-progress-linear{position:absolute}.v-toolbar[data-v-35822e11]{background-color:#f7f8fa!important}.v-window__container{width:100%!important}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{b as Z,p as ne,u as ue,j as W,i as y,d as ve,A as de,c as O,o as M,w as d,a as i,l as S,t as g,f,q as fe,e as E,a4 as ge,a5 as Q,a0 as Re,F as z,J as Le,K as ze,P as Be,L as Qe,a6 as He,a7 as Ke,a8 as Ge,U as Ye,a9 as j,a1 as qe,aa as We,a2 as Je,x as ke,V as Xe,z as Ze,ab as Ee,m as $,n as q,v as Me,a3 as K,O as je,ac as et,_ as tt,k as Ae}from"./index-jui3edpn.js";import{l as at}from"./languages-CF8hxo7x.js";import{_ as ot}from"./AccountPasswordSubForm-PkFPblkR.js";import{V as te,r as ae}from"./VForm-fdQ5d-CH.js";import{V as Ve,c as Se,a as Pe,b as nt}from"./VExpansionPanels-CaIvk9iF.js";import{V as H,a as rt,m as lt}from"./VTextField-BPIvtrn4.js";import{V as st}from"./VAutocomplete-CQsWYWNX.js";import{V as B,c as he}from"./VAvatar-CXV_FqpP.js";import{c as me,V as J,a as X,b as ye}from"./VCard-CBtX8JF-.js";import{V as ce,a as ie}from"./VRow-83Qnr5iB.js";import{V as ee}from"./VAlert-MDbeolOo.js";import{e as it}from"./VMenu-BpmJf4X2.js";import{u as ut,V as dt}from"./VProgressCircular-DRw_-iNj.js";import{a as ct,u as ft,m as vt}from"./tag-WF93n81Q.js";import{u as mt,m as ht}from"./VInput-BwHvhzAe.js";import{V as Ne}from"./VTable-f7wcr2AZ.js";import{V as pt}from"./VSpacer-CuSkdJZL.js";import{V as Fe}from"./VDialog-lKtBdqnp.js";import{V as Te}from"./VTextarea-B6bGYcC3.js";import{V as Ie}from"./VCheckbox-zY1MApOy.js";import{_ as pe}from"./ConfirmDialog-CWpdwSQ6.js";import{V as gt}from"./VDataTableVirtual-Csxh3Gp6.js";import{V as yt,a as _t}from"./VToolbar-CB6wwtYc.js";import{V as bt,a as wt,b as le,c as se}from"./VTabs-y4wNP4im.js";import"./accounts-KUsk6LHW.js";import"./VSwitch-XumUl685.js";import"./VSelectionControl-Cqi1xt-q.js";import"./VSelect-BcmGFGif.js";import"./VCheckboxBtn-B0mIT3E0.js";import"./filter-Dihm6o59.js";/* empty css */import"./ssrBoot-B7cr7q9U.js";import"./VDataTable-CNT9KOSp.js";import"./events-BM3in65C.js";import"./VWindowItem-CDtLLEkg.js";const Ct={class:"m-label"},kt={class:"m-label"},Et={class:"m-label"},At={class:"text-disabled"},Vt={href:"https://explore.transifex.com/tonio/modoboa/",target:"_blank"},St={href:"https://github.com/modoboa/modoboa/issues/new/choose",target:"_blank"},Pt={class:"m-label"},Rt={class:"m-label"},Mt={__name:"ProfileForm",setup(l){const{$gettext:s,available:v}=Z(),r=ne(),m=ue(),p=W(()=>m.authUser),o=y({}),e=y(),t=y(),a=y({}),n=y([]),u=y(0),c=y(!1),h=y(!1),b=y("");function w(P){o.value={first_name:P.first_name,last_name:P.last_name,language:P.language,phone_number:P.phone_number,secondary_email:P.secondary_email}}async function F(){const{valid:P}=await e.value.validate();P&&(c.value=!0,m.updateAccount(o.value).then(()=>{r.displayNotification({msg:s("Profile updated")}),m.accountLanguage in v||(b.value=s("Language does no exist"))}).finally(()=>c.value=!1))}async function N(){const{valid:P}=await t.value.validate();if(P){h.value=!0;try{await m.updatePassword({password:o.value.password,new_password:o.value.new_password}),r.displayNotification({msg:s("Password updated")}),t.value.reset()}catch(_){_.status===400&&(a.value=_.response.data)}finally{h.value=!1}}}return ve(()=>{w(p.value),at.getAll().then(P=>{n.value=P.data})}),de(()=>p,P=>{P?w(P):o.value={}}),(P,_)=>(M(),O(nt,{modelValue:u.value,"onUpdate:modelValue":_[6]||(_[6]=C=>u.value=C),flat:""},{default:d(()=>[i(Ve,null,{default:d(()=>[i(Se,null,{default:d(()=>[S(g(f(s)("General settings")),1)]),_:1}),i(Pe,null,{default:d(()=>[i(te,{ref_key:"profileForm",ref:e,onSubmit:fe(F,["prevent"])},{default:d(()=>[E("label",Ct,g(f(s)("First name")),1),i(H,{modelValue:o.value.first_name,"onUpdate:modelValue":_[0]||(_[0]=C=>o.value.first_name=C),variant:"outlined",density:"compact"},null,8,["modelValue"]),E("label",kt,g(f(s)("Last name")),1),i(H,{modelValue:o.value.last_name,"onUpdate:modelValue":_[1]||(_[1]=C=>o.value.last_name=C),variant:"outlined",density:"compact"},null,8,["modelValue"]),E("label",Et,[S(g(f(s)("Language"))+" ",1),E("p",At,[S(g(f(s)("Feel free to improve the translations"))+" ",1),E("a",Vt,g(f(s)("here")),1),S(" "+g(f(s)("or suggest a new language"))+" ",1),E("a",St,g(f(s)("there")),1)])]),i(st,{modelValue:o.value.language,"onUpdate:modelValue":_[2]||(_[2]=C=>o.value.language=C),items:n.value,"item-title":"label","item-value":"code",variant:"outlined",density:"compact","error-messages":b.value},null,8,["modelValue","items","error-messages"]),E("label",Pt,g(f(s)("Phone number")),1),i(H,{modelValue:o.value.phone_number,"onUpdate:modelValue":_[3]||(_[3]=C=>o.value.phone_number=C),label:f(s)("Phone number"),variant:"outlined",density:"compact"},null,8,["modelValue","label"]),E("label",Rt,g(f(s)("Secondary email")),1),i(H,{modelValue:o.value.secondary_email,"onUpdate:modelValue":_[4]||(_[4]=C=>o.value.secondary_email=C),variant:"outlined",density:"compact",rules:[f(ae).emailOrNull]},null,8,["modelValue","rules"]),i(B,{color:"success",type:"submit",loading:c.value},{default:d(()=>[S(g(f(s)("Update settings")),1)]),_:1},8,["loading"])]),_:1},512)]),_:1})]),_:1}),i(Ve,null,{default:d(()=>[i(Se,null,{default:d(()=>[S(g(f(s)("Password")),1)]),_:1}),i(Pe,null,{default:d(()=>[i(te,{ref_key:"passwordForm",ref:t,onSubmit:fe(N,["prevent"])},{default:d(()=>[i(ot,{modelValue:o.value,"onUpdate:modelValue":_[5]||(_[5]=C=>o.value=C),"form-errors":a.value,"with-password-check":""},null,8,["modelValue","form-errors"]),i(B,{color:"success",type:"submit",loading:h.value},{default:d(()=>[S(g(f(s)("Update Password")),1)]),_:1},8,["loading"])]),_:1},512)]),_:1})]),_:1})]),_:1},8,["modelValue"]))}};/*!
|
|
2
|
+
* qrcode.vue v3.6.0
|
|
3
|
+
* A Vue.js component to generate QRCode. Both support Vue 2 and Vue 3
|
|
4
|
+
* © 2017-PRESENT @scopewu(https://github.com/scopewu)
|
|
5
|
+
* MIT License.
|
|
6
|
+
*/var Y=function(){return Y=Object.assign||function(s){for(var v,r=1,m=arguments.length;r<m;r++){v=arguments[r];for(var p in v)Object.prototype.hasOwnProperty.call(v,p)&&(s[p]=v[p])}return s},Y.apply(this,arguments)};var oe;(function(l){var s=(function(){function o(e,t,a,n){if(this.version=e,this.errorCorrectionLevel=t,this.modules=[],this.isFunction=[],e<o.MIN_VERSION||e>o.MAX_VERSION)throw new RangeError("Version value out of range");if(n<-1||n>7)throw new RangeError("Mask value out of range");this.size=e*4+17;for(var u=[],c=0;c<this.size;c++)u.push(!1);for(var c=0;c<this.size;c++)this.modules.push(u.slice()),this.isFunction.push(u.slice());this.drawFunctionPatterns();var h=this.addEccAndInterleave(a);if(this.drawCodewords(h),n==-1)for(var b=1e9,c=0;c<8;c++){this.applyMask(c),this.drawFormatBits(c);var w=this.getPenaltyScore();w<b&&(n=c,b=w),this.applyMask(c)}m(0<=n&&n<=7),this.mask=n,this.applyMask(n),this.drawFormatBits(n),this.isFunction=[]}return o.encodeText=function(e,t){var a=l.QrSegment.makeSegments(e);return o.encodeSegments(a,t)},o.encodeBinary=function(e,t){var a=l.QrSegment.makeBytes(e);return o.encodeSegments([a],t)},o.encodeSegments=function(e,t,a,n,u,c){if(a===void 0&&(a=1),n===void 0&&(n=40),u===void 0&&(u=-1),c===void 0&&(c=!0),!(o.MIN_VERSION<=a&&a<=n&&n<=o.MAX_VERSION)||u<-1||u>7)throw new RangeError("Invalid value");var h,b;for(h=a;;h++){var w=o.getNumDataCodewords(h,t)*8,F=p.getTotalBits(e,h);if(F<=w){b=F;break}if(h>=n)throw new RangeError("Data too long")}for(var N=0,P=[o.Ecc.MEDIUM,o.Ecc.QUARTILE,o.Ecc.HIGH];N<P.length;N++){var _=P[N];c&&b<=o.getNumDataCodewords(h,_)*8&&(t=_)}for(var C=[],A=0,R=e;A<R.length;A++){var k=R[A];v(k.mode.modeBits,4,C),v(k.numChars,k.mode.numCharCountBits(h),C);for(var L=0,x=k.getData();L<x.length;L++){var V=x[L];C.push(V)}}m(C.length==b);var T=o.getNumDataCodewords(h,t)*8;m(C.length<=T),v(0,Math.min(4,T-C.length),C),v(0,(8-C.length%8)%8,C),m(C.length%8==0);for(var I=236;C.length<T;I^=253)v(I,8,C);for(var D=[];D.length*8<C.length;)D.push(0);return C.forEach(function(U,G){return D[G>>>3]|=U<<7-(G&7)}),new o(h,t,D,u)},o.prototype.getModule=function(e,t){return 0<=e&&e<this.size&&0<=t&&t<this.size&&this.modules[t][e]},o.prototype.getModules=function(){return this.modules},o.prototype.drawFunctionPatterns=function(){for(var e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0),this.setFunctionModule(e,6,e%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);for(var t=this.getAlignmentPatternPositions(),a=t.length,e=0;e<a;e++)for(var n=0;n<a;n++)e==0&&n==0||e==0&&n==a-1||e==a-1&&n==0||this.drawAlignmentPattern(t[e],t[n]);this.drawFormatBits(0),this.drawVersion()},o.prototype.drawFormatBits=function(e){for(var t=this.errorCorrectionLevel.formatBits<<3|e,a=t,n=0;n<10;n++)a=a<<1^(a>>>9)*1335;var u=(t<<10|a)^21522;m(u>>>15==0);for(var n=0;n<=5;n++)this.setFunctionModule(8,n,r(u,n));this.setFunctionModule(8,7,r(u,6)),this.setFunctionModule(8,8,r(u,7)),this.setFunctionModule(7,8,r(u,8));for(var n=9;n<15;n++)this.setFunctionModule(14-n,8,r(u,n));for(var n=0;n<8;n++)this.setFunctionModule(this.size-1-n,8,r(u,n));for(var n=8;n<15;n++)this.setFunctionModule(8,this.size-15+n,r(u,n));this.setFunctionModule(8,this.size-8,!0)},o.prototype.drawVersion=function(){if(!(this.version<7)){for(var e=this.version,t=0;t<12;t++)e=e<<1^(e>>>11)*7973;var a=this.version<<12|e;m(a>>>18==0);for(var t=0;t<18;t++){var n=r(a,t),u=this.size-11+t%3,c=Math.floor(t/3);this.setFunctionModule(u,c,n),this.setFunctionModule(c,u,n)}}},o.prototype.drawFinderPattern=function(e,t){for(var a=-4;a<=4;a++)for(var n=-4;n<=4;n++){var u=Math.max(Math.abs(n),Math.abs(a)),c=e+n,h=t+a;0<=c&&c<this.size&&0<=h&&h<this.size&&this.setFunctionModule(c,h,u!=2&&u!=4)}},o.prototype.drawAlignmentPattern=function(e,t){for(var a=-2;a<=2;a++)for(var n=-2;n<=2;n++)this.setFunctionModule(e+n,t+a,Math.max(Math.abs(n),Math.abs(a))!=1)},o.prototype.setFunctionModule=function(e,t,a){this.modules[t][e]=a,this.isFunction[t][e]=!0},o.prototype.addEccAndInterleave=function(e){var t=this.version,a=this.errorCorrectionLevel;if(e.length!=o.getNumDataCodewords(t,a))throw new RangeError("Invalid argument");for(var n=o.NUM_ERROR_CORRECTION_BLOCKS[a.ordinal][t],u=o.ECC_CODEWORDS_PER_BLOCK[a.ordinal][t],c=Math.floor(o.getNumRawDataModules(t)/8),h=n-c%n,b=Math.floor(c/n),w=[],F=o.reedSolomonComputeDivisor(u),N=0,P=0;N<n;N++){var _=e.slice(P,P+b-u+(N<h?0:1));P+=_.length;var C=o.reedSolomonComputeRemainder(_,F);N<h&&_.push(0),w.push(_.concat(C))}for(var A=[],R=function(k){w.forEach(function(L,x){(k!=b-u||x>=h)&&A.push(L[k])})},N=0;N<w[0].length;N++)R(N);return m(A.length==c),A},o.prototype.drawCodewords=function(e){if(e.length!=Math.floor(o.getNumRawDataModules(this.version)/8))throw new RangeError("Invalid argument");for(var t=0,a=this.size-1;a>=1;a-=2){a==6&&(a=5);for(var n=0;n<this.size;n++)for(var u=0;u<2;u++){var c=a-u,h=(a+1&2)==0,b=h?this.size-1-n:n;!this.isFunction[b][c]&&t<e.length*8&&(this.modules[b][c]=r(e[t>>>3],7-(t&7)),t++)}}m(t==e.length*8)},o.prototype.applyMask=function(e){if(e<0||e>7)throw new RangeError("Mask value out of range");for(var t=0;t<this.size;t++)for(var a=0;a<this.size;a++){var n=void 0;switch(e){case 0:n=(a+t)%2==0;break;case 1:n=t%2==0;break;case 2:n=a%3==0;break;case 3:n=(a+t)%3==0;break;case 4:n=(Math.floor(a/3)+Math.floor(t/2))%2==0;break;case 5:n=a*t%2+a*t%3==0;break;case 6:n=(a*t%2+a*t%3)%2==0;break;case 7:n=((a+t)%2+a*t%3)%2==0;break;default:throw new Error("Unreachable")}!this.isFunction[t][a]&&n&&(this.modules[t][a]=!this.modules[t][a])}},o.prototype.getPenaltyScore=function(){for(var e=0,t=0;t<this.size;t++){for(var a=!1,n=0,u=[0,0,0,0,0,0,0],c=0;c<this.size;c++)this.modules[t][c]==a?(n++,n==5?e+=o.PENALTY_N1:n>5&&e++):(this.finderPenaltyAddHistory(n,u),a||(e+=this.finderPenaltyCountPatterns(u)*o.PENALTY_N3),a=this.modules[t][c],n=1);e+=this.finderPenaltyTerminateAndCount(a,n,u)*o.PENALTY_N3}for(var c=0;c<this.size;c++){for(var a=!1,h=0,u=[0,0,0,0,0,0,0],t=0;t<this.size;t++)this.modules[t][c]==a?(h++,h==5?e+=o.PENALTY_N1:h>5&&e++):(this.finderPenaltyAddHistory(h,u),a||(e+=this.finderPenaltyCountPatterns(u)*o.PENALTY_N3),a=this.modules[t][c],h=1);e+=this.finderPenaltyTerminateAndCount(a,h,u)*o.PENALTY_N3}for(var t=0;t<this.size-1;t++)for(var c=0;c<this.size-1;c++){var b=this.modules[t][c];b==this.modules[t][c+1]&&b==this.modules[t+1][c]&&b==this.modules[t+1][c+1]&&(e+=o.PENALTY_N2)}for(var w=0,F=0,N=this.modules;F<N.length;F++){var P=N[F];w=P.reduce(function(A,R){return A+(R?1:0)},w)}var _=this.size*this.size,C=Math.ceil(Math.abs(w*20-_*10)/_)-1;return m(0<=C&&C<=9),e+=C*o.PENALTY_N4,m(0<=e&&e<=2568888),e},o.prototype.getAlignmentPatternPositions=function(){if(this.version==1)return[];for(var e=Math.floor(this.version/7)+2,t=Math.floor((this.version*8+e*3+5)/(e*4-4))*2,a=[6],n=this.size-7;a.length<e;n-=t)a.splice(1,0,n);return a},o.getNumRawDataModules=function(e){if(e<o.MIN_VERSION||e>o.MAX_VERSION)throw new RangeError("Version number out of range");var t=(16*e+128)*e+64;if(e>=2){var a=Math.floor(e/7)+2;t-=(25*a-10)*a-55,e>=7&&(t-=36)}return m(208<=t&&t<=29648),t},o.getNumDataCodewords=function(e,t){return Math.floor(o.getNumRawDataModules(e)/8)-o.ECC_CODEWORDS_PER_BLOCK[t.ordinal][e]*o.NUM_ERROR_CORRECTION_BLOCKS[t.ordinal][e]},o.reedSolomonComputeDivisor=function(e){if(e<1||e>255)throw new RangeError("Degree out of range");for(var t=[],a=0;a<e-1;a++)t.push(0);t.push(1);for(var n=1,a=0;a<e;a++){for(var u=0;u<t.length;u++)t[u]=o.reedSolomonMultiply(t[u],n),u+1<t.length&&(t[u]^=t[u+1]);n=o.reedSolomonMultiply(n,2)}return t},o.reedSolomonComputeRemainder=function(e,t){for(var a=t.map(function(b){return 0}),n=function(b){var w=b^a.shift();a.push(0),t.forEach(function(F,N){return a[N]^=o.reedSolomonMultiply(F,w)})},u=0,c=e;u<c.length;u++){var h=c[u];n(h)}return a},o.reedSolomonMultiply=function(e,t){if(e>>>8||t>>>8)throw new RangeError("Byte out of range");for(var a=0,n=7;n>=0;n--)a=a<<1^(a>>>7)*285,a^=(t>>>n&1)*e;return m(a>>>8==0),a},o.prototype.finderPenaltyCountPatterns=function(e){var t=e[1];m(t<=this.size*3);var a=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(a&&e[0]>=t*4&&e[6]>=t?1:0)+(a&&e[6]>=t*4&&e[0]>=t?1:0)},o.prototype.finderPenaltyTerminateAndCount=function(e,t,a){return e&&(this.finderPenaltyAddHistory(t,a),t=0),t+=this.size,this.finderPenaltyAddHistory(t,a),this.finderPenaltyCountPatterns(a)},o.prototype.finderPenaltyAddHistory=function(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)},o.MIN_VERSION=1,o.MAX_VERSION=40,o.PENALTY_N1=3,o.PENALTY_N2=3,o.PENALTY_N3=40,o.PENALTY_N4=10,o.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],o.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],o})();l.QrCode=s;function v(o,e,t){if(e<0||e>31||o>>>e)throw new RangeError("Value out of range");for(var a=e-1;a>=0;a--)t.push(o>>>a&1)}function r(o,e){return(o>>>e&1)!=0}function m(o){if(!o)throw new Error("Assertion error")}var p=(function(){function o(e,t,a){if(this.mode=e,this.numChars=t,this.bitData=a,t<0)throw new RangeError("Invalid argument");this.bitData=a.slice()}return o.makeBytes=function(e){for(var t=[],a=0,n=e;a<n.length;a++){var u=n[a];v(u,8,t)}return new o(o.Mode.BYTE,e.length,t)},o.makeNumeric=function(e){if(!o.isNumeric(e))throw new RangeError("String contains non-numeric characters");for(var t=[],a=0;a<e.length;){var n=Math.min(e.length-a,3);v(parseInt(e.substring(a,a+n),10),n*3+1,t),a+=n}return new o(o.Mode.NUMERIC,e.length,t)},o.makeAlphanumeric=function(e){if(!o.isAlphanumeric(e))throw new RangeError("String contains unencodable characters in alphanumeric mode");var t=[],a;for(a=0;a+2<=e.length;a+=2){var n=o.ALPHANUMERIC_CHARSET.indexOf(e.charAt(a))*45;n+=o.ALPHANUMERIC_CHARSET.indexOf(e.charAt(a+1)),v(n,11,t)}return a<e.length&&v(o.ALPHANUMERIC_CHARSET.indexOf(e.charAt(a)),6,t),new o(o.Mode.ALPHANUMERIC,e.length,t)},o.makeSegments=function(e){return e==""?[]:o.isNumeric(e)?[o.makeNumeric(e)]:o.isAlphanumeric(e)?[o.makeAlphanumeric(e)]:[o.makeBytes(o.toUtf8ByteArray(e))]},o.makeEci=function(e){var t=[];if(e<0)throw new RangeError("ECI assignment value out of range");if(e<128)v(e,8,t);else if(e<16384)v(2,2,t),v(e,14,t);else if(e<1e6)v(6,3,t),v(e,21,t);else throw new RangeError("ECI assignment value out of range");return new o(o.Mode.ECI,0,t)},o.isNumeric=function(e){return o.NUMERIC_REGEX.test(e)},o.isAlphanumeric=function(e){return o.ALPHANUMERIC_REGEX.test(e)},o.prototype.getData=function(){return this.bitData.slice()},o.getTotalBits=function(e,t){for(var a=0,n=0,u=e;n<u.length;n++){var c=u[n],h=c.mode.numCharCountBits(t);if(c.numChars>=1<<h)return 1/0;a+=4+h+c.bitData.length}return a},o.toUtf8ByteArray=function(e){e=encodeURI(e);for(var t=[],a=0;a<e.length;a++)e.charAt(a)!="%"?t.push(e.charCodeAt(a)):(t.push(parseInt(e.substring(a+1,a+3),16)),a+=2);return t},o.NUMERIC_REGEX=/^[0-9]*$/,o.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,o.ALPHANUMERIC_CHARSET="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:",o})();l.QrSegment=p})(oe||(oe={}));(function(l){(function(s){var v=(function(){function r(m,p){this.ordinal=m,this.formatBits=p}return r.LOW=new r(0,1),r.MEDIUM=new r(1,0),r.QUARTILE=new r(2,3),r.HIGH=new r(3,2),r})();s.Ecc=v})(l.QrCode||(l.QrCode={}))})(oe||(oe={}));(function(l){(function(s){var v=(function(){function r(m,p){this.modeBits=m,this.numBitsCharCount=p}return r.prototype.numCharCountBits=function(m){return this.numBitsCharCount[Math.floor((m+7)/17)]},r.NUMERIC=new r(1,[10,12,14]),r.ALPHANUMERIC=new r(2,[9,11,13]),r.BYTE=new r(4,[8,16,16]),r.KANJI=new r(8,[8,10,12]),r.ECI=new r(7,[0,0,0]),r})();s.Mode=v})(l.QrSegment||(l.QrSegment={}))})(oe||(oe={}));var re=oe,_e="L",be={L:re.QrCode.Ecc.LOW,M:re.QrCode.Ecc.MEDIUM,Q:re.QrCode.Ecc.QUARTILE,H:re.QrCode.Ecc.HIGH},Nt=(function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0})();function we(l){return l in be}function Ue(l,s){s===void 0&&(s=0);var v=[];return l.forEach(function(r,m){var p=null;r.forEach(function(o,e){if(!o&&p!==null){v.push("M".concat(p+s," ").concat(m+s,"h").concat(e-p,"v1H").concat(p+s,"z")),p=null;return}if(e===r.length-1){if(!o)return;p===null?v.push("M".concat(e+s,",").concat(m+s," h1v1H").concat(e+s,"z")):v.push("M".concat(p+s,",").concat(m+s," h").concat(e+1-p,"v1H").concat(p+s,"z"));return}o&&p===null&&(p=e)})}),v.join("")}function De(l,s,v,r){var m=r.width,p=r.height,o=r.x,e=r.y,t=l.length+v*2,a=Math.floor(s*.1),n=t/s,u=(m||a)*n,c=(p||a)*n,h=o==null?l.length/2-u/2:o*n,b=e==null?l.length/2-c/2:e*n,w=null;if(r.excavate){var F=Math.floor(h),N=Math.floor(b),P=Math.ceil(u+h-F),_=Math.ceil(c+b-N);w={x:F,y:N,w:P,h:_}}return{x:h,y:b,h:c,w:u,excavation:w}}function $e(l,s){return l.slice().map(function(v,r){return r<s.y||r>=s.y+s.h?v:v.map(function(m,p){return p<s.x||p>=s.x+s.w?m:!1})})}var Ce={value:{type:String,required:!0,default:""},size:{type:Number,default:100},level:{type:String,default:_e,validator:function(l){return we(l)}},background:{type:String,default:"#fff"},foreground:{type:String,default:"#000"},margin:{type:Number,required:!1,default:0},imageSettings:{type:Object,required:!1,default:function(){return{}}},gradient:{type:Boolean,required:!1,default:!1},gradientType:{type:String,required:!1,default:"linear",validator:function(l){return["linear","radial"].indexOf(l)>-1}},gradientStartColor:{type:String,required:!1,default:"#000"},gradientEndColor:{type:String,required:!1,default:"#fff"}},Ft=Y(Y({},Ce),{renderAs:{type:String,required:!1,default:"canvas",validator:function(l){return["canvas","svg"].indexOf(l)>-1}}}),Tt=ge({name:"QRCodeSvg",props:Ce,setup:function(l){var s=y(0),v=y(""),r,m=function(){var o=l.value,e=l.level,t=l.margin,a=t>>>0,n=we(e)?e:_e,u=re.QrCode.encodeText(o,be[n]).getModules();if(s.value=u.length+a*2,l.imageSettings.src){var c=De(u,l.size,a,l.imageSettings);r={x:c.x+a,y:c.y+a,width:c.w,height:c.h},c.excavation&&(u=$e(u,c.excavation))}v.value=Ue(u,a)},p=function(){if(!l.gradient)return null;var o=l.gradientType==="linear"?{x1:"0%",y1:"0%",x2:"100%",y2:"100%"}:{cx:"50%",cy:"50%",r:"50%",fx:"50%",fy:"50%"};return Q(l.gradientType==="linear"?"linearGradient":"radialGradient",Y({id:"qr-gradient"},o),[Q("stop",{offset:"0%",style:{stopColor:l.gradientStartColor}}),Q("stop",{offset:"100%",style:{stopColor:l.gradientEndColor}})])};return m(),Re(m),function(){return Q("svg",{width:l.size,height:l.size,"shape-rendering":"crispEdges",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(s.value," ").concat(s.value)},[Q("defs",{},[p()]),Q("rect",{width:"100%",height:"100%",fill:l.background}),Q("path",{fill:l.gradient?"url(#qr-gradient)":l.foreground,d:v.value}),l.imageSettings.src&&Q("image",Y({href:l.imageSettings.src},r))])}}}),It=ge({name:"QRCodeCanvas",props:Ce,setup:function(l,s){var v=y(null),r=y(null),m=function(){var o=l.value,e=l.level,t=l.size,a=l.margin,n=l.background,u=l.foreground,c=l.gradient,h=l.gradientType,b=l.gradientStartColor,w=l.gradientEndColor,F=a>>>0,N=we(e)?e:_e,P=v.value;if(P){var _=P.getContext("2d");if(_){var C=re.QrCode.encodeText(o,be[N]).getModules(),A=C.length+F*2,R=r.value,k={x:0,y:0,width:0,height:0},L=l.imageSettings.src&&R!=null&&R.naturalWidth!==0&&R.naturalHeight!==0;if(L){var x=De(C,l.size,F,l.imageSettings);k={x:x.x+F,y:x.y+F,width:x.w,height:x.h},x.excavation&&(C=$e(C,x.excavation))}var V=window.devicePixelRatio||1,T=t/A*V;if(P.height=P.width=t*V,_.scale(T,T),_.fillStyle=n,_.fillRect(0,0,A,A),c){var I=void 0;h==="linear"?I=_.createLinearGradient(0,0,A,A):I=_.createRadialGradient(A/2,A/2,0,A/2,A/2,A/2),I.addColorStop(0,b),I.addColorStop(1,w),_.fillStyle=I}else _.fillStyle=u;Nt?_.fill(new Path2D(Ue(C,F))):C.forEach(function(D,U){D.forEach(function(G,Oe){G&&_.fillRect(Oe+F,U+F,1,1)})}),L&&_.drawImage(R,k.x,k.y,k.width,k.height)}}};ve(m),Re(m);var p=s.attrs.style;return function(){return Q(z,[Q("canvas",Y(Y({},s.attrs),{ref:v,style:Y(Y({},p),{width:"".concat(l.size,"px"),height:"".concat(l.size,"px")})})),l.imageSettings.src&&Q("img",{ref:r,src:l.imageSettings.src,style:{display:"none"},onLoad:m})])}}}),Ut=ge({name:"Qrcode",render:function(){var l=this.$props,s=l.renderAs,v=l.value,r=l.size,m=l.margin,p=l.level,o=l.background,e=l.foreground,t=l.imageSettings,a=l.gradient,n=l.gradientType,u=l.gradientStartColor,c=l.gradientEndColor;return Q(s==="svg"?Tt:It,{value:v,size:r,margin:m,level:p,background:o,foreground:e,imageSettings:t,gradient:a,gradientType:n,gradientStartColor:u,gradientEndColor:c})},props:Ft});const Dt=ze({autofocus:Boolean,divider:String,focusAll:Boolean,label:{type:String,default:"$vuetify.input.otp"},length:{type:[Number,String],default:6},modelValue:{type:[Number,String],default:void 0},placeholder:String,type:{type:String,default:"number"},...vt(),...ht(),...Xe(lt({variant:"outlined"}),["baseColor","bgColor","class","color","disabled","error","loading","rounded","style","theme","variant"])},"VOtpInput"),$t=Le()({name:"VOtpInput",props:Dt(),emits:{finish:l=>!0,"update:focused":l=>!0,"update:modelValue":l=>!0},setup(l,s){let{attrs:v,emit:r,slots:m}=s;const{dimensionStyles:p}=ct(l),{isFocused:o,focus:e,blur:t}=mt(l),a=Be(l,"modelValue","",V=>V==null?[]:String(V).split(""),V=>V.join("")),{t:n}=Qe(),u=W(()=>Number(l.length)),c=W(()=>Array(u.value).fill(0)),h=y(-1),b=y(),w=y([]),F=W(()=>w.value[h.value]);let N=!1;He(()=>l.autofocus,()=>{const V=Ke();V.run(()=>{const{intersectionRef:T,isIntersecting:I}=ut();Ge(()=>{T.value=w.value[0]}),de(I,D=>{var U;D&&((U=T.value)==null||U.focus(),V.stop())})})});function P(){if(x(F.value.value)){F.value.value="";return}if(N)return;const V=a.value.slice(),T=F.value.value;V[h.value]=T;let I=null;h.value>a.value.length?I=a.value.length+1:h.value+1!==u.value&&(I="next"),a.value=V,I&&Ee(b.value,I)}function _(){N=!1,P()}function C(V){const T=a.value.slice(),I=h.value;let D=null;["ArrowLeft","ArrowRight","Backspace","Delete"].includes(V.key)&&(V.preventDefault(),V.key==="ArrowLeft"?D="prev":V.key==="ArrowRight"?D="next":["Backspace","Delete"].includes(V.key)&&(T[h.value]="",a.value=T,h.value>0&&V.key==="Backspace"?D="prev":requestAnimationFrame(()=>{var U;(U=w.value[I])==null||U.select()})),requestAnimationFrame(()=>{D!=null&&Ee(b.value,D)}))}function A(V,T){var U;T.preventDefault(),T.stopPropagation();const I=((U=T==null?void 0:T.clipboardData)==null?void 0:U.getData("Text").trim().slice(0,u.value))??"",D=I.length-1===-1?V:I.length-1;x(I)||(a.value=I.split(""),h.value=D)}function R(){a.value=[]}function k(V,T){e(),h.value=T}function L(){t(),h.value=-1}function x(V){return l.type==="number"&&/[^0-9]/g.test(V)}return Ye({VField:{color:j(()=>l.color),bgColor:j(()=>l.color),baseColor:j(()=>l.baseColor),disabled:j(()=>l.disabled),error:j(()=>l.error),variant:j(()=>l.variant),rounded:j(()=>l.rounded)}},{scoped:!0}),de(a,V=>{V.length===u.value&&r("finish",V.join(""))},{deep:!0}),de(h,V=>{V<0||qe(()=>{var T;(T=w.value[V])==null||T.select()})}),ft(()=>{var I;const[V,T]=We(v);return E("div",ke({class:["v-otp-input",{"v-otp-input--divided":!!l.divider},l.class],style:[l.style]},V),[E("div",{ref:b,class:"v-otp-input__content",style:Je([p.value])},[c.value.map((D,U)=>E(z,null,[l.divider&&U!==0&&E("span",{class:"v-otp-input__divider"},[l.divider]),i(rt,{focused:o.value&&l.focusAll||h.value===U,key:U},{...m,loader:void 0,default:()=>E("input",{ref:G=>w.value[U]=G,"aria-label":n(l.label,U+1),autofocus:U===0&&l.autofocus,autocomplete:"one-time-code",class:Ze(["v-otp-input__field"]),disabled:l.disabled,inputmode:l.type==="number"?"numeric":"text",min:l.type==="number"?0:void 0,maxlength:U===0?u.value:"1",placeholder:l.placeholder,type:l.type==="number"?"text":l.type,value:a.value[U],onInput:P,onFocus:G=>k(G,U),onBlur:L,onKeydown:C,onCompositionstart:()=>N=!0,onCompositionend:_,onPaste:G=>A(U,G)},null)})])),E("input",ke({class:"v-otp-input-input",type:"hidden"},T,{value:a.value.join("")}),null),i(it,{contained:!0,contentClass:"v-otp-input__loader",modelValue:!!l.loading,persistent:!0},{default:()=>{var D;return[((D=m.loader)==null?void 0:D.call(m))??i(dt,{color:typeof l.loading=="boolean"?void 0:l.loading,indeterminate:!0,size:"24",width:"2"},null)]}}),(I=m.default)==null?void 0:I.call(m)])])}),{blur:()=>{var V;(V=w.value)==null||V.some(T=>T.blur())},focus:()=>{var V;(V=w.value)==null||V[0].focus()},reset:R,isFocused:o}}}),xt={class:"text-h6"},Ot={class:"m-label"},Lt={class:"mt-4"},zt={class:"m-label"},Bt={class:"mt-5"},Qt={tag:"p",class:"my-4"},Ht={__name:"TotpAuthForm",setup(l){const{$gettext:s}=Z(),v=ne(),r=ue(),m=y(),p=y(""),o=y([]),e=y(null),t=y(null),a=y(!1),n=y(!1),u=y(""),c=y([]),h=y([]),b=y(!1),w=W(()=>r.authUser.totp_enabled);function F(){K.getKeyForTFASetup().then(A=>{e.value=A.data.key,t.value=A.data.url})}function N(){navigator.clipboard.writeText(e.value),a.value=!0}function P(){K.startTFASetup().then(()=>{F()})}function _(){r.finalizeTFASetup(p.value).then(A=>{e.value=null,t.value=null,A.status===200&&(h.value=A.data.tokens),b.value=!0}).catch(A=>{A.response.status===400&&(o.value=A.response.data.pin_code)})}async function C(){if(!await m.value.validate())return;const R={password:u.value};n.value=!0,K.disableTFA(R).then(()=>{r.fetchUser()}).catch(k=>{k.response.status===400?c.value=k.response.data.password:v.displayNotification({msg:s(k.response.data),type:"error"})}).finally(()=>{n.value=!1,m.value.reset()})}return(A,R)=>(M(),$("div",null,[i(X,{flat:""},{default:d(()=>[i(me,null,{default:d(()=>[E("span",xt,g(f(s)("One-time passwords")),1)]),_:1}),i(J,null,{default:d(()=>[t.value?(M(),O(ce,{key:0},{default:d(()=>[i(ie,{cols:"4"},{default:d(()=>[i(ce,{rows:"2"},{default:d(()=>[i(Ut,{value:t.value,size:250,"render-as":"svg",level:"H",class:"qrcode"},null,8,["value"])]),_:1}),i(ce,null,{default:d(()=>[i(B,{color:"primary",class:"key",onClick:N},{default:d(()=>[S(g(f(s)("Click here to copy the key"))+" ",1),a.value?(M(),O(he,{key:0,color:"success"},{default:d(()=>[...R[2]||(R[2]=[S(" mdi-check-all ",-1)])]),_:1})):q("",!0)]),_:1})]),_:1})]),_:1}),i(ie,{cols:"6"},{default:d(()=>[i(ee,{type:"info",class:"ma-4"},{default:d(()=>[S(g(f(s)("Install a soft token authenticator like FreeOTP or Google Authenticator from your application repository and use that app to scan this QR code.")),1)]),_:1}),E("label",Ot,g(f(s)("Pin code")),1),i($t,{modelValue:p.value,"onUpdate:modelValue":R[0]||(R[0]=k=>p.value=k),error:o.value.length!==0},null,8,["modelValue","error"]),i(B,{color:"primary",onClick:_},{default:d(()=>[S(g(f(s)("Register")),1)]),_:1})]),_:1})]),_:1})):b.value?(M(),$(z,{key:1},[i(ee,{type:"success"},{default:d(()=>[S(g(f(s)("Congratulations! Two-factor authentication using one-time passwords is now enabled for your account.")),1)]),_:1}),h.value.length?(M(),$(z,{key:0},[E("p",Lt,g(f(s)("The following recovery codes can be used one time each to let you regain access to your account, in case you lose your phone for example. Make sure to save them in a safe place, otherwise you won't be able to access your account anymore.")),1),i(Ne,{density:"compact"},{default:d(()=>[E("tbody",null,[(M(!0),$(z,null,Me(h.value,k=>(M(),$("tr",{key:k},[E("td",null,g(k),1)]))),128))])]),_:1})],64)):q("",!0)],64)):w.value?(M(),$(z,{key:2},[i(ee,{type:"info",class:"mb-2"},{default:d(()=>[S(g(f(s)("Two-factor authentication using one-time passwords is enabled for your account.")),1)]),_:1}),i(te,{ref_key:"editTFAForm",ref:m},{default:d(()=>[E("label",zt,g(f(s)("Password")),1),i(H,{modelValue:u.value,"onUpdate:modelValue":R[1]||(R[1]=k=>u.value=k),autocomplete:"new-password",type:"password",variant:"outlined",density:"compact",rules:[f(ae).required],"error-messages":c.value},null,8,["modelValue","rules","error-messages"]),E("div",Bt,[i(B,{color:"error",class:"mr-2",loading:n.value,onClick:C},{default:d(()=>[S(g(f(s)("Disable 2FA")),1)]),_:1},8,["loading"])])]),_:1},512)],64)):(M(),$(z,{key:3},[E("div",Qt,g(f(s)("Two-factor authentication (2FA) using one-time passwords is not yet activated for your account.")),1),i(B,{color:"success",onClick:P},{default:d(()=>[S(g(f(s)("Register authenticator")),1)]),_:1})],64))]),_:1})]),_:1})]))}},Kt={class:"headline"},xe={__name:"RecoveryCodesResetDialog",props:{tokens:{type:Array,default:null}},emits:["close"],setup(l,{emit:s}){const{$gettext:v}=Z(),r=s;function m(){r("close")}return(p,o)=>(M(),O(X,null,{default:d(()=>[i(me,null,{default:d(()=>[E("span",Kt,g(f(v)("New recovery codes")),1)]),_:1}),i(J,null,{default:d(()=>[i(ee,{type:"info"},{default:d(()=>[S(g(f(v)("The following recovery codes can be used one time each to let you regain access to your account, in case you lose your phone for example. Make sure to save them in a safe place, otherwise you won't be able to access your account anymore.")),1)]),_:1}),i(Ne,{class:"mt-4",density:"compact"},{default:d(()=>[E("tbody",null,[(M(!0),$(z,null,Me(l.tokens,e=>(M(),$("tr",{key:e},[E("td",null,g(e),1)]))),128))])]),_:1})]),_:1}),i(ye,null,{default:d(()=>[i(pt),i(B,{color:"grey darken-1",text:"",onClick:m},{default:d(()=>[S(g(f(v)("Close")),1)]),_:1})]),_:1})]),_:1}))}},Gt={class:"text-h6"},Yt={class:"m-label"},qt={class:"mt-5"},Wt={key:1,tag:"p",class:"my-4"},Jt={__name:"BackupCodeAuthForm",setup(l){const{$gettext:s}=Z(),v=ne(),r=ue(),m=W(()=>r.authUser.tfa_enabled),p=y(!1),o=y(),e=y(""),t=y([]),a=y(),n=y(!1);async function u(){if(!await o.value.validate())return;const b={password:e.value};p.value=!0,K.resetRecoveryCodes(b).then(w=>{t.value=w.data.tokens,n.value=!0}).catch(w=>{w.response.status===400?a.value=w.response.data.password:v.displayNotification({msg:s(w.response.data),type:"error"})}).finally(()=>{p.value=!1,o.value.reset()})}function c(){t.value=[],n.value=!1}return(h,b)=>(M(),$("div",null,[i(X,{flat:""},{default:d(()=>[i(me,null,{default:d(()=>[E("span",Gt,g(f(s)("Backup codes")),1)]),_:1}),i(J,null,{default:d(()=>[m.value?(M(),$(z,{key:0},[i(ee,{type:"info",class:"mb-2"},{default:d(()=>[S(g(f(s)("You already have generated backup codes for this account. If you don't remember them or have used them all, you can generate new ones.")),1)]),_:1}),i(te,{ref_key:"editTFAForm",ref:o},{default:d(()=>[E("label",Yt,g(f(s)("Password")),1),i(H,{modelValue:e.value,"onUpdate:modelValue":b[0]||(b[0]=w=>e.value=w),autocomplete:"new-password",type:"password",variant:"outlined",density:"compact",rules:[f(ae).required],"error-messages":a.value},null,8,["modelValue","rules","error-messages"]),E("div",qt,[i(B,{loading:p.value,color:"success",onClick:u},{default:d(()=>[S(g(f(s)("Reset recovery codes")),1)]),_:1},8,["loading"])])]),_:1},512)],64)):(M(),$("div",Wt,g(f(s)("No two-factor authentificator is yet set for your account.")),1)),i(Fe,{modelValue:n.value,"onUpdate:modelValue":b[1]||(b[1]=w=>n.value=w),"max-width":"800px",persistent:""},{default:d(()=>[i(f(xe),{tokens:t.value,onClose:c},null,8,["tokens"])]),_:1},8,["modelValue"])]),_:1})]),_:1})]))}},Xt={class:"m-label"},Zt={__name:"ForwardForm",setup(l){const{$gettext:s}=Z(),v=ne(),r=y({}),m=y(!1);async function p(){m.value=!0;try{await K.setForward(r.value),v.displayNotification({type:"success",msg:s("Forward updated")})}finally{m.value=!1}}return K.getForward().then(o=>{r.value=o.data}),(o,e)=>(M(),O(X,{flat:""},{default:d(()=>[i(J,null,{default:d(()=>[E("label",Xt,g(f(s)("Recipient(s)")),1),i(Te,{modelValue:r.value.recipients,"onUpdate:modelValue":e[0]||(e[0]=t=>r.value.recipients=t),hint:f(s)("Indicate one or more recipients separated by a comma (,)"),"persistent-hint":"",rows:"3",variant:"outlined"},null,8,["modelValue","hint"]),i(Ie,{modelValue:r.value.keepcopies,"onUpdate:modelValue":e[1]||(e[1]=t=>r.value.keepcopies=t),label:f(s)("Keep local copies"),hint:f(s)("Forward messages and store copies into your local mailbox"),"persistent-hint":""},null,8,["modelValue","label","hint"])]),_:1}),i(ye,{class:"pa-4"},{default:d(()=>[i(B,{color:"success",variant:"flat",loading:m.value,onClick:p},{default:d(()=>[S(g(f(s)("Update")),1)]),_:1},8,["loading"])]),_:1})]),_:1}))}},jt={class:"m-label"},ea={class:"mb-4"},ta={class:"m-label"},aa={class:"mb-4"},oa={class:"m-label"},na={class:"mb-4"},ra={class:"m-label"},la={__name:"AutoReplyForm",setup(l){const s=ne(),{$gettext:v}=Z(),r=y({}),m=y(),p=y(!1);async function o(){const{valid:e}=await m.value.validate();e&&(p.value=!0,r.value.fromdate===""&&(r.value.fromdate=null),r.value.untildate===""&&(r.value.untildate=null),K.setARMessage(r.value).then(()=>{s.displayNotification({msg:v("Auto-reply message updated")}),p.value=!1}).catch(()=>{p.value=!1}))}return K.getARMessage().then(e=>{r.value=e.data,r.value.fromdate&&(r.value.fromdate=r.value.fromdate.slice(0,-6)),r.value.untildate&&(r.value.untildate=r.value.untildate.slice(0,-6))}),(e,t)=>(M(),O(X,{flat:""},{default:d(()=>[i(J,null,{default:d(()=>[i(te,{ref_key:"formRef",ref:m,onSubmit:fe(o,["prevent"])},{default:d(()=>[i(Ie,{modelValue:r.value.enabled,"onUpdate:modelValue":t[0]||(t[0]=a=>r.value.enabled=a),label:f(v)("Enabled"),color:"primary","hide-details":"",class:"mb-4"},null,8,["modelValue","label"]),E("label",jt,g(f(v)("Subject")),1),i(H,{modelValue:r.value.subject,"onUpdate:modelValue":t[1]||(t[1]=a=>r.value.subject=a),variant:"outlined",density:"compact",rules:[f(ae).required]},null,8,["modelValue","rules"]),E("div",ea,[E("label",ta,g(f(v)("Content")),1),i(Te,{modelValue:r.value.content,"onUpdate:modelValue":t[2]||(t[2]=a=>r.value.content=a),hint:f(v)("The content of your answer. You can use the following variables, which will be automatically replaced by the appropriate value: %(name)s, %(fromdate)s, %(untildate)s"),"persistent-hint":"",variant:"outlined",rows:"3",density:"compact",rules:[f(ae).required]},null,8,["modelValue","hint","rules"])]),E("div",aa,[E("label",oa,g(f(v)("From")),1),i(H,{modelValue:r.value.fromdate,"onUpdate:modelValue":t[3]||(t[3]=a=>r.value.fromdate=a),hint:f(v)("Activate your auto reply from this date"),variant:"outlined","persistent-hint":"",type:"datetime-local",density:"compact"},null,8,["modelValue","hint"])]),E("div",na,[E("label",ra,g(f(v)("Until")),1),i(H,{modelValue:r.value.untildate,"onUpdate:modelValue":t[4]||(t[4]=a=>r.value.untildate=a),hint:f(v)("Activate your auto reply until this date"),variant:"outlined","persistent-hint":"",type:"datetime-local",density:"compact"},null,8,["modelValue","hint"])]),i(B,{color:"success",type:"submit",loading:p.value},{default:d(()=>[S(g(f(v)("Update auto-reply")),1)]),_:1},8,["loading"])]),_:1},512)]),_:1})]),_:1}))}},sa={class:"m-label"},ia={class:"ml-5 mr-5"},ua=["href"],da={__name:"APISetupForm",setup(l){const{$gettext:s}=Z(),v=ne(),r=je("$config"),m=W(()=>r.API_DOC_URL),p=y(!1),o=y(null),e=y();function t(){navigator.clipboard.writeText(o.value),v.displayNotification({msg:s("API token copied to your clipboard"),type:"success"})}function a(){p.value=!0,K.createAPIToken().then(c=>{o.value=c.data.token,v.displayNotification({msg:s("API token created"),type:"success"})}).finally(()=>p.value=!1)}function n(){e.value.open(s("Warning"),s("You are about to delete your API access token"),{color:"error",cancelLabel:s("Cancel"),agreeLabel:s("Proceed")})}async function u(){await K.deleteAPIToken(),v.displayNotification({msg:s("API token deleted"),type:"success"}),o.value=null}return ve(()=>{K.getAPIToken().then(c=>{o.value=c.data.token})}),(c,h)=>(M(),$(z,null,[o.value?(M(),O(X,{key:1,flat:""},{default:d(()=>[i(J,null,{default:d(()=>[E("label",sa,g(f(s)("Your API token is:")),1),E("code",ia,g(o.value),1),i(B,{icon:"mdi-clipboard-plus",density:"compact",title:f(s)("Copy token to clipboard"),variant:"text",onClick:h[0]||(h[0]=b=>t())},null,8,["title"]),i(B,{icon:"mdi-delete",density:"compact",color:"error",variant:"text",title:f(s)("Delete token"),onClick:n},null,8,["title"])]),_:1})]),_:1})):(M(),O(X,{key:0,flat:""},{default:d(()=>[i(J,null,{default:d(()=>[S(g(f(s)("Your API token has not been generated yet.")),1)]),_:1}),i(ye,null,{default:d(()=>[i(B,{color:"success",variant:"flat",loading:p.value,onClick:a},{default:d(()=>[S(g(f(s)("Generate")),1)]),_:1},8,["loading"])]),_:1})]),_:1})),i(ee,{type:"info",variant:"tonal",border:"start",class:"mt-4"},{default:d(()=>[S(g(f(s)("A documentation of the API is available"))+" ",1),E("a",{href:m.value,target:"_blank"},g(f(s)("here")),9,ua),h[1]||(h[1]=S(". ",-1))]),_:1}),i(pe,{ref_key:"confirm",ref:e,onAgree:u},null,512)],64))}},ca={class:"text-h6"},fa={tag:"p",class:"my-4"},va={__name:"FidoAuthForm",setup(l){const s=ue(),v=ne(),{$gettext:r}=Z(),m=y(),p=y(!1),o=!!(navigator.credentials&&navigator.credentials.create&&navigator.credentials.get&&PublicKeyCredential.parseCreationOptionsFromJSON),e=y(),t=W(()=>s.fidoCreds),a=[{title:r("Name"),key:"name"},{title:r("Added On"),key:"added_on"},{title:r("Last Used"),key:"last_used"},{title:r("Use count"),key:"use_count"},{title:r("Actions"),key:"actions"}],n=y(),u=y(),c=y(),h=y(""),b=y(),w=y(!1);async function F(){const{valid:A}=await e.value.validate();if(!A)return;p.value=!0;const R=await et.beginFidoRegistration();if(R){const k=PublicKeyCredential.parseCreationOptionsFromJSON(R.data.publicKey);navigator.credentials.create({publicKey:k}).then(L=>{const x=L.toJSON();x.name=m.value,s.addFidoCred(x).then(V=>{V.status===200&&(b.value=V.data.tokens,w.value=!0)}),e.value.reset(),p.value=!1}).catch(L=>{console.log(L),e.value.reset(),p.value=!1,v.displayNotification({msg:r("Failed to register the webAuthN device"),type:"error"})})}p.value=!1}function N(){b.value=[],w.value=!1}async function P(A){await n.value.open(r("Warning"),r("Do you really want to delete this WebAuthn device?"),{color:"warning",cancelLabel:r("No"),agreeLabel:r("Yes")})&&s.deleteFidoCreds(A.id)}async function _(){return(await c.value.validate()).valid}async function C(A){if(h.value=A.name,!await u.value.open(r("Edition"),r("Edit your device"),{color:"warning",cancelLabel:r("Cancel"),agreeLabel:r("Save")}))return;const k={name:h.value};await s.editFidoCred(A.id,k)}return ve(()=>{s.getFidoCreds()}),(A,R)=>(M(),$(z,null,[E("div",null,[i(X,{flat:""},{default:d(()=>[i(me,null,{default:d(()=>[E("span",ca,g(f(r)("WebAuthn")),1)]),_:1}),i(J,null,{default:d(()=>[i(ce,null,{default:d(()=>[t.value.length===0?(M(),O(ie,{key:0,cols:"4"},{default:d(()=>[E("div",fa,g(f(r)("You don't have any WebAuthN device registered as a second authentication method.")),1)]),_:1})):(M(),O(ie,{key:1,cols:"8"},{default:d(()=>[E("h3",null,g(f(r)("Registered Webauthn devices")),1),i(gt,{headers:a,items:t.value,"item-value":"id"},{"item.added_on":d(({item:k})=>[S(g(A.$date(k.added_on)),1)]),"item.last_used":d(({item:k})=>[k.last_used===null?(M(),$(z,{key:0},[S(g(f(r)("Never")),1)],64)):(M(),$(z,{key:1},[S(g(A.$date(k.last_used)),1)],64))]),"item.enabled":d(({item:k})=>[S(g(A.$yesno(k.enabled)),1)]),"item.actions":d(({item:k})=>[i(he,{class:"me-2",size:"small",onClick:L=>C(k)},{default:d(()=>[...R[3]||(R[3]=[S(" mdi-pencil ",-1)])]),_:1},8,["onClick"]),i(he,{size:"small",onClick:L=>P(k)},{default:d(()=>[...R[4]||(R[4]=[S(" mdi-delete ",-1)])]),_:1},8,["onClick"])]),_:2},1032,["items"])]),_:1})),i(ie,{cols:"4"},{default:d(()=>[o?(M(),$(z,{key:0},[E("h3",null,g(f(r)("Enter a name to register a new webauthn device.")),1),i(te,{ref_key:"fidoForm",ref:e,onSubmit:fe(F,["prevent"])},{default:d(()=>[i(H,{modelValue:m.value,"onUpdate:modelValue":R[0]||(R[0]=k=>m.value=k),label:f(r)("New device name"),rules:[f(ae).required]},null,8,["modelValue","label","rules"]),i(B,{color:"success",type:"submit",loading:p.value},{default:d(()=>[S(g(f(r)("Setup device")),1)]),_:1},8,["loading"])]),_:1},512)],64)):(M(),O(ee,{key:1,type:"error"},{default:d(()=>[S(g(f(r)("Your browser does not seem compatible with WebAuthN")),1)]),_:1}))]),_:1})]),_:1})]),_:1})]),_:1})]),i(pe,{ref_key:"confirmDeletion",ref:n},null,512),i(pe,{ref_key:"confirmEdition",ref:u,callback_agree:_},{default:d(()=>[i(te,{ref_key:"editForm",ref:c},{default:d(()=>[i(H,{modelValue:h.value,"onUpdate:modelValue":R[1]||(R[1]=k=>h.value=k),label:f(r)("name"),rules:[f(ae).required]},null,8,["modelValue","label","rules"])]),_:1},512)]),_:1},512),i(Fe,{modelValue:w.value,"onUpdate:modelValue":R[2]||(R[2]=k=>w.value=k),"max-width":"800px",persistent:""},{default:d(()=>[i(xe,{tokens:b.value,onClose:N},null,8,["tokens"])]),_:1},8,["modelValue"])],64))}},ma={class:"pa-4"},ha={__name:"SettingsView",setup(l){const s=ue(),v=y();return(r,m)=>(M(),$("div",null,[i(yt,{flat:""},{default:d(()=>[i(_t,null,{default:d(()=>[S(g(r.$gettext("Account settings")),1)]),_:1})]),_:1}),E("div",ma,[i(bt,{modelValue:v.value,"onUpdate:modelValue":m[0]||(m[0]=p=>v.value=p),color:"primary",class:"mb-4"},{default:d(()=>[i(le,{value:"profile"},{default:d(()=>[S(g(r.$gettext("Profile")),1)]),_:1}),i(le,{value:"security"},{default:d(()=>[S(g(r.$gettext("Two-factor auth")),1)]),_:1}),f(s).userHasMailbox?(M(),O(le,{key:0,value:"forward"},{default:d(()=>[S(g(r.$gettext("Forward")),1)]),_:1})):q("",!0),f(s).userHasMailbox?(M(),O(le,{key:1,value:"autoreply"},{default:d(()=>[S(g(r.$gettext("Auto-reply message")),1)]),_:1})):q("",!0),f(s).authUser.role===f(Ae).SUPER_ADMIN?(M(),O(le,{key:2,value:"api"},{default:d(()=>[S(g(r.$gettext("API access")),1)]),_:1})):q("",!0)]),_:1},8,["modelValue"]),i(wt,{modelValue:v.value,"onUpdate:modelValue":m[1]||(m[1]=p=>v.value=p)},{default:d(()=>[i(se,{value:"profile"},{default:d(()=>[i(Mt)]),_:1}),i(se,{value:"security"},{default:d(()=>[i(Ht),i(va),i(Jt)]),_:1}),f(s).userHasMailbox?(M(),O(se,{key:0,value:"forward"},{default:d(()=>[i(Zt)]),_:1})):q("",!0),f(s).userHasMailbox?(M(),O(se,{key:1,value:"autoreply"},{default:d(()=>[i(la)]),_:1})):q("",!0),f(s).authUser.role===f(Ae).SUPER_ADMIN?(M(),O(se,{key:2,value:"api"},{default:d(()=>[i(da)]),_:1})):q("",!0)]),_:1},8,["modelValue"])])]))}},Xa=tt(ha,[["__scopeId","data-v-35822e11"]]);export{Xa as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{T as r}from"./TimeSerieChart-CdqUHiO_.js";import{J as d,K as _,e as y,a2 as g,z as V,_ as h,m as S,a,w as t,F as v,o as C,l as L,t as k}from"./index-jui3edpn.js";import{V as T,a as w}from"./VToolbar-CB6wwtYc.js";import{a as x,u as z,m as P,b}from"./tag-WF93n81Q.js";import{c as B,m as D}from"./layout-DOO7TRTJ.js";import{V as F,a as i}from"./VRow-83Qnr5iB.js";import"./VDatePicker-iFu13xIP.js";import"./VAvatar-CXV_FqpP.js";import"./VProgressCircular-DRw_-iNj.js";import"./VSpacer-CuSkdJZL.js";/* empty css */import"./VBadge-7tDx7aI3.js";import"./VPicker-BZho70wU.js";import"./VSheet-C3MaHhtw.js";import"./VTextField-BPIvtrn4.js";import"./VInput-BwHvhzAe.js";import"./VMenu-BpmJf4X2.js";import"./ssrBoot-B7cr7q9U.js";import"./VContainer-Cn-vKB3s.js";import"./VCard-CBtX8JF-.js";const N=_({...b(),...P(),...D()},"VLayout"),R=d()({name:"VLayout",props:N(),setup(e,s){let{slots:o}=s;const{layoutClasses:c,layoutStyles:l,getLayoutItem:p,items:n,layoutRef:u}=B(e),{dimensionStyles:f}=x(e);return z(()=>{var m;return y("div",{ref:u,class:V([c.value,e.class]),style:g([f.value,l.value,e.style])},[(m=o.default)==null?void 0:m.call(o)])}),{getLayoutItem:p,items:n}}}),I={__name:"StatisticsView",setup(e){return(s,o)=>(C(),S(v,null,[a(T,{flat:""},{default:t(()=>[a(w,null,{default:t(()=>[L(k(s.$gettext("Statistics")),1)]),_:1})]),_:1}),a(R,{class:"pa-2"},{default:t(()=>[a(F,{class:"mt-2"},{default:t(()=>[a(i,{cols:"12"},{default:t(()=>[a(r,{"graphic-set":"mailtraffic","graphic-name":"averagetraffic"})]),_:1}),a(i,{cols:"12"},{default:t(()=>[a(r,{"graphic-set":"mailtraffic","graphic-name":"averagetrafficsize"})]),_:1}),a(i,{cols:"12"},{default:t(()=>[a(r,{"graphic-set":"accountgraphicset","graphic-name":"accountcreationgraphic"})]),_:1})]),_:1})]),_:1})],64))}},oa=h(I,[["__scopeId","data-v-e568dd55"]]);export{oa as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{E as P,i as u,c as h,o as p,w as e,a,x as w,_ as U,b as $,j,d as z,A as M,r as q,l as _,t as m,e as x,f,m as S,F as E,v as O,n as k}from"./index-jui3edpn.js";import{V as R}from"./VDatePicker-iFu13xIP.js";import{V as Y}from"./VTextField-BPIvtrn4.js";import{V as B,a as G,b as Q,c as W}from"./VMenu-BpmJf4X2.js";import{V as H,a as J}from"./VToolbar-CB6wwtYc.js";import{V as K}from"./VSpacer-CuSkdJZL.js";import{V as X}from"./VContainer-Cn-vKB3s.js";import{V as Z,a as C}from"./VRow-83Qnr5iB.js";import{V as T}from"./VAvatar-CXV_FqpP.js";import{V as ee,a as ae}from"./VCard-CBtX8JF-.js";const te="statistics",le={getStatistics({graphSet:i,period:t,graphicName:l,searchQuery:g,start:d,end:o}){const v={gset:i,period:t,graphic:l,searchquery:g,start:d,end:o};return P.get(`${te}/`,{params:v})}},N={__name:"DateField",props:{modelValue:{type:Object,default:null},label:{type:String,default:""}},setup(i){const t=u(!1);function l(){t.value=!1}return(g,d)=>(p(),h(B,{modelValue:t.value,"onUpdate:modelValue":d[0]||(d[0]=o=>t.value=o),"close-on-content-click":!1,transition:"scale-transition","offset-y":"","min-width":"auto"},{activator:e(({props:o})=>[a(Y,w({value:i.modelValue,label:i.label,"prepend-icon":"mdi-calendar",readonly:"",variant:"underlined"},o),null,16,["value","label"])]),default:e(()=>[a(R,{value:i.modelValue,"no-title":"",onInput:l},null,8,["value"])]),_:1},8,["modelValue"]))}},se={key:0},oe={class:"text-subtitle-1"},ne={class:"text-subtitle-1"},re={__name:"TimeSerieChart",props:{domain:{type:Object,required:!1,default:null},graphicSet:{type:String,default:null},graphicName:{type:String,default:null}},setup(i){const{$gettext:t}=$(),l=i,g=j(()=>V.value?V.value.title:""),d=u(!1),o=u({chart:{type:"area",stacked:!1,zoom:{type:"x",enabled:!0,autoScaleYaxis:!0},toolbar:{autoSelected:"zoom"}},dataLabels:{enabled:!1},yaxis:{},xaxis:{type:"datetime"}}),v=u(null),y=u(null),V=u(null),c=u("day"),F=u([{value:"day",name:t("Day")},{value:"week",name:t("Week")},{value:"month",name:t("Month")},{value:"year",name:t("Year")}]);function L(){return l.graphicName==="averagetraffic"?["#ff6347","#ffff00","#4682B4","#7cfc00","#ffa500","#d3d3d3"]:["#ffa500","#41d1cc"]}function A(){c.value="custom",b()}function D(n){n!==c.value&&(c.value=n,b())}function b(){const n={graphSet:l.graphicSet,period:c.value,graphicName:l.graphicName};l.domain&&(n.searchQuery=l.domain.name),c.value==="custom"&&(n.start=y.value,n.end=v.value),le.getStatistics(n).then(r=>{V.value=r.data.graphs[l.graphicName]})}return z(()=>{b()}),M(()=>l.graphicName,()=>{o.value.colors=L()},{immediate:!0}),(n,r)=>{const I=q("apexchart");return p(),h(ae,null,{default:e(()=>[a(H,{dense:"",elevation:"0"},{default:e(()=>[a(J,null,{default:e(()=>[_(m(g.value),1)]),_:1}),a(K),a(B,{modelValue:d.value,"onUpdate:modelValue":r[2]||(r[2]=s=>d.value=s),"offset-y":""},{activator:e(({props:s})=>[a(T,w({size:"small"},s,{"prepend-icon":"mdi-calendar"}),{default:e(()=>[_(m(f(t)("Period"))+" ",1),c.value?(p(),S("span",se,": "+m(c.value),1)):k("",!0)]),_:1},16)]),default:e(()=>[a(X,{class:"bg-white",fluid:""},{default:e(()=>[a(Z,{"no-gutters":""},{default:e(()=>[a(C,{cols:"12",md:"6",class:"pr-2"},{default:e(()=>[x("div",oe,m(f(t)("Absolute time range")),1),a(N,{modelValue:y.value,"onUpdate:modelValue":r[0]||(r[0]=s=>y.value=s),label:f(t)("From")},null,8,["modelValue","label"]),a(N,{modelValue:v.value,"onUpdate:modelValue":r[1]||(r[1]=s=>v.value=s),label:f(t)("To")},null,8,["modelValue","label"]),a(T,{color:"primary",onClick:A},{default:e(()=>[_(m(f(t)("Apply")),1)]),_:1})]),_:1}),a(C,{cols:"12",md:"6"},{default:e(()=>[x("div",ne,m(f(t)("Relative time ranges")),1),a(G,null,{default:e(()=>[(p(!0),S(E,null,O(F.value,s=>(p(),h(Q,{key:s.value,onClick:ue=>D(s.value)},{default:e(()=>[a(W,null,{default:e(()=>[_(m(s.name),1)]),_:2},1024)]),_:2},1032,["onClick"]))),128))]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(ee,null,{default:e(()=>[V.value?(p(),h(I,{key:0,type:"area",height:"350",options:o.value,series:V.value.series},null,8,["options","series"])):k("",!0)]),_:1})]),_:1})}}},he=U(re,[["__scopeId","data-v-9510c555"]]);export{he as T};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.v-card[data-v-9510c555]{z-index:5}.v-menu__content[data-v-9510c555]{background-color:#fff!important}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as o,f as r,o as m}from"./index-jui3edpn.js";import{_ as p}from"./ConnectedLayout-BP8pO27H.js";import{u as e}from"./layout.store-C0g-piJn.js";import"./theme-_0oOYChG.js";import"./VContainer-Cn-vKB3s.js";/* empty css */import"./tag-WF93n81Q.js";import"./VApp-DM1KLQfQ.js";import"./layout-DOO7TRTJ.js";import"./ssrBoot-B7cr7q9U.js";import"./logos-Dz2Gzei-.js";import"./VAvatar-CXV_FqpP.js";import"./VProgressCircular-DRw_-iNj.js";import"./VMenu-BpmJf4X2.js";import"./VBadge-7tDx7aI3.js";import"./VCard-CBtX8JF-.js";import"./VRow-83Qnr5iB.js";import"./VSheet-C3MaHhtw.js";const b={__name:"UserLayout",setup(i){const t=e();return(s,a)=>(m(),o(p,{"menu-items":r(t).leftMenuItems},null,8,["menu-items"]))}};export{b as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{f as
|
|
1
|
+
import{f as p,y as w,s as E,l as M,S as R,D as j,n as O,z as J,o as K,E as q,F as G,p as H,t as Q,g as U,c as W,e as y,V as X}from"./VAvatar-CXV_FqpP.js";import{b as Y}from"./VProgressCircular-DRw_-iNj.js";import{a as Z,c as ee,m as ae,b as te}from"./tag-WF93n81Q.js";import{K as P,j as le,J as ne,P as oe,a9 as f,af as se,L as ie,a as l,a2 as S,z as b,ag as re,N as ce,e as o,x as k}from"./index-jui3edpn.js";const ue=p("v-alert-title"),de=P({iconSize:[Number,String],iconSizes:{type:Array,default:()=>[["x-small",10],["small",16],["default",24],["large",28],["x-large",32]]}},"iconSize");function me(e,s){return{iconSize:le(()=>{const a=new Map(e.iconSizes),t=e.iconSize??s()??"default";return a.has(t)?a.get(t):t})}}const ve=["success","info","warning","error"],ye=P({border:{type:[Boolean,String],validator:e=>typeof e=="boolean"||["top","end","bottom","start"].includes(e)},borderColor:String,closable:Boolean,closeIcon:{type:ce,default:"$close"},closeLabel:{type:String,default:"$vuetify.close"},icon:{type:[Boolean,String,Function,Object],default:null},modelValue:{type:Boolean,default:!0},prominent:Boolean,title:String,text:String,type:{type:String,validator:e=>ve.includes(e)},...te(),...Q(),...ae(),...H(),...de(),...G(),...q(),...K(),...ee(),...re(),...J({variant:"flat"})},"VAlert"),Pe=ne()({name:"VAlert",props:ye(),emits:{"click:close":e=>!0,"update:modelValue":e=>!0},setup(e,s){let{emit:c,slots:a}=s;const t=oe(e,"modelValue"),i=f(()=>{if(e.icon!==!1)return e.type?e.icon??`$${e.type}`:e.icon}),{iconSize:z}=me(e,()=>e.prominent?44:void 0),{themeClasses:V}=se(e),{colorClasses:g,colorStyles:C,variantClasses:x}=w(()=>({color:e.color??e.type,variant:e.variant})),{densityClasses:_}=E(e),{dimensionStyles:B}=Z(e),{elevationClasses:I}=M(e),{locationStyles:h}=R(e),{positionClasses:A}=j(e),{roundedClasses:T}=O(e),{textColorClasses:D,textColorStyles:L}=Y(()=>e.borderColor),{t:$}=ie(),u=f(()=>({"aria-label":$(e.closeLabel),onClick(r){t.value=!1,c("click:close",r)}}));return()=>{const r=!!(a.prepend||i.value),F=!!(a.title||e.title),N=!!(a.close||e.closable),d={density:e.density,icon:i.value,size:e.iconSize||e.prominent?z.value:void 0};return t.value&&l(e.tag,{class:b(["v-alert",e.border&&{"v-alert--border":!!e.border,[`v-alert--border-${e.border===!0?"start":e.border}`]:!0},{"v-alert--prominent":e.prominent},V.value,g.value,_.value,I.value,A.value,T.value,x.value,e.class]),style:S([C.value,B.value,h.value,e.style]),role:"alert"},{default:()=>{var m,v;return[U(!1,"v-alert"),e.border&&o("div",{key:"border",class:b(["v-alert__border",D.value]),style:S(L.value)},null),r&&o("div",{key:"prepend",class:"v-alert__prepend"},[a.prepend?l(y,{key:"prepend-defaults",disabled:!i.value,defaults:{VIcon:{...d}}},a.prepend):l(W,k({key:"prepend-icon"},d),null)]),o("div",{class:"v-alert__content"},[F&&l(ue,{key:"title"},{default:()=>{var n;return[((n=a.title)==null?void 0:n.call(a))??e.title]}}),((m=a.text)==null?void 0:m.call(a))??e.text,(v=a.default)==null?void 0:v.call(a)]),a.append&&o("div",{key:"append",class:"v-alert__append"},[a.append()]),N&&o("div",{key:"close",class:"v-alert__close"},[a.close?l(y,{key:"close-defaults",defaults:{VBtn:{icon:e.closeIcon,size:"x-small",variant:"text"}}},{default:()=>{var n;return[(n=a.close)==null?void 0:n.call(a,{props:u.value})]}}):l(X,k({key:"close-btn",icon:e.closeIcon,size:"x-small",variant:"text"},u.value),null)])]}})}}});export{Pe as V,de as m,me as u};
|