From 42e66fcf9112c7001095d119313fc050ac1dfe24 Mon Sep 17 00:00:00 2001 From: scottshipman Date: Wed, 11 Jul 2018 16:41:24 -0400 Subject: [PATCH 1/5] add export buttons to datatables on dashboard --- Assets/js/campaign-revenue.js | 5 +++++ Assets/js/global-revenue.js | 5 +++++ Assets/js/source-revenue.js | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/Assets/js/campaign-revenue.js b/Assets/js/campaign-revenue.js index 9f51064..7f6f55c 100644 --- a/Assets/js/campaign-revenue.js +++ b/Assets/js/campaign-revenue.js @@ -26,6 +26,11 @@ Mautic.loadCampaignRevenueWidget = function (params) { ], 'aaSorting': [], 'autoFill': true, + dom: '<rtip>', + buttons: [ + 'excelHtml5', + 'csvHtml5' + ], 'footerCallback': function (row, data, start, end, display) { // Add table footer if it doesnt exist var container = mQuery('#campaign-revenue-table'); diff --git a/Assets/js/global-revenue.js b/Assets/js/global-revenue.js index 835b851..1b935ae 100644 --- a/Assets/js/global-revenue.js +++ b/Assets/js/global-revenue.js @@ -26,6 +26,11 @@ Mautic.loadGlobalRevenueWidget = function () { order: [[2, 'asc']], bLengthChange: false, lengthMenu: [[rowCount]], + dom: '<rtip>', + buttons: [ + 'excelHtml5', + 'csvHtml5' + ], columnDefs: [ { render: function (data, type, row) { diff --git a/Assets/js/source-revenue.js b/Assets/js/source-revenue.js index a7bba55..4d6677d 100644 --- a/Assets/js/source-revenue.js +++ b/Assets/js/source-revenue.js @@ -26,6 +26,11 @@ Mautic.loadSourceRevenueWidget = function () { order: [[2, 'asc'], [4, 'asc']], bLengthChange: false, lengthMenu: [[rowCount]], + dom: '<rtip>', + buttons: [ + 'excelHtml5', + 'csvHtml5' + ], columnDefs: [ { render: function (data, type, row) { From 884b473604c40de7a044919e809d42d049c4b5d4 Mon Sep 17 00:00:00 2001 From: scottshipman Date: Wed, 11 Jul 2018 17:01:00 -0400 Subject: [PATCH 2/5] Add export buttons to widget on dashboard --- Assets/js/campaign-revenue.js | 1 + Assets/js/global-revenue.js | 2 ++ Assets/js/source-revenue.js | 1 + 3 files changed, 4 insertions(+) diff --git a/Assets/js/campaign-revenue.js b/Assets/js/campaign-revenue.js index 7f6f55c..d9c78c3 100644 --- a/Assets/js/campaign-revenue.js +++ b/Assets/js/campaign-revenue.js @@ -72,6 +72,7 @@ Mautic.loadCampaignRevenueWidget = function (params) { } } // FooterCallback }); // datatable + mQuery('#campaign-revenue-table_wrapper .dt-buttons').css({float: "right", marginLeft: "10px"}); }); //getScriptsCachedOnce - fonteawesome css });//getScriptsCachedOnce - datatables css }); //getScriptsCachedOnce - datatables js diff --git a/Assets/js/global-revenue.js b/Assets/js/global-revenue.js index 1b935ae..a636cf7 100644 --- a/Assets/js/global-revenue.js +++ b/Assets/js/global-revenue.js @@ -121,6 +121,8 @@ Mautic.loadGlobalRevenueWidget = function () { } } // FooterCallback }); //.DataTables + mQuery('#global-revenue_wrapper .dt-buttons').css({float: "right", marginLeft: "10px"}); + } //success }); //ajax }); //getScriptsCachedOnce - fonteawesome css diff --git a/Assets/js/source-revenue.js b/Assets/js/source-revenue.js index 4d6677d..af49c8f 100644 --- a/Assets/js/source-revenue.js +++ b/Assets/js/source-revenue.js @@ -128,6 +128,7 @@ Mautic.loadSourceRevenueWidget = function () { } } // FooterCallback }); //.DataTables + mQuery('#source-revenue_wrapper .dt-buttons').css({float: "right", marginLeft: "10px"}); } //success });//ajax }); //getScriptsCachedOnce - fonteawesome css From 6ffcaf0530e105387e72b608f541d978b3ce46fb Mon Sep 17 00:00:00 2001 From: scottshipman Date: Thu, 12 Jul 2018 11:36:36 -0400 Subject: [PATCH 3/5] limit Margin column data to two decimals on dashboard widgets --- Assets/js/global-revenue.js | 9 ++++++++- Assets/js/source-revenue.js | 10 +++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/Assets/js/global-revenue.js b/Assets/js/global-revenue.js index a636cf7..656ba53 100644 --- a/Assets/js/global-revenue.js +++ b/Assets/js/global-revenue.js @@ -52,7 +52,7 @@ Mautic.loadGlobalRevenueWidget = function () { }, { render: function (data, type, row) { - return data + '%'; + return renderPercentage(row); }, targets: 10 }, @@ -149,6 +149,13 @@ Mautic.loadGlobalRevenueWidget = function () { return '' + row[2] + ''; } + function renderPercentage (row) { + if (Number(row[10]) != parseInt(Number(row[10]))){ + return Number(row[10]).toFixed(2) + '%'; + } + return row[10] + '%'; + } + function FormatFooter (column, value, index) { column = column.trim(); var numFormat = mQuery.fn.dataTable.render.number(',', '.', 0).display; diff --git a/Assets/js/source-revenue.js b/Assets/js/source-revenue.js index af49c8f..19be318 100644 --- a/Assets/js/source-revenue.js +++ b/Assets/js/source-revenue.js @@ -58,7 +58,8 @@ Mautic.loadSourceRevenueWidget = function () { }, { render: function (data, type, row) { - return data + '%'; + //return 'foo'; + return renderMarginPercentage(row); }, targets: 12 }, @@ -155,6 +156,13 @@ function renderCampaignName (row) { return ''+ row[2] + ''; } +function renderMarginPercentage (row) { + if (Number(row[12]) != parseInt(Number(row[12]))){ + return Number(row[12]).toFixed(2) + '%'; + } + return row[12] + '%'; +} + function renderSourceName (row) { return ''+ row[4] + ''; } From d66dfc1b3a29e9c7b62f47c7d5b4db91ccaa4bc3 Mon Sep 17 00:00:00 2001 From: scottshipman Date: Thu, 12 Jul 2018 15:16:19 -0400 Subject: [PATCH 4/5] pass alredy loaded callback into includeScripts --- Assets/js/global-revenue.js | 1 - Views/Widgets/revenue.html.php | 8 +++++--- Views/Widgets/sourceRevenue.html.php | 5 ++++- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Assets/js/global-revenue.js b/Assets/js/global-revenue.js index 656ba53..0eb9480 100644 --- a/Assets/js/global-revenue.js +++ b/Assets/js/global-revenue.js @@ -122,7 +122,6 @@ Mautic.loadGlobalRevenueWidget = function () { } // FooterCallback }); //.DataTables mQuery('#global-revenue_wrapper .dt-buttons').css({float: "right", marginLeft: "10px"}); - } //success }); //ajax }); //getScriptsCachedOnce - fonteawesome css diff --git a/Views/Widgets/revenue.html.php b/Views/Widgets/revenue.html.php index 967091b..b90149f 100644 --- a/Views/Widgets/revenue.html.php +++ b/Views/Widgets/revenue.html.php @@ -12,8 +12,6 @@ ?> includeScript('plugins/MauticContactLedgerBundle/Assets/js/global-revenue.js', 'loadGlobalRevenueWidget'); - $params = $data['params']; ?> @@ -29,4 +27,8 @@ - \ No newline at end of file + + +includeScript('plugins/MauticContactLedgerBundle/Assets/js/global-revenue.js', 'loadGlobalRevenueWidget', 'loadGlobalRevenueWidget'); +?> \ No newline at end of file diff --git a/Views/Widgets/sourceRevenue.html.php b/Views/Widgets/sourceRevenue.html.php index 54406be..8280132 100644 --- a/Views/Widgets/sourceRevenue.html.php +++ b/Views/Widgets/sourceRevenue.html.php @@ -10,7 +10,6 @@ */ ?> includeScript('plugins/MauticContactLedgerBundle/Assets/js/source-revenue.js', 'loadSourceRevenueWidget'); $params = $data['params']; ?> @@ -33,4 +32,8 @@ +includeScript('plugins/MauticContactLedgerBundle/Assets/js/source-revenue.js', 'loadSourceRevenueWidget', 'loadSourceRevenueWidget'); +?> + From ecc12ea10b3185dc2220f61025c3dc991d403b5d Mon Sep 17 00:00:00 2001 From: scottshipman Date: Thu, 12 Jul 2018 15:35:08 -0400 Subject: [PATCH 5/5] move function defs into narrower scope --- Assets/js/global-revenue.js | 64 ++++++++++++++-------------- Assets/js/source-revenue.js | 85 ++++++++++++++++++++----------------- 2 files changed, 79 insertions(+), 70 deletions(-) diff --git a/Assets/js/global-revenue.js b/Assets/js/global-revenue.js index 0eb9480..31ed246 100644 --- a/Assets/js/global-revenue.js +++ b/Assets/js/global-revenue.js @@ -129,7 +129,6 @@ Mautic.loadGlobalRevenueWidget = function () { }); //getScriptsCachedOnce - datatables js }); } -}; //loadGlobalRevenueWidget function renderPublishToggle (id, active) { if (active == 1) { @@ -171,38 +170,41 @@ Mautic.loadGlobalRevenueWidget = function () { } return numFormat(value); } +}; //loadGlobalRevenueWidget // getScriptCachedOnce for faster page loads in the backend. - mQuery.getScriptCachedOnce = function (url, callback) { - if ( - typeof window.getScriptCachedOnce !== 'undefined' - && window.getScriptCachedOnce.indexOf(url) !== -1 - ) { +mQuery.getScriptCachedOnce = function (url, callback) { + if ( + typeof window.getScriptCachedOnce !== 'undefined' + && window.getScriptCachedOnce.indexOf(url) !== -1 + ) { + callback(); + return mQuery(this); + } + else { + return mQuery.ajax({ + url: url, + dataType: 'script', + cache: true + }).done(function () { + if (typeof window.getScriptCachedOnce === 'undefined') { + window.getScriptCachedOnce = []; + } + window.getScriptCachedOnce.push('url'); callback(); - return mQuery(this); - } - else { - return mQuery.ajax({ - url: url, - dataType: 'script', - cache: true - }).done(function () { - if (typeof window.getScriptCachedOnce === 'undefined') { - window.getScriptCachedOnce = []; - } - window.getScriptCachedOnce.push('url'); - callback(); - }); - } - }; + }); + } +}; // getScriptCachedOnce for faster page loads in the backend. - mQuery.getCssOnce = function (url, callback) { - if (document.createStyleSheet) { - document.createStyleSheet(url); - } - else { - mQuery('head').append(mQuery('')); - } - callback(); - }; +mQuery.getCssOnce = function (url, callback) { + if (document.createStyleSheet) { + document.createStyleSheet(url); + } + else { + mQuery('head').append(mQuery('')); + } + callback(); +}; + + diff --git a/Assets/js/source-revenue.js b/Assets/js/source-revenue.js index 19be318..a490b43 100644 --- a/Assets/js/source-revenue.js +++ b/Assets/js/source-revenue.js @@ -128,6 +128,10 @@ Mautic.loadSourceRevenueWidget = function () { console.log(e); } } // FooterCallback + + + + }); //.DataTables mQuery('#source-revenue_wrapper .dt-buttons').css({float: "right", marginLeft: "10px"}); } //success @@ -137,52 +141,53 @@ Mautic.loadSourceRevenueWidget = function () { }); //getScriptsCachedOnce - datatables js }); } -}; //loadSourceRevenueWidget -function renderPublishToggle (id, active) { - if (active == 1) { - var icon = 'fa-toggle-on'; - var status = 'published'; - } - else { - var icon = 'fa-toggle-off'; - var status = 'unpublished'; + function renderPublishToggle (id, active) { + if (active == 1) { + var icon = 'fa-toggle-on'; + var status = 'published'; + } + else { + var icon = 'fa-toggle-off'; + var status = 'unpublished'; + } + var UpperStatus = status.charAt(0).toUpperCase() + status.substring(1); + return ''; } - var UpperStatus = status.charAt(0).toUpperCase() + status.substring(1); - return ''; -} - -function renderCampaignName (row) { - return ''+ row[2] + ''; -} -function renderMarginPercentage (row) { - if (Number(row[12]) != parseInt(Number(row[12]))){ - return Number(row[12]).toFixed(2) + '%'; + function renderCampaignName (row) { + return ''+ row[2] + ''; } - return row[12] + '%'; -} - -function renderSourceName (row) { - return ''+ row[4] + ''; -} - -function FormatFooter (column, value, index) { - column = column.trim(); - var numFormat = mQuery.fn.dataTable.render.number(',', '.', 0).display; - var curFormat = mQuery.fn.dataTable.render.number(',', '.', 2, '$').display; - var curPreciseFormat = mQuery.fn.dataTable.render.number(',', '.', 4, '$').display; - if (column === 'Margin') { - return ' - '; + + function renderMarginPercentage (row) { + if (Number(row[12]) != parseInt(Number(row[12]))){ + return Number(row[12]).toFixed(2) + '%'; + } + return row[12] + '%'; } - if (column === 'Revenue' || column === 'Cost' || column === 'GM') { - return curFormat(value); + + function renderSourceName (row) { + return ''+ row[4] + ''; } - if (column === 'eCPM') { - return curPreciseFormat(value); + + function FormatFooter (column, value, index) { + column = column.trim(); + var numFormat = mQuery.fn.dataTable.render.number(',', '.', 0).display; + var curFormat = mQuery.fn.dataTable.render.number(',', '.', 2, '$').display; + var curPreciseFormat = mQuery.fn.dataTable.render.number(',', '.', 4, '$').display; + if (column === 'Margin') { + return ' - '; + } + if (column === 'Revenue' || column === 'Cost' || column === 'GM') { + return curFormat(value); + } + if (column === 'eCPM') { + return curPreciseFormat(value); + } + return numFormat(value); } - return numFormat(value); -} +}; //loadSourceRevenueWidget + // getScriptCachedOnce for faster page loads in the backend. mQuery.getScriptCachedOnce = function (url, callback) { @@ -219,3 +224,5 @@ mQuery.getCssOnce = function (url, callback) { }; + +