All files / web/bundles/pimdatagrid/js/datagrid/grid-views model.js

28.57% Statements 2/7
0% Branches 0/2
25% Functions 1/4
28.57% Lines 2/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 541123x       1123x                                                                                                  
define(['backbone', 'underscore'],
    function (Backbone, _) {
        'use strict';
 
        return Backbone.Model.extend({
            /** @property */
            idAttribute: 'name',
 
            /** @property */
            defaults: {
                filters: [],
                sorters: []
            },
 
            /** @property */
            directions: {
                "ASC": "-1",
                "DESC": "1"
            },
 
            /**
             * Initializer.
             *
             * @param {Object} data
             * @param {String} data.name required
             * @param {Array}  data.sorters
             * @param {Array}  data.filters
             */
            initialize: function (data) {
                if (!data.name) {
                    throw new TypeError("'name' is required");
                }
 
                _.each(data.sorters, _.bind(function (direction, key) {
                    data.sorters[key] = this.directions[direction];
                }, this));
            },
 
            /**
             * Convert model to format needed for applying greed state
             *
             * @returns {}
             */
            toGridState: function () {
                return {
                    filters:  this.get('filters'),
                    sorters:  this.get('sorters'),
                    gridView: this.get('name')
                };
            }
        });
    }
);