(function () {
tinymce.PluginManager.add('add_tinymce_blockquote_cite_snippets_plugin', function (editor, url) {
/* right click function */
editor.on('contextmenu', function (e) {
e.preventDefault();
blockquoteciteopendialog(e);
});
/* double click function */
editor.on('DblClick', function (e) {
e.preventDefault();
blockquoteciteopendialog(e);
});
/* open dialog on special click functions */
function blockquoteciteopendialog(e) {
var data = {
target: $(e.target)
};
var isValidElement = false;
var currentNode = tinyMCE.activeEditor.selection.getNode();
if (e.target.nodeName == 'blockquote' || e.target.nodeName == 'BLOCKQUOTE') {
if ($(e.target).attr('cite') !== undefined) {
data.cite = $(e.target).attr("cite")
}
isValidElement = true;
} else if ($($(editor.dom.getParent(tinyMCE.activeEditor.selection.getNode(), 'BLOCKQUOTE'))).is('BLOCKQUOTE')) {
if ($($(editor.dom.getParent(tinyMCE.activeEditor.selection.getNode(), 'BLOCKQUOTE'))).attr('cite') !== undefined) {
data.cite = $($(editor.dom.getParent(tinyMCE.activeEditor.selection.getNode(), 'BLOCKQUOTE'))).attr('cite');
}
data.target = $($(editor.dom.getParent(tinyMCE.activeEditor.selection.getNode(), 'BLOCKQUOTE')));
isValidElement = true;
}
if (isValidElement == true) {
editor.windowManager.open({
title: 'Blockquote Cite',
/* width: 400, */
data: data,
$: $,
editor: editor,
body: [
{
type: 'container',
name: 'container',
id: 'err-message',
html: 'Please insert your cite text. This can be a author name or url to the blockquotes source.
'
},
{
name: 'cite',
type: 'textbox',
label: 'Cite text:',
value: data.cite,
onchange: function () {
data.cite = this.value();
}
}
],
onSubmit: function (e) {
data = tinymce.extend(data, e.data);
if (data.cite.length == 0) {
$(data.target).removeAttr("cite");
} else {
$(data.target).attr("cite", data.cite);
}
}
});
}
}
});
})();