ZK 8.5.0 release notes

Released on Oct. 31, 2017


ZK 8.5 is a major release that takes the best of ZK 8 and continues to push the innovation envelope. A major improvement on MVVM data binding at the client side enlivened pure HTML content with minimal effort. The Fragment component, in combination with Service workers, allows caching and managing offline user data and easier Progressive Web Apps (PWAs) building.

Other exciting features include: 24 freshly baked modern themes, built-in Websocket, splitlayout component, smooth frozen component and more.




Getting Simpler and Richer

What's New

  • New Features
    • ZK-550 - Server Push: add a Web Socket based implementation
    • ZK-3315 - allow JS overrides for onResponseReady callback
    • ZK-3336 - tbeditor version update
    • ZK-3506 - KeyEvent supports to detect the command key pressed
    • ZK-3507 - Shift + up key can deselect listitems
    • ZK-3512 - preserve comments in .src.js files
    • ZK-3520 - Update tooltip JAVA API
    • ZK-3525 - implement frozen alternative
    • ZK-3537 - Improve client side error handling/logging
    • ZK-3636 - Added simple support for stacked font awesome icons
    • ZK-3648 - Configure displayed rows for grids
    • ZK-3677 - Support source maps for wpd files
    • ZK-3678 - Provide a switch to enable/disable iscroll in container
    • ZK-3681 - Add a new Fragment component
    • ZK-3683 - Add a new Splitlayout component
    • ZK-3684 - BeanValidator allows to set a self-defined message key
    • ZK-3689 - Using org.zkoss.zk.ui.versionInfo.enabled should also make WPDExtendlet hide version to client
    • ZK-3690 - Size by n-rows support for all MeshWidgets
    • ZK-3697 - rename "splitpane" to "splitlayout"
    • ZK-3709 - Update Engine: add a WebSocket based implementation
    • ZK-3711 - Support HTML5 history API
    • ZK-3720 - Provide a new theme as the default theme since ZK 8.5
    • ZK-3780 - Fragment supports using a custom element

  • Bugs fixed
    • ZK-3286 - Labels of days can't be clicked with safari
    • ZK-3303 - Tree selection highlighting not updated on a closed node
    • ZK-3309 - Combobox doesn't update value before triggering onOpen
    • ZK-3313 - Listbox with min hflex cannot display empty message
    • ZK-3320 - Nested @ref bindings in Shadow elements with same variable name cause Stack overflow
    • ZK-3323 - Grid style cause white space in combobox popup
    • ZK-3328 - jq.alert default "OK" button doesn't use internationalized messages
    • ZK-3345 - Frozen scroll performance
    • ZK-3516 - horizontal splitter resizing incorrectly
    • ZK-3554 - Tooltip/Popup/Context ignoring usage errors
    • ZK-3570 - NPE when removing listmodel element
    • ZK-3572 - Listbox uses deprecated setPreloadSize instead of library property org.zkoss.zul.listbox.preloadSize
    • ZK-3574 - Chosenbox doesn't serialize option uuids
    • ZK-3578 - Components disappear after redrawing in Safari
    • ZK-3580 - IncompatibleClassChangeError when form object is null and its declared type is an interface
    • ZK-3582 - radio render tabindex on a span, then users need to press 1 more redudant tab to put the focus on the radio
    • ZK-3583 - hovering a disabled button closes a popup immediately
    • ZK-3584 - Https helper functions return wrong values if server name equals application context name
    • ZK-3585 - Programmatic changes to form property are not notified
    • ZK-3600 - Wrong size of grid scrollbar having first column invisible
    • ZK-3604 - hiding the first column causes inconsitent column widths
    • ZK-3606 - data-scrollable doesn't work on top page level components
    • ZK-3607 - Combobox sends one character missing value in onChanging event to a server in firefox
    • ZK-3608 - Click in scrolled navbar cause up jump after ZK-3230 in IE
    • ZK-3614 - Chosenbox: getOptIdByElement fails if the desktop of the chosenbox is null
    • ZK-3617 - XSD duplicate definitions
    • ZK-3618 - onClick listener doesn't work on iPad
    • ZK-3620 - URLEncoder with parameter breaks dropupload workflow
    • ZK-3626 - Scrollable menubar infinite loop in zoomed browser
    • ZK-3631 - navbar fires onSelect event when triggered from server
    • ZK-3637 - Client side @command and @global-command should work with options "duplicateIgnore" and "repeatIgnore"
    • ZK-3642 - ZK can't work with Java unified expression language standard implementation
    • ZK-3643 - JS error when resizing after adding column and invalidate
    • ZK-3645 - columns losing widths after resize
    • ZK-3649 - Spinner doesn't send onChanging events following ZK-3530
    • ZK-3650 - Spinner missing onChanging if _lastChg == null
    • ZK-3653 - Shadow elements nested parameter leak
    • ZK-3655 - Concurrency issue in WpdExtendlet
    • ZK-3659 - global <max-upload-size> is ignored
    • ZK-3660 - MeshWidget auto col sizing only working once
    • ZK-3661 - typo in popup.js after ZK-3244
    • ZK-3664 - A combobox popup in a Grid/Listbox produces extra height
    • ZK-3676 - notifications not closing on touch devices
    • ZK-3680 - Combowigdets closed by scrolling off view don't send an openevent back to the server
    • ZK-3682 - combobox shows its popup out of the visible range
    • ZK-3685 - Datebox shows its popup out of the visible range
    • ZK-3686 - Timebox and Timepicker show their popup out of visible range
    • ZK-3687 - loadScript loads file multiple times unnecessarily
    • ZK-3692 - CometServerPush synchronization issue
    • ZK-3693 - NPE + IndexOutOfBoundsException when replacing a listitem
    • ZK-3695 - jumpy tabbox accordion animation
    • ZK-3696 - Grid doesn't render more than 3 Auxhead components
    • ZK-3699 - xhtml script setSrc() doesn't convert to a valid URL to a browser
    • ZK-3700 - detach a script component doesn't remove its DOM element
    • ZK-3701 - set Script's src produce a new <script> instead of changing the existing one
    • ZK-3707 - splitlayout splitter cursor icon shows only one direction
    • ZK-3708 - splitlayout splitter uses inline style makes CSS customization harder
    • ZK-3713 - Listbox template and shadow missing value in first iteration
    • ZK-3714 - Sessions.getCurrent() returns null during WebSocket AU
    • ZK-3715 - URL encoding in Websocket AU requests causes NPE -> UiException
    • ZK-3717 - onBlur event missing on IOS Datebox
    • ZK-3721 - avoid 2 separate au requests for onBookmarkChange onHistoryPopState
    • ZK-3722 - Grid Row childAttributes calculation ignores colspan and rowspan defined on Cell
    • ZK-3723 - Combobox and Bandbox ignore type="password"
    • ZK-3724 - jquery issue - Ajax: Mitigate possible XSS vulnerability
    • ZK-3725 - Interrupting Executions.activate() stops Server Push
    • ZK-3728 - <a> renders a stacked font awesome icon with incorrect alignment
    • ZK-3731 - native <a> tag link suppresed inside a zk component with click listener
    • ZK-3732 - add and clear a ListModel causes IndexOutOfBoundsException
    • ZK-3737 - inconsistent header borders between tree/grid/listbox
    • ZK-3740 - Websocket implementation fails on Tomcat 8/8.5
    • ZK-3741 - Websocket implementation causing issues with PE
    • ZK-3742 - Download packages are missing the closure-compiler.jar
    • ZK-3744 - error when enabling websocket serverpush via au-event
    • ZK-3746 - frozen issues in grid with rowspan
    • ZK-3750 - Following zk-3722, hidden cell / row style is incorrect
    • ZK-3754 - Horizontal navbar unexpected resize
    • ZK-3756 - Error: websocket + include mode="defer"
    • ZK-3757 - websocket Tomcat logs errors on refresh
    • ZK-3758 - Row height changed after column sets visibility
    • ZK-3759 - Disabled Menu can be clicked in mobile devices
    • ZK-3761 - Websocket error when changing the current theme
    • ZK-3772 - splitlayout shows incorrect cursor for horizontal splitter
    • ZK-3773 - Message box button styles in "classic" themes
    • ZK-3777 - slider doesn't show custom slidertext initially
    • ZK-3779 - setWidth(null) causes a JavaScript error
    • ZK-3781 - new frozen horizontal scroll style issues
    • ZK-3783 - panel/window close button markup/style inconsistent
    • ZK-3784 - Paging indicator overlapped buttons if the width is too small
    • ZK-3786 - Selected item in Listbox did not scrolled into view automatically on Edge

  • Upgrade Notes
    • The default theme is replaced with Iceblue. Breeze is packaged as an external theme.
    • The support of Internet Explorer 8 is dropped. The minimum support version of Internet Explorer is 9.
    • The input box of Timebox and Datebox are now readonly on mobile devices.