JSFiddle - React, Tailwind, and code Playground
by Danny Michaelis
JavaScript
// https://chartio.com/static/compressed/app.6b667c7b4552.js
var regenerateCharts = function() {
_.each(retryCharts, function(args) {
instance.generateChart.apply(instance, args)
})
};
var pollCharts = function() {
if (_.isEmpty(pendingCharts) && _.isEmpty(pollingCharts) || polling) {
return
}
polling = true;
var chartioStore = store.getStore(),
url = urlUtils.reverse("api_cached_chart", [chartioStore.getOrganization().id]);
_.each(pendingCharts, function(args, cacheKey) {
pollingCharts[cacheKey] = args;
delete pendingCharts[cacheKey]
});
HttpRequest.ajax({
url: url,
type: "POST",
data: JSON.stringify({
cache_keys: _.keys(pollingCharts)
}),
headers: {
"X-CSRFToken": ajax.csrf()
},
contentType: "application/json"
}).then(pollDone, pollFail)
};
instance.generateChart = function(chart, payload, startCallback, doneCallback, cancelLoading) {
payload = payload || {};
payload.timeZone = timeZone;
var chartioStore = store.getStore(),
dash, url, storeData;
var args = _.toArray(arguments);
updateLoadingStatus(true);
if (chart.dashboard_id) {
dash = chartioStore.get("dashboards", chart.dashboard_id)
}
if (editing) {
url = urlUtils.reverse("api_generate_chart_edit", [chartioStore.getOrganization().id]);
storeData = {
chart: chart
}
} else {
url = urlUtils.reverse("api_generate_chart", [dash.organization_id, dash.id]);
storeData = {
chart_id: chart.id
}
}
payload.filterData = {};
_.each(chartioStore.get("envVars"), function(envVar) {
payload.filterData[envVar.name] = envVar.current_values
});
storeData.dashboardTheme = dash ? dash.theme.slug : "chartio-default";
var cacheKey;
var done = function(data, textStatus, xhr) {
cacheKey = data.cache_key;
if (xhr.status === 200 && (data.chart || data.success === false)) {
chartDone(cacheKey, data, doneCallback)
} else {
pendingCharts[cacheKey] = args
...