Source: products/argos-saleslogix/src/Views/Address/List.js

import declare from 'dojo/_base/declare';
import lang from 'dojo/_base/lang';
import format from '../../Format';
import List from 'argos/List';
import getResource from 'argos/I18n';


const resource = getResource('addressList');

/**
 * @class crm.Views.Address.List
 *
 * @extends argos.List
 *
 * @requires argos.List
 *
 * @requires crm.Format
 *
 */
const __class = declare('crm.Views.Address.List', [List], {
  // Templates
  itemTemplate: new Simplate([
    '<p class="listview-heading">{%: $.$descriptor %}</p>',
    '<p class="micro-text">{%= $$.format.address($, true) %}</p>',
  ]),

  // Localization
  titleText: resource.titleText,

  // View Properties
  detailView: null,
  id: 'address_list',
  security: null, // 'Entities/Address/View',
  insertSecurity: 'Entities/Address/Add',
  insertView: 'address_edit',
  resourceKind: 'addresses',
  allowSelection: true,
  enableActions: true,
  format,
  isCardView: false,

  formatSearchQuery: function formatSearchQuery(searchQuery) {
    const q = this.escapeSearchQuery(searchQuery.toUpperCase());
    return `(upper(Description) like "${q}%" or upper(City) like "${q}%")`;
  },
  // Disable Add/Insert on toolbar
  createToolLayout: function createToolLayout() {
    return this.tools || (this.tools = {
      tbar: [],
    });
  },
  selectEntry: function selectEntry(params) {
    const row = $(params.$source).closest('[data-key]')[0];
    const key = row ? $(row).attr('data-key') : false;

    if (this._selectionModel && key) {
      App.showMapForAddress(format.address(this.entries[key], true, ' '));
    }
  },
});

lang.setObject('Mobile.SalesLogix.Views.Address.List', __class);
export default __class;