),
'default' => array(
self::FEATURE_SPLIT_VIEW => true,
- self::FEATURE_YEAR_VIEW => true,
+ self::FEATURE_YEAR_VIEW => false,
self::FEATURE_EXTENDED_EVENT_CONTEXT_ACTIONS => true,
self::FEATURE_COLOR_BY => true,
+ self::FEATURE_RECUR_EXCEPT => false,
),
),
);
width: 55
}),
new Ext.ux.grid.CheckColumn({
- header: _('Write'),
- tooltip: _('Write and delete messages from folders'),
+ header: i18n._('Write'),
+ tooltip: i18n._('Write and delete messages from folders'),
dataIndex: 'writeacl',
width: 55
- }),
- new Ext.ux.grid.CheckColumn({
+ })
+ ];
+ if (this.enableSendAs) {
+ this.configColumns.push(new Ext.ux.grid.CheckColumn({
- header: _('Send as'),
- tooltip: _('Send as folder owner'),
+ header: i18n._('Send as'),
+ tooltip: i18n._('Send as folder owner'),
dataIndex: 'sendacl',
- width: 55
- })
- ];
+ width: 55,
+ }));
+ }
}
});
}
};
+ //export mail dir scheduler
+ var scheduleFolderExportAction = {
+ text: this.app.i18n._('Export Folder'),
+ iconCls: 'action_export',
+ scope: this,
+ handler: function() {
+ if (this.ctxNode) {
+ var folderId = this.ctxNode.attributes.folder_id,
+ folder = this.app.getFolderStore().getById(folderId),
+ folderName = folder.get('globalname');
+
+ var baseStyle = 'border:1px solid rgb(214,133,2);padding:4px;margin:5px;background-color: rgb(250,239,165);';
+ var confirmQuestion = this.app.i18n._('Please, do you confirm your request to schedule a task to export all mail data contained in the following folder?')
+ + '<div style="' + baseStyle + '">' + setFolderName(folderName) + '</div><p>'
+ + this.app.i18n._('<b>NOTE:</b> if you choose a folder root, all child folders will be included too.<br/>')
+ + this.app.i18n._('<b>IMPORTANT:</b> all events related to this action will be comunicated to your e-mail address.')
+ + '</p>';
+
+ Ext.MessageBox.confirm(this.app.i18n._('Scheduler confirm'), confirmQuestion, function (btn) {
+ if (btn == 'yes') {
+ Ext.MessageBox.wait(this.app.i18n.gettext('Please wait'), this.app.i18n.gettext('Scheduling your request...'));
+
+ var params = {
+ method: 'Expressomail.schedulerFolder',
+ folder: folderId
+ };
+
+ Ext.Ajax.request({
+ params: params,
+ scope: this,
+ timeout: 15000, // 15s
+ success: function(_result, _request){
+ var scheduled = Ext.util.JSON.decode(_result.responseText);
+ if(scheduled.status === 'failure'){
+ Ext.MessageBox.alert(
+ this.app.i18n._('Failed'),
+ this.app.i18n._(scheduled.message)
+ );
+ } else{
+ Ext.MessageBox.show({
+ buttons: Ext.Msg.OK,
+ icon: Ext.MessageBox.INFO,
+ title: this.app.i18n._('Export Folder'),
+ msg: this.app.i18n._('Your scheduler was successfully done! Pay attention at you mail box for notifications.')
+ });
+ }
+ },
+ failure: function (_result, _request) {
+ var msgError = Ext.util.JSON.decode(_result.responseText);
+ Ext.MessageBox.alert(this.app.i18n._('Failed'), this.app.i18n._(msgError.message));
+ }
+ });
+ }
+ }, this);
+ }
+ }
+ };
+
// mutual config options
var config = {
- nodeName: _('Folder'),
+ nodeName: i18n._('Folder'),
scope: this,
backend: 'Expressomail',
backendModel: 'Folder'
Ext.MessageBox.show({
buttons: Ext.Msg.OK,
icon: Ext.MessageBox.WARNING,
- title: _('Service Unavailable'),
+ title: i18n._('Service Unavailable'),
msg: String.format(app.i18n._('The Filemanager is not configured correctly. Please refer to the {0}Tine 2.0 Admin FAQ{1} for configuration advice or contact your administrator.'),
- '<a href="http://www.tine20.org/wiki/index.php/Admin_FAQ#The_message_.22filesdir_config_value_not_set.22_appears_in_the_logfile_and_I_can.27t_open_the_Filemanager" target="_blank">',
+ '<a href="http://wiki.tine20.org/Admin_FAQ#The_message_.22filesdir_config_value_not_set.22_appears_in_the_logfile_and_I_can.27t_open_the_Filemanager" target="_blank">',
'</a>')
});
break;
'</ul><br/>'
}, {
cls: 'tb-login-big-label',
- html: _('Translations')
+ html: i18n._('Translations')
}, {
- html: Ext.isDefined(percentageCompleted) ? ('<p>' + String.format(_('Translation state of {0}: {1}%.'), language, percentageCompleted) + '</p>') : ''
+ html: Ext.isDefined(percentageCompleted) ? ('<p>' + String.format(i18n._('Translation state of {0}: {1}%.'), language, percentageCompleted) + '</p>') : ''
}, {
- html: '<p>' + String.format(_('If the state of your language is not satisfying, or if you miss a language, please consider becoming a {0} translator.'), Tine.title) + '</p>'
+ html: '<p>' + String.format(i18n._('If the state of your language is not satisfying, or if you miss a language, please consider becoming a {0} translator.'), Tine.title) + '</p>'
}, {
html: '<br/><ul>' +
- '<li><a target="_blank" href="http://wiki.tine20.org/Contributors/Howtos/Translations" border="0">' + String.format(_('{0} Translation Howto'), Tine.title) + '</a></li>' +
- '<li><a target="_blank" href="https://www.transifex.com/projects/p/tine20/" border="0">' + _('Detailed Language Statistics') + '</a></li>'
- '<li><a target="_blank" href="http://www.tine20.org/wiki/index.php/Contributors/Howtos/Translations" border="0">' + String.format(i18n._('{0} Translation Howto'), Tine.title) + '</a></li>' +
++ '<li><a target="_blank" href="http://wiki.tine20.org/Contributors/Howtos/Translations" border="0">' + String.format(i18n._('{0} Translation Howto'), Tine.title) + '</a></li>' +
+ '<li><a target="_blank" href="https://www.transifex.com/projects/p/tine20/" border="0">' + i18n._('Detailed Language Statistics') + '</a></li>'
+ '</ul>'
}]
});