\
-
\
+
\
\
\
-
\
\
+
\
'
};
- var quotas_tab_html = '
';
-
- quotas_tab_html += '
'
-
- 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 +=
- '
\
- \
- \
- '+tr("VMs")+' | \
-
\
- \
- \
- \
- '+vms_bar+' | \
-
\
- \
-
\
-
\
- \
- \
- '+tr("CPU")+' | \
-
\
- \
- \
- \
- '+cpu_bar+' | \
-
\
- \
-
\
-
\
- \
- \
- '+tr("Memory")+' | \
-
\
- \
- \
- \
- '+memory_bar+' | \
-
\
- \
-
'
- }
-
- if (!$.isEmptyObject(user_info.DATASTORE_QUOTA)){
- quotas_tab_html +=
- '
\
- \
- \
- '+tr("Datastore ID")+' | \
- '+tr("Images")+' | \
- '+tr("Size")+' | \
-
\
- \
- ';
-
- 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 +=
- '\
- '+ds_quotas[i].ID+' | \
- '+img_bar+' | \
- '+size_bar+' | \
-
';
- }
-
- quotas_tab_html +=
- '\
-
';
- }
-
- quotas_tab_html += '
'
- quotas_tab_html += '
'
-
-
- if (!$.isEmptyObject(user_info.IMAGE_QUOTA)){
- quotas_tab_html +=
- '
\
- \
- \
- '+tr("Image ID")+' | \
- '+tr("Running VMs")+' | \
-
\
- \
- ';
-
- 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 +=
- '\
- '+img_quotas[i].ID+' | \
- '+rvms_bar+' | \
-
';
- }
-
- quotas_tab_html +=
- '\
-
';
- }
-
- if (!$.isEmptyObject(user_info.NETWORK_QUOTA)){
- quotas_tab_html +=
- '
\
- \
- \
- '+tr("Network ID")+' | \
- '+tr("Leases")+' | \
-
\
- \
- ';
-
- 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 +=
- '\
- '+net_quotas[i].ID+' | \
- '+leases_bar+' | \
-
';
- }
-
- quotas_tab_html +=
- '\
-
';
- }
-
- quotas_tab_html += '
'
-
+ 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_tab_html += '
' + Quotas.image(info, default_user_quotas) + '
';
+ quotas_tab_html += '
' + Quotas.network(info, default_user_quotas) + '
';
+ quotas_tab_html += '
';
+ quotas_tab_html += '
' + Quotas.datastore(info, default_user_quotas) + '
';
var quotas_tab = {
title : tr("Quotas"),
content : quotas_tab_html
};
-// var acct_tab = {
-// title : tr("Historical usages"),
-// content : '
' + 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
diff --git a/src/sunstone/public/js/plugins/vms-tab.js b/src/sunstone/public/js/plugins/vms-tab.js
index e68f71c1cd..c05dcd14a9 100644
--- a/src/sunstone/public/js/plugins/vms-tab.js
+++ b/src/sunstone/public/js/plugins/vms-tab.js
@@ -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);
diff --git a/src/sunstone/public/js/sunstone-util.js b/src/sunstone/public/js/sunstone-util.js
index 89bb714f28..c1bff68de1 100644
--- a/src/sunstone/public/js/sunstone-util.js
+++ b/src/sunstone/public/js/sunstone-util.js
@@ -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 =
+ '
\
+ \
+ \
+ '+tr("VMs")+' | \
+
\
+ \
+ \
+ \
+ '+vms_bar+' | \
+
\
+ \
+
'
+
+ 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 =
+ '
\
+ \
+ \
+ '+tr("CPU")+' | \
+
\
+ \
+ \
+ \
+ '+cpu_bar+' | \
+
\
+ \
+
'
+
+ 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 =
+ '
\
+ \
+ \
+ '+tr("Memory")+' | \
+
\
+ \
+ \
+ \
+ '+memory_bar+' | \
+
\
+ \
+
'
+
+ return quotas_tab_html;
+ } else {
+ return '';
+ }
+ },
+ "datastore" : function(info, default_quotas) {
+ if (!$.isEmptyObject(info.DATASTORE_QUOTA)){
+ var quotas_tab_html =
+ '
\
+ \
+ \
+ '+tr("Datastore ID")+' | \
+ '+tr("Images")+' | \
+ '+tr("Size")+' | \
+
\
+ \
+ ';
+
+ 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 +=
+ '\
+ '+ds_quotas[i].ID+' | \
+ '+img_bar+' | \
+ '+size_bar+' | \
+
';
+ }
+
+ quotas_tab_html +=
+ '\
+
';
+
+ return quotas_tab_html;
+ } else {
+ return '';
+ }
+ },
+ "image" : function(info, default_quotas) {
+ if (!$.isEmptyObject(info.IMAGE_QUOTA)){
+ var quotas_tab_html =
+ '
\
+ \
+ \
+ '+tr("Image ID")+' | \
+ '+tr("Running VMs")+' | \
+
\
+ \
+ ';
+
+ 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 +=
+ '\
+ '+img_quotas[i].ID+' | \
+ '+rvms_bar+' | \
+
';
+ }
+
+ quotas_tab_html +=
+ '\
+
';
+
+ return quotas_tab_html;
+ } else {
+ return '';
+ }
+ },
+ "network" : function(info, default_quotas){
+ if (!$.isEmptyObject(info.NETWORK_QUOTA)){
+ var quotas_tab_html =
+ '
\
+ \
+ \
+ '+tr("Network ID")+' | \
+ '+tr("Leases")+' | \
+
\
+ \
+ ';
+
+ 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 +=
+ '\
+ '+net_quotas[i].ID+' | \
+ '+leases_bar+' | \
+
';
+ }
+
+ quotas_tab_html +=
+ '\
+
';
+
+ 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){
diff --git a/src/sunstone/public/js/sunstone.js b/src/sunstone/public/js/sunstone.js
index 0ec6ee3c0b..669d7d1956 100644
--- a/src/sunstone/public/js/sunstone.js
+++ b/src/sunstone/public/js/sunstone.js
@@ -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