diff -r 322d0feea350 -r 89ef5ed3c48b src/cm/media/js/lib/yui/yui_3.10.3/build/createlink-base/createlink-base.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cm/media/js/lib/yui/yui_3.10.3/build/createlink-base/createlink-base.js Tue Jul 16 14:29:46 2013 +0200 @@ -0,0 +1,92 @@ +/* +YUI 3.10.3 (build 2fb5187) +Copyright 2013 Yahoo! Inc. All rights reserved. +Licensed under the BSD License. +http://yuilibrary.com/license/ +*/ + +YUI.add('createlink-base', function (Y, NAME) { + + + /** + * Adds prompt style link creation. Adds an override for the + * createlink execCommand. + * @class Plugin.CreateLinkBase + * @static + * @submodule createlink-base + * @module editor + */ + + var CreateLinkBase = {}; + /** + * Strings used by the plugin + * @property STRINGS + * @static + */ + CreateLinkBase.STRINGS = { + /** + * String used for the Prompt + * @property PROMPT + * @static + */ + PROMPT: 'Please enter the URL for the link to point to:', + /** + * String used as the default value of the Prompt + * @property DEFAULT + * @static + */ + DEFAULT: 'http://' + }; + + Y.namespace('Plugin'); + Y.Plugin.CreateLinkBase = CreateLinkBase; + + Y.mix(Y.Plugin.ExecCommand.COMMANDS, { + /** + * Override for the createlink method from the CreateLinkBase plugin. + * @for ExecCommand + * @method COMMANDS.createlink + * @static + * @param {String} cmd The command executed: createlink + * @return {Node} Node instance of the item touched by this command. + */ + createlink: function(cmd) { + var inst = this.get('host').getInstance(), out, a, sel, holder, + url = prompt(CreateLinkBase.STRINGS.PROMPT, CreateLinkBase.STRINGS.DEFAULT); + + if (url) { + holder = inst.config.doc.createElement('div'); + url = url.replace(/"/g, '').replace(/'/g, ''); //Remove single & double quotes + url = inst.config.doc.createTextNode(url); + holder.appendChild(url); + url = holder.innerHTML; + + + this.get('host')._execCommand(cmd, url); + sel = new inst.EditorSelection(); + out = sel.getSelected(); + if (!sel.isCollapsed && out.size()) { + //We have a selection + a = out.item(0).one('a'); + if (a) { + out.item(0).replace(a); + } + if (Y.UA.gecko) { + if (a.get('parentNode').test('span')) { + if (a.get('parentNode').one('br.yui-cursor')) { + a.get('parentNode').insert(a, 'before'); + } + } + } + } else { + //No selection, insert a new node.. + this.get('host').execCommand('inserthtml', '' + url + ''); + } + } + return a; + } + }); + + + +}, '3.10.3', {"requires": ["editor-base"]});