From 8caf334fcc9bd1613714f6683738640d2b0545de Mon Sep 17 00:00:00 2001 From: vladimir Date: Tue, 21 Mar 2017 01:06:05 +0200 Subject: [PATCH] Cosmetic changes --- lib/models/campaigns.js | 53 +++++++++++++++++++------------------ setup/sql/upgrade-00022.sql | 5 +--- 2 files changed, 28 insertions(+), 30 deletions(-) diff --git a/lib/models/campaigns.js b/lib/models/campaigns.js index 62208707..130225e0 100644 --- a/lib/models/campaigns.js +++ b/lib/models/campaigns.js @@ -13,6 +13,7 @@ let log = require('npmlog'); let mailer = require('../mailer'); let humanize = require('humanize'); let _ = require('../translate')._; +let util = require('util'); let allowedKeys = ['description', 'from', 'address', 'reply_to', 'subject', 'editor_name', 'editor_data', 'template', 'source_url', 'list', 'segment', 'html', 'text', 'tracking_disabled']; @@ -201,33 +202,33 @@ module.exports.statsClickedSubscribersByColumn = (campaign, linkId, request, col return callback(err); } - let values = [campaign.list, linkId]; - let query = 'SELECT SQL_CALC_FOUND_ROWS ' + column + ' AS data, COUNT(*) AS cnt FROM `subscription__' + campaign.list + '` JOIN `campaign_tracker__' + campaign.id + '` ON `campaign_tracker__' + campaign.id + '`.`list`=? AND `campaign_tracker__' + campaign.id + '`.`subscriber`=`subscription__' + campaign.list + '`.`id` AND `campaign_tracker__' + campaign.id + '`.`link`=? GROUP BY ' + column + ' ORDER BY COUNT(' + column + ') DESC,' + column; - - connection.query(query, values, (err, rows) => { - connection.release(); - if (err) { - return callback(err); - } - - let data = {}; - let dataPercent = []; - let total = 0; - - rows.forEach(function (row, index) { - if (index < limit) { - data[row.data] = row.cnt; - } else { - data.other = (data.other ? data.other : 0) + row.cnt; + let query_template = 'SELECT %s AS data, COUNT(*) AS cnt FROM `subscription__%d` JOIN `campaign_tracker__%d` ON `campaign_tracker__%d`.`list`=%d AND `campaign_tracker__%d`.`subscriber`=`subscription__%d`.`id` AND `campaign_tracker__%d`.`link`=%d GROUP BY `%s` ORDER BY COUNT(`%s`) DESC, `%s`'; + let query = util.format(query_template, column, campaign.list, campaign.id, campaign.id, campaign.list, campaign.id, campaign.list, campaign.id, linkId, column, column, column); + + connection.query(query, (err, rows) => { + connection.release(); + if (err) { + return callback(err); } - total += row.cnt; - }); - Object.keys(data).forEach(function (key) { - let name = key + ': ' + data[key]; - let value = parseInt(data[key] * 100 / total); - dataPercent.push([name, value]); - }); - return callback(null, dataPercent, total); + + let data = {}; + let dataPercent = []; + let total = 0; + + rows.forEach((row, index) => { + if (index < limit) { + data[row.data] = row.cnt; + } else { + data.other = (data.other ? data.other : 0) + row.cnt; + } + total += row.cnt; + }); + Object.keys(data).forEach(key => { + let name = key + ': ' + data[key]; + let value = parseInt(data[key] * 100 / total, 10); + dataPercent.push([name, value]); + }); + return callback(null, dataPercent, total); }); }); }; diff --git a/setup/sql/upgrade-00022.sql b/setup/sql/upgrade-00022.sql index ad926597..daf4a617 100644 --- a/setup/sql/upgrade-00022.sql +++ b/setup/sql/upgrade-00022.sql @@ -6,8 +6,7 @@ SET @schema_version = '22'; # Create ALTER TABLE PROCEDURE DROP PROCEDURE IF EXISTS `alterbyregexp`; -DELIMITER // -CREATE PROCEDURE alterbyregexp(`table_regexp` VARCHAR(255), `altertext` VARCHAR(255)) +CREATE PROCEDURE `alterbyregexp` (`table_regexp` VARCHAR(255), `altertext` VARCHAR(255)) BEGIN DECLARE done INT DEFAULT FALSE; DECLARE tbl VARCHAR(255); @@ -27,8 +26,6 @@ DEALLOCATE PREPARE stmt; END LOOP; CLOSE curs; END; -// -DELIMITER ; # Add field device_type to campaign_tracker CALL alterbyregexp('campaign\_tracker%', 'ADD COLUMN `device_type` varchar(50) DEFAULT NULL AFTER `ip`');