Skip to content

Commit e19bdc5

Browse files
authored
feat(dropdown): simple temporary cache clear
Adds another behavior "clear cache" which temporary disables the api cache at the next remote call. This allows for just temporary clearing the cache if "apiSettings; {cache: false}" (for no cache at all) is not desired
1 parent 9f9137a commit e19bdc5

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

src/definitions/modules/dropdown.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,8 @@
102102
selectObserver,
103103
menuObserver,
104104
classObserver,
105-
module
105+
module,
106+
tempDisableApiCache = false
106107
;
107108

108109
module = {
@@ -869,11 +870,12 @@
869870
if (!$module.api('get request')) {
870871
module.setup.api();
871872
}
872-
apiSettings = $.extend(true, {}, apiSettings, settings.apiSettings, apiCallbacks);
873+
apiSettings = $.extend(true, {}, apiSettings, settings.apiSettings, apiCallbacks, tempDisableApiCache ? { cache: false } : {});
873874
$module
874875
.api('setting', apiSettings)
875876
.api('query')
876877
;
878+
tempDisableApiCache = false;
877879
},
878880

879881
filterItems: function (query) {
@@ -2399,6 +2401,11 @@
23992401
module.set.value('', null, null, preventChangeTrigger);
24002402
},
24012403

2404+
clearCache: function () {
2405+
module.debug('Clearing API cache once');
2406+
tempDisableApiCache = true;
2407+
},
2408+
24022409
scrollPage: function (direction, $selectedItem) {
24032410
var
24042411
$currentItem = $selectedItem || module.get.selectedItem(),
@@ -3449,7 +3456,7 @@
34493456
return settings.apiSettings && module.can.useAPI();
34503457
},
34513458
noApiCache: function () {
3452-
return settings.apiSettings && !settings.apiSettings.cache;
3459+
return tempDisableApiCache || (settings.apiSettings && !settings.apiSettings.cache);
34533460
},
34543461
single: function () {
34553462
return !module.is.multiple();

0 commit comments

Comments
 (0)