ZingGrid Changelog

v1.2.3-0

(10/28/2020)

Features

-Fixed column type image problems

v1.2.2

(08/28/2020)

Features

  • Added align property to <zing-grid>
  • Updated code for align in <zg-column>
  • Added following attributes to <zing-grid> and <zg-column> to match similiar attributes for cellheaderx [celltooltipaction] [celltooltipposition] [celltooltiprenderer] [celltooltiptemplate] [celltooltiptype]
  • Added following attributes on <zing-grid> and <zg-column> to delay displaying the tooltip on hover. [celltooltipdelay] [headertooltipdelay]
  • Added following attributes on <zing-grid> and <zg-column> to set icon for tooltip trigger [celltooltipicon] [headertooltipicon]
  • Added column type info Added keyboard navigation for tooltip display
  • Added the following attributes to both <zing-grid> and <zg-column>
  • [headerTooltipAction] Sets the execution method of custom 'icon' type tooltips to either activate on hover or click
  • [headerTooltipIconPosition] Sets the tooltip icon position for the tooltip icon in the header cells
  • [headerTooltipPosition] Sets the tooltipposition for the header cell
  • [headerTooltipRenderer] Gets the name of the user's custom render function, on window, to use the function's return value as the tooltip content.
  • [headerTooltipTemplate] Points to an external template element to be used as the template for the header tooltip
  • [headerTooltipTrigger] Sets what part of the header triggers the tooltip. If set to 'icon', an info icon is added to the header
  • [headerTooltipType] Sets the style to use for the tooltips. Uses the default style by default. Can set to system to match the tooltips used on icons throughout zinggrid
  • Added to <zg-column>: [headerTooltipText] Sets the tooltip string for the header cell of the column. Can pass this value to renderer or template
  • Added window event zinggridavailable that fires when the library is loaded
  • Added in double click resizing
  • Added in <zing-grid> attribute [columnresizablepersistent] andattribute[resizablepersistent]`

Bug Fixes

  • Infinite Scroll Bug Fixes
  • Fixed several issues with column resizing
  • Changed <zg-nodata> to <zg-no-data>
  • Fixed bug with custom templates
  • Fixed issue with bogus tokens in URLs Fixed issue with server side sorting on load
  • Fixed dynamic adding and removing of <zg-selector-mask>
  • Fixed multiple cell/single row select and copy bug
  • Fix issue with editortemplate being set on a single column and forcing modal edit.
  • Fixed bug with menuitems not being keyboard navigable in static menu
  • Fixed bug with internal controls column width size
  • Fixed issue with pageindex attribute on <zg-button>
  • Made changes to the Date library to handle safari's processing
  • Allow resize of columns while row editing
  • Fixed bug with forcing resize handlers on system column types
  • Fixed bug with rowselector being enabled twice
  • Fixed issue with rowselector value being updated
  • Fixed bug with quick back to back resize
  • Fixed various alignment issues with column tooltips
  • Fixed bug with edit and search overlap
  • Bug fixes for initial tooltip release

v1.2.2-0

(08/27/2020)
  • Allow resize of columns while row editing
  • Fixed bug with forcing resize handlers on system column types
  • Fixed bug with rowselector being enabled twice
  • Fixed issue with rowselector value being updated

v1.2.1

(06/11/2020)

Release Information

  • Major Performance Enhancement Changes (tested at 1k/10k rows)
  • Added updateRowOptions as an option for <zgparam> as a shortcut for updateOptions: {row: ...
  • Added updateCellOptions as an option for <zgparam> as a shortcut for updateOptions: {cell: ... If serverErrorPath is set, but serverErrorMessage is not, serverErrorMessage defaults to [[serverMessage]]
  • Added typeurlsrc as an attribute to <zg-column>
  • Allow typeurlsrc to have tokens
  • Updated edit templates to allow <select> elements to have token values set: <select name="storyType" value="[[record.story_type]]">
  • Updated typeselectoptions attribute to allow the first entry to be set with value '' and name to be displayed for the blank entry: typeselectoptions='[{"name": "ALL", "value": ""}, 123, 456, 789]'
  • Added in card object to new ZingGrid config syntax Fixed bugs with typebuttonicon, typebuttonlabel, typebuttondisabled being updated on change
  • Added typedatefromnow attribute to date columns to display date as 'ago/in' times
  • Added F token to date format to display formatted columns in ago/in times
  • Added zgRef.formatDate and zgRef.fromNow API methods to use in renderers
  • Added ZingGrid.formatDate and ZingGrid.fromNow API methods
  • Added textarea to be able to use with tokens in add/edit forms
  • Added [columnwidth] attribute to <zinggrid> to set the column width for every column
  • Added typenumbermaxdecimals attribute to number columns to indicate the maximum number of decimals to display
  • Added typenumberdecimals attribute to number columns to indicate the exact number of decimals to display
  • Added color editor to save as original type
  • Added typeselectoptions to accept name/value pairs
  • Added gravatar celltype Added support for array based data in columns
  • Added arrayindex attribute to indicate which property of an array object to use after the slice: In the case of status[0].title, the arrayindex would be set to title.
  • Added arrayslice attribute to indicate which index or indexes to render to the column
  • Added support for direct array access in <zg-column> index attribute: status.0 or status.1
  • Added support for last item in an array access in <zg-column>index` attribute: status.1
  • Added details renderer to view more details on column click
  • Added detailsrenderer attribute to <zg-column>
  • Added detailstemplate attribute to <zg-column>
  • Added render support for \n in string
  • Updated button column type to have the following attributes: typebuttonlabel, typebuttonicon, typebuttondisabled, typebuttonurl, typebuttonhandler
  • Update first four attributes above to accept values in token format: [[record.label]]
  • Added in card attribute to <zinggrid> which will take an object with the card settings

