Version 3.18.1
Show:

File: datatable/js/foot.js

            /**
            View class responsible for rendering the `<tfoot>` section of a table. Can be
            used as the default `footerView` for `Y.DataTable.Base` and `Y.DataTable`
            classes.
            
            @module datatable
            @submodule datatable-foot
            @since 3.11.0
            **/
            
            
            Y.namespace('DataTable').FooterView = Y.Base.create('tableFooter', Y.View, [], {
                // -- Instance properties -------------------------------------------------
            
                /**
                HTML templates used to create the `<tfoot>` containing the table footers.
            
                @property TFOOT_TEMPLATE
                @type {String}
                @default '<tfoot class="{className}"/>'
                @since 3.11.0
                **/
                TFOOT_TEMPLATE: '<tfoot class="{className}"/>',
            
                // -- Public methods ------------------------------------------------------
            
                /**
                Returns the generated CSS classname based on the input.  If the `host`
                attribute is configured, it will attempt to relay to its `getClassName`
                or use its static `NAME` property as a string base.
            
                If `host` is absent or has neither method nor `NAME`, a CSS classname
                will be generated using this class's `NAME`.
            
                @method getClassName
                @param {String} token* Any number of token strings to assemble the
                    classname from.
                @return {String}
                @protected
                @since 3.11.0
                **/
                getClassName: function () {
                    // TODO: add attribute with setter? to host to use property this.host
                    // for performance
                    var host = this.host,
                        NAME = (host && host.constructor.NAME) ||
                                this.constructor.NAME;
            
                    if (host && host.getClassName) {
                        return host.getClassName.apply(host, arguments);
                    } else {
                        return Y.ClassNameManager.getClassName
                            .apply(Y.ClassNameManager,
                                   [NAME].concat(Y.Array(arguments, 0, true)));
                    }
                },
            
                /**
                Creates the `<tfoot>` Node and inserts it after the `<thead>` Node.
            
                @method render
                @return {FooterView} The instance
                @chainable
                @since 3.11.0
                **/
                render: function () {
                    var tfoot    = this.tfootNode ||
                                    (this.tfootNode = this._createTFootNode());
            
                    if (this.host && this.host._theadNode) {
                        this.host._theadNode.insert(tfoot, 'after');
                    }
            
                    return this;
                },
            
                /**
                Creates the `<tfoot>` node that will store the footer rows and cells.
            
                @method _createTFootNode
                @return {Node}
                @protected
                @since 3.11.0
                **/
                _createTFootNode: function () {
                    return Y.Node.create(Y.Lang.sub(this.TFOOT_TEMPLATE, {
                        className: this.getClassName('foot')
                    }));
                },
            
                /**
                Initializes the instance. Reads the following configuration properties:
            
                  * `host`    - The object to serve as source of truth for column info
            
                @method initializer
                @param {Object} config Configuration data
                @protected
                @since 3.11.0
                **/
                initializer: function (config) {
                    this.host  = (config && config.host);
                }
            
            
            
            });