From 42356f87ce845a38013ba29169d279c6c5bde66f Mon Sep 17 00:00:00 2001 From: Lucian Holland Date: Sun, 20 Mar 2016 19:22:22 +0100 Subject: [PATCH] Unstyled implementation of new import functionality --- D&D_5e_Reshaped/precompiled/D&D_5e.html | 5 ++- .../precompiled/components/sheetWorkers.js | 43 +++++++++++++++---- 2 files changed, 39 insertions(+), 9 deletions(-) diff --git a/D&D_5e_Reshaped/precompiled/D&D_5e.html b/D&D_5e_Reshaped/precompiled/D&D_5e.html index 94f71194cb..e27425bf82 100644 --- a/D&D_5e_Reshaped/precompiled/D&D_5e.html +++ b/D&D_5e_Reshaped/precompiled/D&D_5e.html @@ -1,4 +1,7 @@
+ Import Data Present
+ Reject
+ Accept //= include components/header/firstLine.html //= include components/header/header.html //= include components/header/nav.html @@ -20,4 +23,4 @@
Wiki: https://wiki.roll20.net/DnD5e_Shaped_Character_Sheet
- \ No newline at end of file + diff --git a/D&D_5e_Reshaped/precompiled/components/sheetWorkers.js b/D&D_5e_Reshaped/precompiled/components/sheetWorkers.js index 46fd6ce5fb..34245182a0 100644 --- a/D&D_5e_Reshaped/precompiled/components/sheetWorkers.js +++ b/D&D_5e_Reshaped/precompiled/components/sheetWorkers.js @@ -4798,18 +4798,45 @@ const sheetOpened = () => { finalSetAttrs.version = currentVersion; } - if(v.import_data) { - let importObject = JSON.parse(v.import_data); - Object.keys(importObject).forEach( key => { - finalSetAttrs[key] = importObject[key]; - }); - finalSetAttrs.import_data = ''; - } - setFinalAttrs(v, finalSetAttrs); }); }; +const importData = () => { + getAttrs(['import_data'], v => { + if(v.import_data) { + const finalSetAttrs = {}; + let importObject = JSON.parse(v.import_data); + + if (importObject.npc) { + Object.keys(importObject.npc).forEach(key => { + finalSetAttrs[key] = importObject[key]; + }); + } + if(importObject.spells) { + importObject.spells.forEach(spell => { + const newRowId = generateRowID(); + const repeatingString = `repeating_spell_${newRowId}_`; + Object.keys(spell).forEach(key => { + finalSetAttrs[`${repeatingString}${key}`] = spell[key]; + }); + }); + } + finalSetAttrs.import_data = ''; + finalSetAttrs.import_data_present = 'off'; + setFinalAttrs(v, finalSetAttrs); + } + }); +}; + +const deleteImportData = () => { + setFinalAttrs([], {import_data:'', import_data_present:'off'}); +}; + +on('change:accept_import', importData); +on('change:reject_import', deleteImportData); + + on('sheet:opened', () => { sheetOpened(); });