From 22467a1f5e1f25107950fda6087f40d1a38bb866 Mon Sep 17 00:00:00 2001 From: Megastruktur Date: Sun, 18 Oct 2020 13:21:37 +0300 Subject: [PATCH] Updates - Closes GH-81 - Updates the functionality with checkboxes and new FormDataExtended api. - Fixes Traumas for FVTT 0.7.2+. - Version update to be FVTT 0.7.2+ compatible. --- CHANGELOG.txt | 5 +++ module/blades-actor-sheet.js | 6 ---- module/blades-crew-sheet.js | 8 ----- module/blades-helpers.js | 70 ------------------------------------ module/blades-item-sheet.js | 8 ----- module/blades-sheet.js | 1 + module/blades.js | 9 ++++- system.json | 2 +- templates/actor-sheet.html | 22 ++++++------ 9 files changed, 25 insertions(+), 106 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 41b5101..7f8ad86 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,3 +1,8 @@ +v2.5 +- Updates the functionality with checkboxes and new FormDataExtended api. +- Fixes Traumas for FVTT 0.7.2+. +- Version update to be FVTT 0.7.2+ compatible. + v2.4 - Fixed Rolls: roll position is shown correctly now diff --git a/module/blades-actor-sheet.js b/module/blades-actor-sheet.js index 71d938e..f78767c 100644 --- a/module/blades-actor-sheet.js +++ b/module/blades-actor-sheet.js @@ -95,12 +95,6 @@ export class BladesActorSheet extends BladesSheet { return this.object.update(formData); } - /** override */ - _getFormData(form) { - const FD = BladesHelpers.getFormDataHelper(form, this.editors); - return FD; - } - /* -------------------------------------------- */ } diff --git a/module/blades-crew-sheet.js b/module/blades-crew-sheet.js index 9d2e0de..5786832 100644 --- a/module/blades-crew-sheet.js +++ b/module/blades-crew-sheet.js @@ -101,14 +101,6 @@ export class BladesCrewSheet extends BladesSheet { }); } - /* -------------------------------------------- */ - - /** override */ - _getFormData(form) { - const FD = BladesHelpers.getFormDataHelper(form, this.editors); - return FD; - } - /* -------------------------------------------- */ /* Form Submission */ /* -------------------------------------------- */ diff --git a/module/blades-helpers.js b/module/blades-helpers.js index c2e4aa8..df6c838 100644 --- a/module/blades-helpers.js +++ b/module/blades-helpers.js @@ -20,76 +20,6 @@ export class BladesHelpers { }); } - /** - * _getFormData() override helper. - * @param {*} form - */ - static getFormDataHelper(form, editors) { - - const FD = new FormData(form); - const dtypes = {}; - const editorTargets = Object.keys(editors); - - // Always include checkboxes - for ( let el of form.elements ) { - if ( !el.name ) continue; - - // Handle Radio groups - if ( form[el.name] instanceof RadioNodeList ) { - - const inputs = Array.from(form[el.name]); - if ( inputs.every(i => i.disabled) ) FD.delete(k); - - let values = ""; - let type = "Checkboxes"; - values = inputs.map(i => i.checked ? i.value : false).filter(i => i); - - FD.set(el.name, JSON.stringify(values)); - dtypes[el.name] = 'Radio'; - } - - // Remove disabled elements - else if ( el.disabled ) FD.delete(el.name); - - // Checkboxes - else if ( el.type == "checkbox" ) { - FD.set(el.name, el.checked || false); - dtypes[el.name] = "Boolean"; - } - - // Include dataset dtype - else if ( el.dataset.dtype ) dtypes[el.name] = el.dataset.dtype; - } - - // Process editable images - for ( let img of form.querySelectorAll('img[data-edit]') ) { - if ( img.getAttribute("disabled") ) continue; - let basePath = window.location.origin+"/"; - if ( ROUTE_PREFIX ) basePath += ROUTE_PREFIX+"/"; - FD.set(img.dataset.edit, img.src.replace(basePath, "")); - } - - // Process editable divs (excluding MCE editors) - for ( let div of form.querySelectorAll('div[data-edit]') ) { - if ( div.getAttribute("disabled") ) continue; - else if ( editorTargets.includes(div.dataset.edit) ) continue; - FD.set(div.dataset.edit, div.innerHTML.trim()); - } - - // Handle MCE editors - Object.values(editors).forEach(ed => { - if ( ed.mce ) { - FD.delete(ed.mce.id); - if ( ed.changed ) FD.set(ed.target, ed.mce.getContent()); - } - }); - - // Record target data types for casting - FD._dtypes = dtypes; - return FD; - - } - /** * Add item modification if logic exists. * @param {Object} item_data diff --git a/module/blades-item-sheet.js b/module/blades-item-sheet.js index 947613e..d86c755 100644 --- a/module/blades-item-sheet.js +++ b/module/blades-item-sheet.js @@ -40,12 +40,4 @@ export class BladesItemSheet extends ItemSheet { } /* -------------------------------------------- */ - - /** override */ - _getFormData(form) { - const FD = BladesHelpers.getFormDataHelper(form, this.editors); - return FD; - } - - /* -------------------------------------------- */ } diff --git a/module/blades-sheet.js b/module/blades-sheet.js index cf34aa6..81bec18 100644 --- a/module/blades-sheet.js +++ b/module/blades-sheet.js @@ -102,6 +102,7 @@ export class BladesSheet extends ActorSheet { this.actor.rollAttributePopup(attribute_name); } + /* -------------------------------------------- */ } \ No newline at end of file diff --git a/module/blades.js b/module/blades.js index 5171714..4a0de00 100644 --- a/module/blades.js +++ b/module/blades.js @@ -73,7 +73,14 @@ Hooks.once("init", async function() { Handlebars.registerHelper('traumacounter', function(selected, options) { let html = options.fn(this); - var count = selected.length; + + var count = 0; + for (const trauma in selected) { + if (selected[trauma] === true) { + count++; + } + } + if (count > 4) count = 4; const rgx = new RegExp(' value=\"' + count + '\"'); diff --git a/system.json b/system.json index 9e5f006..66abb17 100644 --- a/system.json +++ b/system.json @@ -3,7 +3,7 @@ "title": "Blades in the Dark", "description": "Blades in the dark game system.", "version": "2.5", - "minimumCoreVersion": "0.7.0", + "minimumCoreVersion": "0.7.2", "compatibleCoreVersion": "0.7.4", "templateVersion": 1, "author": "megastruktur", diff --git a/templates/actor-sheet.html b/templates/actor-sheet.html index 712d5cf..ff6e682 100644 --- a/templates/actor-sheet.html +++ b/templates/actor-sheet.html @@ -96,7 +96,7 @@ - + {{#times_from_1 data.stress.max}} @@ -113,7 +113,7 @@ {{#times_from_1 data.trauma.max}} - + {{/times_from_1}} @@ -122,40 +122,38 @@
- {{#multiboxes data.trauma.list}} - {{/multiboxes}}