diff options
author | Gregor Tätzner <gregor@freenet.de> | 2012-08-03 18:25:46 +0200 |
---|---|---|
committer | Gregor Tätzner <gregor@freenet.de> | 2012-08-03 18:25:46 +0200 |
commit | fbcac103cf685326f5a873760998672c7f93f039 (patch) | |
tree | 5fcdf361a0e90bf2195e9fed5352e80ebfa9bd7d /ajax/deletefolder.php | |
parent | 58824771f2bc86f912d39e6485a70ee489bc262a (diff) |
Fixed several issues in delete folder functions
Diffstat (limited to 'ajax/deletefolder.php')
-rw-r--r-- | ajax/deletefolder.php | 24 |
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 ))); |