X-Git-Url: http://lists.indexdata.dk/cgi-bin?a=blobdiff_plain;f=src%2FMETA-INF%2Fresources%2Fpz2utils%2Ffieldlisteners.js;h=300d223b90de26e0d6f4df8e6f6ff2d994844641;hb=12b951baa959d50bbf0b81671c8c4a5a6f2852ee;hp=c5cf63a0e6a4aa634ac60708ce58b3b03f96a44b;hpb=986c292739b7f0a7d1b5939dbbddea4bb3d5efa8;p=mkjsf-moved-to-github.git diff --git a/src/META-INF/resources/pz2utils/fieldlisteners.js b/src/META-INF/resources/pz2utils/fieldlisteners.js index c5cf63a..300d223 100644 --- a/src/META-INF/resources/pz2utils/fieldlisteners.js +++ b/src/META-INF/resources/pz2utils/fieldlisteners.js @@ -1,10 +1,11 @@ var renderTargetsReqVar; + var renderOnRecordTargetsReqVar; function renderTargets(doRefresh) { //console.log('rendering ' + renderWhileActiveclients); var sourcecomp = document.getElementById("pz2watch:activeclientsField"); - jsf.ajax.request(sourcecomp, null,{render: renderWhileActiveclients}); + jsf.ajax.request(sourcecomp, null,{render: renderWhileActiveclients + " pz2watch:errorMessages"}); if (doRefresh) { //console.log('Will do another ajax request after a timeout in order to render: pz2watch:activeclientsField'); renderTargetsReqVar=setTimeout( @@ -17,6 +18,26 @@ //console.log("No further updates from server requested"); } } + + function renderOnRecordTargets(doRefresh) + { + console.log('rendering ' + renderWhileActiveclientsRecord); + var sourcecomp = document.getElementById("pz2watch:activeclientsFieldRecord"); + jsf.ajax.request(sourcecomp, null,{render: renderWhileActiveclientsRecord}); + if (doRefresh) { + console.log('Will do another ajax request after a timeout in order to render: pz2watch:activeclientsFieldRecord'); + renderOnRecordTargetsReqVar=setTimeout( + function() { + console.log('Making request for pz2watch:activeclientsFieldRecord'); + jsf.ajax.request(sourcecomp, null,{render: "pz2watch:activeclientsFieldRecord"}); + } + ,2000); + } else { + console.log("No further updates from server requested"); + jsf.ajax.request(sourcecomp, null,{render: renderWhileActiveclientsRecord}); + } + } + function windowlocationhashListener () { if (trackHistory) { @@ -85,6 +106,22 @@ } }; }; + + var ActiveclientsRecordListener = function () { + this.invoke = function (field) { + var updateDoc = StringtoXML(field.textContent || field.text); + var activeClientsRecordValue = (updateDoc.childNodes[0].textContent || updateDoc.childNodes[0].text); + console.log('Activeclients response for record detected: ' + activeClientsRecordValue); + clearTimeout(renderOnRecordTargetsReqVar); + if (activeClientsRecordValue > '0') { + renderOnRecordTargets(true); + } else { + console.log('Active clients is 0, final rendering'); + renderOnRecordTargets(false); + } + }; + }; + jsf.ajax.addOnEvent(fieldUpdateListener); @@ -104,6 +141,7 @@ var setUpListeners = function () { //console.log("Starts tracking activeclientsField"); fieldListeners.addListener("pz2watch:activeclientsField", new ActiveclientsListener()); + fieldListeners.addListener("pz2watch:activeclientsFieldRecord", new ActiveclientsRecordListener()); if (trackHistory) { //console.log("Starts tracking windowlocationhash field"); fieldListeners.addListener("pz2watch:windowlocationhash", new StateListener());