Commit 7d27be63 authored by Jan Čermák's avatar Jan Čermák

button for testing notifications sending

parent 7f6b7a9b
......@@ -174,6 +174,22 @@ class MaintenanceConfigPage(ConfigPageMixin, MaintenanceHandler):
return super(MaintenanceConfigPage, self).render(notifications_form=handler.form,
config_pages=config_page_map.display_names())
def _action_test_notifications(self):
if bottle.request.method != 'POST':
messages.error("Wrong HTTP method.")
bottle.redirect(reverse("config_page", page_name="maintenance"))
result, error_message = client.test_notifications()
if result:
messages.success(_("Testing message was sent, please check your inbox."))
else:
if error_message:
messages.error(_("Sending of the testing message failed, your configuration is possibly "
"wrong.<br>Error returned:<br><pre>%(error)s</pre>")
% dict(error=error_message))
else:
messages.error(_("Sending of the testing message failed because of an internal error."))
bottle.redirect(reverse("config_page", page_name="maintenance"))
def call_action(self, action):
if action == "config-backup":
return self._action_config_backup()
......@@ -181,6 +197,8 @@ class MaintenanceConfigPage(ConfigPageMixin, MaintenanceHandler):
return self._action_reboot()
elif action == "save_notifications":
return self._action_save_notifications()
elif action == "test_notifications":
return self._action_test_notifications()
raise ValueError("Unknown AJAX action.")
def render(self, **kwargs):
......@@ -332,7 +350,10 @@ def config_action_post(page_name, action):
# only update is allowed
request.POST.pop("update", None)
return config_page.render(is_xhr=True)
# check if the button click wasn't any sub-action
subaction = request.POST.pop("action", None)
if subaction:
return config_action_post(page_name, subaction)
try:
result = config_page.call_action(action)
try:
......
......@@ -19,7 +19,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Foris 0.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-04-08 08:25+0200\n"
"POT-Creation-Date: 2014-04-16 15:11+0200\n"
"PO-Revision-Date: 2014-02-05 13:55+0100\n"
"Last-Translator: Beda Kosata <bedrich.kosata@nic.cz>\n"
"Language-Team: Czech <>\n"
......@@ -163,6 +163,9 @@ msgstr ""
"upozorňování pomocí emailu, lze také stanovit interval mezi upozorněním a "
"automatickým restartem, ke kterému dojde, pokud neprovedete restart ručně."
msgid "Send testing message"
msgstr "Odeslat testovací zprávu"
msgid "Configuration backup"
msgstr "Záloha nastavení"
......@@ -509,6 +512,20 @@ msgstr ""
"Do zdířky WAN není zapojený kabel, Vaše připojení do internetu zřejmě nebude "
"fungovat."
msgid "Testing message was sent, please check your inbox."
msgstr "Testovací zpráva byla odeslána, zkontrolujte si prosím Vaši schránku."
#, python-format
msgid ""
"Sending of the testing message failed, your configuration is possibly wrong."
"<br>Error returned:<br><pre>%(error)s</pre>"
msgstr ""
"Odesílání testovací zprávy selhalo. Selhání bylo pravděpodobně způsobeno "
"špatným nastavením.<br>Navrácená chyba:<br><pre>%(error)s</pre>"
msgid "Sending of the testing message failed because of an internal error."
msgstr "Testovací zprávu se nepodařilo odeslat kvůli vnitřní chybě."
#, python-format
msgid ""
"Configuration was successfully restored. After installing updates and "
......@@ -516,9 +533,8 @@ msgid ""
"a> in local network. Please wait a while until router automatically restarts."
msgstr ""
"Nastavení bylo úspěšně obnoveno. Po instalaci aktualizací a restartu "
"zařízení bude router z vnitřní sítě dostupný na adrese <a href=\"//"
"%(new_ip)s\">%(new_ip)s</a>. Vyčkejte prosím na automatický restart "
"routeru."
"zařízení bude router z vnitřní sítě dostupný na adrese <a href=\"//%(new_ip)s"
"\">%(new_ip)s</a>. Vyčkejte prosím na automatický restart routeru."
msgid ""
"Configuration was successfully restored. Please wait a while for "
......@@ -806,8 +822,8 @@ msgid ""
msgstr ""
"Pro přístup k pokročilému nastavení, které není možné pomocí tohoto rozhraní "
"nastavit, je nutné zvolit heslo uživatele root, pomocí kterého se následně "
"můžete přihlásit do <a href=\"//%(host)s/%(path)s\">webového rozhraní "
"LuCI</a>. Stejné heslo je použito pro přístup na SSH."
"můžete přihlásit do <a href=\"//%(host)s/%(path)s\">webového rozhraní LuCI</"
"a>. Stejné heslo je použito pro přístup na SSH."
msgid "Backup file"
msgstr "Soubor se zálohou"
......
......@@ -131,6 +131,19 @@ def dismiss_notifications(message_ids):
return False
def test_notifications():
try:
dispatch(user_notify.UserNotify.rpc_test())
return True, None
except RPCError, e:
if e.tag == "operation-failed":
return False, e.message
logger.exception("Notifications testing failed.")
except TimeoutExpiredError:
logger.exception("Notifications testing timed out.")
return False, None
def ntp_update():
get_tag = time.Time.qual_tag("ntp")
element = ET.Element(get_tag)
......
......@@ -82,6 +82,12 @@ a
&:hover
color: $highlight-color-active
pre
font-family: "Courier New", Courier, monospace
font-size: 80%
line-height: 110%
margin: 0.5em 0
::selection
background-color: $highlight-color
color: #fff
......
......@@ -34,6 +34,9 @@
%end
%end
<button type="submit" name="send" class="button">{{ trans("Save") }}</button>
%if notifications_form.data['enable_smtp']:
<button type="submit" name="action" value="test_notifications" class="button">{{ trans("Send testing message") }}</button>
%end
</form>
<h3>{{ trans("Configuration backup") }}</h3>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment