createlink-base.js revision dbf2c770f8178b12e8fe3c36bfa29df58ef13959
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass /**
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * Adds prompt style link creation. Adds an override for the <a href="Plugin.ExecCommand.html#method_COMMANDS.createlink">createlink execCommand</a>.
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @module editor
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @submodule createlink-base
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass */
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass /**
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * Adds prompt style link creation. Adds an override for the <a href="Plugin.ExecCommand.html#method_COMMANDS.createlink">createlink execCommand</a>.
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @class CreateLinkBase
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @static
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @namespace Plugin
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass */
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass var CreateLinkBase = {};
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass /**
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * Strings used by the plugin
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @property STRINGS
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @static
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass */
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass CreateLinkBase.STRINGS = {
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass /**
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * String used for the Prompt
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @property PROMPT
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @static
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass */
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass PROMPT: 'Please enter the URL for the link to point to:',
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass /**
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * String used as the default value of the Prompt
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @property DEFAULT
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @static
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass */
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass DEFAULT: 'http://'
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass };
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass Y.namespace('Plugin');
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass Y.Plugin.CreateLinkBase = CreateLinkBase;
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass Y.mix(Y.Plugin.ExecCommand.COMMANDS, {
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass /**
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * Override for the createlink method from the <a href="Plugin.CreateLinkBase.html">CreateLinkBase</a> plugin.
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @for ExecCommand
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @method COMMANDS.createlink
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @static
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @param {String} cmd The command executed: createlink
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @return {Node} Node instance of the item touched by this command.
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass */
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass createlink: function(cmd) {
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass var inst = this.get('host').getInstance(), out, a,
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass url = prompt(CreateLinkBase.STRINGS.PROMPT, CreateLinkBase.STRINGS.DEFAULT);
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass if (url) {
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass Y.log('Adding link: ' + url, 'info', 'createLinkBase');
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass this.get('host')._execCommand(cmd, url);
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass out = (new inst.Selection()).getSelected();
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass a = out.item(0).one('a');
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass out.item(0).replace(a);
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass }
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass return a;
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass }
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass });
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass