Reply To: Time tracker in DFFS

Forums Dynamic Forms for SharePoint Time tracker in DFFS Reply To: Time tracker in DFFS

#19617

Leon Perdue
Participant

Sorry for the delay:

using the same code you provided in the topic


(function(){
 var a = [], b = [], tt;
 a.push("<tr style='font-size:18px;color:green;'>");
 a.push("<td colspan='2' style='padding:2px;'>");
 a.push("<span id='elapsedTime'></span><span id='totalTime'></span>"); 
 a.push("</td>");
 a.push("</tr>");
 $("table.ms-formtable").prepend(a.join(""));
 b.push("<span title='You can save and close the list item while the timer is running. It will keep tracking time until you edit the item and click \"Stop the timer\".'>");
 b.push("<input style='background-color:#C2CF8A;color:#444;' type='button' id='dffsTimeTrackerStartBtn' value='Start the timer' onclick='startTicker()'>");
 b.push("<input style='background-color:#D57C7C;color:#ffffff;display:none;' type='button' id='dffsTimeTrackerStopBtn' value='Stop the timer' onclick='stopTicker()'>");
 b.push("<span>&nbsp;</span>");
 b.push("</span>");
 $("input[id$='_diidIOSaveItem']:last").before(b.join(""));
 tt = getFieldValue("TotalTimeString");
 if(tt !== ""){
 $("#elapsedTime").html("Total time: "+getFriendlyTime(Number(tt)));
 }
})();

function startTicker(){
 var a= getFieldValue("StartTimeString");
 if(a === ""){
 setFieldValue("StartTimeString",new Date().valueOf());
 $("#dffsTimeTrackerStartBtn").hide();
 $("#dffsTimeTrackerStopBtn").show();
 $("#totalTime").html("");
 }
}

function stopTicker(){
 var a = getFieldValue("StartTimeString")
 , b = new Date().valueOf()
 , u = spjs.utility.userInfo(_spPageContextInfo.userId)
 , et = b-Number(a)
 , tt = Number(getFieldValue("TotalTimeString")) + et
 , log = getFieldValue("Log")
 , al = getFieldValue("Activity");
 setFieldValue("TotalTimeString",Number(tt));
 // Reset start time and log
 setFieldValue("StartTimeString","");
 setFieldValue("Activity","");
 if(a !== ""){
 if(log !== ""){
 log += "\n*******************\n";
 }
 if(al !== ""){
 al = "\n\nActivity log:\n"+al;
 }
 setFieldValue("Log",log+u.Title+"\nStart: "+new Date(Number(a)).toLocaleString(_spPageContextInfo.currentUICultureName)+"\nEnd: "+new Date().toLocaleString(_spPageContextInfo.currentUICultureName)+"\nElapsed time="+getFriendlyTime(et)+al);
 }
 $("#elapsedTime").html("");
 $("#totalTime").html("Total time: "+getFriendlyTime(tt));
 $("#dffsTimeTrackerStartBtn").show();
 $("#dffsTimeTrackerStopBtn").hide();
}

function getFriendlyTime(ms){
 var h, m, s;
 h = Math.floor(ms / 3600000);
 m = Math.floor((ms % 3600000) / 60000);
 s = Math.floor((ms % 60000) / 1000);
 return (h<10?"0"+h:h)+":"+(m<10?"0"+m:m)+":"+(s<10?"0"+s:s);
}

if(getFieldValue("StartTimeString") !== ""){
 $("#dffsTimeTrackerStartBtn").hide();
 $("#dffsTimeTrackerStopBtn").show();
}

setInterval(function(){
 var a = getFieldValue("StartTimeString"), b = new Date().valueOf(), tt = Number(getFieldValue("TotalTimeString"));
 if(a !== ""){
 $("#elapsedTime").html("Elapsed time: "+getFriendlyTime(b - Number(a))); 
 if(tt !== ""){
 $("#elapsedTime").append(" / Total time: "+getFriendlyTime(tt + (b - Number(a))));
 }
 } 
},1000);

console message:
jquery.js:4 [Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user’s experience. For more help, check https://xhr.spec.whatwg.org/.

When i delete any multi line text field i get no error.

Attachments: