Commit 0ab5efd06be9e3e5b894d7da5b0dfd1193c05f32
1 parent
ea69a33c
Exists in
master
and in
105 other branches
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 | 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 | 36 | if (!array_key_exists($object_type, $this->sharedObjectsMgr) || !isset($this->sharedObjectsMgr[$object_type])) |
37 | 37 | return array('success' => FALSE, 'message' => 'Unknown type'); |
38 | 38 | |
... | ... | @@ -41,9 +41,9 @@ class SharedObjectsMgr { |
41 | 41 | if (empty($folder_name)) |
42 | 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 | 48 | if ($result['success']) |
49 | 49 | $result['folder_id'] = $folder_id; |
... | ... | @@ -62,16 +62,19 @@ class SharedObjectsMgr { |
62 | 62 | |
63 | 63 | $objects = $this->treeFile->getObjectsByName($object_type, $folder_name, $object_name); |
64 | 64 | |
65 | + $id = ""; | |
65 | 66 | if (!empty($objects)) { |
66 | 67 | //delete old objects |
67 | 68 | foreach ($objects as $object_id) { |
69 | + $id = $object_id; | |
68 | 70 | $result = $this->treeFile->deleteObjectByObjectId($object_type, $folder_name, $object_id); |
69 | 71 | $result = $this->sharedObjectsMgr[$object_type]->delete($folder_name, $object_id); |
72 | + break; | |
70 | 73 | } |
71 | 74 | } |
72 | 75 | |
73 | 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 | 80 | public function getFolders($object_type) { |
... | ... |