modoboa 2.4.10__py3-none-any.whl → 2.5.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/v1/serializers.py +1 -0
- modoboa/admin/api/v2/serializers.py +15 -1
- modoboa/admin/api/v2/tests.py +11 -1
- modoboa/admin/lib.py +1 -1
- modoboa/admin/models/mailbox.py +15 -13
- modoboa/admin/models/mxrecord.py +4 -0
- modoboa/admin/tests/test_import_.py +11 -11
- modoboa/amavis/__init__.py +3 -0
- modoboa/amavis/app_settings.py +276 -0
- modoboa/amavis/apps.py +18 -0
- modoboa/amavis/checks/__init__.py +2 -0
- modoboa/amavis/checks/settings_checks.py +59 -0
- modoboa/amavis/dbrouter.py +35 -0
- modoboa/amavis/factories.py +164 -0
- modoboa/amavis/handlers.py +146 -0
- modoboa/amavis/lib.py +381 -0
- modoboa/amavis/management/__init__.py +0 -0
- modoboa/amavis/management/commands/__init__.py +0 -0
- modoboa/amavis/management/commands/amnotify.py +99 -0
- modoboa/amavis/management/commands/qcleanup.py +84 -0
- modoboa/amavis/migrations/0001_initial.py +340 -0
- modoboa/amavis/migrations/__init__.py +0 -0
- modoboa/amavis/models.py +226 -0
- modoboa/amavis/serializers.py +139 -0
- modoboa/amavis/sql_connector.py +240 -0
- modoboa/amavis/sql_email.py +66 -0
- modoboa/amavis/tasks.py +33 -0
- modoboa/amavis/templates/amavis/notifications/pending_requests.html +16 -0
- modoboa/amavis/tests/__init__.py +0 -0
- modoboa/amavis/tests/sa-learn +3 -0
- modoboa/amavis/tests/sample_messages/quarantined-input.txt +80 -0
- modoboa/amavis/tests/sample_messages/quarantined-output-plain_nolinks.txt +17 -0
- modoboa/amavis/tests/spamc +3 -0
- modoboa/amavis/tests/test_checks.py +25 -0
- modoboa/amavis/tests/test_handlers.py +214 -0
- modoboa/amavis/tests/test_lib.py +90 -0
- modoboa/amavis/tests/test_management_commands.py +45 -0
- modoboa/amavis/tests/test_sql_email.py +67 -0
- modoboa/amavis/tests/test_utils.py +19 -0
- modoboa/amavis/tests/test_viewsets.py +319 -0
- modoboa/amavis/urls.py +11 -0
- modoboa/amavis/utils.py +105 -0
- modoboa/amavis/viewsets.py +265 -0
- modoboa/core/api/v1/serializers.py +7 -5
- modoboa/core/api/v2/serializers.py +13 -2
- modoboa/core/api/v2/tests.py +34 -4
- modoboa/core/api/v2/urls.py +10 -5
- modoboa/core/api/v2/views.py +23 -2
- modoboa/core/api/v2/viewsets.py +24 -3
- modoboa/core/app_settings.py +11 -0
- modoboa/core/fido2_auth.py +1 -2
- modoboa/core/handlers.py +6 -2
- modoboa/core/management/commands/add_allowed_hosts.py +33 -0
- modoboa/core/management/commands/cleanlogs.py +9 -0
- modoboa/core/management/commands/load_initial_data.py +10 -0
- modoboa/core/migrations/0025_rename_user_email_is_active_core_user_email_c0c03f_idx.py +23 -5
- modoboa/core/tests/test_core.py +29 -0
- modoboa/core/utils.py +6 -0
- modoboa/dnstools/api/v2/serializers.py +9 -11
- modoboa/frontend_dist/assets/AccountAliasForm-BuSy_1n9.js +1 -0
- modoboa/frontend_dist/assets/AccountEditView-qdJmLM_e.js +1 -0
- modoboa/frontend_dist/assets/AccountLayout-DrN7vHsX.js +1 -0
- modoboa/frontend_dist/assets/AccountPasswordSubForm-DZGt_Xgq.js +1 -0
- modoboa/frontend_dist/assets/AccountView-CO65y0vZ.js +1 -0
- modoboa/frontend_dist/assets/AddressBook-BZNUlhek.js +1 -0
- modoboa/frontend_dist/assets/AdminLayout-CTNhuwTw.js +1 -0
- modoboa/frontend_dist/assets/AlarmsView-9yKGbmkC.css +1 -0
- modoboa/frontend_dist/assets/AlarmsView-DN_JIw9g.js +1 -0
- modoboa/frontend_dist/assets/AliasEditView-DjpPUTp9.js +1 -0
- modoboa/frontend_dist/assets/{AliasRecipientForm-DVZXWaUX.js → AliasRecipientForm-B1Y8wFdP.js} +1 -1
- modoboa/frontend_dist/assets/AliasView-GOJ5lyQH.js +1 -0
- modoboa/frontend_dist/assets/AuditTrailView-fbXmq70e.js +1 -0
- modoboa/frontend_dist/assets/CalendarView-LlQQNEPL.js +1 -0
- modoboa/frontend_dist/assets/{ChoiceField-7eU7c_rI.js → ChoiceField-B3ReQHVe.js} +1 -1
- modoboa/frontend_dist/assets/ComposeEmailForm-Bs1fZXAL.js +1 -0
- modoboa/frontend_dist/assets/ComposeEmailView-s3LMl3pO.js +1 -0
- modoboa/frontend_dist/assets/ConfirmDialog-DY_kUHLG.js +1 -0
- modoboa/frontend_dist/assets/{ConnectedLayout-BaJZ3BeR.css → ConnectedLayout-Bxh21hcH.css} +1 -1
- modoboa/frontend_dist/assets/ConnectedLayout-UWjiYBNw.js +1 -0
- modoboa/frontend_dist/assets/CreationForm-ORg3fazt.js +1 -0
- modoboa/frontend_dist/assets/DashboardView-Dplk9itS.js +1 -0
- modoboa/frontend_dist/assets/{DashboardView-BLlMi6Qb.css → DashboardView-gwwVAPvt.css} +1 -1
- modoboa/frontend_dist/assets/DomainAdminList-DVn9x0rB.js +1 -0
- modoboa/frontend_dist/assets/DomainEditView-nAoL64D_.js +1 -0
- modoboa/frontend_dist/assets/{DomainTransportForm-DPnPGBOp.js → DomainTransportForm-CA-DNUxX.js} +1 -1
- modoboa/frontend_dist/assets/{DomainView-BDKoBFYr.css → DomainView-CCLYXPHx.css} +1 -1
- modoboa/frontend_dist/assets/DomainView-CdXPpwJG.js +5 -0
- modoboa/frontend_dist/assets/DomainsView-B_59gowf.js +1 -0
- modoboa/frontend_dist/assets/DomainsView-DZ-ss9bI.css +1 -0
- modoboa/frontend_dist/assets/EmailField-CwcwI5xW.js +1 -0
- modoboa/frontend_dist/assets/EmailView-BshxcfAK.js +1 -0
- modoboa/frontend_dist/assets/EmptyLayout-DFfhnhLi.js +1 -0
- modoboa/frontend_dist/assets/FiltersView-Cf20MSTK.js +1 -0
- modoboa/frontend_dist/assets/ForwardEmailView-CZG062os.js +1 -0
- modoboa/frontend_dist/assets/{HtmlEditor-uM4AtIGi.js → HtmlEditor-Bh4c689R.js} +1 -1
- modoboa/frontend_dist/assets/IdentitiesView-BXAuU1YX.js +1 -0
- modoboa/frontend_dist/assets/{IdentitiesView-jmuItyMZ.css → IdentitiesView-DPrrRMS5.css} +1 -1
- modoboa/frontend_dist/assets/InformationView-C9vvvQhJ.css +1 -0
- modoboa/frontend_dist/assets/InformationView-Cn5FZW7H.js +1 -0
- modoboa/frontend_dist/assets/{LoadingData-CVD2Aen8.js → LoadingData-CdVvm4FI.js} +1 -1
- modoboa/frontend_dist/assets/{LoginCallbackView-sWzBke1g.js → LoginCallbackView-B9hAH4MI.js} +1 -1
- modoboa/frontend_dist/assets/{LoginView-wmN73W0f.js → LoginView-tHIR4Adc.js} +1 -1
- modoboa/frontend_dist/assets/MailboxView-Bugu2vhg.js +1 -0
- modoboa/frontend_dist/assets/MenuItems-PXjiG-fs.js +1 -0
- modoboa/frontend_dist/assets/MessageView-Cy4STShm.js +1 -0
- modoboa/frontend_dist/assets/MessagesView-DdkuEgfX.js +1 -0
- modoboa/frontend_dist/assets/MigrationsView-CidSEjCF.js +1 -0
- modoboa/frontend_dist/assets/{ParametersForm-BCeQljir.js → ParametersForm-CAv4SH-E.js} +1 -1
- modoboa/frontend_dist/assets/ParametersView-CX7Ffemw.js +1 -0
- modoboa/frontend_dist/assets/ParametersView-CrbNcmV3.js +1 -0
- modoboa/frontend_dist/assets/ProviderEditView-CrltAQXl.js +1 -0
- modoboa/frontend_dist/assets/ProviderGeneralForm-BYAzVnXM.js +1 -0
- modoboa/frontend_dist/assets/ProvidersView-osjIY4Ex.js +1 -0
- modoboa/frontend_dist/assets/QuarantineLayout-B8EcU9vS.js +1 -0
- modoboa/frontend_dist/assets/QuarantineView-D4gOE4EQ.css +1 -0
- modoboa/frontend_dist/assets/QuarantineView-D8Qg0MXA.js +1 -0
- modoboa/frontend_dist/assets/ReplyEmailView-BABPqWhd.js +1 -0
- modoboa/frontend_dist/assets/ResourcesForm-OaqdRYVs.js +1 -0
- modoboa/frontend_dist/assets/SelfServiceLayout-d277YTGR.js +1 -0
- modoboa/frontend_dist/assets/SettingsView-9iNcDhkI.js +6 -0
- modoboa/frontend_dist/assets/StatisticsView-cHsPyGkL.js +1 -0
- modoboa/frontend_dist/assets/TimeSerieChart--V83dcJ9.js +1 -0
- modoboa/frontend_dist/assets/UserLayout-B3sBiTcZ.js +1 -0
- modoboa/frontend_dist/assets/VAlert-BuaaYN2h.js +1 -0
- modoboa/frontend_dist/assets/VApp-CKP-6zGP.js +1 -0
- modoboa/frontend_dist/assets/VAutocomplete-Dwv6_Rzq.js +1 -0
- modoboa/frontend_dist/assets/VAvatar-Cmga0vj6.js +1 -0
- modoboa/frontend_dist/assets/VBadge-BQrRJ9S0.css +1 -0
- modoboa/frontend_dist/assets/VBadge-CixeK87a.js +1 -0
- modoboa/frontend_dist/assets/VCard-CxH9DWoK.js +1 -0
- modoboa/frontend_dist/assets/VCheckbox-62GOpvvP.js +1 -0
- modoboa/frontend_dist/assets/{VCheckboxBtn-j7di4leN.js → VCheckboxBtn-DMoNtKT8.js} +1 -1
- modoboa/frontend_dist/assets/VChip-D_styETR.js +1 -0
- modoboa/frontend_dist/assets/VColorPicker-BHscBGQV.js +1 -0
- modoboa/frontend_dist/assets/VContainer-B46caNs1.js +1 -0
- modoboa/frontend_dist/assets/VDataTable-Bh8NbVSx.js +1 -0
- modoboa/frontend_dist/assets/VDataTableServer-BDR5hOmo.js +1 -0
- modoboa/frontend_dist/assets/VDataTableVirtual-BOQlNtIG.js +1 -0
- modoboa/frontend_dist/assets/{VDialog-CZqM2Ofu.js → VDialog-BcTg7w6P.js} +1 -1
- modoboa/frontend_dist/assets/VExpansionPanels-BmH5Jl2Z.js +1 -0
- modoboa/frontend_dist/assets/VFileInput-BC4yAygd.js +1 -0
- modoboa/frontend_dist/assets/VForm-D5iPGkde.js +1 -0
- modoboa/frontend_dist/assets/VInput-CcxkaOXT.css +1 -0
- modoboa/frontend_dist/assets/VInput-CoDJzvaW.js +1 -0
- modoboa/frontend_dist/assets/VMenu-gUG70-zD.js +1 -0
- modoboa/frontend_dist/assets/VPicker-BXuKT3zB.js +1 -0
- modoboa/frontend_dist/assets/VProgressCircular-BtOPiGCg.js +1 -0
- modoboa/frontend_dist/assets/VRadioGroup-DIFZKSn-.js +1 -0
- modoboa/frontend_dist/assets/{VRow-C_Ydf6yr.js → VRow-ozg66L7j.js} +1 -1
- modoboa/frontend_dist/assets/VSelect-C3RjAa45.js +1 -0
- modoboa/frontend_dist/assets/VSelectionControl-zyz-fJvC.js +1 -0
- modoboa/frontend_dist/assets/VSheet-BNx2X4Mk.js +1 -0
- modoboa/frontend_dist/assets/VSpacer-DinPiXs9.js +1 -0
- modoboa/frontend_dist/assets/VSwitch-DwxdeAEq.js +1 -0
- modoboa/frontend_dist/assets/VTable-DaLxa4FO.js +1 -0
- modoboa/frontend_dist/assets/VTabs-BP0Hgsgm.js +1 -0
- modoboa/frontend_dist/assets/VTextField-BzBVKKob.css +1 -0
- modoboa/frontend_dist/assets/VTextField-XoGTj1KG.js +1 -0
- modoboa/frontend_dist/assets/VTextarea-wBlRMIv_.js +1 -0
- modoboa/frontend_dist/assets/VToolbar-CFZfqeOr.js +1 -0
- modoboa/frontend_dist/assets/VWindowItem-BB7ETW3b.js +1 -0
- modoboa/frontend_dist/assets/WebmailLayout-_Hk1XhVq.js +1 -0
- modoboa/frontend_dist/assets/accounts-DUzbx6k8.js +1 -0
- modoboa/frontend_dist/assets/admin-DewTk2H8.js +1 -0
- modoboa/frontend_dist/assets/{aliases-c3n-dCV_.js → aliases-4sXmjwXp.js} +1 -1
- modoboa/frontend_dist/assets/amavis-CC0li7_T.js +1 -0
- modoboa/frontend_dist/assets/amavis-DK8SHE6o.js +1 -0
- modoboa/frontend_dist/assets/{contacts-Bqckz8sr.js → contacts-BjghrPqZ.js} +1 -1
- modoboa/frontend_dist/assets/{domains-nBMR-fRf.js → domains-BSawReeu.js} +1 -1
- modoboa/frontend_dist/assets/{domains.store-ChZgLcqP.js → domains.store-D-vWCEIK.js} +1 -1
- modoboa/frontend_dist/assets/{filter-D7NrAf6a.js → filter-C82FUCw_.js} +1 -1
- modoboa/frontend_dist/assets/forwardRefs-cvcnlhoK.js +1 -0
- modoboa/frontend_dist/assets/global.store-DbkcI5o2.js +1 -0
- modoboa/frontend_dist/assets/{importExport-Dn9vYw7T.js → importExport-DzoL4Mvc.js} +1 -1
- modoboa/frontend_dist/assets/index-BImkz5Jx.js +984 -0
- modoboa/frontend_dist/assets/index-DuzUMVLM.js +1 -0
- modoboa/frontend_dist/assets/layout-C5FyYCHK.js +1 -0
- modoboa/frontend_dist/assets/{layout.store-BxBoBlgf.js → layout.store-NXWtFIwL.js} +1 -1
- modoboa/frontend_dist/assets/logos-BswdveCV.js +1 -0
- modoboa/frontend_dist/assets/{logs-DrTzylW7.js → logs-6CbtfaZS.js} +1 -1
- modoboa/frontend_dist/assets/{parameters-Lgiqp7aw.js → parameters-aSQiR7kN.js} +1 -1
- modoboa/frontend_dist/assets/{parameters.store-C9k9DuTj.js → parameters.store-CzQqVatx.js} +1 -1
- modoboa/frontend_dist/assets/permissions-DNoefz-n.js +1 -0
- modoboa/frontend_dist/assets/{ssrBoot-BsxW6uW4.js → ssrBoot-CKUX4kcb.js} +1 -1
- modoboa/frontend_dist/assets/{tag-CFK9dzMJ.js → tag-B_yWNNJD.js} +1 -1
- modoboa/frontend_dist/assets/transports-BDNB9wR5.js +1 -0
- modoboa/frontend_dist/assets/{webmail-KrD8ZhNM.js → webmail-CdU6CD9b.js} +1 -1
- modoboa/frontend_dist/index.html +1 -1
- modoboa/lib/email_utils.py +2 -2
- modoboa/lib/permissions.py +7 -0
- modoboa/lib/redis.py +1 -5
- modoboa/lib/test_runners.py +29 -0
- modoboa/lib/tests/__init__.py +5 -1
- modoboa/locale/br/LC_MESSAGES/django.po +87 -75
- modoboa/locale/cs/LC_MESSAGES/django.po +82 -74
- modoboa/locale/cs_CZ/LC_MESSAGES/django.po +145 -121
- modoboa/locale/de/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/de/LC_MESSAGES/django.po +339 -651
- modoboa/locale/de_DE/LC_MESSAGES/django.po +87 -75
- modoboa/locale/el_GR/LC_MESSAGES/django.po +160 -135
- modoboa/locale/en/LC_MESSAGES/django.po +82 -74
- modoboa/locale/es/LC_MESSAGES/django.po +158 -131
- modoboa/locale/es_MX/LC_MESSAGES/django.po +82 -74
- modoboa/locale/fi/LC_MESSAGES/django.po +87 -75
- modoboa/locale/fr/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/fr/LC_MESSAGES/django.po +469 -201
- modoboa/locale/hu/LC_MESSAGES/django.po +82 -74
- modoboa/locale/it/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/it/LC_MESSAGES/django.po +148 -122
- modoboa/locale/ja_JP/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/ja_JP/LC_MESSAGES/django.po +201 -334
- modoboa/locale/ka/LC_MESSAGES/django.po +82 -74
- modoboa/locale/nl_NL/LC_MESSAGES/django.po +160 -132
- modoboa/locale/no/LC_MESSAGES/django.po +82 -74
- modoboa/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/pl_PL/LC_MESSAGES/django.po +172 -149
- modoboa/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/pt_BR/LC_MESSAGES/django.po +172 -144
- modoboa/locale/pt_PT/LC_MESSAGES/django.po +135 -112
- modoboa/locale/ro_RO/LC_MESSAGES/django.po +87 -75
- modoboa/locale/ru/LC_MESSAGES/django.po +142 -118
- modoboa/locale/si/LC_MESSAGES/django.po +82 -74
- modoboa/locale/sk/LC_MESSAGES/django.po +82 -74
- modoboa/locale/sk_SK/LC_MESSAGES/django.po +84 -76
- modoboa/locale/sl_SI/LC_MESSAGES/django.po +90 -76
- modoboa/locale/sv/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/sv/LC_MESSAGES/django.po +172 -139
- modoboa/locale/tr/LC_MESSAGES/django.po +87 -75
- modoboa/locale/tr_TR/LC_MESSAGES/django.po +84 -74
- modoboa/locale/uk/LC_MESSAGES/django.po +82 -74
- modoboa/locale/zh/LC_MESSAGES/django.po +82 -74
- modoboa/locale/zh_CN/LC_MESSAGES/django.po +82 -74
- modoboa/locale/zh_TW/LC_MESSAGES/django.po +87 -75
- modoboa/parameters/api/v2/tests.py +2 -2
- modoboa/parameters/api/v2/viewsets.py +2 -0
- modoboa/policyd/tests.py +2 -0
- modoboa/urls_api_v2.py +6 -0
- {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/METADATA +6 -4
- {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/RECORD +244 -193
- modoboa/frontend_dist/assets/AccountAliasForm-DVXatAhB.js +0 -1
- modoboa/frontend_dist/assets/AccountEditView-DmvQjxpx.js +0 -1
- modoboa/frontend_dist/assets/AccountLayout-OGtZvlHR.js +0 -1
- modoboa/frontend_dist/assets/AccountPasswordSubForm-g3IEGrgM.js +0 -1
- modoboa/frontend_dist/assets/AccountView-DsxYqr3k.js +0 -1
- modoboa/frontend_dist/assets/AddressBook-3RoKiKon.js +0 -1
- modoboa/frontend_dist/assets/AdminLayout-CWfn8zaQ.js +0 -1
- modoboa/frontend_dist/assets/AlarmsView-Bheey-gp.css +0 -1
- modoboa/frontend_dist/assets/AlarmsView-D3Mh8ntf.js +0 -1
- modoboa/frontend_dist/assets/AliasEditView-C15eUZ11.js +0 -1
- modoboa/frontend_dist/assets/AliasView-Cyvc5vMb.js +0 -1
- modoboa/frontend_dist/assets/AuditTrailView-LI2XuLLn.js +0 -1
- modoboa/frontend_dist/assets/CalendarView-BpOlPh3f.js +0 -1
- modoboa/frontend_dist/assets/ComposeEmailForm-CNfI7ept.js +0 -1
- modoboa/frontend_dist/assets/ComposeEmailView-B866Xsrc.js +0 -1
- modoboa/frontend_dist/assets/ConfirmDialog-BvqxQsD1.js +0 -1
- modoboa/frontend_dist/assets/ConnectedLayout-BQ3ug6Jh.js +0 -1
- modoboa/frontend_dist/assets/CreationForm-C9Kh05ax.js +0 -1
- modoboa/frontend_dist/assets/DashboardView-Cw-gIcuB.js +0 -1
- modoboa/frontend_dist/assets/DomainAdminList-CsWUNKVk.js +0 -1
- modoboa/frontend_dist/assets/DomainEditView-DocxeOeW.js +0 -1
- modoboa/frontend_dist/assets/DomainView-Djc_0PsF.js +0 -5
- modoboa/frontend_dist/assets/DomainsView-B-Lxru7P.js +0 -1
- modoboa/frontend_dist/assets/DomainsView-DasJ0NdZ.css +0 -1
- modoboa/frontend_dist/assets/EmailField-BEKxuYni.js +0 -1
- modoboa/frontend_dist/assets/EmailView-BsR1Wes5.js +0 -1
- modoboa/frontend_dist/assets/EmptyLayout-BzPFOeLU.js +0 -1
- modoboa/frontend_dist/assets/FiltersView-5rmpC5cC.js +0 -1
- modoboa/frontend_dist/assets/ForwardEmailView-D7MbetcT.js +0 -1
- modoboa/frontend_dist/assets/IdentitiesView-BqjD9Lue.js +0 -1
- modoboa/frontend_dist/assets/InformationView-CghcvPn2.js +0 -1
- modoboa/frontend_dist/assets/InformationView-U5Ww-Sx1.css +0 -1
- modoboa/frontend_dist/assets/MailboxView-T_p-_ZtJ.js +0 -1
- modoboa/frontend_dist/assets/MenuItems-kHCMzR5E.js +0 -1
- modoboa/frontend_dist/assets/MessagesView-Cerv3xsy.js +0 -1
- modoboa/frontend_dist/assets/MigrationsView-7kjqPyYU.js +0 -1
- modoboa/frontend_dist/assets/ParametersView-DspBxVMV.js +0 -1
- modoboa/frontend_dist/assets/ParametersView-Dy0H5ep1.js +0 -1
- modoboa/frontend_dist/assets/ProviderEditView-DDLMOylC.js +0 -1
- modoboa/frontend_dist/assets/ProviderGeneralForm-BwOSKNHK.js +0 -1
- modoboa/frontend_dist/assets/ProvidersView-C99UD0WB.js +0 -1
- modoboa/frontend_dist/assets/ReplyEmailView-DAPBHldd.js +0 -1
- modoboa/frontend_dist/assets/ResourcesForm-D87PHeH0.js +0 -1
- modoboa/frontend_dist/assets/SettingsView-OxDo9wNd.js +0 -6
- modoboa/frontend_dist/assets/StatisticsView-CM__Eqku.js +0 -1
- modoboa/frontend_dist/assets/TimeSerieChart-C6j0uYR_.js +0 -1
- modoboa/frontend_dist/assets/UserLayout-CckCGnPS.js +0 -1
- modoboa/frontend_dist/assets/VAlert-B7mzOJIO.js +0 -1
- modoboa/frontend_dist/assets/VApp-BKxnjOoi.js +0 -1
- modoboa/frontend_dist/assets/VAutocomplete-Cc4_tcl1.js +0 -1
- modoboa/frontend_dist/assets/VAvatar-BAgTUIvX.js +0 -1
- modoboa/frontend_dist/assets/VCard-DFWiFORP.js +0 -1
- modoboa/frontend_dist/assets/VCheckbox-CKsH_vq3.js +0 -1
- modoboa/frontend_dist/assets/VChip-nZ0uhY7t.js +0 -1
- modoboa/frontend_dist/assets/VColorPicker-Os2aeP6J.js +0 -1
- modoboa/frontend_dist/assets/VContainer-Btam4lk2.js +0 -1
- modoboa/frontend_dist/assets/VDataTable-D_0_xJTl.js +0 -1
- modoboa/frontend_dist/assets/VDataTableServer-BWTt4Mzi.js +0 -1
- modoboa/frontend_dist/assets/VDataTableVirtual-BwVmkt4u.js +0 -1
- modoboa/frontend_dist/assets/VExpansionPanels-B5D6GOa3.js +0 -1
- modoboa/frontend_dist/assets/VFileInput-Cv9DIPki.js +0 -1
- modoboa/frontend_dist/assets/VForm-CpoZf60D.js +0 -1
- modoboa/frontend_dist/assets/VMenu-B_dVqOmo.js +0 -1
- modoboa/frontend_dist/assets/VPicker-CXkIGEze.js +0 -1
- modoboa/frontend_dist/assets/VProgressCircular-CrEXxs7k.js +0 -1
- modoboa/frontend_dist/assets/VRadioGroup-D8ypjYOO.js +0 -1
- modoboa/frontend_dist/assets/VSelect-CS51PDEt.js +0 -1
- modoboa/frontend_dist/assets/VSelectionControl-DiOqtY38.js +0 -1
- modoboa/frontend_dist/assets/VSheet-5VVWtHvs.js +0 -1
- modoboa/frontend_dist/assets/VSpacer-C6PZ3X24.js +0 -1
- modoboa/frontend_dist/assets/VSwitch-Chg5o-Cp.js +0 -1
- modoboa/frontend_dist/assets/VTable-KsiZ3cBz.js +0 -1
- modoboa/frontend_dist/assets/VTabs-tNrJIYO0.js +0 -1
- modoboa/frontend_dist/assets/VTextField-C-J20yj_.css +0 -1
- modoboa/frontend_dist/assets/VTextField-CLwRV0Cb.js +0 -1
- modoboa/frontend_dist/assets/VTextarea-Di8jbl8m.js +0 -1
- modoboa/frontend_dist/assets/VToolbar-CGwhgdmI.js +0 -1
- modoboa/frontend_dist/assets/VWindowItem-wWSFAGI-.js +0 -1
- modoboa/frontend_dist/assets/WebmailLayout-DsYThBrz.js +0 -1
- modoboa/frontend_dist/assets/admin-CJVLMHh9.js +0 -1
- modoboa/frontend_dist/assets/forwardRefs-Cpc3YYl6.js +0 -1
- modoboa/frontend_dist/assets/global.store-DUP26-A5.js +0 -1
- modoboa/frontend_dist/assets/index-DV9Li2cg.js +0 -852
- modoboa/frontend_dist/assets/index-DzL89N4E.js +0 -1
- modoboa/frontend_dist/assets/layout-CHO37cA6.js +0 -1
- modoboa/frontend_dist/assets/permissions-mL5hLHcW.js +0 -1
- modoboa/frontend_dist/assets/transports-TO08iTXJ.js +0 -1
- {modoboa-2.4.10.data → modoboa-2.5.0.data}/scripts/modoboa-admin.py +0 -0
- {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/WHEEL +0 -0
- {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/entry_points.txt +0 -0
- {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/licenses/LICENSE +0 -0
- {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/top_level.txt +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{g as b,c as ee,o as z,w as v,a,l as Se,t as K,e as w,f as h,m as re,F as le,G as je,Q as he,R as Le,L as G,bO as Ne,D as Oe,v as He,x as Ke,y as Ge,ac as oe,T as ye,ab as Je,h as q,ad as Qe,av as be,a6 as xe,as as We,B as Z,U as Xe,bP as Ye,at as Ce,aw as Ze,ax as el,a7 as ll,J as al,b as tl,n as ol,u as nl,M as ul,s as sl,q as ie}from"./index-DV9Li2cg.js";import{d as il}from"./index-DzL89N4E.js";import{a as L}from"./webmail-KrD8ZhNM.js";import{V as Ae,r as ve}from"./VForm-CpoZf60D.js";import{c as rl,V as dl,a as cl,b as ml}from"./VCard-DFWiFORP.js";import{V as vl}from"./VFileInput-Cv9DIPki.js";import{V as D,X as ke,m as fl,d as we,f as pl,h as gl}from"./VAvatar-BAgTUIvX.js";import{V as Vl}from"./VTable-KsiZ3cBz.js";import{V as hl}from"./VSpacer-C6PZ3X24.js";import{_ as yl}from"./HtmlEditor-uM4AtIGi.js";import{V as bl}from"./VTextarea-Di8jbl8m.js";import{c as xl}from"./contacts-Bqckz8sr.js";import{V as Cl}from"./VToolbar-CGwhgdmI.js";import{V as ne,a as R}from"./VRow-C_Ydf6yr.js";import{b as kl,c as wl,d as _l,V as Sl}from"./VSelect-CS51PDEt.js";import{f as Al,V as fe,g as El}from"./VTextField-CLwRV0Cb.js";import{a as Fl}from"./VProgressCircular-CrEXxs7k.js";import{u as Dl,m as Ul,h as Ml}from"./filter-D7NrAf6a.js";import{d as Tl,t as ue,f as Rl,V as Il,a as _e}from"./forwardRefs-Cpc3YYl6.js";import{V as Pl}from"./VMenu-B_dVqOmo.js";import{V as Bl}from"./VCheckboxBtn-j7di4leN.js";import{V as $l}from"./VChip-nZ0uhY7t.js";import{u as zl}from"./tag-CFK9dzMJ.js";import{V as ql}from"./VDialog-CZqM2Ofu.js";const jl={class:"w-100 d-flex justify-center"},Ll={__name:"AttachmentsDialog",props:{sessionUid:{type:String,default:null}},emits:["close"],setup(l,{emit:N}){const V=l,s=N,x=b([]),g=b(),d=b(),_=b(!1),U=()=>{s("close")},S=async()=>{const{valid:o}=await d.value.validate();if(!o)return;const A=new FormData;A.append("attachment",g.value),_.value=!0;try{const u=await L.uploadAttachment(V.sessionUid,A);x.value.push(u.data),d.value.reset()}finally{_.value=!1}},M=async o=>{await L.removeAttachment(V.sessionUid,o.tmpname);const A=x.value.findIndex(u=>u.tmpname===o.tmpname);x.value.splice(A,1)};return L.getComposeSession(V.sessionUid).then(o=>{x.value=o.data.attachments}),(o,A)=>(z(),ee(ml,null,{default:v(()=>[a(rl,null,{default:v(()=>[Se(K(o.$gettext("Attachments")),1)]),_:1}),a(dl,null,{default:v(()=>[a(Ae,{ref_key:"formRef",ref:d},{default:v(()=>[a(vl,{modelValue:g.value,"onUpdate:modelValue":A[0]||(A[0]=u=>g.value=u),density:"compact",variant:"outlined",rules:[h(ve).required]},null,8,["modelValue","rules"]),w("div",jl,[a(D,{color:"primary",variant:"tonal",text:o.$gettext("Attach"),onClick:S},null,8,["text"])])]),_:1},512),a(Vl,{class:"mt-4 border-sm"},{default:v(()=>[w("tbody",null,[(z(!0),re(le,null,je(x.value,u=>(z(),re("tr",{key:u.fname},[w("td",null,K(u.fname),1),w("td",null,[a(D,{icon:"mdi-trash-can",color:"error",size:"small",variant:"text",onClick:ae=>M(u)},null,8,["onClick"])])]))),128))])]),_:1})]),_:1}),a(cl,null,{default:v(()=>[a(hl),a(D,{text:o.$gettext("Close"),variant:"flat",onClick:U},null,8,["text"])]),_:1})]),_:1}))}},Nl={class:"mt-8"},Ol={__name:"BodyEditor",props:he({editorMode:{type:String,default:null}},{modelValue:{},modelModifiers:{}}),emits:he(["onToggleHtmlMode"],["update:modelValue"]),setup(l,{emit:N}){const V=l,s=Le(l,"modelValue"),x=N,g=b(!1),d=b(),_=()=>{g.value=!g.value,x("onToggleHtmlMode",g.value)};return G(()=>V.editorMode,U=>{g.value=U==="html"}),(U,S)=>{const M=Ne("btn");return g.value?(z(),ee(h(yl),{key:0,modelValue:s.value,"onUpdate:modelValue":S[1]||(S[1]=o=>s.value=o),class:"d-flex flex-column flex-grow-1 mt-4"},{"append-toolbar":v(()=>[a(ke,{modelValue:d.value,"onUpdate:modelValue":S[0]||(S[0]=o=>d.value=o),"base-color":"grey-lighten-3",color:"primary",class:"mr-2"},{default:v(()=>[a(D,{text:"HTML",size:"small",onClick:_})]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])):(z(),re(le,{key:1},[w("div",Nl,[a(ke,{modelValue:d.value,"onUpdate:modelValue":S[2]||(S[2]=o=>d.value=o),"base-color":"grey-lighten-3",color:"primary",class:"mr-2"},{default:v(()=>[Oe(a(D,{text:"HTML",size:"small",onClick:_},null,512),[[M]])]),_:1},8,["modelValue"])]),a(bl,{modelValue:s.value,"onUpdate:modelValue":S[3]||(S[3]=o=>s.value=o),class:"border-sm"},null,8,["modelValue"])],64))}}},Hl=Ke({autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...Ul({filterKeys:["title"]}),...wl({hideNoData:!0,returnObject:!0}),...Xe(El({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...fl({transition:!1})},"VCombobox"),me=He()({name:"VCombobox",props:Hl(),emits:{"update:focused":l=>!0,"update:modelValue":l=>!0,"update:search":l=>!0,"update:menu":l=>!0},setup(l,N){var pe;let{emit:V,slots:s}=N;const{t:x}=Ge(),g=b(),d=oe(!1),_=oe(!0),U=oe(!1),S=b(),M=b(),o=oe(-1);let A=!1;const{items:u,transformIn:ae,transformOut:J}=Tl(l),{textColorClasses:O,textColorStyles:Q}=Fl(()=>{var e;return(e=g.value)==null?void 0:e.color}),r=ye(l,"modelValue",[],e=>ae(Je(e)),e=>{const n=J(e);return l.multiple?n:n[0]??null}),W=Al(l),X=q(()=>!!(l.chips||s.chip)),T=q(()=>X.value||!!s.selection),I=oe(!l.multiple&&!T.value?((pe=r.value[0])==null?void 0:pe.title)??"":""),C=q({get:()=>I.value,set:e=>{var n;if(I.value=e??"",!l.multiple&&!T.value&&(r.value=[ue(l,e)]),e&&l.multiple&&((n=l.delimiters)!=null&&n.length)){const y=e.split(new RegExp(`(?:${l.delimiters.join("|")})+`));y.length>1&&(y.forEach(i=>{i=i.trim(),i&&B(ue(l,i))}),I.value="")}e||(o.value=-1),_.value=!e}}),te=q(()=>typeof l.counterValue=="function"?l.counterValue(r.value):typeof l.counterValue=="number"?l.counterValue:l.multiple?r.value.length:C.value.length),{filteredItems:H,getMatches:p}=Dl(l,u,()=>_.value?"":C.value),t=q(()=>l.hideSelected?H.value.filter(e=>!r.value.some(n=>n.value===e.value)):H.value),c=q(()=>l.hideNoData&&!t.value.length||W.isReadonly.value||W.isDisabled.value),Y=ye(l,"menu"),f=q({get:()=>Y.value,set:e=>{var n;Y.value&&!e&&((n=S.value)!=null&&n.ΨopenChildren.size)||e&&c.value||(Y.value=e)}}),P=Qe(()=>f.value?l.closeText:l.openText);G(I,e=>{A?xe(()=>A=!1):d.value&&!f.value&&(f.value=!0),V("update:search",e)}),G(r,e=>{var n;!l.multiple&&!T.value&&(I.value=((n=e[0])==null?void 0:n.title)??"")});const Ee=q(()=>r.value.map(e=>e.value)),de=q(()=>{var n;return(l.autoSelectFirst===!0||l.autoSelectFirst==="exact"&&C.value===((n=t.value[0])==null?void 0:n.title))&&t.value.length>0&&!_.value&&!U.value}),ce=b(),Fe=kl(ce,g);function De(e){A=!0,l.openOnClear&&(f.value=!0)}function Ue(){c.value||(f.value=!0)}function Me(e){c.value||(d.value&&(e.preventDefault(),e.stopPropagation()),f.value=!f.value)}function Te(e){var n;e.key!==" "&&Ce(e)&&((n=g.value)==null||n.focus())}function Re(e){var i,k,E,$;if(Ye(e)||W.isReadonly.value)return;const n=(i=g.value)==null?void 0:i.selectionStart,y=r.value.length;if(["Enter","ArrowDown","ArrowUp"].includes(e.key)&&e.preventDefault(),["Enter","ArrowDown"].includes(e.key)&&(f.value=!0),["Escape"].includes(e.key)&&(f.value=!1),["Enter","Escape","Tab"].includes(e.key)&&(de.value&&["Enter","Tab"].includes(e.key)&&!r.value.some(m=>{let{value:j}=m;return j===t.value[0].value})&&B(H.value[0]),_.value=!0),e.key==="ArrowDown"&&de.value&&((k=ce.value)==null||k.focus("next")),e.key==="Enter"&&C.value&&(B(ue(l,C.value)),T.value&&(I.value="")),["Backspace","Delete"].includes(e.key)){if(!l.multiple&&T.value&&r.value.length>0&&!C.value)return B(r.value[0],!1);if(~o.value){e.preventDefault();const m=o.value;B(r.value[o.value],!1),o.value=m>=y-1?y-2:m}else e.key==="Backspace"&&!C.value&&(o.value=y-1);return}if(l.multiple)if(e.key==="ArrowLeft"){if(o.value<0&&n&&n>0)return;const m=o.value>-1?o.value-1:y-1;r.value[m]?o.value=m:(o.value=-1,(E=g.value)==null||E.setSelectionRange(C.value.length,C.value.length))}else if(e.key==="ArrowRight"){if(o.value<0)return;const m=o.value+1;r.value[m]?o.value=m:(o.value=-1,($=g.value)==null||$.setSelectionRange(0,0))}else~o.value&&Ce(e)&&(o.value=-1)}function Ie(){var e;l.eager&&((e=M.value)==null||e.calculateVisibleItems())}function Pe(){var e;d.value&&(_.value=!0,(e=g.value)==null||e.focus())}function B(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!(!e||e.props.disabled))if(l.multiple){const y=r.value.findIndex(k=>(l.valueComparator||be)(k.value,e.value)),i=n??!~y;if(~y){const k=i?[...r.value,e]:[...r.value];k.splice(y,1),r.value=k}else i&&(r.value=[...r.value,e]);l.clearOnSelect&&(C.value="")}else{const y=n!==!1;r.value=y?[e]:[],I.value=y&&!T.value?e.title:"",xe(()=>{f.value=!1,_.value=!0})}}function Be(e){d.value=!0,setTimeout(()=>{U.value=!0})}function $e(e){U.value=!1}function ze(e){(e==null||e===""&&!l.multiple&&!T.value)&&(r.value=[])}return G(d,(e,n)=>{if(!(e||e===n)&&(o.value=-1,f.value=!1,C.value)){if(l.multiple){B(ue(l,C.value));return}if(!T.value)return;r.value.some(y=>{let{title:i}=y;return i===C.value})?I.value="":B(ue(l,C.value))}}),G(f,()=>{if(!l.hideSelected&&f.value&&r.value.length){const e=t.value.findIndex(n=>r.value.some(y=>(l.valueComparator||be)(y.value,n.value)));We&&window.requestAnimationFrame(()=>{var n;e>=0&&((n=M.value)==null||n.scrollToIndex(e))})}}),G(()=>l.items,(e,n)=>{f.value||d.value&&!n.length&&e.length&&(f.value=!0)}),zl(()=>{const e=!!(!l.hideNoData||t.value.length||s["prepend-item"]||s["append-item"]||s["no-data"]),n=r.value.length>0,y=fe.filterProps(l);return a(fe,Z({ref:g},y,{modelValue:C.value,"onUpdate:modelValue":[i=>C.value=i,ze],focused:d.value,"onUpdate:focused":i=>d.value=i,validationValue:r.externalValue,counterValue:te.value,dirty:n,class:["v-combobox",{"v-combobox--active-menu":f.value,"v-combobox--chips":!!l.chips,"v-combobox--selection-slot":!!T.value,"v-combobox--selecting-index":o.value>-1,[`v-combobox--${l.multiple?"multiple":"single"}`]:!0},l.class],style:l.style,readonly:W.isReadonly.value,placeholder:n?void 0:l.placeholder,"onClick:clear":De,"onMousedown:control":Ue,onKeydown:Re}),{...s,default:()=>w(le,null,[a(Pl,Z({ref:S,modelValue:f.value,"onUpdate:modelValue":i=>f.value=i,activator:"parent",contentClass:"v-combobox__content",disabled:c.value,eager:l.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:l.transition,onAfterEnter:Ie,onAfterLeave:Pe},l.menuProps),{default:()=>[e&&a(Il,Z({ref:ce,selected:Ee.value,selectStrategy:l.multiple?"independent":"single-independent",onMousedown:i=>i.preventDefault(),onKeydown:Te,onFocusin:Be,onFocusout:$e,tabindex:"-1","aria-live":"polite",color:l.itemColor??l.color},Fe,l.listProps),{default:()=>{var i,k,E;return[(i=s["prepend-item"])==null?void 0:i.call(s),!t.value.length&&!l.hideNoData&&(((k=s["no-data"])==null?void 0:k.call(s))??a(_e,{key:"no-data",title:x(l.noDataText)},null)),a(_l,{ref:M,renderless:!0,items:t.value,itemKey:"value"},{default:$=>{var Ve;let{item:m,index:j,itemRef:F}=$;const ge=Z(m.props,{ref:F,key:m.value,active:de.value&&j===0?!0:void 0,onClick:()=>B(m,null)});return((Ve=s.item)==null?void 0:Ve.call(s,{item:m,index:j,props:ge}))??a(_e,Z(ge,{role:"option"}),{prepend:se=>{let{isSelected:qe}=se;return w(le,null,[l.multiple&&!l.hideSelected?a(Bl,{key:m.value,modelValue:qe,ripple:!1,tabindex:"-1"},null):void 0,m.props.prependAvatar&&a(pl,{image:m.props.prependAvatar},null),m.props.prependIcon&&a(we,{icon:m.props.prependIcon},null)])},title:()=>{var se;return _.value?m.title:Ml("v-combobox",m.title,(se=p(m))==null?void 0:se.title)}})}}),(E=s["append-item"])==null?void 0:E.call(s)]}})]}),r.value.map((i,k)=>{function E(F){F.stopPropagation(),F.preventDefault(),B(i,!1)}const $={"onClick:close":E,onKeydown(F){F.key!=="Enter"&&F.key!==" "||(F.preventDefault(),F.stopPropagation(),E(F))},onMousedown(F){F.preventDefault(),F.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},m=X.value?!!s.chip:!!s.selection,j=m?el(X.value?s.chip({item:i,index:k,props:$}):s.selection({item:i,index:k})):void 0;if(!(m&&!j))return w("div",{key:i.value,class:al(["v-combobox__selection",k===o.value&&["v-combobox__selection--selected",O.value]]),style:ll(k===o.value?Q.value:{})},[X.value?s.chip?a(gl,{key:"chip-defaults",defaults:{VChip:{closable:l.closableChips,size:"small",text:i.title}}},{default:()=>[j]}):a($l,Z({key:"chip",closable:l.closableChips,size:"small",text:i.title,disabled:i.props.disabled},$),null):j??w("span",{class:"v-combobox__selection-text"},[i.title,l.multiple&&k<r.value.length-1&&w("span",{class:"v-combobox__selection-comma"},[Se(",")])])])})]),"append-inner":function(){var $,m;for(var i=arguments.length,k=new Array(i),E=0;E<i;E++)k[E]=arguments[E];return w(le,null,[($=s["append-inner"])==null?void 0:$.call(s,...k),(!l.hideNoData||l.items.length)&&l.menuIcon?a(we,{class:"v-combobox__menu-icon",color:(m=g.value)==null?void 0:m.fieldIconColor,icon:l.menuIcon,onMousedown:Me,onClick:Ze,"aria-label":x(P.value),title:x(P.value),tabindex:"-1"},null):void 0])}})}),Rl({isFocused:d,isPristine:_,menu:f,search:C,selectionIndex:o,filteredItems:H,select:B},g)}}),Kl={class:"bg-white rounded-lg pa-4 position-relative h-100 d-flex flex-column"},Va={__name:"ComposeEmailForm",props:{originalEmail:{type:Object,default:null},replyAll:{type:Boolean,default:!1}},emits:["onToggleHtmlMode"],setup(l,{emit:N}){const V=l,s=N,x=ul(),g=sl(),{$gettext:d}=tl(),{displayNotification:_}=ol(),U=nl(),S=b([]),M=b(0),o=b([]),A=b("plain"),u=b({}),ae=b(),J=b(!1),O=b(!1),Q=b(!1),r=b(!1),W=()=>{g.push({name:"MailboxView"})},X=()=>{if(u.value={sender:U.authUser.username},V.originalEmail){if(u.value.to=V.originalEmail.reply_to?V.originalEmail.reply_to:V.originalEmail.from_address.address,V.replyAll){let p=V.originalEmail.to.filter(t=>t.address!==U.authUser.username).map(t=>t.fulladdress);V.originalEmail.cc&&V.originalEmail.cc.length&&(p=p.concat(V.originalEmail.cc.map(t=>t.fulladdress))),u.value.cc=p,O.value=!0}u.value.subject=V.originalEmail.subject,u.value.body=V.originalEmail.body,V.originalEmail.message_id&&(u.value.in_reply_to=V.originalEmail.message_id)}},T=async()=>{var c,Y;const{valid:p}=await ae.value.validate();if(!p)return;r.value=!0;const t={...u.value};if(typeof u.value.to!="string"?t.to=[u.value.to.emails[0].address]:t.to=[u.value.to],(c=t.cc)!=null&&c.length){const f=[];for(const P of t.cc)f.push(typeof P=="string"?P:P.emails[0].address);t.cc=f}if((Y=t.bcc)!=null&&Y.length){const f=[];for(const P of t.bcc)f.push(typeof P=="string"?P:P.emails[0].address);t.bcc=f}try{await L.sendEmailFromComposeSession(x.query.uid,t),g.push({name:"MailboxView"}),_({msg:d("Email sent")})}catch(f){console.log(f)}finally{r.value=!1}},I=()=>{J.value=!0},C=async()=>{J.value=!1;const p=await L.getUploadedAttachments(x.query.uid);M.value=p.data.length},te=il(async p=>{if(p){const t={search:p},c=await xl.getContacts(t);c.data.length&&(o.value=c.data)}else o.value=[]},500),H=p=>{p.signature&&(u.value.body?u.value.body+=p.signature:u.value.body=p.signature),A.value=p.editor_format};return G(()=>V.originalEmail,()=>{X()},{immediate:!0}),x.query.uid?L.getComposeSession(x.query.uid).then(p=>{M.value=p.data.attachments.length,H(p.data)}):L.createComposeSession().then(p=>{const t={...x.query,uid:p.data.uid};g.push({name:x.name,query:t}),H(p.data)}),L.getAllowedSenders().then(p=>{S.value=p.data}),(p,t)=>(z(),re(le,null,[w("div",Kl,[a(Cl,{color:"white"},{default:v(()=>[a(D,{icon:"mdi-arrow-left",size:"small",variant:"flat",onClick:W}),a(D,{class:"ml-2",color:"primary",variant:"tonal","prepend-icon":"mdi-send",loading:r.value,text:h(d)("Send"),onClick:T},null,8,["loading","text"]),a(D,{class:"ml-2",variant:"tonal","prepend-icon":"mdi-paperclip",text:h(d)("Attachments")+` (${M.value})`,onClick:I},null,8,["text"])]),_:1}),a(Ae,{ref_key:"formRef",ref:ae,class:"flex-grow-1 d-flex flex-column"},{default:v(()=>[w("div",null,[a(ne,{class:"align-center"},{default:v(()=>[a(R,{cols:"2"},{default:v(()=>[w("span",null,K(h(d)("From")),1)]),_:1}),a(R,{cols:"8"},{default:v(()=>[a(Sl,{modelValue:u.value.sender,"onUpdate:modelValue":t[0]||(t[0]=c=>u.value.sender=c),items:S.value,"item-title":"address","item-value":"address",variant:"outlined",density:"compact","hide-details":"auto",rules:[h(ve).required]},null,8,["modelValue","items","rules"])]),_:1})]),_:1}),a(ne,{class:"align-center"},{default:v(()=>[a(R,{cols:"2"},{default:v(()=>[w("span",null,K(h(d)("To")),1)]),_:1}),a(R,{cols:"8"},{default:v(()=>[a(me,{modelValue:u.value.to,"onUpdate:modelValue":t[1]||(t[1]=c=>u.value.to=c),items:o.value,"item-title":"display_name","return-object":"",placeholder:h(d)("Provide one or more addresses"),variant:"outlined",density:"compact","hide-details":"auto",rules:[h(ve).required],"onUpdate:search":h(te)},null,8,["modelValue","items","placeholder","rules","onUpdate:search"])]),_:1}),a(R,{cols:"2"},{default:v(()=>[O.value?ie("",!0):(z(),ee(D,{key:0,text:h(d)("Cc"),"prepend-icon":"mdi-plus",size:"x-small",variant:"flat",onClick:t[2]||(t[2]=c=>O.value=!0)},null,8,["text"])),Q.value?ie("",!0):(z(),ee(D,{key:1,text:h(d)("Bcc"),"prepend-icon":"mdi-plus",size:"x-small",variant:"flat",onClick:t[3]||(t[3]=c=>Q.value=!0)},null,8,["text"]))]),_:1})]),_:1}),O.value?(z(),ee(ne,{key:0,class:"align-center"},{default:v(()=>[a(R,{cols:"2"},{default:v(()=>[w("span",null,K(h(d)("Cc")),1),a(D,{icon:"mdi-close",variant:"flat",size:"x-small",onClick:t[4]||(t[4]=c=>O.value=!1)})]),_:1}),a(R,{cols:"8"},{default:v(()=>[a(me,{modelValue:u.value.cc,"onUpdate:modelValue":t[5]||(t[5]=c=>u.value.cc=c),items:o.value,"item-title":"display_name","return-object":"",placeholder:h(d)("Provide one or more addresses"),variant:"outlined",density:"compact","hide-details":"auto",chips:"",multiple:"","hide-no-data":!1,"onUpdate:search":h(te)},null,8,["modelValue","items","placeholder","onUpdate:search"])]),_:1})]),_:1})):ie("",!0),Q.value?(z(),ee(ne,{key:1,class:"align-center"},{default:v(()=>[a(R,{cols:"2"},{default:v(()=>[w("span",null,K(h(d)("Bcc")),1),a(D,{icon:"mdi-close",variant:"flat",size:"x-small",onClick:t[6]||(t[6]=c=>Q.value=!1)})]),_:1}),a(R,{cols:"8"},{default:v(()=>[a(me,{modelValue:u.value.bcc,"onUpdate:modelValue":t[7]||(t[7]=c=>u.value.bcc=c),items:o.value,"item-title":"display_name","return-object":"",placeholder:h(d)("Provide one or more addresses"),variant:"outlined",density:"compact","hide-details":"auto",chips:"",multiple:"","hide-no-data":!1,"onUpdate:search":h(te)},null,8,["modelValue","items","placeholder","onUpdate:search"])]),_:1})]),_:1})):ie("",!0),a(ne,{class:"align-center"},{default:v(()=>[a(R,{cols:"2"},{default:v(()=>[w("span",null,K(h(d)("Subject")),1)]),_:1}),a(R,{cols:"8"},{default:v(()=>[a(fe,{modelValue:u.value.subject,"onUpdate:modelValue":t[8]||(t[8]=c=>u.value.subject=c),variant:"outlined",density:"compact","hide-details":"auto"},null,8,["modelValue"])]),_:1})]),_:1})]),a(h(Ol),{modelValue:u.value.body,"onUpdate:modelValue":t[9]||(t[9]=c=>u.value.body=c),"editor-mode":A.value,onOnToggleHtmlMode:t[10]||(t[10]=c=>s("onToggleHtmlMode",c))},null,8,["modelValue","editor-mode"])]),_:1},512)]),a(ql,{modelValue:J.value,"onUpdate:modelValue":t[11]||(t[11]=c=>J.value=c),"max-width":"800"},{default:v(()=>[a(h(Ll),{"session-uid":h(x).query.uid,onClose:C},null,8,["session-uid"])]),_:1},8,["modelValue"])],64))}};export{Va as _};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as o}from"./ComposeEmailForm-CNfI7ept.js";import{c as r,f as t,o as m}from"./index-DV9Li2cg.js";import"./index-DzL89N4E.js";import"./webmail-KrD8ZhNM.js";import"./VForm-CpoZf60D.js";import"./tag-CFK9dzMJ.js";import"./VTextField-CLwRV0Cb.js";import"./VAvatar-BAgTUIvX.js";import"./VProgressCircular-CrEXxs7k.js";import"./forwardRefs-Cpc3YYl6.js";import"./ssrBoot-BsxW6uW4.js";import"./VCard-DFWiFORP.js";import"./VFileInput-Cv9DIPki.js";import"./VChip-nZ0uhY7t.js";import"./VTable-KsiZ3cBz.js";import"./VSpacer-C6PZ3X24.js";/* empty css */import"./HtmlEditor-uM4AtIGi.js";import"./VTextarea-Di8jbl8m.js";import"./contacts-Bqckz8sr.js";import"./VToolbar-CGwhgdmI.js";import"./VRow-C_Ydf6yr.js";import"./VSelect-CS51PDEt.js";import"./VMenu-B_dVqOmo.js";import"./VCheckboxBtn-j7di4leN.js";import"./VSelectionControl-DiOqtY38.js";import"./filter-D7NrAf6a.js";import"./VDialog-CZqM2Ofu.js";const G={__name:"ComposeEmailView",setup(p){return(i,e)=>(m(),r(t(o)))}};export{G as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as h,g as s,c as V,w as a,a as l,D as k,l as r,t as n,E as D,H as T,q as z,bc as L,o as b}from"./index-DV9Li2cg.js";import{V as S,a as B}from"./VToolbar-CGwhgdmI.js";import{V as K,a as N,b as I}from"./VCard-DFWiFORP.js";import{V as O}from"./VSpacer-C6PZ3X24.js";import{V as g}from"./VAvatar-BAgTUIvX.js";import{V as $}from"./VDialog-CZqM2Ofu.js";const H={__name:"ConfirmDialog",props:{callback_agree:{type:Function,default:null}},setup(_,{expose:x}){const{$gettext:f}=h(),m=_,o=s(!1),c=s(""),p=s("");let u;const e=s({color:"primary",width:400,zIndex:2400,noconfirm:!1,cancelLabel:f("Cancel"),agreeLabel:f("OK")});function w(i,t,d){return o.value=!0,p.value=i,c.value=t,e.value=Object.assign(e.value,d),new Promise(C=>{u=C})}x({open:w});async function y(){m.callback_agree!==null&&!await m.callback_agree()||(u(!0),o.value=!1)}function v(){u(!1),o.value=!1}return(i,t)=>(b(),V($,{modelValue:o.value,"onUpdate:modelValue":t[0]||(t[0]=d=>o.value=d),"max-width":e.value.width,"z-index":e.value.zIndex,onKeydown:L(v,["esc"])},{default:a(()=>[l(I,null,{default:a(()=>[l(S,{color:e.value.color,density:"compact",flat:""},{default:a(()=>[l(B,{class:"text-body-2 font-weight-bold"},{default:a(()=>[r(n(p.value),1)]),_:1})]),_:1},8,["color"]),k(l(K,{class:"pa-4"},{default:a(()=>[r(n(c.value)+" ",1),T(i.$slots,"default")]),_:3},512),[[D,!!c.value]]),l(N,{class:"pt-3"},{default:a(()=>[l(O),e.value.noconfirm?z("",!0):(b(),V(g,{key:0,onClick:v},{default:a(()=>[r(n(e.value.cancelLabel),1)]),_:1})),l(g,{color:e.value.color,onClick:y},{default:a(()=>[r(n(e.value.agreeLabel),1)]),_:1},8,["color"])]),_:1})]),_:3})]),_:3},8,["modelValue","max-width","z-index"]))}};export{H as _};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{k as ae,r as $e,c as B,o as V,w as y,a as s,b0 as fe,b1 as Re,ac as R,h as C,a8 as De,d as j,L as U,aA as he,b2 as He,b3 as X,ag as ge,b4 as ye,aF as Oe,v as pe,x as _e,ai as Ue,ar as we,V as Ye,T as ke,g as D,ad as Q,a6 as be,b5 as We,Y as Ge,e as L,B as z,F as N,C as xe,$ as ze,u as Ve,s as Fe,a0 as Xe,i as qe,f as Z,p as je,m as $,G as K,q as ee,l as q,t as Y,a1 as Ze,b as Se,b6 as Ke,ak as Je,_ as Qe,S as et,b7 as tt,U as at,n as nt,z as ot,H as lt}from"./index-DV9Li2cg.js";import{V as rt}from"./VContainer-Btam4lk2.js";import{V as it,a as st}from"./VApp-BKxnjOoi.js";import{u as ut}from"./global.store-DUP26-A5.js";import{u as ct}from"./layout.store-BxBoBlgf.js";import{C as vt,r as dt,u as Ce,D as mt,E as ft,b as Te,s as ht,A as gt,p as Pe,h as Be,V as J,d as te,f as yt,F as pt,G as _t,k as wt,e as kt,z as bt,H as xt,c as Vt}from"./VAvatar-BAgTUIvX.js";import{V as Le,g as St,a as O,h as Ct,c as Tt,b as Pt,f as Bt}from"./forwardRefs-Cpc3YYl6.js";import{u as se}from"./VProgressCircular-CrEXxs7k.js";import{u as Me,m as Lt,a as Mt}from"./tag-CFK9dzMJ.js";import{u as Ee,b as Et,m as At,V as ue,a as ce,c as It}from"./VMenu-B_dVqOmo.js";import{u as Nt,a as $t,V as Rt,b as Dt}from"./layout-CHO37cA6.js";import{u as Ht}from"./ssrBoot-BsxW6uW4.js";import{b as ve}from"./VCard-DFWiFORP.js";import{V as Ot,a as Ut}from"./VRow-C_Ydf6yr.js";import{V as Yt}from"./VSheet-5VVWtHvs.js";const Wt={__name:"ConnectedView",setup(e){return(o,n)=>{const r=$e("router-view");return V(),B(it,null,{default:y(()=>[s(rt,{fluid:"",style:{height:"100%"}},{default:y(()=>[s(r,null,{default:y(({Component:t})=>[s(fe,{name:"fade"},{default:y(()=>[(V(),B(Re(t)))]),_:2},1024)]),_:1})]),_:1})]),_:1})}}},Gt=ae(Wt,[["__scopeId","data-v-b2ffa9e6"]]);function zt(e){let{rootEl:o,isSticky:n,layoutItemStyles:r}=e;const t=R(!1),c=R(0),l=C(()=>{const a=typeof t.value=="boolean"?"top":t.value;return[n.value?{top:"auto",bottom:"auto",height:void 0}:void 0,t.value?{[a]:De(c.value)}:{top:r.value.top}]});j(()=>{U(n,a=>{a?window.addEventListener("scroll",_,{passive:!0}):window.removeEventListener("scroll",_)},{immediate:!0})}),he(()=>{window.removeEventListener("scroll",_)});let u=0;function _(){const a=u>window.scrollY?"up":"down",v=o.value.getBoundingClientRect(),g=parseFloat(r.value.top??0),k=window.scrollY-Math.max(0,c.value-g),x=v.height+Math.max(c.value,g)-window.scrollY-window.innerHeight,f=parseFloat(getComputedStyle(o.value).getPropertyValue("--v-body-scroll-y"))||0;v.height<window.innerHeight-g?(t.value="top",c.value=g):a==="up"&&t.value==="bottom"||a==="down"&&t.value==="top"?(c.value=window.scrollY+v.top-f,t.value=!0):a==="down"&&x<=0?(c.value=0,t.value="bottom"):a==="up"&&k<=0&&(f?t.value!=="top"&&(c.value=-k+f+g,t.value="top"):(c.value=v.top+k,t.value="top")),u=window.scrollY}return{isStuck:t,stickyStyles:l}}const Ft=100,Xt=20;function de(e){return(e<0?-1:1)*Math.sqrt(Math.abs(e))*1.41421356237}function me(e){if(e.length<2)return 0;if(e.length===2)return e[1].t===e[0].t?0:(e[1].d-e[0].d)/(e[1].t-e[0].t);let o=0;for(let n=e.length-1;n>0;n--){if(e[n].t===e[n-1].t)continue;const r=de(o),t=(e[n].d-e[n-1].d)/(e[n].t-e[n-1].t);o+=(t-r)*Math.abs(t),n===e.length-1&&(o*=.5)}return de(o)*1e3}function qt(){const e={};function o(t){Array.from(t.changedTouches).forEach(c=>{(e[c.identifier]??(e[c.identifier]=new He(Xt))).push([t.timeStamp,c])})}function n(t){Array.from(t.changedTouches).forEach(c=>{delete e[c.identifier]})}function r(t){var a;const c=(a=e[t])==null?void 0:a.values().reverse();if(!c)throw new Error(`No samples for touch id ${t}`);const l=c[0],u=[],_=[];for(const v of c){if(l[0]-v[0]>Ft)break;u.push({t:v[0],d:v[1].clientX}),_.push({t:v[0],d:v[1].clientY})}return{x:me(u),y:me(_),get direction(){const{x:v,y:g}=this,[k,x]=[Math.abs(v),Math.abs(g)];return k>x&&v>=0?"right":k>x&&v<=0?"left":x>k&&g>=0?"down":x>k&&g<=0?"up":jt()}}}return{addMovement:o,endTouch:n,getVelocity:r}}function jt(){throw new Error}function Zt(e){let{el:o,isActive:n,isTemporary:r,width:t,touchless:c,position:l}=e;j(()=>{window.addEventListener("touchstart",A,{passive:!0}),window.addEventListener("touchmove",M,{passive:!1}),window.addEventListener("touchend",W,{passive:!0})}),he(()=>{window.removeEventListener("touchstart",A),window.removeEventListener("touchmove",M),window.removeEventListener("touchend",W)});const u=C(()=>["left","right"].includes(l.value)),{addMovement:_,endTouch:a,getVelocity:v}=qt();let g=!1;const k=R(!1),x=R(0),f=R(0);let b;function i(d,h){return(l.value==="left"?d:l.value==="right"?document.documentElement.clientWidth-d:l.value==="top"?d:l.value==="bottom"?document.documentElement.clientHeight-d:G())-(h?t.value:0)}function S(d){let h=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;const p=l.value==="left"?(d-f.value)/t.value:l.value==="right"?(document.documentElement.clientWidth-d-f.value)/t.value:l.value==="top"?(d-f.value)/t.value:l.value==="bottom"?(document.documentElement.clientHeight-d-f.value)/t.value:G();return h?Oe(p):p}function A(d){if(c.value)return;const h=d.changedTouches[0].clientX,p=d.changedTouches[0].clientY,w=25,T=l.value==="left"?h<w:l.value==="right"?h>document.documentElement.clientWidth-w:l.value==="top"?p<w:l.value==="bottom"?p>document.documentElement.clientHeight-w:G(),m=n.value&&(l.value==="left"?h<t.value:l.value==="right"?h>document.documentElement.clientWidth-t.value:l.value==="top"?p<t.value:l.value==="bottom"?p>document.documentElement.clientHeight-t.value:G());(T||m||n.value&&r.value)&&(b=[h,p],f.value=i(u.value?h:p,n.value),x.value=S(u.value?h:p),g=f.value>-20&&f.value<80,a(d),_(d))}function M(d){const h=d.changedTouches[0].clientX,p=d.changedTouches[0].clientY;if(g){if(!d.cancelable){g=!1;return}const T=Math.abs(h-b[0]),m=Math.abs(p-b[1]);(u.value?T>m&&T>3:m>T&&m>3)?(k.value=!0,g=!1):(u.value?m:T)>3&&(g=!1)}if(!k.value)return;d.preventDefault(),_(d);const w=S(u.value?h:p,!1);x.value=Math.max(0,Math.min(1,w)),w>1?f.value=i(u.value?h:p,!0):w<0&&(f.value=i(u.value?h:p,!1))}function W(d){if(g=!1,!k.value)return;_(d),k.value=!1;const h=v(d.changedTouches[0].identifier),p=Math.abs(h.x),w=Math.abs(h.y);(u.value?p>w&&p>400:w>p&&w>3)?n.value=h.direction===({left:"right",right:"left",top:"down",bottom:"up"}[l.value]||G()):n.value=x.value>.5}const H=C(()=>k.value?{transform:l.value==="left"?`translateX(calc(-100% + ${x.value*t.value}px))`:l.value==="right"?`translateX(calc(100% - ${x.value*t.value}px))`:l.value==="top"?`translateY(calc(-100% + ${x.value*t.value}px))`:l.value==="bottom"?`translateY(calc(100% - ${x.value*t.value}px))`:G(),transition:"none"}:void 0);return X(k,()=>{var p,w;const d=((p=o.value)==null?void 0:p.style.transform)??null,h=((w=o.value)==null?void 0:w.style.transition)??null;ge(()=>{var T,m,E,I;(m=o.value)==null||m.style.setProperty("transform",((T=H.value)==null?void 0:T.transform)||"none"),(I=o.value)==null||I.style.setProperty("transition",((E=H.value)==null?void 0:E.transition)||null)}),ye(()=>{var T,m;(T=o.value)==null||T.style.setProperty("transform",d),(m=o.value)==null||m.style.setProperty("transition",h)})}),{isDragging:k,dragProgress:x,dragStyles:H}}function G(){throw new Error}const Kt=["start","end","left","right","top","bottom"],Jt=_e({color:String,disableResizeWatcher:Boolean,disableRouteWatcher:Boolean,expandOnHover:Boolean,floating:Boolean,modelValue:{type:Boolean,default:null},permanent:Boolean,rail:{type:Boolean,default:null},railWidth:{type:[Number,String],default:56},scrim:{type:[Boolean,String],default:!0},image:String,temporary:Boolean,persistent:Boolean,touchless:Boolean,width:{type:[Number,String],default:256},location:{type:String,default:"start",validator:e=>Kt.includes(e)},sticky:Boolean,...gt(),...Mt(),...At(),...ze({mobile:null}),...ht(),...$t(),...Te(),...Lt({tag:"nav"}),...xe()},"VNavigationDrawer"),Qt=pe()({name:"VNavigationDrawer",props:Jt(),emits:{"update:modelValue":e=>!0,"update:rail":e=>!0},setup(e,o){let{attrs:n,emit:r,slots:t}=o;const{isRtl:c}=Ue(),{themeClasses:l}=we(e),{borderClasses:u}=vt(e),{backgroundColorClasses:_,backgroundColorStyles:a}=se(()=>e.color),{elevationClasses:v}=dt(e),{displayClasses:g,mobile:k}=Ye(e),{roundedClasses:x}=Ce(e),f=mt(),b=ke(e,"modelValue",null,P=>!!P),{ssrBootStyles:i}=Ht(),{scopeId:S}=Ee(),A=D(),M=R(!1),{runOpenDelay:W,runCloseDelay:H}=Et(e,P=>{M.value=P}),d=C(()=>e.rail&&e.expandOnHover&&M.value?Number(e.width):Number(e.rail?e.railWidth:e.width)),h=C(()=>ft(e.location,c.value)),p=Q(()=>e.persistent),w=C(()=>!e.permanent&&(k.value||e.temporary)),T=C(()=>e.sticky&&!w.value&&h.value!=="bottom");X(()=>e.expandOnHover&&e.rail!=null,()=>{U(M,P=>r("update:rail",!P))}),X(()=>!e.disableResizeWatcher,()=>{U(w,P=>!e.permanent&&be(()=>b.value=!P))}),X(()=>!e.disableRouteWatcher&&!!f,()=>{U(f.currentRoute,()=>w.value&&(b.value=!1))}),U(()=>e.permanent,P=>{P&&(b.value=!0)}),e.modelValue==null&&!w.value&&(b.value=e.permanent||!k.value);const{isDragging:m,dragProgress:E}=Zt({el:A,isActive:b,isTemporary:w,width:d,touchless:Q(()=>e.touchless),position:h}),I=C(()=>{const P=w.value?0:e.rail&&e.expandOnHover?Number(e.railWidth):d.value;return m.value?P*E.value:P}),{layoutItemStyles:F,layoutItemScrimStyles:Ae}=Nt({id:e.name,order:C(()=>parseInt(e.order,10)),position:h,layoutSize:I,elementSize:d,active:We(b),disableTransitions:Q(()=>m.value),absolute:C(()=>e.absolute||T.value&&typeof ne.value!="string")}),{isStuck:ne,stickyStyles:Ie}=zt({rootEl:A,isSticky:T,layoutItemStyles:F}),oe=se(()=>typeof e.scrim=="string"?e.scrim:null),Ne=C(()=>({...m.value?{opacity:E.value*.2,transition:"none"}:void 0,...Ae.value}));return Ge({VList:{bgColor:"transparent"}}),Me(()=>{const P=t.image||e.image;return L(N,null,[s(e.tag,z({ref:A,onMouseenter:W,onMouseleave:H,class:["v-navigation-drawer",`v-navigation-drawer--${h.value}`,{"v-navigation-drawer--expand-on-hover":e.expandOnHover,"v-navigation-drawer--floating":e.floating,"v-navigation-drawer--is-hovering":M.value,"v-navigation-drawer--rail":e.rail,"v-navigation-drawer--temporary":w.value,"v-navigation-drawer--persistent":p.value,"v-navigation-drawer--active":b.value,"v-navigation-drawer--sticky":T.value},l.value,_.value,u.value,g.value,v.value,x.value,e.class],style:[a.value,F.value,i.value,Ie.value,e.style]},S,n),{default:()=>{var le,re,ie;return[P&&L("div",{key:"image",class:"v-navigation-drawer__img"},[t.image?s(Be,{key:"image-defaults",disabled:!e.image,defaults:{VImg:{alt:"",cover:!0,height:"inherit",src:e.image}}},t.image):s(Pe,{key:"image-img",alt:"",cover:!0,height:"inherit",src:e.image},null)]),t.prepend&&L("div",{class:"v-navigation-drawer__prepend"},[(le=t.prepend)==null?void 0:le.call(t)]),L("div",{class:"v-navigation-drawer__content"},[(re=t.default)==null?void 0:re.call(t)]),t.append&&L("div",{class:"v-navigation-drawer__append"},[(ie=t.append)==null?void 0:ie.call(t)])]}}),s(fe,{name:"fade-transition"},{default:()=>[w.value&&(m.value||b.value)&&!!e.scrim&&L("div",z({class:["v-navigation-drawer__scrim",oe.backgroundColorClasses.value],style:[Ne.value,oe.backgroundColorStyles.value],onClick:()=>{p.value||(b.value=!1)}},S),null)]})])}),{isStuck:ne}}}),ea={class:"d-flex align-center"},ta={__name:"NavBar",props:{color:{type:String,default:"primary"},menuItems:{type:Array,required:!1,default:null},logoRoute:{type:Object,default:null}},setup(e){const o=e,n=ut(),r=Ve(),t=ct(),c=Fe(),l=Xe(),u=D(!1),_=D(!0),a=C(()=>r.authUser),v=C(()=>r.isAuthenticated),g=C(()=>n.notifications.length!==void 0&&n.notifications.length!==0),k=C(()=>l.MENU_LOGO_PATH?l.MENU_LOGO_PATH:new URL("/assets/Modoboa_RVB-BLANC-SANS-BBGoASES.png",import.meta.url).href);function x(f){return v.value?(f.roles===void 0||f.roles.indexOf(a.value.role)!==-1)&&(f.condition===void 0||f.condition())&&f.activated!==!1:!1}return j(()=>{a.value.role===qe.SUPER_ADMIN&&n.fetchNotifications()}),(f,b)=>(V(),B(Qt,{modelValue:_.value,"onUpdate:modelValue":b[2]||(b[2]=i=>_.value=i),rail:u.value,permanent:"",color:e.color,app:""},{default:y(()=>[L("div",ea,[s(Pe,{src:k.value,"max-width":"190",class:"logo",onClick:b[0]||(b[0]=i=>Z(c).push(o.logoRoute))},null,8,["src"]),s(J,{icon:u.value?"mdi-chevron-right":"mdi-chevron-left",variant:"text",onClick:b[1]||(b[1]=je(i=>u.value=!u.value,["stop"]))},null,8,["icon"])]),s(Le,{density:Z(t).compactLeftMenu?"compact":"default",lines:!Z(t).compactLeftMenu,nav:""},{default:y(()=>[(V(!0),$(N,null,K(e.menuItems,i=>(V(),$(N,{key:i.text},[x(i)?(V(),$(N,{key:0},[i.subheader?(V(),B(St,{key:0,class:"text-white"},{default:y(()=>[q(Y(i.text.toUpperCase()),1)]),_:2},1024)):i.action?(V(),B(O,{key:1,value:i,exact:i.exact,title:i.text,"prepend-icon":i.icon,onClick:i.action},null,8,["value","exact","title","prepend-icon","onClick"])):i.children?(V(),B(Ct,{key:3,value:i.text},{activator:y(({props:S})=>[(V(),B(O,z({ref_for:!0},S,{key:i.text,title:i.text,color:"white","prepend-icon":i.icon}),null,16,["title","prepend-icon"]))]),default:y(()=>[(V(!0),$(N,null,K(i.children,S=>(V(),$(N,{key:S.text},[x(S)?(V(),$(N,{key:0},[S.action?(V(),B(O,{key:0,title:S.text,value:S,"prepend-icon":S.icon,onClick:S.action},null,8,["title","value","prepend-icon","onClick"])):(V(),B(O,{key:1,to:S.to,link:"",title:S.text,value:S,"prepend-icon":S.icon},null,8,["to","title","value","prepend-icon"]))],64)):ee("",!0)],64))),128))]),_:2},1032,["value"])):(V(),B(O,{key:2,value:i,to:i.to,link:"",exact:i.exact,title:i.text,"prepend-icon":i.icon},Ze({_:2},[i.withBell&&g.value?{name:"append",fn:y(()=>[s(te,{color:"red",icon:"mdi-bell-alert-outline"})]),key:"0"}:void 0]),1032,["value","to","exact","title","prepend-icon"]))],64)):ee("",!0)],64))),128))]),_:1},8,["density","lines"])]),_:1},8,["modelValue","rail","color"]))}},aa=ae(ta,[["__scopeId","data-v-58cf46ea"]]),na={key:0,class:"top-menu"},oa={class:"mt-2"},la={class:"text-center"},ra={class:"text-h5"},ia={__name:"TopMenu",props:{user:{type:Object,default:null},remote:{type:Boolean,default:!1}},setup(e){const o=e,{$gettext:n}=Se(),r=D([]),t=C(()=>o.user.first_name&&o.user.last_name?`${o.user.first_name[0].toUpperCase()}${o.user.last_name[0].toUpperCase()}`:o.user.username?o.user.username.slice(0,2).toUpperCase():""),c=C(()=>[{text:n("Account"),icon:"mdi-account-circle-outline",to:o.remote?null:{name:"AccountSettings"},href:o.remote?"https://localhost:3000/account":"",click:()=>null},{text:n("Logout"),icon:"mdi-logout",click:l}]);async function l(){Ke()._s.forEach(async u=>await u.$reset())}return j(()=>{Je.getAvailableApplications().then(u=>{r.value=u.data})}),(u,_)=>e.user?(V(),$("div",na,[s(ue,{activator:"parent",location:"bottom"},{activator:y(({props:a})=>[s(J,z({icon:"mdi-apps",flat:"",class:"mr-4"},a),null,16)]),default:y(()=>[s(ve,{"min-width":"350","max-width":"400",class:"pa-4"},{default:y(()=>[s(Ot,{class:"justify-center"},{default:y(()=>[(V(!0),$(N,null,K(r.value,a=>(V(),B(Ut,{key:a.name,cols:"6"},{default:y(()=>[s(Yt,{rounded:"",class:"application text-center pa-4 text-body-2",onClick:v=>u.$router.push(a.url)},{default:y(()=>[s(te,{color:"primary",icon:a.icon,size:"x-large"},null,8,["icon"]),L("div",oa,Y(a.label),1)]),_:2},1032,["onClick"])]),_:2},1024))),128))]),_:1})]),_:1})]),_:1}),s(J,{icon:"",flat:"",color:"primary"},{default:y(()=>[q(Y(t.value)+" ",1),s(ue,{activator:"parent",location:"bottom"},{default:y(()=>[s(ve,{"min-width":"300","max-width":"350"},{default:y(()=>[s(Le,null,{default:y(()=>[L("div",la,[s(yt,{color:"primary"},{default:y(()=>[L("span",ra,Y(t.value),1)]),_:1}),s(O,{title:e.user.username},null,8,["title"])]),s(Tt),(V(!0),$(N,null,K(c.value,a=>(V(),B(O,{key:a.text,to:a.to,href:a.href,link:"",onClick:a.click},{prepend:y(()=>[s(te,{icon:a.icon},null,8,["icon"])]),default:y(()=>[s(Pt,null,{default:y(()=>[q(Y(a.text),1)]),_:2},1024)]),_:2},1032,["to","href","onClick"]))),128))]),_:1})]),_:1})]),_:1})]),_:1})])):ee("",!0)}},sa=ae(ia,[["__scopeId","data-v-adb37b5d"]]),ua={getTheme(){return Qe.get("/theme/")}};function ca(e){const o=R(e());let n=-1;function r(){clearInterval(n)}function t(){r(),be(()=>o.value=e())}function c(l){const u=l?getComputedStyle(l):{transitionDuration:.2},_=parseFloat(u.transitionDuration)*1e3||200;if(r(),o.value<=0)return;const a=performance.now();n=window.setInterval(()=>{const v=performance.now()-a+_;o.value=Math.max(e()-v,0),o.value<=0&&r()},_)}return ye(r),{clear:r,time:o,start:c,reset:t}}const va=_e({multiLine:Boolean,text:String,timer:[Boolean,String],timeout:{type:[Number,String],default:5e3},vertical:Boolean,...Vt({location:"bottom"}),...xt(),...Te(),...bt(),...xe(),...at(It({transition:"v-snackbar-transition"}),["persistent","noClickAnimation","scrim","scrollStrategy"])},"VSnackbar"),da=pe()({name:"VSnackbar",props:va(),emits:{"update:modelValue":e=>!0},setup(e,o){let{slots:n}=o;const r=ke(e,"modelValue"),{positionClasses:t}=pt(e),{scopeId:c}=Ee(),{themeClasses:l}=we(e),{colorClasses:u,colorStyles:_,variantClasses:a}=_t(e),{roundedClasses:v}=Ce(e),g=ca(()=>Number(e.timeout)),k=D(),x=D(),f=R(!1),b=R(0),i=D(),S=et(Rt,void 0);X(()=>!!S,()=>{const m=Dt();ge(()=>{i.value=m.mainStyles.value})}),U(r,M),U(()=>e.timeout,M),j(()=>{r.value&&M()});let A=-1;function M(){g.reset(),window.clearTimeout(A);const m=Number(e.timeout);if(!r.value||m===-1)return;const E=tt(x.value);g.start(E),A=window.setTimeout(()=>{r.value=!1},m)}function W(){g.reset(),window.clearTimeout(A)}function H(){f.value=!0,W()}function d(){f.value=!1,M()}function h(m){b.value=m.touches[0].clientY}function p(m){Math.abs(b.value-m.changedTouches[0].clientY)>50&&(r.value=!1)}function w(){f.value&&d()}const T=C(()=>e.location.split(" ").reduce((m,E)=>(m[`v-snackbar--${E}`]=!0,m),{}));return Me(()=>{const m=ce.filterProps(e),E=!!(n.default||n.text||e.text);return s(ce,z({ref:k,class:["v-snackbar",{"v-snackbar--active":r.value,"v-snackbar--multi-line":e.multiLine&&!e.vertical,"v-snackbar--timer":!!e.timer,"v-snackbar--vertical":e.vertical},T.value,t.value,e.class],style:[i.value,e.style]},m,{modelValue:r.value,"onUpdate:modelValue":I=>r.value=I,contentProps:z({class:["v-snackbar__wrapper",l.value,u.value,v.value,a.value],style:[_.value],onPointerenter:H,onPointerleave:d},m.contentProps),persistent:!0,noClickAnimation:!0,scrim:!1,scrollStrategy:"none",_disableGlobalStack:!0,onTouchstartPassive:h,onTouchend:p,onAfterLeave:w},c),{default:()=>{var I,F;return[wt(!1,"v-snackbar"),e.timer&&!f.value&&L("div",{key:"timer",class:"v-snackbar__timer"},[s(kt,{ref:x,color:typeof e.timer=="string"?e.timer:"info",max:e.timeout,"model-value":g.time.value},null)]),E&&L("div",{key:"content",class:"v-snackbar__content",role:"status","aria-live":"polite"},[((I=n.text)==null?void 0:I.call(n))??e.text,(F=n.default)==null?void 0:F.call(n)]),n.actions&&s(Be,{defaults:{VBtn:{variant:"text",ripple:!1,slim:!0}}},{default:()=>[L("div",{class:"v-snackbar__actions"},[n.actions({isActive:r})])]})]},activator:n.activator})}),Bt({},k)}}),ma=2e3,Ba={__name:"ConnectedLayout",props:{color:{type:String,default:"primary"},menuItems:{type:Array,default:null}},setup(e){const o=Ve(),n=nt(),{$gettext:r}=Se(),t=ot(),c=C(()=>o.authUser),l=C(()=>n.notificationColor),u=C(()=>n.notification),_=D(!1);return n.$onAction(({name:a,after:v})=>{a==="displayNotification"&&v(()=>{_.value=!0})},!0),ua.getTheme().then(a=>{a.data.theme_primary_color!==t.themes.value.light.colors.primary&&(t.themes.value.light.colors.primary=a.data.theme_primary_color),a.data.theme_primary_color_light!==t.themes.value.light.colors["primary-lighten-1"]&&(t.themes.value.light.colors["primary-lighten-1"]=a.data.theme_primary_color_light),a.data.theme_primary_color_dark!==t.themes.value.light.colors["primary-darken-1"]&&(t.themes.value.light.colors["primary-darken-1"]=a.data.theme_primary_color_dark),a.data.theme_secondary_color!==t.themes.value.light.colors.secondary&&(t.themes.value.light.colors.secondary=a.data.theme_secondary_color),a.data.theme_label_color!==t.themes.value.light.colors.label&&(t.themes.value.light.colors.label=a.data.theme_label_color)}),(a,v)=>(V(),B(st,null,{default:y(()=>[lt(a.$slots,"navbar",{},()=>[s(aa,{color:e.color,"menu-items":e.menuItems},null,8,["color","menu-items"])]),s(sa,{user:c.value},null,8,["user"]),s(Gt),s(da,{modelValue:_.value,"onUpdate:modelValue":v[1]||(v[1]=g=>_.value=g),color:l.value,timeout:ma,location:"top"},{actions:y(()=>[s(J,{color:"white",text:"",onClick:v[0]||(v[0]=g=>_.value=!1)},{default:y(()=>[q(Y(Z(r)("Close")),1)]),_:1})]),default:y(()=>[q(Y(u.value)+" ",1)]),_:1},8,["modelValue","color"])]),_:3}))}};export{Qt as V,Ba as _};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as me}from"./ConfirmDialog-BvqxQsD1.js";import{k as pe,b as se,m as T,o as g,G as j,F as W,e as f,t as V,f as h,c as I,w as c,H as M,q as re,a as l,l as x,v as F,x as P,y as ve,h as b,D as fe,J as ye,I as C,S as Ve,T as Se,B as q,U as be,V as oe,W as ge,X as Q,Y as ke,Z as _e,$ as he,g as U,a0 as xe,a1 as we,a2 as Ie,a3 as Ce}from"./index-DV9Li2cg.js";import{a as L,V as ie}from"./VRow-C_Ydf6yr.js";import{V as B,h as ee,i as Pe,R as te,j as $e,k as Ae,d as Be,f as Te,l as We,n as Re,o as Le,p as je}from"./VAvatar-BAgTUIvX.js";import{u as O}from"./tag-CFK9dzMJ.js";import{V as ae,m as Fe,a as le,b as Oe}from"./VWindowItem-wWSFAGI-.js";import{V as Ee}from"./VContainer-Btam4lk2.js";import{V as ne,m as Ne}from"./VSheet-5VVWtHvs.js";import{c as De}from"./forwardRefs-Cpc3YYl6.js";const Ge={class:"subtitle mt-4 d-flex"},ze={class:"text-h6"},Ue=["onClick"],Me={class:"text-grey"},He={__name:"CreationSummary",props:{sections:{type:Array,default:()=>[]}},emits:["modify-step"],setup(e,{emit:S}){const{$gettext:t}=se(),a=S;function o(s){return s.length?s.join(", "):t("Empty")}return(s,i)=>(g(!0),T(W,null,j(e.sections,(d,v)=>(g(),T(W,{key:v},[f("div",Ge,[f("span",ze,V(d.title),1),f("a",{href:"#",class:"edit-link ml-auto",onClick:n=>a("modify-step",v+1)},V(h(t)("Modify")),9,Ue)]),(g(!0),T(W,null,j(d.items,(n,_)=>(g(),I(ie,{key:_,dense:""},{default:c(()=>[n.value!==void 0?M(s.$slots,`item.${n.name}`,{key:0,item:n,displayList:o},()=>[l(L,null,{default:c(()=>[f("span",Me,V(n.key),1)]),_:2},1024),n.type==="yesno"?(g(),I(L,{key:0,class:"text-right"},{default:c(()=>[x(V(s.$yesno(n.value)),1)]),_:2},1024)):n.type==="list"?(g(),I(L,{key:1,class:"text-right"},{default:c(()=>[x(V(o(n.value)),1)]),_:2},1024)):(g(),I(L,{key:2,class:"text-right"},{default:c(()=>[x(V(n.value),1)]),_:2},1024))],!0):re("",!0)]),_:2},1024))),128))],64))),128))}},Ye=pe(He,[["__scopeId","data-v-6e743e1a"]]),J=Symbol.for("vuetify:v-stepper"),ue=P({color:String,disabled:{type:[Boolean,String],default:!1},prevText:{type:String,default:"$vuetify.stepper.prev"},nextText:{type:String,default:"$vuetify.stepper.next"}},"VStepperActions"),qe=F()({name:"VStepperActions",props:ue(),emits:{"click:prev":()=>!0,"click:next":()=>!0},setup(e,S){let{emit:t,slots:a}=S;const{t:o}=ve();function s(){t("click:prev")}function i(){t("click:next")}return O(()=>{const d={onClick:s},v={onClick:i};return f("div",{class:"v-stepper-actions"},[l(ee,{defaults:{VBtn:{disabled:["prev",!0].includes(e.disabled),text:o(e.prevText),variant:"text"}}},{default:()=>{var n;return[((n=a.prev)==null?void 0:n.call(a,{props:d}))??l(B,d,null)]}}),l(ee,{defaults:{VBtn:{color:e.color,disabled:["next",!0].includes(e.disabled),text:o(e.nextText),variant:"tonal"}}},{default:()=>{var n;return[((n=a.next)==null?void 0:n.call(a,{props:v}))??l(B,v,null)]}})])}),{}}}),ce=Pe("v-stepper-header"),Je=P({color:String,title:String,subtitle:String,complete:Boolean,completeIcon:{type:C,default:"$complete"},editable:Boolean,editIcon:{type:C,default:"$edit"},error:Boolean,errorIcon:{type:C,default:"$error"},icon:C,ripple:{type:[Boolean,Object],default:!0},rules:{type:Array,default:()=>[]}},"StepperItem"),Ke=P({...Je(),...We()},"VStepperItem"),H=F()({name:"VStepperItem",directives:{vRipple:te},props:Ke(),emits:{"group:selected":e=>!0},setup(e,S){let{slots:t}=S;const a=$e(e,J,!0),o=b(()=>(a==null?void 0:a.value.value)??e.value),s=b(()=>e.rules.every(w=>w()===!0)),i=b(()=>!e.disabled&&e.editable),d=b(()=>!e.disabled&&e.editable),v=b(()=>e.error||!s.value),n=b(()=>e.complete||e.rules.length>0&&s.value),_=b(()=>v.value?e.errorIcon:n.value?e.completeIcon:a.isSelected.value&&e.editable?e.editIcon:e.icon),p=b(()=>({canEdit:d.value,hasError:v.value,hasCompleted:n.value,title:e.title,subtitle:e.subtitle,step:o.value,value:e.value}));return O(()=>{var k,r,u;const w=(!a||a.isSelected.value||n.value||d.value)&&!v.value&&!e.disabled,R=!!(e.title!=null||t.title),$=!!(e.subtitle!=null||t.subtitle);function y(){a==null||a.toggle()}return fe(f("button",{class:ye(["v-stepper-item",{"v-stepper-item--complete":n.value,"v-stepper-item--disabled":e.disabled,"v-stepper-item--error":v.value},a==null?void 0:a.selectedClass.value]),disabled:!e.editable,type:"button",onClick:y},[i.value&&Ae(!0,"v-stepper-item"),l(Te,{key:"stepper-avatar",class:"v-stepper-item__avatar",color:w?e.color:void 0,size:24},{default:()=>{var m;return[((m=t.icon)==null?void 0:m.call(t,p.value))??(_.value?l(Be,{icon:_.value},null):o.value)]}}),f("div",{class:"v-stepper-item__content"},[R&&f("div",{key:"title",class:"v-stepper-item__title"},[((k=t.title)==null?void 0:k.call(t,p.value))??e.title]),$&&f("div",{key:"subtitle",class:"v-stepper-item__subtitle"},[((r=t.subtitle)==null?void 0:r.call(t,p.value))??e.subtitle]),(u=t.default)==null?void 0:u.call(t,p.value)])]),[[te,e.ripple&&e.editable,null]])}),{}}}),Xe=P({...be(Fe(),["continuous","nextIcon","prevIcon","showArrows","touch","mandatory"])},"VStepperWindow"),de=F()({name:"VStepperWindow",props:Xe(),emits:{"update:modelValue":e=>!0},setup(e,S){let{slots:t}=S;const a=Ve(J,null),o=Se(e,"modelValue"),s=b({get(){var i;return o.value!=null||!a?o.value:(i=a.items.value.find(d=>a.selected.value.includes(d.id)))==null?void 0:i.value},set(i){o.value=i}});return O(()=>{const i=ae.filterProps(e);return l(ae,q({_as:"VStepperWindow"},i,{modelValue:s.value,"onUpdate:modelValue":d=>s.value=d,class:["v-stepper-window",e.class],style:e.style,mandatory:!1,touch:!1}),t)}),{}}}),Ze=P({...Oe()},"VStepperWindowItem"),Y=F()({name:"VStepperWindowItem",props:Ze(),setup(e,S){let{slots:t}=S;return O(()=>{const a=le.filterProps(e);return l(le,q({_as:"VStepperWindowItem"},a,{class:["v-stepper-window-item",e.class],style:e.style}),t)}),{}}}),Qe=P({altLabels:Boolean,bgColor:String,completeIcon:C,editIcon:C,editable:Boolean,errorIcon:C,hideActions:Boolean,items:{type:Array,default:()=>[]},itemTitle:{type:String,default:"title"},itemValue:{type:String,default:"value"},nonLinear:Boolean,flat:Boolean,...he()},"Stepper"),et=P({...Qe(),...Le({mandatory:"force",selectedClass:"v-stepper-item--selected"}),...Ne(),..._e(ue(),["prevText","nextText"])},"VStepper"),tt=F()({name:"VStepper",props:et(),emits:{"update:modelValue":e=>!0},setup(e,S){let{slots:t}=S;const{items:a,next:o,prev:s,selected:i}=Re(e,J),{displayClasses:d,mobile:v}=oe(e),{completeIcon:n,editIcon:_,errorIcon:p,color:w,editable:R,prevText:$,nextText:y}=ge(e),k=b(()=>e.items.map((m,D)=>{const E=Q(m,e.itemTitle,m),G=Q(m,e.itemValue,D+1);return{title:E,value:G,raw:m}})),r=b(()=>a.value.findIndex(m=>i.value.includes(m.id))),u=b(()=>e.disabled?e.disabled:r.value===0?"prev":r.value===a.value.length-1?"next":!1);return ke({VStepperItem:{editable:R,errorIcon:p,completeIcon:n,editIcon:_,prevText:$,nextText:y},VStepperActions:{color:w,disabled:u,prevText:$,nextText:y}}),O(()=>{const m=ne.filterProps(e),D=!!(t.header||e.items.length),E=e.items.length>0,G=!e.hideActions&&!!(E||t.actions);return l(ne,q(m,{color:e.bgColor,class:["v-stepper",{"v-stepper--alt-labels":e.altLabels,"v-stepper--flat":e.flat,"v-stepper--non-linear":e.nonLinear,"v-stepper--mobile":v.value},d.value,e.class],style:e.style}),{default:()=>{var K,X;return[D&&l(ce,{key:"stepper-header"},{default:()=>[k.value.map((A,N)=>{let{raw:z,...Z}=A;return f(W,null,[!!N&&l(De,null,null),l(H,Z,{default:t[`header-item.${Z.value}`]??t.header,icon:t.icon,title:t.title,subtitle:t.subtitle})])})]}),E&&l(de,{key:"stepper-window"},{default:()=>[k.value.map(A=>l(Y,{value:A.value},{default:()=>{var N,z;return((N=t[`item.${A.value}`])==null?void 0:N.call(t,A))??((z=t.item)==null?void 0:z.call(t,A))}}))]}),(K=t.default)==null?void 0:K.call(t,{prev:s,next:o}),G&&(((X=t.actions)==null?void 0:X.call(t,{next:o,prev:s}))??l(qe,{key:"stepper-actions","onClick:prev":s,"onClick:next":o},t))]}})}),{prev:s,next:o}}}),at={class:"d-flex justify-center inner fill-height"},lt={class:"mb-5 text-h5"},nt={class:"text-grey-darken-1"},st={class:"d-flex justify-end mt-4"},rt={class:"text-center text-h3"},ot={class:"d-flex justify-center mt-8"},Vt={__name:"CreationForm",props:{title:{type:String,default:""},steps:{type:Array,default:()=>[]},summarySections:{type:Array,default:()=>[]},getVFormRef:{type:Function,default:null},formGetter:{type:Function,default:null},validateObject:{type:Function,default:null}},emits:["close","create","validationError"],setup(e,{expose:S,emit:t}){const{smAndDown:a}=oe(),o=xe(),s=e,i=U(1),d=U(!1),v=U(),n=b(()=>o.CREATION_FORM_LOGO_PATH?o.CREATION_FORM_LOGO_PATH:new URL("/assets/Modoboa_RVB-BLEU-SANS-pKrnjsR_.png",import.meta.url).href),_=t,{$gettext:p}=se();async function w(){await v.value.open(p("Warning"),p("If you close this form now, your modifications won't be saved. Do you confirm?"),{color:"warning",agreeLabel:p("Yes"),cancelLabel:p("No")})&&_("close")}async function R(y,k){const r=s.getVFormRef(s.steps[y-1]);if(r!==void 0){const{valid:u}=await r.validate();if(!u)return;if(s.validateObject)try{await s.validateObject(y)}catch(m){_("validationError",y,m.response.data);return}}i.value=k}function $(){d.value=!0,_("create")}return S({working:d}),(y,k)=>(g(),T("div",at,[l(tt,{modelValue:i.value,"onUpdate:modelValue":k[1]||(k[1]=r=>i.value=r),mobile:!h(a),class:"vertical-overflow"},{default:c(()=>[l(h(me),{ref_key:"confirm",ref:v},null,512),l(ce,{class:"align-center px-10"},{default:c(()=>[l(je,{src:n.value,"max-width":"190",class:"hidden-sm-and-down"},null,8,["src"]),(g(!0),T(W,null,j(e.steps,(r,u)=>(g(),I(H,{key:r.name,color:"primary",value:u+1,complete:i.value>u+1},{default:c(()=>[x(V(r.title),1)]),_:2},1032,["value","complete"]))),128)),l(H,{value:e.steps.length+1},{default:c(()=>[x(V(h(p)("Summary")),1)]),_:1},8,["value"]),l(B,{icon:"mdi-close",color:"primary",size:h(a)?"small":"x-large",variant:"text",onClick:w},null,8,["size"])]),_:1}),l(de,{class:"mt-4 d-flex justify-center"},{default:c(()=>[(g(!0),T(W,null,j(e.steps,(r,u)=>(g(),I(Y,{key:r.name,value:u+1,class:"flex-grow-1 ma-10"},{default:c(()=>[l(Ee,{fluid:""},{default:c(()=>[l(ie,{align:"center",justify:"center"},{default:c(()=>[l(L,{cols:"8",align:"start"},{default:c(()=>[f("div",lt,[f("span",nt,V(e.title),1),x(" / "+V(r.title),1)]),M(y.$slots,`form.${r.name}`,{step:r,currentStep:u+1})]),_:2},1024)]),_:2},1024)]),_:2},1024),f("div",st,[u+1>1?(g(),I(B,{key:0,class:"mr-10",variant:"text",onClick:m=>i.value=u},{default:c(()=>[x(V(h(p)("Back")),1)]),_:2},1032,["onClick"])):re("",!0),l(B,{color:"primary",size:"large",onClick:m=>R(u+1,u+2)},{default:c(()=>[x(V(h(p)("Next")),1)]),_:2},1032,["onClick"])])]),_:2},1032,["value"]))),128)),l(Y,{value:e.steps.length+1,class:"flex-grow-0"},{default:c(()=>[f("div",rt,V(h(p)("Summary")),1),l(Ye,{sections:e.summarySections,onModifyStep:k[0]||(k[0]=r=>i.value=r)},we({_:2},[j(y.$slots,(r,u)=>({name:u,fn:c(m=>[M(y.$slots,u,Ie(Ce(m)))])}))]),1032,["sections"]),f("div",ot,[l(B,{color:"primary",size:"large",loading:d.value,onClick:$},{default:c(()=>[x(V(h(p)("Confirm and create")),1)]),_:1},8,["loading"])])]),_:3},8,["value"])]),_:3})]),_:3},8,["modelValue","mobile"])]))}};export{Vt as _};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{k as n,g as p,j as b,c as h,o as c,w as e,a as t,l as _,t as i,e as m,b as g,d as w,m as V,f as k}from"./index-DV9Li2cg.js";import{a as v}from"./admin-CJVLMHh9.js";import{V as x,a as y,b as C}from"./VCard-DFWiFORP.js";import{V as N}from"./VDataTable-D_0_xJTl.js";import{p as T}from"./parameters-Lgiqp7aw.js";import{V as A,a as $}from"./VToolbar-CGwhgdmI.js";import{V as B,a as D}from"./VRow-C_Ydf6yr.js";import"./tag-CFK9dzMJ.js";import"./VAvatar-BAgTUIvX.js";import"./VProgressCircular-CrEXxs7k.js";import"./VSelect-CS51PDEt.js";import"./VTextField-CLwRV0Cb.js";import"./forwardRefs-Cpc3YYl6.js";import"./ssrBoot-BsxW6uW4.js";import"./VMenu-B_dVqOmo.js";import"./VCheckboxBtn-j7di4leN.js";import"./VSelectionControl-DiOqtY38.js";import"./VChip-nZ0uhY7t.js";import"./VTable-KsiZ3cBz.js";import"./filter-D7NrAf6a.js";/* empty css */const F=["href"],M={href:"https://modoboa.org/weblog/",target:"_blank"},W={__name:"NewsFeedWidget",async setup(f){let a,o;const s=p([]),d=[{title:"",key:"title"},{title:"",key:"published",align:"end"}],u=([a,o]=b(()=>v.getNewsFeed()),a=await a,o(),a);return s.value=u.data,(l,I)=>(c(),h(C,{title:l.$gettext("Latest news")},{default:e(()=>[t(x,null,{default:e(()=>[t(N,{headers:d,items:s.value,"hide-default-header":"","hide-default-footer":""},{"item.title":e(({item:r})=>[m("a",{href:r.link,target:"_blank"},i(r.title),9,F)]),"item.published":e(({item:r})=>[_(i(l.$date(r.published)),1)]),_:2},1032,["items"])]),_:1}),t(y,{class:"justify-center"},{default:e(()=>[m("div",null,[m("a",M,i(l.$gettext("Visit the official weblog for more information")),1)])]),_:1})]),_:1},8,["title"]))}},j=n(W,[["__scopeId","data-v-e0975b37"]]),G={__name:"DashboardView",setup(f){const{$gettext:a}=g(),o=p("");return w(async()=>{const s=await T.getGlobalApplication("core");s.data.params.custom_welcome_message?o.value=s.data.params.custom_welcome_message:o.value=a("Welcome to Modoboa")}),(s,d)=>(c(),V("div",null,[t(A,{flat:""},{default:e(()=>[t($,null,{default:e(()=>[_(i(o.value),1)]),_:1})]),_:1}),t(B,null,{default:e(()=>[t(D,{sm:"12",md:"6"},{default:e(()=>[t(k(j))]),_:1})]),_:1})]))}},re=n(G,[["__scopeId","data-v-cbf2b4b5"]]);export{re as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as I,b as L,g as v,d as j,c as r,o,w as e,a as l,e as O,m as y,t as s,f as u,q as V,l as m,N as U,i as B}from"./index-DV9Li2cg.js";import{d as h}from"./domains-nBMR-fRf.js";import{c as $,V as q,a as G,b as H}from"./VCard-DFWiFORP.js";import{V as F}from"./VDataTableVirtual-BwVmkt4u.js";import{V as A,d as C}from"./VAvatar-BAgTUIvX.js";import{V as J}from"./VAutocomplete-Cc4_tcl1.js";import{V as K,a as D}from"./VRow-C_Ydf6yr.js";const P={class:"headline"},Q={key:0,class:"headline"},W={key:1,class:"headline"},X={key:0},oe={__name:"DomainAdminList",props:{domain:{type:Object,default:()=>{}},dialogMode:{type:Boolean,default:!1}},emits:["close"],setup(c,{emit:M}){const x=I(),{$gettext:a}=L(),f=c,R=M,p=v([]),_=v([]),S=v([{title:a("Username"),value:"username"},{title:a("Name"),value:"name"},{title:"",value:"actions",align:"end",sortable:!1}]),k=v(!1),d=v(null);function w(){_.value.push({}),k.value=!0}function E(){k.value=!1,R("close")}function g(n){h.getDomainAdministrators(n.pk).then(t=>{_.value=t.data})}function N(){U.getAll({role:[B.RESELLER,B.DOMAIN_ADMIN],page_size:50}).then(n=>{p.value=n.data.results.filter(t=>_.value.find(i=>i.id===t.pk)===void 0)})}function T(){h.addDomainAdministrator(f.domain.pk,d.value.pk).then(()=>{g(f.domain),p.value=p.value.filter(n=>n.pk!==d.value.pk),d.value=null,k.value=!1,x.displayNotification({msg:a("Administrator added")})})}function z(n){h.removeDomainAdministrator(f.domain.pk,n.id).then(()=>{g(f.domain),N(),x.displayNotification({msg:a("Administrator removed")})})}return j(()=>{g(f.domain),N()}),(n,t)=>(o(),r(H,null,{default:e(()=>[l($,null,{default:e(()=>[O("span",P,[c.dialogMode?(o(),y("div",Q,s(u(a)("Administrators of"))+" "+s(c.domain.name),1)):(o(),y("div",W,s(u(a)("Administrators")),1))])]),_:1}),l(q,null,{default:e(()=>[l(F,{headers:S.value,items:_.value},{"item.username":e(({item:i})=>[i.id?(o(),y("span",X,s(i.username),1)):(o(),r(J,{key:1,modelValue:d.value,"onUpdate:modelValue":t[0]||(t[0]=b=>d.value=b),label:u(a)("Select an account"),items:p.value,variant:"outlined","item-title":"username",class:"mt-5","return-object":""},{append:e(()=>[d.value?(o(),r(A,{key:0,variant:"text",color:"primary",size:"x-large",onClick:T},{default:e(()=>[l(C,null,{default:e(()=>t[1]||(t[1]=[m("mdi-content-save")])),_:1,__:[1]})]),_:1})):V("",!0)]),_:1},8,["modelValue","label","items"]))]),"item.name":e(({item:i})=>[m(s(i.first_name)+" "+s(i.last_name),1)]),"item.actions":e(({item:i})=>[i.id?(o(),r(A,{key:0,variant:"text",color:"red",title:u(a)("Remove this administrator"),size:"x-large",onClick:b=>z(i)},{default:e(()=>[l(C,null,{default:e(()=>t[2]||(t[2]=[m("mdi-delete-outline")])),_:1,__:[2]})]),_:2},1032,["title","onClick"])):V("",!0)]),_:2},1032,["headers","items"])]),_:1}),l(G,null,{default:e(()=>[l(K,null,{default:e(()=>[l(D,{align:c.dialogMode?"left":"right"},{default:e(()=>[k.value?V("",!0):(o(),r(A,{key:0,color:"primary",variant:"outlined",onClick:w},{default:e(()=>[l(C,{small:""},{default:e(()=>t[3]||(t[3]=[m("mdi-plus")])),_:1,__:[3]}),m(" "+s(u(a)("Add administrator")),1)]),_:1}))]),_:1},8,["align"]),c.dialogMode?(o(),r(D,{key:0,align:"right"},{default:e(()=>[l(A,{color:"grey darken-1",variant:"text",onClick:E},{default:e(()=>[m(s(u(a)("Close")),1)]),_:1})]),_:1})):V("",!0)]),_:1})]),_:1})]),_:1}))}};export{oe as _};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as I,u as q,h as U,g as f,i as b,d as J,c as d,m as g,a,e as k,w as e,q as P,l as c,t as o,f as s,s as K,o as u,k as Q,M as z,F as H}from"./index-DV9Li2cg.js";import{c as W,b as X,a as Y,_ as Z}from"./DomainTransportForm-DPnPGBOp.js";import{L as ee}from"./LoadingData-CVD2Aen8.js";import{p as ae}from"./parameters-Lgiqp7aw.js";import{_ as te}from"./ResourcesForm-D87PHeH0.js";import{d as O}from"./domains-nBMR-fRf.js";import{g as N,d as w,V as B}from"./VAvatar-BAgTUIvX.js";import{V,c as F,a as h,b as le}from"./VExpansionPanels-B5D6GOa3.js";import{V as p,a as m}from"./VRow-C_Ydf6yr.js";import{u as oe}from"./domains.store-ChZgLcqP.js";import{V as se,a as ue}from"./VToolbar-CGwhgdmI.js";import"./ChoiceField-7eU7c_rI.js";import"./VForm-CpoZf60D.js";import"./tag-CFK9dzMJ.js";import"./VTextField-CLwRV0Cb.js";import"./VProgressCircular-CrEXxs7k.js";import"./forwardRefs-Cpc3YYl6.js";import"./ssrBoot-BsxW6uW4.js";import"./VSwitch-Chg5o-Cp.js";import"./VSelectionControl-DiOqtY38.js";import"./transports-TO08iTXJ.js";import"./VAutocomplete-Cc4_tcl1.js";import"./VSelect-CS51PDEt.js";import"./VMenu-B_dVqOmo.js";import"./VCheckboxBtn-j7di4leN.js";import"./VChip-nZ0uhY7t.js";import"./filter-D7NrAf6a.js";import"./VCheckbox-CKsH_vq3.js";import"./VContainer-Btam4lk2.js";/* empty css */const re={key:1},ne={key:0},ie={key:0},me={key:0},de={class:"mr-2"},ce={class:"mr-2"},fe={class:"mr-2"},pe={key:0},_e={class:"mr-2"},ve={class:"mt-4 d-flex justify-end"},ge={__name:"DomainEditForm",props:{domain:{type:Object,default:null}},setup($){const x=K(),{$gettext:n}=I(),R=q(),E=$,_=U(()=>R.authUser),v=f({}),D=f(0),y=f(!1),t=U(()=>E.domain),C=f(),L=f(),T=f(),A=f(),M=f(),j=U(()=>{const r={generalForm:C,limitationForm:A,dnsForm:M};return t.value.type==="relaydomain"&&(r.transportForm=T),v.value.params&&v.value.params.enable_domain_limits&&(_.value.role===b.SUPER_ADMIN||_.value.role===b.RESELLER)&&(r.resourcesForm=L),r}),S=f(!1);async function G(){S.value=!1,D.value=[];for(const[r,i]of Object.entries(j.value))if(i.value!=null){const{valid:l}=await i.value.vFormRef.validate();l||(S.value=!0,D.value.push(r))}if(!S.value){y.value=!0;try{const r=JSON.parse(JSON.stringify(t.value));r.transport===null&&delete r.transport,r.type==="relaydomain"?T.value.checkSettingTypes(r):r.transport&&delete r.transport,r.message_limit===""&&(r.message_limit=null),await O.updateDomain(t.value.pk,r),x.push({name:"DomainDetail",params:{id:t.value.pk}})}finally{y.value=!1}}}return J(()=>{ae.getGlobalApplication("limits").then(r=>{v.value.data=r.data})}),(r,i)=>y.value?(u(),d(ee,{key:0})):(u(),g("div",re,[a(le,{modelValue:D.value,"onUpdate:modelValue":i[5]||(i[5]=l=>D.value=l),multiple:S.value},{default:e(()=>[a(V,{eager:"",value:"generalForm"},{default:e(()=>[a(F,null,{default:e(({expanded:l})=>[a(p,{"no-gutters":""},{default:e(()=>[a(m,{cols:"4"},{default:e(()=>[c(o(s(n)("General")),1)]),_:1}),a(m,{cols:"8",class:"text-medium-emphasis"},{default:e(()=>[a(N,{"leave-absolute":""},{default:e(()=>[l?(u(),g("span",ne)):(u(),d(p,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(m,{cols:"6"},{default:e(()=>[c(o(s(n)("Name: "))+" "+o(t.value.name),1)]),_:1}),a(m,{cols:"6"},{default:e(()=>[c(o(s(n)("Type: "))+" "+o(t.value.type),1)]),_:1})]),_:1}))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1}),a(h,null,{default:e(()=>[a(W,{ref_key:"generalForm",ref:C,modelValue:t.value,"onUpdate:modelValue":i[0]||(i[0]=l=>t.value=l)},null,8,["modelValue"])]),_:1})]),_:1}),a(V,{eager:"",value:"dnsForm"},{default:e(()=>[a(F,null,{default:e(({expanded:l})=>[a(p,{"no-gutters":""},{default:e(()=>[a(m,{cols:"4"},{default:e(()=>[c(o(s(n)("DNS")),1)]),_:1}),a(m,{cols:"8",class:"text-medium-emphasis"},{default:e(()=>[a(N,{"leave-absolute":""},{default:e(()=>[l?(u(),g("span",ie)):(u(),d(p,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(m,{cols:"6"},{default:e(()=>[c(o(s(n)("DNS checks"))+" ",1),t.value.enable_dns_checks?(u(),d(w,{key:0,color:"success",icon:"mdi-check-circle-outline"})):(u(),d(w,{key:1,icon:"mdi-check-circle-outline"}))]),_:1}),a(m,{cols:"6"},{default:e(()=>[c(o(s(n)("DKIM signing"))+" ",1),t.value.enable_dkim?(u(),d(w,{key:0,color:"success",icon:"mdi-check-circle-outline"})):(u(),d(w,{key:1,icon:"mdi-close-circle-outline"}))]),_:1})]),_:1}))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1}),a(h,null,{default:e(()=>[a(X,{ref_key:"dnsForm",ref:M,modelValue:t.value,"onUpdate:modelValue":i[1]||(i[1]=l=>t.value=l)},null,8,["modelValue"])]),_:1})]),_:1}),a(V,{eager:"",value:"limitationForm"},{default:e(()=>[a(F,null,{default:e(({expanded:l})=>[a(p,{"no-gutters":""},{default:e(()=>[a(m,{cols:"4"},{default:e(()=>[c(o(s(n)("Limitations")),1)]),_:1}),a(m,{cols:"8",class:"text-medium-emphasis"},{default:e(()=>[a(N,{"leave-absolute":""},{default:e(()=>[l?(u(),g("span",me)):(u(),d(p,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(m,{cols:"6"},{default:e(()=>[k("div",de,o(s(n)("Quota: "))+" "+o(t.value.quota),1)]),_:1}),t.value.message_limit?(u(),d(m,{key:0,cols:"6"},{default:e(()=>[k("div",ce,o(s(n)("Sending limit: "))+" "+o(t.value.message_limit),1)]),_:1})):(u(),d(m,{key:1,cols:"6"},{default:e(()=>[k("div",fe,o(s(n)("No sending limit")),1)]),_:1}))]),_:1}))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1}),a(h,null,{default:e(()=>[a(Y,{ref_key:"limitationForm",ref:A,modelValue:t.value,"onUpdate:modelValue":i[2]||(i[2]=l=>t.value=l)},null,8,["modelValue"])]),_:1})]),_:1}),t.value.type==="relaydomain"?(u(),d(V,{key:0,value:"transportForm",eager:""},{default:e(()=>[a(F,null,{default:e(({expanded:l})=>[a(p,{"no-gutters":""},{default:e(()=>[a(m,{cols:"4"},{default:e(()=>[c(o(s(n)("Transport")),1)]),_:1}),a(m,{cols:"8",class:"text-medium-emphasis"},{default:e(()=>[a(N,{"leave-absolute":""},{default:e(()=>[l?(u(),g("span",pe)):(u(),d(p,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(m,{cols:"6"},{default:e(()=>[k("div",_e,o(s(n)("Service: "))+" "+o(t.value.transport.service),1)]),_:1})]),_:1}))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1}),a(h,null,{default:e(()=>[a(Z,{ref_key:"transportForm",ref:T,modelValue:t.value.transport,"onUpdate:modelValue":i[3]||(i[3]=l=>t.value.transport=l)},null,8,["modelValue"])]),_:1})]),_:1})):P("",!0),v.value.params&&v.value.params.enable_domain_limits&&(_.value.role===s(b).SUPER_ADMIN||_.value.role===s(b).RESELLER)?(u(),d(V,{key:1,value:"resourcesForm",eager:""},{default:e(()=>[a(F,null,{default:e(()=>[a(p,{"no-gutters":""},{default:e(()=>[a(m,{cols:"4"},{default:e(()=>[c(o(s(n)("Resources")),1)]),_:1})]),_:1})]),_:1}),a(h,null,{default:e(()=>[a(te,{ref_key:"resourcesForm",ref:L,modelValue:t.value.resources,"onUpdate:modelValue":i[4]||(i[4]=l=>t.value.resources=l)},null,8,["modelValue"])]),_:1})]),_:1})):P("",!0)]),_:1},8,["modelValue","multiple"]),k("div",ve,[a(B,{loading:y.value,onClick:i[6]||(i[6]=l=>s(x).go(-1))},{default:e(()=>[c(o(s(n)("Cancel")),1)]),_:1},8,["loading"]),a(B,{class:"ml-4",color:"primary darken-1",loading:y.value,onClick:G},{default:e(()=>[c(o(s(n)("Save")),1)]),_:1},8,["loading"])])]))}},ye={__name:"DomainEditView",setup($){const{$gettext:x}=I(),n=z(),R=oe(),E=f({});return R.getDomains(),O.getDomain(n.params.id).then(_=>{E.value=_.data}),(_,v)=>(u(),g(H,null,[a(se,{flat:""},{default:e(()=>[a(ue,null,{default:e(()=>[c(o(s(x)("Edit domain")),1)]),_:1})]),_:1}),a(s(ge),{domain:E.value},null,8,["domain"])],64))}},He=Q(ye,[["__scopeId","data-v-2221e277"]]);export{He as default};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{_ as _e}from"./DomainAdminList-CsWUNKVk.js";import{c as q}from"./colors-DoZdCu1D.js";import{b as L,m as h,o as n,e as r,a as t,l as u,t as l,J as re,w as e,F as K,G as X,f as o,g as k,K as Q,h as B,d as pe,L as te,r as ue,c as f,q as C,k as ie,n as ye,j as ge,M as ke}from"./index-DV9Li2cg.js";import{f as G,V as N,d as be}from"./VAvatar-BAgTUIvX.js";import{V as he}from"./VTable-KsiZ3cBz.js";import{d as O}from"./domains-nBMR-fRf.js";import{V as se,a as de}from"./VToolbar-CGwhgdmI.js";import{V as le}from"./VSpacer-C6PZ3X24.js";import{V as F,b as R,c as E,a as ce}from"./VCard-DFWiFORP.js";import{V as b,a as c}from"./VRow-C_Ydf6yr.js";import{V as xe}from"./VSheet-5VVWtHvs.js";import{V as we,a as Ve,b as $e}from"./VExpansionPanels-B5D6GOa3.js";import{V as A}from"./VAlert-B7mzOJIO.js";import{_ as De}from"./ConfirmDialog-BvqxQsD1.js";import{V as D}from"./VChip-nZ0uhY7t.js";import{V as Ce}from"./VDataTableVirtual-BwVmkt4u.js";import{V as oe}from"./VDialog-CZqM2Ofu.js";import{t as Me}from"./transports-TO08iTXJ.js";import{L as Ne}from"./LoadingData-CVD2Aen8.js";import{_ as Ie}from"./ResourcesForm-D87PHeH0.js";import{T as ne}from"./TimeSerieChart-C6j0uYR_.js";import{V as Se,a as Te,b as Z,c as ee}from"./VTabs-tNrJIYO0.js";import"./VAutocomplete-Cc4_tcl1.js";import"./VSelect-CS51PDEt.js";import"./VTextField-CLwRV0Cb.js";import"./tag-CFK9dzMJ.js";import"./VProgressCircular-CrEXxs7k.js";import"./forwardRefs-Cpc3YYl6.js";import"./ssrBoot-BsxW6uW4.js";import"./VMenu-B_dVqOmo.js";import"./VCheckboxBtn-j7di4leN.js";import"./VSelectionControl-DiOqtY38.js";import"./filter-D7NrAf6a.js";/* empty css */import"./VDataTable-D_0_xJTl.js";import"./VContainer-Btam4lk2.js";import"./VForm-CpoZf60D.js";import"./VPicker-CXkIGEze.js";import"./VWindowItem-wWSFAGI-.js";const Ae={class:"text-h6"},Ke={width:"40%"},Pe={class:"text-white"},Be={class:"text-white"},Fe={class:"text-white"},Re={class:"text-white"},W={__name:"DmarcSourceTable",props:{title:{type:String,default:""},color:{type:String,default:""},total:{type:Number,default:null},sources:{type:Object,default:null}},setup(s){const{$gettext:a}=L();return(p,i)=>(n(),h("div",null,[r("div",Ae,[u(l(s.title)+" ",1),r("span",{class:re(`text-${s.color}-lighten-2`)},l(s.total),3)]),t(he,null,{default:e(()=>[r("tbody",null,[(n(!0),h(K,null,X(s.sources,(d,v)=>(n(),h(K,{key:v},[r("tr",null,[r("th",Ke,l(v),1),r("th",null,l(o(a)("Total")),1),i[0]||(i[0]=r("th",null,"SPF",-1)),i[1]||(i[1]=r("th",null,"DKIM",-1))]),(n(!0),h(K,null,X(d,(_,w)=>(n(),h("tr",{key:w},[r("td",null,l(w),1),r("td",null,l(_.total),1),r("td",null,[t(G,{color:"green lighten-2",size:"24"},{default:e(()=>[r("span",Pe,l(_.spf.success),1)]),_:2},1024),t(G,{color:"red lighten-2 ml-1",size:"24"},{default:e(()=>[r("span",Be,l(_.spf.failure),1)]),_:2},1024)]),r("td",null,[t(G,{color:"green lighten-2",size:"24"},{default:e(()=>[r("span",Fe,l(_.dkim.success),1)]),_:2},1024),t(G,{color:"red lighten-2 ml-1",size:"24"},{default:e(()=>[r("span",Re,l(_.dkim.failure),1)]),_:2},1024)])]))),128))],64))),128))])]),_:1})]))}},je={key:0},ze={class:"mx-2"},Le={class:"text-subtitle-1"},Oe={key:1},Ee={__name:"DmarcAligmentChart",props:{domain:{type:Object,default:()=>null}},setup(s){const{$gettext:a}=L(),p=["aligned","trusted","forwarded","failed"],i=s,d=k({colors:[q.green.lighten2,q.orange.lighten2,q.blue.lighten2,q.red.lighten2],labels:[a("Fully aligned"),a("Partially aligned"),a("Forwarded"),a("Failed")],legend:{position:"bottom"}}),v=k(null),_=k([{key:"total",label:a("Total"),color:"primary lighten-2"},{key:"aligned",label:a("Fully aligned"),color:"green lighten-2"},{key:"trusted",label:a("Partially aligned"),color:"orange lighten-2"},{key:"forwarded",label:a("Forwarded"),color:"blue lighten-2"},{key:"failed",label:a("Failed"),color:"red lighten-2"}]),w=Q.now(),m=k(w.year),y=k(w.weekNumber),V=k(!1),P=k(!1),U=k(null),j=k([]),I=k({}),Y=B(()=>Q.fromObject({weekYear:m.value,weekNumber:y.value}).startOf("week")),S=B(()=>Q.fromObject({weekYear:m.value,weekNumber:y.value}).endOf("week"));function g(z){let x="";for(const T of z.split(" "))x!==""&&(x+=" "),x+="text-"+T;return x}function H(){y.value===52?(m.value+=1,y.value=1):y.value+=1}function M(){y.value===1?(m.value-=1,y.value=52):y.value-=1}function J(){if(P.value)return;const z=`${m.value}-${y.value}`;P.value=!0,O.getDomainDmarcAlignment(i.domain.pk,z).then(x=>{if(P.value=!1,x.status===204){V.value=!0;return}I.value={total:0},v.value=x.data,j.value=[];for(const T of p){let $=0;for(const ae in x.data[T])for(const ve in x.data[T][ae])$+=x.data[T][ae][ve].total;I.value.total+=$,I.value[T]=$,j.value.push($)}})}return pe(()=>J()),te(y,()=>{J()}),te(m,()=>{J()}),(z,x)=>{const T=ue("apexchart");return v.value?(n(),h("div",je,[t(R,null,{default:e(()=>[t(se,{dense:"",elevation:"0",class:"mr-2"},{default:e(()=>[t(de,null,{default:e(()=>[u(l(o(a)("Alignment")),1)]),_:1}),t(le),t(N,{icon:"mdi-arrow-left",size:"x-small",onClick:M}),r("span",ze,l(Y.value.toLocaleString())+" - "+l(S.value.toLocaleString()),1),t(N,{icon:"mdi-arrow-right",size:"x-small",onClick:H})]),_:1}),t(F,null,{default:e(()=>[t(b,null,{default:e(()=>[t(c,{cols:"5"},{default:e(()=>[j.value?(n(),f(T,{key:0,type:"pie",height:"350",options:d.value,series:j.value},null,8,["options","series"])):C("",!0)]),_:1}),t(c,{cols:"7"},{default:e(()=>[t(b,null,{default:e(()=>[(n(!0),h(K,null,X(_.value,$=>(n(),f(c,{key:$.key,cols:"6"},{default:e(()=>[t(xe,{outlined:"",color:$.color,rounded:""},{default:e(()=>[t(R,{outlined:"",class:"pa-10 text-center"},{default:e(()=>[r("span",{class:re("text-h4 "+g($.color))},l(I.value[$.key]),3),x[1]||(x[1]=r("br",null,null,-1)),r("span",Le,l($.label),1)]),_:2,__:[1]},1024)]),_:2},1032,["color"])]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),t($e,{modelValue:U.value,"onUpdate:modelValue":x[0]||(x[0]=$=>U.value=$),class:"mt-2"},{default:e(()=>[t(we,{title:o(a)("Detail")},{default:e(()=>[t(Ve,null,{default:e(()=>[t(W,{title:o(a)("Trusted sources"),color:"green",total:I.value.aligned,sources:v.value.aligned},null,8,["title","total","sources"]),t(W,{title:o(a)("Partially trusted sources / Forwarders"),color:"orange",total:I.value.trusted,sources:v.value.trusted,class:"mt-4"},null,8,["title","total","sources"]),t(W,{title:o(a)("Forwarders with ARC"),color:"blue",total:I.value.forwarded,sources:v.value.forwarded,class:"mt-4"},null,8,["title","total","sources"]),t(W,{title:o(a)("Unknown sources / Threats"),color:"red",total:I.value.failed,sources:v.value.failed,class:"mt-4"},null,8,["title","total","sources"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"])])):(n(),h("div",Oe,[V.value?(n(),f(A,{key:0,type:"info",variant:"outlined",prominent:"",border:"start",class:"mt-6"},{default:e(()=>[r("div",null,l(o(a)("DMARC support does not seem to be enabled for this domain.")),1),r("div",null,l(o(a)("If you configured it recently, please wait for the first report to be received and processed.")),1)]),_:1})):C("",!0)]))}}},Ue={id:"dkimdns",class:"dkim"},me={__name:"DKIMKeyViewer",props:{domain:{type:Object,default:null}},setup(s){const a=s,p=B(()=>{let d=`v=DKIM1;k=rsa;p=${a.domain.dkim_public_key}`;const v=[];for(;d.length>0;)if(d.length>74)v.push(` "${d.substring(0,74)}"`),d=d.substring(74);else{v.push(` "${d}"`);break}return v.join(`
|
|
2
|
-
`)});function i(){navigator.clipboard.writeText(document.getElementById("dkimdns").textContent)}return(d,v)=>(n(),h("button",{class:"dkimbutton",onClick:v[0]||(v[0]=_=>i())},[r("pre",Ue,l(s.domain.dkim_key_selector)+"._domainkey."+l(s.domain.name)+". IN TXT ("+l(p.value)+`)
|
|
3
|
-
}})`,1)]))}},qe={class:"headline"},Ge={id:"dkimpub",class:"dkim"},We={__name:"DomainDKIMKey",props:{domain:{type:Object,default:null}},emits:["close"],setup(s,{emit:a}){const{$gettext:p}=L(),i=a;function d(){navigator.clipboard.writeText(document.getElementById("dkimpub").textContent)}return(v,_)=>(n(),f(R,null,{default:e(()=>[t(E,null,{default:e(()=>[r("span",qe,l(o(p)("DKIM public key for"))+" "+l(s.domain.name),1)]),_:1}),t(F,null,{default:e(()=>[r("p",null,l(o(p)("Raw format. Click to copy")),1),t(A,{border:"start","colored-border":"","border-color":"primary lighten-3",elevation:"2",dense:""},{default:e(()=>[r("button",{class:"dkimbutton",onClick:_[0]||(_[0]=w=>d())},[r("pre",Ge,l(s.domain.dkim_public_key),1)])]),_:1})]),_:1}),t(F,null,{default:e(()=>[r("p",null,l(o(p)("Bind/named format. Click to copy")),1),t(A,{border:"start","colored-border":"","border-color":"primary lighten-3",elevation:"2",dense:""},{default:e(()=>[t(me,{domain:s.domain},null,8,["domain"])]),_:1})]),_:1}),t(ce,null,{default:e(()=>[t(le),t(N,{onClick:_[1]||(_[1]=w=>i("close"))},{default:e(()=>[u(l(o(p)("Close")),1)]),_:1})]),_:1})]),_:1}))}},Xe={class:"text-subtitle-1 text-grey-darken-2 mb-4"},Ye={class:"text-h6"},He={__name:"DomainDNSConfig",props:{domain:{type:Object,default:null}},emits:["close"],setup(s,{emit:a}){const p=a;return(i,d)=>(n(),f(R,null,{default:e(()=>[t(E,{class:"text-h5"},{default:e(()=>[r("span",null,l(i.$gettext("DNS configuration for "))+" "+l(s.domain.name),1)]),_:1}),t(F,null,{default:e(()=>[r("p",Xe,l(i.$gettext("Here is an example of DNS configuration (bind format). Replace values between [ ] by the appropriate ones.")),1),t(A,{class:"mb-4",border:"start","border-color":"primary lighten-3",elevation:"2",color:"white"},{default:e(()=>[d[1]||(d[1]=r("div",{class:"text-h6"},"MX",-1)),r("pre",null,[u("mail."+l(s.domain.name)+". IN A ",1),r("strong",null,"["+l(i.$gettext("IP address of your Modoboa server"))+"]",1),u(`
|
|
4
|
-
@ IN MX 10 mail.`+l(s.domain.name)+".",1)])]),_:1,__:[1]}),t(A,{class:"mb-4",border:"start","border-color":"primary lighten-3",elevation:"2",dense:"",color:"white"},{default:e(()=>d[2]||(d[2]=[r("div",{class:"text-h6"},"SPF",-1),r("pre",null,'@ IN TXT "v=spf1 mx ~all"',-1)])),_:1,__:[2]}),s.domain.enable_dkim&&s.domain.dkim_public_key?(n(),f(A,{key:0,class:"mb-4",border:"start","border-color":"primary lighten-3",elevation:"2",dense:"",color:"white"},{default:e(()=>[d[3]||(d[3]=r("div",{class:"text-h6"},"DKIM",-1)),t(me,{domain:s.domain},null,8,["domain"])]),_:1,__:[3]})):C("",!0),t(A,{class:"mb-4",border:"start","border-color":"primary lighten-3",elevation:"2",dense:"",color:"white"},{default:e(()=>[d[4]||(d[4]=r("div",{class:"text-h6"},"DMARC",-1)),r("pre",null,"_dmarc."+l(s.domain.name)+'. IN TXT "v=DMARC1; p=quarantine; pct=100;"',1)]),_:1,__:[4]}),t(A,{class:"mb-4",border:"start","border-color":"primary lighten-3",elevation:"2",dense:"",color:"white"},{default:e(()=>[r("div",Ye,l(i.$gettext("Auto configuration")),1),r("pre",null,[u("autoconfig."+l(s.domain.name)+". IN CNAME ",1),r("strong",null,"["+l(i.$gettext("hostname of your automx server"))+"]",1),u(`
|
|
5
|
-
autodiscover.`+l(s.domain.name)+". IN CNAME ",1),r("strong",null,"["+l(i.$gettext("hostname of your automx server"))+"]",1)])]),_:1})]),_:1}),t(ce,null,{default:e(()=>[t(le),t(N,{onClick:d[0]||(d[0]=v=>p("close"))},{default:e(()=>[u(l(i.$gettext("Close")),1)]),_:1})]),_:1})]),_:1}))}},Je=ie(He,[["__scopeId","data-v-506783e1"]]),Qe={class:"overline"},Ze={class:"overline"},et={key:4,class:"d-flex align-center flex-nowrap mt-4"},tt={class:"text-subtitle-2"},lt={class:"ml-6"},at={key:0},ot={key:1},nt={__name:"DNSDetail",props:{modelValue:{type:Object,default:null}},setup(s){const{$gettext:a}=L(),p=ye(),i=s,d=B(()=>i.modelValue),v=k(),_=k({}),w=k([{title:a("Name"),value:"name"},{title:a("Address"),value:"address"},{title:a("Updated"),value:"updated"}]),m=k(!1),y=k(!1),V=k(!1);function P(){navigator.clipboard.writeText(d.value.dkim_public_key),p.displayNotification({msg:a("DKIM key copied to clipboard"),type:"success"})}function U(){const S={dkim_private_key_path:""};O.patchDomain(d.value.pk,S).then(()=>{p.displayNotification({msg:a("A new key will be generated soon. Refresh the page in a moment to see it."),type:"success"}),d.value.dkim_private_key_path="",m.value=!1}).catch(()=>{m.value=!1})}function j(){m.value=!1}async function I(){m.value=!0,O.getDomainDNSDetail(d.value.pk).then(async S=>{_.value=S.data,await v.value.open(a("warning"),a("DKIM key does not seem to be generated yet or has failed. Do you want to requeue the job?"),{color:"warning",cancelLabel:a("No"),agreeLabel:a("Yes")})?U():j()})}function Y(){v.value.open(a("Warning"),a("DKIM keys already exist for this domain. Do you want to overwrite them?"),{color:"error",cancelLabel:a("No"),agreeLabel:a("Yes")})}return te(d,S=>{S&&O.getDomainDNSDetail(S.pk).then(g=>{_.value=g.data})},{immediate:!0}),(S,g)=>{const H=ue("translate");return d.value?(n(),f(R,{key:0},{default:e(()=>[t(E,null,{default:e(()=>[g[6]||(g[6]=r("span",null," DNS ",-1)),t(N,{class:"ml-2",icon:"mdi-information-outline",title:o(a)("DNS configuration help"),variant:"text",density:"compact",onClick:g[0]||(g[0]=M=>y.value=!0)},null,8,["title"])]),_:1,__:[6]}),t(F,null,{default:e(()=>[t(H,{class:"overline"},{default:e(()=>g[7]||(g[7]=[u("MX records")])),_:1,__:[7]}),d.value.dns_global_status=="pending"?(n(),f(b,{key:0},{default:e(()=>[t(c,null,{default:e(()=>[t(D,{color:"info",size:"small"},{default:e(()=>[u(l(o(a)("Pending")),1)]),_:1})]),_:1})]),_:1})):(n(),f(Ce,{key:1,headers:w.value,items:_.value.mx_records},{"item.updated":e(({item:M})=>[u(l(S.$date(M.updated)),1)]),_:2},1032,["headers","items"])),r("div",Qe,l(o(a)("Auto configuration")),1),d.value.dns_global_status=="pending"?(n(),f(b,{key:2},{default:e(()=>[t(c,null,{default:e(()=>[t(D,{color:"info",size:"small"},{default:e(()=>[u(l(o(a)("Pending")),1)]),_:1})]),_:1})]),_:1})):(n(),h(K,{key:3},[t(b,null,{default:e(()=>[t(c,null,{default:e(()=>[_.value.autoconfig_record?(n(),f(D,{key:0,color:"success"},{default:e(()=>[u(l(o(a)("autoconfig record (Mozilla): %{ value }",{value:_.value.autoconfig_record.value})),1)]),_:1})):(n(),f(D,{key:1,color:"warning"},{default:e(()=>[u(l(o(a)("autoconfig record (Mozilla) not found")),1)]),_:1}))]),_:1}),t(c,null,{default:e(()=>[_.value.autodiscover_record?(n(),f(D,{key:0,color:"success"},{default:e(()=>[u(l(o(a)("autodiscover record (Microsoft): %{ value }",{value:_.value.autodiscover_record.value})),1)]),_:1})):(n(),f(D,{key:1,color:"warning"},{default:e(()=>[u(l(o(a)("autodiscover record (Microsoft) not found")),1)]),_:1}))]),_:1})]),_:1}),r("div",Ze,l(o(a)("Authentication")),1),t(b,null,{default:e(()=>[t(c,null,{default:e(()=>[_.value.spf_record?(n(),f(D,{key:0,color:"success"},{default:e(()=>[u(l(o(a)("SPF record found")),1)]),_:1})):(n(),f(D,{key:1,color:"error"},{default:e(()=>[u(l(o(a)("SPF record not found")),1)]),_:1}))]),_:1}),t(c,null,{default:e(()=>[_.value.dkim_record?(n(),f(D,{key:0,color:"success"},{default:e(()=>[u(l(o(a)("DKIM record found")),1)]),_:1})):(n(),f(D,{key:1,color:"error"},{default:e(()=>[u(l(o(a)("DKIM record not found")),1)]),_:1}))]),_:1}),t(c,null,{default:e(()=>[_.value.dmarc_record?(n(),f(D,{key:0,color:"success"},{default:e(()=>[u(l(o(a)("DMARC record found")),1)]),_:1})):(n(),f(D,{key:1,color:"error"},{default:e(()=>[u(l(o(a)("DMARC record not found")),1)]),_:1}))]),_:1})]),_:1})],64)),d.value.enable_dkim?(n(),h("div",et,[r("div",tt,l(o(a)("DKIM key")),1),r("div",lt,[d.value.dkim_private_key_path&&d.value.dkim_public_key?(n(),h("div",at,[t(N,{color:"primary",size:"small",onClick:g[1]||(g[1]=M=>V.value=!0)},{default:e(()=>[u(l(o(a)("Show key")),1)]),_:1}),t(N,{icon:"mdi-content-copy",variant:"text",class:"ml-2",title:o(a)("Copy key to clipboard"),onClick:P},null,8,["title"]),t(N,{icon:"mdi-refresh",title:o(a)("Generate a new DKIM key"),variant:"text",loading:m.value,onClick:Y},null,8,["title","loading"])])):(n(),h("div",ot,[u(l(o(a)("Not generated"))+" ",1),t(N,{icon:"mdi-reload",color:"primary",variant:"text",loading:m.value,onClick:I},null,8,["loading"])]))])])):C("",!0)]),_:1}),t(oe,{modelValue:y.value,"onUpdate:modelValue":g[3]||(g[3]=M=>y.value=M),"max-width":"800px",persistent:""},{default:e(()=>[t(Je,{domain:d.value,onClose:g[2]||(g[2]=M=>y.value=!1)},null,8,["domain"])]),_:1},8,["modelValue"]),t(oe,{modelValue:V.value,"onUpdate:modelValue":g[5]||(g[5]=M=>V.value=M),"max-width":"800px",persistent:""},{default:e(()=>[t(We,{domain:d.value,onClose:g[4]||(g[4]=M=>V.value=!1)},null,8,["domain"])]),_:1},8,["modelValue"]),t(De,{ref_key:"dialog",ref:v},null,512)]),_:1})):C("",!0)}}},fe={__name:"BooleanIcon",props:{value:{type:Boolean}},setup(s){const a=s,p=B(()=>a.value?"mdi-check-circle":"mdi-close-circle"),i=B(()=>a.value?"success":"error");return(d,v)=>(n(),f(be,{icon:p.value,color:i.value},null,8,["icon","color"]))}},rt={class:"headline"},ut={__name:"DomainSummary",props:{domain:{type:Object,default:null}},setup(s){const{$gettext:a}=L();return(p,i)=>s.domain?(n(),f(R,{key:0},{default:e(()=>[t(E,null,{default:e(()=>[r("div",rt,l(o(a)("General information")),1)]),_:1}),t(F,null,{default:e(()=>[t(b,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[u(l(o(a)("Creation date")),1)]),_:1}),t(c,{cols:"6"},{default:e(()=>[u(l(p.$date(s.domain.creation)),1)]),_:1})]),_:1}),t(b,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[u(l(o(a)("Last modification date")),1)]),_:1}),t(c,{cols:"6"},{default:e(()=>[u(l(p.$date(s.domain.last_modification)),1)]),_:1})]),_:1}),t(b,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[u(l(o(a)("Quota")),1)]),_:1}),s.domain.quota==="0"?(n(),f(c,{key:0,cols:"6"},{default:e(()=>[u(l(o(a)("Unlimited")),1)]),_:1})):(n(),f(c,{key:1,cols:"6"},{default:e(()=>[u(l(s.domain.quota)+" "+l(o(a)("MB")),1)]),_:1}))]),_:1}),t(b,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[u(l(o(a)("Default mailbox quota")),1)]),_:1}),s.domain.default_mailbox_quota==="0"?(n(),f(c,{key:0,cols:"6"},{default:e(()=>[u(l(o(a)("Unlimited")),1)]),_:1})):(n(),f(c,{key:1,cols:"6"},{default:e(()=>[u(l(s.domain.default_mailbox_quota)+" MB",1)]),_:1}))]),_:1}),t(b,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[u(l(o(a)("Daily sending limit")),1)]),_:1}),s.domain.message_limit!==void 0&&s.domain.message_limit!==null?(n(),f(c,{key:0,cols:"6"},{default:e(()=>[u(l(s.domain.message_limit)+" "+l(o(a)("messages")),1)]),_:1})):(n(),f(c,{key:1,cols:"6"},{default:e(()=>[u(l(o(a)("Unlimited")),1)]),_:1}))]),_:1}),t(b,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[u(l(o(a)("Mailboxes")),1)]),_:1}),t(c,{cols:"6"},{default:e(()=>[u(l(s.domain.mailbox_count),1)]),_:1})]),_:1}),t(b,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[u(l(o(a)("Aliases")),1)]),_:1}),t(c,{cols:"6"},{default:e(()=>[u(l(s.domain.mbalias_count),1)]),_:1})]),_:1}),t(b,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[u(l(o(a)("Enabled")),1)]),_:1}),t(c,{cols:"6"},{default:e(()=>[t(o(fe),{value:s.domain.enabled,variant:"flat"},null,8,["value"])]),_:1})]),_:1})]),_:1})]),_:1})):C("",!0)}},it={class:"headline"},st={__name:"RelayDomainSummary",props:{domain:{type:Object,default:null}},async setup(s){let a,p;const i=s,d=k([]),v=B(()=>d.value.find(m=>m.name===i.domain.transport.service)),_=m=>i.domain.transport.settings[`${v.value.name}_${m}`],w=([a,p]=ge(()=>Me.getAll()),a=await a,p(),a);return d.value=w.data,(m,y)=>i.domain?(n(),f(R,{key:0},{default:e(()=>[t(E,null,{default:e(()=>[r("div",it,l(m.$gettext("Transport")),1)]),_:1}),t(F,null,{default:e(()=>[t(b,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[u(l(m.$gettext("Service")),1)]),_:1}),t(c,{cols:"6"},{default:e(()=>[u(l(i.domain.transport.service),1)]),_:1})]),_:1}),v.value?(n(!0),h(K,{key:0},X(v.value.settings,(V,P)=>(n(),f(b,{key:P},{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[u(l(V.label),1)]),_:2},1024),t(c,{cols:"6"},{default:e(()=>[V.type!=="boolean"?(n(),h(K,{key:0},[u(l(_(V.name)),1)],64)):(n(),f(o(fe),{key:1,value:_(V.name),variant:"flat"},null,8,["value"]))]),_:2},1024)]),_:2},1024))),128)):C("",!0)]),_:1})]),_:1})):C("",!0)}},dt={key:1},ct={__name:"DomainView",setup(s){const{$gettext:a}=L(),p=ke(),i=k(null),d=k({}),v=k(null);function _(){O.getDomain(p.params.id).then(w=>{i.value=w.data})}return _(),(w,m)=>i.value?(n(),h("div",dt,[t(se,{flat:""},{default:e(()=>[t(de,null,{default:e(()=>[u(l(o(a)("Domain"))+" "+l(i.value.name)+" ",1),t(N,{color:"primary",icon:"mdi-circle-edit-outline",to:{name:"DomainEdit",params:{id:i.value.pk}}},null,8,["to"]),t(N,{color:"primary",icon:"mdi-reload",onClick:m[0]||(m[0]=y=>_())})]),_:1})]),_:1}),t(Se,{modelValue:v.value,"onUpdate:modelValue":m[1]||(m[1]=y=>v.value=y),class:"mb-4",color:"primary"},{default:e(()=>[t(Z,null,{default:e(()=>[u(l(o(a)("General")),1)]),_:1}),t(Z,null,{default:e(()=>[u(l(o(a)("Statistics")),1)]),_:1}),t(Z,null,{default:e(()=>[u(l(o(a)("DMARC")),1)]),_:1})]),_:1},8,["modelValue"]),t(Te,{modelValue:v.value,"onUpdate:modelValue":m[3]||(m[3]=y=>v.value=y)},{default:e(()=>[t(ee,null,{default:e(()=>[t(b,null,{default:e(()=>[t(c,{cols:"12",md:"6"},{default:e(()=>[t(ut,{domain:i.value},null,8,["domain"]),m[5]||(m[5]=r("div",{class:"mt-4"},null,-1)),i.value.type==="relaydomain"?(n(),h(K,{key:0},[t(st,{domain:i.value},null,8,["domain"]),m[4]||(m[4]=r("div",{class:"mt-4"},null,-1))],64)):C("",!0),t(_e,{domain:i.value},null,8,["domain"])]),_:1,__:[5]}),t(c,{cols:"12",md:"6"},{default:e(()=>[t(nt,{modelValue:i.value,"onUpdate:modelValue":m[2]||(m[2]=y=>i.value=y)},null,8,["modelValue"]),m[6]||(m[6]=r("div",{class:"mt-4"},null,-1)),d.value.params&&d.value.params.enable_domain_limits&&i.value.resources&&i.value.resources.length?(n(),f(Ie,{key:0,resources:i.value.resources},null,8,["resources"])):C("",!0)]),_:1,__:[6]})]),_:1})]),_:1}),t(ee,null,{default:e(()=>[t(b,null,{default:e(()=>[t(c,{cols:"12"},{default:e(()=>[i.value.name?(n(),f(ne,{key:0,domain:i.value,"graphic-set":"mailtraffic","graphic-name":"averagetraffic"},null,8,["domain"])):C("",!0)]),_:1}),t(c,{cols:"12"},{default:e(()=>[i.value.name?(n(),f(ne,{key:0,domain:i.value,"graphic-set":"mailtraffic","graphic-name":"averagetrafficsize"},null,8,["domain"])):C("",!0)]),_:1})]),_:1})]),_:1}),t(ee,null,{default:e(()=>[t(Ee,{domain:i.value},null,8,["domain"])]),_:1})]),_:1},8,["modelValue"])])):(n(),f(Ne,{key:0}))}},Jt=ie(ct,[["__scopeId","data-v-628417a7"]]);export{Jt as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as U}from"./domains-nBMR-fRf.js";import{b as M,n as te,g as m,h as B,d as le,c as A,o as C,w as l,a,p as xe,e as v,t as V,f as u,q as E,l as w,s as me,m as q,F as de,v as Ce,x as De,y as we,z as he,A as Ae,B as O,C as Se,I as $e,D as Ne,E as Ue,k as ce,G as Fe,r as Te,H as Le}from"./index-DV9Li2cg.js";import{u as fe}from"./permissions-mL5hLHcW.js";import{V as pe,r as Z}from"./VForm-CpoZf60D.js";import{c as qe,V as Be,a as Re,b as ve}from"./VCard-DFWiFORP.js";import{V as oe}from"./VTextField-CLwRV0Cb.js";import{V as Pe}from"./VSelect-CS51PDEt.js";import{V as J}from"./VSwitch-Chg5o-Cp.js";import{V as Ee}from"./VSpacer-C6PZ3X24.js";import{V as N,u as Oe,a as Me,m as Ie,b as ze,c as Ge,M as Je,d as _e,e as ie}from"./VAvatar-BAgTUIvX.js";import{p as je}from"./parameters-Lgiqp7aw.js";import{_ as We}from"./CreationForm-C9Kh05ax.js";import{_ as Ke,a as Ye,b as He,c as Qe}from"./DomainTransportForm-DPnPGBOp.js";import{_ as Xe}from"./AccountPasswordSubForm-g3IEGrgM.js";import{a as P,V as se}from"./VRow-C_Ydf6yr.js";import{_ as Ze}from"./DomainAdminList-CsWUNKVk.js";import{_ as ea}from"./ConfirmDialog-BvqxQsD1.js";import{V as ee}from"./VChip-nZ0uhY7t.js";import{_ as aa}from"./MenuItems-kHCMzR5E.js";import{V as ta}from"./VCheckboxBtn-j7di4leN.js";import{V as ae}from"./VMenu-B_dVqOmo.js";import{u as la,a as oa}from"./VProgressCircular-CrEXxs7k.js";import{u as na,m as ia,a as sa}from"./tag-CFK9dzMJ.js";import{V as ye,a as ra}from"./VToolbar-CGwhgdmI.js";import{V as be,a as re,b as ue}from"./forwardRefs-Cpc3YYl6.js";import{V as ua}from"./VDataTable-D_0_xJTl.js";import{V as ma}from"./VCheckbox-CKsH_vq3.js";import{V as I}from"./VDialog-CZqM2Ofu.js";import{_ as da,i as ca}from"./importExport-Dn9vYw7T.js";import"./VSelectionControl-DiOqtY38.js";/* empty css */import"./VWindowItem-wWSFAGI-.js";import"./ssrBoot-BsxW6uW4.js";import"./VContainer-Btam4lk2.js";import"./VSheet-5VVWtHvs.js";import"./ChoiceField-7eU7c_rI.js";import"./transports-TO08iTXJ.js";import"./VAutocomplete-Cc4_tcl1.js";import"./filter-D7NrAf6a.js";import"./VAlert-B7mzOJIO.js";import"./VDataTableVirtual-BwVmkt4u.js";import"./VTable-KsiZ3cBz.js";import"./VFileInput-Cv9DIPki.js";const fa={class:"headline"},pa={class:"m-label"},va={class:"m-label"},ge={__name:"DomainAliasForm",props:{domainAlias:{type:Object,default:()=>null}},emits:["close"],setup(r,{emit:_}){const{$gettext:e}=M(),f=_,{displayNotification:D}=te(),y=r,h=m([]),t=m({enabled:!0}),d=m(!1),S=m(),k=B(()=>y.domainAlias?e("Update"):e("Add")),p=B(()=>y.domainAlias?e("Edit domain alias"):e("Add a new domain alias"));async function g(){d.value=!0;try{await U.deleteDomainAlias(y.domainAlias.pk),D({msg:e("Domain alias deleted")}),f("close")}finally{d.value=!1}}async function $(){const{valid:x}=await S.value.validate();if(x){d.value=!0;try{if(!t.value.pk)await U.createDomainAlias(t.value),D({msg:e("Domain alias created")});else{const i=JSON.parse(JSON.stringify(t.value));await U.updateDomainAlias(y.domainAlias.pk,i),D({msg:e("Domain alias updated")})}f("close")}finally{d.value=!1}}}return le(()=>{U.getDomains().then(x=>{h.value=x.data}),y.domainAlias&&(t.value=JSON.parse(JSON.stringify(y.domainAlias)))}),(x,i)=>(C(),A(ve,null,{default:l(()=>[a(pe,{ref_key:"vFormRef",ref:S,onSubmit:xe($,["prevent"])},{default:l(()=>[a(qe,null,{default:l(()=>[v("span",fa,V(p.value),1)]),_:1}),a(Be,null,{default:l(()=>[v("label",pa,V(u(e)("Name")),1),a(oe,{modelValue:t.value.name,"onUpdate:modelValue":i[0]||(i[0]=c=>t.value.name=c),variant:"outlined",density:"compact",rules:[u(Z).required]},null,8,["modelValue","rules"]),v("label",va,V(u(e)("Choose a domain")),1),a(Pe,{modelValue:t.value.target,"onUpdate:modelValue":i[1]||(i[1]=c=>t.value.target=c),items:h.value,"item-title":"name","item-value":"pk",rules:[u(Z).required],"single-line":"",variant:"outlined",density:"compact"},null,8,["modelValue","items","rules"]),a(J,{modelValue:t.value.enabled,"onUpdate:modelValue":i[2]||(i[2]=c=>t.value.enabled=c),label:"Enabled",color:"primary"},null,8,["modelValue"])]),_:1}),a(Re,null,{default:l(()=>[a(Ee),a(N,{loading:d.value,onClick:i[3]||(i[3]=c=>f("close"))},{default:l(()=>[w(V(u(e)("Close")),1)]),_:1},8,["loading"]),r.domainAlias&&r.domainAlias.pk?(C(),A(N,{key:0,color:"error",loading:d.value,onClick:g},{default:l(()=>[w(V(u(e)("Delete")),1)]),_:1},8,["loading"])):E("",!0),a(N,{color:"primary",type:"submit",loading:d.value},{default:l(()=>[w(V(k.value),1)]),_:1},8,["loading"])]),_:1})]),_:1},512)]),_:1}))}},_a={__name:"DomainOptionsForm",props:{modelValue:{type:Object,default:null}},emits:["createAdmin"],setup(r,{expose:_,emit:e}){const{$gettext:f}=M(),D=r,y=e,h=m(),t=m(!1),d=B(()=>D.modelValue);function S(k){y("createAdmin",k)}return _({vFormRef:h}),(k,p)=>(C(),A(pe,{ref_key:"vFormRef",ref:h},{default:l(()=>[a(J,{modelValue:t.value,"onUpdate:modelValue":[p[0]||(p[0]=g=>t.value=g),S],label:u(f)("Create a domain administrator"),color:"primary"},null,8,["modelValue","label"]),a(oe,{modelValue:d.value.domain_admin.username,"onUpdate:modelValue":p[1]||(p[1]=g=>d.value.domain_admin.username=g),label:u(f)("Name"),hint:u(f)("Name of the administrator"),"persistent-hint":"",variant:"outlined",disabled:!t.value,suffix:`@${d.value.name}`,rules:[!t.value||u(Z).required]},null,8,["modelValue","label","hint","disabled","suffix","rules"]),a(Xe,{modelValue:d.value.domain_admin,"onUpdate:modelValue":p[2]||(p[2]=g=>d.value.domain_admin=g),disabled:!t.value},null,8,["modelValue","disabled"]),a(J,{modelValue:d.value.domain_admin.with_mailbox,"onUpdate:modelValue":p[3]||(p[3]=g=>d.value.domain_admin.with_mailbox=g),label:u(f)("With a mailbox"),disabled:!t.value,hint:u(f)("Create a mailbox for the administrator."),"persistent-hint":"",color:"primary"},null,8,["modelValue","label","disabled","hint"]),a(J,{modelValue:d.value.domain_admin.with_aliases,"onUpdate:modelValue":p[4]||(p[4]=g=>d.value.domain_admin.with_aliases=g),label:u(f)("Create aliases"),disabled:!t.value,hint:u(f)("Create standard aliases for the domain."),"persistent-hint":"",color:"primary"},null,8,["modelValue","label","disabled","hint"])]),_:1},512))}},ya={class:"text-grey"},ba={__name:"DomainCreationForm",emits:["close","created"],setup(r,{emit:_}){const{$gettext:e}=M(),f=te(),D=me(),y=_,t=m({name:"",type:"domain",enabled:!0,enable_dns_checks:!0,enable_dkim:!1,dkim_key_selector:"modoboa",quota:0,default_mailbox_quota:0,domain_admin:{username:"admin",random_password:!1,with_mailbox:!1,with_aliases:!1},transport:{settings:{}}});le(()=>{je.getGlobalApplication("admin").then(n=>{const o=n.data.params;t.value.quota=o.default_domain_quota,t.value.default_mailbox_quota=o.default_mailbox_quota,o.default_domain_message_limit!==null&&(t.value.message_limit=o.default_domain_message_limit)})});const d=m(!1),S=m(),k=m(),p=m(),g=m(),$=m(),x=m(),i={general:k,dns:p,limitations:g,options:$,transport:x},c=[{name:"general",title:e("General")},{name:"dns",title:e("DNS")},{name:"limitations",title:e("Limitations")},{name:"options",title:e("Options")}],T=[{name:"general",title:e("General")},{name:"dns",title:e("DNS")},{name:"limitations",title:e("Limitations")},{name:"transport",title:e("Transport")}],j=B(()=>t.value.type==="domain"?c:T),R=B(()=>{const n=[{title:e("General"),items:[{key:e("Name"),value:t.value.name},{key:e("Type"),value:t.value.type},{key:e("Enabled"),value:t.value.enabled,type:"yesno"}]},{title:e("DNS"),items:[{key:e("Enable DNS checks"),value:t.value.enable_dns_checks,type:"yesno"},{key:e("Enable DKIM signing"),value:t.value.enable_dkim,type:"yesno"}]},{title:e("Limitations"),items:[{key:e("Quota"),value:t.value.quota},{key:e("Default mailbox quota"),value:t.value.default_mailbox_quota},{key:e("Message sending limit"),value:t.value.message_limit}]}];if(t.value.enable_dkim&&(n[1].items.push({key:e("DKIM key selector"),value:t.value.dkim_key_selector}),n[1].items.push({key:e("DKIM key length"),value:t.value.dkim_key_length})),t.value.type==="relaydomain"&&t.value.transport.service){const o={title:e("Transport"),items:[{key:e("Service"),value:t.value.transport.service}]};for(const b of x.value.service.settings){const s={key:b.label,value:t.value.transport.settings[`${t.value.transport.service}_${b.name}`]};b.type==="boolean"&&(s.type="yesno"),o.items.push(s)}n.push(o)}else if(t.value.type==="domain"){const o={title:e("Options"),items:[{key:e("Create a domain administrator"),value:d.value,type:"yesno"}]};d.value&&o.items.push({key:e("Administrator name"),value:t.value.domain_admin.username},{name:"random_password",key:e("Random password"),value:t.value.domain_admin.random_password,type:"yesno"},{key:e("With mailbox"),value:t.value.domain_admin.with_mailbox,type:"yesno"},{key:e("Create aliases"),value:t.value.domain_admin.with_aliases,type:"yesno"}),n.push(o)}return n});function z(){y("close")}function W(){navigator.clipboard.writeText(t.value.domain_admin.password).then(()=>{f.displayNotification({msg:e("Password copied to clipboard")})})}function K(n){return i.value[n.name]}function Y(n){return i[n.name].value.vFormRef}async function H(){}function Q(n){d.value=n}async function X(){const n=JSON.parse(JSON.stringify(t.value));d.value||delete n.domain_admin,n.message_limit===""&&delete n.message_limit,n.type==="relaydomain"?x.value.checkSettingTypes(n):delete n.transport;try{const o=await U.createDomain(n);D.push({name:"DomainDetail",params:{id:o.data.pk}}),f.displayNotification({msg:e("Domain created")}),z()}finally{S.value.working=!1}}return(n,o)=>(C(),A(We,{ref_key:"form",ref:S,title:u(e)("New domain"),steps:j.value,"form-getter":K,"get-v-form-ref":Y,"validate-object":H,"summary-sections":R.value,onClose:z,onCreate:X},{"form.general":l(()=>[a(Qe,{ref_key:"general",ref:k,modelValue:t.value,"onUpdate:modelValue":o[0]||(o[0]=b=>t.value=b),class:"ml-4"},null,8,["modelValue"])]),"form.dns":l(()=>[a(He,{ref_key:"dns",ref:p,modelValue:t.value,"onUpdate:modelValue":o[1]||(o[1]=b=>t.value=b),class:"ml-4"},null,8,["modelValue"])]),"form.limitations":l(()=>[a(Ye,{ref_key:"limitations",ref:g,modelValue:t.value,"onUpdate:modelValue":o[2]||(o[2]=b=>t.value=b),class:"ml-4"},null,8,["modelValue"])]),"form.options":l(()=>[a(_a,{ref_key:"options",ref:$,modelValue:t.value,"onUpdate:modelValue":o[3]||(o[3]=b=>t.value=b),class:"ml-4",onCreateAdmin:Q},null,8,["modelValue"])]),"form.transport":l(()=>[a(Ke,{ref_key:"transport",ref:x,modelValue:t.value.transport,"onUpdate:modelValue":o[4]||(o[4]=b=>t.value.transport=b),class:"ml-4"},null,8,["modelValue"])]),"item.random_password":l(({item:b})=>[b.value?(C(),A(P,{key:0,cols:"12",class:"highligth text-white"},{default:l(()=>[a(se,null,{default:l(()=>[a(P,null,{default:l(()=>[v("span",null,V(b.key),1)]),_:2},1024),a(P,{class:"text-right"},{default:l(()=>[w(V(n.$yesno(b.value)),1)]),_:2},1024)]),_:2},1024),a(se,null,{default:l(()=>[a(P,{class:"text-right py-1"},{default:l(()=>[w(V(t.value.domain_admin.password)+" ",1),a(N,{icon:"mdi-clipboard-multiple-outline",color:"white",variant:"text",title:u(e)("Copy to clipboard"),onClick:W},null,8,["title"])]),_:1})]),_:1})]),_:2},1024)):(C(),q(de,{key:1},[a(P,null,{default:l(()=>[v("span",ya,V(b.key),1)]),_:2},1024),a(P,{class:"text-right"},{default:l(()=>[w(V(n.$yesno(b.value)),1)]),_:2},1024)],64))]),_:2},1032,["title","steps","summary-sections"]))}},ga={__name:"DNSStatusChip",props:{status:{type:String,default:"pending"}},setup(r){const _=r,{$gettext:e}=M(),f=B(()=>_.status==="disabled"?e("Disabled"):_.status==="pending"?e("Pending"):_.status==="critical"?e("Problem"):_.status==="ok"?e("Valid"):e("Unknown")),D=B(()=>_.status==="disabled"?"":_.status==="pending"?"info":_.status==="critical"?"error":_.status==="ok"?"success":"warning");return(y,h)=>(C(),A(ee,{color:D.value,size:"small"},{default:l(()=>[w(V(f.value),1)]),_:1},8,["color"]))}},Va=De({bordered:Boolean,color:String,content:[Number,String],dot:Boolean,floating:Boolean,icon:$e,inline:Boolean,label:{type:String,default:"$vuetify.badge"},max:[Number,String],modelValue:{type:Boolean,default:!0},offsetX:[Number,String],offsetY:[Number,String],textColor:String,...sa(),...Ge({location:"top end"}),...ze(),...ia(),...Se(),...Ie({transition:"scale-rotate-transition"})},"VBadge"),ka=Ce()({name:"VBadge",inheritAttrs:!1,props:Va(),setup(r,_){const{backgroundColorClasses:e,backgroundColorStyles:f}=la(()=>r.color),{roundedClasses:D}=Oe(r),{t:y}=we(),{textColorClasses:h,textColorStyles:t}=oa(()=>r.textColor),{themeClasses:d}=he(),{locationStyles:S}=Me(r,!0,k=>(r.floating?r.dot?2:4:r.dot?8:12)+(["top","bottom"].includes(k)?Number(r.offsetY??0):["left","right"].includes(k)?Number(r.offsetX??0):0));return na(()=>{const k=Number(r.content),p=!r.max||isNaN(k)?r.content:k<=Number(r.max)?k:`${r.max}+`,[g,$]=Ae(_.attrs,["aria-atomic","aria-label","aria-live","role","title"]);return a(r.tag,O({class:["v-badge",{"v-badge--bordered":r.bordered,"v-badge--dot":r.dot,"v-badge--floating":r.floating,"v-badge--inline":r.inline},r.class]},$,{style:r.style}),{default:()=>{var x,i;return[v("div",{class:"v-badge__wrapper"},[(i=(x=_.slots).default)==null?void 0:i.call(x),a(Je,{transition:r.transition},{default:()=>{var c,T;return[Ne(v("span",O({class:["v-badge__badge",d.value,e.value,D.value,h.value],style:[f.value,t.value,r.inline?{}:S.value],"aria-atomic":"true","aria-label":y(r.label,k),"aria-live":"polite",role:"status"},g),[r.dot?void 0:_.slots.badge?(T=(c=_.slots).badge)==null?void 0:T.call(c):r.icon?a(_e,{icon:r.icon},null):p]),[[Ue,r.modelValue]])]}})])]}})}),{}}}),xa={class:"v-data-table__td v-data-table-column--no-padding v-data-table-column--align-start"},Ca={key:1},Da={key:1},wa={key:0},ha={class:"text-right"},Aa={class:"grey lighten-4"},Sa=["colspan"],$a=["onClick"],Na={__name:"DomainList",setup(r,{expose:_}){const{$gettext:e}=M(),f=me(),{canSetRole:D}=fe(),y=te(),h=[{title:e("Name"),key:"name"},{title:e("Enabled"),key:"enabled",width:"5%"},{title:e("Aliases"),key:"domainalias_count"},{title:e("DNS status"),key:"dns_global_status",sortable:!1},{title:e("Sending limit"),key:"message_limit"},{title:e("Quota"),key:"allocated_quota_in_percent"}];D.value&&h.push({title:e("Actions"),value:"actions",sortable:!1,align:"end"});const t=m({}),d=m(),S=m([]),k=m(!1),p=m(!1),g=m(null),$=m(null),x=m(!1),i=m(!1),c=m(""),T=m([]),j=m([]);async function R(){t.value={},p.value=!0;try{const n=await U.getDomains();S.value=n.data}finally{p.value=!1}}function z(){i.value=!1,g.value=null,$.value=null}async function W(n){if(await d.value.open(e("Warning"),e("Do you really want to delete the domain %{ domain }?",{domain:n.name}),{color:"error",cancelLabel:e("No"),agreeLabel:e("Yes")})){p.value=!0;try{const b={keep_folder:k.value};await U.deleteDomain(n.pk,b),R(),y.displayNotification({msg:e("Domain deleted")}),k.value=!1}finally{p.value=!1}}}function K(n){f.push({name:"DomainEdit",params:{id:n.pk}})}function Y(n,o){g.value=n,$.value=o,i.value=!0}function H(n,o,b,s){if(b(o)){s(o);return}U.getDomainAliases(n.name).then(F=>{t.value[n.name]=F.data,s(o)})}function Q(n){g.value=n,x.value=!0}function X(n){const o=[{label:e("Administrators"),icon:"mdi-account-supervisor",onClick:Q},{label:e("Edit"),icon:"mdi-circle-edit-outline",onClick:K},{label:e("Delete"),icon:"mdi-delete-outline",onClick:W,color:"red"}];return n.opened_alarms_count&&o.push({label:e("Alarms"),icon:"mdi-bell",color:"red",onClick:()=>f.push({name:"Alarms"})}),o}return le(()=>{R()}),_({reloadDomains:R}),(n,o)=>{const b=Te("router-link");return C(),A(ve,{class:"mt-6"},{default:l(()=>[a(ua,{modelValue:T.value,"onUpdate:modelValue":o[1]||(o[1]=s=>T.value=s),expanded:j.value,headers:h,items:S.value,"item-value":"name",search:c.value,"show-select":"","expand-on-click":"",loading:p.value},{top:l(()=>[a(ye,{color:"white",flat:""},{default:l(()=>[a(oe,{modelValue:c.value,"onUpdate:modelValue":o[0]||(o[0]=s=>c.value=s),"prepend-inner-icon":"mdi-magnify",placeholder:u(e)("Search"),variant:"outlined","single-line":"","hide-details":"",density:"compact",class:"flex-grow-0 w-33 mr-4"},null,8,["modelValue","placeholder"]),Le(n.$slots,"extraActions",{},void 0,!0),a(ae,{location:"bottom"},{activator:l(({props:s})=>[a(N,O({variant:"flat","append-icon":"mdi-chevron-down"},s,{size:"small"}),{default:l(()=>[w(V(u(e)("Actions")),1)]),_:2},1040)]),default:l(()=>[a(be,{density:"compact"})]),_:1}),a(N,{variant:"text",icon:"mdi-reload",onClick:R})]),_:3})]),item:l(({item:s,internalItem:L,isExpanded:F,toggleExpand:ne,isSelected:Ve,toggleSelect:ke})=>[v("tr",null,[v("td",xa,[a(ta,{value:!Ve(L),onClick:G=>ke(L)},null,8,["value","onClick"])]),v("td",null,[a(b,{to:{name:"DomainDetail",params:{id:s.pk}}},{default:l(()=>[w(V(s.name),1)]),_:2},1032,["to"]),s.type==="relaydomain"?(C(),A(ee,{key:0,size:"small",color:"primary",class:"ml-2"},{default:l(()=>[w(V(u(e)("Relay")),1)]),_:1})):E("",!0)]),v("td",null,[a(_e,{color:s.enabled?"success":"error",icon:s.enabled?"mdi-check-circle":"mdi-close-circle",variant:"flat"},null,8,["color","icon"])]),v("td",null,[w(V(s.domainalias_count)+" aliases ",1),s.domainalias_count?(C(),A(N,{key:0,variant:"text",icon:F(L)?"mdi-chevron-up":"mdi-chevron-down",onClick:G=>H(s,L,F,ne)},null,8,["icon","onClick"])):E("",!0)]),v("td",null,[a(ga,{status:s.dns_global_status},null,8,["status"])]),v("td",null,[s.message_limit?(C(),A(ie,{key:0,color:s.sent_messages_in_percent<80?"primary":"warning","model-value":s.sent_messages_in_percent},null,8,["color","model-value"])):(C(),q("span",Ca,V(u(e)("Unlimited")),1))]),v("td",null,[s.quota!=="0"?(C(),A(ie,{key:0,color:s.allocated_quota_in_percent<80?"primary":"warning","model-value":s.allocated_quota_in_percent},null,8,["color","model-value"])):(C(),q("span",Da,V(u(e)("Unlimited")),1))]),u(D)?(C(),q("td",wa,[v("div",ha,[a(ae,{"offset-y":""},{activator:l(({props:G})=>[s.opened_alarms_count?(C(),A(ka,{key:0,bordered:"",color:"error",icon:"mdi-bell",overlap:""},{default:l(()=>[a(N,O({icon:"mdi-dots-horizontal",variant:"text"},G),null,16)]),_:2},1024)):(C(),A(N,O({key:1,icon:"mdi-dots-horizontal",variant:"text"},G),null,16))]),default:l(()=>[a(aa,{items:X(s),obj:s},null,8,["items","obj"])]),_:2},1024)])])):E("",!0)])]),"expanded-row":l(({item:s,columns:L})=>[v("tr",Aa,[v("td",{colspan:L.length},[(C(!0),q(de,null,Fe(t.value[s.name],F=>(C(),q("span",{key:F.name,class:"mr-4"},[v("a",{href:"#",class:"mr-2",onClick:ne=>Y(s,F)},V(F.name),9,$a),a(ee,{variant:"flat",size:"x-small",color:"success"},{default:l(()=>o[6]||(o[6]=[w("DNS OK")])),_:1,__:[6]})]))),128))],8,Sa)])]),_:3},8,["modelValue","expanded","items","search","loading"]),a(ea,{ref_key:"confirm",ref:d},{default:l(()=>[a(ma,{modelValue:k.value,"onUpdate:modelValue":o[2]||(o[2]=s=>k.value=s),label:u(e)("Do not delete domain folder"),"hide-details":""},null,8,["modelValue","label"])]),_:1},512),a(I,{modelValue:i.value,"onUpdate:modelValue":o[3]||(o[3]=s=>i.value=s),persistent:"","max-width":"800px"},{default:l(()=>[a(ge,{"domain-alias":$.value,onClose:z},null,8,["domain-alias"])]),_:1},8,["modelValue"]),a(I,{modelValue:x.value,"onUpdate:modelValue":o[5]||(o[5]=s=>x.value=s),persistent:"","max-width":"800px"},{default:l(()=>[a(Ze,{domain:g.value,"dialog-mode":"",onClose:o[4]||(o[4]=s=>x.value=!1)},null,8,["domain"])]),_:1},8,["modelValue"])]),_:3})}}},Ua=ce(Na,[["__scopeId","data-v-8ed27599"]]),Fa={__name:"DomainsView",setup(r){const _=m(),e=m(!1),f=m(!1),D=m(!1),{$gettext:y}=M(),{canAddDomain:h}=fe(),t=m(),{importContent:d,exportContent:S}=ca();function k(){U.exportAll().then(x=>{S(x.data,"domains",y)})}function p(x){d(U,x,t,y)}const g=()=>{e.value=!1,_.value.reloadDomains()},$=()=>{D.value=!1,_.value.reloadDomains()};return(x,i)=>(C(),q("div",null,[a(ye,{flat:""},{default:l(()=>[a(ra,null,{default:l(()=>[w(V(u(y)("Domains")),1)]),_:1})]),_:1}),a(u(Ua),{ref_key:"domainList",ref:_},{extraActions:l(()=>[u(h)?(C(),A(ae,{key:0,"offset-y":""},{activator:l(({props:c})=>[a(N,O({color:"primary",variant:"outlined"},c,{"prepend-icon":"mdi-plus",class:"mr-4"}),{default:l(()=>[w(V(u(y)("New")),1)]),_:2},1040)]),default:l(()=>[a(be,{density:"compact"},{default:l(()=>[a(re,{onClick:i[0]||(i[0]=c=>f.value=!0)},{default:l(()=>[a(ue,null,{default:l(()=>[w(V(u(y)("Domain")),1)]),_:1})]),_:1}),a(re,{onClick:i[1]||(i[1]=c=>e.value=!0)},{default:l(()=>[a(ue,null,{default:l(()=>[w(V(u(y)("Alias")),1)]),_:1})]),_:1})]),_:1})]),_:1})):E("",!0),u(h)?(C(),A(N,{key:1,class:"mr-2",title:u(y)("Import domains and aliases from CSV file"),variant:"flat",icon:"mdi-file-import-outline",onClick:i[2]||(i[2]=c=>D.value=!0)},null,8,["title"])):E("",!0),a(N,{class:"mr-2",title:u(y)("Export domains and aliases to CSV"),variant:"flat",icon:"mdi-file-export-outline",onClick:k},null,8,["title"])]),_:1},512),a(I,{modelValue:f.value,"onUpdate:modelValue":i[4]||(i[4]=c=>f.value=c),fullscreen:"",scrollable:"","z-index":"10"},{default:l(()=>[a(u(ba),{onClose:i[3]||(i[3]=c=>f.value=!1)})]),_:1},8,["modelValue"]),a(I,{modelValue:e.value,"onUpdate:modelValue":i[6]||(i[6]=c=>e.value=c),persistent:"","max-width":"800px"},{default:l(()=>[a(u(ge),{onClose:i[5]||(i[5]=c=>g())})]),_:1},8,["modelValue"]),a(I,{modelValue:D.value,"onUpdate:modelValue":i[7]||(i[7]=c=>D.value=c),persistent:"","max-width":"800px"},{default:l(()=>[a(u(da),{ref_key:"importForm",ref:t,title:u(y)("Import domains"),onSubmit:p,onClose:$},{help:l(()=>i[8]||(i[8]=[v("ul",null,[v("li",null,[v("em",null,"domain; name; quota; default mailbox quota; enabled")]),v("li",null,[v("em",null,"domainalias; name; targeted domain; enabled")]),v("li",null,[v("em",null,"relaydomain; name; target host; target port; service; enabled; verify recipients")])],-1)])),_:1},8,["title"])]),_:1},8,["modelValue"])]))}},xt=ce(Fa,[["__scopeId","data-v-1068f77b"]]);export{xt as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.highligth{background-color:#515d78}.v-text-field--outlined[data-v-8ed27599] fieldset{border-color:#bfc5d2}.v-input--checkbox[data-v-8ed27599] .v-label{font-size:.875rem!important}a[data-v-8ed27599]{text-decoration:none;color:rgb(var(--v-theme-primary))}a[data-v-8ed27599]:visited{color:rgb(var(--v-theme-primary))}.v-badge{display:inline-block;line-height:1}.v-badge__badge{align-items:center;display:inline-flex;border-radius:10px;font-family:Roboto,sans-serif;font-size:.75rem;font-weight:500;height:1.25rem;justify-content:center;min-width:20px;padding:4px 6px;pointer-events:auto;position:absolute;text-align:center;text-indent:0;transition:.225s cubic-bezier(.4,0,.2,1);white-space:nowrap}.v-badge__badge{background:rgb(var(--v-theme-surface-variant));color:rgba(var(--v-theme-on-surface-variant),var(--v-high-emphasis-opacity))}.v-badge__badge:has(.v-icon){padding:4px 6px}.v-badge--bordered .v-badge__badge:after{border-radius:inherit;border-style:solid;border-width:2px;bottom:0;color:rgb(var(--v-theme-background));content:"";left:0;position:absolute;right:0;top:0;transform:scale(1.05)}.v-badge--dot .v-badge__badge{border-radius:4.5px;height:9px;min-width:0;padding:0;width:9px}.v-badge--dot .v-badge__badge:after{border-width:1.5px}.v-badge--inline .v-badge__badge{position:relative;vertical-align:middle}.v-badge__badge .v-icon{color:inherit;font-size:.75rem;margin:0 -2px}.v-badge__badge img,.v-badge__badge .v-img{height:100%;width:100%}.v-badge__wrapper{display:flex;position:relative}.v-badge--inline .v-badge__wrapper{align-items:center;display:inline-flex;justify-content:center;margin:0 4px}.v-toolbar[data-v-1068f77b],.v-tabs-items[data-v-1068f77b]{background-color:#f7f8fa!important}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as b,k as B,h as p,g as n,d as F,a4 as $,a5 as z,a6 as A,m as g,o as d,a as y,q as T,B as U,a7 as N,w,F as S,G as R,c as W,J as K,l as O,t as P}from"./index-DV9Li2cg.js";import{V as j}from"./VTextField-CLwRV0Cb.js";import{a as q,b as G,V as J}from"./forwardRefs-Cpc3YYl6.js";import{u as H}from"./domains.store-ChZgLcqP.js";const Q={__name:"EmailField",props:{modelValue:{type:String,default:""},allowAdd:{type:Boolean,default:!1},role:{type:String,default:b.USER},errorMsg:{type:Array,default:()=>[]}},emits:["domain-selected","update:model-value"],setup(x,{emit:E}){const h=H(),o=x,V=E,r=p({get(){return o.modelValue},set(e){v.value=[],e.indexOf("@")!==-1?(u.value=e.split("@")[1],o.allowAdd?a.value=s.value.length>0:a.value=!0):a.value=!1,V("update:model-value",e)}}),s=p(()=>Object.values(h.domains).filter(e=>e.name.startsWith(u.value))),v=p({get(){return[...D.value,...o.errorMsg]},set(e){D.value=e}}),u=n(""),l=n(0),a=n(!1),k=n(500),_=n(),D=n([]);function C(e){const t=e.keyCode;t===40||t===34?(a.value?M():(u.value="",a.value=!0),e.preventDefault()):t===38||t===33?(a.value?I():(u.value="",a.value=!0),e.preventDefault()):t===13||t===9?(s.value.length>0?c(s.value[l.value]):o.allowAdd&&c(),e.preventDefault()):t===27&&s.value.length>0&&(a.value=!1,e.preventDefault())}function M(){l.value>=s.value.length-1?l.value=0:l.value+=1}function I(){l.value<=0?l.value=s.value.length-1:l.value-=1}function c(e){e!==void 0&&(r.value=r.value.split("@")[0]+"@"+e.name),a.value=!1,V("domain-selected")}function m(){k.value=_.value.$el.clientWidth}return F(()=>{h.getDomains(),window.addEventListener("resize",m)}),$(()=>{window.removeEventListener("resize",m)}),z(()=>{A(()=>{m()})}),(e,t)=>(d(),g(S,null,[y(j,U({ref_key:"inputRef",ref:_,modelValue:r.value,"onUpdate:modelValue":t[0]||(t[0]=i=>r.value=i),variant:"outlined"},e.$attrs,{"error-messages":v.value,error:v.value.length>0,density:"compact",autocomplete:"new-password",onKeydown:C}),null,16,["modelValue","error-messages","error"]),a.value?(d(),g("div",{key:0,class:"menu",style:N(`width: ${k.value}px;`)},[y(J,{class:"list"},{default:w(()=>[(d(!0),g(S,null,R(s.value,(i,f)=>(d(),W(q,{key:f,class:K(l.value===f?"bg-primary-lighten-1":""),onClick:L=>c(i),onMouseenter:L=>l.value=f},{default:w(()=>[y(G,null,{default:w(()=>[O(P(i.name),1)]),_:2},1024)]),_:2},1032,["class","onClick","onMouseenter"]))),128))]),_:1})],4)):T("",!0)],64))}},ae=B(Q,[["__scopeId","data-v-bed4b698"]]);export{ae as E};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{R as te,s as G,b as O,n as H,g as w,c as g,o as i,w as s,a,f as m,d as le,a4 as oe,L as se,M as ne,a6 as F,m as p,D as ie,E as re,e as d,q as L,t as v,l as S,F as _,G as z,a2 as ue,a3 as de,B as I}from"./index-DV9Li2cg.js";import{a as C}from"./webmail-KrD8ZhNM.js";import{c as me}from"./contacts-Bqckz8sr.js";import{V as D,a as q}from"./forwardRefs-Cpc3YYl6.js";import{V as f,d as A}from"./VAvatar-BAgTUIvX.js";import{b as W,V as ce,a as pe}from"./VCard-DFWiFORP.js";import{V as ve}from"./VToolbar-CGwhgdmI.js";import{V as R}from"./VMenu-B_dVqOmo.js";import{V as P}from"./VSpacer-C6PZ3X24.js";import{V as fe}from"./VDialog-CZqM2Ofu.js";import"./tag-CFK9dzMJ.js";import"./ssrBoot-BsxW6uW4.js";import"./VProgressCircular-CrEXxs7k.js";/* empty css */const B={__name:"ContactCard",props:{modelValue:{},modelModifiers:{}},emits:["update:modelValue"],setup(N){const l=te(N,"modelValue"),E=G(),{$gettext:M}=O(),{displayNotification:n}=H(),c=w(!1),x=async()=>{const V={emails:[{address:l.value.address,type:"other"}]};l.value.name?V.display_name=l.value.name:V.display_name=l.value.address,c.value=!0;let h;try{h=await me.createContact(V),l.value.contact_id=h.data.pk}finally{c.value=!1}n({msg:M("Contact added to address book")})},o=()=>{E.push({name:"ContactList"})};return(V,h)=>(i(),g(W,{"min-width":"300"},{default:s(()=>[a(D,null,{default:s(()=>[a(q,{subtitle:l.value.name?l.value.address:"",title:l.value.name||l.value.address},{append:s(()=>[l.value.contact_id?(i(),g(f,{key:1,icon:"mdi-pencil",variant:"text",loading:c.value,title:m(M)("Update contact"),onClick:o},null,8,["loading","title"])):(i(),g(f,{key:0,color:"secondary",icon:"mdi-card-account-mail-outline",variant:"text",loading:c.value,title:m(M)("Add to contacts"),onClick:x},null,8,["loading","title"]))]),_:1},8,["subtitle","title"])]),_:1})]),_:1}))}},ye={class:"bg-white rounded-lg pa-4 position-relative h-100"},ke={class:"d-flex mt-2"},ge={class:"text-grey text-body-2"},Ve={class:"text-grey"},be={class:"mt-2 text-grey"},_e={key:0},we={key:0,class:"mt-2"},xe=["onClick"],Ne={__name:"EmailView",setup(N){const{$gettext:l}=O(),{displayNotification:E,reloadMailboxCounters:M}=H(),n=ne(),c=G(),x=w(!1),o=w(null),V=w(null),h=w(null),T=w(!1),U=w(!1),y=w(!1);le(()=>{window.addEventListener("resize",$),j()}),oe(()=>{window.removeEventListener("resize",$)}),se(x,()=>{j()});const K=()=>{c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}})},$=()=>{const u=document.querySelector("iframe"),e=h.value.getBoundingClientRect();u.style.top=`${e.bottom}px`,u.style.width=`${e.width-24}px`,u.style.height=`${window.innerHeight-e.bottom-32}px`},j=()=>{const u={dformat:"html",links:x.value?"1":"0"};C.getEmailContent(n.query.mailbox,n.query.mailid,u).then(e=>{M(),o.value=e.data,F(()=>{const k=document.createElement("iframe");k.classList.add("email-frame"),document.querySelector("iframe").replaceWith(k);const t=k.contentDocument;t.write(o.value.body),t.close(),T.value=!0,F($)})})},Q=(u,e)=>{C.getEmailAttachment(n.query.mailbox,n.query.mailid,e).then(k=>{const t=new Blob([k.data],{type:k.headers["Content-Type"]}),r=document.createElement("a");r.href=URL.createObjectURL(t),r.download=u,r.click(),URL.revokeObjectURL(r.href)})},X=()=>{y.value=!0,C.deleteSelection(n.query.mailbox,[n.query.mailid]).then(()=>{y.value=!1,c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}}),E({msg:l("Message deleted")})})},Y=()=>{y.value=!0,C.markSelectionAsJunk(n.query.mailbox,[n.query.mailid]).then(()=>{y.value=!1,c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}}),E({msg:l("Message marked as junk")})})},Z=()=>{y.value=!0,C.markSelectionAsNotJunk(n.query.mailbox,[n.query.mailid]).then(()=>{y.value=!1,c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}}),E({msg:l("Message marked as not junk")})})},ee=async()=>{if(!V.value){const u=await C.getEmailSource(n.query.mailbox,n.query.mailid);V.value=u.data.source}U.value=!0},J=u=>{const e={...n.query};u&&(e.all=u),c.push({name:"ReplyEmailView",query:e})},ae=()=>{c.push({name:"ForwardEmailView",query:n.query})};return(u,e)=>{var k;return i(),p(_,null,[ie(d("div",ye,[a(ve,{color:"white"},{default:s(()=>[a(f,{icon:"mdi-arrow-left",size:"small",variant:"flat",onClick:K}),a(f,{color:"primary",variant:"tonal","prepend-icon":"mdi-reply",onClick:e[1]||(e[1]=()=>J())},{append:s(()=>[a(f,{size:"x-small",variant:"plain"},{default:s(()=>[a(A,{icon:"mdi-chevron-down"}),a(R,{activator:"parent"},{default:s(()=>[a(D,null,{default:s(()=>[a(q,{title:m(l)("Reply all"),onClick:e[0]||(e[0]=()=>J(!0))},null,8,["title"]),a(q,{title:m(l)("Forward"),onClick:ae},null,8,["title"])]),_:1})]),_:1})]),_:1})]),default:s(()=>[S(v(m(l)("Reply"))+" ",1)]),_:1}),a(f,{class:"ml-2",color:"error",variant:"tonal",icon:"mdi-trash-can",size:"small",loading:y.value,onClick:X},null,8,["loading"]),m(n).params.mailbox!=="Junk"?(i(),g(f,{key:0,class:"ml-2",color:"warning",variant:"tonal",icon:"mdi-fire",size:"small",loading:y.value,onClick:Y},null,8,["loading"])):(i(),g(f,{key:1,class:"ml-2",color:"success",variant:"tonal",icon:"mdi-thumb-up",size:"small",loading:y.value,onClick:Z},null,8,["loading"])),a(f,{class:"ml-2",variant:"tonal",icon:"",size:"small"},{default:s(()=>[a(A,{icon:"mdi-cog"}),a(R,{activator:"parent"},{default:s(()=>[a(D,{density:"compact"},{default:s(()=>[x.value?(i(),g(q,{key:1,title:m(l)("Disable links"),onClick:e[3]||(e[3]=t=>x.value=!1)},null,8,["title"])):(i(),g(q,{key:0,title:m(l)("Enable links"),onClick:e[2]||(e[2]=t=>x.value=!0)},null,8,["title"])),a(q,{title:m(l)("Display source"),onClick:ee},null,8,["title"])]),_:1})]),_:1})]),_:1})]),_:1}),o.value?(i(),p("div",{key:0,ref_key:"headers",ref:h,class:"bg-white pa-4"},[d("h2",null,v(o.value.subject),1),d("div",ke,[a(R,{key:"sender"},{activator:s(({props:t})=>[d("h3",ue(de(t)),[o.value.from_address.name?(i(),p(_,{key:0},[S(v(o.value.from_address.name)+" ",1),d("span",ge," <"+v(o.value.from_address.address)+"> ",1)],64)):(i(),p(_,{key:1},[S(v(o.value.from_address.address),1)],64))],16)]),default:s(()=>[a(B,{modelValue:o.value.from_address,"onUpdate:modelValue":e[4]||(e[4]=t=>o.value.from_address=t)},null,8,["modelValue"])]),_:1}),a(P),d("span",Ve,v(o.value.date),1)]),d("div",be,[S(v(m(l)("To"))+" ",1),(i(!0),p(_,null,z(o.value.to,(t,r)=>(i(),g(R,{key:`to-${r}`},{activator:s(({props:b})=>[r>0?(i(),p("span",_e,", ")):L("",!0),d("span",I({ref_for:!0},b),v(t.name||t.address),17)]),default:s(()=>[a(B,{modelValue:o.value.to[r],"onUpdate:modelValue":b=>o.value.to[r]=b},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024))),128)),(k=o.value.cc)!=null&&k.length?(i(!0),p(_,{key:0},z(o.value.cc,(t,r)=>(i(),g(R,{key:`cc-${r}`},{activator:s(({props:b})=>[e[7]||(e[7]=d("span",null,", ",-1)),d("span",I({ref_for:!0},b),v(t.name||t.address),17)]),default:s(()=>[a(B,{modelValue:o.value.cc[r],"onUpdate:modelValue":b=>o.value.cc[r]=b},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024))),128)):L("",!0)]),o.value.attachments.length?(i(),p("div",we,[a(A,{icon:"mdi-paperclip"}),(i(!0),p(_,null,z(o.value.attachments,(t,r)=>(i(),p(_,{key:t.name},[r>0?(i(),p(_,{key:0},[S(", ")],64)):L("",!0),d("a",{href:"#",onClick:b=>Q(t.name,t.partnum)},v(t.name),9,xe)],64))),128))])):L("",!0)],512)):L("",!0),e[8]||(e[8]=d("iframe",{class:"email-frame"},null,-1))],512),[[re,T.value]]),a(fe,{modelValue:U.value,"onUpdate:modelValue":e[6]||(e[6]=t=>U.value=t),"max-width":"1200"},{default:s(()=>[a(W,{title:m(l)("Message source")},{default:s(()=>[a(ce,{class:"text-caption overflow-x-auto"},{default:s(()=>[d("pre",null,v(V.value),1)]),_:1}),a(pe,null,{default:s(()=>[a(P),a(f,{text:m(l)("Close"),onClick:e[5]||(e[5]=t=>U.value=!1)},null,8,["text"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"])],64)}}};export{Ne as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{V as s,a as c}from"./VApp-BKxnjOoi.js";import{r as m,c as t,o as e,w as o,a as r}from"./index-DV9Li2cg.js";import"./tag-CFK9dzMJ.js";import"./layout-CHO37cA6.js";import"./ssrBoot-BsxW6uW4.js";const u={__name:"EmptyView",setup(a){return(_,n)=>{const p=m("router-view");return e(),t(s,null,{default:o(()=>[r(p)]),_:1})}}},d={__name:"EmptyLayout",setup(a){return(_,n)=>(e(),t(c,null,{default:o(()=>[r(u)]),_:1}))}};export{d as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as le,n as ae,g as f,c as k,o as c,w as v,a as t,f as l,ak as g,h as ne,L as G,e as $,m as S,q as R,t as L,F as j,G as Z,M as we,s as he,B as ie,l as ee}from"./index-DV9Li2cg.js";import{V as oe,r as N}from"./VForm-CpoZf60D.js";import{V as me,a as de,b as ce}from"./VCard-DFWiFORP.js";import{V as I}from"./VTextField-CLwRV0Cb.js";import{V as fe}from"./VSwitch-Chg5o-Cp.js";import{c as ve}from"./forwardRefs-Cpc3YYl6.js";import{V as pe}from"./VSpacer-C6PZ3X24.js";import{V as F,d as Ce}from"./VAvatar-BAgTUIvX.js";import{V as _e,a as te}from"./VRadioGroup-D8ypjYOO.js";import{V as z}from"./VSelect-CS51PDEt.js";import{V as Se}from"./VCheckbox-CKsH_vq3.js";import{_ as re}from"./MenuItems-kHCMzR5E.js";import{V as xe}from"./VToolbar-CGwhgdmI.js";import{V as Ue}from"./VDataTable-D_0_xJTl.js";import{V as se}from"./VDialog-CZqM2Ofu.js";import{V as Ae}from"./VAutocomplete-Cc4_tcl1.js";import{V as ue}from"./VMenu-B_dVqOmo.js";import{V as Ne}from"./VTextarea-Di8jbl8m.js";import"./tag-CFK9dzMJ.js";import"./VProgressCircular-CrEXxs7k.js";import"./VSelectionControl-DiOqtY38.js";import"./ssrBoot-BsxW6uW4.js";/* empty css */import"./VCheckboxBtn-j7di4leN.js";import"./VChip-nZ0uhY7t.js";import"./VTable-KsiZ3cBz.js";import"./filter-D7NrAf6a.js";const $e={__name:"FilterSetForm",emits:["close"],setup(P,{emit:O}){const{$gettext:p}=le(),w=O,i=ae(),n=f({}),h=f(),b=f(!1);function a(){h.value.reset(),n.value={},w("close")}async function U(){const{valid:u}=await h.value.validate();if(u){b.value=!0;try{await g.createFilterSet(n.value),i.displayNotification({msg:p("Filter set created")}),a()}finally{b.value=!1}}}return(u,C)=>(c(),k(ce,{title:l(p)("Create a new filter set")},{default:v(()=>[t(me,null,{default:v(()=>[t(oe,{ref_key:"formRef",ref:h},{default:v(()=>[t(I,{modelValue:n.value.name,"onUpdate:modelValue":C[0]||(C[0]=_=>n.value.name=_),label:l(p)("Name"),variant:"outlined",rules:[l(N).required]},null,8,["modelValue","label","rules"]),t(fe,{label:l(p)("Active"),modelValue:n.value.active,"onUpdate:modelValue":C[1]||(C[1]=_=>n.value.active=_),color:"primary"},null,8,["label","modelValue"])]),_:1},512)]),_:1}),t(ve),t(de,null,{default:v(()=>[t(pe),t(F,{text:l(p)("Cancel"),variant:"plain",onClick:a},null,8,["text"]),t(F,{color:"primary",text:l(p)("Create"),onClick:U},null,8,["text"])]),_:1})]),_:1},8,["title"]))}},Re={class:"bg-grey-lighten-4 rounded pa-3"},Te={class:"mt-4 bg-grey-lighten-4 rounded pa-3"},qe={class:"mx-2 d-flex flex-column flex-grow-1"},De={__name:"FilterForm",props:{filterSet:{type:String,default:null},filter:{type:Object,required:!1,default:null}},emits:["close"],setup(P,{emit:O}){const p=P,w=O,i=ae(),{$gettext:n}=le(),h=f({}),b=f([]),a=f([]),U=f(),u=f(x()),C=f(!1),_=ne(()=>p.filter?n("Edit filter"):n("New filter")),M=ne(()=>p.filter?n("Update"):n("Create"));let B;G(()=>p.filter,d=>{d?(u.value=JSON.parse(JSON.stringify(d)),B=d.name):u.value=x()},{immediate:!0});function T(){w("close"),u.value=x()}function x(){return{match_type:"anyof",conditions:[{}],actions:[{args:{}}]}}function H(d){for(const V of b.value)if(V.name===d)return V.operators;return[]}function K(d){for(const V of b.value)if(V.name===u.value.conditions[d].name){for(const r of V.operators)if(r.name===u.value.conditions[d].operator)return r.type==="string"?"text":"number"}}function Q(d){for(const V of a.value)if(V.name===d)return V.args;return[]}function W(){u.value.conditions.push({name:b.value[0].name,operator:b.value[0].operators[0].name})}function J(d){u.value.conditions.splice(d,1)}function A(){u.value.actions.push({name:a.value[0].name,args:{}})}function X(d){u.value.actions.splice(d,1)}async function Y(){const{valid:d}=await U.value.validate();if(!d)return;C.value=!0;let V;const r=JSON.parse(JSON.stringify(u.value));for(const y of r.actions)for(const[m,E]of Object.entries(y.args))typeof E=="boolean"&&!E&&delete y.args[m];try{p.filter?(await g.updateFilter(p.filterSet,B,r),V=n("Filter updated")):(await g.createFilter(p.filterSet,r),V=n("Filter added"))}catch(y){y.response.status===400&&y.response.data&&(h.value=y.response.data);return}finally{C.value=!1}i.displayNotification({msg:V}),T()}return g.getFilterConditionTemplates().then(d=>{b.value=d.data,p.filter||(u.value.conditions[0].name=b.value[0].name,u.value.conditions[0].operator=b.value[0].operators[0].name)}),g.getFilterActionTemplates().then(d=>{a.value=d.data,p.filter||(u.value.actions[0].name=a.value[0].name)}),(d,V)=>(c(),k(ce,{title:_.value},{default:v(()=>[t(me,null,{default:v(()=>[t(oe,{ref_key:"formRef",ref:U},{default:v(()=>[t(I,{modelValue:u.value.name,"onUpdate:modelValue":V[0]||(V[0]=r=>u.value.name=r),label:l(n)("Name"),variant:"outlined",density:"compact",rules:[l(N).required],"error-messages":h.value.name?h.value.name:[]},null,8,["modelValue","label","rules","error-messages"]),$("div",Re,[$("h4",null,L(l(n)("Conditions")),1),t(_e,{modelValue:u.value.match_type,"onUpdate:modelValue":V[1]||(V[1]=r=>u.value.match_type=r),color:"primary",inline:""},{default:v(()=>[t(te,{label:l(n)("All of the following"),value:"allof"},null,8,["label"]),t(te,{label:l(n)("Any of the following"),value:"anyof"},null,8,["label"]),t(te,{label:l(n)("All messages"),value:"all"},null,8,["label"])]),_:1},8,["modelValue"]),u.value.match_type!=="all"?(c(!0),S(j,{key:0},Z(u.value.conditions,(r,y)=>(c(),S("div",{key:`condition-${y}`,class:"d-flex align-start"},[t(z,{modelValue:r.name,"onUpdate:modelValue":m=>r.name=m,label:l(n)("Choose a header"),items:b.value,"item-title":"label","item-value":"name",variant:"outlined",density:"compact",rules:[l(N).required]},null,8,["modelValue","onUpdate:modelValue","label","items","rules"]),t(z,{modelValue:r.operator,"onUpdate:modelValue":m=>r.operator=m,label:l(n)("Choose an operator"),items:H(r.name),"item-title":"label","item-value":"name",variant:"outlined",class:"ml-2",density:"compact",rules:[l(N).required]},null,8,["modelValue","onUpdate:modelValue","label","items","rules"]),t(I,{modelValue:r.value,"onUpdate:modelValue":m=>r.value=m,label:l(n)("Value"),variant:"outlined",class:"ml-2",density:"compact",type:K(y),rules:[l(N).required]},null,8,["modelValue","onUpdate:modelValue","label","type","rules"]),y===0?(c(),k(F,{key:0,icon:"mdi-plus",variant:"text",title:l(n)("Add condition"),color:"primary",onClick:W},null,8,["title"])):(c(),k(F,{key:1,icon:"mdi-trash-can",variant:"text",title:l(n)("Remove condition"),color:"error",onClick:m=>J(y)},null,8,["title","onClick"]))]))),128)):R("",!0)]),$("div",Te,[$("h4",null,L(l(n)("Actions")),1),(c(!0),S(j,null,Z(u.value.actions,(r,y)=>(c(),S("div",{key:`action-${y}`,class:"d-flex align-start mt-2"},[t(z,{modelValue:r.name,"onUpdate:modelValue":m=>r.name=m,label:l(n)("Choose an action"),items:a.value,"item-title":"label","item-value":"name",variant:"outlined",density:"compact",class:"flex-grow-0"},null,8,["modelValue","onUpdate:modelValue","label","items"]),$("div",qe,[(c(!0),S(j,null,Z(Q(r.name),(m,E)=>(c(),S(j,{key:`arg-${y}-${E}`},[m.type==="list"?(c(),k(z,{key:0,modelValue:r.args[m.name],"onUpdate:modelValue":q=>r.args[m.name]=q,items:m.choices,"item-title":"label",density:"compact",variant:"outlined",rules:[l(N).required]},null,8,["modelValue","onUpdate:modelValue","items","rules"])):R("",!0),m.type==="string"?(c(),k(I,{key:1,modelValue:r.args[m.name],"onUpdate:modelValue":q=>r.args[m.name]=q,density:"compact",variant:"outlined",rules:[l(N).required]},null,8,["modelValue","onUpdate:modelValue","rules"])):R("",!0),m.type==="boolean"?(c(),k(Se,{key:2,modelValue:r.args[m.name],"onUpdate:modelValue":q=>r.args[m.name]=q,label:m.label,color:"primary",value:m.value,density:"compact"},null,8,["modelValue","onUpdate:modelValue","label","value"])):R("",!0)],64))),128))]),y===0?(c(),k(F,{key:0,icon:"mdi-plus",variant:"text",title:l(n)("Add action"),color:"primary",onClick:A},null,8,["title"])):(c(),k(F,{key:1,icon:"mdi-trash-can",variant:"text",title:l(n)("Remove action"),color:"error",onClick:m=>X(y)},null,8,["title","onClick"]))]))),128))])]),_:1},512)]),_:1}),t(ve),t(de,null,{default:v(()=>[t(pe),t(F,{text:l(n)("Cancel"),variant:"elevated",onClick:T},null,8,["text"]),t(F,{color:"primary",variant:"elevated",text:M.value,loading:C.value,onClick:Y},null,8,["text","loading"])]),_:1})]),_:1},8,["title"]))}},je={class:"pa-4"},Oe={class:"text-h6 font-weight-regular mb-4"},Be={key:0,class:"bg-white mt-4 pa-2"},Ee={class:"d-flex align-center"},ft={__name:"FiltersView",setup(P){const O=he(),p=we(),w=ae(),{$gettext:i}=le(),n=f([]),h=f([]),b=f(""),a=f(),U=f(!1),u=f([]),C=f(),_=f(!1),M=f(!1),B=f(null),T=f(!1),x=f(!1),H=[{title:i("Name"),key:"name"},{title:i("Active"),key:"enabled"},{title:"",key:"filter_actions",align:"end"}];G(a,e=>{e?(A(e.name),p.params.filterset!==e.name&&O.push({name:"AccountFilters",params:{filterset:e.name}})):O.push({name:"AccountFilters"})}),G(_,e=>{e?g.downloadFilterSet(a.value.name).then(o=>{b.value=o.data}):A(a.value.name)}),G(b,()=>{u.value.length&&(u.value=[])});function K(e){let o=e.name;return e.active?o+=" ("+i("active")+")":o+=" ("+i("inactive")+")",o}function Q(){T.value=!1,J()}function W(){x.value=!1,B.value=null,A(a.value.name)}function J(){g.getFilterSets().then(e=>{if(e.data.length>0&&e.data[0].active&&e.data[0].name===null?n.value=e.data.slice(1):n.value=e.data,!a.value&&p.params.filterset){for(const o of n.value)if(o.name===p.params.filterset){a.value=o;break}}})}function A(e){U.value=!0,g.getFilters(e).then(o=>{h.value=o.data,U.value=!1}).catch(o=>{o.response.status===518&&(_.value=!0,w.displayNotification({msg:i("Failed to display template. Using raw mode"),type:"warning"}))})}function X(e){B.value=e,x.value=!0}function Y(e){g.enableFilter(a.value.name,e.name).then(()=>{e.enabled=!0,w.displayNotification({msg:i("Filter enabled")})})}function d(e){g.disableFilter(a.value.name,e.name).then(()=>{e.enabled=!1,w.displayNotification({msg:i("Filter disabled")})})}function V(e){g.deleteFilter(a.value.name,e.name).then(()=>{w.displayNotification({msg:i("Filter removed")}),A(a.value.name)})}async function r(e){await g.moveFilterDown(a.value.name,e.name),A(a.value.name)}async function y(e){await g.moveFilterUp(a.value.name,e.name),A(a.value.name)}async function m(e){await g.activateFilterSet(e.name),w.displayNotification({msg:i("Filter set activated")})}async function E(e){await g.deleteFilterSet(e.name),w.displayNotification({msg:i("Filter set removed")}),a.value=null,J()}async function q(){const{valid:e}=await C.value.validate();if(!e)return;const o={content:b.value};M.value=!0;try{await g.saveFilterSet(a.value.name,o),w.displayNotification({msg:i("Filter set updated")})}catch(s){s.response.status===400&&s.response.data.content&&(u.value=s.response.data.content)}finally{M.value=!1}}async function Ve(e){const o=await g.downloadFilterSet(e.name),s=new Blob([o.data],{type:"text/plain"}),D=document.createElement("a");D.href=URL.createObjectURL(s),D.download=`${e.name}.txt`,D.click(),URL.revokeObjectURL(D.href)}const ye=[{label:i("Edit"),icon:"mdi-circle-edit-outline",onClick:X},{label:i("Delete"),icon:"mdi-delete-outline",onClick:V,color:"red"}];function be(e,o){const s=[...ye];return e.enabled?s.push({label:i("Disable"),icon:"mdi-stop",color:"red",onClick:d}):s.push({label:i("Enable"),icon:"mdi-check",color:"success",onClick:Y}),o!==h.value.length-1&&s.push({label:i("Move down"),icon:"mdi-arrow-down",onClick:r}),o!==0&&s.push({label:i("Move up"),icon:"mdi-arrow-up",onClick:y}),s}const ge=[{label:i("Download filter set"),icon:"mdi-download",onClick:Ve},{label:i("Delete filter set"),color:"error",icon:"mdi-trash-can",onClick:E}];function Fe(){const e=[];return a.value.active||e.push({label:i("Activate filter set"),color:"success",icon:"mdi-check",onClick:m}),e.concat(ge)}return J(),(e,o)=>(c(),S(j,null,[$("div",je,[$("div",Oe,L(l(i)("Message filters")),1),t(xe,{color:"white",flat:""},{default:v(()=>[t(Ae,{modelValue:a.value,"onUpdate:modelValue":o[0]||(o[0]=s=>a.value=s),label:l(i)("Select a filter set"),items:n.value,"item-title":K,"return-object":"",variant:"outlined","hide-details":"",class:"flex-grow-0",style:{width:"200px"},density:"compact"},null,8,["modelValue","label","items"]),t(F,{color:"primary",icon:"mdi-plus",size:"small",class:"mx-4",title:l(i)("Add filter set"),onClick:o[1]||(o[1]=s=>T.value=!0)},null,8,["title"]),a.value?(c(),k(ue,{key:0},{activator:v(({props:s})=>[t(F,ie({icon:"mdi-dots-vertical"},s,{size:"small",color:"default"}),null,16)]),default:v(()=>[t(re,{items:Fe(),obj:a.value},null,8,["items","obj"])]),_:1})):R("",!0),a.value?(c(),k(fe,{key:1,modelValue:_.value,"onUpdate:modelValue":o[2]||(o[2]=s=>_.value=s),label:l(i)("Raw mode"),color:"primary",class:"ml-4","hide-details":""},null,8,["modelValue","label"])):R("",!0)]),_:1}),a.value?(c(),S("div",Be,[_.value?(c(),S(j,{key:1},[t(oe,{ref_key:"rawFormRef",ref:C},{default:v(()=>[t(Ne,{modelValue:b.value,"onUpdate:modelValue":o[4]||(o[4]=s=>b.value=s),variant:"outlined","auto-grow":"",rules:[l(N).required],"error-messages":u.value},null,8,["modelValue","rules","error-messages"])]),_:1},512),t(F,{color:"success",loading:M.value,class:"mt-2",onClick:q},{default:v(()=>[ee(L(l(i)("Save")),1)]),_:1},8,["loading"])],64)):(c(),S(j,{key:0},[$("div",Ee,[t(F,{color:"primary",title:l(i)("Add new filter"),class:"mx-auto",onClick:o[3]||(o[3]=s=>x.value=!0)},{default:v(()=>[t(Ce,{icon:"mdi-plus"}),ee(" "+L(l(i)("Add")),1)]),_:1},8,["title"])]),t(Ue,{headers:H,items:h.value,loading:U.value},{"item.enabled":v(({item:s})=>[ee(L(e.$yesno(s.enabled)),1)]),"item.filter_actions":v(({index:s,item:D})=>[t(ue,{"offset-y":""},{activator:v(({props:ke})=>[t(F,ie({icon:"mdi-dots-horizontal",variant:"text"},ke),null,16)]),default:v(()=>[t(re,{items:be(D,s),obj:D},null,8,["items","obj"])]),_:2},1024)]),_:2},1032,["items","loading"])],64))])):R("",!0)]),t(se,{modelValue:T.value,"onUpdate:modelValue":o[5]||(o[5]=s=>T.value=s),"max-width":"600"},{default:v(()=>[t($e,{onClose:Q})]),_:1},8,["modelValue"]),t(se,{modelValue:x.value,"onUpdate:modelValue":o[6]||(o[6]=s=>x.value=s),"max-width":"800"},{default:v(()=>[a.value?(c(),k(De,{key:0,"filter-set":a.value.name,filter:B.value,onClose:W},null,8,["filter-set","filter"])):R("",!0)]),_:1},8,["modelValue"])],64))}};export{ft as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{g as i,M as m,c as p,f as a,o as e}from"./index-DV9Li2cg.js";import{_ as n}from"./ComposeEmailForm-CNfI7ept.js";import{a as l}from"./webmail-KrD8ZhNM.js";import"./index-DzL89N4E.js";import"./VForm-CpoZf60D.js";import"./tag-CFK9dzMJ.js";import"./VTextField-CLwRV0Cb.js";import"./VAvatar-BAgTUIvX.js";import"./VProgressCircular-CrEXxs7k.js";import"./forwardRefs-Cpc3YYl6.js";import"./ssrBoot-BsxW6uW4.js";import"./VCard-DFWiFORP.js";import"./VFileInput-Cv9DIPki.js";import"./VChip-nZ0uhY7t.js";import"./VTable-KsiZ3cBz.js";import"./VSpacer-C6PZ3X24.js";/* empty css */import"./HtmlEditor-uM4AtIGi.js";import"./VTextarea-Di8jbl8m.js";import"./contacts-Bqckz8sr.js";import"./VToolbar-CGwhgdmI.js";import"./VRow-C_Ydf6yr.js";import"./VSelect-CS51PDEt.js";import"./VMenu-B_dVqOmo.js";import"./VCheckboxBtn-j7di4leN.js";import"./VSelectionControl-DiOqtY38.js";import"./filter-D7NrAf6a.js";import"./VDialog-CZqM2Ofu.js";const J={__name:"ForwardEmailView",setup(s){const o=m(),r=i();return l.getEmailContent(o.query.mailbox,o.query.mailid,{context:"forward"}).then(t=>{r.value=t.data}),(t,c)=>(e(),p(a(n),{"original-email":r.value},null,8,["original-email"]))}};export{J as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as K,Q as oe,R as Se,c as L,o as R,w as t,a,m as Q,F as ce,G as Ue,l as V,t as _,k as pe,b as J,n as le,g as r,h as M,d as Ee,q as Y,B as te,r as Le,H as Ne,f as y,N as q,s as fe,i as X,e as j}from"./index-DV9Li2cg.js";import{_ as ne}from"./MenuItems-kHCMzR5E.js";import{_ as ie}from"./ConfirmDialog-BvqxQsD1.js";import{V as De,a as Te,b as ve}from"./VCard-DFWiFORP.js";import{V as ye}from"./VCheckbox-CKsH_vq3.js";import{V as je}from"./VSpacer-C6PZ3X24.js";import{V as N,d as Z}from"./VAvatar-BAgTUIvX.js";import{a as H}from"./aliases-c3n-dCV_.js";import{d as Me}from"./index-DzL89N4E.js";import{V as ae}from"./VMenu-B_dVqOmo.js";import{V as ze}from"./VChip-nZ0uhY7t.js";import{V as _e,a as Pe}from"./VToolbar-CGwhgdmI.js";import{V as Be}from"./VTextField-CLwRV0Cb.js";import{V as be,a as se,b as re}from"./forwardRefs-Cpc3YYl6.js";import{V as qe,a as ue}from"./VRadioGroup-D8ypjYOO.js";import{V as Oe}from"./VDataTableServer-BWTt4Mzi.js";import{V as W}from"./VDialog-CZqM2Ofu.js";import{_ as Ge,a as We}from"./AliasRecipientForm-DVZXWaUX.js";import{_ as ke}from"./CreationForm-C9Kh05ax.js";import{_ as Qe,A as Ye,a as He,b as Je}from"./AccountAliasForm-DVXatAhB.js";import{u as Ke}from"./permissions-mL5hLHcW.js";import{a as B,V as de}from"./VRow-C_Ydf6yr.js";import{u as Xe}from"./domains.store-ChZgLcqP.js";import{_ as Ze,i as et}from"./importExport-Dn9vYw7T.js";import{V as tt}from"./VSwitch-Chg5o-Cp.js";import"./tag-CFK9dzMJ.js";import"./VCheckboxBtn-j7di4leN.js";import"./VSelectionControl-DiOqtY38.js";import"./VProgressCircular-CrEXxs7k.js";/* empty css */import"./ssrBoot-BsxW6uW4.js";import"./VDataTable-D_0_xJTl.js";import"./VSelect-CS51PDEt.js";import"./VTable-KsiZ3cBz.js";import"./filter-D7NrAf6a.js";import"./EmailField-BEKxuYni.js";import"./VForm-CpoZf60D.js";import"./domains-nBMR-fRf.js";import"./VTextarea-Di8jbl8m.js";import"./VWindowItem-wWSFAGI-.js";import"./VContainer-Btam4lk2.js";import"./VSheet-5VVWtHvs.js";import"./ChoiceField-7eU7c_rI.js";import"./VAlert-B7mzOJIO.js";import"./AccountPasswordSubForm-g3IEGrgM.js";import"./VFileInput-Cv9DIPki.js";const ee="identities",me={getAll(){return K.get(`${ee}/`)},exportAll(){return K.get(`/${ee}/export/`)},importFromCSV(D){return K.post(`/${ee}/import/`,D,{headers:{"Content-Type":"multipart/form-data"}})}},at={__name:"ChooseColumnsForm",props:oe({availableColumns:{type:Array,default:null},mandatoryColumns:{type:Array,default:null},columns:{type:Array,default:null}},{modelValue:{type:Array},modelModifiers:{}}),emits:oe(["apply"],["update:modelValue"]),setup(D,{emit:b}){const e=D,I=Se(D,"modelValue"),S=b,C=()=>{S("apply",I.value)};return I.value=e.columns.map(g=>g.key),(g,k)=>(R(),L(ve,{title:g.$gettext("Choose columns to display")},{default:t(()=>[a(De,null,{default:t(()=>[(R(!0),Q(ce,null,Ue(e.availableColumns,$=>(R(),Q("div",{key:$.key},[a(ye,{modelValue:I.value,"onUpdate:modelValue":k[0]||(k[0]=p=>I.value=p),value:$.key,label:$.title,color:"primary","hide-details":"",density:"compact",disabled:e.mandatoryColumns.includes($.key)},null,8,["modelValue","value","label","disabled"])]))),128))]),_:1}),a(Te,null,{default:t(()=>[a(je),a(N,{color:"primary",variant:"outlined",onClick:C},{default:t(()=>[V(_(g.$gettext("Apply")),1)]),_:1})]),_:1})]),_:1},8,["title"]))}},lt={__name:"IdentityList",setup(D,{expose:b}){const{$gettext:e}=J(),I=fe(),{displayNotification:S}=le(),C={address:{title:e("Address"),key:"address"},enabled:{title:e("Enabled"),key:"enabled"},recipients:{title:e("Recipients"),key:"recipients"},expire_at:{title:e("Expire at"),key:"expire_at"},description:{title:e("Description"),key:"description"},creation:{title:e("Creation date"),key:"creation"},last_modification:{title:e("Last modification"),key:"last_modification"}},g=[C.address,C.enabled,C.recipients],k={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"},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"}},$=[k.username,k.is_active,k.role],p=r("account"),s=r(0),c=r([]),w=r(!1),x=r(""),n=r([]),d=r(!1),F=r(),z=r(),T=r(1),v=r(10),A=r([]),h=r($),P=r(!1),O=M(()=>h.value.concat([{title:e("Actions"),key:"actions",sortable:!1,align:"end"}])),G=M(()=>p.value==="account"?Object.values(k):Object.values(C)),u=M(()=>p.value==="account"?["username"]:["address"]);async function m(i){w.value=!0,c.value=[],A.value=[],i==="account"?h.value=$:h.value=g,await U()}async function f({page:i,itemsPerPage:o,sortBy:E}){T.value=i,v.value=o,A.value=E,U()}async function U(){w.value=!0;const i={page:T.value||1,page_size:v.value||10};A.value&&A.value.length&&(i.ordering=A.value.map(o=>o.order!=="asc"?`-${o.key}`:o.key).join(",")),x.value!==""&&(i.search=x.value);try{const o=p.value==="account"?await q.getAll(i):await H.getAll(i);c.value=o.data.results,s.value=o.data.count,n.value=[]}finally{w.value=!1}}function Ve(i){h.value=G.value.filter(o=>i.includes(o.key)),P.value=!1}function ge(i){const o=[];return p.value==="account"?(i.possible_actions.forEach(E=>{o.push({label:E.label,icon:E.icon,onClick:l=>{E.name==="get_credentials"&&Ae(l),U()}})}),o.push({label:e("Edit"),icon:"mdi-circle-edit-outline",onClick:Ce}),o.push({label:e("Delete"),icon:"mdi-delete-outline",onClick:we,color:"red"})):p.value==="alias"&&(o.push({label:e("Edit"),icon:"mdi-circle-edit-outline",onClick:he}),o.push({label:e("Delete"),icon:"mdi-delete-outline",onClick:Re,color:"red"})),o}function xe(){const i=[];return n.value.length>0&&i.push({label:e("Delete"),icon:"mdi-delete-outline",onClick:$e,color:"red"}),i}function Ce(i){I.push({name:"AccountEdit",params:{id:i.pk}})}async function we(i){if(await z.value.open(e("Warning"),e("Are you sure you want to delete this identity ?"),{color:"error",agreeLabel:e("Yes"),cancelLabel:e("No")})){w.value=!1;try{await q.delete(i.pk,{keepdir:d.value}),U(),S({msg:e("Account deleted")})}finally{w.value=!1}}}async function Ae(i){const o=await q.getCredentials(i.pk),E=new Blob([o.data],{type:o.headers["Content-Type"]}),l=document.createElement("a");l.href=URL.createObjectURL(E),l.download=`credentials_${i.pk}.pdf`,l.click(),URL.revokeObjectURL(l.href)}function he(){}function $e(){}async function Re(i){if(await F.value.open(e("Warning"),e("Are you sure you want to delete this alias?"),{color:"error",agreeLabel:e("Yes"),cancelLabel:e("No")})){w.value=!1;try{await H.delete(i.pk),U(),S({msg:e("Alias deleted")})}finally{w.value=!1}}}function Ie(i){return i.recipients?i.recipients.join(", "):""}return Ee(()=>{U()}),b({fetchIdentities:U}),U=Me(U,500),(i,o)=>{const E=Le("router-link");return R(),L(ve,{class:"mt-6"},{default:t(()=>[a(Oe,{modelValue:n.value,"onUpdate:modelValue":o[3]||(o[3]=l=>n.value=l),headers:O.value,items:c.value,search:x.value,loading:w.value,"items-length":s.value,page:T.value,"items-per-page":v.value,"item-value":"pk",elevation:"0","show-select":"","sort-by":A.value,"onUpdate:options":f},{top:t(()=>[a(_e,{flat:"",color:"white"},{extension:t(()=>[a(qe,{modelValue:p.value,"onUpdate:modelValue":[o[2]||(o[2]=l=>p.value=l),m],inline:"",readonly:w.value,"hide-details":""},{default:t(()=>[a(ue,{color:"primary",label:y(e)("Accounts"),value:"account"},null,8,["label"]),a(ue,{color:"primary",label:y(e)("Alias"),value:"alias"},null,8,["label"])]),_:1},8,["modelValue","readonly"])]),default:t(()=>[a(Be,{modelValue:x.value,"onUpdate:modelValue":o[0]||(o[0]=l=>x.value=l),"prepend-inner-icon":"mdi-magnify",placeholder:y(e)("Search"),variant:"outlined","hide-details":"","single-line":"",flat:"",density:"compact",class:"flex-grow-0 w-33 mr-4"},null,8,["modelValue","placeholder"]),Ne(i.$slots,"extraActions",{},void 0,!0),a(N,{variant:"text",icon:"mdi-format-columns",title:y(e)("Customize displayed columns"),onClick:o[1]||(o[1]=l=>P.value=!0)},null,8,["title"]),n.value.length>1?(R(),L(ae,{key:0,location:"bottom"},{activator:t(({props:l})=>[a(N,te({"append-icon":"mdi-chevron-down"},l,{size:"small",variant:"flat"}),{default:t(()=>[V(_(y(e)("Actions")),1)]),_:2},1040)]),default:t(()=>[a(be,{density:"compact"},{default:t(()=>[a(ne,{items:xe()},null,8,["items"])]),_:1})]),_:1})):Y("",!0),a(N,{variant:"text",icon:"mdi-reload",onClick:U})]),_:3})]),"item.username":t(({item:l})=>[a(E,{to:{name:"AccountDetail",params:{id:l.pk}}},{default:t(()=>[V(_(l.username),1)]),_:2},1032,["to"])]),"item.address":t(({item:l})=>[a(E,{to:{name:"AliasDetail",params:{id:l.pk}}},{default:t(()=>[V(_(l.address),1)]),_:2},1032,["to"])]),"item.is_active":t(({item:l})=>[a(Z,{color:l.is_active?"success":"error",icon:l.is_active?"mdi-check-circle":"mdi-close-circle",variant:"flat"},null,8,["color","icon"])]),"item.enabled":t(({item:l})=>[a(Z,{color:l.enabled?"success":"error",icon:l.enabled?"mdi-check-circle":"mdi-close-circle",variant:"flat"},null,8,["color","icon"])]),"item.recipients":t(({item:l})=>[V(_(Ie(l)),1)]),"item.date_joined":t(({item:l})=>[V(_(i.$date(l.date_joined)),1)]),"item.creation":t(({item:l})=>[V(_(i.$date(l.creation)),1)]),"item.last_modification":t(({item:l})=>[V(_(i.$date(l.last_modification)),1)]),"item.last_login":t(({item:l})=>[V(_(i.$date(l.last_login)),1)]),"item.role":t(({item:l})=>[a(ze,{color:"default",size:"small"},{default:t(()=>[V(_(l.role),1)]),_:2},1024)]),"item.actions":t(({item:l})=>[l.possible_actions!==void 0&&l.possible_actions.length!==0?(R(),L(Z,{key:0,size:"large",color:"blue"},{default:t(()=>o[6]||(o[6]=[V("mdi-circle-small")])),_:1,__:[6]})):Y("",!0),a(ae,{location:"bottom"},{activator:t(({props:Fe})=>[a(N,te(Fe,{size:"small",icon:"mdi-dots-horizontal",variant:"text"}),null,16)]),default:t(()=>[a(ne,{items:ge(l),obj:l},null,8,["items","obj"])]),_:2},1024)]),_:2},1032,["modelValue","headers","items","search","loading","items-length","page","items-per-page","sort-by"]),a(ie,{ref_key:"confirmAlias",ref:F},null,512),a(ie,{ref_key:"confirmAccount",ref:z},{default:t(()=>[a(ye,{modelValue:d.value,"onUpdate:modelValue":o[4]||(o[4]=l=>d.value=l),label:y(e)("Do not delete account folder"),"hide-details":""},null,8,["modelValue","label"])]),_:1},512),a(W,{modelValue:P.value,"onUpdate:modelValue":o[5]||(o[5]=l=>P.value=l),"max-width":"500"},{default:t(()=>[a(at,{columns:h.value,"available-columns":G.value,"mandatory-columns":u.value,onApply:Ve},null,8,["columns","available-columns","mandatory-columns"])]),_:1},8,["modelValue"])]),_:3})}}},ot=pe(lt,[["__scopeId","data-v-328e3f59"]]),nt={__name:"AliasCreationForm",emits:["close","created"],setup(D,{emit:b}){const{$gettext:e}=J(),I=le(),S=fe(),C=b,g=r(),k=r(),$=r(),p={general:k,recipients:$},s=M(()=>{const v=[{title:e("General"),items:[{key:e("Random address"),value:c.value.random,type:"yesno"},{key:e("Address"),value:c.value.address}]}];return c.value.expire_at!==void 0&&v[0].items.push({key:e("Expire at"),value:c.value.expire_at}),c.value.description!==void 0&&v[0].items.push({key:e("Description"),value:c.value.description}),v.push({title:e("Recipients"),items:[{key:e("Recipients"),value:c.value.recipients.join(", ")}]}),v}),c=r(n()),w=r([{name:"general",title:e("General")},{name:"recipients",title:e("Recipients")}]);function x(){c.value=n(),C("close")}function n(){return{random:!1,enabled:!0,recipients:[]}}function d(v){return p.step[v.name]}function F(v){return p[v.name].value.vFormRef}function z(){const v={...c.value};v.recipients.length===0&&delete v.recipients;const A=H.validate(v);return A.catch(h=>{h.response.status===409&&h.response.data.id!==void 0&&(I.displayNotification({msg:e("Alias already exists, redirecting to edit page"),type:"warning"}),S.push({name:"AliasEdit",params:{id:h.response.data.id}}))}),A}async function T(){c.value.domain!==void 0&&delete c.value.domain;try{await H.create(c.value),C("created"),x()}finally{g.value.working=!1}}return(v,A)=>(R(),L(ke,{ref_key:"form",ref:g,title:y(e)("New alias"),steps:w.value,"form-getter":d,"get-v-form-ref":F,"validate-object":z,"summary-sections":s.value,onClose:x,onCreate:T},{"form.general":t(()=>[a(We,{ref_key:"general",ref:k,modelValue:c.value,"onUpdate:modelValue":A[0]||(A[0]=h=>c.value=h)},null,8,["modelValue"])]),"form.recipients":t(()=>[a(Ge,{ref_key:"recipients",ref:$,modelValue:c.value.recipients,"onUpdate:modelValue":A[1]||(A[1]=h=>c.value.recipients=h)},null,8,["modelValue"])]),_:2},1032,["title","steps","summary-sections"]))}},it={class:"grey--text"},st={__name:"AccountCreationForm",emits:["close","created"],setup(D,{emit:b}){const{$gettext:e}=J(),{canSetRole:I}=Ke(),S=le(),C=Xe(),g=b,k=M(()=>s.value.username&&s.value.username.indexOf("@")!==-1),$=M(()=>{const u=[{title:e("Role"),items:[{key:e("Role"),value:s.value.role}]},{title:e("Identification"),items:[{key:e("Username"),value:s.value.username},{key:e("First name"),value:s.value.first_name},{key:e("Last name"),value:s.value.last_name},{name:"random_password",key:e("Random password"),value:s.value.random_password,type:"yesno"},{key:e("Enabled"),value:s.value.is_active,type:"yesno"}]}];return k.value?u.concat([{title:e("Mailbox"),items:[{key:e("Email"),value:s.value.mailbox.full_address},{key:e("Quota"),value:s.value.mailbox.use_domain_quota?e("Domain default value"):s.value.mailbox.quota},{key:e("Message sending limit"),value:s.value.mailbox.message_limit},{key:e("Send only account"),value:s.value.mailbox.is_send_only,type:"yesno"}]},{title:e("Aliases"),items:[{key:e("Aliases"),value:s.value.aliases,type:"list"}]}]):u}),p=M(()=>{const u=[];return I.value&&u.push({name:"role",title:e("Role")}),u.push({name:"identification",title:e("Identification")}),k.value?u.concat([{name:"mailbox",title:e("Mailbox")},{name:"aliases",title:e("Aliases")}]):u}),s=r({aliases:[],is_active:!0,role:X.USER,mailbox:{use_domain_quota:!0},random_password:!1}),c=r(),w=r(),x=r(),n=r(),d=r(),F={role:w,identification:x,mailbox:n,aliases:d};function z(){navigator.clipboard.writeText(s.value.new_password).then(()=>{S.displayNotification({msg:e("Password copied to clipboard")})})}function T(u){return F.step[u.name]}function v(u){return F[u.name].value.vFormRef}function A(u,m){const f=p.value[u-1].name;F[f].value.formErrors&&(F[f].value.formErrors.value=m)}function h(u){const m={...u};return[X.RESELLER,X.SUPER_ADMIN].includes(m.role)&&m.username&&m.username.indexOf("@")===-1&&delete m.mailbox,m.mailbox&&(m.mailbox.message_limit===""&&(m.mailbox.message_limit=null),(m.mailbox.quota===void 0||m.mailbox.quota===null)&&(m.mailbox.quota=0)),m}function P(u){if(u===1)return!0;const m=h({...s.value});return q.validate(m)}function O(){g("close")}async function G(){const u=h({...s.value});u.password=u.new_password,delete u.new_password,delete u.password_confirmation;try{await q.create(u),g("created"),O()}finally{c.value.working=!1}}return C.getDomains(),(u,m)=>(R(),L(ke,{ref_key:"form",ref:c,title:y(e)("New account"),steps:p.value,"form-getter":T,"get-v-form-ref":v,"validate-object":P,"summary-sections":$.value,onClose:O,onCreate:G,onValidationError:A},{"form.role":t(()=>[a(Je,{ref_key:"role",ref:w,modelValue:s.value,"onUpdate:modelValue":m[0]||(m[0]=f=>s.value=f)},null,8,["modelValue"])]),"form.identification":t(()=>[a(He,{ref_key:"identification",ref:x,modelValue:s.value,"onUpdate:modelValue":m[1]||(m[1]=f=>s.value=f)},null,8,["modelValue"])]),"form.mailbox":t(()=>[a(Ye,{ref_key:"mailbox",ref:n,modelValue:s.value,"onUpdate:modelValue":m[2]||(m[2]=f=>s.value=f)},null,8,["modelValue"])]),"form.aliases":t(()=>[a(Qe,{ref_key:"aliases",ref:d,modelValue:s.value,"onUpdate:modelValue":m[3]||(m[3]=f=>s.value=f)},null,8,["modelValue"])]),"item.random_password":t(({item:f})=>[f.value?(R(),L(B,{key:0,cols:"12",class:"highligth text-white"},{default:t(()=>[a(de,null,{default:t(()=>[a(B,null,{default:t(()=>[j("span",null,_(f.key),1)]),_:2},1024),f.type==="yesno"?(R(),L(B,{key:0,class:"text-right"},{default:t(()=>[V(_(u.$yesno(f.value)),1)]),_:2},1024)):Y("",!0)]),_:2},1024),a(de,null,{default:t(()=>[a(B,{class:"text-right py-1"},{default:t(()=>[a(N,{"append-icon":"mdi-clipboard-multiple-outline",color:"white",variant:"text",title:y(e)("Copy to clipboard"),onClick:z},{default:t(()=>[V(_(s.value.new_password),1)]),_:1},8,["title"])]),_:1})]),_:1})]),_:2},1024)):(R(),Q(ce,{key:1},[a(B,null,{default:t(()=>[j("span",it,_(f.key),1)]),_:2},1024),f.type==="yesno"?(R(),L(B,{key:0,class:"text-right"},{default:t(()=>[V(_(u.$yesno(f.value)),1)]),_:2},1024)):Y("",!0)],64))]),_:2},1032,["title","steps","summary-sections"]))}},rt={__name:"IdentitiesView",setup(D){const{$gettext:b,$pgettext:e}=J(),{importContent:I,exportContent:S}=et(),C=r(!1),g=r(!1),k=r(!1),$=r(),p=r();function s(){me.exportAll().then(x=>{S(x.data,"identities",b)})}function c(x,n){x.append("crypt_passwords",n.crypt_passwords),I(me,x,$,b)}function w(){k.value=!1,p.value.fetchIdentities()}return(x,n)=>(R(),Q("div",null,[a(_e,{flat:""},{default:t(()=>[a(Pe,null,{default:t(()=>[V(_(y(b)("Identities")),1)]),_:1})]),_:1}),a(ot,{ref_key:"idList",ref:p},{extraActions:t(()=>[a(ae,{"offset-y":""},{activator:t(({props:d})=>[a(N,te({color:"primary",variant:"outlined"},d,{"prepend-icon":"mdi-plus",class:"mr-4"}),{default:t(()=>[V(_(y(e)("male","New")),1)]),_:2},1040)]),default:t(()=>[a(be,{density:"compact"},{default:t(()=>[a(se,{onClick:n[0]||(n[0]=d=>C.value=!0)},{default:t(()=>[a(re,null,{default:t(()=>[V(_(y(b)("Account")),1)]),_:1})]),_:1}),a(se,{onClick:n[1]||(n[1]=d=>g.value=!0)},{default:t(()=>[a(re,null,{default:t(()=>[V(_(y(b)("Alias")),1)]),_:1})]),_:1})]),_:1})]),_:1}),a(N,{class:"mr-2",title:y(b)("Import accounts and aliases from CSV file"),variant:"flat",icon:"mdi-file-import-outline",onClick:n[2]||(n[2]=d=>k.value=!0)},null,8,["title"]),a(N,{class:"mr-2",title:y(b)("Export accounts and aliases to CSV"),icon:"mdi-file-export-outline",variant:"flat",onClick:s},null,8,["title"])]),_:1},512),a(W,{modelValue:g.value,"onUpdate:modelValue":n[5]||(n[5]=d=>g.value=d),fullscreen:"",scrollable:"","z-index":"10"},{default:t(()=>[a(nt,{onCreated:n[3]||(n[3]=d=>p.value.fetchIdentities()),onClose:n[4]||(n[4]=d=>g.value=!1)})]),_:1},8,["modelValue"]),a(W,{modelValue:C.value,"onUpdate:modelValue":n[8]||(n[8]=d=>C.value=d),fullscreen:"",scrollable:"","z-index":"10"},{default:t(()=>[a(st,{onCreated:n[6]||(n[6]=d=>p.value.fetchIdentities()),onClose:n[7]||(n[7]=d=>C.value=!1)})]),_:1},8,["modelValue"]),a(W,{modelValue:k.value,"onUpdate:modelValue":n[9]||(n[9]=d=>k.value=d),persistent:"","max-width":"800px"},{default:t(()=>[a(y(Ze),{ref_key:"importForm",ref:$,title:y(b)("Import identities"),onSubmit:c,onClose:w},{help:t(()=>n[10]||(n[10]=[j("ul",null,[j("li",null,[j("em",null,"account; loginname; password; first name; last name; enabled; group; address; quota[; domain; ...]")]),j("li",null,[j("em",null,"alias; address; enabled; recipient; [more recipients; ...]")])],-1)])),extraFields:t(({form:d})=>[a(tt,{modelValue:d.crypt_passwords,"onUpdate:modelValue":F=>d.crypt_passwords=F,label:y(b)("Crypt passwords"),color:"primary",density:"compact",hint:y(b)("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"])]))}},ta=pe(rt,[["__scopeId","data-v-c34f0ee8"]]);export{ta as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{k as w,b as M,g as V,h as k,d as H,m as u,a,c as m,q as p,w as o,f as t,o as l,l as d,t as r,F as _,G as x,e as s}from"./index-DV9Li2cg.js";import{a as I}from"./admin-CJVLMHh9.js";import{V as C,a as B}from"./VToolbar-CGwhgdmI.js";import{b as g,c as f,V as v}from"./VCard-DFWiFORP.js";import{V as b}from"./VAlert-B7mzOJIO.js";import{V as A}from"./VDataTableVirtual-BwVmkt4u.js";import{u as G}from"./global.store-DUP26-A5.js";import"./tag-CFK9dzMJ.js";import"./VAvatar-BAgTUIvX.js";import"./VProgressCircular-CrEXxs7k.js";import"./VDataTable-D_0_xJTl.js";import"./VSelect-CS51PDEt.js";import"./VTextField-CLwRV0Cb.js";import"./forwardRefs-Cpc3YYl6.js";import"./ssrBoot-BsxW6uW4.js";import"./VMenu-B_dVqOmo.js";import"./VCheckboxBtn-j7di4leN.js";import"./VSelectionControl-DiOqtY38.js";import"./VChip-nZ0uhY7t.js";import"./VTable-KsiZ3cBz.js";import"./filter-D7NrAf6a.js";const N={class:"mt-4"},S=["innerHTML"],D=["innerHTML"],E=["innerHTML"],F=["innerHTML"],O=["innerHTML"],q=["innerHTML"],P=["innerHTML"],R={tag:"p"},U={tag:"p",class:"text-body-2"},Y=["href"],$={__name:"InformationView",setup(j){const{$gettext:e}=M(),h=G(),c=V([]),T=[{title:e("Name"),value:"name"},{title:e("Installed version"),value:"version"},{title:e("Latest version"),value:"last_version"},{title:e("Description"),value:"description"}],y=k(()=>c.value.filter(i=>i.update).length>0);function L(i){return i.update?"green lighten-5":""}return H(()=>{I.getComponentsInformation().then(i=>{c.value=i.data})}),(i,z)=>(l(),u("div",null,[a(C,{flat:""},{default:o(()=>[a(B,null,{default:o(()=>[d(r(t(e)("Information")),1)]),_:1})]),_:1}),t(h).notifications.length?(l(),m(g,{key:0,class:"my-6"},{default:o(()=>[a(f,null,{default:o(()=>[d(r(t(e)("Important messages")),1)]),_:1}),a(v,null,{default:o(()=>[(l(!0),u(_,null,x(t(h).notifications,n=>(l(),m(b,{key:n.id,type:n.level,title:n.text,border:"start",variant:"tonal"},{default:o(()=>[n.id==="deprecatedpasswordscheme"?(l(),u(_,{key:0},[d(r(t(e)("The password scheme you are using has been deprecated and will be removed in the next minor version. The procedure to upgrade to a stronger scheme is as follows:"))+" ",1),s("ol",N,[s("li",{innerHTML:t(e)("Go to <strong>Settings > General</strong> section",!0)},null,8,S),s("li",{innerHTML:t(e)("Change the value of <strong>Default password scheme</strong>",!0)},null,8,D),s("li",{innerHTML:t(e)("Make sure <strong>Update password scheme at login</strong> option is enabled",!0)},null,8,E),s("li",{innerHTML:t(e)("Save your changes")},null,8,F),s("li",null,r(t(e)("Logout / Login with your current account so its password gets updated")),1),s("li",{innerHTML:t(e)("Inform <strong>ALL</strong> your users that they must login to Modoboa to complete the operation",!0)},null,8,O)]),s("p",{class:"mt-4",innerHTML:t(e)("You must apply this procedure <strong>BEFORE</strong> you install a newest version of Modoboa, otherwise <strong>you will be unable to connect to the web interface anymore</strong>.",!0)},null,8,q),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),a(g,{class:"mt-6"},{default:o(()=>[a(f,null,{default:o(()=>[d(r(t(e)("Installed components")),1)]),_:1}),a(v,null,{default:o(()=>[y.value?(l(),m(b,{key:0,variant:"tonal",type:"success",text:"",border:"start"},{default:o(()=>[s("div",R,r(t(e)("One or more updates are available")),1),s("div",U,r(t(e)("Check out the following list to find related components")),1)]),_:1})):p("",!0),a(A,{headers:T,items:c.value,"item-class":L},{"item.last_version":o(({item:n})=>[n.changelog_url?(l(),u("a",{key:0,href:n.changelog_url,target:"_blank"},r(n.last_version),9,Y)):(l(),u(_,{key:1},[d(r(n.last_version),1)],64))]),_:2},1032,["items"])]),_:1})]),_:1})]))}},he=w($,[["__scopeId","data-v-f05bf0f7"]]);export{he as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.v-toolbar[data-v-f05bf0f7]{background-color:#f7f8fa!important}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{v as te,x as le,ar as se,y as oe,h as X,ab as ne,e as d,B as ie,C as re,J as G,k as ue,b as de,n as ce,g as b,M as me,d as ve,a4 as pe,L as J,m as _,a as s,c as v,w as h,q as B,bc as ge,f,t as m,F as U,G as fe,s as ke,o as r}from"./index-DV9Li2cg.js";import{a as x}from"./webmail-KrD8ZhNM.js";import{V as be}from"./VToolbar-CGwhgdmI.js";import{V as j}from"./VCheckbox-CKsH_vq3.js";import{V as he}from"./VTextField-CLwRV0Cb.js";import{r as xe,s as ye,V as y,d as A}from"./VAvatar-BAgTUIvX.js";import{V as _e}from"./VMenu-B_dVqOmo.js";import{V as Ve,a as $}from"./forwardRefs-Cpc3YYl6.js";import{V as q}from"./VSpacer-C6PZ3X24.js";import{b as R,V as Ce}from"./VCard-DFWiFORP.js";import{u as we}from"./VProgressCircular-CrEXxs7k.js";import{b as Se,u as Me,c as Be}from"./tag-CFK9dzMJ.js";import{V as $e}from"./VAlert-B7mzOJIO.js";import"./VCheckboxBtn-j7di4leN.js";import"./VSelectionControl-DiOqtY38.js";import"./ssrBoot-BsxW6uW4.js";/* empty css */const Le={actions:"button@2",article:"heading, paragraph",avatar:"avatar",button:"button",card:"image, heading","card-avatar":"image, list-item-avatar",chip:"chip","date-picker":"list-item, heading, divider, date-picker-options, date-picker-days, actions","date-picker-options":"text, avatar@2","date-picker-days":"avatar@28",divider:"divider",heading:"heading",image:"image","list-item":"text","list-item-avatar":"avatar, text","list-item-two-line":"sentences","list-item-avatar-two-line":"avatar, sentences","list-item-three-line":"paragraph","list-item-avatar-three-line":"avatar, paragraph",ossein:"ossein",paragraph:"text@3",sentences:"text@2",subtitle:"text",table:"table-heading, table-thead, table-tbody, table-tfoot","table-heading":"chip, text","table-thead":"heading@6","table-tbody":"table-row-divider@6","table-row-divider":"table-row, divider","table-row":"text@6","table-tfoot":"text@2, avatar@2",text:"text"};function Ae(a){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return d("div",{class:G(["v-skeleton-loader__bone",`v-skeleton-loader__${a}`])},[o])}function D(a){const[o,e]=a.split("@");return Array.from({length:e}).map(()=>E(o))}function E(a){let o=[];if(!a)return o;const e=Le[a];if(a!==e){if(a.includes(","))return O(a);if(a.includes("@"))return D(a);e.includes(",")?o=O(e):e.includes("@")?o=D(e):e&&o.push(E(e))}return[Ae(a,o)]}function O(a){return a.replace(/\s/g,"").split(",").map(E)}const Ee=le({boilerplate:Boolean,color:String,loading:Boolean,loadingText:{type:String,default:"$vuetify.loading"},type:{type:[String,Array],default:"ossein"},...Be(),...ye(),...re()},"VSkeletonLoader"),Ie=te()({name:"VSkeletonLoader",props:Ee(),setup(a,o){let{slots:e}=o;const{backgroundColorClasses:V,backgroundColorStyles:M}=we(()=>a.color),{dimensionStyles:I}=Se(a),{elevationClasses:N}=xe(a),{themeClasses:p}=se(a),{t:i}=oe(),C=X(()=>E(ne(a.type).join(",")));return Me(()=>{var n;const g=!e.default||a.loading,w=a.boilerplate||!g?{}:{ariaLive:"polite",ariaLabel:i(a.loadingText),role:"alert"};return d("div",ie({class:["v-skeleton-loader",{"v-skeleton-loader--boilerplate":a.boilerplate},p.value,V.value,N.value],style:[M.value,g?I.value:{}]},w),[g?C.value:(n=e.default)==null?void 0:n.call(e)])}),{}}}),Ne={key:2,class:"d-flex align-center"},ze={class:"text-caption mr-2"},Te={key:1,class:"emails position-absolute top-0 bottom-0 w-100 overflow-y-auto"},Je=["onClick"],Pe={class:"mt-1 text-grey"},Fe=["title"],Ue={key:1},je={class:"text-right"},qe={class:"mt-1"},Re={class:"text-grey"},De={__name:"EmailList",props:{mailbox:{type:String,default:"INBOX"}},setup(a){const o=a,{$gettext:e}=de(),{displayNotification:V,reloadMailboxCounters:M}=ce(),I=ke(),N=me(),p=b(!1),i=b({}),C=b(1),g=b(""),w=b(!1),n=b([]),c=b(!1);let P=null;const S=X(()=>N.query.mailbox||"INBOX"),K=u=>{I.push({name:"EmailView",query:{mailbox:o.mailbox,mailid:u}})},k=()=>{i.value={},p.value=!0,x.getMailboxEmails(o.mailbox,{page:C.value,search:g.value}).then(u=>{i.value=u.data,p.value=!1}).catch(()=>{p.value=!1})},z=()=>{k()},W=()=>{g.value&&k()},H=u=>{u?n.value=i.value.results.map(t=>t.imapid):n.value=[]},Q=()=>{n.value.length&&(c.value=!0,x.deleteSelection(S.value,n.value).then(()=>{c.value=!1,V({msg:e("Message(s) deleted")}),k(),M()}))},Y=()=>{n.value.length&&(c.value=!0,x.markSelectionAsJunk(S.value,n.value).then(()=>{c.value=!1,V({msg:e("Message(s) marked as junk")}),z()}))},Z=()=>{n.value.length&&(c.value=!0,x.markSelectionAsNotJunk(S.value,n.value).then(()=>{c.value=!1,V({msg:e("Message(s) marked as not junk")}),z()}))},L=u=>{n.value.length&&(c.value=!0,x.flagSelection(S.value,n.value,u).then(()=>{c.value=!1,n.value=[],V({msg:e("Message(s) flagged")}),k(),M()}))},ee=()=>{p.value=!0,x.emptyUserMailbox(S.value).then(()=>{i.value={},p.value=!1,M()})},ae=async u=>{const t=u.flagged?"unflagged":"flagged";await x.flagSelection(S.value,[u.imapid],t),u.flagged=t==="flagged"};return ve(()=>{P=setInterval(z,300*1e3)}),pe(()=>{clearInterval(P)}),J(()=>o.mailbox,()=>{k()},{immediate:!0}),J(n,()=>{n.value.length?w.value=!0:w.value=!1}),J(C,()=>{k()}),(u,t)=>{var F;return r(),_(U,null,[s(R,{class:"mt-6 mb-2 mx-1"},{default:h(()=>[s(be,{color:"white",flat:""},{default:h(()=>[s(j,{modelValue:w.value,"onUpdate:modelValue":[t[0]||(t[0]=l=>w.value=l),H],class:"mr-4","hide-details":""},null,8,["modelValue"]),s(he,{modelValue:g.value,"onUpdate:modelValue":t[1]||(t[1]=l=>g.value=l),"prepend-inner-icon":"mdi-magnify",placeholder:f(e)("Search in messages"),variant:"outlined","single-line":"",flat:"","hide-details":"",density:"compact",class:"flex-grow-0 w-33 mr-4",clearable:"","onClick:clear":k,onKeyup:ge(W,["enter"])},null,8,["modelValue","placeholder"]),s(y,{class:"ml-2",color:"error",variant:"tonal",icon:"mdi-trash-can",size:"small",loading:c.value,onClick:Q},null,8,["loading"]),u.$route.params.mailbox!=="Junk"?(r(),v(y,{key:0,class:"ml-2",color:"warning",variant:"tonal",icon:"mdi-fire",size:"small",loading:c.value,onClick:Y},null,8,["loading"])):(r(),v(y,{key:1,class:"ml-2",color:"success",variant:"tonal",icon:"mdi-thumb-up",size:"small",loading:c.value,onClick:Z},null,8,["loading"])),s(y,{class:"ml-2",variant:"tonal",icon:"",size:"small"},{default:h(()=>[s(A,{icon:"mdi-cog"}),s(_e,{activator:"parent"},{default:h(()=>[s(Ve,{density:"compact"},{default:h(()=>[s($,{title:f(e)("Mark as read"),"prepend-icon":"mdi-eye",onClick:t[2]||(t[2]=()=>L("read"))},null,8,["title"]),s($,{title:f(e)("Mark as unread"),"prepend-icon":"mdi-eye-outline",onClick:t[3]||(t[3]=()=>L("unread"))},null,8,["title"]),s($,{title:f(e)("Mark as followed"),"prepend-icon":"mdi-star",onClick:t[4]||(t[4]=()=>L("flagged"))},null,8,["title"]),s($,{title:f(e)("Mark as unfollowed"),"prepend-icon":"mdi-star-outline",onClick:t[5]||(t[5]=()=>L("unflagged"))},null,8,["title"]),u.$route.params.mailbox!=="Trash"?(r(),v($,{key:0,title:f(e)("Empty mailbox"),"prepend-icon":"mdi-trash-can",onClick:ee},null,8,["title"])):B("",!0)]),_:1})]),_:1})]),_:1}),s(q),i.value.results?(r(),_("div",Ne,[d("div",ze,m(i.value.first_index)+"-"+m(i.value.last_index)+" "+m(f(e)("on"))+" "+m(i.value.count),1),d("div",null,[s(y,{icon:"mdi-chevron-left",size:"x-small",disabled:i.value.prev_page===null,onClick:t[6]||(t[6]=l=>C.value=i.value.prev_page)},null,8,["disabled"]),s(y,{icon:"mdi-chevron-right",size:"x-small",disabled:i.value.next_page===null,onClick:t[7]||(t[7]=l=>C.value=i.value.next_page)},null,8,["disabled"])])])):B("",!0)]),_:1})]),_:1}),p.value?(r(),v(Ie,{key:0,type:"card@2"})):(r(),_("div",Te,[(F=i.value.results)!=null&&F.length?(r(!0),_(U,{key:0},fe(i.value.results,l=>(r(),v(R,{key:l.imapid,density:"compact",class:"mb-2 mx-1"},{default:h(()=>[s(Ce,{class:G(["d-flex align-center",{"font-weight-bold":l.style==="unseen"}])},{default:h(()=>[s(j,{modelValue:n.value,"onUpdate:modelValue":t[8]||(t[8]=T=>n.value=T),value:l.imapid,"hide-details":""},null,8,["modelValue","value"]),s(y,{icon:l.flagged?"mdi-star":"mdi-star-outline",variant:"flat",onClick:T=>ae(l)},null,8,["icon","onClick"]),d("div",{class:"ml-4 clickable",onClick:T=>K(l.imapid)},[d("div",null,m(l.subject),1),d("div",Pe,[l.from_address.name?(r(),_("span",{key:0,title:l.from_address.address},m(l.from_address.name),9,Fe)):(r(),_("span",Ue,m(l.from_address.address),1))])],8,Je),s(q),d("div",je,[d("div",null,m(l.date),1),d("div",qe,[l.answered?(r(),v(A,{key:0,icon:"mdi-reply-outline"})):B("",!0),l.forwarded?(r(),v(A,{key:1,icon:"mdi-share-outline"})):B("",!0),l.attachments?(r(),v(A,{key:2,icon:"mdi-paperclip"})):B("",!0),d("span",Re,m(u.$filesize(l.size)),1)])])]),_:2},1032,["class"])]),_:2},1024))),128)):(r(),v($e,{key:1,class:"mt-4",type:"info",text:f(e)("No message yet in this mailbox"),variant:"tonal"},null,8,["text"]))]))],64)}}},Oe=ue(De,[["__scopeId","data-v-0050ed0f"]]),Xe={class:"position-relative h-100"},Ge={class:"text-h5 ml-4"},ca={__name:"MailboxView",setup(a){return(o,e)=>(r(),_("div",Xe,[d("div",Ge,m(o.$gettext("Webmail")),1),s(Oe,{mailbox:o.$route.query.mailbox||"INBOX"},null,8,["mailbox"])]))}};export{ca as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as s,b as n,V as i}from"./forwardRefs-Cpc3YYl6.js";import{d as u}from"./VAvatar-BAgTUIvX.js";import{c as l,o as a,w as t,m,F as p,G as d,a as c,l as f,t as _}from"./index-DV9Li2cg.js";const C={__name:"MenuItems",props:{items:{type:Object,default:()=>{}},obj:{type:Object,default:()=>{}}},setup(o){return(k,V)=>(a(),l(i,{density:"compact"},{default:t(()=>[(a(!0),m(p,null,d(o.items,(e,r)=>(a(),l(s,{key:r,value:e,onClick:b=>e.onClick(o.obj)},{prepend:t(()=>[c(u,{color:e.color,icon:e.icon},null,8,["color","icon"])]),default:t(()=>[c(n,null,{default:t(()=>[f(_(e.label),1)]),_:2},1024)]),_:2},1032,["value","onClick"]))),128))]),_:1}))}};export{C as _};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as y,g as l,c as b,w as a,a as s,l as m,t as c,f as h,o as V,k as T,m as M,F as $}from"./index-DV9Li2cg.js";import{l as D}from"./logs-DrTzylW7.js";import{d as F}from"./index-DzL89N4E.js";import{V as v,a as S}from"./VToolbar-CGwhgdmI.js";import{V as C}from"./VTextField-CLwRV0Cb.js";import{V as I}from"./VDataTableServer-BWTt4Mzi.js";import{b as N}from"./VCard-DFWiFORP.js";import"./tag-CFK9dzMJ.js";import"./VAvatar-BAgTUIvX.js";import"./VProgressCircular-CrEXxs7k.js";import"./forwardRefs-Cpc3YYl6.js";import"./ssrBoot-BsxW6uW4.js";import"./VDataTable-D_0_xJTl.js";import"./VSelect-CS51PDEt.js";import"./VMenu-B_dVqOmo.js";import"./VCheckboxBtn-j7di4leN.js";import"./VSelectionControl-DiOqtY38.js";import"./VChip-nZ0uhY7t.js";import"./VTable-KsiZ3cBz.js";import"./filter-D7NrAf6a.js";const U={__name:"MessageList",setup(k){const{$gettext:t}=y(),d=[{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"}],p=l(!0),u=l([]),i=l(""),f=l(0);function n({page:o,itemsPerPage:r,sortBy:e,search:w}){let g;e.length&&(g=(e[0].order==="desc"?"-":"")+e[0].key);const x={ordering:g,page:o,page_size:r,search:w};p.value=!0,D.getMessages(x).then(_=>{u.value=_.data.results,f.value=_.data.count,p.value=!1})}return n=F(n,500),(o,r)=>(V(),b(N,{class:"mt-6"},{default:a(()=>[s(I,{headers:d,items:u.value,search:i.value,class:"elevation-0","items-length":f.value,"onUpdate:options":n},{top:a(()=>[s(v,{flat:"",color:"white"},{default:a(()=>[s(C,{modelValue:i.value,"onUpdate:modelValue":r[0]||(r[0]=e=>i.value=e),"prepend-inner-icon":"mdi-magnify",placeholder:h(t)("Search"),variant:"outlined","hide-details":"",density:"compact",class:"flex-grow-0 w-33"},null,8,["modelValue","placeholder"])]),_:1})]),"item.date":a(({item:e})=>[m(c(o.$date(e.date)),1)]),"item.sender":a(({item:e})=>[m(c(o.$truncate(e.sender,50)),1)]),_:2},1032,["items","search","items-length"])]),_:1}))}},q={__name:"MessagesView",setup(k){return(t,d)=>(V(),M($,null,[s(v,{flat:""},{default:a(()=>[s(S,null,{default:a(()=>[m(c(t.$gettext("Message history")),1)]),_:1})]),_:1}),s(h(U))],64))}},ae=T(q,[["__scopeId","data-v-9c91b6c8"]]);export{ae as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as c,b as y,n as U,g as s,r as j,c as z,o as B,w as o,a as t,f as g,B as $,l as v,t as _,k as I,m as L}from"./index-DV9Li2cg.js";import{_ as P}from"./MenuItems-kHCMzR5E.js";import{V as q}from"./VDataTable-D_0_xJTl.js";import{V as k}from"./VMenu-B_dVqOmo.js";import{V as p}from"./VAvatar-BAgTUIvX.js";import{V as T,a as E}from"./VToolbar-CGwhgdmI.js";import{V as F}from"./forwardRefs-Cpc3YYl6.js";import{V as C}from"./VSpacer-C6PZ3X24.js";import{V as G}from"./VTextField-CLwRV0Cb.js";import{b as O}from"./VCard-DFWiFORP.js";import"./tag-CFK9dzMJ.js";import"./VProgressCircular-CrEXxs7k.js";import"./VSelect-CS51PDEt.js";import"./VCheckboxBtn-j7di4leN.js";import"./VSelectionControl-DiOqtY38.js";import"./VChip-nZ0uhY7t.js";import"./VTable-KsiZ3cBz.js";import"./filter-D7NrAf6a.js";import"./ssrBoot-BsxW6uW4.js";/* empty css */const f="migrations",w={getMigrations(r){return c.get(`/${f}/`,{params:r})},getMigration(r,i){return c.get(`/${f}/${r}/`,i)},deleteMigration(r){return c.delete(`/${f}/${r}/`)}},H={__name:"MigrationsList",setup(r){const{$gettext:i}=y(),V=U(),n=s([]),S=[{title:i("Provider"),value:"provider.name"},{title:i("Old account"),value:"username"},{title:i("New account"),value:"mailbox"},{title:i("Actions"),value:"actions",sortable:!1,align:"right"}],x=s([]),u=s(!1),m=s(""),b=s({}),M=s(0);function A(l){w.deleteMigration(l.id).then(()=>{V.displayNotification({msg:i("Migration deleted")}),n.value=n.value.filter(a=>a.id!==l.id)})}function h(l){u.value=!0;let a={};w.getMigrations(a).then(d=>{n.value=d.data,M.value=n.value.length}).finally(()=>u.value=!1)}function D(){const l=[];return l.push({label:i("Delete"),icon:"mdi-delete-outline",onClick:A(),color:"red"}),l}return h(),(l,a)=>{const d=j("router-link");return B(),z(O,{class:"mt-6"},{default:o(()=>[t(q,{modelValue:x.value,"onUpdate:modelValue":a[2]||(a[2]=e=>x.value=e),options:b.value,"onUpdate:options":a[3]||(a[3]=e=>b.value=e),headers:S,items:n.value,search:m.value,"server-items-length":M.value,loading:u.value,"show-select":""},{top:o(()=>[t(T,{color:"white",flat:""},{default:o(()=>[t(k,{location:"bottom"},{activator:o(({props:e})=>[t(p,$(e,{variant:"flat","append-icon":"mdi-chevron-down",size:"small"}),{default:o(()=>[v(_(g(i)("Actions")),1)]),_:2},1040)]),default:o(()=>[t(F,{density:"compact"})]),_:1}),t(p,{variant:"text",icon:"mdi-reload",onClick:a[0]||(a[0]=e=>h())}),t(C),t(G,{modelValue:m.value,"onUpdate:modelValue":a[1]||(a[1]=e=>m.value=e),"prepend-inner-icon":"mdi-magnify",placeholder:"Search",filled:"",variant:"outlined",density:"compact","hide-details":""},null,8,["modelValue"])]),_:1})]),"item.mailbox":o(({item:e})=>[t(d,{to:{name:"AccountDetail",params:{id:e.mailbox.user}}},{default:o(()=>[v(_(e.mailbox.full_address),1)]),_:2},1032,["to"])]),"item.actions":o(({item:e})=>[t(k,{"offset-y":""},{activator:o(({props:N})=>[t(p,$({icon:"mdi-dots-horizontal"},N),null,16)]),default:o(()=>[t(g(P),{items:D(),object:e},null,8,["items","object"])]),_:2},1024)]),_:2},1032,["modelValue","options","items","search","server-items-length","loading"])]),_:1})}}},J={__name:"MigrationsView",setup(r){const{$gettext:i}=y();return(V,n)=>(B(),L("div",null,[t(T,{flat:""},{default:o(()=>[t(E,null,{default:o(()=>[v(_(g(i)("Migrations")),1)]),_:1}),t(C)]),_:1}),t(H)]))}},pt=I(J,[["__scopeId","data-v-5f22702f"]]);export{pt as default};
|