From 96088f65675d3306bebd0d2a271866dbe18ea926 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gregor=20T=C3=A4tzner?= Date: Fri, 3 Aug 2012 10:42:45 +0200 Subject: Implement dynamic folder adding in the same way like feed adding --- ajax/createfolder.php | 12 ++++++++---- css/news.css | 2 +- js/news.js | 4 +++- templates/part.feeds.php | 27 ++++++++++----------------- templates/part.listfeed.php | 2 ++ templates/part.listfolder.php | 17 +++++++++++++++++ 6 files changed, 41 insertions(+), 23 deletions(-) create mode 100644 templates/part.listfolder.php diff --git a/ajax/createfolder.php b/ajax/createfolder.php index 6d3c62411..09d43e966 100644 --- a/ajax/createfolder.php +++ b/ajax/createfolder.php @@ -35,8 +35,12 @@ $l = OC_L10N::get('news'); if(!$folderid) { OCP\JSON::error(array('data' => array('message' => $l->t('Error adding folder.')))); OCP\Util::writeLog('news','ajax/createfolder.php: Error adding folder: '.$_POST['name'], OCP\Util::ERROR); + exit(); } -else { - //TODO: replace the following with a real success case. see contact/ajax/createaddressbook.php for inspirations - OCP\JSON::success(array('data' => array('message' => $l->t('Folder added!')))); -} \ No newline at end of file + +$tmpl = new OCP\Template("news" , "part.listfolder"); +$tmpl->assign("folder", $folder); +$listfolder = $tmpl->fetchPage(); + +//TODO: replace the following with a real success case. see contact/ajax/createaddressbook.php for inspirations +OCP\JSON::success(array('data' => array('message' => $l->t('Folder added!'), 'listfolder' => $listfolder))); diff --git a/css/news.css b/css/news.css index 706bb5ecb..f42802d1b 100644 --- a/css/news.css +++ b/css/news.css @@ -13,7 +13,7 @@ #dropdownBtn { width: 9em; padding-left: 0; padding-right:20px; background: url('%webroot%/core/img/actions/triangle-s.svg') no-repeat right center; } #addfolder { background: url('%webroot%/core/img/places/folder.svg') no-repeat left center; padding-left: 20px !important; } -#addfeed { background: url('%appswebroot%/news/img/rss.svg') no-repeat left center; padding-left: 20px !important; } +#addfeed { background: url('%appswebroot%/apps/news/img/rss.svg') no-repeat left center; padding-left: 20px !important; } #unreaditemcounter.nonzero { position: relative; background: #5E5E5E; border-radius: 5px; padding: 0 5px; color: white; text-align: center; margin: 0 0.3em 0 0.3em;} #unreaditemcounter.zero { position: relative; margin: 0 0.3em 0 0; } diff --git a/js/news.js b/js/news.js index ea5f04007..8acca7821 100644 --- a/js/news.js +++ b/js/news.js @@ -63,6 +63,8 @@ News={ 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.alert(jsondata.data.message, t('news', 'Success!')); } else { OC.dialogs.alert(jsondata.data.message, t('news', 'Error')); @@ -114,7 +116,7 @@ News={ if(!answer) { $('#addfeed_dialog').dialog('destroy').remove(); } - }); + }); } else { OC.dialogs.alert(jsondata.data.message, t('news', 'Error')); } diff --git a/templates/part.feeds.php b/templates/part.feeds.php index df781767c..3d84617eb 100644 --- a/templates/part.feeds.php +++ b/templates/part.feeds.php @@ -1,26 +1,19 @@
  • ' . - '
    ' . - '
    ' . strtoupper($folder->getName()) . - ( ($depth != 0) ? - '' . - '' - : '' ) . - '
    ' . - '
      '; + function print_folder(OC_News_Folder $folder){ + $tmpl_folder = new OCP\Template("news", "part.listfolder"); + $tmpl_folder->assign('folder', $folder); + $tmpl_folder->printpage(); $children = $folder->getChildren(); foreach($children as $child) { if ($child instanceOf OC_News_Folder){ - print_folder($child, $depth+1); + print_folder($child); } elseif ($child instanceOf OC_News_Feed) { //onhover $(element).attr('id', 'newID'); - $tmpl = new OCP\Template("news", "part.listfeed"); - $tmpl->assign('child', $child); - $tmpl->printpage(); + $tmpl_feed = new OCP\Template("news", "part.listfeed"); + $tmpl_feed->assign('child', $child); + $tmpl_feed->printpage(); } else { //TODO:handle error in this case @@ -28,6 +21,6 @@ } echo '
  • '; } - - print_folder($_['allfeeds'], 0); + + print_folder($_['allfeeds']); ?> \ No newline at end of file diff --git a/templates/part.listfeed.php b/templates/part.listfeed.php index 3746a1eb4..b2ee7c0d2 100644 --- a/templates/part.listfeed.php +++ b/templates/part.listfeed.php @@ -3,6 +3,8 @@ // FIXME: somehow gets included twice include_once("part.itemcounter.php"); +$l = new OC_l10n('news'); + $child = isset($_['child']) ? $_['child'] : null; $favicon = $child->getFavicon(); if ($favicon == null) { diff --git a/templates/part.listfolder.php b/templates/part.listfolder.php new file mode 100644 index 000000000..99353cc43 --- /dev/null +++ b/templates/part.listfolder.php @@ -0,0 +1,17 @@ +getId() == 0); + +$l = new OC_l10n('news'); + +echo '