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