1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
Ext.namespace('Zarafa.plugins.files.settings.ui');
/**
* @class Zarafa.plugins.files.settings.ui.AccountGridColumnModel
* @extends Zarafa.common.ui.grid.ColumnModel
*/
Zarafa.plugins.files.settings.ui.AccountGridColumnModel = Ext.extend(Zarafa.common.ui.grid.ColumnModel, {
/**
* @constructor
* @param {Object} config Configuration structure
*/
constructor: function (config) {
config = config || {};
Ext.applyIf(config, {
columns : this.createDefaultColumns(),
defaults: {
sortable: true
}
});
Zarafa.plugins.files.settings.ui.AccountGridColumnModel.superclass.constructor.call(this, config);
},
/**
* Create an array of {@link Ext.grid.Column columns} which must be visible within
* the default view of this {@link Ext.grid.ColumnModel ColumnModel}.
*
* @return {Ext.grid.Column[]} The array of columns
* @private
*/
createDefaultColumns: function () {
return [
new Ext.grid.RowNumberer(),
{
header : dgettext('plugin_files', 'ID'),
dataIndex: 'id',
width : 50,
hidden : true,
sortable : false,
tooltip : dgettext('plugin_files', 'Sort by: ID')
}, {
header : dgettext('plugin_files', 'Status'),
dataIndex: 'status',
width : 40,
sortable : false,
renderer : Zarafa.plugins.files.settings.data.AccountRenderUtil.statusRenderer,
tooltip : dgettext('plugin_files', 'Sort by: Status')
}, {
header : dgettext('plugin_files', 'Name'),
dataIndex: 'name',
flex : 1,
sortable : false,
tooltip : dgettext('plugin_files', 'Sort by: Name')
}, {
header : dgettext('plugin_files', 'Backend'),
dataIndex: 'backend',
width : 40,
sortable : false,
renderer : Zarafa.plugins.files.settings.data.AccountRenderUtil.backendRenderer,
tooltip : dgettext('plugin_files', 'Sort by: Backend')
}, {
xtype : 'actioncolumn',
header : dgettext('plugin_files', 'Features'),
dataIndex: 'backend_features',
width : 40,
sortable : false,
tooltip : dgettext('plugin_files', 'Shows all available features of the backend.'),
items : [{
getClass: Zarafa.plugins.files.settings.data.AccountRenderUtil.featureRenderer.createDelegate(this, [Zarafa.plugins.files.data.AccountRecordFeature.QUOTA], true),
icon : 'plugins/files/resources/icons/features/quota.png',
tooltip : dgettext('plugin_files', 'Show quota information'),
handler : this.showDialog.createDelegate(this, ['filesplugin.featurequotainfo'], 2)
}, {
getClass: Zarafa.plugins.files.settings.data.AccountRenderUtil.featureRenderer.createDelegate(this, [Zarafa.plugins.files.data.AccountRecordFeature.VERSION_INFO], true),
icon : 'plugins/files/resources/icons/features/info.png',
tooltip : dgettext('plugin_files', 'Show version information'),
handler : this.showDialog.createDelegate(this, ['filesplugin.featureversioninfo'], 2)
}, {
getClass: Zarafa.plugins.files.settings.data.AccountRenderUtil.featureRenderer.createDelegate(this, [Zarafa.plugins.files.data.AccountRecordFeature.SHARING], true),
icon : 'plugins/files/resources/icons/features/sharing.png',
tooltip : dgettext('plugin_files', 'Share files')
}, {
getClass: Zarafa.plugins.files.settings.data.AccountRenderUtil.featureRenderer.createDelegate(this, [Zarafa.plugins.files.data.AccountRecordFeature.STREAMING], true),
icon : 'plugins/files/resources/icons/features/streaming.png',
tooltip : dgettext('plugin_files', 'Fast Down/Upload')
}]
}];
},
/**
* This method gets called if the user clicks on the quota icon.
* It will then display the {@link Zarafa.plugins.files.settings.ui.FeatureQuotaInfoContentPanel quota panel}.
*
* @param {Object} grid the grid
* @param {Number} rowIndex used to retrieve the selected record
* @param {String} componentType the component to show
*/
showDialog: function(grid, rowIndex, componentType) {
var record = grid.getStore().getAt(rowIndex);
if (record.get('status') !== 'ok') {
return;
}
Zarafa.core.data.UIFactory.openLayerComponent(Zarafa.core.data.SharedComponentType[componentType], undefined, {
store : grid.getStore(),
item : record,
manager: Ext.WindowMgr
});
}
});
|