src/cm/media/js/lib/yui/yui_3.10.3/build/pjax/pjax-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('pjax', 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
Provides seamless, gracefully degrading Pjax (pushState + Ajax) functionality,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
which makes it easy to progressively enhance standard links on the page so that
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
they can be loaded normally in old browsers, or via Ajax (with HTML5 history
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
support) in newer browsers.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
@module pjax
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
@main
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
@since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
**/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
A stack of middleware which forms the default Pjax route.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
@property defaultRoute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
@type Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
@static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
@since 3.7.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
**/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
var defaultRoute = ['loadContent', '_defaultRoute'],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
Fired when an error occurs while attempting to load a URL via Ajax.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
@event error
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
@param {Object} content Content extracted from the response, if any.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
    @param {Node} content.node A `Y.Node` instance for a document fragment
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
        containing the extracted HTML content.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
    @param {String} [content.title] The title of the HTML page, if any,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
        extracted using the `titleSelector` attribute. If `titleSelector` is
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
        not set or if a title could not be found, this property will be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
        `undefined`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
@param {String} responseText Raw Ajax response text.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
@param {Number} status HTTP status code for the Ajax response.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
@param {String} url The absolute URL that failed to load.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
@since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
**/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
EVT_ERROR = 'error',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
Fired when a URL is successfully loaded via Ajax.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
@event load
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
@param {Object} content Content extracted from the response, if any.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
    @param {Node} content.node A `Y.Node` instance for a document fragment
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
        containing the extracted HTML content.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
    @param {String} [content.title] The title of the HTML page, if any,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
        extracted using the `titleSelector` attribute. If `titleSelector` is
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
        not set or if a title could not be found, this property will be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
        `undefined`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
@param {String} responseText Raw Ajax response text.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
@param {Number} status HTTP status code for the Ajax response.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
@param {String} url The absolute URL that was loaded.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
@since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
**/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
EVT_LOAD = 'load';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
Provides seamless, gracefully degrading Pjax (pushState + Ajax) functionality,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
which makes it easy to progressively enhance standard links on the page so that
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
they can be loaded normally in old browsers, or via Ajax (with HTML5 history
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
support) in newer browsers.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
@class Pjax
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
@extends Router
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
@uses PjaxBase
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
@uses PjaxContent
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
@constructor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
@param {Object} [config] Config attributes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
@since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
**/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
Y.Pjax = Y.Base.create('pjax', Y.Router, [Y.PjaxBase, Y.PjaxContent], {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
    // -- Lifecycle Methods ----------------------------------------------------
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
    initializer: function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
        this.publish(EVT_ERROR, {defaultFn: this._defCompleteFn});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
        this.publish(EVT_LOAD,  {defaultFn: this._defCompleteFn});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
    // -- Protected Methods ----------------------------------------------------
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
    Default Pjax route callback. Fires either the `load` or `error` event based
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
    on the status of the `Y.io` request made by the `loadContent()` middleware.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
    **Note:** This route callback assumes that it's called after the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
    `loadContent()` middleware.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
    @method _defaultRoute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
    @param {Object} req Request object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
    @param {Object} res Response Object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
    @param {Function} next Function to pass control to the next route callback.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
    @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
    @see Y.Pjax.defaultRoute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
    _defaultRoute: function (req, res, next) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
        var ioResponse = res.ioResponse,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
            status     = ioResponse.status,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
            event      = status >= 200 && status < 300 ? EVT_LOAD : EVT_ERROR;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
        this.fire(event, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
            content     : res.content,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
            responseText: ioResponse.responseText,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
            status      : status,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
            url         : req.ioURL
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
        next();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
    // -- Event Handlers -------------------------------------------------------
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
    Default event handler for both the `error` and `load` events. Attempts to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
    insert the loaded content into the `container` node and update the page's
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
    title.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
    @method _defCompleteFn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
    @param {EventFacade} e
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
    @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
    _defCompleteFn: function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
        var container = this.get('container'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
            content   = e.content;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
        if (container && content.node) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
            container.setHTML(content.node);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
        if (content.title && Y.config.doc) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
            Y.config.doc.title = content.title;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
}, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
    ATTRS: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
        Node into which content should be inserted when a page is loaded via
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
        Pjax. This node's existing contents will be removed to make way for the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
        new content.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
        If not set, loaded content will not be automatically inserted into the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
        page.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
        @attribute container
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
        @type Node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
        @default null
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
        @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
        **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
        container: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
            value : null,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
            setter: Y.one
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
        // Inherited from Router and already documented there.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
        routes: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
            value: [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
                {path: '*', callbacks: defaultRoute}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
            ]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
    // Documented towards the top of this file.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
    defaultRoute: defaultRoute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
}, '3.10.3', {"requires": ["pjax-base", "pjax-content"]});