Commit 0ab5efd06be9e3e5b894d7da5b0dfd1193c05f32

Authored by Benjamin Renard
1 parent ea69a33c

Keep TT or catalog ID during an update of a shared object

Showing 1 changed file with 7 additions and 4 deletions   Show diff stats
php/classes/SharedObjectsMgr.php
@@ -32,7 +32,7 @@ class SharedObjectsMgr { @@ -32,7 +32,7 @@ class SharedObjectsMgr {
32 return array('success' => $sucess, 'message' => $message); 32 return array('success' => $sucess, 'message' => $message);
33 } 33 }
34 34
35 - public function add($object_type, $object_name, $folder_id, $src_object_path, $description, $sharedBy) { 35 + public function add($object_type, $object_name, $folder_id, $src_object_path, $description, $sharedBy, $forceId = "") {
36 if (!array_key_exists($object_type, $this->sharedObjectsMgr) || !isset($this->sharedObjectsMgr[$object_type])) 36 if (!array_key_exists($object_type, $this->sharedObjectsMgr) || !isset($this->sharedObjectsMgr[$object_type]))
37 return array('success' => FALSE, 'message' => 'Unknown type'); 37 return array('success' => FALSE, 'message' => 'Unknown type');
38 38
@@ -41,9 +41,9 @@ class SharedObjectsMgr { @@ -41,9 +41,9 @@ class SharedObjectsMgr {
41 if (empty($folder_name)) 41 if (empty($folder_name))
42 return array('success' => FALSE, 'message' => 'Cannot retrieve folder'); 42 return array('success' => FALSE, 'message' => 'Cannot retrieve folder');
43 43
44 - $newId = $this->treeFile->reserveNewId($object_type); 44 + $id = empty($forceId) ? $this->treeFile->reserveNewId($object_type) : $forceId;
45 45
46 - $result = $this->sharedObjectsMgr[$object_type]->add($object_name, $folder_name, $src_object_path, $description, $sharedBy, $newId); 46 + $result = $this->sharedObjectsMgr[$object_type]->add($object_name, $folder_name, $src_object_path, $description, $sharedBy, $forceId);
47 47
48 if ($result['success']) 48 if ($result['success'])
49 $result['folder_id'] = $folder_id; 49 $result['folder_id'] = $folder_id;
@@ -62,16 +62,19 @@ class SharedObjectsMgr { @@ -62,16 +62,19 @@ class SharedObjectsMgr {
62 62
63 $objects = $this->treeFile->getObjectsByName($object_type, $folder_name, $object_name); 63 $objects = $this->treeFile->getObjectsByName($object_type, $folder_name, $object_name);
64 64
  65 + $id = "";
65 if (!empty($objects)) { 66 if (!empty($objects)) {
66 //delete old objects 67 //delete old objects
67 foreach ($objects as $object_id) { 68 foreach ($objects as $object_id) {
  69 + $id = $object_id;
68 $result = $this->treeFile->deleteObjectByObjectId($object_type, $folder_name, $object_id); 70 $result = $this->treeFile->deleteObjectByObjectId($object_type, $folder_name, $object_id);
69 $result = $this->sharedObjectsMgr[$object_type]->delete($folder_name, $object_id); 71 $result = $this->sharedObjectsMgr[$object_type]->delete($folder_name, $object_id);
  72 + break;
70 } 73 }
71 } 74 }
72 75
73 //add new object 76 //add new object
74 - return $this->add($object_type, $object_name, $folder_id, $src_object_path, $description, $sharedBy); 77 + return $this->add($object_type, $object_name, $folder_id, $src_object_path, $description, $sharedBy, $id);
75 } 78 }
76 79
77 public function getFolders($object_type) { 80 public function getFolders($object_type) {