From aa5b1cea126d37cedc1760f0b295edcbd6a55fda Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Mon, 20 Jun 2022 12:50:36 -0700 Subject: [PATCH] ejabberd: Make localhost disabled option in domain selection Remove the label description that says the localhost option is not shown. Signed-off-by: Sunil Mohan Adapa --- plinth/modules/ejabberd/__init__.py | 1 + plinth/modules/ejabberd/forms.py | 22 +++++++++++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/plinth/modules/ejabberd/__init__.py b/plinth/modules/ejabberd/__init__.py index 7cc86439a..2c6e46eb9 100644 --- a/plinth/modules/ejabberd/__init__.py +++ b/plinth/modules/ejabberd/__init__.py @@ -213,6 +213,7 @@ def set_domains(domains): if not domains or app.needs_setup(): return + domains = list(set(domains) | {'localhost'}) commands = ['set-domains', '--domains'] commands.extend(domains) actions.superuser_run('ejabberd', commands) diff --git a/plinth/modules/ejabberd/forms.py b/plinth/modules/ejabberd/forms.py index af2c3a47f..6122057b0 100644 --- a/plinth/modules/ejabberd/forms.py +++ b/plinth/modules/ejabberd/forms.py @@ -7,6 +7,7 @@ from django import forms from django.urls import reverse_lazy from django.utils.translation import gettext_lazy as _ +import plinth.forms from plinth import cfg from plinth.modules import ejabberd from plinth.modules.coturn.forms import turn_uris_validator @@ -16,12 +17,11 @@ from plinth.utils import format_lazy class EjabberdForm(forms.Form): """Ejabberd configuration form.""" domain_names = forms.MultipleChoiceField( - label=_('Domain names'), widget=forms.CheckboxSelectMultiple, - help_text=_( - 'Domains to be used by ejabberd. "localhost" is always included, ' - 'so it is not shown here. Note that user accounts are unique for ' - 'each domain, and migrating users to a new domain name is not yet ' - 'implemented.'), choices=[]) + label=_('Domain names'), + widget=plinth.forms.CheckboxSelectMultipleWithReadOnly, help_text=_( + 'Domains to be used by ejabberd. Note that user accounts are ' + 'unique for each domain, and migrating users to a new domain name ' + 'is not yet implemented.'), choices=[]) MAM_enabled = forms.BooleanField( label=_('Enable Message Archive Management'), required=False, @@ -62,7 +62,15 @@ class EjabberdForm(forms.Form): from plinth.modules.names.components import DomainName domains |= DomainName.list_names() - self.fields['domain_names'].choices = zip(domains, domains) + choices = [] + for domain in domains: + label = domain + if domain == 'localhost': + label = {'label': domain, 'disabled': True} + + choices.append((domain, label)) + + self.fields['domain_names'].choices = choices def clean_turn_uris(self): """Normalize newlines in URIs."""