From bb2311ea18dd4519db6db5428bf3acb239e809ad Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Wed, 2 Dec 2009 17:50:51 -0800 Subject: Only pick up new default site colors if the theme has NOT changed. --- actions/designadminpanel.php | 49 ++++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 24 deletions(-) (limited to 'actions') diff --git a/actions/designadminpanel.php b/actions/designadminpanel.php index 8bc8c4450..a64a900b8 100644 --- a/actions/designadminpanel.php +++ b/actions/designadminpanel.php @@ -129,8 +129,6 @@ class DesignadminpanelAction extends AdminPanelAction $bgimage = $this->saveBackgroundImage(); - common_debug("background image: $bgimage"); - static $settings = array('theme', 'logo'); $values = array(); @@ -141,13 +139,28 @@ class DesignadminpanelAction extends AdminPanelAction $this->validate($values); - // assert(all values are valid); + $oldtheme = common_config('site', 'theme'); + + $config = new Config(); + + $config->query('BEGIN'); + + // Only update colors if the theme has not changed. - $bgcolor = new WebColor($this->trimmed('design_background')); - $ccolor = new WebColor($this->trimmed('design_content')); - $sbcolor = new WebColor($this->trimmed('design_sidebar')); - $tcolor = new WebColor($this->trimmed('design_text')); - $lcolor = new WebColor($this->trimmed('design_links')); + if ($oldtheme == $values['theme']) { + + $bgcolor = new WebColor($this->trimmed('design_background')); + $ccolor = new WebColor($this->trimmed('design_content')); + $sbcolor = new WebColor($this->trimmed('design_sidebar')); + $tcolor = new WebColor($this->trimmed('design_text')); + $lcolor = new WebColor($this->trimmed('design_links')); + + Config::save('design', 'backgroundcolor', $bgcolor->intValue()); + Config::save('design', 'contentcolor', $ccolor->intValue()); + Config::save('design', 'sidebarcolor', $sbcolor->intValue()); + Config::save('design', 'textcolor', $tcolor->intValue()); + Config::save('design', 'linkcolor', $lcolor->intValue()); + } $onoff = $this->arg('design_background-image_onoff'); @@ -162,9 +175,11 @@ class DesignadminpanelAction extends AdminPanelAction $tile = $this->boolean('design_background-image_repeat'); - $config = new Config(); + // Hack to use Design's bit setter + $scratch = new Design(); + $scratch->setDisposition($on, $off, $tile); - $config->query('BEGIN'); + Config::save('design', 'disposition', $scratch->disposition); foreach ($settings as $setting) { Config::save('site', $setting, $values[$setting]); @@ -174,21 +189,7 @@ class DesignadminpanelAction extends AdminPanelAction Config::save('design', 'backgroundimage', $bgimage); } - Config::save('design', 'backgroundcolor', $bgcolor->intValue()); - Config::save('design', 'contentcolor', $ccolor->intValue()); - Config::save('design', 'sidebarcolor', $sbcolor->intValue()); - Config::save('design', 'textcolor', $tcolor->intValue()); - Config::save('design', 'linkcolor', $lcolor->intValue()); - - // Hack to use Design's bit setter - $scratch = new Design(); - $scratch->setDisposition($on, $off, $tile); - - Config::save('design', 'disposition', $scratch->disposition); - $config->query('COMMIT'); - - return; } /** -- cgit v1.2.3-54-g00ecf From 56b3e13d4aec5649b5858597729a1af5e5407c9c Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Wed, 2 Dec 2009 18:05:19 -0800 Subject: Reload the admin design panel page to show the new CSS when the design gets reset. --- actions/designadminpanel.php | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'actions') diff --git a/actions/designadminpanel.php b/actions/designadminpanel.php index a64a900b8..f862aff0e 100644 --- a/actions/designadminpanel.php +++ b/actions/designadminpanel.php @@ -213,6 +213,10 @@ class DesignadminpanelAction extends AdminPanelAction } // XXX: Should we restore the default dir settings, etc.? --Z + + // XXX: I can't get it to show the new settings without forcing + // this terrible reload -- FIX ME! + common_redirect(common_local_url('designadminpanel'), 303); } /** -- cgit v1.2.3-54-g00ecf