PHP Classes

File: client/modules/pim/src/views/product/list.js

Recommend this page to a friend!
  Classes of alex nov   KennerPIM   client/modules/pim/src/views/product/list.js   Download  
File: client/modules/pim/src/views/product/list.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: KennerPIM
Product information management application
Author: By
Last change:
Date: 1 year ago
Size: 3,970 bytes
 

Contents

Class file image Download
/* * Pim * Free Extension * Copyright (c) TreoLabs GmbH * Copyright (c) Kenner Soft Service GmbH * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. */ Espo.define('pim:views/product/list', ['pim:views/list', 'search-manager'], (Dep, SearchManager) => Dep.extend({ template: 'pim:product/list', isCatalogTreePanel: false, setup() { Dep.prototype.setup.call(this); if (this.getAcl().check('Catalog', 'read') && this.getAcl().check('Category', 'read') && this.getMetadata().get(['scopes', 'Product', 'catalogTreePanelActive'])) { this.isCatalogTreePanel = true; this.setupCatalogTreePanel(); } }, setupCatalogTreePanel() { this.createView('catalogTreePanel', 'pim:views/product/record/catalog-tree-panel', { el: '#main .catalog-tree-panel', scope: this.scope }, view => { view.listenTo(view, 'select-category', data => this.sortCollectionWithCatalogTree(data)); }); }, sortCollectionWithCatalogTree(data) { this.notify('Please wait...'); this.updateCollectionWithCatalogTree(data); this.collection.fetch().then(() => this.notify(false)); }, updateCollectionWithCatalogTree(data) { data = data || {}; const defaultFilters = Espo.Utils.cloneDeep(this.searchManager.get()); const extendedFilters = Espo.Utils.cloneDeep(defaultFilters); $.each(data, (key, value) => { extendedFilters[key] = _.extend({}, extendedFilters[key], value); }); this.searchManager.set(extendedFilters); this.collection.where = this.searchManager.getWhere(); this.searchManager.set(defaultFilters); }, data() { return { isCatalogTreePanel: this.isCatalogTreePanel } }, setupSearchManager() { let collection = this.collection; var searchManager = new SearchManager(collection, 'list', this.getStorage(), this.getDateTime(), this.getSearchDefaultData()); searchManager.scope = this.scope; if (this.options.params.showFullListFilter) { searchManager.set(_.extend(searchManager.get(), {advanced: Espo.Utils.cloneDeep(this.options.params.advanced)})); } if ((this.options.params || {}).boolFilterList) { searchManager.set({ textFilter: '', advanced: {}, primary: null, bool: (this.options.params || {}).boolFilterList.reduce((acc, curr) => { acc[curr] = true; return acc; }, {}) }); } else { searchManager.loadStored(); } collection.where = searchManager.getWhere(); this.searchManager = searchManager; }, resetSorting() { Dep.prototype.resetSorting.call(this); let catalogTreePanel = this.getView('catalogTreePanel'); if (catalogTreePanel) { catalogTreePanel.trigger('resetFilters'); } } }) );