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 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) {
... ...