diff options
author | Thomas Steur <thomas.steur@gmail.com> | 2015-11-25 23:12:20 +0300 |
---|---|---|
committer | Thomas Steur <thomas.steur@gmail.com> | 2015-11-25 23:12:20 +0300 |
commit | 2ebe6246746356bebf75b801b6765e22b4c07919 (patch) | |
tree | d3254a60d63dea3043cedb68c4faa8874dd9001a /plugins/Actions/javascripts | |
parent | 926af9c74c67afc924e60fd6619ca499d1baab58 (diff) |
make transtion and overlay row actions extendable by other plugins
Diffstat (limited to 'plugins/Actions/javascripts')
-rw-r--r-- | plugins/Actions/javascripts/rowactions.js | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/plugins/Actions/javascripts/rowactions.js b/plugins/Actions/javascripts/rowactions.js new file mode 100644 index 0000000000..33050b90ed --- /dev/null +++ b/plugins/Actions/javascripts/rowactions.js @@ -0,0 +1,65 @@ +$(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) + { + var link = tr.find('> td:first > a').attr('href'); + link = $('<textarea>').html(link).val(); // remove html entities + return link; + } + + DataTable_RowActions_Transitions.registerReport({ + isAvailableOnReport: function (dataTableParams) { + return isPageUrlReport(dataTableParams); + }, + isAvailableOnRow: function (dataTableParams, tr) { + return isPageUrlReport(dataTableParams) && tr.find('> td:first span.label').parent().is('a') + }, + trigger: function (tr, e, subTableLabel) { + var link = getLinkForTransitionAndOverlayPopover(tr); + this.openPopover('url:' + link); + } + }); + + 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]); + } + }); + + DataTable_RowActions_Overlay.registerReport({ + isAvailableOnReport: function (dataTableParams) { + return isPageUrlReport(dataTableParams); + }, + onClick: function (actionA, tr, e) { + return { + link: getLinkForTransitionAndOverlayPopover(tr), + segment: null + } + } + }); + +});
\ No newline at end of file |