Skip to main content

Show modified by author and date in all pages in O365 SharePoint site

Show modified by author and date in all pages in O365 SharePoint site using below script,

$(document).ready(function() {
GetEditorAndDate();
});  // end document-ready


function GetEditorAndDate()
{
var relativePageURL = _spPageContextInfo.serverRequestPath;
var siteURL = _spPageContextInfo.webAbsoluteUrl;
var profileUrl = "https://myorg.sharepoint.com/sites/devsite/";

var query = siteURL + "/_api/web/getfilebyserverrelativeurl('/"+ relativePageURL +"')?$select=TimeLastModified,ModifiedBy/Title,ModifiedBy/LoginName&$expand=ModifiedBy";

var call = $.ajax({
url: query,
type: "GET",
dataType: "json",
headers: {
Accept: "application/json;odata=verbose"
}    
});
call.done( (function (data, textStatus, err){
 rawModifedBy = data.d.ModifiedBy.Title
 prettiedModifiedBy = rawModifedBy.split(', ')[1]+' '+ rawModifedBy.split(', ')[0]

 rawModifiedId=data.d.ModifiedBy.LoginName; //<d:LoginName>i:0#.w|klasj\kpereyra</d:LoginName>
 var modifiedId= rawModifiedId.replace('i:0#.w|', '') <!-- needed only if your data returns in the format <d:LoginName>i:0#.w|DOMAIN\USERNAME</d:LoginName> -->

 var rawModifedDate = new Date(data.d.TimeLastModified);

 console.log("Page modified data"+data.d);
 var mm = rawModifedDate.getMonth()+1;
 var modifedDate= rawModifedDate.toLocaleDateString()+" "+rawModifedDate.toLocaleTimeString();

 var aboveFooter = '<div id="freshIndicator" style="width: 500px;margin-left: auto;margin-right: auto;">This page was last modified by ' + prettiedModifiedBy +' on '+ modifedDate +'</div>'
 $(".footer").append(aboveFooter); <!-- assumes a footer with the id "footer".  If you don't have one, put it after the end script tag. -->
}));

call.fail(function (err,textStatus,errorThrown){
console.log(err);
});
}

Hope this helps someone!

Comments

Popular posts from this blog

Permission audit report for site and all sub sites using PowerShell

Use below script to get Permission audit report for site and all sub sites using PowerShell, Add-PSSnapin "Microsoft.SharePoint.PowerShell" $URL="https://intranet.contoso.com/sales/mysite/"      $site = Get-SPSite $URL      #Write the Header to "Tab Separated Text File"         "Site Name`t  URL `t Group Name `t User Account `t User Name `t E-Mail" | out-file "E:\Ulhas\UsersandGroupsRpt.txt"          #Iterate through all Webs       foreach ($web in $site.AllWebs)       {         #Write the Header to "Tab Separated Text File"         "$($web.title) `t $($web.URL) `t  `t  `t `t " | out-file "E:\Ulhas\UsersandGroupsRpt.txt" -append          #Get all Groups and Iterate through            foreach ($group in $Web.groups)         ...

Populate people picker field with logged in user in SharePoint using JS

Please use below code to populate people picker in SharePoint online, <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script type="text/javascript"> ExecuteOrDelayUntilScriptLoaded(function () { setTimeout(function () { SetUserFieldValue('AuthorName'); }, 1000); }, 'clientpeoplepicker.js'); //Set PeoplePicker Value function SetUserFieldValue(fieldName) { try{ var userAccountName = _spPageContextInfo.userLoginName; //PeoplePicker Object var peoplePicker = $("div[title='" + fieldName + "']"); //PeoplePicker ID var peoplePickerTopId = peoplePicker.attr('id'); //People PickerEditor var peoplePickerEditor = $("input[title='" + fieldName + "']"); //Set Value to Editor peoplePickerEditor.val(userAccountName); //Get Client PeoplePicker Dict var peoplePickerObject = SPClientPeoplePicke...