PHP Classes

File: client/modules/pim/src/views/dashlets/products-by-tag.js

Recommend this page to a friend!
  Classes of alex nov   KennerPIM   client/modules/pim/src/views/dashlets/products-by-tag.js   Download  
File: client/modules/pim/src/views/dashlets/products-by-tag.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: 4,165 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/dashlets/products-by-tag', 'views/dashlets/abstract/base', Dep => Dep.extend({ _template: '<div class="list-container">{{{list}}}</div>', collectionUrl: 'Dashlet/ProductsByTag', actionRefresh: function () { this.collection.fetch(); }, afterRender: function () { this.getCollectionFactory().create('ProductsByTagDashlet', function (collection) { this.collection = collection; collection.url = this.collectionUrl; collection.maxSize = this.getOption('displayRecords'); collection.model = collection.model.extend({ defs: { fields: { name: { labelMap: this.translate('tag', 'options', 'Product') } } } }); this.listenToOnce(collection, 'sync', function () { this.createView('list', 'views/record/list', { el: this.getSelector() + ' > .list-container', collection: collection, rowActionsDisabled: true, checkboxes: false, listLayout: [ { name: 'name', view: 'pim:views/dashlets/fields/colored-varchar-with-url', notSortable: true, width: '60', params: { filterField: 'tag' } }, { name: 'amount', notSortable: true, width: '20' }, { name: 'percent', view: 'pim:views/dashlets/fields/percent', notSortable: true, width: '20' } ] }, view => { view.listenTo(view, 'after:render', () => { let amount = 0; collection.each(model => { amount += model.get('amount'); }); let percent = amount ? '100%' : '0%'; view.$el.find('table.table tbody').append( `<tr data-id="total" class="list-row"> <td class="cell" data-name="name" width="60%"><b>${this.translate('Total', 'labels', 'Global')}</b></td> <td class="cell" data-name="amount" width="20%"><b>${amount}</b></td> <td class="cell" data-name="percent" width="20%"><b>${percent}</b></td> </tr>'` ); }); view.render(); }); }.bind(this)); collection.fetch(); }, this); }, }) );