]> git.mjollnir.org Git - moodle.git/commitdiff
Fixed double indexed elements problem
authorbobopinna <bobopinna>
Wed, 16 May 2007 08:34:25 +0000 (08:34 +0000)
committerbobopinna <bobopinna>
Wed, 16 May 2007 08:34:25 +0000 (08:34 +0000)
mod/scorm/datamodels/scorm_13.js.php

index 35e4d33f8f7160611e9725b7c9132a88ca015f44..9ac6587730bd5dd21e9298bdfc4702fd8e8ab74d 100644 (file)
@@ -381,9 +381,6 @@ function SCORMapi1_3() {
     function SetValue (element,value) {
         errorCode = "0";
         diagnostic = "";
-      //  if (element== 'cmi.interactions.0.learner_response' && value=='Dependency on cmi.interaction.n.type not established'){
-        //    errorCode="408";
-        //}
         if ((Initialized) && (!Terminated)) {
             if (element != "") {
                 expression = new RegExp(CMIIndex,'g');
@@ -505,10 +502,24 @@ function SCORMapi1_3() {
                                                         diagnostic = "Data Model Element ID Already Exists";
                                                     }
                                                 } else {
-//alert('model ='+elementmodel+' subelement ='+subelement);
+                                                    
                                                     if (typeof eval(subelement) == "undefined") {
-
-                                                        errorCode="408";
+                                                        if ((elementmodel=='cmi.interactions.n.objectives.n.id') && (typeof eval(parentelement) != "undefined")) {
+                                                           if (!duplicatedID(parentelement,value)) {
+
+                                                               if (elementIndexes[elementIndexes.length-2] == eval(parentelement+'._count')) {
+                                                                   eval(parentelement+'._count++;');
+
+                                                                   eval(subelement+' = new Object();');
+                                                               }
+                                                           } else {
+
+                                                               errorCode="351";
+                                                               diagnostic = "Data Model Element ID Already Exists";
+                                                           }
+                                                        } else {
+                                                            errorCode="408";
+                                                        }
                                                     } else {
                                                         //maxmodel = 'cmi.interactions.Nxxx.type';
                                                         //if ((elemlen <= maxmodel.length) && (element.substr(elemlen-4) == 'type') && (errorCode=="0")) {