@@ -113,10 +82,16 @@
+
+
diff --git a/frontend/src/components/parameters/ParametersForm.vue b/frontend/src/components/parameters/ParametersForm.vue
index bc08e8d7b..6b5262535 100644
--- a/frontend/src/components/parameters/ParametersForm.vue
+++ b/frontend/src/components/parameters/ParametersForm.vue
@@ -136,6 +136,9 @@ export default {
this.formErrors = {}
parameters.saveApplication(this.$route.params.app, this.parameters).then(() => {
bus.$emit('notification', { msg: this.$gettext('Parameters updated') })
+ if (this.$route.params.app === 'imap_migration') {
+ bus.$emit('imapSettingsChanged', this.parameters.enabled_imapmigration)
+ }
}).catch(error => {
this.formErrors = error.response.data
})
diff --git a/modoboa/dmarc/forms.py b/modoboa/dmarc/forms.py
index 29b2842d0..0d4be9a44 100644
--- a/modoboa/dmarc/forms.py
+++ b/modoboa/dmarc/forms.py
@@ -70,5 +70,6 @@ def load_settings():
param_tools.registry.add2(
"global", "dmarc", _("DMARC"),
GLOBAL_PARAMETERS_STRUCT,
- serializers.DmarcGlobalParametersSerializer
+ serializers.DmarcGlobalParametersSerializer,
+ True
)
diff --git a/modoboa/imap_migration/apps.py b/modoboa/imap_migration/apps.py
index 55a125506..60ce7ec7a 100644
--- a/modoboa/imap_migration/apps.py
+++ b/modoboa/imap_migration/apps.py
@@ -19,7 +19,8 @@ def load_imapmigration_settings():
param_tools.registry.add2(
"global", "imap_migration", ugettext_lazy("IMAP Migration"),
app_settings.IMAP_MIGRATION_PARAMETERS_STRUCT,
- serializers.IMAPMigrationSettingsSerializer)
+ serializers.IMAPMigrationSettingsSerializer,
+ True)
class IMAPMigrationConfig(AppConfig):
diff --git a/modoboa/parameters/api/v2/serializers.py b/modoboa/parameters/api/v2/serializers.py
index 662f4126a..190c7caab 100644
--- a/modoboa/parameters/api/v2/serializers.py
+++ b/modoboa/parameters/api/v2/serializers.py
@@ -8,6 +8,7 @@ class ApplicationSerializer(serializers.Serializer):
name = serializers.CharField()
label = serializers.CharField()
+ is_extension = serializers.BooleanField()
class ParameterChoiceSerializer(serializers.Serializer):
diff --git a/modoboa/parameters/tools.py b/modoboa/parameters/tools.py
index 54e3eaff5..ed9e99667 100644
--- a/modoboa/parameters/tools.py
+++ b/modoboa/parameters/tools.py
@@ -42,11 +42,13 @@ class Registry(object):
"label": label, "formclass": formclass, "defaults": {}
}
- def add2(self, level, app, label, structure, serializer_class):
+ def add2(self, level, app, label, structure, serializer_class,
+ is_extension=False):
"""Add new parameters for given app and level."""
self._registry2[level][app] = {
"label": label, "structure": structure,
- "serializer_class": serializer_class
+ "serializer_class": serializer_class,
+ "is_extension": is_extension
}
def _load_default_values(self, level):
@@ -60,7 +62,8 @@ class Registry(object):
def get_applications(self, level):
"""Return all applications registered for level."""
- result = [{"name": key, "label": value["label"]}
+ result = [{"name": key, "label": value["label"],
+ "is_extension": value["is_extension"]}
for key, value in self._registry2[level].items()]
return result
diff --git a/modoboa/pdfcredentials/apps.py b/modoboa/pdfcredentials/apps.py
index d8dc2ff9a..2342e98af 100644
--- a/modoboa/pdfcredentials/apps.py
+++ b/modoboa/pdfcredentials/apps.py
@@ -20,7 +20,8 @@ def load_pdfcredential_settings():
param_tools.registry.add2(
"global", "pdfcredentials", ugettext_lazy("PDF Credentials"),
app_settings.PDF_CREDENTIALS_PARAMETERS_STRUCT,
- serializers.PDFCredentialsSettingsSerializer)
+ serializers.PDFCredentialsSettingsSerializer,
+ True)
class PDFCredentialsConfig(AppConfig):