mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
297 lines
10 KiB
JavaScript
297 lines
10 KiB
JavaScript
// Licensed to the Apache Software Foundation (ASF) under one
|
|
// or more contributor license agreements. See the NOTICE file
|
|
// distributed with this work for additional information
|
|
// regarding copyright ownership. The ASF licenses this file
|
|
// to you under the Apache License, Version 2.0 (the
|
|
// "License"); you may not use this file except in compliance
|
|
// with the License. You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing,
|
|
// software distributed under the License is distributed on an
|
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
// KIND, either express or implied. See the License for the
|
|
// specific language governing permissions and limitations
|
|
// under the License.
|
|
|
|
(function(cloudStack) {
|
|
cloudStack.sections['global-settings'] = {
|
|
title: 'label.menu.global.settings',
|
|
id: 'global-settings',
|
|
sectionSelect: {
|
|
label: 'label.select-view'
|
|
},
|
|
sections: {
|
|
globalSettings: {
|
|
type: 'select',
|
|
title: 'label.menu.global.settings',
|
|
listView: {
|
|
label: 'label.menu.global.settings',
|
|
actions: {
|
|
edit: {
|
|
label: 'label.change.value',
|
|
action: function(args) {
|
|
var data = {
|
|
name: args.data.jsonObj.name,
|
|
value: args.data.value
|
|
};
|
|
$.ajax({
|
|
url: createURL('updateConfiguration'),
|
|
data: data,
|
|
success: function(json) {
|
|
var item = json.updateconfigurationresponse.configuration;
|
|
if(item.category == "Usage")
|
|
cloudStack.dialog.notice({ message: _l('message.restart.mgmt.usage.server') });
|
|
else
|
|
cloudStack.dialog.notice({ message: _l('message.restart.mgmt.server') });
|
|
args.response.success({data: item});
|
|
},
|
|
error: function(json) {
|
|
args.response.error(parseXMLHttpResponse(json));
|
|
}
|
|
});
|
|
}
|
|
}
|
|
},
|
|
fields: {
|
|
name: { label: 'label.name', id: true },
|
|
description: { label: 'label.description' },
|
|
value: { label: 'label.value', editable: true }
|
|
},
|
|
dataProvider: function(args) {
|
|
var data = {
|
|
page: args.page,
|
|
pagesize: pageSize
|
|
};
|
|
|
|
if (args.filterBy.search.value) {
|
|
data.name = args.filterBy.search.value;
|
|
}
|
|
|
|
$.ajax({
|
|
url: createURL('listConfigurations'),
|
|
data: data,
|
|
dataType: "json",
|
|
async: true,
|
|
success: function(json) {
|
|
var items = json.listconfigurationsresponse.configuration;
|
|
args.response.success({ data: items });
|
|
}
|
|
});
|
|
}
|
|
}
|
|
},
|
|
|
|
ldapConfiguration:{
|
|
type:'select',
|
|
title:'LDAP Configuration',
|
|
listView:{
|
|
id:'ldap',
|
|
label:'LDAP Configuration',
|
|
fields:{
|
|
hostname: {label: 'Hostname'},
|
|
queryfilter: {label: 'Query Filter'},
|
|
searchbase: {label: 'Search Base'},
|
|
port: {label: 'LDAP Port'},
|
|
ssl: {
|
|
label: 'SSL'
|
|
|
|
}
|
|
|
|
},
|
|
dataProvider:function(args){
|
|
var data = {};
|
|
listViewDataProvider(args, data);
|
|
$.ajax({
|
|
url: createURL('ldapConfig&listall=true'), //Need a list LDAP configuration API call which needs to be implemented
|
|
data: data,
|
|
success: function(json) {
|
|
var items = json.ldapconfigresponse.ldapconfig;
|
|
args.response.success({data:items});
|
|
},
|
|
error: function(data) {
|
|
args.response.error(parseXMLHttpResponse(data));
|
|
}
|
|
});
|
|
},
|
|
|
|
actions: {
|
|
add:{
|
|
|
|
label: 'Configure LDAP',
|
|
|
|
messages: {
|
|
confirm: function(args) {
|
|
return 'Do you really want to configure LDAP ? ';
|
|
},
|
|
notification: function(args) {
|
|
return 'LDAP configured';
|
|
}
|
|
},
|
|
|
|
createForm: {
|
|
|
|
title: 'Configure LDAP',
|
|
fields:{
|
|
name:{label: 'Bind DN' , validation: {required:true} },
|
|
password: {label: 'Bind Password', validation: {required: true },isPassword:true },
|
|
hostname: {label:'Hostname' , validation:{required:true}},
|
|
queryfilter: {label:'Query Filter' , validation: {required:true}},
|
|
searchbase: {label:'SearchBase',validation:{required:true}},
|
|
ssl: {
|
|
label:'SSL' ,
|
|
isBoolean:true,
|
|
isChecked:false
|
|
|
|
},
|
|
port: { label: 'Port' , defaultValue: '389' },
|
|
truststore:{ label:'Trust Store' , isHidden:true , dependsOn:'ssl',validation:{required:true} },
|
|
truststorepassword:{ label:'Trust Store Password' ,isHidden:true , dependsOn:'ssl', validation:{required:true}}
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
action:function(args) {
|
|
var array = [];
|
|
array.push("&binddn=" + todb(args.data.name));
|
|
array.push("&bindpass=" + todb(args.data.password));
|
|
array.push("&hostname=" + todb(args.data.hostname));
|
|
array.push("&searchbase=" +todb(args.data.searchbase));
|
|
array.push("&queryfilter=" +todb(args.data.queryfilter));
|
|
array.push("&port=" +todb(args.data.port));
|
|
|
|
if(args.$form.find('.form-item[rel=ssl]').find('input[type=checkbox]').is(':Checked')== true) {
|
|
|
|
array.push("&ssl=true");
|
|
if(args.data.truststore != "")
|
|
array.push("&truststore=" +todb(args.data.truststore));
|
|
|
|
if(args.data.truststorepassword !="")
|
|
array.push("&truststorepass=" +todb(args.data.truststorepassword));
|
|
|
|
}
|
|
|
|
else
|
|
array.push("&ssl=false");
|
|
|
|
$.ajax({
|
|
url: createURL("ldapConfig" + array.join("")),
|
|
dataType: "json",
|
|
async: true,
|
|
success: function(json) {
|
|
var items = json.ldapconfigresponse.ldapconfig;
|
|
args.response.success({
|
|
data: items
|
|
});
|
|
|
|
},
|
|
|
|
error:function(json){
|
|
args.response.error(parseXMLHttpResponse(json));
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
hypervisorCapabilities: {
|
|
type: 'select',
|
|
title: 'label.hypervisor.capabilities',
|
|
listView: {
|
|
id: 'hypervisorCapabilities',
|
|
label: 'label.hypervisor.capabilities',
|
|
fields: {
|
|
hypervisor: { label: 'label.hypervisor' },
|
|
hypervisorversion: { label: 'label.hypervisor.version' },
|
|
maxguestslimit: { label: 'label.max.guest.limit' }
|
|
},
|
|
dataProvider: function(args) {
|
|
var data = {};
|
|
listViewDataProvider(args, data);
|
|
|
|
$.ajax({
|
|
url: createURL('listHypervisorCapabilities'),
|
|
data: data,
|
|
success: function(json) {
|
|
var items = json.listhypervisorcapabilitiesresponse.hypervisorCapabilities;
|
|
args.response.success({data:items});
|
|
},
|
|
error: function(data) {
|
|
args.response.error(parseXMLHttpResponse(data));
|
|
}
|
|
});
|
|
},
|
|
|
|
detailView: {
|
|
name: 'label.details',
|
|
actions: {
|
|
edit: {
|
|
label: 'label.edit',
|
|
action: function(args) {
|
|
var data = {
|
|
id: args.context.hypervisorCapabilities[0].id,
|
|
maxguestslimit: args.data.maxguestslimit
|
|
};
|
|
|
|
$.ajax({
|
|
url: createURL('updateHypervisorCapabilities'),
|
|
data: data,
|
|
success: function(json) {
|
|
var item = json.updatehypervisorcapabilitiesresponse['null'];
|
|
args.response.success({data: item});
|
|
},
|
|
error: function(data) {
|
|
args.response.error(parseXMLHttpResponse(data));
|
|
}
|
|
});
|
|
}
|
|
}
|
|
},
|
|
|
|
tabs: {
|
|
details: {
|
|
title: 'label.details',
|
|
fields: [
|
|
{
|
|
id: { label: 'label.id' },
|
|
hypervisor: { label: 'label.hypervisor' },
|
|
hypervisorversion: { label: 'label.hypervisor.version' },
|
|
maxguestslimit: {
|
|
label: 'label.max.guest.limit',
|
|
isEditable: true
|
|
}
|
|
}
|
|
],
|
|
dataProvider: function(args) {
|
|
args.response.success(
|
|
{
|
|
data:args.context.hypervisorCapabilities[0]
|
|
}
|
|
);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
})(cloudStack);
|