Recent Activities
This page shows what are we working on.
-
1.17.8
-
Version 1.17.8 fdc783
-
fix: correct double-backslash handling in ScriptTagEscaper JS parser
A double backslash (\) in a JS string escapes the backslash itself,
not the following character. The old check 'prevChar === \' incorrectly
treated the char after \\ as escaped, causing findClosingScriptTag to
never exit the string and escape the entire remaining HTML including
</body> and </html>.
Replace single-char prevChar check with isPrecededByOddBackslashes()
helper that counts consecutive preceding backslashes: odd = escaped,
even = not escaped. Applied to both the skip-escaped-char guard and
the string-delimiter detection. 995cee -
fix: prevent DeferJs from moving New Relic (NREUM) scripts out of head
NREUM scripts must execute synchronously in <head> before any other JS.
DeferJs was moving them to body end, breaking New Relic initialization.
- Add NREUM signatures to DeferJs ignore list (window.NREUM, NREUM.init,
NREUM.info, NREUM.loader_config)
- Remove overly broad NREUM check from AfterRenderResultPlugin that
disabled ALL optimization when any page content contained 'newrelic'
- Add position-based tests that fail without the fix and pass with it 174268 -
Fixed script parsing issue caused with New Relic (Unexpected token '<') 2ebe4d
-
fix: add TTL to optimizer cache entries in CacheManager (30-day lifetime) 4b6e50
-
fix: remove block_html tag from optimizer cache entries in CacheManager (close #90) 445044
-
-
1.17.7
-
head
-
feat(nav): style navpro dropdown level1 links d1041b
-
feat(footer): add chevron icon to collapsible titles on mobile f655e0
-
F-09: hide language switcher in nav tab on desktop 23104a
-
fix: use unique identifiers for EN cms blocks to prevent NL overwrite 406dd6
-
F-09: fix FAQ links — update /faq to correct URLs for NL and EN stores 1a0281
-
F-01: reset margin-top on block-search-nav inside mobile menu tab 1207b8
-
F-09: hide flag-title label in switcher trigger, show flag only 312898
-
F-09: add box-shadow, reset before/after decorators on language switcher dropdown 713253
-
F-09: set white background and inherit text color for language switcher dropdown 1d2004
-
F-09: fix language switcher text color and dropdown width in mobile menu tab 06add4
-
Fix: replace self-closing SVG path tags to pass Magento Coding Standard 170c92
-
F-09: Fallback href for store switcher when easyflags is disabled 4e9fc6
-
F-09: Add language switcher dropdown above search in mobile menu tab 7dd683
-
docs: mark F-06, F-07, F-08 as done 4642b1
-
F-06/F-07: Account & Contact tab redesign — icons, colors, logged-in buttons
- Replace Font Awesome icons with Bootstrap Icons inline SVG in all 4 CMS blocks
- Add logged-in account links: Mijn Account, Mijn Bestellingen, Mijn Adressen
- Move Klantenservice/FAQ into both logged-in and logged-out KO blocks
- Account tab: dark background #2B2F36, green (#339900) Sign In, red (#DC3545) Sign Out
- Contact tab: white background, green (#39A700) buttons
- Buttons: min-height 52px, SVG icon column 64px wide, align-items stretch
- Remove width/height attrs from SVG elements (CSS controls sizing)
- Uncomment cms_block.xml entries for header_cms_links and header_contacts_block
- Re-enable Font Awesome module (config.xml) for fallback compatibility
- F-01: mark search in mobile menu as done 37d792
-
-
3.0.0
-
Prepare for 3.0 d68c13
-
-
1.14.10
-
1.14.9
-
1.14.23
-
Version 1.14.23 13f6c8
-
fix: mock HttpResponse instead of ResponseInterface in CaptchaTest 106771
-
fix: remove duplicate ResponseInterface use statement in CaptchaTest 6ef280
-
test: update CaptchaTest for injected ResponseInterface
Observer now receives ResponseInterface via constructor instead of
calling controller->getResponse(). Update setUp(), makeObserver(),
and testAjaxBlockWritesJsonErrorToResponse accordingly. ada7aa -
fix: inject ResponseInterface instead of controller->getResponse()
SaveAbstract implements HttpPostActionInterface directly (no AbstractAction),
so its Interceptor has no getResponse(). Use injected ResponseInterface
singleton instead — same object, no dependency on controller type. ff751a -
feat: add Swissup reCAPTCHA protection for Askit question form
- config.xml: enable protect_swissup_askit_new_question_form by default
- system/recaptcha.xml: expose toggle in swissup_recaptcha admin config
Swissup_Recaptcha module uses its own captcha factory plugin to replace
Magento image captcha with Recaptcha model. isRequired() checks
swissup_recaptcha/general/protect_{formId} — this was missing for askit,
causing reCAPTCHA token to render but never be validated (spam bypass). e861b6 -
fix: write JSON error to response before FLAG_NO_DISPATCH for AJAX captcha block 92bd7c
-
test: add unit tests for Observer/Captcha reCAPTCHA and image CAPTCHA blocking logic 67b95c
-
fix: set FLAG_NO_DISPATCH to block controller execution on reCAPTCHA failure for AJAX requests d70979
-
fix: block AJAX form submission when reCAPTCHA validation fails 0739e0
-
-
1.14.22
-
1.0.21
-
1.0.20