Allowing every format is way more than what we initially intended. I've only added h2 and h3 because h1 is set somewhere else in the page (like the title), and h4, h5 and h6 are usually not necessary.
102 lines
4.1 KiB
JavaScript
102 lines
4.1 KiB
JavaScript
/*
|
|
Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
|
|
For licensing, see LICENSE.html or http://ckeditor.com/license
|
|
*/
|
|
|
|
CKEDITOR.editorConfig = function( config )
|
|
{
|
|
config.filebrowserBrowseUrl = "/ckeditor/attachment_files";
|
|
config.filebrowserFlashBrowseUrl = "/ckeditor/attachment_files";
|
|
config.filebrowserFlashUploadUrl = "/ckeditor/attachment_files";
|
|
config.filebrowserImageBrowseLinkUrl = "/ckeditor/pictures";
|
|
config.filebrowserImageBrowseUrl = "/ckeditor/pictures";
|
|
config.filebrowserImageUploadUrl = "/ckeditor/pictures";
|
|
config.filebrowserUploadUrl = "/ckeditor/attachment_files";
|
|
|
|
config.allowedContent = true;
|
|
config.format_tags = "p;h2;h3";
|
|
|
|
// Rails CSRF token
|
|
config.filebrowserParams = function(){
|
|
var csrf_token, csrf_param, meta,
|
|
metas = document.getElementsByTagName('meta'),
|
|
params = new Object();
|
|
|
|
for ( var i = 0 ; i < metas.length ; i++ ){
|
|
meta = metas[i];
|
|
|
|
switch(meta.name) {
|
|
case "csrf-token":
|
|
csrf_token = meta.content;
|
|
break;
|
|
case "csrf-param":
|
|
csrf_param = meta.content;
|
|
break;
|
|
default:
|
|
continue;
|
|
}
|
|
}
|
|
|
|
if (csrf_param !== undefined && csrf_token !== undefined) {
|
|
params[csrf_param] = csrf_token;
|
|
}
|
|
|
|
return params;
|
|
};
|
|
|
|
config.addQueryString = function( url, params ){
|
|
var queryString = [];
|
|
|
|
if ( !params ) {
|
|
return url;
|
|
} else {
|
|
for ( var i in params )
|
|
queryString.push( i + "=" + encodeURIComponent( params[ i ] ) );
|
|
}
|
|
|
|
return url + ( ( url.indexOf( "?" ) != -1 ) ? "&" : "?" ) + queryString.join( "&" );
|
|
};
|
|
|
|
// Integrate Rails CSRF token into file upload dialogs (link, image, attachment and flash)
|
|
CKEDITOR.on( 'dialogDefinition', function( ev ){
|
|
// Take the dialog name and its definition from the event data.
|
|
var dialogName = ev.data.name;
|
|
var dialogDefinition = ev.data.definition;
|
|
var content, upload;
|
|
|
|
if (CKEDITOR.tools.indexOf(['link', 'image', 'attachment', 'flash'], dialogName) > -1) {
|
|
content = (dialogDefinition.getContents('Upload') || dialogDefinition.getContents('upload'));
|
|
upload = (content == null ? null : content.get('upload'));
|
|
|
|
if (upload && upload.filebrowser && upload.filebrowser['params'] === undefined) {
|
|
upload.filebrowser['params'] = config.filebrowserParams();
|
|
upload.action = config.addQueryString(upload.action, upload.filebrowser['params']);
|
|
}
|
|
}
|
|
});
|
|
|
|
// Toolbar groups configuration.
|
|
config.toolbar = [
|
|
{ name: 'document', groups: [ 'mode', 'document', 'doctools' ], items: [ 'Source'] },
|
|
{ name: 'clipboard', groups: [ 'clipboard', 'undo' ], items: [ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ] },
|
|
// { name: 'editing', groups: [ 'find', 'selection', 'spellchecker' ], items: [ 'Find', 'Replace', '-', 'SelectAll', '-', 'Scayt' ] },
|
|
// { name: 'forms', items: [ 'Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton', 'HiddenField' ] },
|
|
{ name: 'links', items: [ 'Link', 'Unlink', 'Anchor' ] },
|
|
{ name: 'insert', items: [ 'Image', 'Flash', 'Table', 'HorizontalRule', 'SpecialChar' ] },
|
|
{ name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ], items: [ 'NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'Blockquote', 'CreateDiv', '-', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock' ] },
|
|
'/',
|
|
{ name: 'styles', items: [ 'Styles', 'Format', 'Font', 'FontSize' ] },
|
|
{ name: 'colors', items: [ 'TextColor', 'BGColor' ] },
|
|
{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ], items: [ 'Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript', '-', 'RemoveFormat' ] }
|
|
];
|
|
|
|
config.toolbar_mini = [
|
|
{ name: 'paragraph', groups: [ 'list' ], items: [ 'NumberedList', 'BulletedList' ] },
|
|
{ name: 'links', items: [ 'Link', 'Unlink' ] },
|
|
{ name: 'styles', items: [ 'Format' ] },
|
|
{ name: 'insert', items: [ 'Image' ] },
|
|
{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ], items: [ 'Bold', 'Italic', 'Underline', 'Strike' ] }
|
|
];
|
|
config.toolbar = "mini";
|
|
};
|