Color picker reset: Resetting form values will also dynamically update

the page colors back to their original.
This commit is contained in:
Sarven Capadisli 2009-05-20 23:11:35 +00:00
parent f90d0ac6c8
commit b561962b59
2 changed files with 61 additions and 50 deletions

View File

@ -141,7 +141,8 @@ class DesignsettingsAction extends AccountSettingsAction
$this->elementEnd('fieldset'); $this->elementEnd('fieldset');
$this->submit('save', _('Save')); $this->submit('save', _('Save'));
$this->element('input', array('type' => 'reset', $this->element('input', array('id' => 'settings_design_reset',
'type' => 'reset',
'value' => 'Reset', 'value' => 'Reset',
'class' => 'form_action-secondary')); 'class' => 'form_action-secondary'));

View File

@ -1,29 +1,22 @@
$(document).ready(function() { $(document).ready(function() {
function UpdateColors(e) { function UpdateColors(S) {
var S = f.linked; C = $(S).val();
var C = f.color; switch (parseInt(S.id.slice(-1))) {
case 0: default:
if (S && S.value && S.value != C) { $('body').css({'background-color':C});
UpdateSwatch(S); break;
case 1:
switch (parseInt(f.linked.id.slice(-1))) { $('#content').css({'background-color':C});
case 0: default: break;
$('body').css({'background-color':C}); case 2:
break; $('#aside_primary').css({'background-color':C});
case 1: break;
$('#content').css({'background-color':C}); case 3:
break; $('body').css({'color':C});
case 2: break;
$('#aside_primary').css({'background-color':C}); case 4:
break; $('a').css({'color':C});
case 3: break;
$('body').css({'color':C});
break;
case 4:
$('a').css({'color':C});
break;
}
S.value = C;
} }
} }
@ -33,35 +26,52 @@ $(document).ready(function() {
} }
function UpdateSwatch(e) { function UpdateSwatch(e) {
$(e).css({ $(e).css({"background-color": e.value,
"background-color": e.value, "color": f.hsl[2] > 0.5 ? "#000": "#fff"});
"color": f.hsl[2] > 0.5 ? "#000": "#fff"
});
} }
$('#settings_design_color').append('<div id="color-picker"></div>'); function SynchColors(e) {
$('#color-picker').hide(); var S = f.linked;
var C = f.color;
var f = $.farbtastic('#color-picker', UpdateColors); if (S && S.value && S.value != C) {
var swatches = $('#settings_design_color .swatch'); S.value = C;
UpdateSwatch(S);
UpdateColors(S);
}
}
swatches function Init() {
.each(UpdateColors) $('#settings_design_color').append('<div id="color-picker"></div>');
$('#color-picker').hide();
.blur(function() { f = $.farbtastic('#color-picker', SynchColors);
$(this).val($(this).val().toUpperCase()); swatches = $('#settings_design_color .swatch');
})
.focus(function() { swatches
$('#color-picker').show(); .each(SynchColors)
UpdateFarbtastic(this); .blur(function() {
}) $(this).val($(this).val().toUpperCase());
})
.change(function() { .focus(function() {
UpdateFarbtastic(this); $('#color-picker').show();
UpdateSwatch(this); UpdateFarbtastic(this);
}).change() })
.change(function() {
; UpdateFarbtastic(this);
UpdateSwatch(this);
UpdateColors(this);
}).change();
}
var f, swatches;
Init();
$('#form_settings_design').bind('reset', function(){
setTimeout(function(){
swatches.each(function(){UpdateColors(this);});
$('#color-picker').remove();
swatches.unbind();
Init();
},10);
});
}); });