From c164ffee3bcfc8d9ece4828bf35a8fd54beea344 Mon Sep 17 00:00:00 2001 From: Rohit Yadav Date: Sat, 7 Nov 2015 16:49:14 +0530 Subject: [PATCH] metrics: Increase UI width, fix metrics ui issues - Add instances count in host view, ip address in instances view - Add ipaddress in instances view - Increase UI container width by 200px - Allow all users to see resource metrics - Fix instance count issue on host metrics view - Fix sorting issue in metrics tables - Fix instances null check regression from 2f250e2 Signed-off-by: Rohit Yadav --- ui/css/cloudstack3.css | 91 +++++++++++++++-------------- ui/images/logo-login-oss.png | Bin 22165 -> 10864 bytes ui/images/logo.png | Bin 21781 -> 9257 bytes ui/scripts/instances.js | 13 ++++- ui/scripts/metrics.js | 36 +++++++++++- ui/scripts/storage.js | 3 - ui/scripts/system.js | 12 ---- ui/scripts/ui/widgets/dataTable.js | 11 +++- 8 files changed, 99 insertions(+), 67 deletions(-) diff --git a/ui/css/cloudstack3.css b/ui/css/cloudstack3.css index 3a4e963abdd..e928409e6bf 100644 --- a/ui/css/cloudstack3.css +++ b/ui/css/cloudstack3.css @@ -46,7 +46,7 @@ div.toolbar, /*+}*/ body { - min-width: 1024px; + min-width: 1224px; font-family: sans-serif; overflow: auto; background: #EDE8E8; @@ -61,7 +61,7 @@ body.install-wizard { } #main-area { - width: 1024px; + width: 1224px; height: 729px; margin: auto; border: 1px solid #D4D4D4; @@ -96,8 +96,8 @@ a:hover { /*Table*/ table { - width: 740px; - max-width: 777px; + width: 940px; + max-width: 977px; margin: 15px 15px 12px 12px; font-size: 13px; text-align: left; @@ -480,8 +480,8 @@ body.login { } .login .logo { - width: 250px; - height: 31px; + width: 290px; + height: 40px; float: left; margin: 72px 0 0 209px; background: url(../images/logo-login.png) no-repeat 0 0; @@ -1297,7 +1297,7 @@ div.panel div.list-view { } .detail-view div.list-view { - width: 730px; + width: 930px; border: 1px solid #DAD4D4; margin: 41px auto auto !important; height: 536px !important; @@ -1305,12 +1305,12 @@ div.panel div.list-view { } div.panel div.list-view div.data-table table { - width: 755px; + width: 955px; margin-top: 44px; } .detail-view div.list-view div.data-table table { - width: 703px !important; + width: 903px !important; } .detail-view div.list-view div.data-table table td { @@ -1321,7 +1321,7 @@ div.panel div.list-view div.fixed-header { position: absolute; top: 29px; left: 12px; - width: 760px; + width: 960px; height: 47px; display: table; background-color: #F7F7F7; @@ -1330,9 +1330,9 @@ div.panel div.list-view div.fixed-header { } .detail-view div.list-view div.fixed-header { - width: 703px !important; + width: 903px !important; top: 49px !important; - left: 32px !important; + left: 29px !important; background: #FFFFFF; } @@ -1354,7 +1354,7 @@ div.panel div.list-view div.fixed-header table { position: relative; left: 0px; top: 18px; - width: 755px; + width: 955px; /*+box-shadow:0px 4px 10px #DFE1E3;*/ -moz-box-shadow: 0px 4px 10px #DFE1E3; -webkit-box-shadow: 0px 4px 10px #DFE1E3; @@ -1890,7 +1890,7 @@ span.compact { } .detail-group table { - width: 96%; + width: 98%; font-size: 12px; border-bottom: 1px solid #DFDFDF; filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f7f7f7', endColorstr='#eaeaea',GradientType=0 ); @@ -2435,7 +2435,7 @@ div.detail-group.actions td { } #header.nologo div.logo { - width: 1024px; + width: 1224px; height: 47px; margin: auto; background: url(../images/logo.png) no-repeat 0 center; @@ -2446,7 +2446,7 @@ div.detail-group.actions td { } #header div.controls { - width: 1026px; + width: 1226px; height: 48px; position: relative; margin: 27px auto 0; @@ -2554,7 +2554,7 @@ div.detail-group.actions td { margin: 0; position: absolute; top: -47px; - left: 890px; + left: 1090px; cursor: default !important; display: inline-block; float: left; @@ -2944,9 +2944,9 @@ div.detail-group.actions td { /*Browser*/ #browser { - width: 794px; + width: 994px; height: 100%; - max-width: 794px; + max-width: 994px; position: relative; float: left; overflow: hidden; @@ -3068,7 +3068,7 @@ div.detail-group.actions td { } .detail-view .ui-tabs-panel div.toolbar { - width: 768px; + width: 968px; background: transparent; border: none; margin-top: 8px; @@ -3234,7 +3234,7 @@ div.toolbar div.button.main-action span.icon { div.toolbar div.button.refresh { float: right; - margin: 0 15px 0 0; + margin: 0 20px 0 0; } div.toolbar div.button.refresh span { @@ -4357,7 +4357,7 @@ textarea { } .dashboard.admin .dashboard-container.sub { - width: 368px; + width: 468px; } .dashboard.admin .dashboard-container.sub .button.view-all, @@ -4415,7 +4415,7 @@ textarea { /**** Head*/ .dashboard.admin .dashboard-container.head { - width: 766px; + width: 966px; height: 331px; margin: 9px 0 0; float: left; @@ -4475,7 +4475,7 @@ textarea { /**** Charts / stats*/ .dashboard.admin .zone-stats { - width: 774px; + width: 974px; height: 316px; overflow: auto; overflow-x: hidden; @@ -4486,7 +4486,7 @@ textarea { } .dashboard.admin .zone-stats ul { - width: 796px; + width: 996px; /*+placement:shift -2px 11px;*/ position: relative; left: -2px; @@ -4494,7 +4494,7 @@ textarea { } .dashboard.admin .zone-stats ul li { - width: 388px; + width: 488px; font-size: 14px; height: 79px; float: left; @@ -4514,7 +4514,7 @@ textarea { } .dashboard.admin .zone-stats ul li .label { - width: 111px; + width: 161px; float: left; font-weight: 100; border-bottom: 1px solid #E2E2E2; @@ -4685,7 +4685,7 @@ textarea { } .dashboard.admin .dashboard-container.sub.alerts ul { - width: 368px; + width: 468px; height: 234px; overflow: auto; overflow-x: hidden; @@ -5145,7 +5145,7 @@ textarea { } .system-chart.dashboard.admin .dashboard-container { - width: 740px; + width: 930px; border: none; } @@ -5166,7 +5166,7 @@ textarea { } .system-chart.dashboard.admin .dashboard-container .stats .chart { - width: 136px; + width: 300px; } /** Compute*/ @@ -5183,7 +5183,7 @@ textarea { } .system-chart.compute ul.resources li.zone { - left: 96px; + left: 196px; } .system-chart.compute ul.resources li.zone .label { @@ -5195,32 +5195,32 @@ textarea { } .system-chart.compute ul.resources li.pods { - left: 199px; + left: 299px; top: 112px; } .system-chart.compute ul.resources li.clusters { - left: 296px; + left: 396px; top: 189px; } .system-chart.compute ul.resources li.hosts { - left: 407px; + left: 507px; top: 265px; } .system-chart.compute ul.resources li.primaryStorage { - left: 407px; + left: 507px; top: 375px; } .system-chart.compute ul.resources li.secondaryStorage { - left: 199px; + left: 299px; top: 497px; } .system-chart.compute ul.resources li.ucs { - left: 199px; + left: 299px; top: 406px; } @@ -8135,6 +8135,7 @@ div.container div.panel div#details-tab-addloadBalancer.detail-group div.loadBal .detail-view .multi-edit select { width: 93%; font-size: 10px; + min-width: 80px; } .multi-edit input { @@ -9073,7 +9074,7 @@ div.container div.panel div#details-tab-addloadBalancer.detail-group div.loadBal .network-chart li.firewall { /*+placement:shift 282px 188px;*/ position: relative; - left: 282px; + left: 356px; top: 188px; position: absolute; } @@ -9081,7 +9082,7 @@ div.container div.panel div#details-tab-addloadBalancer.detail-group div.loadBal .network-chart li.loadBalancing { /*+placement:shift 167px 342px;*/ position: relative; - left: 167px; + left: 237px; top: 342px; position: absolute; } @@ -9089,7 +9090,7 @@ div.container div.panel div#details-tab-addloadBalancer.detail-group div.loadBal .network-chart li.portForwarding { /*+placement:shift 401px 342px;*/ position: relative; - left: 401px; + left: 480px; top: 342px; position: absolute; } @@ -9166,7 +9167,7 @@ div.container div.panel div#details-tab-addloadBalancer.detail-group div.loadBal /*System Dashboard*/ .system-dashboard { height: 258px; - width: 762px; + width: 962px; display: block; /*+border-radius:3px;*/ -moz-border-radius: 3px; @@ -9264,7 +9265,7 @@ div.container div.panel div#details-tab-addloadBalancer.detail-group div.loadBal position: relative; left: 18px; top: 110px; - width: 78%; + width: 83%; position: absolute; text-align: center; padding: 8px 0; @@ -9279,7 +9280,7 @@ div.container div.panel div#details-tab-addloadBalancer.detail-group div.loadBal .system-dashboard .status_box li { height: 178px; - width: 178px; + width: 228px; padding: 0; margin: 0 0 0 8px; /*+border-radius:3px;*/ @@ -9303,7 +9304,7 @@ div.container div.panel div#details-tab-addloadBalancer.detail-group div.loadBal padding: 65px 80px 5px; /*+placement:shift 31px 19px;*/ position: relative; - left: 31px; + left: 51px; top: 19px; position: absolute; /*+opacity:56%;*/ @@ -9340,7 +9341,7 @@ div.container div.panel div#details-tab-addloadBalancer.detail-group div.loadBal /*+placement:shift 13px 5px;*/ position: relative; left: 13px; - top: 5px; + top: 13px; font-weight: 100; } diff --git a/ui/images/logo-login-oss.png b/ui/images/logo-login-oss.png index e0f376780458e69877e3a6fd55b58f1fa6d62d1c..92fc81ce77573a6c98bb5f10e9a2dc08f35b44ce 100644 GIT binary patch delta 8267 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 BhztM# literal 21781 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 a0yrDbv$ty-XJaqp01Xvg 0 && vm.nic[0].ipaddress) { + items[idx].ipaddress = vm.nic[0].ipaddress; + } + }); + } args.response.success({ data: items }); diff --git a/ui/scripts/metrics.js b/ui/scripts/metrics.js index 4fce7a0ab3f..609022a81a3 100644 --- a/ui/scripts/metrics.js +++ b/ui/scripts/metrics.js @@ -159,7 +159,7 @@ items[idx].clusters += parseInt(json.listclustersresponse.count); $.each(json.listclustersresponse.cluster, function(i, cluster) { if (cluster.allocationstate == 'Enabled' && cluster.managedstate == 'Managed') { - items[idx].clustersUp++; + items[idx].clustersUp += 1; } $.ajax({ url: createURL('listHosts'), @@ -550,6 +550,9 @@ }, compact: true }, + instances: { + label: 'label.instances' + }, cpuused: { label: 'label.metrics.cpu.usage', collapsible: true, @@ -702,6 +705,28 @@ items[idx].cputotal = items[idx].cputotal + ' Ghz (x' + cpuOverCommit + ')'; items[idx].memtotal = items[idx].memtotal + ' (x' + memOverCommit + ')'; + + items[idx].instances = 0; + items[idx].instancesUp = 0; + $.ajax({ + url: createURL('listVirtualMachines'), + data: {hostid: host.id, listAll: true}, + success: function(json) { + if (json && json.listvirtualmachinesresponse && json.listvirtualmachinesresponse.virtualmachine) { + var vms = json.listvirtualmachinesresponse.virtualmachine; + if (vms) { + $.each(vms, function(_, vm) { + items[idx].instances += 1; + if (vm.state == 'Running') { + items[idx].instancesUp += 1; + } + }); + } + } + }, + async: false + }); + items[idx].instances = items[idx].instancesUp + ' / ' + items[idx].instances; }); } args.response.success({ @@ -747,6 +772,12 @@ }, compact: true }, + ipaddress: { + label: 'label.ip.address' + }, + zonename: { + label: 'label.zone' + }, cpuused: { label: 'label.metrics.cpu.usage', collapsible: true, @@ -823,6 +854,9 @@ items[idx].diskread = (parseFloat(vm.diskkbsread)/(1024.0)).toFixed(2) + ' MB'; items[idx].diskwrite = (parseFloat(vm.diskkbswrite)/(1024.0)).toFixed(2) + ' MB'; items[idx].diskiopstotal = parseFloat(vm.diskioread) + parseFloat(vm.diskiowrite); + if (vm.nic && vm.nic.length > 0 && vm.nic[0].ipaddress) { + items[idx].ipaddress = vm.nic[0].ipaddress; + } var keys = [{'cpuused': 'cpuusedavg'}, {'networkkbsread': 'networkread'}, diff --git a/ui/scripts/storage.js b/ui/scripts/storage.js index ee913f591cb..78826a36024 100644 --- a/ui/scripts/storage.js +++ b/ui/scripts/storage.js @@ -257,9 +257,6 @@ label: 'label.metrics', isHeader: true, addRow: false, - preFilter: function(args) { - return isAdmin(); - }, action: { custom: cloudStack.uiCustom.metricsView({resource: 'volumes'}) }, diff --git a/ui/scripts/system.js b/ui/scripts/system.js index 8d097f4fcd9..3aafd8d8125 100644 --- a/ui/scripts/system.js +++ b/ui/scripts/system.js @@ -7710,9 +7710,6 @@ label: 'label.metrics', isHeader: true, addRow: false, - preFilter: function(args) { - return isAdmin(); - }, action: { custom: cloudStack.uiCustom.metricsView({resource: 'zones'}) }, @@ -14392,9 +14389,6 @@ label: 'label.metrics', isHeader: true, addRow: false, - preFilter: function(args) { - return isAdmin(); - }, action: { custom: cloudStack.uiCustom.metricsView({resource: 'clusters'}) }, @@ -15646,9 +15640,6 @@ label: 'label.metrics', isHeader: true, addRow: false, - preFilter: function(args) { - return isAdmin(); - }, action: { custom: cloudStack.uiCustom.metricsView({resource: 'hosts'}) }, @@ -17468,9 +17459,6 @@ label: 'label.metrics', isHeader: true, addRow: false, - preFilter: function(args) { - return isAdmin(); - }, action: { custom: cloudStack.uiCustom.metricsView({resource: 'storagepool'}) }, diff --git a/ui/scripts/ui/widgets/dataTable.js b/ui/scripts/ui/widgets/dataTable.js index 22ddda6307f..45740527f71 100644 --- a/ui/scripts/ui/widgets/dataTable.js +++ b/ui/scripts/ui/widgets/dataTable.js @@ -177,14 +177,19 @@ var sortData = []; var numericDataCount = 0; $elems.each(function() { - var text = $(this).html(); + var text = $(this); if (hasAllRowsSameValue) { - if (firstElem !== text) { + if (firstElem !== text.html()) { hasAllRowsSameValue = false; } } + if (text.children()) { + text = text.children().html(); + } else { + text = text.html(); + } if (isNumeric(text) || !text) { - numericDataCount++; + numericDataCount += 1; } sortData.push($(this)); });