96 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /*##################################################|*/
 | |
| /* #CMS.CKEDITOR# */
 | |
| (function($) {
 | |
| // CMS.$ will be passed for $
 | |
| $(document).ready(function () {
 | |
| 	/*!
 | |
| 	 * CNS.CKEditor
 | |
| 	 * @version: 1.1.0
 | |
| 	 * @description: Adds cms specific plugins to CKEditor
 | |
| 	 */
 | |
| 	CMS.CKEditor = {
 | |
| 
 | |
| 		options: {
 | |
| 			// ckeditor default settings, will be overwritten by CKEDITOR_SETTINGS
 | |
| 			'language': 'en',
 | |
| 			'skin': 'moono',
 | |
| 			'toolbar_CMS': [
 | |
| 				['Undo', 'Redo'],
 | |
| 				['cmsplugins', '-', 'ShowBlocks'],
 | |
| 				['Format', 'Styles'],
 | |
| 				['TextColor', 'BGColor', '-', 'PasteText', 'PasteFromWord'],
 | |
| 				['Maximize', ''],
 | |
| 				'/',
 | |
| 				['Bold', 'Italic', 'Underline', '-', 'Subscript', 'Superscript', '-', 'RemoveFormat'],
 | |
| 				['JustifyLeft', 'JustifyCenter', 'JustifyRight'],
 | |
| 				['HorizontalRule'],
 | |
| 				['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'Table'],
 | |
| 				['Source']
 | |
| 			],
 | |
| 			'toolbar_HTMLField': [
 | |
| 				['Undo', 'Redo'],
 | |
| 				['ShowBlocks'],
 | |
| 				['Format', 'Styles'],
 | |
| 				['TextColor', 'BGColor', '-', 'PasteText', 'PasteFromWord'],
 | |
| 				['Maximize', ''],
 | |
| 				'/',
 | |
| 				['Bold', 'Italic', 'Underline', '-', 'Subscript', 'Superscript', '-', 'RemoveFormat'],
 | |
| 				['JustifyLeft', 'JustifyCenter', 'JustifyRight'],
 | |
| 				['HorizontalRule'],
 | |
| 				['Link', 'Unlink'],
 | |
| 				['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'Table'],
 | |
| 				['Source']
 | |
| 			],
 | |
| 
 | |
| 			'allowedContent': true,
 | |
| 			'toolbarCanCollapse': false,
 | |
| 			'extraPlugins': 'cmsplugins'
 | |
| 		},
 | |
| 
 | |
| 		init: function (container, options, settings) {
 | |
| 			if ($('#' + container).length > 0) {
 | |
| 				this.container = $('#' + container);
 | |
| 				// add additional settings to options
 | |
| 				this.options.toolbar = settings.toolbar;
 | |
| 				this.options = $.extend(false, {
 | |
| 					'settings': settings
 | |
| 				}, this.options, options);
 | |
| 
 | |
| 				// add additional plugins (autoloads plugins.js)
 | |
| 				CKEDITOR.plugins.addExternal('cmsplugins', settings.static_url + '/ckeditor_plugins/cmsplugins/');
 | |
| 
 | |
| 				// render ckeditor
 | |
| 				this.editor = CKEDITOR.replace(container, this.options);
 | |
| 
 | |
| 				// add additional styling
 | |
| 				CKEDITOR.on('instanceReady', $.proxy(CMS.CKEditor, 'setup'));
 | |
| 			}
 | |
| 		},
 | |
| 
 | |
| 		// setup is called after ckeditor has been initialized
 | |
| 		setup: function () {
 | |
| 			// auto maximize modal if alone in a modal
 | |
| 			if (this._isAloneInModal()) {
 | |
| 				this.editor.execCommand('maximize');
 | |
| 			}
 | |
| 
 | |
| 			// add css tweks to the editor
 | |
| 			this.styles();
 | |
| 		},
 | |
| 
 | |
| 		styles: function () {
 | |
| 			// add styling to source and fullscreen view
 | |
| 			$('.cke_button__maximize, .cke_button__source').parent()
 | |
| 				.css('margin-right', 0).parent()
 | |
| 				.css('float', 'right');
 | |
| 		},
 | |
| 
 | |
| 		_isAloneInModal: function () {
 | |
| 			// return true if the ckeditor is alone in a modal popup
 | |
| 			return this.container.parents('body.djangocms_text_ckeditor-text').length > 0;
 | |
| 		}
 | |
| 
 | |
| 	};
 | |
| 
 | |
| });
 | |
| })(CMS.$);
 |