public function actionMoveCopy()
 {
     $moved_node_id = $_POST['moved_node'];
     $new_parent_id = $_POST['new_parent'];
     $new_parent_root_id = $_POST['new_parent_root'];
     $previous_node_id = $_POST['previous_node'];
     $next_node_id = $_POST['next_node'];
     $copy = $_POST['copy'];
     //the following is additional info about the operation provided by
     // the jstree.It's there if you need it.See documentation for jstree.
     //  $old_parent_id=$_POST['old_parent'];
     //$pos=$_POST['pos'];
     //  $copied_node_id=$_POST['copied_node'];
     //  $replaced_node_id=$_POST['replaced_node'];
     //the  moved,copied  node
     $moved_node = $this->loadModel($moved_node_id);
     //if we are not moving as a new root...
     if ($new_parent_root_id != 'root') {
         //the new parent node
         $new_parent = $this->loadModel($new_parent_id);
         //the previous sibling node (after the move).
         if ($previous_node_id != 'false') {
             $previous_node = $this->loadModel($previous_node_id);
         }
         //if we move
         if ($copy == 'false') {
             if ($moved_node->moveAsFirst($new_parent)) {
                 echo json_encode(array('success' => true));
                 exit;
             }
             //if the moved node is only child of new parent node
             if ($previous_node_id == 'false' && $next_node_id == 'false') {
                 if ($moved_node->moveAsFirst($new_parent)) {
                     echo json_encode(array('success' => true));
                     exit;
                 }
             } else {
                 if ($previous_node_id == 'false' && $next_node_id != 'false') {
                     if ($moved_node->moveAsFirst($new_parent)) {
                         echo json_encode(array('success' => true));
                         exit;
                     }
                 } else {
                     if ($previous_node_id != 'false' && $next_node_id == 'false') {
                         if ($moved_node->moveAsLast($new_parent)) {
                             echo json_encode(array('success' => true));
                             exit;
                         }
                     } else {
                         if ($previous_node_id != 'false' && $next_node_id != 'false') {
                             if ($moved_node->moveAfter($previous_node)) {
                                 echo json_encode(array('success' => true));
                                 exit;
                             }
                         }
                     }
                 }
             }
         } else {
             //create the copied Classroom model
             $copied_node = new Classroom();
             //copy the attributes (only safe attributes will be copied).
             $copied_node->attributes = $moved_node->attributes;
             //remove the primary key
             $copied_node->id = null;
             if ($copied_node->appendTo($new_parent)) {
                 echo json_encode(array('success' => true, 'id' => $copied_node->primaryKey));
                 exit;
             }
         }
     } else {
         //if moved/copied node is not Root
         if (!$moved_node->isRoot()) {
             if ($moved_node->moveAsRoot()) {
                 echo json_encode(array('success' => true));
             } else {
                 echo json_encode(array('success' => false));
             }
         } else {
             echo json_encode(array('success' => false, 'message' => 'Node is already a Root.Roots are ordered by id.'));
         }
     }
 }