src/cm/media/js/lib/yui/yui_3.10.3/build/datatable-message/datatable-message-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('datatable-message', 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
Adds support for a message container to appear in the table.  This can be used
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
to indicate loading progress, lack of records, or any other communication
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
needed.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
@module datatable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
@submodule datatable-message
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
@since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
**/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
var Message;
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
_API docs for this extension are included in the DataTable class._
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
Adds support for a message container to appear in the table.  This can be used
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
to indicate loading progress, lack of records, or any other communication
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
needed.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
Features added to `Y.DataTable`, and made available for custom classes at
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
`Y.DataTable.Message`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
@class DataTable.Message
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
@for DataTable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
@since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
**/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
Y.namespace('DataTable').Message = Message = function () {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
Message.ATTRS = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
    Enables the display of messages in the table.  Setting this to false will
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
    prevent the message Node from being created and `showMessage` from doing
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
    anything.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
    @attribute showMessages
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
    @type {Boolean}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
    @default true
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
    showMessages: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
        value: true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
        validator: Y.Lang.isBoolean
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
Y.mix(Message.prototype, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
    Template used to generate the node that will be used to report messages.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
    @property MESSAGE_TEMPLATE
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
    @type {HTML}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
    @default <tbody class="{className}"><td class="{contentClass}" colspan="{colspan}"></td></tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
    MESSAGE_TEMPLATE: '<tbody class="{className}"><tr><td class="{contentClass}" colspan="{colspan}"></td></tr></tbody>',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
    Hides the message node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
    @method hideMessage
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
    @return {DataTable}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
    @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
    hideMessage: function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
        this.get('boundingBox').removeClass(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
            this.getClassName('message', 'visible'));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
        return this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
    },
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
    Display the message node and set its content to `message`.  If there is a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
    localized `strings` entry for the value of `message`, that string will be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
    used.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
    @method showMessage
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
    @param {String} message The message name or message itself to display
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
    @return {DataTable}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
    @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
    showMessage: function (message) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
        var content = this.getString(message) || message;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
        if (!this._messageNode) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
            this._initMessageNode();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
        if (this.get('showMessages')) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
            if (content) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
                this._messageNode.one(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
                    '.' + this.getClassName('message', 'content'))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
                    .setHTML(content);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
                this.get('boundingBox').addClass(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
                    this.getClassName('message','visible'));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
            } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
                // TODO: is this right?
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
                // If no message provided, remove the message node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
                this.hideMessage();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
        return this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
    },
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
    // Protected methods
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
    Updates the colspan of the `<td>` used to display the messages.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
    @method _afterMessageColumnsChange
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
    @param {EventFacade} e The columnsChange event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
    @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
    _afterMessageColumnsChange: function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
        var contentNode;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
        if (this._messageNode) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
            contentNode = this._messageNode.one(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
                '.' + this.getClassName('message', 'content'));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
            if (contentNode) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
                // FIXME: This needs to become a class extension plus a view or
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
                // plugin for the table view.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
                contentNode.set('colSpan', this._displayColumns.length);
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
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
    Relays to `_uiSetMessage` to hide or show the message node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
    @method _afterMessageDataChange
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
    @param {EventFacade} e The dataChange event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
    @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
    _afterMessageDataChange: function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
        this._uiSetMessage();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
    Removes the message node if `showMessages` is `false`, or relays to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
    `_uiSetMessage` if `true`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
    @method _afterShowMessagesChange
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
    @param {EventFacade} e The showMessagesChange event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
    @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
    _afterShowMessagesChange: function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
        if (e.newVal) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
            this._uiSetMessage(e);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
        } else if (this._messageNode) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
            this.get('boundingBox').removeClass(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
                this.getClassName('message', 'visible'));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
            this._messageNode.remove().destroy(true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
            this._messageNode = null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
    },
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
    Binds the events necessary to keep the message node in sync with the current
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
    table and configuration state.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
    @method _bindMessageUI
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
    @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
    _bindMessageUI: function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
        this.after(['dataChange', '*:add', '*:remove', '*:reset'],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
            Y.bind('_afterMessageDataChange', this));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
        this.after('columnsChange', Y.bind('_afterMessageColumnsChange', this));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
        this.after('showMessagesChange',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
            Y.bind('_afterShowMessagesChange', this));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
    Merges in the message related strings and hooks into the rendering cycle to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
    also render and bind the message node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
    @method initializer
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
    @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
    initializer: function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
        this._initMessageStrings();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
        if (this.get('showMessages')) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
            this.after('table:renderBody', Y.bind('_initMessageNode', this));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
        this.after(Y.bind('_bindMessageUI', this), this, 'bindUI');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
        this.after(Y.bind('_syncMessageUI', this), this, 'syncUI');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
    Creates the `_messageNode` property from the configured `MESSAGE_TEMPLATE`
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
    and inserts it before the `<table>`'s `<tbody>` node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
    @method _initMessageNode
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
    @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
    _initMessageNode: function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
        if (!this._messageNode) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
            this._messageNode = Y.Node.create(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
                Y.Lang.sub(this.MESSAGE_TEMPLATE, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
                    className: this.getClassName('message'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
                    contentClass: this.getClassName('message', 'content'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
                    colspan: this._displayColumns.length || 1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
                }));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
            this._tableNode.insertBefore(this._messageNode, this._tbodyNode);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
    Add the messaging related strings to the `strings` map.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
    @method _initMessageStrings
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
    @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
    _initMessageStrings: function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
        // Not a valueFn because other class extensions will want to add to it
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
        this.set('strings', Y.mix((this.get('strings') || {}),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
            Y.Intl.get('datatable-message')));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
    Node used to display messages from `showMessage`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
    @property _messageNode
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
    @type {Node}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
    @value `undefined` (not initially set)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
    //_messageNode: null,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
    Synchronizes the message UI with the table state.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
    @method _syncMessageUI
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
    @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
    _syncMessageUI: function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
        this._uiSetMessage();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
    Calls `hideMessage` or `showMessage` as appropriate based on the presence of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
    records in the `data` ModelList.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
    This is called when `data` is reset or records are added or removed.  Also,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
    if the `showMessages` attribute is updated.  In either case, if the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
    triggering event has a `message` property on the EventFacade, it will be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
    passed to `showMessage` (if appropriate).  If no such property is on the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
    facade, the `emptyMessage` will be used (see the strings).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
    @method _uiSetMessage
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
    @param {EventFacade} e The columnsChange event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
    @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
    _uiSetMessage: function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
        if (!this.data.size()) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
            this.showMessage((e && e.message) || 'emptyMessage');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
        } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
            this.hideMessage();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
if (Y.Lang.isFunction(Y.DataTable)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
    Y.Base.mix(Y.DataTable, [ Message ]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
}, '3.10.3', {"requires": ["datatable-base"], "lang": ["en", "fr", "es", "it"], "skinnable": true});