diff --git a/src/jcl/jabber/command.py b/src/jcl/jabber/command.py index 15cbc29..2d5c203 100644 --- a/src/jcl/jabber/command.py +++ b/src/jcl/jabber/command.py @@ -1056,10 +1056,24 @@ class JCLCommandManager(CommandManager): result_form.add_field(field_type="hidden", name="FORM_TYPE", value="http://jabber.org/protocol/admin") - result_form.add_field(name="delay", - field_type="list-multi", - label=lang_class.field_restart_delay, - required=True) + delay_field = result_form.add_field(name="delay", + field_type="list-single", + label=lang_class.field_restart_delay, + required=True) + delay_field.add_option(label=lang_class.field_30_sec, + values=["30"]) + delay_field.add_option(label=lang_class.field_60_sec, + values=["60"]) + delay_field.add_option(label=lang_class.field_90_sec, + values=["90"]) + delay_field.add_option(label=lang_class.field_120_sec, + values=["120"]) + delay_field.add_option(label=lang_class.field_180_sec, + values=["180"]) + delay_field.add_option(label=lang_class.field_240_sec, + values=["240"]) + delay_field.add_option(label=lang_class.field_300_sec, + values=["300"]) result_form.add_field(name="announcement", field_type="text-multi", label=lang_class.field_announcement) @@ -1102,10 +1116,24 @@ class JCLCommandManager(CommandManager): result_form.add_field(field_type="hidden", name="FORM_TYPE", value="http://jabber.org/protocol/admin") - result_form.add_field(name="delay", - field_type="list-multi", - label=lang_class.field_shutdown_delay, - required=True) + delay_field = result_form.add_field(name="delay", + field_type="list-single", + label=lang_class.field_shutdown_delay, + required=True) + delay_field.add_option(label=lang_class.field_30_sec, + values=["30"]) + delay_field.add_option(label=lang_class.field_60_sec, + values=["60"]) + delay_field.add_option(label=lang_class.field_90_sec, + values=["90"]) + delay_field.add_option(label=lang_class.field_120_sec, + values=["120"]) + delay_field.add_option(label=lang_class.field_180_sec, + values=["180"]) + delay_field.add_option(label=lang_class.field_240_sec, + values=["240"]) + delay_field.add_option(label=lang_class.field_300_sec, + values=["300"]) result_form.add_field(name="announcement", field_type="text-multi", label=lang_class.field_announcement) diff --git a/src/jcl/jabber/tests/command.py b/src/jcl/jabber/tests/command.py index 4296466..ad2fd92 100644 --- a/src/jcl/jabber/tests/command.py +++ b/src/jcl/jabber/tests/command.py @@ -2894,7 +2894,25 @@ class JCLCommandManager_TestCase(JCLTestCase): "data": "jabber:x:data"}) self.assertEquals(len(fields), 3) self.assertEquals(fields[1].prop("var"), "delay") - self.assertEquals(fields[1].prop("type"), "list-multi") + self.assertEquals(fields[1].prop("type"), "list-single") + delay_options = result[0].xpath_eval("c:command/data:x/data:field[2]/data:option", + {"c": "http://jabber.org/protocol/commands", + "data": "jabber:x:data"}) + self.assertEquals(len(delay_options), 7) + self.assertEquals(delay_options[0].children.name, "value") + self.assertEquals(delay_options[0].children.content, "30") + self.assertEquals(delay_options[1].children.name, "value") + self.assertEquals(delay_options[1].children.content, "60") + self.assertEquals(delay_options[2].children.name, "value") + self.assertEquals(delay_options[2].children.content, "90") + self.assertEquals(delay_options[3].children.name, "value") + self.assertEquals(delay_options[3].children.content, "120") + self.assertEquals(delay_options[4].children.name, "value") + self.assertEquals(delay_options[4].children.content, "180") + self.assertEquals(delay_options[5].children.name, "value") + self.assertEquals(delay_options[5].children.content, "240") + self.assertEquals(delay_options[6].children.name, "value") + self.assertEquals(delay_options[6].children.content, "300") self.assertEquals(fields[2].prop("var"), "announcement") self.assertEquals(fields[2].prop("type"), "text-multi") @@ -2993,7 +3011,25 @@ class JCLCommandManager_TestCase(JCLTestCase): "data": "jabber:x:data"}) self.assertEquals(len(fields), 3) self.assertEquals(fields[1].prop("var"), "delay") - self.assertEquals(fields[1].prop("type"), "list-multi") + self.assertEquals(fields[1].prop("type"), "list-single") + delay_options = result[0].xpath_eval("c:command/data:x/data:field[2]/data:option", + {"c": "http://jabber.org/protocol/commands", + "data": "jabber:x:data"}) + self.assertEquals(len(delay_options), 7) + self.assertEquals(delay_options[0].children.name, "value") + self.assertEquals(delay_options[0].children.content, "30") + self.assertEquals(delay_options[1].children.name, "value") + self.assertEquals(delay_options[1].children.content, "60") + self.assertEquals(delay_options[2].children.name, "value") + self.assertEquals(delay_options[2].children.content, "90") + self.assertEquals(delay_options[3].children.name, "value") + self.assertEquals(delay_options[3].children.content, "120") + self.assertEquals(delay_options[4].children.name, "value") + self.assertEquals(delay_options[4].children.content, "180") + self.assertEquals(delay_options[5].children.name, "value") + self.assertEquals(delay_options[5].children.content, "240") + self.assertEquals(delay_options[6].children.name, "value") + self.assertEquals(delay_options[6].children.content, "300") self.assertEquals(fields[2].prop("var"), "announcement") self.assertEquals(fields[2].prop("type"), "text-multi") @@ -3008,9 +3044,9 @@ class JCLCommandManager_TestCase(JCLTestCase): command_node.setProp("sessionid", session_id) command_node.setProp("action", "next") submit_form = Form(xmlnode_or_type="submit") - submit_form.add_field(field_type="list-multi", + submit_form.add_field(field_type="list-single", name="delay", - value=[0]) + value=0) submit_form.add_field(field_type="text-multi", name="announcement", value=["service will be shut in 0 second"]) diff --git a/src/jcl/lang.py b/src/jcl/lang.py index 93f3403..5820cba 100644 --- a/src/jcl/lang.py +++ b/src/jcl/lang.py @@ -215,6 +215,14 @@ class Lang: u"Fill out this form to shut down the service." field_shutdown_delay = u"Delay before shutting down the service" + field_30_sec = u"30 seconds" + field_60_sec = u"60 seconds" + field_90_sec = u"90 seconds" + field_120_sec = u"120 seconds" + field_180_sec = u"180 seconds" + field_240_sec = u"240 seconds" + field_300_sec = u"300 seconds" + welcome_message_subject = u"Welcome" class fr: @@ -374,6 +382,14 @@ class Lang: u"Remplir ce formulaire pour arrêter le service." field_shutdown_delay = u"Délai avant d'arrêter le service" + field_30_sec = u"30 secondes" + field_60_sec = u"60 secondes" + field_90_sec = u"90 secondes" + field_120_sec = u"120 secondes" + field_180_sec = u"180 secondes" + field_240_sec = u"240 secondes" + field_300_sec = u"300 secondes" + welcome_message_subject = u"Bienvenue" class nl: diff --git a/src/jcl/tests/lang.py b/src/jcl/tests/lang.py index 6016262..3530a21 100644 --- a/src/jcl/tests/lang.py +++ b/src/jcl/tests/lang.py @@ -215,6 +215,14 @@ class Language_TestCase(unittest.TestCase): self.assertNotEquals(self.lang_class.command_shutdown_1_description, None) self.assertNotEquals(self.lang_class.field_shutdown_delay, None) + self.assertNotEquals(self.lang_class.field_30_sec, None) + self.assertNotEquals(self.lang_class.field_60_sec, None) + self.assertNotEquals(self.lang_class.field_90_sec, None) + self.assertNotEquals(self.lang_class.field_120_sec, None) + self.assertNotEquals(self.lang_class.field_180_sec, None) + self.assertNotEquals(self.lang_class.field_240_sec, None) + self.assertNotEquals(self.lang_class.field_300_sec, None) + self.assertNotEquals(self.lang_class.welcome_message_subject, None) class Language_fr_TestCase(Language_TestCase):