Updated migration code to better handle missing values, not throwing errors

This commit is contained in:
Peter Bjerg Lidegaard
2021-11-03 12:46:46 +01:00
parent 748d2e6fa4
commit 7cd0f48af6
4 changed files with 54 additions and 22 deletions
+27 -11
View File
@@ -19610,6 +19610,10 @@
<td class="sheet-grenade-c1">Distance ({{computed::distance}}):</td>
<td class="sheet-grenade-c2">{{distance}} feet</td>
</tr>
<tr>
<td class="sheet-grenade-c1">Test string ({{grenade}}):</td>
<td class="sheet-grenade-c2">Test computed string {{computed::grenade}} feet</td>
</tr>
</table>
</div>
</div>
@@ -31105,7 +31109,8 @@ on('clicked:grenade-miss', function (eventInfo) {
default: displayDistance = 'Invalid'; break;
}
finishRoll(results.rollId, {
distance: displayDistance
distance: displayDistance,
grenade: "computed grenade"
})
});
});
@@ -31338,26 +31343,37 @@ function migrateGems() {
let name = section[1];
let oldGemFields = fieldArray.map(s => `${s}${index}`);
let sectionName = `gem${index}`;
let gemdesc = `gemdesc${index}`;
let gemsizecut = `gemsizecut${index}`;
let gemvalue = `gemvalue${index}`;
let gemqty = `gemqty${index}`;
TAS.repeating(sectionName)
.attrs(oldGemFields)
.fields(oldGemFields)
.reduce(function (memo, row) {
if (row.S[`gemdesc${index}`] || row.S[`gemsizecut${index}`] || row.F[`gemvalue${index}`] || row.F[`gemqty`]) {
console.log(`Moving repeating gem: '${row.S[`gemdesc${index}`]}'`)
memo.push(oldGemFields.map(field => row.S[field]));
if ((row.hasOwnProperty(gemdesc) && row.S[gemdesc]) ||
(row.hasOwnProperty(gemsizecut) && row.S[gemsizecut]) ||
(row.hasOwnProperty(gemvalue) && row.F[gemvalue]) ||
(row.hasOwnProperty(gemqty) && row.F[gemqty])) {
console.log(`Moving repeating gem: '${row[gemdesc]}'`)
memo.push(oldGemFields.map(field => row[field] || ''));
removeRepeatingRow(`repeating_${sectionName}_${row.id}`);
}
return memo;
}, [], function (memo, rowSet, attrSet) {
let newValue = {};
if (attrSet.S[`gemdesc${index}`] || attrSet.S[`gemsizecut${index}`] || attrSet.F[`gemvalue${index}`] || attrSet.F[`gemqty`]) {
console.log(`Moving static gem: '${attrSet.S[`gemdesc${index}`]}'`)
if ((attrSet.hasOwnProperty(gemdesc) && attrSet.S[gemdesc]) ||
(attrSet.hasOwnProperty(gemsizecut) && attrSet.S[gemsizecut]) ||
(attrSet.hasOwnProperty(gemvalue) && attrSet.F[gemvalue]) ||
(attrSet.hasOwnProperty(gemqty) && attrSet.F[gemqty])) {
console.log(`Moving static gem: '${attrSet[gemdesc]}'`)
memo.splice(0, 0, oldGemFields.map(field => attrSet.S[field]));
newValue[`gemdesc${index}`] = '';
newValue[`gemvalue${index}`] = '';
newValue[`gemqty${index}`] = '';
newValue[`gemsizecut${index}`] = '';
memo.splice(0, 0, oldGemFields.map(field => attrSet[field]));
newValue[gemdesc] = '';
newValue[gemvalue] = '';
newValue[gemqty] = '';
newValue[gemsizecut] = '';
}
if (memo.length > 0) {
memo.splice(0, 0, [`--${name}--`, '', '', '---------']);
+4
View File
@@ -713,6 +713,10 @@
<td class="sheet-grenade-c1">Distance ({{computed::distance}}):</td>
<td class="sheet-grenade-c2">{{distance}} feet</td>
</tr>
<tr>
<td class="sheet-grenade-c1">Test string ({{grenade}}):</td>
<td class="sheet-grenade-c2">Test computed string {{computed::grenade}} feet</td>
</tr>
</table>
</div>
</div>
+2 -1
View File
@@ -1077,7 +1077,8 @@ on('clicked:grenade-miss', function (eventInfo) {
default: displayDistance = 'Invalid'; break;
}
finishRoll(results.rollId, {
distance: displayDistance
distance: displayDistance,
grenade: "computed grenade"
})
});
});
+21 -10
View File
@@ -100,26 +100,37 @@ function migrateGems() {
let name = section[1];
let oldGemFields = fieldArray.map(s => `${s}${index}`);
let sectionName = `gem${index}`;
let gemdesc = `gemdesc${index}`;
let gemsizecut = `gemsizecut${index}`;
let gemvalue = `gemvalue${index}`;
let gemqty = `gemqty${index}`;
TAS.repeating(sectionName)
.attrs(oldGemFields)
.fields(oldGemFields)
.reduce(function (memo, row) {
if (row.S[`gemdesc${index}`] || row.S[`gemsizecut${index}`] || row.F[`gemvalue${index}`] || row.F[`gemqty`]) {
console.log(`Moving repeating gem: '${row.S[`gemdesc${index}`]}'`)
memo.push(oldGemFields.map(field => row.S[field]));
if ((row.hasOwnProperty(gemdesc) && row.S[gemdesc]) ||
(row.hasOwnProperty(gemsizecut) && row.S[gemsizecut]) ||
(row.hasOwnProperty(gemvalue) && row.F[gemvalue]) ||
(row.hasOwnProperty(gemqty) && row.F[gemqty])) {
console.log(`Moving repeating gem: '${row[gemdesc]}'`)
memo.push(oldGemFields.map(field => row[field] || ''));
removeRepeatingRow(`repeating_${sectionName}_${row.id}`);
}
return memo;
}, [], function (memo, rowSet, attrSet) {
let newValue = {};
if (attrSet.S[`gemdesc${index}`] || attrSet.S[`gemsizecut${index}`] || attrSet.F[`gemvalue${index}`] || attrSet.F[`gemqty`]) {
console.log(`Moving static gem: '${attrSet.S[`gemdesc${index}`]}'`)
if ((attrSet.hasOwnProperty(gemdesc) && attrSet.S[gemdesc]) ||
(attrSet.hasOwnProperty(gemsizecut) && attrSet.S[gemsizecut]) ||
(attrSet.hasOwnProperty(gemvalue) && attrSet.F[gemvalue]) ||
(attrSet.hasOwnProperty(gemqty) && attrSet.F[gemqty])) {
console.log(`Moving static gem: '${attrSet[gemdesc]}'`)
memo.splice(0, 0, oldGemFields.map(field => attrSet.S[field]));
newValue[`gemdesc${index}`] = '';
newValue[`gemvalue${index}`] = '';
newValue[`gemqty${index}`] = '';
newValue[`gemsizecut${index}`] = '';
memo.splice(0, 0, oldGemFields.map(field => attrSet[field]));
newValue[gemdesc] = '';
newValue[gemvalue] = '';
newValue[gemqty] = '';
newValue[gemsizecut] = '';
}
if (memo.length > 0) {
memo.splice(0, 0, [`--${name}--`, '', '', '---------']);