summaryrefslogtreecommitdiffstats
path: root/ajax/deletefolder.php
diff options
context:
space:
mode:
authorGregor Tätzner <gregor@freenet.de>2012-08-03 18:25:46 +0200
committerGregor Tätzner <gregor@freenet.de>2012-08-03 18:25:46 +0200
commitfbcac103cf685326f5a873760998672c7f93f039 (patch)
tree5fcdf361a0e90bf2195e9fed5352e80ebfa9bd7d /ajax/deletefolder.php
parent58824771f2bc86f912d39e6485a70ee489bc262a (diff)
Fixed several issues in delete folder functions
Diffstat (limited to 'ajax/deletefolder.php')
-rw-r--r--ajax/deletefolder.php24
1 files changed, 18 insertions, 6 deletions
diff --git a/ajax/deletefolder.php b/ajax/deletefolder.php
index bf975c6c3..a0ea611e9 100644
--- a/ajax/deletefolder.php
+++ b/ajax/deletefolder.php
@@ -15,19 +15,31 @@ OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('news');
OCP\JSON::callCheck();
+function printError() {
+ OCP\JSON::error(array('data' => array('message' => $l->t('Error removing folder.'))));
+ OCP\Util::writeLog('news','ajax/deletefolder.php: Error removing folder: '.$_POST['folderid'], OCP\Util::ERROR);
+ exit();
+}
+
$userid = OCP\USER::getUser();
$folderid = trim($_POST['folderid']);
$foldermapper = new OC_News_FolderMapper();
-$success = $foldermapper->deleteById($folderid);
-$l = OC_L10N::get('news');
+$folder = $foldermapper->find($folderid);
+$popfolder = $foldermapper->populate($folder);
-if(!$success) {
- OCP\JSON::error(array('data' => array('message' => $l->t('Error removing folder.'))));
- OCP\Util::writeLog('news','ajax/deletefolder.php: Error removing folder: '.$_POST['folderid'], OCP\Util::ERROR);
- exit();
+// delete child folder
+$children = $popfolder->getChildren();
+foreach ($children as $child) {
+ if ($child instanceOf OC_News_Folder) {
+ if(!$foldermapper->deleteById($child->getId()))
+ printError();
+ }
}
+if(!$foldermapper->deleteById($folderid))
+ printError();
+
OCP\JSON::success(array('data' => array( 'folderid' => $folderid )));