diff options
-rw-r--r-- | ajax/loadfeed.php | 2 | ||||
-rw-r--r-- | controllers/news.controller.php | 28 | ||||
-rw-r--r-- | templates/part.feeds.php | 12 | ||||
-rw-r--r-- | templates/part.items.php | 2 | ||||
-rw-r--r-- | templates/part.listfeed.php | 30 | ||||
-rw-r--r-- | 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'] ?> -<li class="subscriptions <?php if($feedType == OCA\News\FeedType::SUBSCRIPTIONS) { echo "active"; }; ?>"> +<li class="subscriptions <?php if($lastViewedFeedType == OCA\News\FeedType::SUBSCRIPTIONS) { echo "active"; }; ?>"> <a class="title" href="#" ><?php echo $l->t('New articles'); ?></a> <span class="buttons"> <button class="svg action feeds_markread" title="<?php echo $l->t('Mark all read'); ?>"></button> </span> </li> -<li class="starred <?php if($feedType == OCA\News\FeedType::STARRED) { echo "active"; }; ?>"> +<li class="starred <?php if($lastViewedFeedType == OCA\News\FeedType::STARRED) { echo "active"; }; ?>"> <a class="title" href="#" ><?php echo $l->t('Starred'); ?></a> <span class="unread_items_counter"><?php echo $starredCount ?></span> </li> 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 @@ <?php -$feedId = isset($_['feedid']) ? $_['feedid'] : ''; +$feedId = isset($_['lastViewedFeedId']) ? $_['lastViewedFeedId'] : ''; $itemMapper = new OCA\News\ItemMapper(); diff --git a/templates/part.listfeed.php b/templates/part.listfeed.php index 6012b574d..74ad344c8 100644 --- a/templates/part.listfeed.php +++ b/templates/part.listfeed.php @@ -2,23 +2,27 @@ $l = new OC_l10n('news'); -if(isset($_['mock'])) { - $feedTitle = ''; - $feedId = -1; - $unreadItemsCount = -1; + +$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'); +} + +$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 '<li class="feed" data-id="' . $feedId . '">'; +echo '<li class="feed ' . $activeClass . '" data-id="' . $feedId . '">'; echo '<a style="background-image: url(' . $favicon . ');" href="#" class="title">' . $feedTitle .'</a>'; echo '<span class="unread_items_counter">' . $unreadItemsCount . '</span>'; echo '<span class="buttons">'; 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 '<li class="folder ' . $openedClass . ' all_read" data-id="' . $folderId . '">'; + +$lastViewedFeedId = isset($_['lastViewedFeedId']) ? $_['lastViewedFeedId'] : null; +$lastViewedFeedType = isset($_['lastViewedFeedType']) ? $_['lastViewedFeedType'] : null; +if ($lastViewedFeedType === OCA\News\FeedType::FOLDER && $lastViewedFeedId === $feedId){ + $activeClass = 'active'; +} else { + $activeClass = ''; +} + +echo '<li class="folder ' . $openedClass . ' ' . $activeClass . ' all_read" data-id="' . $folderId . '">'; echo '<button class="collapsable_trigger" title="' . $l->t('Collapse') . '"></button>'; echo '<a href="#" class="title">' . htmlspecialchars($folderName, ENT_QUOTES, 'UTF-8') . '</a>'; echo '<span class="buttons">'; |