File size: 3,695 Bytes
2a0a63a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | $(function () {
function isActionsModule(params)
{
return params.module == 'Actions';
}
function isPageUrlReport(params) {
var action = params.action;
return isActionsModule(params) &&
(action == 'getPageUrls' || action == 'getEntryPageUrls' || action == 'getExitPageUrls' || action == 'getPageUrlsFollowingSiteSearch');
};
function isPageTitleReport(params) {
var action = params.action;
return isActionsModule(params) && (action == 'getPageTitles' || action == 'getPageTitlesFollowingSiteSearch');
};
function getLinkForTransitionAndOverlayPopover(tr)
{
tr = getRealRowIfComparisonRow(tr);
var link = tr.find('> td:first > a').attr('href');
// replace all &, that are not part of a named character reference with a tailing semicolon, with a &
// otherwise named character references without a tailing , (like ®) would be replaced
link = link.replace(/&([a-z]+[^a-z;])/, '&$1');
link = $('<textarea>').html(link).val(); // remove html entities
return link;
}
if (window.DataTable_RowActions_Transitions) {
DataTable_RowActions_Transitions.registerReport({
isAvailableOnReport: function (dataTableParams) {
return isPageUrlReport(dataTableParams);
},
isAvailableOnRow: function (dataTableParams, tr) {
tr = getRealRowIfComparisonRow(tr);
return isPageUrlReport(dataTableParams) && tr.find('> td:first span.label').parent().is('a')
},
trigger: function (tr, e, subTableLabel, originalRow) {
var overrideParams = $.extend({}, $(originalRow || tr).data('param-override'));
if (typeof overrideParams !== 'object') {
overrideParams = {};
}
tr = getRealRowIfComparisonRow(tr);
var link = getLinkForTransitionAndOverlayPopover(tr);
var popoverUrl = 'url:' + link;
Object.keys(overrideParams).forEach(function (paramName) {
if (!overrideParams[paramName]) {
return;
}
popoverUrl += ':' + encodeURIComponent(paramName) + ':' + encodeURIComponent(overrideParams[paramName]);
});
this.openPopover(popoverUrl);
}
});
DataTable_RowActions_Transitions.registerReport({
isAvailableOnReport: function (dataTableParams) {
return isPageTitleReport(dataTableParams);
},
isAvailableOnRow: function (dataTableParams, tr) {
return isPageTitleReport(dataTableParams);
},
trigger: function (tr, e, subTableLabel) {
DataTable_RowAction.prototype.trigger.apply(this, [tr, e, subTableLabel]);
}
});
}
if (window.DataTable_RowActions_Overlay) {
DataTable_RowActions_Overlay.registerReport({
isAvailableOnReport: function (dataTableParams) {
return isPageUrlReport(dataTableParams);
},
onClick: function (actionA, tr, e) {
return {
link: getLinkForTransitionAndOverlayPopover(tr),
segment: null
}
}
});
}
function getRealRowIfComparisonRow(tr) {
if (tr.is('.comparisonRow')) {
var prevUntil = tr.prevUntil('.parentComparisonRow').prev();
return prevUntil.length ? prevUntil : tr.prev();
}
return tr;
}
}); |