Explorar o código

cherry pick the excel export feature to add swimlanes to the output

ryanMushy %!s(int64=4) %!d(string=hai) anos
pai
achega
e5c0e623a0
Modificáronse 1 ficheiros con 27 adicións e 4 borrados
  1. 27 4
      models/exportExcel.js

+ 27 - 4
models/exportExcel.js

@@ -239,7 +239,7 @@ export class ExporterExcel {
       },
       },
       {
       {
         key: 'c',
         key: 'c',
-        width: 20,
+        width: 60,
       },
       },
       {
       {
         key: 'd',
         key: 'd',
@@ -342,6 +342,10 @@ export class ExporterExcel {
         key: 'p',
         key: 'p',
         width: 20,
         width: 20,
       },
       },
+      {
+        key: 'q',
+        width: 20,
+      },
     ];
     ];
 
 
     //add title line
     //add title line
@@ -378,10 +382,23 @@ export class ExporterExcel {
     for (const klist in result.lists) {
     for (const klist in result.lists) {
       jlist[result.lists[klist]._id] = result.lists[klist].title;
       jlist[result.lists[klist]._id] = result.lists[klist].title;
     }
     }
+    //get kanban swimlanes info
+    const jswimlane = {};
+    for (const kswimlane in result.swimlanes) {
+      jswimlane[result.swimlanes[kswimlane]._id] = result.swimlanes[kswimlane].title;
+    }
     //get kanban label info
     //get kanban label info
     const jlabel = {};
     const jlabel = {};
-    for (const klabel in result.labels) {
-      jlabel[result.labels[klabel]._id] = result.labels[klabel].name;
+    var isFirst = 1;
+    for (const klabel in result.labels){
+      console.log(klabel);
+      if (isFirst == 0){
+        jlabel[result.labels[klabel]._id] = `,${result.labels[klabel].name}`;
+      }
+      else{
+        isFirst = 0;
+        jlabel[result.labels[klabel]._id] = result.labels[klabel].name;
+      }
     }
     }
     //add data +8 hours
     //add data +8 hours
     function addTZhours(jdate) {
     function addTZhours(jdate) {
@@ -413,7 +430,7 @@ export class ExporterExcel {
       size: 10,
       size: 10,
       bold: true,
       bold: true,
     };
     };
-    ws.mergeCells('F3:P3');
+    ws.mergeCells('F3:Q3');
     ws.getCell('B3').style = {
     ws.getCell('B3').style = {
       font: {
       font: {
         name: TAPi18n.__('excel-font'),
         name: TAPi18n.__('excel-font'),
@@ -487,6 +504,7 @@ export class ExporterExcel {
     ];
     ];
     //add card title
     //add card title
     //ws.addRow().values = ['编号', '标题', '创建人', '创建时间', '更新时间', '列表', '成员', '描述', '标签'];
     //ws.addRow().values = ['编号', '标题', '创建人', '创建时间', '更新时间', '列表', '成员', '描述', '标签'];
+    //this is where order in which the excel file generates
     ws.addRow().values = [
     ws.addRow().values = [
       TAPi18n.__('number'),
       TAPi18n.__('number'),
       TAPi18n.__('title'),
       TAPi18n.__('title'),
@@ -499,6 +517,7 @@ export class ExporterExcel {
       TAPi18n.__('card-due'),
       TAPi18n.__('card-due'),
       TAPi18n.__('card-end'),
       TAPi18n.__('card-end'),
       TAPi18n.__('list'),
       TAPi18n.__('list'),
+      TAPi18n.__('swimlane'),
       TAPi18n.__('assignee'),
       TAPi18n.__('assignee'),
       TAPi18n.__('members'),
       TAPi18n.__('members'),
       TAPi18n.__('labels'),
       TAPi18n.__('labels'),
@@ -522,6 +541,7 @@ export class ExporterExcel {
     allBorder('N5');
     allBorder('N5');
     allBorder('O5');
     allBorder('O5');
     allBorder('P5');
     allBorder('P5');
+    allBorder('Q5');
     cellCenter('A5');
     cellCenter('A5');
     cellCenter('B5');
     cellCenter('B5');
     cellCenter('C5');
     cellCenter('C5');
@@ -538,6 +558,7 @@ export class ExporterExcel {
     cellCenter('N5');
     cellCenter('N5');
     cellCenter('O5');
     cellCenter('O5');
     cellCenter('P5');
     cellCenter('P5');
+    cellCenter('Q5');
     ws.getRow(5).font = {
     ws.getRow(5).font = {
       name: TAPi18n.__('excel-font'),
       name: TAPi18n.__('excel-font'),
       size: 12,
       size: 12,
@@ -580,6 +601,7 @@ export class ExporterExcel {
         addTZhours(jcard.dueAt),
         addTZhours(jcard.dueAt),
         addTZhours(jcard.endAt),
         addTZhours(jcard.endAt),
         jlist[jcard.listId],
         jlist[jcard.listId],
+        jswimlane[jcard.swimlaneId],
         jcassig,
         jcassig,
         jcmem,
         jcmem,
         jclabel,
         jclabel,
@@ -604,6 +626,7 @@ export class ExporterExcel {
       allBorder(`N${y}`);
       allBorder(`N${y}`);
       allBorder(`O${y}`);
       allBorder(`O${y}`);
       allBorder(`P${y}`);
       allBorder(`P${y}`);
+      allBorder(`Q${y}`);
       cellCenter(`A${y}`);
       cellCenter(`A${y}`);
       ws.getCell(`B${y}`).alignment = {
       ws.getCell(`B${y}`).alignment = {
         wrapText: true,
         wrapText: true,