diff options
author | Alessandro Cosentino <cosenal@gmail.com> | 2012-07-17 21:49:38 -0400 |
---|---|---|
committer | Alessandro Cosentino <cosenal@gmail.com> | 2012-07-17 21:49:38 -0400 |
commit | 4ce35659094ed4df43ad41a198a2944aeced9784 (patch) | |
tree | 13be6588a7aa99a5a35700f4552bffb71e2e7a1d | |
parent | c378e972a12ba41d252d74e509f88ea7bec2544d (diff) |
update feeds works; need to be polished
-rw-r--r-- | ajax/feedlist.php | 8 | ||||
-rw-r--r-- | ajax/updatefeed.php | 18 | ||||
-rw-r--r-- | js/news.js | 17 | ||||
-rw-r--r-- | lib/feedmapper.php | 21 |
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 |