temp commit
This commit is contained in:
40
js/settings/dialogs/SendAsEditContentPanel.js
Normal file
40
js/settings/dialogs/SendAsEditContentPanel.js
Normal file
@@ -0,0 +1,40 @@
|
||||
Ext.namespace('Zarafa.common.sendas.dialogs');
|
||||
|
||||
/**
|
||||
* @class Zarafa.common.sendas.dialogs.SendAsEditContentPanel
|
||||
* @extends Zarafa.core.ui.ContentPanel
|
||||
* @xtype zarafa.sendaseditcontentpanel
|
||||
*
|
||||
* {@link Zarafa.common.sendas.dialogs.SendAsEditContentPanel SendAsEditContentPanel} will be used to edit sendas addresses.
|
||||
*/
|
||||
Zarafa.common.sendas.dialogs.SendAsEditContentPanel = Ext.extend(Zarafa.core.ui.ContentPanel, {
|
||||
/**
|
||||
* @constructor
|
||||
* @param config Configuration structure
|
||||
*/
|
||||
constructor : function(config)
|
||||
{
|
||||
config = config || {};
|
||||
|
||||
// Add in some standard configuration data.
|
||||
Ext.applyIf(config, {
|
||||
// Override from Ext.Component
|
||||
xtype : 'zarafa.sendaseditcontentpanel',
|
||||
// Override from Ext.Component
|
||||
layout : 'fit',
|
||||
model : true,
|
||||
autoSave : false,
|
||||
width : 400,
|
||||
height : 100,
|
||||
title : _('Send As'),
|
||||
items : [{
|
||||
xtype : 'zarafa.sendaseditpanel',
|
||||
item : config.item
|
||||
}]
|
||||
});
|
||||
|
||||
Zarafa.common.sendas.dialogs.SendAsEditContentPanel.superclass.constructor.call(this, config);
|
||||
}
|
||||
});
|
||||
|
||||
Ext.reg('zarafa.sendaseditcontentpanel', Zarafa.common.sendas.dialogs.SendAsEditContentPanel);
|
135
js/settings/dialogs/SendAsEditPanel.js
Normal file
135
js/settings/dialogs/SendAsEditPanel.js
Normal file
@@ -0,0 +1,135 @@
|
||||
Ext.namespace('Zarafa.common.sendas.dialogs');
|
||||
|
||||
/**
|
||||
* @class Zarafa.common.sendas.dialogs.SendAsEditPanel
|
||||
* @extends Ext.form.FormPanel
|
||||
* @xtype zarafa.sendaseditpanel
|
||||
*
|
||||
* Will generate UI for {@link Zarafa.common.sendas.dialogs.SendAsEditContentPanel SendAsEditContentPanel}.
|
||||
*/
|
||||
Zarafa.common.sendas.dialogs.SendAsEditPanel = Ext.extend(Ext.form.FormPanel, {
|
||||
|
||||
/**
|
||||
* the id of the currently edited item
|
||||
*/
|
||||
currentItem : undefined,
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @param config Configuration structure
|
||||
*/
|
||||
constructor : function(config)
|
||||
{
|
||||
config = config || {};
|
||||
|
||||
if(config.item)
|
||||
this.currentItem = config.item;
|
||||
|
||||
Ext.applyIf(config, {
|
||||
// Override from Ext.Component
|
||||
xtype : 'zarafa.sendaseditpanel',
|
||||
labelAlign : 'left',
|
||||
defaultType: 'textfield',
|
||||
items : this.createPanelItems(config),
|
||||
buttons: [{
|
||||
text: _('Save'),
|
||||
handler: this.doSave,
|
||||
scope: this
|
||||
},
|
||||
{
|
||||
text: _('Cancel'),
|
||||
handler: this.doClose,
|
||||
scope: this
|
||||
}]
|
||||
});
|
||||
|
||||
Zarafa.common.sendas.dialogs.SendAsEditPanel.superclass.constructor.call(this, config);
|
||||
},
|
||||
|
||||
/**
|
||||
* close the dialog
|
||||
*/
|
||||
doClose : function() {
|
||||
this.dialog.close();
|
||||
},
|
||||
|
||||
/**
|
||||
* save the data to the store
|
||||
*/
|
||||
doSave : function() {
|
||||
var store = this.dialog.store;
|
||||
var id = 0;
|
||||
var record = undefined;
|
||||
|
||||
if(!this.currentItem) {
|
||||
record = new store.recordType({
|
||||
id: this.hashCode(this.email_address.getValue()),
|
||||
display_name: this.display_name.getValue(),
|
||||
email_address: this.email_address.getValue()
|
||||
});
|
||||
}
|
||||
|
||||
if(this.email_address.isValid()) {
|
||||
if(record) {
|
||||
store.add(record);
|
||||
} else {
|
||||
this.currentItem.set('display_name', this.display_name.getValue());
|
||||
this.currentItem.set('email_address', this.email_address.getValue());
|
||||
}
|
||||
this.dialog.close();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Function will create panel items for {@link Zarafa.common.sendas.dialogs.SendAsEditPanel SendAsEditPanel}
|
||||
* @return {Array} array of items that should be added to panel.
|
||||
* @private
|
||||
*/
|
||||
createPanelItems : function(config)
|
||||
{
|
||||
var displayName = "";
|
||||
var emailAddress = "";
|
||||
|
||||
if(config.item){
|
||||
displayName = config.item.get('display_name');
|
||||
emailAddress = config.item.get('email_address');
|
||||
}
|
||||
|
||||
return [{
|
||||
fieldLabel: _('Display Name'),
|
||||
name: 'display_name',
|
||||
ref: 'display_name',
|
||||
value: displayName,
|
||||
anchor: '100%'
|
||||
},
|
||||
{
|
||||
fieldLabel: _('Email Address'),
|
||||
name: 'email_address',
|
||||
ref: 'email_address',
|
||||
allowBlank: false,
|
||||
value: emailAddress,
|
||||
vtype:'email',
|
||||
anchor: '100%'
|
||||
}];
|
||||
},
|
||||
|
||||
/**
|
||||
* Java String.hashCode() implementation
|
||||
* @private
|
||||
*/
|
||||
hashCode : function(str){
|
||||
var hash = 0;
|
||||
var chr = 0;
|
||||
var i = 0;
|
||||
|
||||
if (str.length == 0) return hash;
|
||||
for (i = 0; i < str.length; i++) {
|
||||
chr = str.charCodeAt(i);
|
||||
hash = ((hash<<5)-hash)+chr;
|
||||
hash = hash & hash; // Convert to 32bit integer
|
||||
}
|
||||
return Math.abs(hash);
|
||||
}
|
||||
});
|
||||
|
||||
Ext.reg('zarafa.sendaseditpanel', Zarafa.common.sendas.dialogs.SendAsEditPanel);
|
Reference in New Issue
Block a user