- add default type text/javascript of none is defined to correct function updateAllowedElementScript #37
Thank you @donatasben
- add default type
text/javascript
if nodata-type
is defined. #33
- Trigger CustomEvents when banner and options are opened/closed by @teppokoivula in #32
- Updated dependencies to use current rollup version and require at least node v18 for development
- Made the textareas type flexible by @the-ge in #27
- Context free formatter by @MarcoKalin in #28
- Support regular YouTube URL variation with www prefix by @teppokoivula in #30
- bumped version number again, as there was a mismatch with the git tag
- Added: Config option to activate / deactivate PrivacyWire
- Merged PR #19 and #22
- Changed: Switched
innerText
totextContent
for accuracy inupdateAllowedElementScript()
- Changed: form layout and fields definitions syntax
- Changed: Switched
- Updated dependencies
- Added: Config option and feature to detect bots (per User-agent) and hide the banner to them
- Fixed: Bug, when multiple page()->render() methods are called. Now PrivacyWire only loads on the main call of page()->render()
- Added: Config option to replace the original consent blueprint template (located in site/modules/PrivacyWire/PrivacyWireConsentBlueprint.php) with an alternative consent blueprint
- Changed: Reduced priority of Page::render hook to allow easier override of settings
- Added: Add class to body "has-privacywire-window-opened" while PrivacyWire windows are visible
- Added: Function to re-handle external button trigger via
window.PrivacyWire.reHandleExternalButtons()
- Fixed: Legacy IE11 Bug with Array.from Polyfill (Also for not-inline mode)
- Fixed: Legacy Support for IE11 with Array.from Polyfill
- Fixed: removed console.log() debugger from DNT-method
- Changed: Order of Buttons in Options window
- Changed: Removed ProCache Output method as there is no real improvement over enabling JS minification in the ProCache settings.
- Changed: Load modern ES6 version of JavaScript via
<script type="module" ...>
and legacy version of Javascript via<script nomodule ...>
to support both modern and legacy browsers with the best possible result. - Fixed: The Imprint and Privacy links markup is now equal between banner and option view.
- Fixed: After upgrading from 0.4.5 (and below) to 1.0 (and up) require new consent from the user, as syntax has changed.
- Changed: Return value of PrivacyWire methods for better extensibility
- Added: method
getPrivacyWireCore
which returns the path and url to the PrivacyWire Core JS file - Added: more comments to explain how you can bundle the PrivacyWire Core JS with your other scripts
Major Refactoring. Rewritten both the JS and PHP parts.
- Added: Config option for output mode (regular script tag, ProCache script tag, inline script)
- Added: Config option to choose elements which require consent by class
require-consent
instead of data-attribute (better performance). WARNING: Enabling this needs adding the css classrequire-consent
to every element (also script tags!) you want to be processed by PrivacyWire - Added: Config option to choose ES6 JavaScript instead of a Babel transpiled version (Faster and smaller but no Internet Explorer support)
- Changed: Module methods refactored. Hookable methods changed. Take a look into PrivacyWire.module to see the difference
- Added: Possibility to manually refresh detection of elements (e.g. after loading content via AJAX). Just call
window.PrivacyWire.refresh();
after adding new content to the DOM which could require consent - Changed: Split markup from Banner and Consent Blueprint in two different files for better separation of concerns and easier hook management.
- Added: JS function to manually trigger the update of DOM elements:
window.updatePrivacyWireElements
- Added methods: getInlineJavaScriptTag & getPathToCssFile
- Added: CSS file instead of SCSS for improved manual rendering options
- Fixed: Textformatter support for TextformatterVideoEmbed now also works for YouTube no-cookie mode
- Fixed: Bug during cloning allowed script elements after giving consent
- Changed: Optimized "priw_updateAllowedElement"
- Fixed: Bug during cloning allowed elements after giving consent
- Added: Textformatter support for TextformatterVideoEmbed (Thank you @teppokoivula !)
- Fixed: Bug with ask consent window when cookies get accepted via the main banner
- Added: Config options to show alternative headline and text elements within the options banner
- Added: Config option to prevent automatic rendering.
- Added: New methods renderHeadContent() and renderBodyContent().
- Fixed: sanitize alternative banner template path to ignore leading slash
- Added: Config option to replace the original banner template (located in site/modules/PrivacyWire/PrivacyWireBanner.php) with an alternative banner template
- Added: hookable method to get JS file
- Added: hookable method to get inline JS
- Added: hookable method to get (alternative) banner template file
- Changed: Optimized CSS (even smaller - 458 bytes instead of 554 bytes)
- Changed: Re-arranged the config options to provide better structure
- Fixed: Bug with "Accept all" Button to load elements
- Added: Config option to choose the banner header tag between
<header>
and<div>
- Added: Config option within Textformatter to choose open and close tag
- Added Feature: When the user hasn't given consent to a specific cookie category, show an alternative element with asking for consent. To enable this feature, add following data-attribute to the element
data-ask-consent="1"
. In the module configuration you can choose, what text should be in that window. Example:<iframe src="" data-src="https://www.example.com/" data-category="marketing" data-ask-consent="1" frameborder="0" height="400" width="400"></iframe>
- Fixed: Updates more attributes of elements (srcset, height, width) - important for responsive images or iFrames
- Added: Config option to show an "Accept All" instead of "Toggle" Button within the "Choose Cookies" window.
- Fixed: Changing version number now works as expected
- Fixed: Typo in consent of external_media
- Added: Config option for message timeout
- Added: Config option to output unstyled (no css) PrivacyWire
- Added: New cookie category "functional"
- Changed: Major rewrite of PrivacyWire.js -> now around half the size (main reason was babel with usage of js classes (ES6))
- Added: New possibility to add a custom js function name which is triggered after saving options
- Added: Config option for using ProCache minification or not
- Fixed: Error during uninstall
- Changed: Script detection now uses the data-category attribute instead of type="optin" (W3C validation)
- Fixed: Multi-lang privacy & imprint link
- Fixed: CSS-Debugging for hiding unused buttons, added ProCache support for the JavaScript tag
- Added: Multi-language support included completely (also in TextFormatter).
- Added: Possibility to async load other assets (e.g.
<img type="optin" data-category="marketing" data-src="https://via.placeholder.com/300x300">
)
- Added: Possibility to add an imprint link to the banner
- Added: Multi-language support for module config (still in development)
- First release
- Early development state (ALPHA)