diff --git a/webui/scripts/main.js b/webui/scripts/main.js index 77ad51c..7a812e4 100644 --- a/webui/scripts/main.js +++ b/webui/scripts/main.js @@ -89,6 +89,14 @@ var rc = { } } + if (d.dialog.title) { + $('#dialogheadertitle').html(d.dialog.title); + } + + if (d.dialog.content) { + $('#dialogcontent').html(d.dialog.content); + } + $("#dialog").show(); } }, @@ -149,6 +157,11 @@ var rc = { 'add_setting_row': function(params) { $("#settings tbody").append(params.content); + }, + + 'remove_setting': function(params) { + $('#setting_' + params.id + '_row').remove(); + rc.ajax.post(base_url + 'ajax/admin/remove-setting/name/' + params.name + '/'); } }, @@ -194,6 +207,30 @@ var rc = { rc.ajax.get(base_url + "ajax/admin/new-setting/"); }, + remove_setting: function(id, name) { + rc.dialog.prepare({ + dialog: { + show: true, + title: 'Remove setting', + content: "Do you really want to remove setting '" + name + "'", + buttons: { + type: 'okcancel', + actions: { + ok: [ + 'remove_setting', + 'close-dialog' + ], + cancel: 'close-dialog' + }, + params: { + id: id, + name: name + } + } + } + }); + }, + add_stringlist_field: function(id) { var container = $('#container_'+id); var next = $('#settings_'+id+'_next'); diff --git a/webui/source/pages/ajax/admin/add-setting.php b/webui/source/pages/ajax/admin/add-setting.php index 882aabc..191c00d 100644 --- a/webui/source/pages/ajax/admin/add-setting.php +++ b/webui/source/pages/ajax/admin/add-setting.php @@ -38,6 +38,7 @@ try { $this->smarty->assign('success', $result); $this->smarty->assign('name', $name); + $this->smarty->assign('id', str_replace('.', '-',$name)); $this->smarty->assign('type', $type); $this->smarty->assign('value', ''); diff --git a/webui/source/pages/ajax/admin/remove-setting.php b/webui/source/pages/ajax/admin/remove-setting.php new file mode 100644 index 0000000..b6a2278 --- /dev/null +++ b/webui/source/pages/ajax/admin/remove-setting.php @@ -0,0 +1,23 @@ +request(); +$config = $main->config(); + +$messages = array(); +$result = false; + +try { + $name = $req->get('name', 'RippingCluster_Exception_InvalidParameters'); + + $result = $config->remove($name); + $this->smarty->assign('success', $result); + +} catch(RippingCluster_Exception $e) { + $messages[] = get_class($e) . ':' . $e->getMessage(); + $this->smarty->assign('messages', $messages); + $this->smarty->assign('success', false); +} + + +?> \ No newline at end of file diff --git a/webui/source/templates/ajax/admin/remove-setting.tpl b/webui/source/templates/ajax/admin/remove-setting.tpl new file mode 100644 index 0000000..f3998fa --- /dev/null +++ b/webui/source/templates/ajax/admin/remove-setting.tpl @@ -0,0 +1 @@ +"success": {$success|json_encode} diff --git a/webui/source/templates/fragments/admin-setting-row.tpl b/webui/source/templates/fragments/admin-setting-row.tpl index 6886a32..aa2efb2 100644 --- a/webui/source/templates/fragments/admin-setting-row.tpl +++ b/webui/source/templates/fragments/admin-setting-row.tpl @@ -1,5 +1,10 @@ - - {$name} + + +

+ {$name}
+ +

+ {include file="fragments/admin-setting-value.tpl"}