Bug Fixes

  • Allow server error messages to be set on read requests
  • Fixed bug with serverErrorMessage being set to [[serverMessage]]
  • Fixed bug with setCardTemplate to not require a card to already exist before using
  • Fixed bug with firebase collection and deleting rows
  • Fixed bug when setting columns after load
  • Changed removeRow and updateRow to take a row index as parameter
  • Added removeRecord and updateRecord that takes a row ID as parameter
  • Allow nodata text to display when no src or data is set
  • Fixed nodata dynamic change Fixed bugs with modifying cell edit status after load
  • Modified detailsRenderer to be able to return a string that will be the contents of the dialog
  • Modified renderer to be able to return a string that will be the contents of the cell
  • Fixed bug with arrayslice Fixed minor spanish issues in es.js
  • Fixed bug with toggle name/value pairs
  • Fixed bug with celleditor being disabled
  • Fixed loadByPage issues with startAtValue and paging
  • Fixed loadByPage issues with inserts that return the full dataset
  • Dynamically update <zg-column> typeelementattributename and typeelementtagname attributes
  • Dynamically update <zg-column> typeiframeratio attribute
  • Fixes with iframe width render
  • Dynamically update <zg-column>, typeimagealt and typeimagemask attributes
  • Dynamically update <zg-column> typeurltext and typeurlicon attributes
  • Dynamically update <zginput> type attribute
  • Dynamically update <zginput> action attribute
  • Added card header when row selector is turned on, but edit controls are not
  • Fixed issues with insert record showing up in context menu when it should not
  • Fixed issue with insert record here showing up in context menu when it should not
  • Fixed typeselectoptions to be flexible in data received in array format
  • Fixed setNoData() issues
  • Fixed dynamic update of typenumberformatting
  • Fixed sorting of checkboxes
  • Fixed sorting of mixed data types
  • Fixed dynamic update of typecheckboxlabel
  • Fixed typeRadioOptions with object instansitation
  • Fixed filter with comma separated items
  • Updated local updates to display update message
  • Updated registerNamespace to allow for an unnamed default
  • Fixed issues with server side sorting Small performance fixes
  • Fixed bug with editor when index is in array form
  • Fixed bug with editor when index is in negative array form
  • Fixed bug with details renderer when arrayslice is used
  • Fixed bug with server sorter
  • Fixed big bug with nodata and then loading data
  • Fixed bug with cell:render event
  • Fixed bug with <zgsearch> losing focus on click
  • Fixed <zg-pager> Border Issue
  • Fixed the pager's borderbottom variable to include the missing generic zgpagerborder value as its fallback, to match the other borderside values.
  • Namespaced boxshadow CSS variableChanged boxshadow to a namespaced zgboxshadow to better help avoid parentscope bleed,and to bring it in line with the other grid variables.
  • Fixed issue with header width after removing all rows
  • Update value attribute on <zgcell> if value is updated Display no label on button if index is undefined
  • Allow filterColumn API method to match on value or text Fixed bug with typeselectoptions not updating the filter
  • Updated server side sort to work with URL tokens
  • Fixed bug with sort attribute not dynamically updating
  • Updated range column type to display as a number
  • Fixed bug with range validation Fixed bug with contextmenu "Insert Here" option
  • Fixed bug with rownumber not presenting in card header
  • Fixed bug with selector column not being displayed with editorcontrols turned on
  • Fixed bug with editor column not being displayed with selectorcontrol turned on
  • Fixed discrepencies with numbers attributes and being set via attribute or property
  • Fixed bugs with server side sorting/searching and refreshing
  • Fixed bug between staticmenu and selector
  • Cleaned up data returned in grid:select event
  • Fixed bug with removing grid with custom buttons
  • Fixed issues with user's custom <zg-menu>
  • Removed dead code Fixed issues with changing index on <zg-column>
  • Fixed header issues with details dialog
  • Fixed display bugs with details dialog
  • Fixed issues with server side sorting on load
  • Fixed dynamic updating of cellbreak on <zg-column>
  • Fixed bug with cellbreak not being honored on <zg-column>
  • Fixed bug with clearing typeselectoptions attribute
  • Fixed bug with setting sorter attribute to invalid method
  • Fixed bug with removing sort attribute from <zg-column>
  • Fixed bug with copying null data
  • Fixed expected behavior for [confirmDelete] when set to false in js
  • Add ZGCaption when [rowSelector] enabledAdding the caption when feature is enables allows access to button to remove selected rows.

