-/* © 2011 Benoît Pin, MINES ParisTech */
-
-
-(function(){
-
-var reSize = /getResizedImage\?size=(\d+)_(\d+)$/;
-
-function updateImageSizeUrlParameters(img) {
- if (reSize.test(img.src)){
- var matches = reSize.exec(img.src);
- var srcWidth = parseInt(matches[1]);
- var srcHeight = parseInt(matches[2]);
-
- var imgWidth = parseInt((img.style.width) ? img.style.width : img.width);
- var imgHeight = parseInt((img.style.height) ? img.style.height : img.height);
-
- if ((imgWidth && imgHeight) && srcWidth != imgWidth && srcHeight != imgHeight) {
- var newUrl = img.getAttribute('src', 2).replace(reSize, 'getResizedImage?size=' + imgWidth + '_' + imgHeight);
- img.width = imgWidth;
- img.height = imgHeight;
- img.src = newUrl;
- }
- }
-}
-
-function openPlinnImageDialog(path, editor) {
- var winOptions = "location=no,menubar=no,toolbar=no,dependent=yes,dialog=yes,minimizable=no,modal=yes,alwaysRaised=yes" +
- ",resizable=yes" +
- ",width=801" +
- ",height=600";
- //",top=" + iTop +
- //",left=" + iLeft ;
-
- var win = open(path + 'dialog/plinn_image.html', 'PlinnImageDialog', winOptions);
- win.dialogArguments = new Object();
- win.dialogArguments.editor = editor;
- win.dialogArguments.pluginPath = path;
- win.dialogArguments.CKEDITOR = CKEDITOR;
-}
-
-
-CKEDITOR.plugins.add( 'plinn_image',
-{
- init : function( editor )
- {
- /* Add listener on getData event to compute images
- src attributes before saving data.
- */
- editor.on('instanceReady', function(){
- editor.on('getData',
- function(evt) {
- var tmpDiv = document.createElement('div');
- tmpDiv.innerHTML = evt.data.dataValue;
- var images = tmpDiv.getElementsByTagName('IMG');
- for (var i = 0 ; i < images.length ; i++)
- updateImageSizeUrlParameters(images[i]);
- evt.data.dataValue = tmpDiv.innerHTML;
- }
- );
- });
- var pluginPath = this.path;
- var allowed = 'img[alt,!src]{border-style,border-width,float,height,margin,margin-bottom,margin-left,margin-right,margin-top,width}';
- var required = 'img[alt,src]';
- var command = editor.addCommand('plinn_image',
- {
- exec : function(editor){openPlinnImageDialog(pluginPath, editor);},
- allowedContent: allowed,
- requiredContent: required
- }
- );
-
- editor.ui.addButton('PlinnImage',
- {
- label : editor.lang.common.image,
- icon : pluginPath + 'dialog/plinn_image.png',
- command : 'plinn_image'
- });
- }
-
-});
-
-})();