HI,
I have written the below user macro script to display the pages which have crossed the given number of days from the last modified date. The macro works on few pages. But on few pages the table does not load/the script doesnt work. Could you help to check if something is to be corrected.
## @Param pageReviewDays:title=Page Review Days|type=int|required=true
<html>
<body>
<h2>Outdated Pages</h2>
<table border=1 id="t1"></table>
</body>
</html>
<script>
window.alert("Setting Parameter");
#set ($limit = $parampageReviewDays)
var element = document.getElementById("t1")
window.alert("Getting descendents $limit");
#foreach ( $descendent in $content.getDescendents() )
var lmdate = "$descendent.getLastModificationDate()";
var lm = lmdate.split(" ")[0];
var lmsplit = lm.split("-");
var lmjoin = lmsplit.join("/");
var limt = "$limit";
var today = new Date();
var date = (today.getFullYear()+'/'+(today.getMonth()+1)+'/'+today.getDate()).toString();
//window.alert(lmjoin);
var days = daysdifference(lmjoin, date);
element. innerHTML = element. innerHTML + "<tr><td><a href="+ contextPath +"$descendent.getUrlPath()> $descendent.title </a></td><td>"+days+"</td></tr>";
#end
//window.alert("loaded!")
function daysdifference (firstDate, secondDate){
let startDay = new Date(firstDate);
let endDay = new Date(secondDate);
// Determine the time difference between two dates
let millisBetween = startDay.getTime() - endDay.getTime();
return Math.round(millisBetween / (1000 * 3600 * 24));
}
</script>