diff --git a/ui/scripts/metrics.js b/ui/scripts/metrics.js index eb6acdc2e57..e8d12bb1195 100644 --- a/ui/scripts/metrics.js +++ b/ui/scripts/metrics.js @@ -934,6 +934,11 @@ } }); }, + browseBy: { + filterKey: 'storageid', + filterBy: 'id', + resource: 'storagepool' + }, detailView: cloudStack.sections.storage.sections.volumes.listView.detailView } }; diff --git a/ui/scripts/ui-custom/metricsView.js b/ui/scripts/ui-custom/metricsView.js index 92b375a8655..04983d216f9 100644 --- a/ui/scripts/ui-custom/metricsView.js +++ b/ui/scripts/ui-custom/metricsView.js @@ -41,6 +41,7 @@ metricsLabel = _l('label.volumes') + ' ' + metricsLabel; } + // list view refresh button metricsListView.actions = { refreshMetrics: { label: 'label.refresh', @@ -97,9 +98,17 @@ var filterMetricView = metricsListView.browseBy; if (filterMetricView) { $newPanel.bind('click', function(event) { + event.stopPropagation(); var $target = $(event.target); var id = $target.closest('tr').data('list-view-item-id'); var jsonObj = $target.closest('tr').data('jsonObj'); + if (filterMetricView.filterKey && jsonObj) { + if (jsonObj.hasOwnProperty(filterMetricView.filterKey)) { + id = jsonObj[filterMetricView.filterKey]; + } else { + return; // return if provided key is missing + } + } if (id && ($target.hasClass('first') || $target.parent().hasClass('first')) && ($target.is('td') || $target.parent().is('td'))) { filterMetricView.id = id; cloudStack.uiCustom.metricsView(filterMetricView)();