v1.2.0

(03/13/2020)

Features

  • Change <zgparam> buildRestUrl to restmode
  • Added celleditor attribute to turn off cell editing when editor or editorcontrols are set When celleditor is set to disabled and editor is turned on, double click edits the row
  • Added XHTTPMethodOverride header when sending POSTs for PUT, DELETE, and PATCH Modified before CRUD events to allow manipulation of data
  • Modified validator to allow manipulation of data
  • Added ability to connect to Firebase SDK subscription
  • Added <zgparam> name subscription to set to true
  • Added ability to cancel certain actions via before event handlers. Use event.preventDefault:
    • data:record:beforedelete
    • data:record:beforechange
    • data:cell:beforechange
    • data:record:beforeinsert
  • Added display message when no records are found in the grid
    • To customize message, added [nodata] attribute on <zinggrid>
    • To customize message, added <zgnodata> element that can be created under <zinggrid>
  • Return the value of the id field on <zgcolumn index="recordkey"></zgcolumn> when data is array of objects (previously only worked on named objects)
  • Added <zgparam> options for setting server error message
    • serverErrorMessage Sets the error message to display for the server error
    • serverErrorPath Sets the path to the error message in the case of a JSON response
  • Added token [[serverMessage]] to place returned message from the server in the error message
  • Added numbertypeformatter attribute to turn off auto formatting
  • Added validators
    • date
    • url
    • email
    • range
  • Added support for custom validators
  • Added ZingGrid.registerValidator API method
  • Added built in Number Validator
  • Added validation error class to ZGDialog and ZGEditorRow
  • Added validation error message to ZGDialog and ZGStatus
  • Added <zinggrid> attribute validationerrormessage
  • <zgparam> New Options
    • buildRestUrl True by default. Set to false to prevent REST URLs from being constructed
    • urlSuffix If using REST URLs, set a suffix to be appended to the URL. Usually an extension or a slash
  • <zgparam> Shortcuts
    • createSrc
    • readSrc
    • updateRowSrc
    • updateCellSrc
    • deleteSrc
    • createMethod
    • readMethod
    • updateRowMethod
    • updateCellMethod
    • deleteMethod
  • Added record token parsing within a URL Added django as an adapter option
  • Added support for required columns for editing
  • Added [required] attribute for <zgcolumn>
  • Added [validationrequiredmessage] for <zgcolumn>
  • Added [validationrequiredmessage] for <zinggrid>

