Cosmetic
[mkjsf-moved-to-github.git] / src / META-INF / resources / pz2utils / fieldlisteners.js
index c5cf63a..b0a3e6a 100644 (file)
@@ -1,10 +1,11 @@
   var renderTargetsReqVar;\r
+  var renderOnRecordTargetsReqVar;\r
     \r
   function renderTargets(doRefresh)\r
   {\r
        //console.log('rendering ' + renderWhileActiveclients);\r
        var sourcecomp = document.getElementById("pz2watch:activeclientsField");\r
-    jsf.ajax.request(sourcecomp, null,{render: renderWhileActiveclients});\r
+    jsf.ajax.request(sourcecomp, null,{render: renderWhileActiveclients + " pz2watch:errorMessages"});\r
     if (doRefresh) {\r
                //console.log('Will do another ajax request after a timeout in order to render: pz2watch:activeclientsField');  \r
            renderTargetsReqVar=setTimeout(\r
        //console.log("No further updates from server requested");\r
     }\r
   }\r
+  \r
+  function renderOnRecordTargets(doRefresh)\r
+  {\r
+       console.log('rendering ' + renderWhileActiveclientsRecord);\r
+       var sourcecomp = document.getElementById("pz2watch:activeclientsFieldRecord");\r
+    jsf.ajax.request(sourcecomp, null,{render: renderWhileActiveclientsRecord});\r
+    if (doRefresh) {\r
+               console.log('Will do another ajax request after a timeout in order to render: pz2watch:activeclientsFieldRecord');  \r
+           renderOnRecordTargetsReqVar=setTimeout(\r
+            function() {              \r
+              console.log('Making request for pz2watch:activeclientsFieldRecord');\r
+              jsf.ajax.request(sourcecomp, null,{render: "pz2watch:activeclientsFieldRecord"});       \r
+            }\r
+            ,1000);\r
+    } else {\r
+       //console.log("No further updates from server requested");\r
+    }\r
+  }\r
+\r
 \r
   function windowlocationhashListener () {\r
          if (trackHistory) {\r
@@ -62,7 +82,7 @@
       var stateKeyDoc = StringtoXML(field.textContent || field.text);\r
       var stateKeyValue = stateKeyDoc.childNodes[0].getAttribute("value");\r
       //console.log('Application hash update detected. New value: ' + stateKeyValue);\r
-      if (stateKeyValue != window.location.hash) {\r
+      if (stateKeyValue !== window.location.hash) {\r
         window.location.hash = stateKeyValue;\r
         //console.log("Browsers hash updated accordingly.");\r
       } else {\r
       }\r
        };\r
   };\r
+  \r
+  var ActiveclientsRecordListener = function () {\r
+           this.invoke = function (field) {\r
+             var updateDoc = StringtoXML(field.textContent || field.text);\r
+             var activeClientsRecordValue = (updateDoc.childNodes[0].textContent || updateDoc.childNodes[0].text);\r
+             console.log('Activeclients response for record detected: ' + activeClientsRecordValue);\r
+             clearTimeout(renderOnRecordTargetsReqVar);\r
+             if (activeClientsRecordValue > '0') {\r
+               renderOnRecordTargets(true);\r
+             } else {\r
+               console.log('Active clients is 0, final rendering');\r
+               renderOnRecordTargets(false);\r
+             }\r
+               };\r
+         };\r
+\r
     \r
   jsf.ajax.addOnEvent(fieldUpdateListener);\r
   \r
   var setUpListeners = function () {\r
     //console.log("Starts tracking activeclientsField");\r
     fieldListeners.addListener("pz2watch:activeclientsField", new ActiveclientsListener());\r
+    fieldListeners.addListener("pz2watch:activeclientsFieldRecord", new ActiveclientsRecordListener());\r
     if (trackHistory) {\r
         //console.log("Starts tracking windowlocationhash field");\r
         fieldListeners.addListener("pz2watch:windowlocationhash", new StateListener());\r