Fix empty filter handling in list-view
When an user use filter and then user removes filter, Gerrit will not
show results for empty filter.
@observe is showing only new value (old value is always
undefined). When newFilter is empty string, !newFilter && !oldFilter
is always true.
by using observer, oldFilter is filled with old value. Therefore
when user is going from filter "t" to empty filter ""
!newFilter && !oldFilter is false.
Issue: Bug #13695
Change-Id: I46383ff511f28c37fa37779a65772b64b22c40c6
diff --git a/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view.ts b/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view.ts
index 342e937..3403e87 100644
--- a/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view.ts
+++ b/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view.ts
@@ -24,7 +24,7 @@
import {htmlTemplate} from './gr-list-view_html';
import {encodeURL, getBaseUrl} from '../../../utils/url-util';
import {page} from '../../../utils/page-wrapper-utils';
-import {property, observe, customElement} from '@polymer/decorators';
+import {property, customElement} from '@polymer/decorators';
const REQUEST_DEBOUNCE_INTERVAL_MS = 200;
@@ -51,7 +51,7 @@
@property({type: Number})
itemsPerPage = 25;
- @property({type: String})
+ @property({type: String, observer: '_filterChanged'})
filter?: string;
@property({type: Number})
@@ -69,8 +69,8 @@
this.cancelDebouncer('reload');
}
- @observe('filter')
- _filterChanged(newFilter: string, oldFilter: string) {
+ _filterChanged(newFilter?: string, oldFilter?: string) {
+ // newFilter can be empty string and then !newFilter === true
if (!newFilter && !oldFilter) {
return;
}
@@ -78,7 +78,7 @@
this._debounceReload(newFilter);
}
- _debounceReload(filter: string) {
+ _debounceReload(filter?: string) {
this.debounce(
'reload',
() => {