KWA-MDM/js/dialogs/MDMDeviceGeneralTab.js

156 lines
3.9 KiB
JavaScript
Raw Normal View History

Ext.namespace('Zarafa.plugins.mdm.dialogs');
/**
* @class Zarafa.plugins.mdm.dialogs.MDMDeviceGeneralTab
* @extends Ext.form.FormPanel
* @xtype mdmplugin.mdmdevicegeneraltab
*
* Details tab in the {@link Zarafa.plugins.mdm.dialogs.MDMDeviceContentPanel}
*/
Zarafa.plugins.mdm.dialogs.MDMDeviceGeneralTab = Ext.extend(Ext.form.FormPanel, {
/**
* @cfg {Boolean} isKoe True if device has Kopano Outlook Extension information.
*/
isKoe : false,
/**
* @constructor
* @param {Object} config Configuration object
*/
constructor: function (config)
{
config = config || {};
Ext.applyIf(config, {
xtype: 'mdmplugin.mdmdevicegeneraltab',
cls: 'tab-general',
border: false,
labelAlign: 'left',
defaults: {
border: false,
xtype: 'panel',
layout: 'form',
labelWidth: 150,
cls: 'mdm-device-panel'
},
items: [
this.createDeviceInfoPanel(config),
this.createFolderInfoPanel()
],
listeners: {
afterlayout: this.onAfterLayout,
scope: this
}
});
Zarafa.plugins.mdm.dialogs.MDMDeviceGeneralTab.superclass.constructor.call(this, config);
},
/**
* Function which is use to create device status panel
* @param {Object} config Configuration object
* @return {Object} Configuration object for the panel which shows device status properties
* @private
*/
createDeviceInfoPanel: function (config)
{
return {
cls : 'mdm-device-panel',
defaultType: 'displayfield',
defaults: {
disabled: true
},
items: [{
cls: 'mdm-display-name',
value: dgettext('plugin_mdm', config.record.get('devicetype')),
htmlEncode: true,
disabled: false,
hideLabel: true
}, {
fieldLabel: dgettext('plugin_mdm', 'Connected since'),
value: String.format('{0}', new Date(config.record.get('firstsynctime')).format(_('d F Y')))
}, {
fieldLabel: dgettext('plugin_mdm', 'Last updated'),
value: String.format(_('{0}'), new Date(config.record.get('lastupdatetime')).format(_('d F Y, H:i')))
}, {
fieldLabel: dgettext('plugin_mdm', 'Status'),
hidden: config.isKoe,
listeners: {
afterrender: this.onAfterRenderStatus,
scope: this
}
}]
};
},
/**
* Function which is use to create folders synchronization panel
* @return {Object} Configuration object for the panel which shows folders properties
* @private
*/
createFolderInfoPanel: function ()
{
return {
cls : 'mdm-device-panel mdm-field-sep',
defaultType: 'displayfield',
items: [{
cls: 'mdm-display-name',
value: dgettext('plugin_mdm', 'Synchronize'),
htmlEncode: true,
hideLabel: true
}, {
fieldLabel: dgettext('plugin_mdm', 'Folders'),
disabled: true,
name: 'synchronizedfolders'
}, {
xtype: 'fieldset',
layout: 'form',
labelWidth: 140,
cls : 'mdm-synchronize-panel',
defaultType: 'displayfield',
defaults: {
labelSeparator: '',
value: '0',
disabled: true
},
items: [{
fieldLabel: _('Email'),
name: 'emailsfolder'
}, {
fieldLabel: _('Calendar'),
name: 'calendarsfolder'
}, {
fieldLabel: _('Contacts'),
name: 'contactsfolder'
}, {
fieldLabel: _('Notes'),
name: 'notesfolder'
}, {
fieldLabel: _('Tasks'),
name: 'tasksfolder'
}]
}]
};
},
/**
* Function which handles the after layoutevent.
* Which is use to set record values into form fields.
*/
onAfterLayout: function ()
{
this.getForm().loadRecord(this.record);
},
/**
* Function which handles the after render event of status field.
* Which is use to set the the display name for the given Provisioning Status into given field
* @param {Ext.form.TextField} statusField text field
*/
onAfterRenderStatus: function (statusField)
{
var status = parseInt(this.record.get("wipestatus"));
statusField.setValue(Zarafa.plugins.mdm.data.ProvisioningStatus.getDisplayName(status));
}
});
Ext.reg('mdmplugin.mdmdevicegeneraltab', Zarafa.plugins.mdm.dialogs.MDMDeviceGeneralTab);