All files / web/bundles/pimuser/js/fields default-grid-views.ts

100% Statements 24/24
50% Branches 1/2
100% Functions 7/7
100% Lines 21/21

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 54 55 56 57 58 59 60 6116x 16x 16x 16x             16x 18x       18x   18x           18x 18x       17x               16x 6x 6x 2x                   2x 2x 2x       6x   16x   16x  
import * as $ from "jquery";
import BaseView = require('pimui/js/view/base');
import DefaultProductGridView = require('pimuser/js/fields/default-product-grid-view');
const Routing = require('routing');
 
/**
 * @author    Pierre Allard <pierre.allard@akeneo.com>
 * @copyright 2018 Akeneo SAS (http://www.akeneo.com)
 * @license   http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
 */
class DefaultGridView extends BaseView {
  private datagridAliases: string[] = [];
  private config: any;
 
  constructor(options: {config: any}) {
    super(options);
 
    this.config = {...this.config, ...options.config};
  }
 
  /**
   * {@inheritdoc}
   */
  configure() {
    return $.when(
      BaseView.prototype.configure.apply(this, arguments),
      $.get(Routing.generate('pim_datagrid_view_rest_types'))
        .then((datagridViewTypes: string[]) => {
          this.datagridAliases = datagridViewTypes;
        })
    );
  }
 
  /**
   * {@inheritdoc}
   */
  render() {
    this.$el.html('');
    this.datagridAliases.forEach((datagridAlias: string) => {
      const datagridViewSelector = new DefaultProductGridView({
        config: {
          datagridAlias: datagridAlias,
          fieldName: 'default_' + datagridAlias.replace(/-/g, '_') + '_view',
          label: 'pim_user_management.entity.user.properties.default_' + datagridAlias.replace(/-/g, '_') + '_view',
          allowClear: true,
          isMultiple: false,
          readOnly: this.config.readOnly,
        }
      });
      datagridViewSelector.configure().then(() => {
        datagridViewSelector.setParent(this);
        this.$el.append(datagridViewSelector.render().$el);
      });
    });
 
    return this;
  }
}
 
export = DefaultGridView