A free, self-hostable aggregator…
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.4 KiB

"use strict";
var feeds = [<?php foreach ($this->feeds as $feed) { ?>{<?php
?>url: "<?php echo Minz_Url::display(array('c' => 'feed', 'a' => 'actualize', 'params' => array('id' => $feed->id(), 'ajax' => '1')), 'php'); ?>",<?php
?>title: "<?php echo $feed->name(); ?>"<?php
?>},<?php } ?>],
feed_processed = 0,
feed_count = feeds.length;
function initProgressBar(init) {
if (init) {
$("body").after("\<div id=\"actualizeProgress\" class=\"notification good\">\
<?php echo _t('refresh'); ?><br /><span class=\"title\">/</span><br />\
<span class=\"progress\">0 / " + feed_count + "</span>\
</div>");
} else {
window.location.reload();
}
}
function updateProgressBar(i, title_feed) {
$("#actualizeProgress .progress").html(i + " / " + feed_count);
$("#actualizeProgress .title").html(title_feed);
}
function updateFeeds() {
if (feed_count === 0) {
openNotification("<?php echo _t('no_feed_to_refresh'); ?>", "good");
ajax_loading = false;
return;
}
initProgressBar(true);
for (var i = 0; i < 10; i++) {
updateFeed();
}
}
function updateFeed() {
var feed = feeds.pop();
if (feed == undefined) {
return;
}
$.ajax({
type: 'POST',
url: feed['url'],
}).complete(function (data) {
feed_processed++;
updateProgressBar(feed_processed, feed['title']);
if (feed_processed === feed_count) {
initProgressBar(false);
} else {
updateFeed();
}
});
}