Explorar o código

fix: backup workflows

Ahmad Kholid %!s(int64=2) %!d(string=hai) anos
pai
achega
3969a9512e

+ 4 - 8
src/components/newtab/settings/SettingsCloudBackup.vue

@@ -281,19 +281,15 @@ async function backupWorkflowsToCloud(workflowId) {
 
       if (!findWorkflow) return acc;
 
-      const workflow = convertWorkflow(findWorkflow, [
-        'dataColumns',
-        'id',
-        '__id',
-      ]);
+      const workflow = convertWorkflow(findWorkflow, ['dataColumns', 'id']);
+
       delete workflow.extVersion;
+
       workflow.drawflow =
         typeof workflow.drawflow === 'string'
-          ? parseJSON(workflow.drawflow, { drawflow: { Home: { data: {} } } })
+          ? parseJSON(workflow.drawflow, { drawflow: { nodes: [], edges: [] } })
           : workflow.drawflow;
 
-      if (!workflow.__id) workflow.__id = null;
-
       acc.push(workflow);
 
       return acc;

+ 13 - 1
src/utils/workflowData.js

@@ -122,6 +122,18 @@ export function importWorkflow(attrs = {}) {
   });
 }
 
+const defaultValue = {
+  name: '',
+  icon: '',
+  table: [],
+  settings: {},
+  globalData: '',
+  dataColumns: [],
+  description: '',
+  drawflow: { nodes: [], edges: [] },
+  version: browser.runtime.getManifest().version,
+};
+
 export function convertWorkflow(workflow, additionalKeys = []) {
   if (!workflow) return null;
 
@@ -141,7 +153,7 @@ export function convertWorkflow(workflow, additionalKeys = []) {
   };
 
   keys.forEach((key) => {
-    content[key] = workflow[key];
+    content[key] = workflow[key] ?? defaultValue[key];
   });
 
   return content;