MDL-36465 Course JavaScript: Ensure that the zero section is not draggable
authorAndrew Nicols <andrew@nicols.co.uk>
Sun, 22 Sep 2013 21:11:33 +0000 (22:11 +0100)
committerAndrew Nicols <andrew@nicols.co.uk>
Mon, 23 Sep 2013 08:21:44 +0000 (09:21 +0100)
course/yui/dragdrop/dragdrop.js

index fc5f88d..801ffc9 100644 (file)
@@ -17,7 +17,8 @@ YUI.add('moodle-course-dragdrop', function(Y) {
         SECTION : 'section',
         SECTIONADDMENUS : 'section_add_menus',
         SECTIONHANDLE : 'section-handle',
-        SUMMARY : 'summary'
+        SUMMARY : 'summary',
+        SECTIONDRAGGABLE: 'sectiondraggable'
     };
 
     var DRAGSECTION = function() {
@@ -28,7 +29,7 @@ YUI.add('moodle-course-dragdrop', function(Y) {
 
         initializer : function(params) {
             // Set group for parent class
-            this.groups = ['section'];
+            this.groups = [ CSS.SECTIONDRAGGABLE ];
             this.samenodeclass = M.course.format.get_sectionwrapperclass();
             this.parentnodeclass = M.course.format.get_containerclass();
 
@@ -40,13 +41,13 @@ YUI.add('moodle-course-dragdrop', function(Y) {
             this.sectionlistselector = M.course.format.get_section_wrapper(Y);
             if (this.sectionlistselector) {
                 this.sectionlistselector = '.'+CSS.COURSECONTENT+' '+this.sectionlistselector;
+
                 this.setup_for_section(this.sectionlistselector);
 
                 // Make each li element in the lists of sections draggable
-                var nodeselector = this.sectionlistselector.slice(CSS.COURSECONTENT.length+2);
                 var del = new Y.DD.Delegate({
                     container: '.'+CSS.COURSECONTENT,
-                    nodes: nodeselector,
+                    nodes: '.' + CSS.SECTIONDRAGGABLE,
                     target: true,
                     handles: ['.'+CSS.LEFT],
                     dragConfig: {groups: this.groups}
@@ -95,6 +96,9 @@ YUI.add('moodle-course-dragdrop', function(Y) {
                         if (movedown) {
                             movedown.remove();
                         }
+
+                        // This section can be moved - add the class to indicate this to Y.DD.
+                        sectionnode.addClass(CSS.SECTIONDRAGGABLE);
                     }
                 }
             }, this);