Notable Fixes

  • Fixed issue with src being set on <zgdata> or in <zgparam>
  • Fixed issues with 204 responses on PUT, PATCH, and DELETE
  • Fixed the 'multicell' selector in card layout from overlapping the cell content below it. Changed the location of the selector checkbox inside the card cell to the righthand edge.
  • Added fullwidth to the <cite> element inside <zgsource> shadowDOM to fill the horizontal space. zgsourcetextalign now works as intended.
  • Fixed issues with zgstatus closing
  • Fixed bug where data is added to grid when server returns error Fixed bug where editor mode is turned on when editorcontrols is set to "false" or "disabled"
  • Fixes for dynamic <zgparam> additions and removals
  • Fixed bug with custom deleteBody
  • Fixed issues with dynamic updating of <zgcolumn>

v1.1.3

(01/09/2020)

Full Explanation Here: https://www.youtube.com/watch?v=aJYr2hgMLmg

Features

  • Accessibility - All grids are WCAG 2.0 AA & 508 compliant
  • Keyboard navigation and shortcuts added
  • Screen reader compatibility, tested with JAWS and VoiceOver
  • Inclusion of ARIA attributes for screen readers
  • Screen size adjustments will not break layout or content of grid

New Documentation

Notable Fixes

  • Added reference to DOM cell on cell events
  • grid:select will include cell and cells in the case of multiple cells selected
  • Added zg-source to keyboard navigable region
  • Fixed keyboard nav issues when card mode is rendered based on width
  • Fixed focus issues with cancelling edit via esc key
  • Fixed navigation issues for removing rows button
  • Fixed selection of internal column types
  • Added ability to navigate to user elements within zg-footer
  • Added ability to navigate to zg-status
  • Added ability to navigate to zg-watermark
  • Added ability to navigate to user elements within zg-caption
  • Fixed issue with up key navigating down
  • Fixed issue with modal editor losing focus on close
  • Fixed issue with width based card mode acting like row mode
  • Fixed dialog focus bug
  • Fixed keyboard nav after search and filter remove rows
  • Fixed keyboard nav when all columns are hidden
  • Saved focus state after using insert row
  • Fixed inability to double tap edit on mobile
  • Fixed mobile edit sporadic closing editor issue
  • Fixed issue with cancel button appearing on edit when no delete button is in the row
  • Fixed navigation issues when sort and/or filter of single columns are turned off
  • Fixed select editor focusing issues
  • Fixed bug with ZingGrid.setLanguage global function
  • Fixed issue with grid click and then keyboard press not selecting correct item

v1.1.2

(11/08/2019)

New Documentation

Notable Fixes

  • Fixed Internationalization Issues
  • Updated code to allow inserts after all existing rows are deleted
  • Updated code to allow inserts on an empty grid based on column definitions
  • Fixed dir issues Fixed lang issues
  • Fixed bug with refreshes adding extra blank options to select filter and editors
  • Added ability to change language after grid loads
  • Added tooltips for all buttons
  • Added missing language strings
  • Added getLang and setLang on the <zinggrid> object
  • Added getDir and setDir on the <zinggrid> object
  • Updated watermark to be language specific

v1.1.1

(09/10/2019)

Internationalization

