Pārlūkot izejas kodu

Fix lp item list order BT#15967

Julio Montoya 5 gadi atpakaļ
vecāks
revīzija
adae9738d3
2 mainītis faili ar 12 papildinājumiem un 4 dzēšanām
  1. 2 1
      main/lp/learnpath.class.php
  2. 10 3
      main/lp/lp_controller.php

+ 2 - 1
main/lp/learnpath.class.php

@@ -6438,6 +6438,7 @@ class learnpath
                     );
                 }
 
+                //if ($arrLP[$i]['item_type'] == 'dir') {
                     /*if ($isFirst) {
                         $orderIcons = Display::url($disableUpIcon, '#', ['class' => 'btn btn-default']);
                     } else {
@@ -6458,7 +6459,7 @@ class learnpath
                         'javascript:void(0)',
                         ['class' => 'btn btn-default order_items', 'data-dir' => 'down', 'data-id' => $arrLP[$i]['id']]
                     );
-
+                //}
 
 
 

+ 10 - 3
main/lp/lp_controller.php

@@ -103,16 +103,23 @@ $htmlHeadXtra[] = '
             var jItems = $("#lp_item_list li.li_container");            
             var jItem = $("#"+ itemId);          
             var index = jItems.index(jItem);
+            var total = jItems.length;
                                     
             switch (dir) {
                 case "up":
-                    if (index != 0) {
+                    if (index != 0 && jItems[index - 1]) {
                         var item = jItem.detach().insertBefore(jItems[index - 1]);
                     }
                     break;
                 case "down":
-                     if (index != jItems.length - 1) {
-                        var item = jItem.detach().insertAfter(jItems[index + 1]);                        
+                     if (index != jItems.length - 1) {                        
+                        var subItems = jItem.find("li.li_container");                        
+                        if (subItems.length >= 0) { 
+                            index = subItems.length + index;
+                        }                                                
+                        if ((index + 1) < total) {
+                            var item = jItem.detach().insertAfter(jItems[index + 1]);
+                        }
                      }
                      break;
             }