From 8904f6d3f5132529d654c5b5a8b94cec7304b482 Mon Sep 17 00:00:00 2001 From: Bernhard Posselt Date: Sat, 13 Oct 2012 03:07:34 +0200 Subject: preperations for always selecting last feed/folder --- ajax/loadfeed.php | 2 +- controllers/news.controller.php | 28 ++++++++++++++-------------- templates/part.feeds.php | 12 +++++------- templates/part.items.php | 2 +- templates/part.listfeed.php | 30 +++++++++++++++++------------- templates/part.listfolder.php | 12 +++++++++++- 6 files changed, 49 insertions(+), 37 deletions(-) diff --git a/ajax/loadfeed.php b/ajax/loadfeed.php index 4248796a4..e90a6fd9f 100644 --- a/ajax/loadfeed.php +++ b/ajax/loadfeed.php @@ -28,7 +28,7 @@ OCP\Config::setUserValue(OCP\USER::getUser(), 'news', 'lastViewedFeedType', $fee $l = OC_L10N::get('news'); $itemsTpl = new OCP\Template("news", "part.items"); -$itemsTpl->assign('feedid', $feedId); +$itemsTpl->assign('lastViewedFeedId', $feedId); $feedItems = $itemsTpl->fetchPage(); $itemMapper = new OCA\News\ItemMapper(); diff --git a/controllers/news.controller.php b/controllers/news.controller.php index 30b409f54..9695e85d1 100644 --- a/controllers/news.controller.php +++ b/controllers/news.controller.php @@ -58,40 +58,40 @@ class NewsController extends Controller { $folderMapper = new FolderMapper($this->userId); $feedMapper = new FeedMapper($this->userId); + $itemMapper = new ItemMapper($this->userId); // always show the last viewed feed on reload - $lastViewedId = $this->getUserValue('lastViewedFeed'); - $lastViewedType = $this->getUserValue('lastViewedFeedType'); + $lastViewedFeedId = $this->getUserValue('lastViewedFeed'); + $lastViewedFeedType = $this->getUserValue('lastViewedFeedType'); $showAll = $this->getUserValue('showAll'); - if( $lastViewedId === null || $lastViewedType === null) { - $lastViewedId = $feedMapper->mostRecent(); + if( $lastViewedFeedId === null || $lastViewedFeedType === null) { + $lastViewedFeedId = $feedMapper->mostRecent(); } else { // check if the last selected feed or folder exists if( ( - $lastViewedType === FeedType::FEED && - $feedMapper->findById($lastViewedId) === null + $lastViewedFeedType === FeedType::FEED && + $feedMapper->findById($lastViewedFeedId) === null ) || ( - $lastViewedType === FeedType::FOLDER && - $folderMapper->findById($lastViewedId) === null + $lastViewedFeedType === FeedType::FOLDER && + $folderMapper->findById($lastViewedFeedId) === null ) ){ - $lastViewedId = $feedMapper->mostRecent(); + $lastViewedFeedId = $feedMapper->mostRecent(); } } $feeds = $folderMapper->childrenOfWithFeeds(0); $folderForest = $folderMapper->childrenOf(0); //retrieve all the folders + $starredCount = $itemMapper->countEveryItemByStatus(StatusFlag::IMPORTANT); $params = array( 'allfeeds' => $feeds, 'folderforest' => $folderForest, 'showAll' => $showAll, - 'lastViewedId' => $lastViewedType, - 'lastViewedType' => $lastViewedType, - // FIXME: for compability, remove this after refactoring - 'feedid' => $lastViewedId, - 'feedtype' => $lastViewedType, + 'lastViewedFeedId' => $lastViewedFeedId, + 'lastViewedFeedType' => $lastViewedFeedType, + 'starredCount' => $starredCount, ); $this->render('main', $params); diff --git a/templates/part.feeds.php b/templates/part.feeds.php index d85a07079..e766fb033 100644 --- a/templates/part.feeds.php +++ b/templates/part.feeds.php @@ -32,21 +32,19 @@ function print_collection_list($list) { } $allfeeds = isset($_['allfeeds']) ? $_['allfeeds'] : ''; -$feedId = $_['feedid']; -$feedType = $_['feedtype']; - -$itemMapper = new OCA\News\ItemMapper(); -$starredCount = $itemMapper->countEveryItemByStatus(OCA\News\StatusFlag::IMPORTANT); +$lastViewedFeedId = $_['lastViewedFeedId']; +$lastViewedFeedType = $_['lastViewedFeedType']; +$starredCount = $_['starredCount'] ?> -
  • "> +
  • "> t('New articles'); ?>
  • -
  • "> +
  • "> t('Starred'); ?>
  • diff --git a/templates/part.items.php b/templates/part.items.php index 098718a6b..296080eb8 100644 --- a/templates/part.items.php +++ b/templates/part.items.php @@ -1,6 +1,6 @@ getTitle()); +$feedId = $feed->getId(); +$unreadItemsCount = isset($_['unreadItemsCount']) ? $_['unreadItemsCount'] : null; +$favicon = $feed->getFavicon(); + +if ($favicon == null) { $favicon = OCP\Util::imagePath('core', 'actions/public.svg'); +} + +$lastViewedFeedId = isset($_['lastViewedFeedId']) ? $_['lastViewedFeedId'] : null; +$lastViewedFeedType = isset($_['lastViewedFeedType']) ? $_['lastViewedFeedType'] : null; +if ($lastViewedFeedType === OCA\News\FeedType::FEED && $lastViewedFeedId === $feedId){ + $activeClass = 'active'; } else { - $feed = isset($_['feed']) ? $_['feed'] : null; - htmlspecialchars_decode($feedTitle = $feed->getTitle()); - $feedId = $feed->getId(); - $unreadItemsCount = isset($_['unreadItemsCount']) ? $_['unreadItemsCount'] : null; - $favicon = $feed->getFavicon(); - if ($favicon == null) { - $favicon = OCP\Util::imagePath('core', 'actions/public.svg'); - } + $activeClass = ''; } -echo '
  • '; +echo '
  • '; echo '' . $feedTitle .''; echo '' . $unreadItemsCount . ''; echo ''; diff --git a/templates/part.listfolder.php b/templates/part.listfolder.php index 9057a14ba..2eea9c7e7 100644 --- a/templates/part.listfolder.php +++ b/templates/part.listfolder.php @@ -6,13 +6,23 @@ $l = new OC_l10n('news'); $folder = isset($_['folder']) ? $_['folder'] : null; $folderId = $folder->getId(); $folderName = $folder->getName(); + if($folder->getOpened()){ $openedClass = 'open'; } else { $openedClass = 'collapsed'; } -echo '
  • '; + +$lastViewedFeedId = isset($_['lastViewedFeedId']) ? $_['lastViewedFeedId'] : null; +$lastViewedFeedType = isset($_['lastViewedFeedType']) ? $_['lastViewedFeedType'] : null; +if ($lastViewedFeedType === OCA\News\FeedType::FOLDER && $lastViewedFeedId === $feedId){ + $activeClass = 'active'; +} else { + $activeClass = ''; +} + +echo '
  • '; echo ''; echo '' . htmlspecialchars($folderName, ENT_QUOTES, 'UTF-8') . ''; echo ''; -- cgit v1.2.3