Reply To: Time tracker in DFFS

Home Forums Classic DFFS 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: