From e07d500a06cedf70fba61fd7c48304e92ae69252 Mon Sep 17 00:00:00 2001 From: Frank Bergkemper Date: Wed, 5 Aug 2015 18:18:37 +0200 Subject: [PATCH] Prevent pathid and fileid collisions Makes sure we do not repeat the same ID in a tree instance (that would defeat its purpose of being a unique identifier and may cause problems for jstree). --- .../Restore/src/Restore/Controller/RestoreController.php | 8 +++----- module/Restore/view/restore/restore/index.phtml | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/module/Restore/src/Restore/Controller/RestoreController.php b/module/Restore/src/Restore/Controller/RestoreController.php index 70eef332..3fea166f 100644 --- a/module/Restore/src/Restore/Controller/RestoreController.php +++ b/module/Restore/src/Restore/Controller/RestoreController.php @@ -109,8 +109,6 @@ public function indexAction() } return new ViewModel(array( - 'restore_params' => $this->restore_params, - 'form' => $form, 'result' => $result )); @@ -196,7 +194,7 @@ private function buildSubtree() else { --$dnum; $items .= '{'; - $items .= '"id":"' . $dir['pathid'] . '"'; + $items .= '"id":"-' . $dir['pathid'] . '"'; $items .= ',"text":"' . $dir["name"] . '"'; $items .= ',"icon":"glyphicon glyphicon-folder-close"'; $items .= ',"state":""'; @@ -390,7 +388,7 @@ private function getDirectories($jobid=null, $pathid=null) $result = $director->send_command(".bvfs_lsdirs jobid=$jobid path=/", 2, $jobid); } else { - $result = $director->send_command(".bvfs_lsdirs jobid=$jobid pathid=$pathid", 2, $jobid); + $result = $director->send_command(".bvfs_lsdirs jobid=$jobid pathid=" . abs($pathid), 2, $jobid); } $directories = \Zend\Json\Json::decode($result, \Zend\Json\Json::TYPE_ARRAY); return $directories['result']['directories']; @@ -409,7 +407,7 @@ private function getFiles($jobid=null, $pathid=null) $result = $director->send_command(".bvfs_lsfiles jobid=$jobid path=/", 2); } else { - $result = $director->send_command(".bvfs_lsfiles jobid=$jobid pathid=$pathid", 2); + $result = $director->send_command(".bvfs_lsfiles jobid=$jobid pathid=" . abs($pathid), 2); } $files = \Zend\Json\Json::decode($result, \Zend\Json\Json::TYPE_ARRAY); return $files['result']['files']; diff --git a/module/Restore/view/restore/restore/index.phtml b/module/Restore/view/restore/restore/index.phtml index 7d3790c3..cc1a320e 100644 --- a/module/Restore/view/restore/restore/index.phtml +++ b/module/Restore/view/restore/restore/index.phtml @@ -136,7 +136,7 @@ $this->headTitle($title); checked_files.push(this.id); } else if(this.data.type == 'D') { - checked_directories.push(this.id); + checked_directories.push(Math.abs(this.id)); } });