summaryrefslogtreecommitdiffstats
path: root/controller
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-03-23 00:43:29 +0100
committerBernhard Posselt <nukeawhale@gmail.com>2013-03-23 00:43:29 +0100
commita2d264b4d4d7d71c719c0665c40f55e411bdd4f4 (patch)
treea2de87f6f1269f134c6469c4b4e6d5f81ae78fc4 /controller
parent29edf7eacdc51e312ffe8fecaa4a3d0a2aef8d73 (diff)
removed old controller classes
Diffstat (limited to 'controller')
-rw-r--r--controller/news.ajax.controller.php428
-rw-r--r--controller/news.controller.php98
2 files changed, 0 insertions, 526 deletions
diff --git a/controller/news.ajax.controller.php b/controller/news.ajax.controller.php
deleted file mode 100644
index 552bb32de..000000000
--- a/controller/news.ajax.controller.php
+++ /dev/null
@@ -1,428 +0,0 @@
-<?php
-/**
-* ownCloud - News app
-*
-* @author Bernhard Posselt
-* Copyright (c) 2012 - Bernhard Posselt <nukeawhale@gmail.com>
-*
-* This file is licensed under the Affero General Public License version 3 or later.
-* See the COPYING-README file
-*
-*/
-
-namespace OCA\News;
-
-/**
- * Class which handles all ajax calls
- */
-class NewsAjaxController extends Controller {
-
- private $feedMapper;
- private $folderMapper;
- private $itemMapper;
-
- /**
- * @param Request $request: the object with the request instance
- * @param string $api: an instance of the api wrapper
- * @param FeedMapper $feedMapepr an instance of the feed mapper
- * @param FolderMapper $folderMapper an instance of the folder mapper
- * @param ItemMapper $itemMapper an instance of the item mapper
- */
- public function __construct($request, $api, $feedMapper, $folderMapper,
- $itemMapper){
- parent::__construct($request, $api);
- $this->feedMapper = $feedMapper;
- $this->folderMapper = $folderMapper;
- $this->itemMapper = $itemMapper;
- }
-
-
- /**
- * @brief turns a post parameter which got a boolean from javascript to
- * a boolean in PHP
- * @param string $param the post parameter that should be turned into a bool
- * @return a PHP boolean
- */
- public function postParamToBool($param){
- if($param === 'false') {
- return false;
- } else {
- return true;
- }
- }
-
-
- /**
- * This turns a folder result into an array which can be sent to the client
- * as JSON
- * @param array $folders the database query result for folders
- * @return an array ready for sending as JSON
- */
- private function foldersToArray($folders){
- $foldersArray = array();
- foreach($folders as $folder){
- if($folder instanceof \OCA\News\Folder){
- array_push($foldersArray, array(
- 'id' => (int)$folder->getId(),
- 'name' => $folder->getName(),
- 'open' => $folder->getOpened()==="1",
- 'hasChildren' => count($folder->getChildren()) > 0,
- 'show' => true
- )
- );
- }
- }
- return $foldersArray;
- }
-
-
- /**
- * This turns a feed result into an array which can be sent to the client
- * as JSON
- * @param array $feeds the database query result for feeds
- * @return an array ready for sending as JSON
- */
- private function feedsToArray($feeds){
- $feedsArray = array();
- foreach($feeds as $feed){
- array_push($feedsArray, array(
- 'id' => (int)$feed->getId(),
- 'name' => $feed->getTitle(),
- 'unreadCount' => (int)$this->itemMapper->getUnreadCount(FeedType::FEED,
- $feed->getId()),
- 'folderId' => (int)$feed->getFolderId(),
- 'show' => true,
- 'icon' => 'url(' . $feed->getFavicon() .')',
- 'url' => $feed->getUrl()
- )
- );
- }
- return $feedsArray;
- }
-
-
- /**
- * This turns an items result into an array which can be sent to the client
- * as JSON
- * @param array $items the database query result for items
- * @return an array ready for sending as JSON
- */
- private function itemsToArray($items){
- $itemsArray = array();
- foreach($items as $item){
-
- $enclosure = $item->getEnclosure();
- if($enclosure){
- $enclosure = array(
- 'link' => $enclosure->getLink(),
- 'type' => $enclosure->getMimeType()
- );
- }
-
- array_push($itemsArray, array(
- 'id' => (int)$item->getId(),
- 'title' => $item->getTitle(),
- 'isRead' => (bool)$item->isRead(),
- 'isImportant' => (bool)$item->isImportant(),
- 'feedId' => (int)$item->getFeedId(),
- 'feedTitle' => $item->getFeedTitle(),
- 'date' => (int)$item->getDate(),
- 'body' => $item->getBody(),
- 'author' => $item->getAuthor(),
- 'url' => $item->getUrl(),
- 'enclosure' => $enclosure
- )
- );
- }
- return $itemsArray;
- }
-
-
- /**
- * This is being called when the app starts and all feeds
- * and folders are requested
- */
- public function init(){
- $folders = $this->folderMapper->childrenOfWithFeeds(0);
- $foldersArray = $this->foldersToArray($folders);
-
- $feeds = $this->feedMapper->findAll();
- $feedsArray = $this->feedsToArray($feeds);
-
- $activeFeed = array();
- $activeFeed['id'] = (int)$this->api->getUserValue('lastViewedFeed');
- $activeFeed['type'] = (int)$this->api->getUserValue('lastViewedFeedType');
-
- $showAll = $this->api->getUserValue('showAll') === "1";
-
- $starredCount = $this->itemMapper->getUnreadCount(\OCA\News\FeedType::STARRED, 0);
-
- $result = array(
- 'folders' => $foldersArray,
- 'feeds' => $feedsArray,
- 'activeFeed' => $activeFeed,
- 'showAll' => $showAll,
- 'userId' => $this->userId,
- 'starredCount' => $starredCount
- );
-
- return $this->renderJSON($result);
- }
-
-
- /**
- * loads the next X feeds from the server
- */
- public function loadFeed(){
- $feedType = (int)$this->params('type');
- $feedId = (int)$this->params('id');
- $latestFeedId = (int)$this->params('latestFeedId');
- $latestTimestamp = (int)$this->params('latestTimestamp');
- $limit = (int)$this->params('limit');
-
- // FIXME: integrate latestFeedId, latestTimestamp and limit
- $this->api->setUserValue('lastViewedFeed', $feedId);
- $this->api->setUserValue('lastViewedFeedType', $feedType);
-
- $showAll = $this->api->getUserValue('showAll');
-
- $items = $this->itemMapper->getItems($feedType, $feedId, $showAll);
- $itemsArray = $this->itemsToArray($items);
-
- // update unread count of all feeds
- $feeds = $this->feedMapper->findAll();
- $feedsArray = array();
-
- foreach($feeds as $feed){
- $unreadCount = $this->itemMapper->countAllStatus($feed->getId(), StatusFlag::UNREAD);
- $unreadArray = array(
- 'id' => (int)$feed->getId(),
- 'unreadCount' => (int)$unreadCount
- );
- array_push($feedsArray, $unreadArray);
- }
-
- $result = array(
- 'items' => $itemsArray,
- 'feeds' => $feedsArray
- );
-
- return $this->renderJSON($result);
-
- }
-
-
- /**
- * Used for setting the showAll value from a post request
- */
- public function setShowAll(){
- $showAll = $this->postParamToBool($this->params('showAll'));
- $this->api->setUserValue('showAll', $showAll);
- return $this->renderJSON();
- }
-
-
- /**
- * Used for setting the showAll value from a post request
- */
- public function collapseFolder(){
- $folderId = (int)$this->params('folderId');
- $opened = $this->postParamToBool($this->params('opened'));
-
- $folder = $this->folderMapper->find($folderId);
- $folder->setOpened($opened);
- $this->folderMapper->update($folder);
- return $this->renderJSON();
- }
-
-
- /**
- * Deletes a feed
- */
- public function deleteFeed(){
- $feedId = (int)$this->params('feedId');
- $this->feedMapper->deleteById($feedId);
- return $this->renderJSON();
- }
-
-
- /**
- * Deletes a folder
- */
- public function deleteFolder(){
- $folderId = (int)$this->params('folderId');
- $this->folderMapper->deleteById($folderId);
- return $this->renderJSON();
- }
-
-
- /**
- * Sets the status of an item
- */
- public function setItemStatus(){
- $itemId = (int)$this->params('itemId');
- $status = $this->params('status');
- $item = $this->itemMapper->findById($itemId);
-
- switch ($status) {
- case 'read':
- $item->setRead();
- break;
- case 'unread':
- $item->setUnread();
- break;
- case 'important':
- $item->setImportant();
- break;
- case 'unimportant':
- $item->setUnimportant();
- break;
- default:
- exit();
- break;
- }
-
- $this->itemMapper->update($item);
- return $this->renderJSON();
- }
-
-
- /**
- * Changes the name of a folder
- */
- public function changeFolderName(){
- $folderId = (int)$this->params('folderId');
- $folderName = $this->params('folderName');
- $folder = $this->folderMapper->find($folderId);
- $folder->setName($folderName);
- $this->folderMapper->update($folder);
- return $this->renderJSON();
- }
-
-
- /**
- * Moves a feed to a new folder
- */
- public function moveFeedToFolder(){
- $feedId = (int)$this->params('feedId');
- $folderId = (int)$this->params('folderId');
- $feed = $this->feedMapper->findById($feedId);
- if($folderId === 0) {
- $this->feedMapper->save($feed, $folderId);
- } else {
- $folder = $this->folderMapper->find($folderId);
- if(!$folder){
- $msgString = 'Can not move feed %s to folder %s';
- $msg = $this->trans->t($msgString, array($feedId, $folderId));
- return $this->renderJSONError($msg, __FILE__);
- }
- $this->feedMapper->save($feed, $folder->getId());
- }
- return $this->renderJSON();
- }
-
-
- /**
- * Pulls new feed items from its url
- */
- public function updateFeed(){
- $feedId = (int)$this->params('feedId');
- $feed = $this->feedMapper->findById($feedId);
- $newFeed = Utils::fetch($feed->getUrl());
-
- $newFeedId = false;
- if ($newFeed !== null) {
- $newFeedId = $this->feedMapper->save($newFeed, $feed->getFolderId());
- }
-
- if($newFeedId){
- $feeds = array($this->feedMapper->findById($feedId));
- $feedsArray = array(
- 'feeds' => $this->feedsToArray($feeds)
- );
- return $this->renderJSON($feedsArray);
- } else {
- $msgString = 'Error updating feed %s';
- $msg = $this->trans->t($msgString, array($feed->getUrl()));
- return $this->renderJSONError($msg, __FILE__);
- }
-
- }
-
-
- /**
- * Creates a new folder
- */
- public function createFolder(){
- $folderName = $this->params('folderName');
- $folder = new Folder($folderName);
- $folderId = $this->folderMapper->save($folder);
- $folders = array($this->folderMapper->findById($folderId));
- $foldersArray = array(
- 'folders' => $this->foldersToArray($folders)
- );
- return $this->renderJSON($foldersArray);
- }
-
-
- /**
- * Creates a new feed
- */
- public function createFeed(){
- $feedUrl = trim($this->params('feedUrl'));
- $folderId = (int)$this->params('folderId');
-
- $folder = $this->folderMapper->findById($folderId);
-
- if(!$folder && $folderId !== 0){
- $msgString = 'Folder with id %s does not exist';
- $msg = $this->trans->t($msgString, array($folderId));
- var_dump($folder);
- return $this->renderJSONError($msg, __FILE__);
- }
-
- if($this->feedMapper->findIdFromUrl($feedUrl)){
- $msgString = 'Feed %s does already exist';
- $msg = $this->trans->t($msgString, array($feedUrl));
- return $this->renderJSONError($msg, __FILE__);
- }
-
- $feed = Utils::fetch($feedUrl);
- if($feed){
- $feedId = $this->feedMapper->save($feed, $folderId);
- $feeds = array($this->feedMapper->findById($feedId));
- $feedsArray = array(
- 'feeds' => $this->feedsToArray($feeds)
- );
- return $this->renderJSON($feedsArray);
- } else {
- $msgString = 'Could not create feed %s';
- $msg = $this->trans->t($msgString, array($feedUrl));
- return $this->renderJSONError($msg, __FILE__);
- }
- }
-
-
- /**
- * Sets all items read that are older than the current transmitted
- * dates and ids
- */
- public function setAllItemsRead($feedId, $mostRecentItemId){
- $feedId = (int)$this->params('feedId');
- $mostRecentItemId = (int)$this->params('mostRecentItemId');
-
- $feed = $this->feedMapper->findById($feedId);
-
- if($feed){
- $this->itemMapper->markAllRead($feed->getId(), $mostRecentItemId);
-
- $feeds = array($this->feedMapper->findById($feed->getId()));
- $feedsArray = array(
- 'feeds' => $this->feedsToArray($feeds)
- );
- return $this->renderJSON($feedsArray);
- }
-
- }
-
-}
diff --git a/controller/news.controller.php b/controller/news.controller.php
deleted file mode 100644
index 13b1c6745..000000000
--- a/controller/news.controller.php
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-/**
-* ownCloud - News app
-*
-* @author Bernhard Posselt
-* Copyright (c) 2012 - Bernhard Posselt <nukeawhale@gmail.com>
-*
-* This file is licensed under the Affero General Public License version 3 or later.
-* See the COPYING-README file
-*
-*/
-
-namespace OCA\News;
-
-
-class NewsController extends Controller {
-
- private $feedMapper;
- private $folderMapper;
-
- /**
- * @param Request $request: the object with the request instance
- * @param string $api: an instance of the api wrapper object
- * @param FolderMapper $folderMapper: an instance of the folder mapper
- * @param FeedMapper $feedMapper: an instance of the feed mapper
- */
- public function __construct($request, $api, $feedMapper, $folderMapper){
- parent::__construct($request, $api);
- $this->feedMapper = $feedMapper;
- $this->folderMapper = $folderMapper;
- $this->api->activateNavigationEntry();
- }
-
-
- /**
- * OPML export download page
- */
- public function exportOPML($urlParams=array()){
- $opmlExporter = new OPMLExporter($this->api);
-
- $allFeeds = $this->folderMapper->childrenOfWithFeeds(0);
- $opml = $opmlExporter->buildOPML($allFeeds);
-
- $fileName = 'ownCloud ' . $this->trans->t('News') . ' ' . $this->userId . '.opml';
- $contentType = 'application/x.opml+xml';
- $response = new TextDownloadResponse($opml, $fileName, $contentType);
-
- return $response;
- }
-
-
- /**
- * Decides wether to show the feedpage or the firstrun page
- */
- public function index($urlParams=array()){
- $this->api->add3rdPartyScript('angular/angular');
- $this->api->add3rdPartyScript('angular-ui/angular-ui');
- $this->api->add3rdPartyScript('moment.min');
- $this->api->addScript('app');
- $this->api->addScript('multiselect', 'core');
-
- $this->api->addStyle('owncloud');
- $this->api->addStyle('addnew');
- $this->api->addStyle('feeds');
- $this->api->addStyle('items');
- $this->api->addStyle('settings');
- $this->api->addStyle('addnew');
- $this->api->addStyle('showall');
-
- if(array_key_exists('feedid', $urlParams)){
- $this->api->setUserValue('lastViewedFeed', $urlParams['feedid']);
- $this->api->setUserValue('lastViewedFeedType', FeedType::FEED);
- }
-
- $lastViewedFeedId = $this->api->getUserValue('lastViewedFeed');
- $lastViewedFeedType = $this->api->getUserValue('lastViewedFeedType');
-
- if( $lastViewedFeedId === null || $lastViewedFeedType === null) {
-
- $this->api->setUserValue('lastViewedFeed', $this->feedMapper->mostRecent());;
- $this->api->setUserValue('lastViewedFeedType', FeedType::FEED);
-
- } else {
- // check if the last selected feed or folder exists
- if(($lastViewedFeedType === FeedType::FEED &&
- $this->feedMapper->findById($lastViewedFeedId) === null) ||
- ($lastViewedFeedType === FeedType::FOLDER &&
- $this->folderMapper->findById($lastViewedFeedId) === null)){
- $this->api->setUserValue('lastViewedFeed', $this->feedMapper->mostRecent());;
- $this->api->setUserValue('lastViewedFeedType', FeedType::FEED);
- }
- }
-
- return $this->render('main');
- }
-
-
-}