Added internationalization configuration

  • en.js is the default file used. When you define another language lang="es" it will look for that registered lang file es.js. If that file doesn't exist then the grid will use smart defaults for that language as best as it can for currency and date columns.

  • Defaults to lang set on html tag <html lang=”es”>

  • Can set lang per grid <zing-grid lang=”es”>

  • Can set global lang through api ZingGrid.setLanguage(‘es’);

  • Can set custom lang file with ZingGrid.registerLanguage(obj, 'custom') and the appropriate language file JavaScript object.

  • Added HTML standard direction dir="rtl" and dir="ltr"

  • Added internationalization to date columns. If you define <zg-column type="data" locale="de"> it will add the appropriate formatting to that column. The columns will default to the global <html lang attribute, then <zing-grid lang and the <zg-column lang will override all.

  • Added conventionally standard tokens (moment.js) to date columns for custom date formatting <zg-column type=”date” type-date-format=”[Month:] MM”>

  • Refined currency columns for smart defaults to detect lang to format numbers. You still need the type-currency="EUR" attribute to define the currency symbol.

  • Added locale to number renderer

  • Refined filter/search to match the current language

  • If the default lang on the page is english then we use standard sort. If you have any other language defined you can override sort/filter functionality with the following properties:
    You can turn this off with <zing-grid sort-intl=”disabled”> You can turn this ON with <zing-grid sort-intl> and <zg-column sort-intl>

  • Added defaultdisplay attribute to zinggrid and zgcolumn to display when the data value is null or undefined

  • Added [position="both"] attribute to <zgsource>

  • Added compact property to <zinggrid> to mirror [compact] attribute

  • Added params property (not attribute) to ZingGrid to allow setting of data params via JavaScript

  • Added params property to new ZingGrid to allow setting of data params on object render:

    // define params for fetching data
      const params = {
        // define the main source for the API
        src: 'https://swapi.co/api/people/',
        // define the path in the JSON to get the array of results. In this case it is body.results
        recordPath: 'results',
        // if loadByPage is set to true it will go to the server for each new page of data
        loadByPage: 'true',
        // define the "page" query parameter
        pageKey: 'page',
        // Need to tell ZG how many records were returned so it knows how to divide up the page-size
        countPath: 'count',
        // define the path in the result JSON to find next/prev urls
        nextPath: 'next',
        // define the path in the result JSON to find next/prev urls
        prevPath: 'previous',
        // Need to tell ZG how mto search the API
        searchKey: 'search',
      };

  • Changed getWidth() and getHeight() API methods to return the actual <zinggrid> width and height.

  • Modified <zinggrid> [width] attribute to take values besides px. If no unit is specified, defaults to px

  • Added sorter style to the footer on sorting

Bug Fixes

  • Fixed issues with Number Renderer
  • Fixed data being returned on events to always be an object
  • Fixed autoscroll bug on resizing

v1.1.0

(04/09/2019)

Features

  • Renamed attribute attach to position on <zg-caption>
  • Renamed event cell:contextmenu to cell:rightclick
  • Renamed attributeselector-control to row-selector on <zing-grid>
  • Renamed column type rownumber to row-number
  • Renamed attribute server-render to server-rendered on <zing-grid>
  • Renamed attribute value search="false" to search="disabled" on <zg-column>
  • Renamed attribute value sort="false" to sort="disabled" on <zg-column>
  • Renamed attribute value filter="false" to filter="disabled" on <zg-column>
  • Renamed attribute value enctype to requestType on <zg-param>
  • Added both as an option for attach attribute on <zg-caption>
  • Added attribute position to <zg-pager>
  • Added attribute position to <zg-source>
  • Added attribute loadmask to <zing-grid>
  • Added attribute value disabled to loadmask to turn off the loadmask
  • Added attribute pagerposition to accept pager position options (top, bottom)
  • Added zgbuttonpadding in the padding chain for custom <zg-button> elements, with a default fallback
  • Added attribute [hidden] to <zg-param> and <zg-data>
  • Added event grid:contextmenuopen to fire when static-menu is opened
  • Added attribute loading-text on <zing-grid> it will set the text that displays in the <zg-load-mask> on load
  • Added new CSS variables for button states
  • Added new css variables for <zg-card>
  • Added event grid:pageprev
  • Added event grid:pagenext
  • Added event grid:pagefirst
  • Added event grid:pagelast
  • Added method select to programatically select cells
  • Changed attribute pager to be a presence attribute. No longer accepts values
  • Changed attribute value draggable="false" to draggable="disabled" on <zg-column>
  • Changed attribute value header-auto-format="false" to header-auto-format="disabled" on <zg-column>
  • Changed attribute value header-auto-format="false" to header-auto-format="disabled" on <zing-grid>
  • Changed the even and odd CSS variables to have a clearer semantic naming
  • Changed CSS variable zgrowcardheadbackground_editor_even to zgrowcardbackground_editor_even
  • Changed CSS variable zgrowcardheadbackground_editor_odd to zgrowcardbackground_editor_odd
  • Updated/added CSS variables (normal and hover states)
  • Updated zinggridborder variable usage
  • Updated attribute static-menu is set and context-menu is not set, context-menu is added in.
  • Updated cardmode item CSS variables when in editor mode
  • Updated zg-input to accept value and type when no action is set.
  • Moved the default value into the var chain instead of defining in default.css
  • Moved the location of this variable call so that it now affects the message icon and text together
  • Removed variable as fallback value from interior elements to limit the scope to just the <zing-grid> tag
  • Removed zgfootwidth
  • Removed CSS variable for process that should be avoided/discouraged
  • Removed explicit setting of the cursor via javascript
  • When using a <zg-card> editor, it is now possible to use the editor attribute with or without an edit-template
  • Audited all <zg-button> CSS variables
  • Split sorter into sort and sorter on <zing-grid> sort is a boolean indicating if sort is turned on or off. sorter sets the custom sorting function if overriding the default.
  • Normalized element CSS variables
  • Modified how the zinggridborderradius CSS variable applies due to the limitations of html table display.If variable is defined, and a caption and/or pager is shown, those elements will get the radius. Otherwise,additional CSS will need to be applied to add the radius to other grid elements.

