Ext.namespace('Zarafa.calendar.dialogs'); /** * @class Zarafa.calendar.dialogs.TrackingTab * @extends Ext.Panel * @xtype zarafa.trackingtab * * TrackingTab tab in the {@link Zarafa.calendar.dialogs.AppointmentPanel} * that is used to keep track of responses from attendees for Meeting Requests. */ Zarafa.calendar.dialogs.TrackingTab = Ext.extend(Ext.Panel, { /** * @constructor * @param {Object} config */ constructor : function(config) { config = config || {}; config.plugins = Ext.value(config.plugins, []); config.plugins.push('zarafa.recordcomponentupdaterplugin'); Ext.applyIf(config, { xtype: 'zarafa.trackingtab', layout: { type: 'vbox', align: 'stretch' }, cls : 'k-trackingtab', border: false, items: [{ xtype: 'displayfield', height : 36, value: _('The following responses for this meeting have been received') + ':', hideLabel : true },{ xtype : 'grid', ref : 'responseTrackList', flex: 1, store: new Zarafa.core.data.IPMRecipientStore(), viewConfig : { forceFit : true }, columns: [{ dataIndex: 'display_name', header: _('Name'), renderer : Ext.util.Format.htmlEncode, sortable: true },{ dataIndex: 'recipient_type', header: _('Attendance'), sortable: true, renderer: Zarafa.common.ui.grid.Renderers.recipienttype },{ dataIndex: 'recipient_trackstatus', header: _('Response'), sortable: true, renderer: Zarafa.common.ui.grid.Renderers.responsestatus }] }] }); Zarafa.calendar.dialogs.TrackingTab.superclass.constructor.call(this, config); }, /** * Update the {@link Ext.Panel Panel} with the given {@link Zarafa.core.data.IPMRecord IPMRecord} * Also it will build the tracking information data of attendees and pass it the the store * @param {Zarafa.core.data.IPMRecord} record The record to update the panel with * @param {Boolean} contentReset force the component to perform a full update of the data. */ update : function(record, contentReset) { var recipientStore = record.getSubStore('recipients'); if (recipientStore && this.responseTrackList.getStore() !== recipientStore) { this.responseTrackList.reconfigure(recipientStore, this.responseTrackList.getColumnModel()); } } }); Ext.reg('zarafa.trackingtab', Zarafa.calendar.dialogs.TrackingTab);