summaryrefslogtreecommitdiff
path: root/app/views/javascript/actualize.phtml
blob: 3b12ad774b0683a7a498385b25f823cdf6aa6ea2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
"use strict";
var feeds = [<?php
	foreach ($this->feeds as $feed) {
		echo "'", Minz_Url::display(array('c' => 'feed', 'a' => 'actualize', 'params' => array('id' => $feed->id(), 'ajax' => '1')), 'php'), "',\n";
	}
	?>],
	feed_processed = 0,
	feed_count = feeds.length;

function initProgressBar(init) {
	if (init) {
		$("body").after("\<div id=\"actualizeProgress\" class=\"actualizeProgress\">\
			<?php echo Minz_Translate::t ('refresh'); ?> <span class=\"progress\">0 / " + feed_count + "</span><br />\
			<progress id=\"actualizeProgressBar\" value=\"0\" max=\"" + feed_count + "\"></progress>\
		</div>");
	} else {
		window.location.reload();
	}
}
function updateProgressBar(i) {
	$("#actualizeProgressBar").val(i);
	$("#actualizeProgress .progress").html(i + " / " + feed_count);
}

function updateFeeds() {
	if (feed_count === 0) {
		openNotification("<?php echo Minz_Translate::t ('no_feed_to_refresh'); ?>", "good");
		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,
	}).complete(function (data) {
		feed_processed++;
		updateProgressBar(feed_processed);

		if (feed_processed === feed_count) {
			initProgressBar(false);
		} else {
			updateFeed();
		}
	});
}