diff --git a/app/Controllers/javascriptController.php b/app/Controllers/javascriptController.php
index e3ae3669e..00a7b5c38 100755
--- a/app/Controllers/javascriptController.php
+++ b/app/Controllers/javascriptController.php
@@ -6,7 +6,7 @@ class FreshRSS_javascript_Controller extends Minz_ActionController {
}
public function actualizeAction() {
- header('Content-Type: text/javascript; charset=UTF-8');
+ header('Content-Type: application/json; charset=UTF-8');
$feedDAO = FreshRSS_Factory::createFeedDao();
$this->view->feeds = $feedDAO->listFeedsOrderUpdate(FreshRSS_Context::$user_conf->ttl_default);
}
diff --git a/app/views/javascript/actualize.phtml b/app/views/javascript/actualize.phtml
index 454228909..3baabf748 100644
--- a/app/views/javascript/actualize.phtml
+++ b/app/views/javascript/actualize.phtml
@@ -1,56 +1,13 @@
-"use strict";
-var feeds = [feeds as $feed) { ?>{url: " 'feed', 'a' => 'actualize', 'params' => array('id' => $feed->id(), 'ajax' => '1')), 'php'); ?>",title: "name(); ?>"},],
- feed_processed = 0,
- feed_count = feeds.length;
-
-function initProgressBar(init) {
- if (init) {
- $("body").after("\
\
-
/
\
- 0 / " + feed_count + "\
-
");
- } 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("", "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();
- }
- });
+feeds as $feed) {
+ $feeds[] = array(
+ 'url' => Minz_Url::display(array('c' => 'feed', 'a' => 'actualize', 'params' => array('id' => $feed->id(), 'ajax' => '1')), 'php'),
+ 'title' => $feed->name(),
+ );
}
+echo json_encode(array(
+ 'feeds' => $feeds,
+ 'feedback_no_refresh' => _t('feedback.sub.feed.no_refresh'),
+ 'feedback_actualize' => _t('feedback.sub.actualize'),
+));
diff --git a/p/scripts/main.js b/p/scripts/main.js
index d62a6aff8..51c8f4cbf 100644
--- a/p/scripts/main.js
+++ b/p/scripts/main.js
@@ -767,6 +767,31 @@ function init_nav_entries() {
});
}
+//
+var feed_processed = 0;
+
+function updateFeed(feeds, feeds_count) {
+ var feed = feeds.pop();
+ if (feed == undefined) {
+ return;
+ }
+
+ $.ajax({
+ type: 'POST',
+ url: feed['url'],
+ }).complete(function (data) {
+ feed_processed++;
+ $("#actualizeProgress .progress").html(feed_processed + " / " + feeds_count);
+ $("#actualizeProgress .title").html(feed['title']);
+
+ if (feed_processed === feeds_count) {
+ window.location.reload();
+ } else {
+ updateFeed(feeds, feeds_count);
+ }
+ });
+}
+
function init_actualize() {
var auto = false;
@@ -777,14 +802,23 @@ function init_actualize() {
ajax_loading = true;
- $.getScript('./?c=javascript&a=actualize').done(function () {
- if (auto && feed_count < 1) {
+ $.getJSON('./?c=javascript&a=actualize').done(function (data) {
+ if (auto && data.feeds.length < 1) {
auto = false;
ajax_loading = false;
return false;
}
-
- updateFeeds();
+ if (data.feeds.length === 0) {
+ openNotification(data.feedback_no_refresh, "good");
+ ajax_loading = false;
+ return;
+ }
+ //Progress bar
+ var feeds_count = data.feeds.length;
+ $('body').after('' + data.feedback_actualize + '
/
0 / ' + feeds_count + '
');
+ for (var i = 10; i > 0; i--) {
+ updateFeed(data.feeds, feeds_count);
+ }
});
return false;
@@ -795,7 +829,7 @@ function init_actualize() {
$("#actualize").click();
}
}
-
+//
//
var notification = null,