From c5b481a2664872b80ea5bb860b48000a1a2d2449 Mon Sep 17 00:00:00 2001 From: witzig Date: Thu, 28 Sep 2017 00:55:19 +0200 Subject: [PATCH] Add option to preserve unsubscribed status on list import, #325 --- lib/models/subscriptions.js | 2 +- routes/lists.js | 9 ++++++++- views/lists/subscription/import.hbs | 5 +++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/models/subscriptions.js b/lib/models/subscriptions.js index f9b562c5..23cd77ca 100644 --- a/lib/models/subscriptions.js +++ b/lib/models/subscriptions.js @@ -625,7 +625,7 @@ module.exports.delete = (listId, cid, callback) => { module.exports.createImport = (listId, type, path, size, delimiter, emailcheck, mapping, callback) => { listId = Number(listId) || 0; - type = Number(type) || 1; + type = Number(type) || 0; if (listId < 1) { return callback(new Error('Missing List ID')); diff --git a/routes/lists.js b/routes/lists.js index be419a1f..94b3f788 100644 --- a/routes/lists.js +++ b/routes/lists.js @@ -574,7 +574,14 @@ router.post('/subscription/import', uploads.single('listimport'), passport.parse return res.redirect('/lists'); } else { - subscriptions.createImport(list.id, req.body.type === 'subscribed' ? 1 : 2, req.file.path, req.file.size, delimiter, req.body.emailcheck === 'enabled' ? 1 : 0, { + let type = 0; // Use the existing subscription status or SUBSCRIBED + if (req.body.type === 'force_subscribed') { + type = subscriptions.Status.SUBSCRIBED; + } else if (req.body.type === 'unsubscribed') { + type = subscriptions.Status.UNSUBSCRIBED; + } + + subscriptions.createImport(list.id, type, req.file.path, req.file.size, delimiter, req.body.emailcheck === 'enabled' ? 1 : 0, { columns: rows[0], example: rows[1] || [] }, (err, importId) => { diff --git a/views/lists/subscription/import.hbs b/views/lists/subscription/import.hbs index be1098b5..6c4881f2 100644 --- a/views/lists/subscription/import.hbs +++ b/views/lists/subscription/import.hbs @@ -35,6 +35,11 @@ {{#translate}}Subscribed{{/translate}} – {{#translate}}Regular subscriber addresses{{/translate}} +
+ +