Use AjaxCache in Droplab Ajax plugin (!11171)
This commit is contained in:
parent
1daa133c04
commit
382995c2ed
1 changed files with 6 additions and 28 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue