mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-09-11 09:32:33 +00:00
63 lines
1.8 KiB
JavaScript
63 lines
1.8 KiB
JavaScript
/* global on:false, generateRowID:false */
|
|
|
|
import { Initialize } from './Initialize';
|
|
const initialize = new Initialize();
|
|
import { getSetItems } from './utilities';
|
|
|
|
export class ImportData {
|
|
import() {
|
|
getSetItems('importData.import', {
|
|
collectionArray: ['import_data', 'version'],
|
|
callback: (v, finalSetAttrs) => {
|
|
if (v.import_data) {
|
|
const importObject = JSON.parse(v.import_data);
|
|
|
|
if (importObject.npc) {
|
|
if (!v.version) {
|
|
initialize.sheetOpened();
|
|
}
|
|
for (const prop in importObject.npc) {
|
|
if (importObject.npc.hasOwnProperty(prop)) {
|
|
finalSetAttrs[prop] = importObject.npc[prop];
|
|
}
|
|
}
|
|
}
|
|
if (importObject.spells) {
|
|
importObject.spells.forEach(spell => {
|
|
const repeatingString = `repeating_spell_${generateRowID()}_`;
|
|
for (const prop in spell) {
|
|
if (spell.hasOwnProperty(prop)) {
|
|
finalSetAttrs[`${repeatingString}${prop}`] = spell[prop];
|
|
}
|
|
}
|
|
});
|
|
}
|
|
finalSetAttrs.import_data = '';
|
|
finalSetAttrs.import_data_present = 'off';
|
|
}
|
|
},
|
|
});
|
|
}
|
|
delete() {
|
|
getSetItems('importData.delete', {
|
|
collectionArray: ['import_data', 'version'],
|
|
callback: (v, finalSetAttrs) => {
|
|
const importObject = JSON.parse(v.import_data);
|
|
if (importObject.npc && !v.version) {
|
|
initialize.sheetOpened(); // NPC import will have wiped all the existing attributes
|
|
}
|
|
finalSetAttrs.import_data = '';
|
|
finalSetAttrs.import_data_present = 'off';
|
|
},
|
|
});
|
|
}
|
|
setup() {
|
|
on('change:accept_import', () => {
|
|
this.import();
|
|
});
|
|
on('change:reject_import', () => {
|
|
this.delete();
|
|
});
|
|
}
|
|
}
|