src/cm/media/js/lib/yui/yui_3.10.3/build/createlink-base/createlink-base-debug.js
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 525 89ef5ed3c48b
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
/*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
YUI 3.10.3 (build 2fb5187)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
Copyright 2013 Yahoo! Inc. All rights reserved.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
Licensed under the BSD License.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
http://yuilibrary.com/license/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
*/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
YUI.add('createlink-base', function (Y, NAME) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
     * Adds prompt style link creation. Adds an override for the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
     * <a href="Plugin.ExecCommand.html#method_COMMANDS.createlink">createlink execCommand</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
     * @class Plugin.CreateLinkBase
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
     * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
     * @submodule createlink-base
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
     * @module editor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
    var CreateLinkBase = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
    * Strings used by the plugin
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
    * @property STRINGS
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
    * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
    CreateLinkBase.STRINGS = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
            /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
            * String used for the Prompt
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
            * @property PROMPT
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
            * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
            */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
            PROMPT: 'Please enter the URL for the link to point to:',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
            /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
            * String used as the default value of the Prompt
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
            * @property DEFAULT
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
            * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
            */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
            DEFAULT: 'http://'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
    Y.namespace('Plugin');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
    Y.Plugin.CreateLinkBase = CreateLinkBase;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
    Y.mix(Y.Plugin.ExecCommand.COMMANDS, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
        * Override for the createlink method from the <a href="Plugin.CreateLinkBase.html">CreateLinkBase</a> plugin.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
        * @for ExecCommand
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
        * @method COMMANDS.createlink
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
        * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
        * @param {String} cmd The command executed: createlink
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
        * @return {Node} Node instance of the item touched by this command.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
        createlink: function(cmd) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
            var inst = this.get('host').getInstance(), out, a, sel, holder,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
                url = prompt(CreateLinkBase.STRINGS.PROMPT, CreateLinkBase.STRINGS.DEFAULT);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
            if (url) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
                holder = inst.config.doc.createElement('div');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
                url = url.replace(/"/g, '').replace(/'/g, ''); //Remove single & double quotes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
                url = inst.config.doc.createTextNode(url);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
                holder.appendChild(url);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
                url = holder.innerHTML;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
                Y.log('Adding link: ' + url, 'info', 'createLinkBase');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
                this.get('host')._execCommand(cmd, url);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
                sel = new inst.EditorSelection();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
                out = sel.getSelected();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
                if (!sel.isCollapsed && out.size()) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
                    //We have a selection
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
                    a = out.item(0).one('a');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
                    if (a) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
                        out.item(0).replace(a);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
                    if (Y.UA.gecko) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
                        if (a.get('parentNode').test('span')) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
                            if (a.get('parentNode').one('br.yui-cursor')) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
                                a.get('parentNode').insert(a, 'before');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
                            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
                } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
                    //No selection, insert a new node..
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
                    this.get('host').execCommand('inserthtml', '<a href="' + url + '">' + url + '</a>');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
            return a;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
}, '3.10.3', {"requires": ["editor-base"]});