mirror of
https://github.com/ACSPRI/queXS
synced 2024-04-02 12:12:16 +00:00
Can define centre and project information in administrative menu
Able to edit questionnaires RS text and name Can disable/enable questionnaires for viewing in admin interface RS text entered via new CKEditor including ability to insert tokens/template replace text Added setting table and associated getter/setter functions (currently only used for centre information but could add more)
This commit is contained in:
126
include/ckeditor/_source/plugins/fakeobjects/plugin.js
Normal file
126
include/ckeditor/_source/plugins/fakeobjects/plugin.js
Normal file
@@ -0,0 +1,126 @@
|
||||
/*
|
||||
Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
|
||||
For licensing, see LICENSE.html or http://ckeditor.com/license
|
||||
*/
|
||||
|
||||
(function()
|
||||
{
|
||||
var htmlFilterRules =
|
||||
{
|
||||
elements :
|
||||
{
|
||||
$ : function( element )
|
||||
{
|
||||
var attributes = element.attributes,
|
||||
realHtml = attributes && attributes[ 'data-cke-realelement' ],
|
||||
realFragment = realHtml && new CKEDITOR.htmlParser.fragment.fromHtml( decodeURIComponent( realHtml ) ),
|
||||
realElement = realFragment && realFragment.children[ 0 ];
|
||||
|
||||
// If we have width/height in the element, we must move it into
|
||||
// the real element.
|
||||
if ( realElement && element.attributes[ 'data-cke-resizable' ] )
|
||||
{
|
||||
var style = element.attributes.style;
|
||||
|
||||
if ( style )
|
||||
{
|
||||
// Get the width from the style.
|
||||
var match = /(?:^|\s)width\s*:\s*(\d+)/i.exec( style ),
|
||||
width = match && match[1];
|
||||
|
||||
// Get the height from the style.
|
||||
match = /(?:^|\s)height\s*:\s*(\d+)/i.exec( style );
|
||||
var height = match && match[1];
|
||||
|
||||
if ( width )
|
||||
realElement.attributes.width = width;
|
||||
|
||||
if ( height )
|
||||
realElement.attributes.height = height;
|
||||
}
|
||||
}
|
||||
|
||||
return realElement;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
CKEDITOR.plugins.add( 'fakeobjects',
|
||||
{
|
||||
requires : [ 'htmlwriter' ],
|
||||
|
||||
afterInit : function( editor )
|
||||
{
|
||||
var dataProcessor = editor.dataProcessor,
|
||||
htmlFilter = dataProcessor && dataProcessor.htmlFilter;
|
||||
|
||||
if ( htmlFilter )
|
||||
htmlFilter.addRules( htmlFilterRules );
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
||||
CKEDITOR.editor.prototype.createFakeElement = function( realElement, className, realElementType, isResizable )
|
||||
{
|
||||
var lang = this.lang.fakeobjects,
|
||||
label = lang[ realElementType ] || lang.unknown;
|
||||
|
||||
var attributes =
|
||||
{
|
||||
'class' : className,
|
||||
src : CKEDITOR.getUrl( 'images/spacer.gif' ),
|
||||
'data-cke-realelement' : encodeURIComponent( realElement.getOuterHtml() ),
|
||||
'data-cke-real-node-type' : realElement.type,
|
||||
alt : label,
|
||||
title : label,
|
||||
align : realElement.getAttribute( 'align' ) || ''
|
||||
};
|
||||
|
||||
if ( realElementType )
|
||||
attributes[ 'data-cke-real-element-type' ] = realElementType;
|
||||
|
||||
if ( isResizable )
|
||||
attributes[ 'data-cke-resizable' ] = isResizable;
|
||||
|
||||
return this.document.createElement( 'img', { attributes : attributes } );
|
||||
};
|
||||
|
||||
CKEDITOR.editor.prototype.createFakeParserElement = function( realElement, className, realElementType, isResizable )
|
||||
{
|
||||
var lang = this.lang.fakeobjects,
|
||||
label = lang[ realElementType ] || lang.unknown,
|
||||
html;
|
||||
|
||||
var writer = new CKEDITOR.htmlParser.basicWriter();
|
||||
realElement.writeHtml( writer );
|
||||
html = writer.getHtml();
|
||||
|
||||
var attributes =
|
||||
{
|
||||
'class' : className,
|
||||
src : CKEDITOR.getUrl( 'images/spacer.gif' ),
|
||||
'data-cke-realelement' : encodeURIComponent( html ),
|
||||
'data-cke-real-node-type' : realElement.type,
|
||||
alt : label,
|
||||
title : label,
|
||||
align : realElement.attributes.align || ''
|
||||
};
|
||||
|
||||
if ( realElementType )
|
||||
attributes[ 'data-cke-real-element-type' ] = realElementType;
|
||||
|
||||
if ( isResizable )
|
||||
attributes[ 'data-cke-resizable' ] = isResizable;
|
||||
|
||||
return new CKEDITOR.htmlParser.element( 'img', attributes );
|
||||
};
|
||||
|
||||
CKEDITOR.editor.prototype.restoreRealElement = function( fakeElement )
|
||||
{
|
||||
if ( fakeElement.data( 'cke-real-node-type' ) != CKEDITOR.NODE_ELEMENT )
|
||||
return null;
|
||||
|
||||
return CKEDITOR.dom.element.createFromHtml(
|
||||
decodeURIComponent( fakeElement.data( 'cke-realelement' ) ),
|
||||
this.document );
|
||||
};
|
||||
Reference in New Issue
Block a user