New Documentation

Notable Fixes

  • Fixed bug where boolean attributes were not being reflected via API Methods.
  • Fixed bug where setSort was not working for either true or false
  • Fixed toggleColumn API Method to auto detect if the column should be hidden or shown
  • Fixed getHeaderAutoFormat() response when value is not set.
  • Fixed setCardTemplate method to set a card template after the grid has rendered
  • Fixed grid:scroll event bug Fixed grid:keydown:esc event bug
  • Fixed bugs related to contentwidth attribute on <zg-column>
  • Fixed <zg-foot> behavior to apply border variables correctly
  • Fixed the event record:beforeinsert to return the proper data as listed in the docs
  • Fixed bugs with deselecting cells on escape or layout change

v1.0.4

(03/04/2019)

Features

  • Context menu styling for adding a record at the: beginning, end or current cursor position

New Documentation

Notable Fixes

  • Input field not showing up in <zg-dialog> for editing records
  • Firefox loading screen not showing
  • Firefox dragging modal text padding not being applied
  • Safari type-image-mask="circle" not rounding image corners

v1.0.3

(02/26/2019)

Features

  • Drag off columns to hide with <zing-grid draggable
  • zg-column search="false" to hide column from search
  • Custom icon set mapping e.g fontawesome plug and play
  • Accessability tab support
  • Default renderer for mult index columns
  • zg-param and zg-data now have watched properties
  • cell-break attribute added for setting column word-break globally or per column level.
  • <zing-grid columns-control attribute to render menu to toggle/hide columns
  • <zg-column> sorter attribute can point to a specifiy object property sorter="individualContributions.total" when choosing what field to sort that column by
  • Cursor added for interactive cells
  • <zing-grid> and <zg-cell> now have cell-class attribute to bind a function to render CSS class attribute
  • <zing-grid> now has row-class attribute to bind a function to render CSS class attribute
  • Responsive pager controls shift layouts depending on viewport
  • Added <zg-dialog> for all modal interactions
  • Confirm delete record through <zg-dialog> action
  • Create row <zg-dialog> will allow editing row info before adding
  • Cursor based pagination support
  • Icon column type through <zg-column type="icon">
  • Multiple themes added
  • 'foot-classandhead-class` attributes added
  • <zg-button> now takes slotted content

New Documentation

Notable Fixes

  • Aggregation column
  • Custom Elements Polyfill Updated
  • Shadow DOM polyfill Updated
  • Copy cell content console error
  • Nested header background color spanning full width
  • Context menu items revised based on grid state
  • Structural ordering of zg-body ,zg-footer and zg-head
  • Async grid state when editing cells and sending/recieving data from server
  • SSR styling and feature updates
  • Page jump on row click for Windows Chrome
  • Descenders in text getting cut off in zg-head-cell
  • Row/Cell click multiple fires
  • Batch deleting selected rows keeps appropriate state
  • IOS device multiple resize events firing causing performance issues
  • Double click to edit cell in Firefox
  • Edge inline row edit styling normalized
  • Debounce grid rendering on quick resizing of browser window

v1.0.2

(12/27/2018)

Updating NPM package to use imports.

v1.0.1

(11/02/2018)

Bug Fixes.

v1.0.0

(10/30/2018)

Npm ready.

v1.0.0-alpha.1

(10/23/2018)

ZingGrids first public release.