metrics: remember what to sort after refreshing metrics ui
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
diff --git a/ui/scripts/ui-custom/metricsView.js b/ui/scripts/ui-custom/metricsView.js
index 5d6ea1e..ef5dbba 100644
--- a/ui/scripts/ui-custom/metricsView.js
+++ b/ui/scripts/ui-custom/metricsView.js
@@ -91,8 +91,26 @@
$newPanel.find('.list-view').css({'overflow-x': 'visible'});
// Refresh metrics when refresh button is clicked
$newPanel.find('.refreshMetrics').click(function() {
+ var sortedTh = $newPanel.find('table thead tr:last th.sorted');
+ var thIndex = sortedTh.index();
+ var thClassName = null;
+ var wasSorted = false;
+ var sortClassName = 'asc';
+ if (sortedTh && sortedTh.hasClass('sorted')) {
+ wasSorted = true;
+ var classes = sortedTh.attr('class').split(/\s+/);
+ thClassName = classes[0];
+ if (classes.indexOf('desc') > -1) {
+ sortClassName = 'desc';
+ }
+ }
$browser.cloudBrowser('removeLastPanel', {});
- cloudStack.uiCustom.metricsView(args)();
+ var refreshedPanel = cloudStack.uiCustom.metricsView(args)();
+ if (wasSorted && thClassName) {
+ refreshedPanel.find('th.' + thClassName).filter(function() {
+ return $(this).index() == thIndex;
+ }).addClass('sorted').addClass(sortClassName);
+ }
});
var filterMetricView = metricsListView.browseBy;