9 changed files with 231 additions and 40 deletions
@ -0,0 +1,23 @@
|
||||
//= require ckeditor/config
|
||||
//= require ckeditor/init
|
||||
|
||||
$('.i-ckeditor').each(function(){ |
||||
var a, b; |
||||
a = $(this), b = a.attr('id') || ('ckeditor' + (new Date).getTime()) |
||||
//<![CDATA[
|
||||
if (typeof CKEDITOR != 'undefined') { CKEDITOR.replace(b); } |
||||
//]]>
|
||||
}) |
||||
|
||||
$('.i-ckeditor-readonly').each(function(){ |
||||
var a, b; |
||||
a = $(this), b = a.attr('id') || ('ckeditor' + (new Date).getTime()) |
||||
var options = {}; |
||||
options.readOnly = true |
||||
options.toolbar = [ |
||||
{ name: 'document', items : [ 'Source', 'Maximize' ] } |
||||
] |
||||
options.resize_enabled = false; |
||||
|
||||
if (typeof CKEDITOR != 'undefined') { editor = CKEDITOR.replace(b, options); } |
||||
}) |
||||
@ -0,0 +1,117 @@
|
||||
//= require frameworks/main.ckeditor |
||||
|
||||
(function () { |
||||
$.cachedScript = function( url, options ) { |
||||
options = $.extend( options || {}, { |
||||
dataType: "script", |
||||
cache: true, |
||||
async: true, |
||||
url: url |
||||
}); |
||||
return $.ajaxq(url,options); |
||||
} |
||||
|
||||
$.fn.doesExist = function() { |
||||
return $(this).length > 0; |
||||
}; |
||||
|
||||
if($('.i-ckeditor').doesExist()){ |
||||
$.cachedScript("<%= asset_path 'frameworks/main.ckeditor.js' %>"); |
||||
} |
||||
if($('.i-ckeditor-readonly').doesExist()){ |
||||
$.cachedScript("<%= asset_path 'frameworks/main.ckeditor.js' %>"); |
||||
} |
||||
}) |
||||
|
||||
/* |
||||
Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved. |
||||
For licensing, see LICENSE.html or http://ckeditor.com/license |
||||
*/ |
||||
|
||||
CKEDITOR.editorConfig = function( config ) |
||||
{ |
||||
// Define changes to default configuration here. For example: |
||||
// config.language = 'fr'; |
||||
// config.uiColor = '#AADC6E'; |
||||
|
||||
/* Filebrowser routes */ |
||||
// The location of an external file browser, that should be launched when "Browse Server" button is pressed. |
||||
config.filebrowserBrowseUrl = "/ckeditor/attachment_files"; |
||||
|
||||
// The location of an external file browser, that should be launched when "Browse Server" button is pressed in the Flash dialog. |
||||
config.filebrowserFlashBrowseUrl = "/ckeditor/attachment_files"; |
||||
|
||||
// The location of a script that handles file uploads in the Flash dialog. |
||||
config.filebrowserFlashUploadUrl = "/ckeditor/attachment_files"; |
||||
|
||||
// The location of an external file browser, that should be launched when "Browse Server" button is pressed in the Link tab of Image dialog. |
||||
config.filebrowserImageBrowseLinkUrl = "/ckeditor/pictures"; |
||||
|
||||
// The location of an external file browser, that should be launched when "Browse Server" button is pressed in the Image dialog. |
||||
config.filebrowserImageBrowseUrl = "/ckeditor/pictures"; |
||||
|
||||
// The location of a script that handles file uploads in the Image dialog. |
||||
config.filebrowserImageUploadUrl = "/ckeditor/pictures"; |
||||
|
||||
// The location of a script that handles file uploads. |
||||
config.filebrowserUploadUrl = "/ckeditor/attachment_files"; |
||||
|
||||
// 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']); |
||||
} |
||||
} |
||||
}); |
||||
}; |
||||
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
Loading…
Reference in new issue