FR.editSettings = {};
FR.editSettings.formPanel = new FR.components.editForm({
title: FR.T('Interface options'),
layout: 'form', bodyStyle: 'padding:10px;',
labelWidth: 150, autoScroll: true,
defaults: {width: 500},
items: [
{
xtype: 'fieldset',
defaults: {width: 250},
title: false,
items: [
{
xtype: 'combo',
fieldLabel: FR.T('Default language'),
name: 'settings[ui_default_language]', hiddenName: 'settings[ui_default_language]',
autoCreate: true, mode: 'local', editable: false,
emptyText: FR.T('Select...'),
displayField: 'name', valueField: 'id',
triggerAction:'all', disableKeyFilter: true,
value: FR.settings.ui_default_language,
store: new Ext.data.SimpleStore({fields: ['id', 'name'], data: FR.languages}),
helpText: FR.T('Applies only to first time visitors. Your language preference has already been saved to your browser. You will not see a change if you select a different option here and logout, unless you specifically change it from the login form.')
},
{
xtype: 'checkbox',
boxLabel: FR.T('Display language menu'),
width: 400, value: 1,
name: 'settings[ui_display_language_menu]', checked: parseInt(FR.settings.ui_display_language_menu)
},
{
xtype: 'compositefield',
fieldLabel: FR.T('Upload language file'),
items:[
{xtype: 'button', text: FR.T('Upload file..'), iconCls: 'fa fa-fw fa-upload', cls: 'fr-btn-primary fr-btn-smaller fr-btn-nomargin color-white',
listeners: {
'afterrender': function() {
this.flow = new Flow({
target: '?module=cpanel§ion=settings&page=interface&action=upload_translation',
singleFile: true, startOnSubmit: true,
validateChunkResponse: function(status, message) {
if (status != '200') {return 'retry';}
try {var rs = Ext.util.JSON.decode(message);} catch (er){return 'retry';}
if (rs) {if (rs.success) {return 'success';} else {return 'error';}}
}
});
this.flow.on('fileSuccess', function(file, message) {
try {var rs = Ext.util.JSON.decode(message);} catch (er){
FR.feedback('Unexpected server reply: '+message);
}
if (rs && rs.msg) {FR.feedback(rs.msg);}
});
this.flow.on('fileError', function(file, message) {
try {var rs = Ext.util.JSON.decode(message);} catch (er){
FR.feedback('Unexpected server reply: '+message);
}
if (rs && rs.msg) {FR.feedback(rs.msg);}
});
}
},
handler: function() {
this.flow.removeAll();
this.flow.browseFiles();
}
},{xtype: 'displayfield'}
]
}
]
},
{
xtype: 'fieldset',
defaults: {width: 250},
items: [
{
xtype: 'radiogroup', vertical: true, columns: 1,
fieldLabel: FR.T('Default display mode'),
items: [
{boxLabel: ' '+FR.T('Detailed list'), name: 'settings[ui_default_view]', inputValue: 'list', checked: (FR.settings.ui_default_view == 'list')},
{boxLabel: ' '+FR.T('Thumbnails'), name: 'settings[ui_default_view]', inputValue: 'thumbnails', checked: (FR.settings.ui_default_view == 'thumbnails')},
{boxLabel: ' '+FR.T('Photos'), name: 'settings[ui_default_view]', inputValue: 'photos', checked: (FR.settings.ui_default_view == 'photos')},
{boxLabel: ' '+FR.T('Music'), name: 'settings[ui_default_view]', inputValue: 'music', checked: (FR.settings.ui_default_view == 'music')}
]
},
{xtype: 'displayfield'},
{
xtype: 'textfield',
fieldLabel: FR.T('Thumbnail size'), width: 50,
name: 'settings[thumbnails_size]', value: FR.settings.thumbnails_size
},
{
xtype: 'textfield',
fieldLabel: FR.T('Photos thumbnail size'), width: 50,
name: 'settings[ui_photos_thumbnail_size]', value: FR.settings.ui_photos_thumbnail_size
},
{
xtype: 'checkbox',
fieldLabel: FR.T('Detailed list'),
boxLabel: FR.T('Show thumbnails'),
value: 1,
name: 'settings[ui_thumbs_in_detailed]', checked: parseInt(FR.settings.ui_thumbs_in_detailed)
}
]
},
{
xtype: 'fieldset',
defaults: {width: 250},
items: [
{
xtype: 'checkboxgroup', vertical: true, columns: 1,
fieldLabel: FR.T('Show media library'),
items: [
{boxLabel: FR.T('Photos'), name: 'settings[ui_media_folders_photos_enable]', inputValue: 1, checked: parseInt(FR.settings.ui_media_folders_photos_enable)},
{boxLabel: FR.T('Music'), name: 'settings[ui_media_folders_music_enable]', inputValue: 1, checked: parseInt(FR.settings.ui_media_folders_music_enable)}
]
},
{
xtype: 'combo',
fieldLabel: FR.T('Double-click files action'),
name: 'settings[ui_double_click]', hiddenName: 'settings[ui_double_click]',
autoCreate: true, mode: 'local', editable: false,
emptyText: FR.T('Select...'),
displayField: 'name', valueField: 'id',
triggerAction:'all', disableKeyFilter: true,
value: FR.settings.ui_double_click,
store: new Ext.data.SimpleStore({fields: ['id', 'name'], data: [
['preview', FR.T('open preview')],
['downloadb', FR.T('open in browser')],
['download', FR.T('prompt to save')],
['showmenu', FR.T('display contextual menu')]
]})
},
{
xtype: 'checkbox',
fieldLabel: FR.T('Enable file rating'),
value: 1,
name: 'settings[ui_enable_rating]', checked: parseInt(FR.settings.ui_enable_rating)
}
]
}
],
tbar: [
{
text: FR.T('Save changes'), cls: 'fr-btn-primary',
ref: 'saveBtn',
handler: function() {
var editForm = this.ownerCt.ownerCt;
var opts = {
url: FR.URLRoot+'/?module=cpanel§ion=settings&action=save',
maskText: 'Saving changes...',
params: Ext.apply({
'settings[ui_display_language_menu]': 0,
'settings[ui_media_folders_photos_enable]': 0,
'settings[ui_media_folders_music_enable]': 0,
'settings[ui_thumbs_in_detailed]': 0,
'settings[ui_enable_rating]': 0
}, editForm.form.getValues())
};
editForm.submitForm(opts);
}
}
]
});
Ext.getCmp('appTab').add(FR.editSettings.formPanel);
Ext.getCmp('appTab').doLayout();