mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-09-20 00:16:55 +02:00
f20ad434ce
API Allow HtmlEditorField to be individually configured BUG Fix incorrect change detection BUG Fix missing i18n files
112 lines
2.4 KiB
JavaScript
112 lines
2.4 KiB
JavaScript
/**
|
|
* plugin.js
|
|
*
|
|
* Released under LGPL License.
|
|
* Copyright (c) 1999-2015 Ephox Corp. All rights reserved
|
|
*
|
|
* License: http://www.tinymce.com/license
|
|
* Contributing: http://www.tinymce.com/contributing
|
|
*/
|
|
|
|
/*global tinymce:true */
|
|
|
|
tinymce.PluginManager.add('colorpicker', function(editor) {
|
|
function colorPickerCallback(callback, value) {
|
|
function setColor(value) {
|
|
var color = new tinymce.util.Color(value), rgb = color.toRgb();
|
|
|
|
win.fromJSON({
|
|
r: rgb.r,
|
|
g: rgb.g,
|
|
b: rgb.b,
|
|
hex: color.toHex().substr(1)
|
|
});
|
|
|
|
showPreview(color.toHex());
|
|
}
|
|
|
|
function showPreview(hexColor) {
|
|
win.find('#preview')[0].getEl().style.background = hexColor;
|
|
}
|
|
|
|
var win = editor.windowManager.open({
|
|
title: 'Color',
|
|
items: {
|
|
type: 'container',
|
|
layout: 'flex',
|
|
direction: 'row',
|
|
align: 'stretch',
|
|
padding: 5,
|
|
spacing: 10,
|
|
items: [
|
|
{
|
|
type: 'colorpicker',
|
|
value: value,
|
|
onchange: function() {
|
|
var rgb = this.rgb();
|
|
|
|
if (win) {
|
|
win.find('#r').value(rgb.r);
|
|
win.find('#g').value(rgb.g);
|
|
win.find('#b').value(rgb.b);
|
|
win.find('#hex').value(this.value().substr(1));
|
|
showPreview(this.value());
|
|
}
|
|
}
|
|
},
|
|
{
|
|
type: 'form',
|
|
padding: 0,
|
|
labelGap: 5,
|
|
defaults: {
|
|
type: 'textbox',
|
|
size: 7,
|
|
value: '0',
|
|
flex: 1,
|
|
spellcheck: false,
|
|
onchange: function() {
|
|
var colorPickerCtrl = win.find('colorpicker')[0];
|
|
var name, value;
|
|
|
|
name = this.name();
|
|
value = this.value();
|
|
|
|
if (name == "hex") {
|
|
value = '#' + value;
|
|
setColor(value);
|
|
colorPickerCtrl.value(value);
|
|
return;
|
|
}
|
|
|
|
value = {
|
|
r: win.find('#r').value(),
|
|
g: win.find('#g').value(),
|
|
b: win.find('#b').value()
|
|
};
|
|
|
|
colorPickerCtrl.value(value);
|
|
setColor(value);
|
|
}
|
|
},
|
|
items: [
|
|
{name: 'r', label: 'R', autofocus: 1},
|
|
{name: 'g', label: 'G'},
|
|
{name: 'b', label: 'B'},
|
|
{name: 'hex', label: '#', value: '000000'},
|
|
{name: 'preview', type: 'container', border: 1}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
onSubmit: function() {
|
|
callback('#' + this.toJSON().hex);
|
|
}
|
|
});
|
|
|
|
setColor(value);
|
|
}
|
|
|
|
if (!editor.settings.color_picker_callback) {
|
|
editor.settings.color_picker_callback = colorPickerCallback;
|
|
}
|
|
}); |