Added feature #13878: htmlArea RTE: Extjize the default non-TYPO3 link dialogue
authorStanislas Rolland <typo3@sjbr.ca>
Mon, 22 Mar 2010 04:46:15 +0000 (04:46 +0000)
committerStanislas Rolland <typo3@sjbr.ca>
Mon, 22 Mar 2010 04:46:15 +0000 (04:46 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@7141 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
typo3/sysext/rtehtmlarea/ChangeLog
typo3/sysext/rtehtmlarea/extensions/DefaultLink/class.tx_rtehtmlarea_defaultlink.php
typo3/sysext/rtehtmlarea/htmlarea/plugins/DefaultLink/default-link.js
typo3/sysext/rtehtmlarea/htmlarea/plugins/DefaultLink/locallang.xml
typo3/sysext/rtehtmlarea/htmlarea/plugins/DefaultLink/popups/link.html [deleted file]
typo3/sysext/rtehtmlarea/htmlarea/skins/default/htmlarea.css
typo3/sysext/t3skin/rtehtmlarea/htmlarea.css

index a662f09..1698df5 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2010-03-22  Stanislas Rolland  <typo3@sjbr.ca>
+
+       * Added feature #13878: htmlArea RTE: Extjize the default non-TYPO3 link dialogue
+
 2010-03-20  Stanislas Rolland  <typo3@sjbr.ca>
 
        * Added feature #13870: htmlArea RTE: Extjize the spell checker
index 7956a28..6e65008 100644 (file)
@@ -1,3 +1,7 @@
+2010-03-22  Stanislas Rolland  <typo3@sjbr.ca>
+
+       * Added feature #13878: htmlArea RTE: Extjize the default non-TYPO3 link dialogue
+
 2010-03-20  Stanislas Rolland  <typo3@sjbr.ca>
 
        * Added feature #13870: htmlArea RTE: Extjize the spell checker
index 9d18cdf..f94360a 100644 (file)
@@ -2,7 +2,7 @@
 /***************************************************************
 *  Copyright notice
 *
-*  (c) 2008-2009 Stanislas Rolland <stanislas.rolland(arobas)fructifor.ca>
+*  (c) 2008-2010 Stanislas Rolland <typo3(arobas)sjbr.ca>
 *  All rights reserved
 *
 *  This script is part of the Typo3 project. The Typo3 project is
@@ -24,7 +24,7 @@
 /**
  * Default Link extension for htmlArea RTE
  *
- * @author Stanislas Rolland <stanislas.rolland(arobas)fructifor.ca>
+ * @author Stanislas Rolland <typo3(arobas)sjbr.ca>
  *
  * TYPO3 SVN ID: $Id$
  *
@@ -43,9 +43,10 @@ class tx_rtehtmlarea_defaultlink extends tx_rtehtmlareaapi {
        protected $toolbar;                             // Reference to RTE toolbar array
        protected $LOCAL_LANG;                          // Frontend language array
 
-       protected $pluginButtons = 'link';
+       protected $pluginButtons = 'link, unlink';
        protected $convertToolbarForHtmlAreaArray = array (
-               'link'  => 'CreateLink',
+               'link'          => 'CreateLink',
+               'unlink'        => 'UnLink',
                );
 
        /**
index 055da6b..dcd9a65 100644 (file)
@@ -1,7 +1,7 @@
 /***************************************************************
 *  Copyright notice
 *
-*  (c) 2008-2009 Stanislas Rolland <typo3(arobas)sjbr.ca>
+*  (c) 2008-2010 Stanislas Rolland <typo3(arobas)sjbr.ca>
 *  All rights reserved
 *
 *  This script is part of the TYPO3 project. The TYPO3 project is
  * TYPO3 SVN ID: $Id$
  */
 DefaultLink = HTMLArea.Plugin.extend({
-       
-       constructor : function(editor, pluginName) {
+       constructor: function(editor, pluginName) {
                this.base(editor, pluginName);
        },
-       
        /*
         * This function gets called by the class constructor
         */
-       configurePlugin : function(editor) {
-               
+       configurePlugin: function(editor) {
                this.baseURL = this.editorConfiguration.baseURL;
                this.pageTSConfiguration = this.editorConfiguration.buttons.link;
                this.stripBaseUrl = this.pageTSConfiguration && this.pageTSConfiguration.stripBaseUrl && this.pageTSConfiguration.stripBaseUrl;
                this.showTarget = !(this.pageTSConfiguration && this.pageTSConfiguration.targetSelector && this.pageTSConfiguration.targetSelector.disabled);
-               
                /*
                 * Registering plugin "About" information
                 */
                var pluginInformation = {
-                       version         : "1.0",
-                       developer       : "Stanislas Rolland",
-                       developerUrl    : "http://www.sjbr.ca/",
-                       copyrightOwner  : "Stanislas Rolland",
-                       sponsor         : "SJBR",
-                       sponsorUrl      : "http://www.sjbr.ca/",
-                       license         : "GPL"
+                       version         : '2.0',
+                       developer       : 'Stanislas Rolland',
+                       developerUrl    : 'http://www.sjbr.ca/',
+                       copyrightOwner  : 'Stanislas Rolland',
+                       sponsor         : 'SJBR',
+                       sponsorUrl      : 'http://www.sjbr.ca/',
+                       license         : 'GPL'
                };
                this.registerPluginInformation(pluginInformation);
-               
                /*
-                * Registering the button
+                * Registering the buttons
                 */
-               var buttonId = "CreateLink";
-               var buttonConfiguration = {
-                       id              : buttonId,
-                       tooltip         : this.localize("createlink"),
-                       action          : "onButtonPress",
-                       hotKey          : (this.pageTSConfiguration ? this.pageTSConfiguration.hotKey : null),
-                       context         : "a",
-                       selection       : true,
-                       dialog          : true
-               };
-               this.registerButton(buttonConfiguration);
-               
+               var buttonList = this.buttonList, buttonId;
+               for (var i = 0; i < buttonList.length; ++i) {
+                       var button = buttonList[i];
+                       buttonId = button[0];
+                       var buttonConfiguration = {
+                               id              : buttonId,
+                               tooltip         : this.localize(buttonId.toLowerCase()),
+                               action          : "onButtonPress",
+                               hotKey          : (this.pageTSConfiguration ? this.pageTSConfiguration.hotKey : null),
+                               context         : button[1],
+                               selection       : button[2],
+                               dialog          : button[3]
+                       };
+                       this.registerButton(buttonConfiguration);
+               }
                return true;
-        },
-        
+       },
+       /*
+        * The list of buttons added by this plugin
+        */
+       buttonList: [
+               ['CreateLink', 'a,img', false, true],
+               ['UnLink', 'a', false, false]
+       ],
+       /*
+        * Sets of default configuration values for dialogue form fields
+        */
+       configDefaults: {
+               combo: {
+                       editable: true,
+                       typeAhead: true,
+                       triggerAction: 'all',
+                       forceSelection: true,
+                       mode: 'local',
+                       valueField: 'value',
+                       displayField: 'text',
+                       helpIcon: true,
+                       tpl: '<tpl for="."><div ext:qtip="{value}" style="text-align:left;font-size:11px;" class="x-combo-list-item">{text}</div></tpl>'
+               }
+       },
        /*
         * This function gets called when the button was pressed.
         *
@@ -88,106 +108,255 @@ DefaultLink = HTMLArea.Plugin.extend({
         *
         * @return      boolean         false if action is completed
         */
-       onButtonPress : function(editor, id, target) {
-               
+       onButtonPress: function(editor, id, target) {
                        // Could be a button or its hotkey
                var buttonId = this.translateHotKey(id);
                buttonId = buttonId ? buttonId : id;
-               
-               if (buttonId === "UnLink") {
-                       this.unLink();
-                       return false;
+               this.editor.focus();
+               this.link = this.editor.getParentElement();
+               var el = HTMLArea.getElementObject(this.link, 'a');
+               if (el && /^a$/i.test(el.nodeName)) {
+                       this.link = el;
                }
-               
-               var paramameters = null;
-               this.editor.focusEditor();
-               var link = this.editor.getParentElement();
-               var el = HTMLArea.getElementObject(link, "a");
-               if (el != null && /^a$/i.test(el.nodeName)) link = el;
-               if (!link || !/^a$/i.test(link.nodeName)) {
-                       link = null;
-                       var selection = this.editor._getSelection();
-                       if (this.editor._selectionEmpty(selection)) {
-                               alert(this.localize("Select some text"));
-                               return;
-                       }
-                       paramameters = {
-                               f_href : "",
-                               f_title : "",
-                               f_target : ""
-                       };
-               } else {
-                       paramameters = {
-                               f_href   : (HTMLArea.is_ie && this.stripBaseUrl) ? this.stripBaseURL(link.href) : link.getAttribute("href"),
-                               f_title  : link.title,
-                               f_target : link.target
-                       };
+               if (!this.link || !/^a$/i.test(this.link.nodeName)) {
+                       this.link = null;
+               }
+               switch (buttonId) {
+                       case 'UnLink':
+                               this.unLink();
+                               break;
+                       case 'CreateLink':
+                               if (!this.link) {
+                                       var selection = this.editor._getSelection();
+                                       if (this.editor._selectionEmpty(selection)) {
+                                               Ext.MessageBox.alert('', this.localize('Select some text'));
+                                               break;
+                                       }
+                                       this.parameters = {
+                                               href:   'http://',
+                                               title:  '',
+                                               target: ''
+                                       };
+                               } else {
+                                       this.parameters = {
+                                               href:   (Ext.isIE && this.stripBaseUrl) ? this.stripBaseURL(this.link.href) : this.link.getAttribute('href'),
+                                               title:  this.link.title,
+                                               target: this.link.target
+                                       };
+                               }
+                                       // Open dialogue window
+                               this.openDialogue(
+                                       buttonId,
+                                       'Insert/Modify Link',
+                                       this.getWindowDimensions(
+                                               {
+                                                       width: 470,
+                                                       height:150
+                                               },
+                                               buttonId
+                                       )
+                               );
+                               break;
                }
-               
-               this.link = link;
-               this.dialog = this.openDialog("CreateLink", this.makeUrlFromPopupName("link"), "createLink", paramameters, {width:570, height:150});
                return false;
        },
-       
        /*
-        * Create the link
+        * Open the dialogue window
         *
-        * @param       object          param: the returned values
+        * @param       string          buttonId: the button id
+        * @param       string          title: the window title
+        * @param       integer         dimensions: the opening width of the window
         *
-        * @return      boolean         false
+        * @return      void
         */
-       createLink : function(param) {
-               if (typeof(param) != "undefined" && typeof(param.f_href) != "undefined") {
-                       var a = this.link;
-                       if(!a) {
-                               this.editor._doc.execCommand("CreateLink", false, param.f_href);
-                               a = this.editor.getParentElement();
-                               if (HTMLArea.is_gecko && !/^a$/i.test(a.nodeName)) {
-                                       var selection = this.editor._getSelection();
-                                       var range = this.editor._createRange(selection);
-                                       try {
-                                               a = range.startContainer.childNodes[range.startOffset];
-                                       } catch(e) {}
+       openDialogue: function (buttonId, title, dimensions) {
+               this.dialog = new Ext.Window({
+                       title: this.localize(title),
+                       cls: 'htmlarea-window',
+                       border: false,
+                       width: dimensions.width,
+                       height: 'auto',
+                               // As of ExtJS 3.1, JS error with IE when the window is resizable
+                       resizable: !Ext.isIE,
+                       iconCls: buttonId,
+                       listeners: {
+                               afterrender: {
+                                       fn: this.onAfterRender,
+                                       scope: this
+                               },
+                               close: {
+                                       fn: this.onClose,
+                                       scope: this
                                }
-                       } else {
-                               var href = param.f_href.trim();
-                               this.editor.selectNodeContents(a);
-                               if (href == "") {
-                                       this.editor._doc.execCommand("Unlink", false, null);
-                                       this.dialog.close();
-                                       return false;
-                               } else {
-                                       a.href = href;
+                       },
+                       items: [{
+                                       xtype: 'fieldset',
+                                       defaultType: 'textfield',
+                                       labelWidth: 100,
+                                       defaults: {
+                                               helpIcon: true,
+                                               width: 250,
+                                               labelSeparator: ''
+                                       },
+                                       items: [{
+                                                       itemId: 'href',
+                                                       name: 'href',
+                                                       fieldLabel: this.localize('URL:'),
+                                                       value: this.parameters.href,
+                                                       helpTitle: this.localize('link_href_tooltip')
+                                               },{
+                                                       itemId: 'title',
+                                                       name: 'title',
+                                                       fieldLabel: this.localize('Title (tooltip):'),
+                                                       value: this.parameters.title,
+                                                       helpTitle: this.localize('link_title_tooltip')
+                                               }, Ext.apply({
+                                                       xtype: 'combo',
+                                                       fieldLabel: this.localize('Target:'),
+                                                       itemId: 'target',
+                                                       helpTitle: this.localize('link_target_tooltip'),
+                                                       store: new Ext.data.ArrayStore({
+                                                               autoDestroy:  true,
+                                                               fields: [ { name: 'text'}, { name: 'value'}],
+                                                               data: [
+                                                                       [this.localize('target_none'), ''],
+                                                                       [this.localize('target_blank'), '_blank'],
+                                                                       [this.localize('target_self'), '_self'],
+                                                                       [this.localize('target_top'), '_top'],
+                                                                       [this.localize('target_other'), '_other']
+                                                               ]
+                                                       }),
+                                                       listeners: {
+                                                               select: {
+                                                                       fn: this.onTargetSelect
+                                                               }
+                                                       },
+                                                       hidden: !this.showTarget
+                                                       }, this.configDefaults['combo'])
+                                               ,{
+                                                       itemId: 'frame',
+                                                       name: 'frame',
+                                                       fieldLabel: this.localize('frame'),
+                                                       helpTitle: this.localize('frame_help'),
+                                                       hideLabel: true,
+                                                       hidden: true
+                                               }
+                                       ]
                                }
+                       ],
+                       buttons: [
+                               this.buildButtonConfig('OK', this.onOK),
+                               this.buildButtonConfig('Cancel', this.onCancel)
+                       ]
+               });
+               this.show();
+       },
+       /*
+        * Handler invoked after the dialogue window is rendered
+        * If the current target is not in the available options, show frame field
+        */
+       onAfterRender: function (dialog) {
+               var targetCombo = dialog.find('itemId', 'target')[0];
+               if (!targetCombo.hidden && this.parameters.target) {
+                       var frameField = dialog.find('itemId', 'frame')[0];
+                       var index = targetCombo.getStore().find('value', this.parameters.target);
+                       if (index == -1) {
+                                       // The target is a specific frame name
+                               targetCombo.setValue('_other');
+                               frameField.setValue(this.parameters.target);
+                               frameField.show();
+                               frameField.label.show();
+                       } else {
+                               targetCombo.setValue(this.parameters.target);
                        }
-                       if (!(a && /^a$/i.test(a.nodeName))) {
-                               this.dialog.close();
-                               return false;
-                       }
-                       if (typeof(param.f_target) != "undefined") a.target = param.f_target.trim();
-                       if (typeof(param.f_title) != "undefined") a.title = param.f_title.trim();
-                       this.editor.selectNodeContents(a);
-                       this.dialog.close();
                }
+       },
+       /*
+        * Handler invoked when a target is selected
+        */
+       onTargetSelect: function (combo, record) {
+               var frameField = combo.ownerCt.getComponent('frame');
+               if (record.get('value') == '_other') {
+                       frameField.show();
+                       frameField.label.show();
+                       frameField.focus();
+               } else if (!frameField.hidden) {
+                       frameField.hide();
+                       frameField.label.hide();
+               }
+       },
+       /*
+        * Handler invoked when the OK button is clicked
+        */
+       onOK: function () {
+               var href = this.dialog.find('itemId', 'href')[0].getValue().trim();
+               if (!href) {
+                       Ext.MessageBox.alert('', this.localize('link_url_required'));
+                       this.dialog.find('itemId', 'href').focus();
+                       return false;
+               }
+               var title = this.dialog.find('itemId', 'title')[0].getValue();
+               var target = this.dialog.find('itemId', 'target')[0].getValue();
+               if (target == '_other') {
+                       target = this.dialog.find('itemId', 'frame')[0].getValue().trim();
+               }
+               this.createLink(href, title, target);
+               this.close();
                return false;
        },
-       
        /*
-        * Unlink the selection.
+        * Create the link
         *
-        * @param       object          link: the link element to unlink
+        * @param       string          href: the value of href attribute
+        * @param       string          title: the value of title attribute
+        * @param       string          target: the value of target attribute
         *
-        * @return      boolean         false
+        * @return      void
         */
-       unLink : function () {
-               this.editor.focusEditor();
-               var node = this.editor.getParentElement();
-               var el = HTMLArea.getElementObject(node, "a");
-               if (el != null && /^a$/i.test(el.nodeName)) node = el;
-               if (node != null && /^a$/i.test(node.nodeName)) this.editor.selectNode(node);
-               this.editor._doc.execCommand("Unlink", false, "");
+       createLink: function (href, title, target) {
+               var a = this.link;
+               if (!a) {
+                       this.editor.focus();
+                       this.restoreSelection();
+                       this.editor.document.execCommand('CreateLink', false, href);
+                       a = this.editor.getParentElement();
+                       if (!Ext.isIE && !/^a$/i.test(a.nodeName)) {
+                               var range = this.editor._createRange(this.editor._getSelection());
+                               if (range.startContainer.nodeType != 3) {
+                                       a = range.startContainer.childNodes[range.startOffset];
+                               } else {
+                                       a = range.startContainer.nextSibling;
+                               }
+                               this.editor.selectNode(a);
+                       }
+                       var el = HTMLArea.getElementObject(a, 'a');
+                       if (el != null && /^a$/i.test(el.nodeName)) {
+                               a = el;
+                       }
+               } else {
+                       a.href = href;
+               }
+               if (a && /^a$/i.test(a.nodeName)) {
+                       a.title = title;
+                       a.target = target;
+                       if (Ext.isOpera) {
+                               this.editor.selectNodeContents(a, false);
+                       } else {
+                               this.editor.selectNodeContents(a);
+                       }
+               }
+       },
+       /*
+        * Unlink the selection
+        */
+       unLink: function () {
+               this.editor.focus();
+               this.restoreSelection();
+               if (this.link) {
+                       this.editor.selectNode(this.link);
+               }
+               this.editor.document.execCommand('Unlink', false, '');
        },
-       
        /*
         * IE makes relative links absolute. This function reverts this conversion.
         *
@@ -195,16 +364,23 @@ DefaultLink = HTMLArea.Plugin.extend({
         *
         * @return      string          the url stripped out of the baseurl
         */
-       stripBaseURL : function(url) {
+       stripBaseURL: function (url) {
                var baseurl = this.baseURL;
                        // strip to last directory in case baseurl points to a file
                baseurl = baseurl.replace(/[^\/]+$/, '');
                var basere = new RegExp(baseurl);
-               url = url.replace(basere, "");
+               url = url.replace(basere, '');
                        // strip host-part of URL which is added by MSIE to links relative to server root
-               baseurl = baseurl.replace(/^(https?:\/\/[^\/]+)(.*)$/, '$1');
+               baseurl = baseurl.replace(/^(https?:\/\/[^\/]+)(.*)$/, "$1");
                basere = new RegExp(baseurl);
-               return url.replace(basere, "");
+               return url.replace(basere, '');
+       },
+       /*
+        * This function gets called when the toolbar is updated
+        */
+       onUpdateToolbar: function (button, mode, selectionEmpty, ancestors) {
+               if (mode === 'wysiwyg' && this.editor.isEditable() && button.itemId === 'CreateLink') {
+                       button.setDisabled(selectionEmpty && !button.isInContext(mode, selectionEmpty, ancestors));
+               }
        }
 });
-
index d9c4116..31a27da 100644 (file)
@@ -8,6 +8,8 @@
        <data type="array">
                <languageKey index="default" type="array">
                        <label index="Select some text">You need to select some text before creating a link</label>
+                       <label index="frame">Frame name:</label>
+                       <label index="frame_help">Enter the name of the frame to be used as target</label>
                </languageKey>
        </data>
        <orig_hash type="array">
diff --git a/typo3/sysext/rtehtmlarea/htmlarea/plugins/DefaultLink/popups/link.html b/typo3/sysext/rtehtmlarea/htmlarea/plugins/DefaultLink/popups/link.html
deleted file mode 100644 (file)
index c3185df..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-<!DOCTYPE html
-     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!--
-/***************************************************************
-*  Copyright notice
-*
-*  (c) 2002-2004 interactivetools.com, inc.
-*  (c) 2003-2004 dynarch.com
-*  (c) 2004-2008 Stanislas Rolland <typo3(arobas)sjbr.ca>
-*  All rights reserved
-*
-*  This script is part of the TYPO3 project. The TYPO3 project is
-*  free software; you can redistribute it and/or modify
-*  it under the terms of the GNU General Public License as published by
-*  the Free Software Foundation; either version 2 of the License, or
-*  (at your option) any later version.
-*
-*  The GNU General Public License can be found at
-*  http://www.gnu.org/copyleft/gpl.html.
-*  A copy is found in the textfile GPL.txt and important notices to the license
-*  from the author is found in LICENSE.txt distributed with these scripts.
-*
-*
-*  This script is distributed in the hope that it will be useful,
-*  but WITHOUT ANY WARRANTY; without even the implied warranty of
-*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*  GNU General Public License for more details.
-*
-*  This script is a modified version of a script published under the htmlArea License.
-*  A copy of the htmlArea License may be found in the textfile HTMLAREA_LICENSE.txt.
-*
-*  This copyright notice MUST APPEAR in all copies of the script!
-***************************************************************/
-/*
- * Insert Link window for TYPO3 htmlArea RTE
- *
- * TYPO3 SVN ID: $Id$
- */
---> 
-<html>
-<head>
-       <title>Insert Image</title>
-       <meta http-equiv="Content-Style-Type" content="text/css" />
-       <script type="text/javascript">
-               /*<![CDATA[*/
-               <!--
-               var dialog = window.opener.HTMLArea.Dialog.DefaultLink;
-
-               function onTargetChanged() {
-                       var f = document.getElementById("f_other_target");
-                       if (this.value == "_other") {
-                               f.style.visibility = "visible";
-                               f.select();
-                               f.focus();
-                       } else {
-                               f.style.visibility = "hidden";
-                       }
-               };
-
-               function Init() {
-                       dialog.initialize(false, true);
-                       var param = dialog.arguments;
-                       var target_select = document.getElementById("f_target");
-                       if (param) {
-                               document.getElementById("f_href").value = param["f_href"];
-                               document.getElementById("f_title").value = param["f_title"];
-                               if (dialog.plugin.showTarget) {
-                                       HTMLArea.selectValue(target_select, param["f_target"]);
-                                       if (target_select.value != param.f_target) {
-                                               var opt = document.createElement("option");
-                                               opt.value = param.f_target;
-                                               opt.innerHTML = opt.value;
-                                               target_select.appendChild(opt);
-                                               opt.selected = true;
-                                       }
-                                       var opt = document.createElement("option");
-                                       opt.value = "_other";
-                                       opt.innerHTML = dialog.plugin.localize("target_other");
-                                       target_select.appendChild(opt);
-                                       target_select.onchange = onTargetChanged;
-                               } else {
-                                       document.getElementById("target").style.display = "none";
-                               }
-                       }
-                       document.getElementById("f_href").focus();
-                       document.getElementById("f_href").select();
-                       dialog.resize();
-                       return false;
-               };
-               
-               function onOK() {
-                       var required = { "f_href" : "link_url_required" };
-                       for (var i in required) {
-                               var el = document.getElementById(i);
-                               if (!el.value) {
-                                       alert(dialog.plugin.localize(required[i]));
-                                       el.focus();
-                                       return false;
-                               }
-                       }
-                       // pass data back to the calling window
-                       var fields = ["f_href", "f_title", "f_target" ];
-                       var param = new Object();
-                       for (var i in fields) {
-                               var id = fields[i];
-                               var el = document.getElementById(id);
-                               param[id] = el.value;
-                       }
-                       if (param.f_target == "_other") param.f_target = document.getElementById("f_other_target").value;
-                       dialog.performAction(param);
-                       return false;
-               };
-               
-               function onCancel() {
-                       dialog.close();
-                       return false;
-               };
-               // -->
-               /*]]>*/
-       </script>
-</head>
-<body class="popupwin hrmlarea-default-link" onload="Init()">
-<div id="content">
-<div class="title">Insert/Modify Link</div>
-<form action="" method="get">
-       <div id="url">
-               <label for="f_href" class="field">URL:</label>
-               <input type="text" id="f_href" size="65" title="link_href_tooltip" />
-       </div>
-       <div class="space"></div>
-       <div id="title">
-               <label for="f_title" class="field">Title (tooltip):</label>
-               <input type="text" id="f_title" size="65" title="link_title_tooltip" />
-       </div>
-       <div class="space"></div>
-       <div id="target">
-               <label for="f_target" class="field">Target:</label>
-               <select id="f_target" title="link_target_tooltip">
-                       <option value="">target_none</option>
-                       <option value="_blank">target_blank</option>
-                       <option value="_self">target_self</option>
-                       <option value="_top">target_top</option>
-               </select>
-               <input type="text" name="f_other_target" id="f_other_target" size="10" style="visibility: hidden" />
-       </div>
-       <div class="buttons">
-               <button type="button" name="ok" onclick="return onOK();">OK</button>
-               <button type="button" name="cancel" onclick="return onCancel();">Cancel</button>
-       </div>
-       <br />
-</form>
-</div>
-</body>
-</html>
index b99ada8..ea92fd9 100644 (file)
        width:300px;height:200px;
        border:1px solid gray;margin:5px 0px;
 }
-/* Selectors for the Default Link dialogue */
-.htmlarea-default-link #url, .htmlarea-default-link #title {
-       white-space:nowrap;
-}
 /* Selectors for the InsertSmiley plugin */
 .htmlarea-window .emoticon-array {
        padding: 10px;
index a78b39a..1ab117b 100644 (file)
        width:300px;height:200px;
        border:1px solid gray;margin:5px 0px;
 }
-/* Selectors for the Default Link dialogue */
-.htmlarea-default-link #url, .htmlarea-default-link #title {
-       white-space:nowrap;
-}
 /* Selectors for the InsertSmiley plugin */
 .htmlarea-window .emoticon-array {
        padding: 10px;