mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
8f23fa99a5
The 'admin' module will be split off from 'framework', where 'framework' only provides (mostly) frontend-agnostic PHP classes. For example, HTMLEditorField.php has a TinyMCEConfig.php driver, but doesn't come with its own JS includes.
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');
|
|
}
|
|
}
|
|
});
|
|
}
|
|
});
|