diff options
-rw-r--r-- | ajax/importopml.php | 34 | ||||
-rw-r--r-- | js/settings.js | 12 |
2 files changed, 35 insertions, 11 deletions
diff --git a/ajax/importopml.php b/ajax/importopml.php index e363254c3..f0a7d556c 100644 --- a/ajax/importopml.php +++ b/ajax/importopml.php @@ -10,13 +10,14 @@ * */ -global $eventSource; + // Check if we are a user OCP\JSON::checkLoggedIn(); OCP\JSON::checkAppEnabled('news'); OCP\JSON::callCheck(); +global $l; $l = OC_L10N::get('news'); function bailOut($msg) { @@ -27,6 +28,7 @@ function bailOut($msg) { exit(); } +global $eventSource; $eventSource=new OC_EventSource(); require_once 'news/opmlparser.php'; @@ -65,16 +67,28 @@ if ($parsed == null) { $data = $parsed->getData(); function importFeed($feedurl, $folderid) { + + global $eventSource; + global $l; + $feedmapper = new OCA\News\FeedMapper(); $feedid = $feedmapper->findIdFromUrl($feedurl); - $l = OC_L10N::get('news'); - if ($feedid === null) { $feed = OCA\News\Utils::slimFetch($feedurl); - + if ($feed !== null) { $feedid = $feedmapper->save($feed, $folderid); + + $itemmapper = new OCA\News\ItemMapper(OCP\USER::getUser()); + $unreadItemsCount = $itemmapper->countAllStatus($feedid, OCA\News\StatusFlag::UNREAD); + + $tmpl_listfeed = new OCP\Template("news", "part.listfeed"); + $tmpl_listfeed->assign('feed', $feed); + $tmpl_listfeed->assign('unreadItemsCount', $unreadItemsCount); + $listfeed = $tmpl_listfeed->fetchPage(); + + $eventSource->send('progress', array('data' => array('type'=>'feed', 'folderid'=>$folderid, 'listfeed'=>$listfeed))); } } else { OCP\Util::writeLog('news','ajax/importopml.php: This feed is already here: '. $feedurl, OCP\Util::WARN); @@ -90,6 +104,10 @@ function importFeed($feedurl, $folderid) { } function importFolder($name, $parentid) { + + global $eventSource; + global $l; + $foldermapper = new OCA\News\FolderMapper(); if($parentid != 0) { @@ -100,8 +118,12 @@ function importFolder($name, $parentid) { $folderid = $foldermapper->save($folder); - $l = OC_L10N::get('news'); - + $tmpl = new OCP\Template("news" , "part.listfolder"); + $tmpl->assign("folder", $folder); + $listfolder = $tmpl->fetchPage(); + + $eventSource->send('progress', array('data' => array('type'=>'folder', 'listfolder'=>$listfolder))); + if(!$folderid) { OCP\Util::writeLog('news','ajax/importopml.php: Error adding folder' . $name, OCP\Util::ERROR); return null; diff --git a/js/settings.js b/js/settings.js index ed99d8733..4ab664250 100644 --- a/js/settings.js +++ b/js/settings.js @@ -50,16 +50,18 @@ News.Settings={ if (jsondata.status == 'success') { var eventSource=new OC.EventSource(OC.filePath('news','ajax','importopml.php'),{source:jsondata.data.source, path:jsondata.data.path}); eventSource.listen('progress',function(progress){ - $('#notification').html('bingo'); - //News.Objects.Menu.addNode(folderid, jsonData.data.listfeed); - //News.Objects.Menu.load(News.MenuNodeType.Feed, jsonData.data.feedid); + if (progress.data.type == 'feed') { + News.Objects.Menu.addNode(progress.data.folderid, progress.data.listfeed); + } else if (progress.data.type == 'folder') { + News.Objects.Menu.addNode(0, progress.data.listfolder); + } }); eventSource.listen('success',function(data){ - $('#notification').html('done'); + $('#notification').html(t('news', 'Importing done')); }); eventSource.listen('error',function(error){ $('#notification').fadeOut('400'); - OC.dialogs.alert(error, t('news', 'Error')); + OC.dialogs.alert(error, t('news', 'Error while importing feeds.')); }); } else { |