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

100% Statements 23/23
75% Branches 3/4
100% Functions 8/8
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 61 62 63 64 65 66 67 68 69 7016x 16x 16x 16x                             16x       2x   2x           16x 2x       2x               16x 2x 2x   2x             16x 4x   4x           16x 2x   16x   16x  
import * as $ from 'jquery';
const __ = require('oro/translator');
const BaseSelect = require('pim/form/common/fields/select');
const FetcherRegistry = require('pim/fetcher-registry');
 
/**
 * @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)
 */
type InterfaceNormalizedDatagridView = {
  id: string;
  label: string;
  owner_id: number;
  type: 'public'|'project';
  datagrid_alias: string;
}
 
class DefaultProductGridView extends BaseSelect {
  private config: any;
 
  constructor(options: {config: any}) {
    super(options);
 
    this.config = {...this.config, ...options.config};
  }
 
  /**
   * {@inheritdoc}
   */
  configure() {
    return $.when(
      BaseSelect.prototype.configure.apply(this, arguments),
      FetcherRegistry.getFetcher('datagrid-view').fetchAll({ alias: this.config.datagridAlias })
        .then((datagridViews: InterfaceNormalizedDatagridView[]) => {
          this.config.choices = datagridViews;
        })
    );
  }
 
  /**
   * {@inheritdoc}
   */
  formatChoices(datagridViews: InterfaceNormalizedDatagridView[]): { [key:string] : string } {
    return datagridViews.reduce((result: { [key:string] : string }, datagridView: InterfaceNormalizedDatagridView) => {
      result[datagridView.id] = datagridView.label;
 
      return result;
    }, {});
  }
 
  /**
   * {@inheritdoc}
   */
  getModelValue(): string {
    const value = BaseSelect.prototype.getModelValue.apply(this, arguments);
 
    return value !== undefined ? value + '' : value;
  }
 
  /**
   * {@inheritdoc}
   */
  getDefaultLabel(): string {
    return __('pim_datagrid.view_selector.default_view');
  }
}
 
export = DefaultProductGridView;