Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/oacsimage/editor_plugin.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/oacsimage/editor_plugin.js,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/oacsimage/editor_plugin.js 25 Jan 2008 21:44:07 -0000 1.1 +++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/oacsimage/editor_plugin.js 18 May 2009 16:11:07 -0000 1.2 @@ -1,146 +1,83 @@ - /** * $Id$ * * @author Moxiecode - * @copyright Copyright � 2004-2007, Moxiecode Systems AB, All rights reserved. + * @copyright Copyright � 2004-2008, Moxiecode Systems AB, All rights reserved. */ -/* Import plugin specific language pack */ -// tinyMCE.importPluginLanguagePack('advimage'); +(function() { + // Load plugin specific language pack + tinymce.PluginManager.requireLangPack('oacsimage'); -var TinyMCE_OacsImagePlugin = { - getInfo : function() { - return { - longname : 'Oacs image', - author : 'SolutionGrove, Moxiecde Systems AB', - authorurl : 'http://tinymce.moxiecode.com', - infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_oacsimage.html', - version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion - }; - }, + tinymce.create('tinymce.plugins.OacsImage', { + /** + * Initializes the plugin, this will be executed after the plugin has been created. + * This call is done before the editor instance has finished it's initialization so use the onInit event + * of the editor instance to intercept that event. + * + * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in. + * @param {string} url Absolute URL to where the plugin is located. + */ + init : function(ed, url) { + // Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('mceExample'); + ed.addCommand('mceOacsImage', function() { + var elm = tinyMCE.activeEditor.selection.getNode(); + if (elm != null && ed.dom.getAttrib(elm, 'class').indexOf('mceItem') != -1) + return true; - getControlHTML : function(cn) { - switch (cn) { - case "image": - return tinyMCE.getButtonHTML(cn, 'lang_image_desc', '{$themeurl}/images/image.gif', 'mceOacsImage'); - } + ed.windowManager.open({ + url:'/acs-templating/scripts/xinha/attach-image', + width: 380, + height: 450, + movable: true, + inline: true}); - return ""; - }, + return true; - execCommand : function(editor_id, element, command, user_interface, value) { - switch (command) { - case "mceOacsImage": - var template = new Array(); + }); - template['file'] = '/acs-templating/scripts/xinha/attach-image'; - template['width'] = 500; - template['height'] = 400; + // Register example button + ed.addButton('image', { + title : 'OacsImage.desc', + cmd : 'mceOacsImage' + }); + // Add a node change handler, selects the button in the UI when a image is selected + ed.onNodeChange.add(function(ed, cm, n) { + cm.setActive('_advimage',n.nameName == "IMG"); + }); + }, + /** + * Creates control instances based in the incomming name. This method is normally not + * needed since the addButton method of the tinymce.Editor class is a more easy way of adding buttons + * but you sometimes need to create more complex controls like listboxes, split buttons etc then this + * method can be used to create those. + * + * @param {String} n Name of the control to create. + * @param {tinymce.ControlManager} cm Control manager to use inorder to create new control. + * @return {tinymce.ui.Control} New control instance or null if no control was created. + */ + createControl : function(n, cm) { + return null; + }, - var inst = tinyMCE.getInstanceById(editor_id); - var elm = inst.getFocusElement(); - - if (elm != null && tinyMCE.getAttrib(elm, 'class').indexOf('mceItem') != -1) - return true; - - tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes"}); - - return true; + /** + * Returns information about the plugin as a name/value array. + * The current keys are longname, author, authorurl, infourl and version. + * + * @return {Object} Name/value array containing information about the plugin. + */ + getInfo : function() { + return { + longname : 'Oacs image', + author : 'SolutionGrove, Moxiecde Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_oacsimage.html', + version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion + }; } + }); - return false; - }, - - cleanup : function(type, content) { - switch (type) { - case "insert_to_editor_dom": - var imgs = content.getElementsByTagName("img"), src, i; - for (i=0; i