dustin@975: /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz dustin@975: * Software engineering by Intevation GmbH dustin@975: * dustin@975: * This file is Free Software under the GNU GPL (v>=3) dustin@975: * and comes with ABSOLUTELY NO WARRANTY! Check out dustin@975: * the documentation coming with IMIS-Labordaten-Application for details. dustin@975: */ dustin@975: dustin@975: /** dustin@975: * Grid to list Probenehmer Stammdaten dustin@975: */ dustin@975: Ext.define('Lada.view.grid.Probenehmer', { dustin@975: extend: 'Ext.grid.Panel', dustin@975: alias: 'widget.probenehmergrid', dustin@975: dustin@975: // minHeight and deferEmptyText are needed to be able to show the dustin@975: // emptyText message. dustin@975: minHeight: 110, dustin@975: viewConfig: { dustin@975: deferEmptyText: false dustin@975: }, dustin@975: dustin@975: warnings: null, dustin@975: errors: null, dustin@975: readOnly: true, dustin@975: allowDeselect: true, dustin@981: border: false, dustin@975: dustin@975: initComponent: function() { dustin@975: var i18n = Lada.getApplication().bundle; dustin@975: this.emptyText = i18n.getMsg('pn.emptyGrid'); dustin@975: raimund@1039: if (Ext.Array.contains(Lada.funktionen, 4)) { raimund@1039: this.rowEditing = Ext.create('Ext.grid.plugin.RowEditing', { raimund@1039: clicksToMoveEditor: 1, raimund@1039: autoCancel: false, raimund@1060: errorSummary: false, raimund@1039: disabled: false, raimund@1039: pluginId: 'rowedit' raimund@1039: }); raimund@1039: this.plugins = [this.rowEditing]; raimund@1039: } dustin@982: dustin@975: // TODO: Which docked Items are required? dustin@975: this.dockedItems = [{ dustin@975: xtype: 'toolbar', dustin@975: dock: 'top', dustin@975: items: [{ dustin@975: xtype: 'tbtext', dustin@975: id: 'tbtitle', dustin@975: text: i18n.getMsg('pn.gridTitle') dustin@984: }, dustin@984: '->', dustin@984: { dustin@984: text: i18n.getMsg('pn.button.add'), dustin@984: icon: 'resources/img/list-add.png', dustin@984: action: 'add', dustin@984: disabled: true // disabled on startup, will be enabled by setStore dustin@984: }, { dustin@984: text: i18n.getMsg('pn.button.delete'), dustin@984: icon: 'resources/img/list-remove.png', dustin@984: action: 'delete', dustin@984: disabled: true // disabled on startup, will be enabled by controller if necessary dustin@975: }] dustin@975: }]; dustin@975: this.columns = [{ raimund@1081: xtype: 'actioncolumn', raimund@1081: text: 'RW', raimund@1081: dataIndex: 'readonly', raimund@1081: sortable: false, raimund@1081: width: 30, raimund@1081: getClass: function (val, meta, rec) { raimund@1081: console.log(rec.get('statusEdit')); raimund@1081: if (rec.get('readonly') === false) { raimund@1081: return 'edit'; raimund@1081: } raimund@1081: return 'noedit'; raimund@1081: }, raimund@1081: handler: function(grid, rowIndex, colIndex) { raimund@1081: var rec = grid.getStore().getAt(rowIndex); raimund@1081: grid.fireEvent('itemdblclick', grid, rec); raimund@1081: } raimund@1081: }, { dustin@975: header: i18n.getMsg('netzbetreiberId'), dustin@975: dataIndex: 'netzbetreiberId', dustin@975: renderer: function(value) { dustin@975: var r = ''; dustin@975: if (!value || value === '') { dustin@975: r = 'Error'; dustin@975: } dustin@975: var store = Ext.data.StoreManager.get('netzbetreiber'); dustin@975: var record = store.getById(value); dustin@975: if (record) { dustin@975: r = record.get('netzbetreiber'); dustin@975: } dustin@975: return r; dustin@975: }, dustin@975: editor: { dustin@975: xtype: 'combobox', raimund@1075: store: Ext.data.StoreManager.get('netzbetreiberFiltered'), dustin@975: displayField: 'netzbetreiber', dustin@975: valueField: 'id', dustin@975: allowBlank: false dustin@975: } dustin@975: }, { dustin@975: header: i18n.getMsg('bearbeiter'), dustin@975: dataIndex: 'bearbeiter', dustin@975: editor: { raimund@1098: xtype: 'textfield', raimund@1098: maxLength: 25, raimund@1098: enforceMaxLength: true dustin@975: } dustin@975: }, { dustin@975: header: i18n.getMsg('prnId'), dustin@975: dataIndex: 'prnId', dustin@975: editor: { raimund@1061: allowBlank: false, raimund@1094: maxLength: 9, raimund@1094: enforceMaxLength: true, raimund@1058: xtype: 'textfield' dustin@975: } dustin@975: }, { dustin@975: header: i18n.getMsg('bemerkung'), dustin@975: dataIndex: 'bemerkung', dustin@975: editor: { dustin@984: allowBlank: false, raimund@1098: xtype: 'textfield', raimund@1098: maxLength: 60, raimund@1098: enforceMaxLength: true dustin@975: } dustin@975: }, { dustin@975: header: i18n.getMsg('kurzBezeichnung'), dustin@975: dataIndex: 'kurzBezeichnung', dustin@975: editor: { dustin@984: allowBlank: false, raimund@1098: xtype: 'textfield', raimund@1098: maxLength: 10, raimund@1098: enforceMaxLength: true dustin@975: } dustin@975: }, { dustin@975: header: i18n.getMsg('ort'), dustin@975: dataIndex: 'ort', dustin@975: editor: { raimund@1098: xtype: 'textfield', raimund@1098: maxLength: 20, raimund@1098: enforceMaxLength: true dustin@975: } dustin@975: }, { dustin@975: header: i18n.getMsg('plz'), dustin@975: dataIndex: 'plz', dustin@975: editor: { dustin@984: xtype: 'numberfield' dustin@975: } dustin@975: }, { dustin@975: header: i18n.getMsg('strasse'), dustin@975: dataIndex: 'strasse', dustin@975: editor: { raimund@1098: xtype: 'textfield', raimund@1098: maxLength: 30, raimund@1098: enforceMaxLength: true dustin@975: } dustin@975: }, { dustin@975: header: i18n.getMsg('telefon'), dustin@975: dataIndex: 'telefon', dustin@975: editor: { raimund@1098: xtype: 'textfield', raimund@1098: maxLength: 20, raimund@1098: enforceMaxLength: true dustin@975: } dustin@975: }, { dustin@975: header: i18n.getMsg('tp'), dustin@975: dataIndex: 'tp', dustin@975: editor: { raimund@1098: xtype: 'textfield', raimund@1098: maxLength: 3, raimund@1098: enforceMaxLength: true dustin@975: } dustin@975: }, { dustin@975: header: i18n.getMsg('typ'), dustin@975: dataIndex: 'typ', dustin@975: editor: { raimund@1098: xtype: 'textfield', raimund@1098: maxLength: 1, raimund@1098: enforceMaxLength: true dustin@975: } dustin@975: }, { dustin@975: header: i18n.getMsg('letzteAenderung'), raimund@1045: xtype: 'datecolumn', raimund@1045: format: 'd.m.Y H:i', dustin@975: dataIndex: 'letzteAenderung' dustin@975: }]; dustin@975: this.listeners = { dustin@975: select: { dustin@975: fn: this.activateRemoveButton, dustin@975: scope: this dustin@975: }, dustin@975: deselect: { dustin@975: fn: this.deactivateRemoveButton, dustin@975: scope: this dustin@975: } dustin@975: }; dustin@975: this.callParent(arguments); dustin@975: }, dustin@975: dustin@975: /** dustin@981: * This sets the Store of this Grid dustin@975: */ raimund@1039: setStore: function(store) { dustin@981: var i18n = Lada.getApplication().bundle; raimund@1039: if (Ext.Array.contains(Lada.funktionen, 4)) { raimund@1039: this.down('button[action=add]').enable(); raimund@1039: } dustin@981: dustin@984: if (store) { dustin@984: this.removeDocked(Ext.getCmp('ptbar'), true); dustin@984: this.reconfigure(store); dustin@984: this.addDocked([{ dustin@984: xtype: 'pagingtoolbar', dustin@984: id: 'ptbar', dustin@984: dock: 'bottom', dustin@984: store: store, dustin@984: displayInfo: true dustin@984: }]); dustin@984: } dustin@975: } dustin@975: }); dustin@975: