summaryrefslogtreecommitdiffstats
path: root/client/components/import/csvMembersMapper.js
diff options
context:
space:
mode:
authorBryan Mutai <mutaiwork@gmail.com>2020-05-07 01:29:22 +0300
committerBryan Mutai <mutaiwork@gmail.com>2020-05-07 01:31:59 +0300
commit1742bcd9b15737c5853e9bcd0a6301139498307d (patch)
tree0041882174cc382868f13d7cb7cd584cf146a319 /client/components/import/csvMembersMapper.js
parent533bc045d06269dba2f42cdfe61817a1b3407974 (diff)
downloadwekan-1742bcd9b15737c5853e9bcd0a6301139498307d.tar.gz
wekan-1742bcd9b15737c5853e9bcd0a6301139498307d.tar.bz2
wekan-1742bcd9b15737c5853e9bcd0a6301139498307d.zip
add: import board/cards/lists using CSV/TSV
Diffstat (limited to 'client/components/import/csvMembersMapper.js')
-rw-r--r--client/components/import/csvMembersMapper.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/client/components/import/csvMembersMapper.js b/client/components/import/csvMembersMapper.js
new file mode 100644
index 00000000..cf8d5837
--- /dev/null
+++ b/client/components/import/csvMembersMapper.js
@@ -0,0 +1,37 @@
+export function getMembersToMap(data) {
+ // we will work on the list itself (an ordered array of objects) when a
+ // mapping is done, we add a 'wekan' field to the object representing the
+ // imported member
+
+ const membersToMap = [];
+ const importedMembers = [];
+ let membersIndex;
+
+ for (let i = 0; i < data[0].length; i++) {
+ if (data[0][i].toLowerCase() === 'members') {
+ membersIndex = i;
+ }
+ }
+
+ for (let i = 1; i < data.length; i++) {
+ if (data[i][membersIndex]) {
+ for (const importedMember of data[i][membersIndex].split(' ')) {
+ if (importedMember && importedMembers.indexOf(importedMember) === -1) {
+ importedMembers.push(importedMember);
+ }
+ }
+ }
+ }
+
+ for (let importedMember of importedMembers) {
+ importedMember = {
+ username: importedMember,
+ id: importedMember,
+ };
+ const wekanUser = Users.findOne({ username: importedMember.username });
+ if (wekanUser) importedMember.wekanId = wekanUser._id;
+ membersToMap.push(importedMember);
+ }
+
+ return membersToMap;
+}