From dc7b3ab4c435f5e95a25e9b662ca0ef70578e822 Mon Sep 17 00:00:00 2001
From: Skander Hatira <skander.hatira@inrae.fr>
Date: Tue, 15 Jun 2021 00:24:22 +0200
Subject: [PATCH] fixed lines selection and removal in tabs and trying new
 build for windows, not too promising though

---
 .gitlab-ci.yml                               | 18 +++++++++++-
 src/backend/spawnServer.js                   |  7 +++--
 src/components/Comparisons/ComparisonForm.js | 29 ++++++++------------
 src/components/Table/NewTable.js             | 21 ++++++--------
 src/main.js                                  |  2 ++
 5 files changed, 44 insertions(+), 33 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index e33e5bb..fb24538 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,7 +1,7 @@
-image: electronjs/build:latest
 stages:
   - create
   - build
+  - build-win
 create:
   stage: create
   image: continuumio/miniconda3:latest
@@ -25,6 +25,7 @@ create:
   only:
     - master
 build:
+  image: electronjs/build:latest
   stage: build
   script:
     - sudo npm install --global yarn
@@ -39,3 +40,18 @@ build:
       - $CI_PROJECT_DIR/out/make/deb/x64/*.deb
   only:
     - master
+build-win:
+  image: hackash/electron-windows-build
+  stage: build-win
+  script:
+    - sudo npm install --global yarn
+    - cd $CI_PROJECT_DIR/src/backend
+    - sudo yarn
+    - cd $CI_PROJECT_DIR/
+    - npm run build-windows
+  artifacts:
+    expire_in: 1 week
+    paths:
+      - $CI_PROJECT_DIR/out/make/deb/x64/*.exe
+  only:
+    - master
diff --git a/src/backend/spawnServer.js b/src/backend/spawnServer.js
index 1a4be0b..6584222 100644
--- a/src/backend/spawnServer.js
+++ b/src/backend/spawnServer.js
@@ -4,10 +4,11 @@ const spawnServer = async (sock) => {
     const options = {
         slient: false,
         detached: false,
+        shell: true,
     };
-    const child = fork(
-        path.join(__dirname, "backend/server.js"),
-        [sock],
+    const child = spawn(
+        "node",
+        [path.join(__dirname, "backend/server.js"), sock],
         options
     );
 
diff --git a/src/components/Comparisons/ComparisonForm.js b/src/components/Comparisons/ComparisonForm.js
index 75aed3d..058e488 100644
--- a/src/components/Comparisons/ComparisonForm.js
+++ b/src/components/Comparisons/ComparisonForm.js
@@ -172,7 +172,7 @@ const useToolbarStyles = makeStyles((theme) => ({
 
 const EnhancedTableToolbar = (props) => {
   const classes = useToolbarStyles();
-  const { numSelected, addUnit, removeUnit } = props;
+  const { numSelected, addUnit, removeComparison } = props;
 
   return (
     <Toolbar
@@ -202,7 +202,7 @@ const EnhancedTableToolbar = (props) => {
 
       {numSelected > 0 ? (
         <Tooltip title="Delete">
-          <IconButton onClick={removeUnit} aria-label="delete">
+          <IconButton onClick={removeComparison} aria-label="delete">
             <DeleteIcon />
           </IconButton>
         </Tooltip>
@@ -382,20 +382,15 @@ export default function ComparisonForm() {
     setComparisons([...comparisons, { ...blankUnit }]);
   };
 
-  const removeUnit = () => {
-    const updatedUnits = [...comparisons];
-    const updatedSelection = [...selected];
-    console.log(updatedSelection);
-    selected.map((item) => {
-      updatedUnits.splice([item], 1);
-      const filtered = updatedSelection.filter(function (value, index, arr) {
-        return value !== item;
-      });
-      updatedSelection.splice(item, 1);
-      setComparisons(updatedUnits);
-      setSelected(filtered);
-    });
-    console.log(comparisons);
+  const removeComparison = () => {
+    const updatedComparisons = [...comparisons];
+    const updatedSelected = [...selected];
+
+    while (updatedSelected.length) {
+      updatedComparisons.splice(updatedSelected.pop(), 1);
+    }
+    setComparisons(updatedComparisons);
+    setSelected([]);
   };
 
   const handleUnitFiles = (e) => {
@@ -461,7 +456,7 @@ export default function ComparisonForm() {
     <div className={classes.root}>
       <Paper className={classes.paper}>
         <EnhancedTableToolbar
-          removeUnit={removeUnit}
+          removeComparison={removeComparison}
           addUnit={addUnit}
           numSelected={selected.length}
         />
diff --git a/src/components/Table/NewTable.js b/src/components/Table/NewTable.js
index 5a26a55..a18b772 100644
--- a/src/components/Table/NewTable.js
+++ b/src/components/Table/NewTable.js
@@ -272,19 +272,15 @@ export default function NewTable() {
 
   const removeUnit = () => {
     const updatedUnits = [...units];
-    const updatedSelection = [...selected];
-    console.log(updatedSelection);
-    selected.map((item) => {
-      updatedUnits.splice([item], 1);
-      const filtered = updatedSelection.filter(function (value, index, arr) {
-        return value !== item;
-      });
-      updatedSelection.splice(item, 1);
-      setUnits(updatedUnits);
-      setSelected(filtered);
-    });
-    console.log(units);
+    const updatedSelected = [...selected];
+    while (updatedSelected.length) {
+      updatedUnits.splice(updatedSelected.pop(), 1);
+    }
+    setUnits(updatedUnits);
+    setSelected([]);
   };
+  console.log(selected);
+  console.log(units);
   const handleUnitChange = (e) => {
     if (runState.remote) {
       const updatedRemoteUnits = [...remoteunits];
@@ -346,6 +342,7 @@ export default function NewTable() {
 
     setSelected(newSelected);
   };
+  console.log(selected);
 
   const handleChangePage = (event, newPage) => {
     setPage(newPage);
diff --git a/src/main.js b/src/main.js
index c65928a..29e8770 100644
--- a/src/main.js
+++ b/src/main.js
@@ -6,6 +6,8 @@ const {
   session,
   ipcRenderer,
 } = require("electron");
+if (require("electron-squirrel-startup")) app.quit();
+
 const path = require("path");
 const fs = require("fs");
 const running = require("is-running");
-- 
GitLab