summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGregor Tätzner <gregor@freenet.de>2012-08-04 18:54:54 +0200
committerGregor Tätzner <gregor@freenet.de>2012-08-04 18:54:54 +0200
commit82cfb232c2728eb7acbb0adbd12a84b6b46e4322 (patch)
tree7471e7dec607026e19972ffb358892fc2286a185
parent91d194a5df74ba79e40fb1be8f87d79a506d2c85 (diff)
Show or hide items in rightcontent when creating or deleting feeds
-rw-r--r--ajax/createfeed.php12
-rw-r--r--ajax/deletefeed.php9
-rw-r--r--ajax/deletefolder.php13
-rw-r--r--js/news.js42
-rw-r--r--lib/feedmapper.php4
-rw-r--r--templates/part.items.deleted.php4
6 files changed, 62 insertions, 22 deletions
diff --git a/ajax/createfeed.php b/ajax/createfeed.php
index 364679189..0b05f3ab4 100644
--- a/ajax/createfeed.php
+++ b/ajax/createfeed.php
@@ -44,9 +44,13 @@ if($feed == null || !$feedid) {
exit();
}
-$tmpl = new OCP\Template("news", "part.listfeed");
-$tmpl->assign('child', $feed);
-$listfeed = $tmpl->fetchPage();
+$tmpl_listfeed = new OCP\Template("news", "part.listfeed");
+$tmpl_listfeed->assign('child', $feed);
+$listfeed = $tmpl_listfeed->fetchPage();
-OCP\JSON::success(array('data' => array('message' => $l->t('Feed added!'), 'listfeed' => $listfeed)));
+$tmpl_items = new OCP\Template("news", "part.items");
+$tmpl_items->assign('feedid', $feedid);
+$part_items = $tmpl_items->fetchPage();
+
+OCP\JSON::success(array('data' => array( 'message' => $l->t('Feed added!'), 'listfeed' => $listfeed, 'part_items' => $part_items )));
diff --git a/ajax/deletefeed.php b/ajax/deletefeed.php
index d31a9417d..71574aa1b 100644
--- a/ajax/deletefeed.php
+++ b/ajax/deletefeed.php
@@ -4,10 +4,10 @@
*
* @author Alessandro Cosentino
* Copyright (c) 2012 - Alessandro Cosentino <cosenal@gmail.com>
-*
+*
* This file is licensed under the Affero General Public License version 3 or later.
* See the COPYING-README file
-*
+*
*/
// Check if we are a user
@@ -30,4 +30,7 @@ if(!$success) {
exit();
}
-OCP\JSON::success(array('data' => array( 'feedid' => $feedid )));
+$tmpl = new OCP\Template("news", "part.items.deleted");
+$part_items = $tmpl->fetchPage();
+
+OCP\JSON::success(array('data' => array( 'feedid' => $feedid, 'part_items' => $part_items )));
diff --git a/ajax/deletefolder.php b/ajax/deletefolder.php
index 7c38557f6..65eec5bdf 100644
--- a/ajax/deletefolder.php
+++ b/ajax/deletefolder.php
@@ -18,6 +18,8 @@ OCP\JSON::callCheck();
$userid = OCP\USER::getUser();
$folderid = trim($_POST['folderid']);
+$shownfeedid = trim($_POST['shownfeedid']);
+$part_items = false;
$foldermapper = new OC_News_FolderMapper();
@@ -27,4 +29,13 @@ if(!$foldermapper->deleteById($folderid)) {
exit();
}
-OCP\JSON::success(array('data' => array( 'folderid' => $folderid )));
+// lets check if the currently shown feed is among the deleted feeds
+if ($shownfeedid != null) {
+ $feedmapper = new OC_News_FeedMapper();
+ if (!$feedmapper->findById($shownfeedid)) {
+ $tmpl = new OCP\Template("news", "part.items.deleted");
+ $part_items = $tmpl->fetchPage();
+ }
+}
+
+OCP\JSON::success(array('data' => array( 'folderid' => $folderid, 'part_items' => $part_items )));
diff --git a/js/news.js b/js/news.js
index da3abce81..f431c1c3a 100644
--- a/js/news.js
+++ b/js/news.js
@@ -62,7 +62,6 @@ News={
$.post(url, { name: displayname, parentid: folderid },
function(jsondata){
if(jsondata.status == 'success'){
- //$(button).closest('tr').prev().html(jsondata.page).show().next().remove();
$('div[data-id="' + folderid + '"] > ul').append(jsondata.data.listfolder);
setupFeedList();
OC.dialogs.confirm(t('news', 'Do you want to add another feed?'), t('news', 'Feed added!'), function(answer) {
@@ -82,9 +81,15 @@ News={
$('#feeds_delete').tipsy('hide');
OC.dialogs.confirm(t('news', 'Are you sure you want to delete this folder and all its feeds?'), t('news', 'Warning'), function(answer) {
if(answer == true) {
- $.post(OC.filePath('news', 'ajax', 'deletefolder.php'),{'folderid':folderid},function(jsondata){
+ var rightcontent = $('div.rightcontent');
+ var shownfeedid = rightcontent.attr('data-id');
+ $.post(OC.filePath('news', 'ajax', 'deletefolder.php'),{'folderid':folderid, 'shownfeedid':shownfeedid},function(jsondata){
if(jsondata.status == 'success'){
$('div.collapsable_container[data-id="' + jsondata.data.folderid + '"]').remove();
+ if(jsondata.data.part_items) {
+ rightcontent.empty();
+ rightcontent.html(jsondata.data.part_items);
+ }
}
else{
OC.dialogs.alert(jsondata.data.message, t('news', 'Error'));
@@ -118,6 +123,10 @@ News={
OC.dialogs.confirm(t('news', 'Do you want to add another feed?'), t('news', 'Feed added!'), function(answer) {
if(!answer) {
$('#addfeed_dialog').dialog('destroy').remove();
+ var rightcontent = $('div.rightcontent');
+ rightcontent.empty();
+ rightcontent.html(jsondata.data.part_items);
+ setupRightContent();
}
});
} else {
@@ -136,7 +145,11 @@ News={
$.post(OC.filePath('news', 'ajax', 'deletefeed.php'),{'feedid':feedid},function(jsondata){
if(jsondata.status == 'success'){
$('li.feeds_list[data-id="'+jsondata.data.feedid+'"]').remove();
- //change the right view too (maybe a message to subscribe, like in Google Reader?)
+ var rightcontent = $('div.rightcontent');
+ if(rightcontent.attr('data-id') == feedid) {
+ rightcontent.empty();
+ rightcontent.html(jsondata.data.part_items);
+ }
}
else{
OC.dialogs.alert(jsondata.data.message, t('news', 'Error'));
@@ -234,16 +247,7 @@ function setupFeedList() {
list.find('#unreaditemcounter').show();
}
-$(document).ready(function(){
-
- $('#addfeed').click(function() {
- News.UI.overview('#addfeed_dialog','feeddialog.php');
- });
-
- $('#addfolder').click(function() {
- News.UI.overview('#addfolder_dialog','folderdialog.php');
- });
-
+function setupRightContent() {
$('.accordion .title_unread').click(function() {
$(this).next().toggle();
return false;
@@ -253,6 +257,17 @@ $(document).ready(function(){
$(this).next().toggle();
return false;
}).next().hide();
+}
+
+$(document).ready(function(){
+
+ $('#addfeed').click(function() {
+ News.UI.overview('#addfeed_dialog','feeddialog.php');
+ });
+
+ $('#addfolder').click(function() {
+ News.UI.overview('#addfolder_dialog','folderdialog.php');
+ });
$('#addfeedfolder').click(function(event) {
event.stopPropagation();
@@ -267,6 +282,7 @@ $(document).ready(function(){
});
setupFeedList();
+ setupRightContent();
News.Feed.updateAll();
var updateInterval = 200000; //how often the feeds should update (in msec)
diff --git a/lib/feedmapper.php b/lib/feedmapper.php
index 6461b6bf7..a533691cb 100644
--- a/lib/feedmapper.php
+++ b/lib/feedmapper.php
@@ -59,7 +59,9 @@ class OC_News_FeedMapper {
public function findById($id){
$stmt = OCP\DB::prepare('SELECT * FROM ' . self::tableName . ' WHERE id = ?');
$result = $stmt->execute(array($id));
- $row = $result->fetchRow();
+ if(!$row = $result->fetchRow())
+ return null;
+
$url = $row['url'];
$title = $row['title'];
$feed = new OC_News_Feed($url, $title, null, $id);
diff --git a/templates/part.items.deleted.php b/templates/part.items.deleted.php
new file mode 100644
index 000000000..4d2ff0263
--- /dev/null
+++ b/templates/part.items.deleted.php
@@ -0,0 +1,4 @@
+<div id="items_deleted">
+<!-- TODO: this message is a stub, maybe mimic google reader etc... -->
+ <?php echo $l->t('You have just deleted this feed') ?>
+</div> \ No newline at end of file