pve-manager/www/manager/dc/AuthEdit.js
2011-08-25 09:38:51 +02:00

138 lines
3.8 KiB
JavaScript

Ext.define('PVE.dc.AuthEdit', {
extend: 'PVE.window.Edit',
alias: ['widget.pveDcAuthEdit'],
initComponent : function() {
var me = this;
me.create = !me.realm;
var url;
var method;
var serverlist;
if (me.create) {
url = '/api2/extjs/access/domains';
method = 'POST';
} else {
url = '/api2/extjs/access/domains/' + me.realm;
method = 'PUT';
}
var column1 = [
{
xtype: me.create ? 'textfield' : 'displayfield',
name: 'realm',
fieldLabel: 'Realm',
value: me.realm,
emptyText: 'company.net',
allowBlank: false
},
{
xtype: 'textfield',
name: 'base_dn',
fieldLabel: 'Base Domain Name',
emptyText: 'CN=Users,DC=Company,DC=net',
allowBlank: false
},
{
xtype: 'textfield',
name: 'user_attr',
emptyText: 'uid / sAMAccountName',
fieldLabel: 'User Attribute Name',
allowBlank: false
},
{
xtype: 'textfield',
name: 'comment',
fieldLabel: 'Comment',
emptyText: 'Enterprise Directory Server',
allowBlank: false
},
{
xtype: 'pvecheckbox',
fieldLabel: 'Default Realm',
name: 'default',
uncheckedValue: 0
}
];
var column2 = [
Ext.create('PVE.form.KVComboBox', {
fieldLabel: 'Server Type',
name: 'type',
data: [
['ad', 'Active Directory Server'],
['ldap', 'LDAP/LDAPs Server']
]
}),
{
xtype: 'textfield',
fieldLabel: 'Server Address',
name: 'servers',
emptyText: '192.168.2.23,ldap.company.net',
listeners: {
change: function(combo, newValue){
serverlist = newValue.split(',');
}
},
submitValue: false,
allowBlank: false
},
{
xtype: 'numberfield',
name: 'port',
fieldLabel: 'Server Port',
minValue: 1,
maxValue: 65535,
allowBlank: false
},
{
xtype: 'pvecheckbox',
fieldLabel: 'SSL',
name: 'secure',
uncheckedValue: 0
}
];
var ipanel = Ext.create('PVE.panel.InputPanel', {
column1: column1,
column2: column2,
onGetValues: function(values) {
var i;
for (i=0; i<serverlist.length; i++) {
var num = i + 1;
values['server' + num.toString()] = serverlist[i];
}
return values;
}
});
Ext.applyIf(me, {
title: me.create ? "Create Auth" : "Edit Auth '" + me.realm + "'",
url: url,
method: method,
items: [ ipanel ]
});
me.callParent();
if (!me.create) {
me.load({
success: function(response, options) {
var data = response.result.data || {};
var count = 1;
while (data['server' + count.toString()]) {
if (data.servers) {
data.servers += ',';
}
data.servers += data['server' + count.toString()];
count++;
}
me.setValues(data);
}
});
}
}
});