PHP Classes

File: client/modules/pim/src/views/product/record/catalog-tree-panel/category-search.js

Recommend this page to a friend!
  Classes of alex nov   KennerPIM   client/modules/pim/src/views/product/record/catalog-tree-panel/category-search.js   Download  
File: client/modules/pim/src/views/product/record/catalog-tree-panel/category-search.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,258 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/record/catalog-tree-panel/category-search', 'view', Dep => Dep.extend({ template: 'pim:product/record/catalog-tree-panel/category-search', data() { return { scope: this.scope } }, setup() { this.scope = this.options.scope || this.scope; }, afterRender() { if (this.el) { this.$el.find('input').autocomplete({ serviceUrl: function () { return this.getAutocompleteUrl(); }.bind(this), paramName: 'q', minChars: 1, autoSelectFirst: true, transformResult: function (json) { let response = JSON.parse(json); let list = []; response.list.forEach(category => { let firstParentId; if (category.categoryRoute) { firstParentId = category.categoryRoute.split('|').find(element => element); } this.options.catalogs.forEach(catalog => { if ((catalog.categoriesIds || []).includes(category.id) || (firstParentId && (catalog.categoriesIds || []).includes(firstParentId))) { let modifiedItem = Espo.Utils.cloneDeep(category); modifiedItem.value = catalog.name + ' > ' + modifiedItem.name; modifiedItem.catalogId = catalog.id; list.push(modifiedItem); } }); }); return { suggestions: list }; }.bind(this), onSelect: function (category) { this.$el.find('input').val(''); this.trigger('category-search-select', category); }.bind(this) }); } }, getAutocompleteUrl() { let url = 'Category?sortBy=createdAt'; let where = []; where.push({type: 'bool', value: ['onlyActive']}); url += '&' + $.param({'where': where}); return url; } }) );