mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
66 lines
1.6 KiB
JavaScript
66 lines
1.6 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('emoticons', function(editor, url) {
|
||
|
var emoticons = [
|
||
|
["cool", "cry", "embarassed", "foot-in-mouth"],
|
||
|
["frown", "innocent", "kiss", "laughing"],
|
||
|
["money-mouth", "sealed", "smile", "surprised"],
|
||
|
["tongue-out", "undecided", "wink", "yell"]
|
||
|
];
|
||
|
|
||
|
function getHtml() {
|
||
|
var emoticonsHtml;
|
||
|
|
||
|
emoticonsHtml = '<table role="list" class="mce-grid">';
|
||
|
|
||
|
tinymce.each(emoticons, function(row) {
|
||
|
emoticonsHtml += '<tr>';
|
||
|
|
||
|
tinymce.each(row, function(icon) {
|
||
|
var emoticonUrl = url + '/img/smiley-' + icon + '.gif';
|
||
|
|
||
|
emoticonsHtml += '<td><a href="#" data-mce-url="' + emoticonUrl + '" data-mce-alt="' + icon + '" tabindex="-1" ' +
|
||
|
'role="option" aria-label="' + icon + '"><img src="' +
|
||
|
emoticonUrl + '" style="width: 18px; height: 18px" role="presentation" /></a></td>';
|
||
|
});
|
||
|
|
||
|
emoticonsHtml += '</tr>';
|
||
|
});
|
||
|
|
||
|
emoticonsHtml += '</table>';
|
||
|
|
||
|
return emoticonsHtml;
|
||
|
}
|
||
|
|
||
|
editor.addButton('emoticons', {
|
||
|
type: 'panelbutton',
|
||
|
panel: {
|
||
|
role: 'application',
|
||
|
autohide: true,
|
||
|
html: getHtml,
|
||
|
onclick: function(e) {
|
||
|
var linkElm = editor.dom.getParent(e.target, 'a');
|
||
|
|
||
|
if (linkElm) {
|
||
|
editor.insertContent(
|
||
|
'<img src="' + linkElm.getAttribute('data-mce-url') + '" alt="' + linkElm.getAttribute('data-mce-alt') + '" />'
|
||
|
);
|
||
|
|
||
|
this.hide();
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
tooltip: 'Emoticons'
|
||
|
});
|
||
|
});
|