mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-27 10:50:10 +03:00
Add quota information to the configuration panel
This commit is contained in:
parent
e48873fd9e
commit
23eec04e0b
@ -824,69 +824,7 @@ var OpenNebula = {
|
||||
dataType: "json",
|
||||
success: function(response){
|
||||
// Get the default group quotas
|
||||
default_group_quotas = response.GROUP_POOL.DEFAULT_GROUP_QUOTAS;
|
||||
|
||||
// Initialize the VM_QUOTA to unlimited if it does not exist
|
||||
if ($.isEmptyObject(default_group_quotas.VM_QUOTA)){
|
||||
default_group_quotas.VM_QUOTA = {
|
||||
"VM" : {
|
||||
"VMS" : "0",
|
||||
"MEMORY" : "0",
|
||||
"CPU" : "0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Replace the DATASTORE array with a map
|
||||
|
||||
var ds_quotas = [];
|
||||
|
||||
if ($.isArray(default_group_quotas.DATASTORE_QUOTA.DATASTORE))
|
||||
ds_quotas = default_group_quotas.DATASTORE_QUOTA.DATASTORE;
|
||||
else if (default_group_quotas.DATASTORE_QUOTA.DATASTORE)
|
||||
ds_quotas = [default_group_quotas.DATASTORE_QUOTA.DATASTORE];
|
||||
|
||||
delete default_group_quotas.DATASTORE_QUOTA;
|
||||
|
||||
default_group_quotas.DATASTORE_QUOTA = {};
|
||||
|
||||
for (var i=0; i < ds_quotas.length; i++){
|
||||
default_group_quotas.DATASTORE_QUOTA[ds_quotas[i].ID] = ds_quotas[i]
|
||||
}
|
||||
|
||||
// Replace the IMAGE array with a map
|
||||
|
||||
var img_quotas = [];
|
||||
|
||||
if ($.isArray(default_group_quotas.IMAGE_QUOTA.IMAGE))
|
||||
img_quotas = default_group_quotas.IMAGE_QUOTA.IMAGE;
|
||||
else if (default_group_quotas.IMAGE_QUOTA.IMAGE)
|
||||
img_quotas = [default_group_quotas.IMAGE_QUOTA.IMAGE];
|
||||
|
||||
delete default_group_quotas.IMAGE_QUOTA;
|
||||
|
||||
default_group_quotas.IMAGE_QUOTA = {};
|
||||
|
||||
for (var i=0; i < img_quotas.length; i++){
|
||||
default_group_quotas.IMAGE_QUOTA[img_quotas[i].ID] = img_quotas[i]
|
||||
}
|
||||
|
||||
// Replace the NETWORK array with a map
|
||||
|
||||
var net_quotas = [];
|
||||
|
||||
if ($.isArray(default_group_quotas.NETWORK_QUOTA.NETWORK))
|
||||
net_quotas = default_group_quotas.NETWORK_QUOTA.NETWORK;
|
||||
else if (default_group_quotas.NETWORK_QUOTA.NETWORK)
|
||||
net_quotas = [default_group_quotas.NETWORK_QUOTA.NETWORK];
|
||||
|
||||
delete default_group_quotas.NETWORK_QUOTA;
|
||||
|
||||
default_group_quotas.NETWORK_QUOTA = {};
|
||||
|
||||
for (var i=0; i < net_quotas.length; i++){
|
||||
default_group_quotas.NETWORK_QUOTA[net_quotas[i].ID] = net_quotas[i]
|
||||
}
|
||||
default_group_quotas = Quotas.default_quotas(response.GROUP_POOL.DEFAULT_GROUP_QUOTAS);
|
||||
|
||||
var list = OpenNebula.Helper.pool(resource,response)
|
||||
return callback ?
|
||||
@ -936,70 +874,7 @@ var OpenNebula = {
|
||||
data: {timeout: timeout},
|
||||
dataType: "json",
|
||||
success: function(response){
|
||||
// Get the default user quotas
|
||||
default_user_quotas = response.USER_POOL.DEFAULT_USER_QUOTAS;
|
||||
|
||||
// Initialize the VM_QUOTA to unlimited if it does not exist
|
||||
if ($.isEmptyObject(default_user_quotas.VM_QUOTA)){
|
||||
default_user_quotas.VM_QUOTA = {
|
||||
"VM" : {
|
||||
"VMS" : "0",
|
||||
"MEMORY" : "0",
|
||||
"CPU" : "0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Replace the DATASTORE array with a map
|
||||
|
||||
var ds_quotas = [];
|
||||
|
||||
if ($.isArray(default_user_quotas.DATASTORE_QUOTA.DATASTORE))
|
||||
ds_quotas = default_user_quotas.DATASTORE_QUOTA.DATASTORE;
|
||||
else if (default_user_quotas.DATASTORE_QUOTA.DATASTORE)
|
||||
ds_quotas = [default_user_quotas.DATASTORE_QUOTA.DATASTORE];
|
||||
|
||||
delete default_user_quotas.DATASTORE_QUOTA;
|
||||
|
||||
default_user_quotas.DATASTORE_QUOTA = {};
|
||||
|
||||
for (var i=0; i < ds_quotas.length; i++){
|
||||
default_user_quotas.DATASTORE_QUOTA[ds_quotas[i].ID] = ds_quotas[i]
|
||||
}
|
||||
|
||||
// Replace the IMAGE array with a map
|
||||
|
||||
var img_quotas = [];
|
||||
|
||||
if ($.isArray(default_user_quotas.IMAGE_QUOTA.IMAGE))
|
||||
img_quotas = default_user_quotas.IMAGE_QUOTA.IMAGE;
|
||||
else if (default_user_quotas.IMAGE_QUOTA.IMAGE)
|
||||
img_quotas = [default_user_quotas.IMAGE_QUOTA.IMAGE];
|
||||
|
||||
delete default_user_quotas.IMAGE_QUOTA;
|
||||
|
||||
default_user_quotas.IMAGE_QUOTA = {};
|
||||
|
||||
for (var i=0; i < img_quotas.length; i++){
|
||||
default_user_quotas.IMAGE_QUOTA[img_quotas[i].ID] = img_quotas[i]
|
||||
}
|
||||
|
||||
// Replace the NETWORK array with a map
|
||||
|
||||
var net_quotas = [];
|
||||
|
||||
if ($.isArray(default_user_quotas.NETWORK_QUOTA.NETWORK))
|
||||
net_quotas = default_user_quotas.NETWORK_QUOTA.NETWORK;
|
||||
else if (default_user_quotas.NETWORK_QUOTA.NETWORK)
|
||||
net_quotas = [default_user_quotas.NETWORK_QUOTA.NETWORK];
|
||||
|
||||
delete default_user_quotas.NETWORK_QUOTA;
|
||||
|
||||
default_user_quotas.NETWORK_QUOTA = {};
|
||||
|
||||
for (var i=0; i < net_quotas.length; i++){
|
||||
default_user_quotas.NETWORK_QUOTA[net_quotas[i].ID] = net_quotas[i]
|
||||
}
|
||||
default_user_quotas = Quotas.default_quotas(response.USER_POOL.DEFAULT_USER_QUOTAS);
|
||||
|
||||
var list = OpenNebula.Helper.pool(resource,response)
|
||||
return callback ?
|
||||
|
@ -68,12 +68,10 @@ var config_tab_content =
|
||||
<div class="reveal-body">\
|
||||
<form id="config_form">\
|
||||
<div class="row">\
|
||||
<div class="six columns">\
|
||||
<div class="row">\
|
||||
<div class="eight columns">\
|
||||
<div class="six columns">\
|
||||
<label class="right inline" for="lang_sel" >' + tr("Language") + ':</label>\
|
||||
</div>\
|
||||
<div class="four columns">\
|
||||
<div class="six columns">\
|
||||
<select id="lang_sel">\
|
||||
<option value="ca">'+tr("Catalan")+'</option>\
|
||||
<option value="zh_TW">'+tr("Chinese (TW)")+'</option>\
|
||||
@ -93,23 +91,31 @@ var config_tab_content =
|
||||
</div>\
|
||||
</div>\
|
||||
<div class="row">\
|
||||
<div class="eight columns">\
|
||||
<div class="six columns">\
|
||||
<label class="right inline" for="view_sel" >' + tr("Views") + ':</label>\
|
||||
</div>\
|
||||
<div class="four columns">\
|
||||
<div class="six columns">\
|
||||
<select id="view_sel">\
|
||||
</select>\
|
||||
</div>\
|
||||
</div>\
|
||||
<div class="row">\
|
||||
<div class="eight columns">\
|
||||
<div class="six columns">\
|
||||
<label class="right inline" for="wss_checkbox" >' + tr("Secure websockets connection") + ':</label>\
|
||||
</div>\
|
||||
<div class="four columns">\
|
||||
<div class="six columns">\
|
||||
<input id="wss_checkbox" type="checkbox" value="yes" />\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>\
|
||||
<div class="row">\
|
||||
<div class="six columns">\
|
||||
<div id="user_quotas">\
|
||||
</div>\
|
||||
</div>\
|
||||
<div class="six columns">\
|
||||
<div id="group_quotas">\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>\
|
||||
<div class="reveal-footer">\
|
||||
<hr>\
|
||||
@ -130,7 +136,7 @@ function setupConfigDialog() {
|
||||
var dialog = $config_dialog;
|
||||
dialog.html(config_tab_content);
|
||||
|
||||
dialog.addClass("reveal-modal large max-height");
|
||||
dialog.addClass("reveal-modal xlarge max-height");
|
||||
|
||||
setupTips(dialog);
|
||||
|
||||
@ -198,4 +204,52 @@ function tr(str){
|
||||
|
||||
$(document).ready(function(){
|
||||
setupConfigDialog();
|
||||
|
||||
$("span.user-login a.configuration").click(function(){
|
||||
OpenNebula.User.show({
|
||||
data : {
|
||||
id: uid
|
||||
},
|
||||
success: function(request,user_json){
|
||||
var info = user_json.USER;
|
||||
|
||||
var default_user_quotas = Quotas.default_quotas(info.DEFAULT_USER_QUOTAS)
|
||||
var quotas_tab_html = Quotas.vms(info, default_user_quotas);
|
||||
quotas_tab_html += Quotas.cpu(info, default_user_quotas);
|
||||
quotas_tab_html += Quotas.memory(info, default_user_quotas);
|
||||
quotas_tab_html += Quotas.image(info, default_user_quotas);
|
||||
quotas_tab_html += Quotas.network(info, default_user_quotas);
|
||||
quotas_tab_html += Quotas.datastore(info, default_user_quotas);
|
||||
|
||||
$("#user_quotas").html('<div class="row graph_legend">\
|
||||
<h3 class="subheader"><small>'+tr("USER QUOTAS")+ ' ('+ info.ID +':'+ info.NAME + ')</small></h3>\
|
||||
</div>'+
|
||||
quotas_tab_html);
|
||||
}
|
||||
});
|
||||
|
||||
OpenNebula.Group.show({
|
||||
data : {
|
||||
id: gid
|
||||
},
|
||||
success: function(request,group_json){
|
||||
var info = group_json.GROUP;
|
||||
|
||||
var default_group_quotas = Quotas.default_quotas(info.DEFAULT_GROUP_QUOTAS)
|
||||
var quotas_tab_html = Quotas.vms(info, default_group_quotas);
|
||||
quotas_tab_html += Quotas.cpu(info, default_group_quotas);
|
||||
quotas_tab_html += Quotas.memory(info, default_group_quotas);
|
||||
quotas_tab_html += Quotas.image(info, default_group_quotas);
|
||||
quotas_tab_html += Quotas.network(info, default_group_quotas);
|
||||
quotas_tab_html += Quotas.datastore(info, default_group_quotas);
|
||||
|
||||
$("#group_quotas").html('<div class="row graph_legend">\
|
||||
<h3 class="subheader"><small>'+tr("GROUP QUOTAS")+ ' ('+ info.ID +':'+ info.NAME + ')</small></h3>\
|
||||
</div>'+
|
||||
quotas_tab_html);
|
||||
}
|
||||
});
|
||||
|
||||
$config_dialog.reveal();
|
||||
});
|
||||
});
|
@ -543,193 +543,15 @@ function updateGroupsView(request, group_list){
|
||||
function updateGroupInfo(request,group){
|
||||
var info = group.GROUP;
|
||||
|
||||
var quotas_tab_html = '<div class="">';
|
||||
|
||||
if (!$.isEmptyObject(info.VM_QUOTA)){
|
||||
var vms_bar = quotaBar(
|
||||
info.VM_QUOTA.VM.VMS_USED,
|
||||
info.VM_QUOTA.VM.VMS,
|
||||
default_user_quotas.VM_QUOTA.VM.VMS);
|
||||
|
||||
var memory_bar = quotaBarMB(
|
||||
info.VM_QUOTA.VM.MEMORY_USED,
|
||||
info.VM_QUOTA.VM.MEMORY,
|
||||
default_user_quotas.VM_QUOTA.VM.MEMORY);
|
||||
|
||||
var cpu_bar = quotaBarFloat(
|
||||
info.VM_QUOTA.VM.CPU_USED,
|
||||
info.VM_QUOTA.VM.CPU,
|
||||
default_user_quotas.VM_QUOTA.VM.CPU);
|
||||
|
||||
quotas_tab_html +=
|
||||
'<div class="six columns">\
|
||||
<table class="twelve extended_table">\
|
||||
<thead>\
|
||||
<tr>\
|
||||
<th>'+tr("VMs")+'</th>\
|
||||
<th>'+tr("Memory")+'</th>\
|
||||
<th>'+tr("CPU")+'</th>\
|
||||
</tr>\
|
||||
</thead>\
|
||||
<tbody>\
|
||||
<tr>\
|
||||
<td style="height:25px">'+vms_bar+'</td>\
|
||||
<td>'+memory_bar+'</td>\
|
||||
<td>'+cpu_bar+'</td>\
|
||||
</tr>\
|
||||
</tbody>\
|
||||
</table>\
|
||||
</div>'
|
||||
}
|
||||
|
||||
if (!$.isEmptyObject(info.DATASTORE_QUOTA)){
|
||||
quotas_tab_html +=
|
||||
'<div class="six columns">\
|
||||
<table class="twelve datatable extended_table">\
|
||||
<thead>\
|
||||
<tr>\
|
||||
<th style="width:24%">'+tr("Datastore ID")+'</th>\
|
||||
<th style="width:38%">'+tr("Images")+'</th>\
|
||||
<th style="width:38%">'+tr("Size")+'</th>\
|
||||
</tr>\
|
||||
</thead>\
|
||||
<tbody>';
|
||||
|
||||
var ds_quotas = [];
|
||||
|
||||
if ($.isArray(info.DATASTORE_QUOTA.DATASTORE))
|
||||
ds_quotas = info.DATASTORE_QUOTA.DATASTORE;
|
||||
else if (info.DATASTORE_QUOTA.DATASTORE.ID)
|
||||
ds_quotas = [info.DATASTORE_QUOTA.DATASTORE];
|
||||
|
||||
for (var i=0; i < ds_quotas.length; i++){
|
||||
|
||||
var default_ds_quotas = default_user_quotas.DATASTORE_QUOTA[ds_quotas[i].ID]
|
||||
|
||||
if (default_ds_quotas == undefined){
|
||||
default_ds_quotas = {
|
||||
"IMAGES" : "0",
|
||||
"SIZE" : "0"
|
||||
}
|
||||
}
|
||||
|
||||
var img_bar = quotaBar(
|
||||
ds_quotas[i].IMAGES_USED,
|
||||
ds_quotas[i].IMAGES,
|
||||
default_ds_quotas.IMAGES);
|
||||
|
||||
var size_bar = quotaBarMB(
|
||||
ds_quotas[i].SIZE_USED,
|
||||
ds_quotas[i].SIZE,
|
||||
default_ds_quotas.SIZE);
|
||||
|
||||
quotas_tab_html +=
|
||||
'<tr>\
|
||||
<td>'+ds_quotas[i].ID+'</td>\
|
||||
<td>'+img_bar+'</td>\
|
||||
<td>'+size_bar+'</td>\
|
||||
</tr>';
|
||||
}
|
||||
|
||||
quotas_tab_html +=
|
||||
'</tbody>\
|
||||
</table>\
|
||||
</div>';
|
||||
}
|
||||
|
||||
if (!$.isEmptyObject(info.IMAGE_QUOTA)){
|
||||
quotas_tab_html +=
|
||||
'<div class="six columns">\
|
||||
<table class="twelve datatable extended_table">\
|
||||
<thead>\
|
||||
<tr>\
|
||||
<th>'+tr("Image ID")+'</th>\
|
||||
<th>'+tr("Running VMs")+'</th>\
|
||||
</tr>\
|
||||
</thead>\
|
||||
<tbody>';
|
||||
|
||||
var img_quotas = [];
|
||||
|
||||
if ($.isArray(info.IMAGE_QUOTA.IMAGE))
|
||||
img_quotas = info.IMAGE_QUOTA.IMAGE;
|
||||
else if (info.IMAGE_QUOTA.IMAGE.ID)
|
||||
img_quotas = [info.IMAGE_QUOTA.IMAGE];
|
||||
|
||||
for (var i=0; i < img_quotas.length; i++){
|
||||
|
||||
var default_img_quotas = default_user_quotas.IMAGE_QUOTA[img_quotas[i].ID]
|
||||
|
||||
if (default_img_quotas == undefined){
|
||||
default_img_quotas = {
|
||||
"RVMS" : "0"
|
||||
}
|
||||
}
|
||||
|
||||
var rvms_bar = quotaBar(
|
||||
img_quotas[i].RVMS_USED,
|
||||
img_quotas[i].RVMS,
|
||||
default_img_quotas.RVMS);
|
||||
|
||||
quotas_tab_html +=
|
||||
'<tr>\
|
||||
<td>'+img_quotas[i].ID+'</td>\
|
||||
<td>'+rvms_bar+'</td>\
|
||||
</tr>';
|
||||
}
|
||||
|
||||
quotas_tab_html +=
|
||||
'</tbody>\
|
||||
</table>\
|
||||
</div>';
|
||||
}
|
||||
|
||||
if (!$.isEmptyObject(info.NETWORK_QUOTA)){
|
||||
quotas_tab_html +=
|
||||
'<div class="six columns">\
|
||||
<table class="twelve datatable extended_table">\
|
||||
<thead>\
|
||||
<tr>\
|
||||
<th>'+tr("Network ID")+'</th>\
|
||||
<th>'+tr("Leases")+'</th>\
|
||||
</tr>\
|
||||
</thead>\
|
||||
<tbody>';
|
||||
|
||||
var net_quotas = [];
|
||||
|
||||
if ($.isArray(info.NETWORK_QUOTA.NETWORK))
|
||||
net_quotas = info.NETWORK_QUOTA.NETWORK;
|
||||
else if (info.NETWORK_QUOTA.NETWORK.ID)
|
||||
net_quotas = [info.NETWORK_QUOTA.NETWORK];
|
||||
|
||||
for (var i=0; i < net_quotas.length; i++){
|
||||
|
||||
var default_net_quotas = default_user_quotas.NETWORK_QUOTA[net_quotas[i].ID]
|
||||
|
||||
if (default_net_quotas == undefined){
|
||||
default_net_quotas = {
|
||||
"LEASES" : "0"
|
||||
}
|
||||
}
|
||||
|
||||
var leases_bar = quotaBar(
|
||||
net_quotas[i].LEASES_USED,
|
||||
net_quotas[i].LEASES,
|
||||
default_net_quotas.LEASES);
|
||||
|
||||
quotas_tab_html +=
|
||||
'<tr>\
|
||||
<td>'+net_quotas[i].ID+'</td>\
|
||||
<td>'+leases_bar+'</td>\
|
||||
</tr>';
|
||||
}
|
||||
|
||||
quotas_tab_html +=
|
||||
'</tbody>\
|
||||
</table></div>\
|
||||
</div>';
|
||||
}
|
||||
var default_group_quotas = Quotas.default_quotas(info.DEFAULT_GROUP_QUOTAS);
|
||||
var quotas_tab_html = '<div class="four columns">' + Quotas.vms(info, default_group_quotas) + '</div>';
|
||||
quotas_tab_html += '<div class="four columns">' + Quotas.cpu(info, default_group_quotas) + '</div>';
|
||||
quotas_tab_html += '<div class="four columns">' + Quotas.memory(info, default_group_quotas) + '</div>';
|
||||
quotas_tab_html += '<br><br>';
|
||||
quotas_tab_html += '<div class="six columns">' + Quotas.image(info, default_group_quotas) + '</div>';
|
||||
quotas_tab_html += '<div class="six columns">' + Quotas.network(info, default_group_quotas) + '</div>';
|
||||
quotas_tab_html += '<br><br>';
|
||||
quotas_tab_html += '<div class="twelve columns">' + Quotas.datastore(info, default_group_quotas) + '</div>';
|
||||
|
||||
var quotas_tab = {
|
||||
title : tr("Quotas"),
|
||||
|
@ -726,7 +726,7 @@ function updateUsersView(request,users_list){
|
||||
};
|
||||
|
||||
function updateUserInfo(request,user){
|
||||
var user_info = user.USER;
|
||||
var info = user.USER;
|
||||
|
||||
var info_tab = {
|
||||
title : tr("User information"),
|
||||
@ -735,331 +735,52 @@ function updateUserInfo(request,user){
|
||||
<div class="six columns">\
|
||||
<table id="info_user_table" class="twelve datatable extended_table">\
|
||||
<thead>\
|
||||
<tr><th colspan="2">' + tr("User") + ' - '+user_info.NAME+'</th><th></th></tr>\
|
||||
<tr><th colspan="2">' + tr("User") + ' - '+info.NAME+'</th><th></th></tr>\
|
||||
</thead>\
|
||||
<tbody>\
|
||||
<tr>\
|
||||
<td class="key_td">' + tr("ID") + '</td>\
|
||||
<td class="value_td">'+user_info.ID+'</td>\
|
||||
<td class="value_td">'+info.ID+'</td>\
|
||||
<td></td>\
|
||||
</tr>\
|
||||
<tr>' +
|
||||
insert_group_dropdown("User",user_info.ID,user_info.GNAME,user_info.GID) +
|
||||
insert_group_dropdown("User",info.ID,info.GNAME,info.GID) +
|
||||
'</tr>\
|
||||
<tr>\
|
||||
<td class="key_td">' + tr("Authentication driver") + '</td>\
|
||||
<td class="value_td">'+user_info.AUTH_DRIVER+'</td>\
|
||||
<td class="value_td">'+info.AUTH_DRIVER+'</td>\
|
||||
<td></td>\
|
||||
</tr>\
|
||||
</tbody>\
|
||||
</table>\
|
||||
</div>\
|
||||
<div class="six columns">' +
|
||||
insert_extended_template_table(user_info.TEMPLATE,
|
||||
insert_extended_template_table(info.TEMPLATE,
|
||||
"User",
|
||||
user_info.ID,
|
||||
info.ID,
|
||||
tr("Configuration Attributes")) +
|
||||
'</div>\
|
||||
</div>'
|
||||
};
|
||||
|
||||
var quotas_tab_html = '<div class="">';
|
||||
|
||||
quotas_tab_html += '<div class="six columns">'
|
||||
|
||||
if (!$.isEmptyObject(user_info.VM_QUOTA)){
|
||||
var vms_bar = quotaBar(
|
||||
user_info.VM_QUOTA.VM.VMS_USED,
|
||||
user_info.VM_QUOTA.VM.VMS,
|
||||
default_user_quotas.VM_QUOTA.VM.VMS);
|
||||
|
||||
var memory_bar = quotaBarMB(
|
||||
user_info.VM_QUOTA.VM.MEMORY_USED,
|
||||
user_info.VM_QUOTA.VM.MEMORY,
|
||||
default_user_quotas.VM_QUOTA.VM.MEMORY);
|
||||
|
||||
var cpu_bar = quotaBarFloat(
|
||||
user_info.VM_QUOTA.VM.CPU_USED,
|
||||
user_info.VM_QUOTA.VM.CPU,
|
||||
default_user_quotas.VM_QUOTA.VM.CPU);
|
||||
|
||||
quotas_tab_html +=
|
||||
'<table class="twelve datatable extended_table">\
|
||||
<thead>\
|
||||
<tr>\
|
||||
<th>'+tr("VMs")+'</th>\
|
||||
</tr>\
|
||||
</thead>\
|
||||
<tbody>\
|
||||
<tr>\
|
||||
<td style="height:25px">'+vms_bar+'</td>\
|
||||
</tr>\
|
||||
</tbody>\
|
||||
</table>\
|
||||
<table class="twelve datatable extended_table">\
|
||||
<thead>\
|
||||
<tr>\
|
||||
<th>'+tr("CPU")+'</th>\
|
||||
</tr>\
|
||||
</thead>\
|
||||
<tbody>\
|
||||
<tr>\
|
||||
<td style="height:25px">'+cpu_bar+'</td>\
|
||||
</tr>\
|
||||
</tbody>\
|
||||
</table>\
|
||||
<table class="twelve datatable extended_table">\
|
||||
<thead>\
|
||||
<tr>\
|
||||
<th>'+tr("Memory")+'</th>\
|
||||
</tr>\
|
||||
</thead>\
|
||||
<tbody>\
|
||||
<tr>\
|
||||
<td style="height:25px">'+memory_bar+'</td>\
|
||||
</tr>\
|
||||
</tbody>\
|
||||
</table>'
|
||||
}
|
||||
|
||||
if (!$.isEmptyObject(user_info.DATASTORE_QUOTA)){
|
||||
quotas_tab_html +=
|
||||
'<table class="twelve datatable extended_table">\
|
||||
<thead>\
|
||||
<tr>\
|
||||
<th style="width:26%">'+tr("Datastore ID")+'</th>\
|
||||
<th style="width:37%">'+tr("Images")+'</th>\
|
||||
<th style="width:37%">'+tr("Size")+'</th>\
|
||||
</tr>\
|
||||
</thead>\
|
||||
<tbody>';
|
||||
|
||||
var ds_quotas = [];
|
||||
|
||||
if ($.isArray(user_info.DATASTORE_QUOTA.DATASTORE))
|
||||
ds_quotas = user_info.DATASTORE_QUOTA.DATASTORE;
|
||||
else if (user_info.DATASTORE_QUOTA.DATASTORE.ID)
|
||||
ds_quotas = [user_info.DATASTORE_QUOTA.DATASTORE];
|
||||
|
||||
for (var i=0; i < ds_quotas.length; i++){
|
||||
|
||||
var default_ds_quotas = default_user_quotas.DATASTORE_QUOTA[ds_quotas[i].ID]
|
||||
|
||||
if (default_ds_quotas == undefined){
|
||||
default_ds_quotas = {
|
||||
"IMAGES" : "0",
|
||||
"SIZE" : "0"
|
||||
}
|
||||
}
|
||||
|
||||
var img_bar = quotaBar(
|
||||
ds_quotas[i].IMAGES_USED,
|
||||
ds_quotas[i].IMAGES,
|
||||
default_ds_quotas.IMAGES);
|
||||
|
||||
var size_bar = quotaBarMB(
|
||||
ds_quotas[i].SIZE_USED,
|
||||
ds_quotas[i].SIZE,
|
||||
default_ds_quotas.SIZE);
|
||||
|
||||
quotas_tab_html +=
|
||||
'<tr>\
|
||||
<td>'+ds_quotas[i].ID+'</td>\
|
||||
<td>'+img_bar+'</td>\
|
||||
<td>'+size_bar+'</td>\
|
||||
</tr>';
|
||||
}
|
||||
|
||||
quotas_tab_html +=
|
||||
'</tbody>\
|
||||
</table>';
|
||||
}
|
||||
|
||||
quotas_tab_html += '</div>'
|
||||
quotas_tab_html += '<div class="six columns">'
|
||||
|
||||
|
||||
if (!$.isEmptyObject(user_info.IMAGE_QUOTA)){
|
||||
quotas_tab_html +=
|
||||
'<table class="twelve datatable extended_table">\
|
||||
<thead>\
|
||||
<tr>\
|
||||
<th style="width:26%">'+tr("Image ID")+'</th>\
|
||||
<th style="width:74%">'+tr("Running VMs")+'</th>\
|
||||
</tr>\
|
||||
</thead>\
|
||||
<tbody>';
|
||||
|
||||
var img_quotas = [];
|
||||
|
||||
if ($.isArray(user_info.IMAGE_QUOTA.IMAGE))
|
||||
img_quotas = user_info.IMAGE_QUOTA.IMAGE;
|
||||
else if (user_info.IMAGE_QUOTA.IMAGE.ID)
|
||||
img_quotas = [user_info.IMAGE_QUOTA.IMAGE];
|
||||
|
||||
for (var i=0; i < img_quotas.length; i++){
|
||||
|
||||
var default_img_quotas = default_user_quotas.IMAGE_QUOTA[img_quotas[i].ID]
|
||||
|
||||
if (default_img_quotas == undefined){
|
||||
default_img_quotas = {
|
||||
"RVMS" : "0"
|
||||
}
|
||||
}
|
||||
|
||||
var rvms_bar = quotaBar(
|
||||
img_quotas[i].RVMS_USED,
|
||||
img_quotas[i].RVMS,
|
||||
default_img_quotas.RVMS);
|
||||
|
||||
quotas_tab_html +=
|
||||
'<tr>\
|
||||
<td>'+img_quotas[i].ID+'</td>\
|
||||
<td>'+rvms_bar+'</td>\
|
||||
</tr>';
|
||||
}
|
||||
|
||||
quotas_tab_html +=
|
||||
'</tbody>\
|
||||
</table>';
|
||||
}
|
||||
|
||||
if (!$.isEmptyObject(user_info.NETWORK_QUOTA)){
|
||||
quotas_tab_html +=
|
||||
'<table class="twelve datatable extended_table">\
|
||||
<thead>\
|
||||
<tr>\
|
||||
<th style="width:26%">'+tr("Network ID")+'</th>\
|
||||
<th style="width:74%">'+tr("Leases")+'</th>\
|
||||
</tr>\
|
||||
</thead>\
|
||||
<tbody>';
|
||||
|
||||
var net_quotas = [];
|
||||
|
||||
if ($.isArray(user_info.NETWORK_QUOTA.NETWORK))
|
||||
net_quotas = user_info.NETWORK_QUOTA.NETWORK;
|
||||
else if (user_info.NETWORK_QUOTA.NETWORK.ID)
|
||||
net_quotas = [user_info.NETWORK_QUOTA.NETWORK];
|
||||
|
||||
for (var i=0; i < net_quotas.length; i++){
|
||||
|
||||
var default_net_quotas = default_user_quotas.NETWORK_QUOTA[net_quotas[i].ID]
|
||||
|
||||
if (default_net_quotas == undefined){
|
||||
default_net_quotas = {
|
||||
"LEASES" : "0"
|
||||
}
|
||||
}
|
||||
|
||||
var leases_bar = quotaBar(
|
||||
net_quotas[i].LEASES_USED,
|
||||
net_quotas[i].LEASES,
|
||||
default_net_quotas.LEASES);
|
||||
|
||||
quotas_tab_html +=
|
||||
'<tr>\
|
||||
<td>'+net_quotas[i].ID+'</td>\
|
||||
<td>'+leases_bar+'</td>\
|
||||
</tr>';
|
||||
}
|
||||
|
||||
quotas_tab_html +=
|
||||
'</tbody>\
|
||||
</table></div>';
|
||||
}
|
||||
|
||||
quotas_tab_html += '</div>'
|
||||
|
||||
var default_user_quotas = Quotas.default_quotas(info.DEFAULT_USER_QUOTAS)
|
||||
var quotas_tab_html = '<div class="four columns">' + Quotas.vms(info, default_user_quotas) + '</div>';
|
||||
quotas_tab_html += '<div class="four columns">' + Quotas.cpu(info, default_user_quotas) + '</div>';
|
||||
quotas_tab_html += '<div class="four columns">' + Quotas.memory(info, default_user_quotas) + '</div>';
|
||||
quotas_tab_html += '<br><br>';
|
||||
quotas_tab_html += '<div class="six columns">' + Quotas.image(info, default_user_quotas) + '</div>';
|
||||
quotas_tab_html += '<div class="six columns">' + Quotas.network(info, default_user_quotas) + '</div>';
|
||||
quotas_tab_html += '<br><br>';
|
||||
quotas_tab_html += '<div class="twelve columns">' + Quotas.datastore(info, default_user_quotas) + '</div>';
|
||||
var quotas_tab = {
|
||||
title : tr("Quotas"),
|
||||
content : quotas_tab_html
|
||||
};
|
||||
|
||||
// var acct_tab = {
|
||||
// title : tr("Historical usages"),
|
||||
// content : '<div><table class="info_table" style="margin-bottom:0;width:100%">\
|
||||
// <tr>\
|
||||
// <td class="key_td"><label for="from">'+tr('From / to')+'</label></td>\
|
||||
// <td class="value_td">\
|
||||
// <input style="width: 7em" type="text" id="user_acct_from" name="from"/>\
|
||||
// <input style="width: 7em" type="text" id="user_acct_to" name="to"/>\
|
||||
// <button id="user_acct_date_ok">'+tr("Update")+'</button>\
|
||||
// </td>\
|
||||
// </tr>\
|
||||
//<!--\
|
||||
// <tr>\
|
||||
// <td class="key_td"><label for="from">'+tr('Meters')+'</label></td>\
|
||||
// <td class="value_td">\
|
||||
// <select style="width:173px" id="user_acct_meter1" name="meter1">\
|
||||
// </select>\
|
||||
// <select style="width:173px" id="user_acct_meter2" name="meter2">\
|
||||
// </select>\
|
||||
// </td>\
|
||||
// </tr>\
|
||||
//-->\
|
||||
//</table></div>' + generateMonitoringDivs(user_acct_graphs, "user_acct_")
|
||||
// };
|
||||
|
||||
Sunstone.updateInfoPanelTab("user_info_panel","user_info_tab",info_tab);
|
||||
Sunstone.updateInfoPanelTab("user_info_panel","user_quotas_tab",quotas_tab);
|
||||
//Sunstone.updateInfoPanelTab("user_info_panel","user_acct_tab",acct_tab);
|
||||
Sunstone.popUpInfoPanel("user_info_panel", 'users-tab');
|
||||
|
||||
//Enable datepicker
|
||||
//var info_dialog = $('div#user_acct_tab');
|
||||
//$("#user_acct_from", info_dialog).datepicker({
|
||||
// defaultDate: "-1d",
|
||||
// changeMonth: true,
|
||||
// numberOfMonths: 1,
|
||||
// dateFormat: "dd/mm/yy",
|
||||
// defaultDate: '-1',
|
||||
// onSelect: function( selectedDate ) {
|
||||
// $( "#user_acct_to", info_dialog).datepicker("option",
|
||||
// "minDate",
|
||||
// selectedDate );
|
||||
// }
|
||||
//});
|
||||
//$("#user_acct_from", info_dialog).datepicker('setDate', '-1');
|
||||
//
|
||||
//$("#user_acct_to", info_dialog).datepicker({
|
||||
// defaultDate: "0",
|
||||
// changeMonth: true,
|
||||
// numberOfMonths: 1,
|
||||
// dateFormat: "dd/mm/yy",
|
||||
// maxDate: '+1',
|
||||
// onSelect: function( selectedDate ) {
|
||||
// $( "#user_acct_from", info_dialog).datepicker( "option",
|
||||
// "maxDate",
|
||||
// selectedDate );
|
||||
// }
|
||||
//});
|
||||
//$("#user_acct_to", info_dialog).datepicker('setDate', 'Now');
|
||||
//
|
||||
////Listen to set date button
|
||||
//$('button#user_acct_date_ok', info_dialog).click(function(){
|
||||
// var from = $("#user_acct_from", info_dialog).val();
|
||||
// var to = $("#user_acct_to", info_dialog).val();
|
||||
//
|
||||
// var start = $.datepicker.parseDate('dd/mm/yy', from)
|
||||
// if (start){
|
||||
// start = start.getTime();
|
||||
// start = Math.floor(start / 1000);
|
||||
// }
|
||||
//
|
||||
// var end = $.datepicker.parseDate('dd/mm/yy', to);
|
||||
// if (end){
|
||||
// end = end.getTime();
|
||||
// end = Math.floor(end / 1000);
|
||||
// }
|
||||
//
|
||||
// loadAccounting('User', user_info.ID, user_acct_graphs,
|
||||
// { start : start, end: end });
|
||||
// return false;
|
||||
//});
|
||||
//
|
||||
////preload acct
|
||||
//loadAccounting('User', user_info.ID, user_acct_graphs);
|
||||
};
|
||||
|
||||
// Prepare the user creation dialog
|
||||
|
@ -1629,7 +1629,7 @@ function printActionsTable(vm_info)
|
||||
new_action.ID = parseInt(max_id) + 1;
|
||||
new_action.ACTION = $("#select_new_action").val();
|
||||
var epoch_str = new Date(time_value);
|
||||
console.log(epoch_str)
|
||||
|
||||
new_action.TIME = parseInt(epoch_str.getTime())/1000;
|
||||
|
||||
vm_info.USER_TEMPLATE.SCHED_ACTION.push(new_action);
|
||||
|
@ -196,7 +196,7 @@ function tableCheckboxesListener(dataTable){
|
||||
}
|
||||
else
|
||||
{
|
||||
$(this).parents('tr').children().removeClass('markrowchecked');
|
||||
$(this).parents('tr').children().removeClass('markrowchecked');
|
||||
$(this).parents('tr').children().removeClass('markrowselected');
|
||||
}
|
||||
|
||||
@ -210,7 +210,7 @@ function updateView(item_list,dataTable){
|
||||
var selected_row_id = $($('td.markrowselected',dataTable.fnGetNodes())[1]).html();
|
||||
var checked_row_ids = new Array();
|
||||
|
||||
$.each($(dataTable.fnGetNodes()), function(){
|
||||
$.each($(dataTable.fnGetNodes()), function(){
|
||||
if($('td.markrowchecked',this).length!=0)
|
||||
{
|
||||
checked_row_ids.push($($('td',$(this))[1]).html());
|
||||
@ -1148,6 +1148,310 @@ function setPermissionsTable(resource,context){
|
||||
$('.other_a',context).attr('checked','checked');
|
||||
};
|
||||
|
||||
|
||||
var Quotas = {
|
||||
"vms" : function(info, default_quotas){
|
||||
if (!$.isEmptyObject(info.VM_QUOTA)){
|
||||
var vms_bar = quotaBar(
|
||||
info.VM_QUOTA.VM.VMS_USED,
|
||||
info.VM_QUOTA.VM.VMS,
|
||||
default_quotas.VM_QUOTA.VM.VMS);
|
||||
|
||||
var quotas_tab_html =
|
||||
'<table class="twelve datatable extended_table">\
|
||||
<thead>\
|
||||
<tr>\
|
||||
<th>'+tr("VMs")+'</th>\
|
||||
</tr>\
|
||||
</thead>\
|
||||
<tbody>\
|
||||
<tr>\
|
||||
<td style="height:25px">'+vms_bar+'</td>\
|
||||
</tr>\
|
||||
</tbody>\
|
||||
</table>'
|
||||
|
||||
return quotas_tab_html;
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
},
|
||||
"cpu" : function(info, default_quotas){
|
||||
if (!$.isEmptyObject(info.VM_QUOTA)){
|
||||
var cpu_bar = quotaBarFloat(
|
||||
info.VM_QUOTA.VM.CPU_USED,
|
||||
info.VM_QUOTA.VM.CPU,
|
||||
default_quotas.VM_QUOTA.VM.CPU);
|
||||
|
||||
var quotas_tab_html =
|
||||
'<table class="twelve datatable extended_table">\
|
||||
<thead>\
|
||||
<tr>\
|
||||
<th>'+tr("CPU")+'</th>\
|
||||
</tr>\
|
||||
</thead>\
|
||||
<tbody>\
|
||||
<tr>\
|
||||
<td style="height:25px">'+cpu_bar+'</td>\
|
||||
</tr>\
|
||||
</tbody>\
|
||||
</table>'
|
||||
|
||||
return quotas_tab_html;
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
},
|
||||
"memory" : function(info, default_quotas){
|
||||
if (!$.isEmptyObject(info.VM_QUOTA)){
|
||||
var memory_bar = quotaBarMB(
|
||||
info.VM_QUOTA.VM.MEMORY_USED,
|
||||
info.VM_QUOTA.VM.MEMORY,
|
||||
default_quotas.VM_QUOTA.VM.MEMORY);
|
||||
|
||||
var quotas_tab_html =
|
||||
'<table class="twelve datatable extended_table">\
|
||||
<thead>\
|
||||
<tr>\
|
||||
<th>'+tr("Memory")+'</th>\
|
||||
</tr>\
|
||||
</thead>\
|
||||
<tbody>\
|
||||
<tr>\
|
||||
<td style="height:25px">'+memory_bar+'</td>\
|
||||
</tr>\
|
||||
</tbody>\
|
||||
</table>'
|
||||
|
||||
return quotas_tab_html;
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
},
|
||||
"datastore" : function(info, default_quotas) {
|
||||
if (!$.isEmptyObject(info.DATASTORE_QUOTA)){
|
||||
var quotas_tab_html =
|
||||
'<table class="twelve datatable extended_table">\
|
||||
<thead>\
|
||||
<tr>\
|
||||
<th style="width:26%">'+tr("Datastore ID")+'</th>\
|
||||
<th style="width:37%">'+tr("Images")+'</th>\
|
||||
<th style="width:37%">'+tr("Size")+'</th>\
|
||||
</tr>\
|
||||
</thead>\
|
||||
<tbody>';
|
||||
|
||||
var ds_quotas = [];
|
||||
|
||||
if ($.isArray(info.DATASTORE_QUOTA.DATASTORE))
|
||||
ds_quotas = info.DATASTORE_QUOTA.DATASTORE;
|
||||
else if (info.DATASTORE_QUOTA.DATASTORE.ID)
|
||||
ds_quotas = [info.DATASTORE_QUOTA.DATASTORE];
|
||||
|
||||
for (var i=0; i < ds_quotas.length; i++){
|
||||
|
||||
var default_ds_quotas = default_quotas.DATASTORE_QUOTA[ds_quotas[i].ID]
|
||||
|
||||
if (default_ds_quotas == undefined){
|
||||
default_ds_quotas = {
|
||||
"IMAGES" : "0",
|
||||
"SIZE" : "0"
|
||||
}
|
||||
}
|
||||
|
||||
var img_bar = quotaBar(
|
||||
ds_quotas[i].IMAGES_USED,
|
||||
ds_quotas[i].IMAGES,
|
||||
default_ds_quotas.IMAGES);
|
||||
|
||||
var size_bar = quotaBarMB(
|
||||
ds_quotas[i].SIZE_USED,
|
||||
ds_quotas[i].SIZE,
|
||||
default_ds_quotas.SIZE);
|
||||
|
||||
quotas_tab_html +=
|
||||
'<tr>\
|
||||
<td>'+ds_quotas[i].ID+'</td>\
|
||||
<td>'+img_bar+'</td>\
|
||||
<td>'+size_bar+'</td>\
|
||||
</tr>';
|
||||
}
|
||||
|
||||
quotas_tab_html +=
|
||||
'</tbody>\
|
||||
</table>';
|
||||
|
||||
return quotas_tab_html;
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
},
|
||||
"image" : function(info, default_quotas) {
|
||||
if (!$.isEmptyObject(info.IMAGE_QUOTA)){
|
||||
var quotas_tab_html =
|
||||
'<table class="twelve datatable extended_table">\
|
||||
<thead>\
|
||||
<tr>\
|
||||
<th style="width:26%">'+tr("Image ID")+'</th>\
|
||||
<th style="width:74%">'+tr("Running VMs")+'</th>\
|
||||
</tr>\
|
||||
</thead>\
|
||||
<tbody>';
|
||||
|
||||
var img_quotas = [];
|
||||
|
||||
if ($.isArray(info.IMAGE_QUOTA.IMAGE))
|
||||
img_quotas = info.IMAGE_QUOTA.IMAGE;
|
||||
else if (info.IMAGE_QUOTA.IMAGE.ID)
|
||||
img_quotas = [info.IMAGE_QUOTA.IMAGE];
|
||||
|
||||
for (var i=0; i < img_quotas.length; i++){
|
||||
|
||||
var default_img_quotas = default_quotas.IMAGE_QUOTA[img_quotas[i].ID]
|
||||
|
||||
if (default_img_quotas == undefined){
|
||||
default_img_quotas = {
|
||||
"RVMS" : "0"
|
||||
}
|
||||
}
|
||||
|
||||
var rvms_bar = quotaBar(
|
||||
img_quotas[i].RVMS_USED,
|
||||
img_quotas[i].RVMS,
|
||||
default_img_quotas.RVMS);
|
||||
|
||||
quotas_tab_html +=
|
||||
'<tr>\
|
||||
<td>'+img_quotas[i].ID+'</td>\
|
||||
<td>'+rvms_bar+'</td>\
|
||||
</tr>';
|
||||
}
|
||||
|
||||
quotas_tab_html +=
|
||||
'</tbody>\
|
||||
</table>';
|
||||
|
||||
return quotas_tab_html;
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
},
|
||||
"network" : function(info, default_quotas){
|
||||
if (!$.isEmptyObject(info.NETWORK_QUOTA)){
|
||||
var quotas_tab_html =
|
||||
'<table class="twelve datatable extended_table">\
|
||||
<thead>\
|
||||
<tr>\
|
||||
<th style="width:26%">'+tr("Network ID")+'</th>\
|
||||
<th style="width:74%">'+tr("Leases")+'</th>\
|
||||
</tr>\
|
||||
</thead>\
|
||||
<tbody>';
|
||||
|
||||
var net_quotas = [];
|
||||
|
||||
if ($.isArray(info.NETWORK_QUOTA.NETWORK))
|
||||
net_quotas = info.NETWORK_QUOTA.NETWORK;
|
||||
else if (info.NETWORK_QUOTA.NETWORK.ID)
|
||||
net_quotas = [info.NETWORK_QUOTA.NETWORK];
|
||||
|
||||
for (var i=0; i < net_quotas.length; i++){
|
||||
|
||||
var default_net_quotas = default_quotas.NETWORK_QUOTA[net_quotas[i].ID]
|
||||
|
||||
if (default_net_quotas == undefined){
|
||||
default_net_quotas = {
|
||||
"LEASES" : "0"
|
||||
}
|
||||
}
|
||||
|
||||
var leases_bar = quotaBar(
|
||||
net_quotas[i].LEASES_USED,
|
||||
net_quotas[i].LEASES,
|
||||
default_net_quotas.LEASES);
|
||||
|
||||
quotas_tab_html +=
|
||||
'<tr>\
|
||||
<td>'+net_quotas[i].ID+'</td>\
|
||||
<td>'+leases_bar+'</td>\
|
||||
</tr>';
|
||||
}
|
||||
|
||||
quotas_tab_html +=
|
||||
'</tbody>\
|
||||
</table></div>';
|
||||
|
||||
return quotas_tab_html;
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
},
|
||||
"default_quotas" : function(default_quotas){
|
||||
// Initialize the VM_QUOTA to unlimited if it does not exist
|
||||
if ($.isEmptyObject(default_quotas.VM_QUOTA)){
|
||||
default_quotas.VM_QUOTA = {
|
||||
"VM" : {
|
||||
"VMS" : "0",
|
||||
"MEMORY" : "0",
|
||||
"CPU" : "0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Replace the DATASTORE array with a map
|
||||
|
||||
var ds_quotas = [];
|
||||
|
||||
if ($.isArray(default_quotas.DATASTORE_QUOTA.DATASTORE))
|
||||
ds_quotas = default_quotas.DATASTORE_QUOTA.DATASTORE;
|
||||
else if (default_quotas.DATASTORE_QUOTA.DATASTORE)
|
||||
ds_quotas = [default_quotas.DATASTORE_QUOTA.DATASTORE];
|
||||
|
||||
delete default_quotas.DATASTORE_QUOTA;
|
||||
|
||||
default_quotas.DATASTORE_QUOTA = {};
|
||||
|
||||
for (var i=0; i < ds_quotas.length; i++){
|
||||
default_quotas.DATASTORE_QUOTA[ds_quotas[i].ID] = ds_quotas[i]
|
||||
}
|
||||
|
||||
// Replace the IMAGE array with a map
|
||||
|
||||
var img_quotas = [];
|
||||
|
||||
if ($.isArray(default_quotas.IMAGE_QUOTA.IMAGE))
|
||||
img_quotas = default_quotas.IMAGE_QUOTA.IMAGE;
|
||||
else if (default_quotas.IMAGE_QUOTA.IMAGE)
|
||||
img_quotas = [default_quotas.IMAGE_QUOTA.IMAGE];
|
||||
|
||||
delete default_quotas.IMAGE_QUOTA;
|
||||
|
||||
default_quotas.IMAGE_QUOTA = {};
|
||||
|
||||
for (var i=0; i < img_quotas.length; i++){
|
||||
default_quotas.IMAGE_QUOTA[img_quotas[i].ID] = img_quotas[i]
|
||||
}
|
||||
|
||||
// Replace the NETWORK array with a map
|
||||
|
||||
var net_quotas = [];
|
||||
|
||||
if ($.isArray(default_quotas.NETWORK_QUOTA.NETWORK))
|
||||
net_quotas = default_quotas.NETWORK_QUOTA.NETWORK;
|
||||
else if (default_quotas.NETWORK_QUOTA.NETWORK)
|
||||
net_quotas = [default_quotas.NETWORK_QUOTA.NETWORK];
|
||||
|
||||
delete default_quotas.NETWORK_QUOTA;
|
||||
|
||||
default_quotas.NETWORK_QUOTA = {};
|
||||
|
||||
for (var i=0; i < net_quotas.length; i++){
|
||||
default_quotas.NETWORK_QUOTA[net_quotas[i].ID] = net_quotas[i]
|
||||
}
|
||||
|
||||
return default_quotas;
|
||||
}
|
||||
}
|
||||
// Sets up a dialog to edit and update user and group quotas
|
||||
// Called from user/group plugins
|
||||
function setupQuotasDialog(dialog){
|
||||
|
@ -124,7 +124,7 @@ var Sunstone = {
|
||||
var tabs = SunstoneCfg["info_panels"][panel_name];
|
||||
var tab=null;
|
||||
var active=false;
|
||||
console.log(selected_tab)
|
||||
|
||||
for (panel_tab_name in tabs){
|
||||
if (Config.isTabPanelEnabled(selected_tab, panel_tab_name) == false) {
|
||||
continue;
|
||||
@ -461,11 +461,6 @@ function setLogin(){
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
$("span.user-login a.configuration").click(function(){
|
||||
$config_dialog.reveal();
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
//returns whether we are Sunstone, or oZones
|
||||
|
Loading…
x
Reference in New Issue
Block a user