mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
54 lines
1.2 KiB
JavaScript
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"> </span>' : ' '
|
||
|
);
|
||
|
|
||
|
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');
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
});
|