diff -r c72b545f1304 -r 67bd3121a12e includes/clientside/tinymce/plugins/advlink/editor_plugin_src.js --- a/includes/clientside/tinymce/plugins/advlink/editor_plugin_src.js Wed Dec 26 00:37:26 2007 -0500 +++ b/includes/clientside/tinymce/plugins/advlink/editor_plugin_src.js Thu Dec 27 22:09:33 2007 -0500 @@ -1,88 +1,58 @@ /** - * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $ + * $Id: editor_plugin_src.js 482 2007-12-10 16:51:29Z spocke $ * * @author Moxiecode * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved. */ -/* Import plugin specific language pack */ -tinyMCE.importPluginLanguagePack('advlink'); +(function() { + tinymce.create('tinymce.plugins.AdvancedLinkPlugin', { + init : function(ed, url) { + this.editor = ed; -var TinyMCE_AdvancedLinkPlugin = { - getInfo : function() { - return { - longname : 'Advanced link', - author : 'Moxiecode Systems AB', - authorurl : 'http://tinymce.moxiecode.com', - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink', - version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion - }; - }, - - initInstance : function(inst) { - inst.addShortcut('ctrl', 'k', 'lang_advlink_desc', 'mceAdvLink'); - }, + // Register commands + ed.addCommand('mceAdvLink', function() { + var se = ed.selection; - getControlHTML : function(cn) { - switch (cn) { - case "link": - return tinyMCE.getButtonHTML(cn, 'lang_link_desc', '{$themeurl}/images/link.gif', 'mceAdvLink'); - } - - return ""; - }, + // No selection and not in link + if (se.isCollapsed() && se.getNode().nodeName != 'A') + return; - execCommand : function(editor_id, element, command, user_interface, value) { - switch (command) { - case "mceAdvLink": - var anySelection = false; - var inst = tinyMCE.getInstanceById(editor_id); - var focusElm = inst.getFocusElement(); - var selectedText = inst.selection.getSelectedText(); - - if (tinyMCE.selectedElement) - anySelection = (tinyMCE.selectedElement.nodeName.toLowerCase() == "img") || (selectedText && selectedText.length > 0); - - if (anySelection || (focusElm != null && focusElm.nodeName == "A")) { - var template = new Array(); + ed.windowManager.open({ + file : url + '/link.htm', + width : 480 + ed.getLang('advlink.delta_width', 0), + height : 400 + ed.getLang('advlink.delta_height', 0), + inline : 1 + }, { + plugin_url : url + }); + }); - template['file'] = '../../plugins/advlink/link.htm'; - template['width'] = 480; - template['height'] = 400; - - // Language specific width and height addons - template['width'] += tinyMCE.getLang('lang_advlink_delta_width', 0); - template['height'] += tinyMCE.getLang('lang_advlink_delta_height', 0); + // Register buttons + ed.addButton('link', { + title : 'advlink.link_desc', + cmd : 'mceAdvLink' + }); - tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes"}); - } + ed.addShortcut('ctrl+k', 'advlink.advlink_desc', 'mceAdvLink'); - return true; - } - - return false; - }, + ed.onNodeChange.add(function(ed, cm, n, co) { + cm.setDisabled('link', co && n.nodeName != 'A'); + cm.setActive('link', n.nodeName == 'A'); + }); + }, - handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) { - if (node == null) - return; - - do { - if (node.nodeName == "A" && tinyMCE.getAttrib(node, 'href') != "") { - tinyMCE.switchClass(editor_id + '_advlink', 'mceButtonSelected'); - return true; - } - } while ((node = node.parentNode)); + getInfo : function() { + return { + longname : 'Advanced link', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); - if (any_selection) { - tinyMCE.switchClass(editor_id + '_advlink', 'mceButtonNormal'); - return true; - } - - tinyMCE.switchClass(editor_id + '_advlink', 'mceButtonDisabled'); - - return true; - } -}; - -tinyMCE.addPlugin("advlink", TinyMCE_AdvancedLinkPlugin); + // Register plugin + tinymce.PluginManager.add('advlink', tinymce.plugins.AdvancedLinkPlugin); +})(); \ No newline at end of file