summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ajax/feedlist.php8
-rw-r--r--ajax/updatefeed.php18
-rw-r--r--js/news.js17
-rw-r--r--lib/feedmapper.php21
4 files changed, 46 insertions, 18 deletions
diff --git a/ajax/feedlist.php b/ajax/feedlist.php
index e5a37ef2b..92d1e0f20 100644
--- a/ajax/feedlist.php
+++ b/ajax/feedlist.php
@@ -18,15 +18,15 @@ OCP\JSON::callCheck();
$userid = OCP\USER::getUser();
$feedmapper = new OC_News_FeedMapper();
+$feeds = $feedmapper->findAll($userid);
$l = OC_L10N::get('news');
-if(!$feedid) {
+if($feeds == null) {
OCP\JSON::error(array('data' => array('message' => $l->t('Error adding folder.'))));
- OCP\Util::writeLog('news','ajax/feedlist.php: Error adding feed: '.$_POST['feedurl'], OCP\Util::ERROR);
+ OCP\Util::writeLog('news','ajax/feedlist.php: Error updating feeds: '.$_POST['feedurl'], OCP\Util::ERROR);
exit();
}
-//TODO: replace the following with a real success case. see contact/ajax/createaddressbook.php for inspirations
-OCP\JSON::success(array('data' => array('message' => $l->t('Feed added!'))));
+OCP\JSON::success(array('data' => $feeds));
diff --git a/ajax/updatefeed.php b/ajax/updatefeed.php
index 754d87495..bc74324e3 100644
--- a/ajax/updatefeed.php
+++ b/ajax/updatefeed.php
@@ -17,21 +17,23 @@ OCP\JSON::callCheck();
$userid = OCP\USER::getUser();
-$feedurl = trim($_POST['feedurl']);
-$folderid = trim($_POST['folderid']);
+$feedid = $_POST['feedid'];
+$feedurl = $_POST['feedurl'];
+$folderid = $_POST['folderid'];
+
+$newfeed = OC_News_Utils::fetch($feedurl);
-$feed = OC_News_Utils::fetch($feedurl);
$feedmapper = new OC_News_FeedMapper();
-$feedid = $feedmapper->save($feed, $folderid);
+$newfeedid = $feedmapper->save($newfeed, $folderid);
$l = OC_L10N::get('news');
-if(!$feedid) {
- OCP\JSON::error(array('data' => array('message' => $l->t('Error adding folder.'))));
- OCP\Util::writeLog('news','ajax/createfeed.php: Error adding feed: '.$_POST['feedurl'], OCP\Util::ERROR);
+if(!$newfeedid) {
+ OCP\JSON::error(array('data' => array('message' => $l->t('Error updating feed.'))));
+ OCP\Util::writeLog('news','ajax/updatefeed.php: Error updating feed: '.$_POST['feedid'], OCP\Util::ERROR);
exit();
}
//TODO: replace the following with a real success case. see contact/ajax/createaddressbook.php for inspirations
-OCP\JSON::success(array('data' => array('message' => $l->t('Feed added!'))));
+OCP\JSON::success(array('data' => array('message' => $l->t('Feed updated!'))));
diff --git a/js/news.js b/js/news.js
index 16574c448..4a10ccdca 100644
--- a/js/news.js
+++ b/js/news.js
@@ -153,18 +153,23 @@ News={
updateAll:function() {
$.post(OC.filePath('news', 'ajax', 'feedlist.php'),function(jsondata){
if(jsondata.status == 'success'){
-
+ var feeds = jsondata.data;
+ for (var i = 0; i < feeds.length; i++) {
+ News.Feed.updateFeed(feeds[i]['id'], feeds[i]['url'], feeds[i]['folderid']);
+ }
}
- else{
- OC.dialogs.alert(jsondata.data.message, t('news', 'Error'));
+ else {
+ //TODO:handle error case
}
});
},
- updateFeed:function(feedid) {
- $.post(OC.filePath('news', 'ajax', 'updatefeed.php'),{'feedid':feedid},function(jsondata){
+ updateFeed:function(feedid, feedurl, folderid) {
+ $.post(OC.filePath('news', 'ajax', 'updatefeed.php'),{'feedid':feedid, 'feedurl':feedurl, 'folderid':folderid},function(jsondata){
if(jsondata.status == 'success'){
+
}
else{
+ //TODO:handle error case
}
});
}
@@ -216,7 +221,7 @@ $(document).ready(function(){
event.stopPropagation();
});
- var updateInterval = 200000; //how often the feeds should update (in msec)
+ var updateInterval = 10000; //how often the feeds should update (in msec)
setInterval('News.Feed.updateAll()', updateInterval);
});
diff --git a/lib/feedmapper.php b/lib/feedmapper.php
index c43ff47a5..80afcb481 100644
--- a/lib/feedmapper.php
+++ b/lib/feedmapper.php
@@ -16,6 +16,27 @@
class OC_News_FeedMapper {
const tableName = '*PREFIX*news_feeds';
+
+ /**
+ * @brief
+ * @param userid
+ * @returns
+ */
+ public function findAll($userid){
+ $stmt = OCP\DB::prepare('SELECT * FROM ' . self::tableName .
+ ' JOIN ' . OC_News_FolderMapper::tableName .
+ ' ON ' . self::tableName. '.folder_id=' . OC_News_FolderMapper::tableName . '.id' .
+ ' WHERE user_id = ?');
+ $result = $stmt->execute(array($userid));
+ $feeds = array();
+ while ($row = $result->fetchRow()) {
+ $url = $row['url'];
+ $id = $row['id'];
+ $folderid = $row['folder_id'];
+ $feeds[] = array("url" => $url, "id" => $id, "folderid" => $folderid);
+ }
+ return $feeds;
+ }
/**
* @brief Retrieve a feed from the database