silverstripe-framework/thirdparty/tinymce/plugins/nonbreaking/plugin.js
Damian Mooyman f20ad434ce API Update TinyMCE to 4.x
API Allow HtmlEditorField to be individually configured
BUG Fix incorrect change detection
BUG Fix missing i18n files
2016-02-23 10:10:02 +13:00

54 lines
1.2 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('nonbreaking', function(editor) {
var setting = editor.getParam('nonbreaking_force_tab');
editor.addCommand('mceNonBreaking', function() {
editor.insertContent(
(editor.plugins.visualchars && editor.plugins.visualchars.state) ?
'<span class="mce-nbsp">&nbsp;</span>' : '&nbsp;'
);
editor.dom.setAttrib(editor.dom.select('span.mce-nbsp'), 'data-mce-bogus', '1');
});
editor.addButton('nonbreaking', {
title: 'Nonbreaking space',
cmd: 'mceNonBreaking'
});
editor.addMenuItem('nonbreaking', {
text: 'Nonbreaking space',
cmd: 'mceNonBreaking',
context: 'insert'
});
if (setting) {
var spaces = +setting > 1 ? +setting : 3; // defaults to 3 spaces if setting is true (or 1)
editor.on('keydown', function(e) {
if (e.keyCode == 9) {
if (e.shiftKey) {
return;
}
e.preventDefault();
for (var i = 0; i < spaces; i++) {
editor.execCommand('mceNonBreaking');
}
}
});
}
});