/* * Copyright 2015 Anton Tananaev (anton@traccar.org) * * 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 . */ Ext.define('Traccar.view.State', { extend: 'Traccar.view.GridPanel', xtype: 'stateView', requires: [ 'Traccar.view.StateController' ], controller: 'state', store: 'Attributes', stateful: true, stateId: 'state-grid', tbar: { componentCls: 'toolbar-header-style', items: [{ xtype: 'tbtext', html: Strings.stateTitle, baseCls: 'x-panel-header-title-default' }, { xtype: 'tbfill' }, { xtype: 'button', disabled: true, handler: 'onComputedAttributesClick', reference: 'computedAttributesButton', glyph: 'xf0ae@FontAwesome', tooltip: Strings.sharedComputedAttributes, tooltipType: 'title' }] }, columns: { defaults: { minWidth: Traccar.Style.columnWidthNormal, flex: 1 }, items: [{ text: Strings.stateName, dataIndex: 'name' }, { text: Strings.stateValue, dataIndex: 'value', cellWrap: true, renderer: function (value, metaData, record) { var position, device; if (record.get('attribute') === 'alarm') { metaData.tdCls = 'view-color-red'; } else if (record.get('name') === Strings.positionAddress && !value) { return '' + Strings.sharedShowAddress + ''; } else if (record.get('name') === Strings.positionImage || record.get('name') === Strings.positionAudio) { position = this.getController().position; if (position) { device = Ext.getStore('Devices').getById(position.get('deviceId')); if (device) { return '' + value + ''; } } } return value; } }] } });