combo/combo/public/static/js/combo.public.js

39 lines
1.1 KiB
JavaScript

function combo_load_cell(elem, url) {
$.ajax({url: url,
xhrFields: { withCredentials: true },
async: true,
dataType: 'html',
crossDomain: true,
success: function(data) {
if (data == '') {
$(elem).remove();
} else {
$(elem).replaceWith(data);
}
},
error: function(error) {
$(elem).addClass('error-loading');
window.console && console.log(':(', error);
}
});
}
$(function() {
$('[data-ajax-cell-refresh]').each(function(idx, elem) {
var $elem = $(elem);
function refresh() {
combo_load_cell($elem.find('> div'), $elem.data('ajax-cell-url'));
}
$elem.timeout_id = setInterval(refresh, $elem.data('ajax-cell-refresh')*1000);
});
$('[data-ajax-cell-must-load]').each(function(idx, elem) {
var $elem = $(elem);
combo_load_cell($elem, $elem.parents('div.cell').data('ajax-cell-url'));
});
/* utility functions and events, for themes */
$('.togglable').on('click', function() {
$(this).toggleClass('toggled');
});
});