From e8d7220ff35eaed175325991883a1bcfd1fb0623 Mon Sep 17 00:00:00 2001 From: Jessica Wang Date: Wed, 1 Feb 2012 13:29:35 -0800 Subject: [PATCH] bug 12728: extend listView widget to take in preFilter. filter Destroyed option from listView filters for regular user. --- ui/scripts/instances.js | 12 ++++++++++-- ui/scripts/ui/widgets/listView.js | 5 ++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/ui/scripts/instances.js b/ui/scripts/instances.js index 81e0d23c0ae..aa08fcbfe25 100644 --- a/ui/scripts/instances.js +++ b/ui/scripts/instances.js @@ -10,11 +10,19 @@ listView: { section: 'instances', filters: { - all: { label: 'All' }, + all: { label: 'All' }, mine: { label: 'Mine' }, running: { label: 'Running' }, stopped: { label: 'Stopped' }, - destroyed: { label: 'Destroyed' } + destroyed: { + preFilter: function(args) { + if (isAdmin() || isDomainAdmin()) + return true; + else + return false; + }, + label: 'Destroyed', + } }, fields: { name: { label: 'Name', editable: true }, diff --git a/ui/scripts/ui/widgets/listView.js b/ui/scripts/ui/widgets/listView.js index 3f85fe7c812..ff2d42299df 100644 --- a/ui/scripts/ui/widgets/listView.js +++ b/ui/scripts/ui/widgets/listView.js @@ -539,7 +539,10 @@ var $filterSelect = $('').appendTo($filters); if (filters) - $.each(filters, function(key) { + $.each(filters, function(key) { + if(this.preFilter != null && this.preFilter() == false) { + return true; //skip to next item in each loop + } var $option = $('