gitlab-org--gitlab-foss/app/assets/javascripts/droplab/droplab_ajax.js

78 lines
3.1 KiB
JavaScript
Raw Normal View History

2016-11-09 15:44:11 -05:00
/* eslint-disable */
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g=(g.droplab||(g.droplab = {}));g=(g.ajax||(g.ajax = {}));g=(g.datasource||(g.datasource = {}));g.js = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
/* global droplab */
2016-12-08 16:36:54 -05:00
require('../window')(function(w){
w.droplabAjax = {
_loadUrlData: function _loadUrlData(url) {
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);
return resolve(data);
} else {
return reject([xhr.responseText, xhr.status]);
}
2016-11-09 15:44:11 -05:00
}
2016-12-08 16:36:54 -05:00
};
xhr.send();
});
2016-12-02 17:20:01 -05:00
},
2016-12-08 16:36:54 -05:00
init: function init(hook) {
2016-12-10 16:37:26 -05:00
var self = this;
2016-12-08 16:36:54 -05:00
var config = hook.config.droplabAjax;
if (!config || !config.endpoint || !config.method) {
return;
2016-11-09 15:44:11 -05:00
}
2016-12-08 16:36:54 -05:00
if (config.method !== 'setData' && config.method !== 'addData') {
return;
}
2016-12-10 16:37:26 -05:00
if (config.loadingTemplate) {
var dynamicList = hook.list.list.querySelector('[data-dynamic]');
var loadingTemplate = document.createElement('div');
loadingTemplate.innerHTML = config.loadingTemplate;
loadingTemplate.setAttribute('data-loading-template', true);
this.listTemplate = dynamicList.outerHTML;
dynamicList.outerHTML = loadingTemplate.outerHTML;
}
2016-12-08 16:36:54 -05:00
this._loadUrlData(config.endpoint).then(function(d) {
2016-12-10 16:37:26 -05:00
if (config.loadingTemplate) {
var dataLoadingTemplate = hook.list.list.querySelector('[data-loading-template]');
if (dataLoadingTemplate) {
dataLoadingTemplate.outerHTML = self.listTemplate;
}
2016-12-10 16:37:26 -05:00
}
2016-12-08 16:36:54 -05:00
hook.list[config.method].call(hook.list, d);
}).catch(function(e) {
if(e.message) {
console.error(e.message, e.stack); // eslint-disable-line no-console
} else {
console.error(e); // eslint-disable-line no-console
}
});
2016-11-09 15:44:11 -05:00
},
2016-12-08 16:36:54 -05:00
destroy: function() {
}
};
2016-11-09 15:44:11 -05:00
});
2016-12-08 16:36:54 -05:00
},{"../window":2}],2:[function(require,module,exports){
module.exports = function(callback) {
return (function() {
callback(this);
}).call(null);
};
2016-11-09 15:44:11 -05:00
},{}]},{},[1])(1)
2016-12-08 16:36:54 -05:00
});