I am working on an on-premises sharepoint farm 2013. and i have added a Search Result web-part, which uses 2 display templates (Results Control Display Template + Item Display Template). now i am trying to find a way when users chose to edit and item inside the webpart, to be redirected back to the webpart page and not to the related list view.
now inside the Results Control Display Template, i am showing a popup when users click on ...
beside the item title as follow:-
and the popup have the following code inside the display template:-
AddPostRenderCallback(ctx, function() {
// Add a callout to each row
SP.SOD.executeFunc("callout.js", "Callout", function () {
var tableElement = document.getElementById(tableId);
var targetElement = tableElement.getElementsByClassName('NotificationDiv');
if (targetElement.length > 0) {
for (var i = 0; i < targetElement.length; i++) {
var elm = targetElement[i];
var calloutOptions = new CalloutOptions();
calloutOptions.ID = 'notificationcallout-' + i;
calloutOptions.launchPoint = elm;
calloutOptions.beakOrientation = 'leftRight';
calloutOptions.content = String.format('<a href="{0}&PageType=4" onclick="javascript:tableLayoutDT.redirectToPropertiesUrl(this, \'{1}\');return false;" title="View properties">View properties</a><br /><a href="{0}&PageType=6" onclick="javascript:tableLayoutDT.redirectToPropertiesUrl(this, \'{1}\');return false;" title="Edit properties">Edit properties</a>', elm.getAttribute('rel'), elm.getAttribute('path'));
calloutOptions.title = elm.getAttribute('ref');
var displayedPopup = CalloutManager.createNew(calloutOptions);
}
}
});
});
now when users click on the View properties OR Edit properties links, the url will contain the Source parameter which equal to the wbepart page something as follow http://servername/sites/ITManagement/Shared%20Documents/Forms/EditForm.aspx?ID=34&Source=http://servername/sites/ITSGroup/SitePages/Documents.aspx&ContentTypeId=0x010100B38191C6F6C3A54689835468AA0B4AD100696338EF5849E842A88B42C674B975A3
where SitePages/Documents.aspx
is the page containing the Search Result webpart, so users will be redirected back to the web-part page correctly after editing the item.
now the problem i am facing is inside the Item Display Template when building item title link, where i am using the following code to build the item title link :-
var linkURL = $getItemValue(ctx, "Link URL");
String.format("<a href='{0}' class='ms-listlink' >{1}</a>", linkURL, property)
but if i click on the item title link i will be redirected to the item display form, and if i chose to edit the item or click on close button, i will be redirected to the item's list view instead of being redirected to the web-part page, this is since the managed property Link URL does not contain the Source parameter. so can anyone adivce on this please? how i can force the item link to have the source parameter, and set this parameter to be equal to the web-part page?