]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-20415 Modified the behaviour of AJAX moving of sections when in "weekly" format...
authornicolasconnault <nicolasconnault>
Sat, 3 Oct 2009 01:53:17 +0000 (01:53 +0000)
committernicolasconnault <nicolasconnault>
Sat, 3 Oct 2009 01:53:17 +0000 (01:53 +0000)
course/view.php
lib/ajax/ajaxcourse.js
lib/ajax/section_classes.js

index c2e473e5f9c15961f4c52b50324c53a555f0756e..d1e1e2e0aac275fa9b6b5673ad49ee91e2022fb7 100644 (file)
             if (ajaxenabled($CFG->ajaxtestedbrowsers)) {     // Browser, user and site-based switches
                 $PAGE->requires->yui_lib('dragdrop');
                 $PAGE->requires->yui_lib('connection');
+                $PAGE->requires->yui_lib('selector');
                 $PAGE->requires->js('lib/ajax/block_classes.js');
                 $PAGE->requires->js('lib/ajax/section_classes.js');
 
index b18eaa23b208c58d6c42e5bbbd5df7241ed40e1f..ee21a420927f87f626510a14b5fc55d57eec9cf4 100644 (file)
@@ -8,6 +8,16 @@
 //hide content body until done loading (manipulation looks ugly elsewise)
 //document.getElementById('content').style.display = 'none';
 
+// If firebug console is undefined, define a fake one here
+if (window.console) {
+    console.vardump = function(data) {
+        retval = '';
+        for (key in data) {
+            retval += key+' = '+data[key] + "\n";
+        }
+        console.log(retval);
+    };
+}
 
 //onload object for handling scripts on page load, this insures they run in my order
 function onload_class() {
@@ -45,6 +55,7 @@ function main_class() {
 
     this.blocks = new Array();
     this.sections = new Array();
+    this.sectiondates = {};
     this.leftcolumn = null;
     this.rightcolumn = null;
     this.adminBlock = null;
@@ -108,6 +119,12 @@ main_class.prototype.process_document = function() {
     while (document.getElementById('section-'+ct) != null) {
         this.sections[ct] = new section_class('section-'+ct, "sections", null, ct!=0?true:false);
         this.sections[ct].addToGroup('resources');
+        if (ct > 0) {
+            var sectiontitle = YAHOO.util.Selector.query('#section-'+ct+' h3.weekdates')[0];
+            if (undefined !== sectiontitle) { // Only save date for weekly format
+                this.sectiondates[ct] = sectiontitle.innerHTML;
+            }
+        }
         ct++;
     }
     if (this.debug) {
@@ -144,7 +161,6 @@ main_class.prototype.get_section_index = function(el) {
     }
 }
 
-
 main_class.prototype.mk_button = function(tag, imgSrc, text, attributes, imgAttributes) {
     //Create button and return object.
     //Set the text: the container TITLE or image ALT attributes can be overridden, eg.
index 058d440cdec4777027adbb9689b845b99cd94fd8..a2bfb6a991d56b3554f2f3eb5bd6c7194dfe24a0 100755 (executable)
@@ -241,14 +241,14 @@ section_class.prototype.move_to_section = function(target) {
             if (this.debug) {
                 YAHOO.log("Found target "+main.sections[i].getEl().id);
             }
-            main.sections[i].swap_dates(main.sections[eval(loopmodifier)]);
             main.sections[i].swap_with_section(main.sections[eval(loopmodifier)]);
+            main.sections[i].swap_dates(main.sections[eval(loopmodifier)]);
             found = false;
             break;
         } else if (found) {
             //encounter with nodes inbetween
-            main.sections[i].swap_dates(main.sections[eval(loopmodifier)]);
             main.sections[i].swap_with_section(main.sections[eval(loopmodifier)]);
+            main.sections[i].swap_dates(main.sections[eval(loopmodifier)]);
         }
     }
 }
@@ -911,26 +911,12 @@ resource_class.prototype.endDrag = function() {
 }
 
 section_class.prototype.swap_dates = function(el){
-    var i=0;
-    while(this.getEl().getElementsByTagName("div")[i]) {
-        if (this.getEl().getElementsByTagName("div")[i].className == "weekdates") {
-            var tempdate = this.getEl().getElementsByTagName("div")[i].innerHTML;
-            var permi = i;
-        }
-        i++;
-    }
+    var i=1;
+    var divs = YAHOO.util.Selector.query('div .weekdates');
 
-    var j=0;
-    while(el.getEl().getElementsByTagName("div")[j]) {
-        if (el.getEl().getElementsByTagName("div")[j].className == "weekdates") {
-            var permj = j;
-        }
-        j++;
-    }
-
-    if(tempdate) {
-        this.getEl().getElementsByTagName("div")[permi].innerHTML = el.getEl().getElementsByTagName("div")[permj].innerHTML;
-        el.getEl().getElementsByTagName("div")[permj].innerHTML = tempdate;
+    for (div in divs) {
+        divs[div].innerHTML = main.sectiondates[i];
+        i++;
     }
 }