FR.addRole = {};
if (FR.user.isIndep) {
FR.addRole.homeFolderHelpText = FR.T('This folder will be automatically created in your home folder, if it doesn\'t exists already.');
} else {
FR.addRole.homeFolderHelpText = FR.T('Type the path to a folder on your server. This is the user\'s personal working space.
Examples: c:/users/group_name
/home/users/group_name');
}
FR.addRole.homeFolderHelpText += '
'+FR.T('{USERNAME} will be automatically replaced with each user\'s login name.')+'
'+
FR.T('{NAME} will be automatically replaced with this user\'s name.')+'
'+
FR.T('{EMAIL} will be automatically replaced with this user\'s e-mail.')+'
'+
FR.T('{COMPANY} will be automatically replaced with this user\'s company name.');
Ext.getCmp('gridTabPanel').add(new FR.components.editForm({
title: FR.T('Add Role'),
items: {
xtype: 'tabpanel',
activeTab: 0, deferredRender: false,
defaults: {autoScroll: true, bodyStyle:'padding:10px', hideMode: 'offsets'},
listeners: {'render': function() {
if (!FR.user.isSuperuser) {this.hideTabStripItem(2);}
if (FR.system.isFree || FR.system.isFreelancer) {
this.hideTabStripItem(2);
}
}},
items: [
{
title: FR.T('Basic Information'),
items: [{
xtype: 'fieldset',
width: 500,
defaults: {width: 200},
items: [
{
xtype: 'textfield',
fieldLabel: FR.T('Role name'),
name: 'name',
value: ''
},{
xtype: 'textarea',
fieldLabel: FR.T('Description'),
name: 'description', width: 300,
value: ''
}
]
}]
},
{
title: FR.T('Permissions'),
defaults: {
xtype: 'fieldset',
width: 500
},
items: [
{
hidden: !FR.userCanSetHomeFolder,
title: FR.T('Home folder'),
items: [
{
xtype: 'textfield',
fieldLabel: FR.T('Path template'),
name: 'homefolder', width: 300,
helpText: FR.addRole.homeFolderHelpText,
value: FR.user.isIndep ? '' : FR.adminHomeFolderPath
},
{
xtype: 'checkbox',
boxLabel: FR.T('Automatically create the folder if it doesn\'t exists.'), value: 1,
name: 'create_folder', checked: true, hidden: FR.user.isIndep
}
]
},
{
title: FR.T('Permissions'), labelWidth: 10,
items: [
{
xtype: 'fieldset',
title: 'Access',
defaults: {xtype: 'checkbox'},
items: [
{
boxLabel: FR.T('User can download files'), value: 1,
name: 'download', checked: true,
listeners: {
'check': function(field, checked) {
this.ownerCt.ownerCt.shareFieldSet.setDisabled(!checked);
this.ownerCt.downloadFolders.setDisabled(!checked);
this.ownerCt.fileLog.setDisabled(!checked);
}
}
},
{
boxLabel: FR.T('User can zip and download folders'), value: 1, ref: 'downloadFolders',
name: 'download_folders', checked: true
},
{xtype: 'displayfield', value: ''},
{
boxLabel: FR.T('User can read comments and view labels'), value: 1,
name: 'read_comments', checked: true
},
{
boxLabel: FR.T('User can write comments and set labels'), value: 1,
name: 'write_comments', checked: true
},
{xtype: 'displayfield', value: ''},
{
boxLabel: FR.T('User can access tags, ratings and other metadata'), value: 1,
name: 'metadata', checked: true
},
{
boxLabel: FR.T('User can access the files\' activity logs'), value: 1, ref: 'fileLog',
hidden: (FR.settings.disable_file_history || FR.system.isFree || FR.system.isFreelancer),
name: 'file_history', checked: false
}
]
},
{
xtype: 'fieldset',
title: 'Share', ref: 'shareFieldSet',
defaults: {xtype: 'checkbox'},
items: [
{
boxLabel: FR.T('User can share with other users'), value: 1,
name: 'share', checked: false,
listeners: {
'check': function(field, checked) {
this.ownerCt.shareWithGuests.setDisabled(!checked);
}
}
},
{
boxLabel: FR.T('User can share with guest users'), value: 1, ref: 'shareWithGuests',
name: 'share_guests', checked: false,
disabled: true
},
{
boxLabel: FR.T('User can share via web links'),
name: 'weblink', checked: true
},
{
boxLabel: FR.T('User can share via e-mail'), value: 1,
name: 'email', checked: true
}
]
},
{
xtype: 'fieldset',
title: 'Change',
defaults: {xtype: 'checkbox'},
items: [
{
boxLabel: FR.T('User can upload files and folders'), value: 1,
name: 'upload', checked: true
},
{
boxLabel: FR.T('User can make changes to files and folders'), value: 1,
name: 'changes', checked: true
},
{xtype: 'displayfield', value: ''},
{
boxLabel: FR.T('User can change the password'), value: 1,
name: 'change_pass', checked: true
},
{
boxLabel: FR.T('User can change personal information'), value: 1,
name: 'edit_profile', checked: true
}
]
}
]
},
{
labelWidth: 150,
items: [
{
xtype: 'userslistfield', allowAll: true, showSelf: true,
allItemsText: FR.T('[All users]'), tcfg: {height: 150, width: 250},
name: 'users_may_see', value: '-ALL-',
helpText: FR.T('Use this setting to allow the user to access folders shared by other users.'),
fieldLabel: FR.T('Can see and exchange files with')
}
]
},
{
labelWidth: 150,
defaultType: 'textfield', defaults: {width: 60},
items: [
{
fieldLabel: FR.T('Space quota'),
name: 'space_quota_max',
helpText: FR.T('The values are in megabytes. The value of 0 disables the limitation.'),
value: '',
hidden: FR.system.isFree
},
{
fieldLabel: FR.T('Upload max file size'),
name: 'upload_max_size',
value: ''
},
{
fieldLabel: FR.T('Allowed file types'),
name: 'upload_limit_types',
value: '', width: 250,
helpText:
FR.T('Specify a list of file types the user will be limited to when upload files.')+
'
'+
FR.T('An empty field will allow the user to upload any type of file.')+
'
'+
FR.T('Example list:')+' jpg,mp3,docx,txt'
}
]
}
]
},
{
title: FR.T('Admin'),
ref: 'adminTab',
items: [
{
xtype: 'fieldset',
width: 500,
items: [
{
xtype: 'radiogroup',
fieldLabel: FR.T('Admin'),
columns: 1,
items: [
{boxLabel: FR.T('No'), name: 'admin_type', inputValue: '', value: '', checked: true},
{boxLabel: FR.T('Yes'), name: 'admin_type', inputValue: 'simple', value: 'simple', checked: false},
{boxLabel: FR.T('Yes, Independent'), name: 'admin_type', inputValue: 'indep', value: 'indep', checked: false, helpText: FR.T('- Can only see and manage users, groups, etc. created by himself.')+'
'+FR.T('- He can assign space quotas within a total of his own space quota.')}
],
listeners: {
'change': function(f, checked) {
f.ownerCt.ownerCt.adminPermsFieldset.setVisible((checked.value == 'simple'));
f.ownerCt.ownerCt.adminHomeFolderFieldset.setVisible((checked.value != ''));
f.ownerCt.ownerCt.maxUsersFieldset.setVisible((checked.value == 'indep'));
}
}
}
]
},
{
ref: 'adminPermsFieldset',
xtype: 'fieldset',
title: FR.T('Admin permissions'),
width: 500, hidden: true,
defaults: {xtype: 'checkbox'},
items: [
{
boxLabel: FR.T('User can create new user accounts.'), inputValue: 1,
name: 'admin_users', checked: true
},
{
boxLabel: FR.T('User can manage roles.'), inputValue: 1,
name: 'admin_roles', checked: true
},
{
boxLabel: FR.T('User can manage notifications.'), inputValue: 1,
name: 'admin_notifications', checked: true
},
{
boxLabel: FR.T('User can access the activity logs.'), inputValue: 1,
name: 'admin_logs', checked: true
},
{
boxLabel: FR.T('User can change the metadata settings.'), inputValue: 1,
name: 'admin_metadata', checked: true
},
{xtype: 'displayfield', value: ''},
{xtype: 'userslistfield', only: 'groups', allowAll: true, allItemsText: FR.T('[All groups]'),
name: 'admin_over', value: '-ALL-',
tcfg: {title: FR.T('Can manage'), height: 150, width: 300}
}
]
},
{
ref: 'maxUsersFieldset',
xtype: 'fieldset',
width: 500, hidden: true,
items: [
{
xtype: 'textfield',
fieldLabel: FR.T('Max users'),
name: 'admin_max_users', width: 60,
helpText: FR.T('This is the maximum number of user accounts this independent admin user can create.')+
'
'+
FR.T('Setting the value to zero will allow the admin to add an unlimited number of users.'),
value: ''
}
]
},
{
ref: 'adminHomeFolderFieldset',
xtype: 'fieldset',
width: 500, hidden: true,
items: [
{
xtype: 'textfield',
fieldLabel: FR.T('Home folder
template path'),
name: 'admin_homefolder_template', width: 300,
helpText:
FR.T('The users created by this administrator will have their home folders set depending on this template.')+'
'+
FR.T('Leave the field empty to allow the admin to set the paths manually.')+'
'+
FR.T('Example: /home/users/{USERNAME}')+'
'+
FR.T('{USERNAME} will be automatically replaced with each user\'s login name.')+'
'+
FR.T('{ADMUSERNAME} will be automatically replaced with this user\'s login name.')+'
'+
FR.T('{NAME} will be automatically replaced with this user\'s name.')+'
'+
FR.T('{EMAIL} will be automatically replaced with this user\'s e-mail.')+'
'+
FR.T('{COMPANY} will be automatically replaced with this user\'s company name.'),
value: FR.user.isIndep ? '' : FR.adminHomeFolderPath
}
]
}
]
}
]},
tbar: [
{
text: FR.T('Add Role'),
cls: 'fr-btn-primary',
ref: 'saveBtn',
handler: function() {
this.ownerCt.ownerCt.submitForm({
url: FR.URLRoot+'/?module=user_roles§ion=cpanel&page=add&action=add',
maskText: 'Saving changes...'
});
}
}
]
})).show();