diff --git a/webui/scripts/main.js b/webui/scripts/main.js index 195656f..718e849 100644 --- a/webui/scripts/main.js +++ b/webui/scripts/main.js @@ -55,6 +55,14 @@ var rc = { if (d.dialog.buttons) { switch (d.dialog.buttons.type) { + case 'ok': + $("#dialogfooterok").click( + function() { + rc.trigger(d.dialog.buttons.actions.ok, d.dialog.buttons.params); + } + ); + $("#dialogfooterok").show(); + break; case 'yesno': $("#dialogfooteryes").click( function() { @@ -182,14 +190,23 @@ var rc = { for (var i in fields) { var setting = fields[i]; var name = setting.name; + var value; + + switch(setting.type) { + case 'checkbox': + value = $(setting).is(':checked') ? 1 : 0; + break; + default: + value = setting.value; + } if (/\[\]$/.test(name)) { if (! settings[name]) { settings[name] = []; } - settings[name].push(setting.value); + settings[name].push(value); } else { - settings[name] = setting.value; + settings[name] = value; } } diff --git a/webui/source/pages/ajax/update-settings.php b/webui/source/pages/ajax/update-settings.php index 7401e48..a58875c 100644 --- a/webui/source/pages/ajax/update-settings.php +++ b/webui/source/pages/ajax/update-settings.php @@ -3,10 +3,17 @@ $main = RippingCluster_Main::instance(); $config = $main->config(); +$messages = array(); + // Iterate over the settings and store each one back to the backend foreach($_POST as $key => $value) { + // Convert - to . (to work around the PHP register global backwards compatibility that renames input variables) + $key = str_replace("-", ".", $key); + if ($config->exists($key)) { $config->set($key, $value); + } else { + $messages[] = "Unknown config key '{$key}', value not updated."; } } diff --git a/webui/source/templates/admin/settings.tpl b/webui/source/templates/admin/settings.tpl index c202081..ea646de 100644 --- a/webui/source/templates/admin/settings.tpl +++ b/webui/source/templates/admin/settings.tpl @@ -15,19 +15,19 @@
+ Settings have been saved. +
+ +{if $messages} ++ Some messages were generated during this operation: + {include file="fragments/messages.tpl"} +
+{/if} diff --git a/webui/source/templates/index.tpl b/webui/source/templates/index.tpl index 559f0f9..412f558 100644 --- a/webui/source/templates/index.tpl +++ b/webui/source/templates/index.tpl @@ -64,6 +64,11 @@