diff options
author | Clement Ho <clemmakesapps@gmail.com> | 2017-05-19 19:29:47 +0000 |
---|---|---|
committer | Clement Ho <clemmakesapps@gmail.com> | 2017-05-19 19:29:47 +0000 |
commit | db4bbbabcafa78cfa0176fefac1b4c1dd33d098f (patch) | |
tree | 632a8574c7b5775eba1f7293ebaf3076f595fc59 | |
parent | 5d5e695473bf65d89f12f330374f7bb36548e876 (diff) | |
parent | 382995c2eda6a3233e34fa8e4930eaabec4e6ce6 (diff) | |
download | gitlab-ce-db4bbbabcafa78cfa0176fefac1b4c1dd33d098f.tar.gz |
Merge branch 'winh-dropdown-ajax-cache' into 'master'
Use AjaxCache in Droplab Ajax plugin
Closes #31897
See merge request !11171
-rw-r--r-- | app/assets/javascripts/droplab/plugins/ajax.js | 34 |
1 files changed, 6 insertions, 28 deletions
diff --git a/app/assets/javascripts/droplab/plugins/ajax.js b/app/assets/javascripts/droplab/plugins/ajax.js index 12afe53ed76..c0da5866139 100644 --- a/app/assets/javascripts/droplab/plugins/ajax.js +++ b/app/assets/javascripts/droplab/plugins/ajax.js @@ -1,25 +1,8 @@ /* eslint-disable */ +import AjaxCache from '~/lib/utils/ajax_cache'; + const Ajax = { - _loadUrlData: function _loadUrlData(url) { - var self = this; - return new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest; - xhr.open('GET', url, true); - xhr.onreadystatechange = function () { - if(xhr.readyState === XMLHttpRequest.DONE) { - if (xhr.status === 200) { - var data = JSON.parse(xhr.responseText); - self.cache[url] = data; - return resolve(data); - } else { - return reject([xhr.responseText, xhr.status]); - } - } - }; - xhr.send(); - }); - }, _loadData: function _loadData(data, config, self) { if (config.loadingTemplate) { var dataLoadingTemplate = self.hook.list.list.querySelector('[data-loading-template]'); @@ -31,7 +14,6 @@ const Ajax = { init: function init(hook) { var self = this; self.destroyed = false; - self.cache = self.cache || {}; var config = hook.config.Ajax; this.hook = hook; if (!config || !config.endpoint || !config.method) { @@ -48,14 +30,10 @@ const Ajax = { this.listTemplate = dynamicList.outerHTML; dynamicList.outerHTML = loadingTemplate.outerHTML; } - if (self.cache[config.endpoint]) { - self._loadData(self.cache[config.endpoint], config, self); - } else { - this._loadUrlData(config.endpoint) - .then(function(d) { - self._loadData(d, config, self); - }, config.onError).catch(config.onError); - } + + AjaxCache.retrieve(config.endpoint) + .then((data) => self._loadData(data, config, self)) + .catch(config.onError); }, destroy: function() { this.destroyed = true; |