39 lines
1.4 KiB
JavaScript
39 lines
1.4 KiB
JavaScript
/**
|
|
* @file
|
|
* Attaches preview-related behavior for the Color module.
|
|
*/
|
|
|
|
(function ($) {
|
|
Drupal.color = {
|
|
callback: function(context, settings, form, farb, height, width) {
|
|
// Solid background.
|
|
$('#preview', form).css('backgroundColor', $('#palette input[name="palette[base]"]', form).val());
|
|
|
|
// Text preview
|
|
$('#text', form).css('color', $('#palette input[name="palette[text]"]', form).val());
|
|
$('#text a, #text h2', form).css('color', $('#palette input[name="palette[link]"]', form).val());
|
|
|
|
// Set up gradients if there are some.
|
|
var color_start, color_end;
|
|
for (i in settings.gradients) {
|
|
color_start = farb.unpack($('#palette input[name="palette[' + settings.gradients[i]['colors'][0] + ']"]', form).val());
|
|
color_end = farb.unpack($('#palette input[name="palette[' + settings.gradients[i]['colors'][1] + ']"]', form).val());
|
|
if (color_start && color_end) {
|
|
var delta = [];
|
|
for (j in color_start) {
|
|
delta[j] = (color_end[j] - color_start[j]) / (settings.gradients[i]['vertical'] ? height[i] : width[i]);
|
|
}
|
|
var accum = color_start;
|
|
// Render gradient lines.
|
|
$('#gradient-' + i + ' > div', form).each(function () {
|
|
for (j in accum) {
|
|
accum[j] += delta[j];
|
|
}
|
|
this.style.backgroundColor = farb.pack(accum);
|
|
});
|
|
}
|
|
}
|
|
}
|
|
};
|
|
})(jQuery);
|