diff -r d334a616c023 -r e16a97fb364a src/cm/media/js/lib/yui/yui3-3.15.0/build/createlink-base/createlink-base-debug.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cm/media/js/lib/yui/yui3-3.15.0/build/createlink-base/createlink-base-debug.js Mon Mar 10 15:19:48 2014 +0100 @@ -0,0 +1,86 @@ +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 Plugin.ExecCommand.COMMANDS + * @method 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; + + Y.log('Adding link: ' + url, 'info', 'createLinkBase'); + + 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; + } + }); + + + +}, '@VERSION@', {"requires": ["editor-base"]});