Browse Source

Export en drag and drop

Arthur Brandao 5 years ago
parent
commit
ee6a693589
4 changed files with 21 additions and 1 deletions
  1. 1 0
      .gitignore
  2. BIN
      app/main/asset/file.png
  3. 13 0
      app/main/dragdrop.js
  4. 7 1
      app/src/index.html

+ 1 - 0
.gitignore

@@ -90,6 +90,7 @@ out/
 
 .idea/
 data/*.json
+data/*/*.json
 src/css/style.min.css
 src/css/materialize.min.css
 app/src/css/style.min.css

BIN
app/main/asset/file.png


+ 13 - 0
app/main/dragdrop.js

@@ -0,0 +1,13 @@
+const { ipcMain } = require('electron');
+const path = require('path');
+const file = require('../../helper/file');
+
+ipcMain.on('ondragstart', (event, data) => {
+    const filepath = `./data/${data.id}/${data.title}.json`;
+    file.makedir(filepath, true);
+    file.put(filepath, JSON.stringify(data, undefined, 4));
+    event.sender.startDrag({
+        file: path.join(__dirname, '../.' + filepath),
+        icon: path.join(__dirname, '/asset/file.png')
+    });
+});

+ 7 - 1
app/src/index.html

@@ -33,7 +33,7 @@
                 <div class="row" data-loop="card">
                     <div class="col s12 m6 l4">
                         <div class="card">
-                            <div class="card-content zoom-in selectable" onclick="selectCard(this)">
+                            <div class="card-content zoom-in selectable" draggable="true" ondragstart="exportCard(this, event)" onclick="selectCard(this)">
                                 <span class="hide" data-val="id"></span>
                                 <span class="card-title" data-val="title"></span>
                             </div>
@@ -189,6 +189,12 @@
                     html: 'Carte supprimée',
                 });
             }
+
+            function exportCard(card, event) {
+                event.preventDefault();
+                const id = $(card).children()[0].innerText;
+                ipcRenderer.send('ondragstart', JSON.parse(localStorage[id]));
+            }
         </script>
     </body>
 </html>