eForm Editor — Changelog
Back to Editor
July 9, 2026 v1.6.1
  • Fix
    Page Scale: background image stays tiny on some imported eForms
    Some gen-type eForms store a small initial width (e.g. 160 px) in the background image's inline style even though a CSS class makes it render at full width (e.g. 750 px). The scaler was reading the inline style.width (160 px) instead of the actual rendered width, so the background image scaled from the wrong base while all input coordinates scaled from the correct 750 px base. Fixed by using img.offsetWidth (actual rendered width) and writing the new value back via setProperty('width', …, 'important') to override any class-level rule.
  • Fix
    Page Scale: DoNotPrint buttons shift beside the scaled form
    The DoNotPrint div (Subject / Submit / Print controls) is absolutely positioned in many eForms. The scaler was moving it proportionally with everything else, causing it to appear visually beside the shrunken form at lower scale values. These controls are not printed or faxed, so their screen position should not change with the scale. Fixed by skipping any element that has or inherits the DoNotPrint class via closest().
  • Fix
    DoNotPrint buttons visible in editor on some eForms
    Some eForms position the #BottomButtons div (Subject / Submit / Print) to the right or at a fixed coordinate that made it appear in the editor canvas even without scaling. Since these buttons are not functional in the editor (Oscar's submit/print actions require the full Oscar runtime), #BottomButtons is now hidden via the injected data-editor-only stylesheet and is fully restored in the exported eForm.
July 9, 2026 v1.6.0
  • Feature
    Page Scale slider
    A Page Scale slider (50 – 200%, step 5%) has been added to the Settings panel below the Load Page button. Dragging it proportionally rescales the background page image and every absolutely-positioned input element (left, top, width, height, font-size). The editor iframe grows or shrinks to match the new page width. The label shows the current percentage and resulting pixel width. Scale resets to 100% whenever a new eForm is loaded. The scaled values are baked into the exported HTML, so a form scaled to 140% exports at 1050 px wide — useful when a wide PDF was imported at 750 px and the text became too small for faxing.
June 25, 2026 v1.5.5
  • Fix
    Xbox "Prechecked" not persisting after export
    Two root causes: (1) The in-form jQuery .Xbox click handler toggled the live value before the property modal opened, corrupting what the modal read as the current prechecked state. Fixed with a capture-phase event listener that intercepts Xbox clicks and opens the modal before jQuery fires. (2) Apply was only setting element.value (runtime state), not element.setAttribute('value', 'X'), so the HTML attribute was never updated and the pre-check was lost on export. Both the read (now uses getAttribute) and write (now uses setAttribute / removeAttribute) are corrected.
  • Fix
    Xbox shows a red artifact after opening its property modal
    The property modal's Apply was setting element.style.background = 'transparent' as an inline style on the Xbox input. With a transparent background the PDF page image shows through the input, revealing any coloured form element (e.g. a red checkbox outline) underneath. The background option is now hidden for Xbox elements in the modal and is no longer applied on save — the .Xbox print-media CSS already handles transparency for export.

  • Feature
    Gender pre-check for Xbox elements
    The property modal now shows a Gender dropdown (Male / Female / None) for Xbox elements, mirroring the existing checkbox behaviour. Setting a gender assigns the element id and name to the chosen value and adds the only-one-gender class, so the existing checkGender() export script auto-ticks the Xbox when the patient's sex matches. Clearing the gender removes the class.
June 16, 2026 v1.5.4
  • Fix
    Image paths not converted on export for special-character folder names
    The export regex required a leading /, but the iframe uses relative paths. Also, folder names with & were HTML-encoded in innerHTML, breaking the fallback replacement. Regex now handles an optional leading slash and the folder path is HTML-escaped before comparison.
  • Fix
    Classic Signature invisible after re-import
    Export strips style and class from signatureDisplay for wkhtmltopdf, leaving it with zero dimensions on re-import. Position and size are now recovered from the signatureControl.initialize() call in <head> and restored as data-sig-* attributes.
  • Fix
    Classic Signature artifacts surviving after swap
    Swapping a Classic Signature to another type left signatureInput and signatureControl.jsp scripts in the export. The pipeline's cleanup path now removes these when no signatureDisplay is present.
  • Fix
    loadSig() persisting in body onload after Canvas → Pro swap
    Swapping Canvas to Pro left loadSig() in the body onload, causing a JS error that blocked SignForm(). The addSignatureCanvas() cleanup path now strips loadSig() from body onload when no Canvas elements remain.
  • Fix
    Arrow keys not working on signature elements
    All three signature types (Pro, Classic, Canvas) were missing from the isInputField check in the mousedown handler, so clicking them never registered in the InputList and arrow keys had no effect. Also fixed a secondary issue where clicking the <img> inside a Pro Signature triggered new-element creation.
  • Fix
    Duplicate element IDs when placing fields in an existing eForm
    inputsCreated was being set to a raw DOM element count, causing collisions when fields already existed. It now scans all element IDs across all pages and starts at max numeric suffix + 1.

  • Feature
    Properties modal for all three signature types
    Clicking any signature in the editor opens the properties modal with free-resize width/height inputs, a "Maintain aspect ratio" checkbox (checked by default), and swap buttons for the other two types. All six swap combinations are supported.
  • Feature
    Classic Signature editor placeholder
    The signatureDisplay div now shows "Classic Signature" centered inside it while in the editor via a CSS ::before pseudo-element. Stripped automatically on export.
June 12, 2026 v1.5.3
  • Fix
    Auto-Map mapping wrong tag for fields with numeric suffixes
    Fields like Cell_of_Patient_8 were sending the full name including the _inputCount suffix to the mapping API, causing wrong matches. The editor now sends the clean data-field-name attribute as the lookup key.

  • Feature
    Auto-Map via live API
    The Auto-Map button now calls /api/suggest at click-time instead of relying on attributes baked in at PDF upload. Mapping logic changes no longer require re-uploading a PDF.
  • Feature
    Pro Signature auto-injection on Auto-Map
    Fields with "Signature" in the name are automatically converted to a CanvasProSignature div, including the required current_user_id hidden input.
  • Feature
    Area code field suppression
    Fields with areacode anywhere in the name are skipped by Auto-Map — no tag assigned, no static value applied.
  • Feature
    Country static pre-fill
    Fields matching country, country_of_residence, or country_of_birth are pre-filled with Canada on Auto-Map.

Field name pattern Maps to
province__state, prov_state, state_or_province province
cell_of_patient (and similar _of_patient variants) cell
patient_first patient_namef
patient_last patient_namel
referring_clinic clinic_name
country, country_of_residence, country_of_birth static: "Canada"
Any field containing areacode suppressed
March 1, 2026 v1.5.0
  • Fix
    Measurement field ID attached to non-measurement elements on import
    The measurement field ID format (m$type#field) was being applied to unrelated elements on import. Fixed so the measurement ID is only applied to the intended target field.
January 20, 2026 v1.0.0
  • Feature
    Initial release
    PDF-to-eForm editor with drag-and-drop field placement, oscarDB tag mapping, multi-page support, and ZIP export for Oscar/Juno.