diff options
author | Bharat Mediratta <bharat@menalto.com> | 2009-05-13 21:32:22 +0000 |
---|---|---|
committer | Bharat Mediratta <bharat@menalto.com> | 2009-05-13 21:32:22 +0000 |
commit | ce4a8224d84eb0bea7a52bc670b5f4d8feb59138 (patch) | |
tree | d019f4f403121fd2ddb554c61eb8655c41f48891 | |
parent | 58a11e3f7c1503a418880cf0898951830e40d6b9 (diff) |
Allow admins to modify variables. This way when something goes wrong,
we can tell them what to do in the forums and we don't have to build
super smart admin UIs to help users with weird edge cases.
This plus r20789 is probably a good enough fix for #232.
-rw-r--r-- | core/controllers/admin_advanced_settings.php | 36 | ||||
-rw-r--r-- | core/views/admin_advanced_settings.html.php | 16 |
2 files changed, 49 insertions, 3 deletions
diff --git a/core/controllers/admin_advanced_settings.php b/core/controllers/admin_advanced_settings.php index 5a22ba58..1797b162 100644 --- a/core/controllers/admin_advanced_settings.php +++ b/core/controllers/admin_advanced_settings.php @@ -21,7 +21,41 @@ class Admin_Advanced_Settings_Controller extends Admin_Controller { public function index() { $view = new Admin_View("admin.html"); $view->content = new View("admin_advanced_settings.html"); - $view->content->vars = ORM::factory("var")->find_all(); + $view->content->vars = ORM::factory("var")->orderby("module_name", "name")->find_all(); print $view; } + + public function edit($module_name, $var_name) { + $value = module::get_var($module_name, $var_name); + $form = new Forge("admin/advanced_settings/save/$module_name/$var_name", "", "post"); + $group = $form->group("edit_var")->label( + t("Edit %var (%module_name)", + array("module_name" => $module_name, "var" => $var_name))); + $group->input("module_name")->label(t("Module"))->value($module_name)->disabled(1); + $group->input("var_name")->label(t("Setting"))->value($var_name)->disabled(1); + $group->textarea("value")->label(t("Value"))->value($value); + $group->submit("")->value(t("Save")); + print $form; + } + + public function save($module_name, $var_name) { + access::verify_csrf(); + + $var = ORM::factory("var") + ->where("module_name", $module_name) + ->where("name", $var_name) + ->find(); + if (!$var->loaded) { + kohana::show_404(); + } + + $var->value = Input::instance()->post("value"); + $var->save(); + + message::success( + t("Saved value for %var (%module_name)", + array("var" => $var->name, "module_name" => $var->module_name))); + + print json_encode(array("result" => "success")); + } } diff --git a/core/views/admin_advanced_settings.html.php b/core/views/admin_advanced_settings.html.php index e2832d97..1995c30c 100644 --- a/core/views/admin_advanced_settings.html.php +++ b/core/views/admin_advanced_settings.html.php @@ -2,8 +2,14 @@ <div id="gAdminAdvancedSettings"> <h1> <?= t("Advanced Settings") ?> </h1> <p> - <?= t("Here are internal Gallery configuration settings. Most of these settings are accessible elsewhere in the administrative console. You will eventually be able to modify these directly (at your own risk).") ?> + <?= t("Here are internal Gallery configuration settings. Most of these settings are accessible elsewhere in the administrative console.") ?> </p> + <ul id="gMessage"> + <li class="gWarning"> + <b><?= t("Change these values at your own risk!</b>") ?> + </li> + </ul> + <table> <tr> <th> <?= t("Module") ?> </th> @@ -14,7 +20,13 @@ <tr class="setting"> <td> <?= $var->module_name ?> </td> <td> <?= $var->name ?> </td> - <td> <?= $var->value ?> </td> + <td> + <a href="<?= url::site("admin/advanced_settings/edit/$var->module_name/$var->name") ?>" + class="gDialogLink" + title="<?= t("Edit %var (%module_name)", array("var" => $var->name, "module_name" => $var->module_name)) ?>"> + <?= $var->value ?> + </a> + </td> </tr> <? endforeach ?> </table> |