Exemplo n.º 1
0
     $nodesToDelete = $_POST['nodesToDelete'];
     // dynatree returns a 'container' element
     $dynatreeDict = json_decode($jsonDynatreeDict);
     $rootArray = get_object_vars($dynatreeDict[0]);
     if ($logger->isDebugEnabled()) {
         $aa = var_export($rootArray, true);
         if (!is_null($nodesToDelete)) {
             $logger->debug("saveWBS (nodesToDelete=" . implode(',', $nodesToDelete) . ")");
         }
         $logger->debug("saveWBS (root={$root_id}) : \n{$aa}");
     }
     if (!is_null($nodesToDelete)) {
         foreach ($nodesToDelete as $folder_id) {
             $f = new WBSElement($folder_id, $root_id);
             try {
                 $f->delete($root_id);
             } catch (Exception $e) {
                 // happens if user moved children AND deleted the node.
                 // The node will not be deleted, but at least the rest of the WBS changes
                 // have a chance to be proceeded.
                 $logger->error("Node {$folder_id} not deleted : " . $e->getMessage());
                 $logger->warn("EXCEPTION stack-trace:\n" . $e->getTraceAsString());
             }
         }
     }
     WBSElement::updateFromDynatree($rootArray, $root_id);
     echo $jsonDynatreeDict;
 } else {
     if ($_POST['action'] == 'loadWBS') {
         try {
             $root_id = Tools::getSecurePOSTIntValue('wbsRootId');