Skip to content

Commit

Permalink
preparing for publishing of free jqGrid 4.13.2
Browse files Browse the repository at this point in the history
There are many small changes in free jqGrid code since the month after after publishing of 4.13.1. The publishing of new version 4.13.2 should place the latest code on CDNs () and simplify the usage of the most recent version of the code. Both CDNs should provides modules, which can be used for loading via RequireJs for example. Because of migration of the CDNs to HTTP/2 protocol it opens new possibilities. I remind that the loading of multiple small files via HTTP/2 protocol has minimal overhead over loading of one large file. It makes loading of separate modules much more interesting as before and reduced the total size of traffic (because of not all modules will be used typically).
  • Loading branch information
OlegKi committed Apr 10, 2016
1 parent 00d0d5d commit d96c517
Show file tree
Hide file tree
Showing 11 changed files with 96 additions and 138 deletions.
112 changes: 35 additions & 77 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,29 +7,29 @@ jqGrid was developed mostly by [Tony Tomov](https://github.com/tonytomov) in the

The code from the GitHib repository is the fork of jqGrid 4.7.0 - the latest version available under MIT/GPL-licenses. It will be provided under MIT/GPL-licenses.

Below you can find short description of new features and bug fixes implemented in free jqGrid 4.13.1 (compared with version 4.13.0). The version is developed by [Oleg Kiriljuk](https://github.com/OlegKi), alias [Oleg](https://stackoverflow.com/users/315935/oleg) on the stackoverflow and [OlegK](https://www.trirand.com/blog/?page_id=393) on trirand forum.
Below you can find short description of minor new features and the bug fixes implemented in free jqGrid 4.13.2 (compared with version 4.13.1). The version is developed by [Oleg Kiriljuk](https://github.com/OlegKi), alias [Oleg](https://stackoverflow.com/users/315935/oleg) on the stackoverflow and [OlegK](https://www.trirand.com/blog/?page_id=393) on trirand forum.

Read [Wiki](https://github.com/free-jqgrid/jqGrid/wiki) for more detailed information about the features of free-jqGrid. The preliminary version of the documentation can be found [here](https://free-jqgrid.github.io/).

Free jqGrid can be used *for free*. We still ask to contribute the development by donating via PayPal, if one have the possibility for it. One can donate by clicking on the following button [![PayPayl donate button](https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_pp_142x27.png)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=JGTCBLQM2BYHG "Donate once-off to free jqGrid project using PayPal") or by sending money via PayPal to [email protected] with the comment "free jqGrid". Bank transfer based on the invoice from OK soft GmbH is another option of donating. Just send the email with the information about the amount of donation and you will get the corresponding invoice with the full information about our bank account and our VAT number.

One can install the package with respect of [bower](http:https://bower.io/search/?q=free-jqgrid) by using "bower install free-jqgrid", with respect of [npm](https:https://www.npmjs.com/package/free-jqgrid) by using "npm install free-jqgrid" or from [NuGet](https://www.nuget.org/packages/free-jqGrid) by using "Install-Package free-jqGrid".
One can install the package with respect of [npm](https:https://www.npmjs.com/package/free-jqgrid) by using "npm install free-jqgrid", with respect of [bower](http:https://bower.io/search/?q=free-jqgrid) by using "bower install free-jqgrid" or from [NuGet](https://www.nuget.org/packages/free-jqGrid) by using "Install-Package free-jqGrid".

The package is published on [WebJars](https://www.webjars.org/) and it's deployed on [Maven Central](https://search.maven.org/#search%7Cga%7C1%7Cfree-jqgrid) too.
The package is published on [WebJars](https://www.webjars.org/) too and it's deployed to [Maven Central](https://search.maven.org/#search%7Cga%7C1%7Cfree-jqgrid).

Free jqGrid is is available from [cdnjs](https://cdnjs.com/libraries/free-jqgrid) and [jsDelivr CDN](https://www.jsdelivr.com/#!free-jqgrid). Thus one can use it directly from Internet by including for example the URLs like
```html
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.13.1/css/ui.jqgrid.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.13.1/js/i18n/grid.locale-de.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.13.1/js/jquery.jqgrid.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.13.2/css/ui.jqgrid.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.13.2/js/i18n/grid.locale-de.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.13.2/js/jquery.jqgrid.min.js"></script>
```
or
```html
<link rel="stylesheet" href="https://cdn.jsdelivr.net/free-jqgrid/4.13.1/css/ui.jqgrid.min.css">
<script src="https://cdn.jsdelivr.net/free-jqgrid/4.13.1/js/i18n/grid.locale-de.min.js"></script>
<script src="https://cdn.jsdelivr.net/free-jqgrid/4.13.1/js/jquery.jqgrid.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/free-jqgrid/4.13.2/css/ui.jqgrid.min.css">
<script src="https://cdn.jsdelivr.net/free-jqgrid/4.13.2/js/i18n/grid.locale-de.min.js"></script>
<script src="https://cdn.jsdelivr.net/free-jqgrid/4.13.2/js/jquery.jqgrid.min.js"></script>
```
The locale file is optional. One can, but one don't need to include `grid.locale-en.min.js`, becusue the same information is already included in `jquery.jqgrid.min.js`.
**The locale file is optional**. One can, but one don't need to include `grid.locale-en.min.js`, because the same information is already included in the `jquery.jqgrid.min.js` (or `jquery.jqgrid.src.js`).

If somebody want to test the *latest* version of free jqGrid, one can load it directly from GitHib using [RawGit](https://rawgit.com/) service:
```html
Expand All @@ -39,74 +39,32 @@ If somebody want to test the *latest* version of free jqGrid, one can load it di
```
All other language files and plugins are available from CDN too. See [the wiki article](https://github.com/free-jqgrid/jqGrid/wiki/Access-free-jqGrid-from-different-CDNs) for more details about the usage of free jqGrid from CDNs and RawGit.

Remark: the above URLs will be available **after publishing** the release of the version of 4.13.1.

### Main new features and improvements implemented in the version 4.13.1:

* The new `noFilterText` property of `searchoptions` is added, which allows to add the entry in the filter to clear filtering by the column.
* The new option `loadFilterDefaults: true` of the `filterToolbar` and the event `jqGridRefreshFilterValues` of jqGrid are added. They force filling the filter toolbar based of the filter applied to the grid. Only `postData.filters` is supported.
* The ruls of building of ids of input elements of the filter toolbar are changed. The new option `idMode` of `filterToolbar` allows to customize the changes or to force the usage of old id rules. See the comment to [the commit](https://github.com/free-jqgrid/jqGrid/commit/7cc612034a48d3521d97d2445456cf672a262b0c).
* Performance improvement of scrolling.

For example, one can use now
```JavaScript
{ name: "ship_via", width: 85, align: "center", formatter: "select", autoResizing: { minColWidth: 85 },
edittype: "select", editoptions: { value: "FE:FedEx;TN:TNT;DH:DHL", defaultValue: "DH" },
stype: "select", searchoptions: { sopt: ["eq", "ne"], noFilterText: "Any" } }
```
instead of
```JavaScript
{ name: "ship_via", width: 85, align: "center", formatter: "select", autoResizing: { minColWidth: 85 },
edittype: "select", editoptions: { value: "FE:FedEx;TN:TNT;DH:DHL", defaultValue: "DH" },
stype: "select", searchoptions: { sopt: ["eq", "ne"], value: ":Any;FE:FedEx;TN:TNT;DH:DHL" } }
```
Additional advantage of the usage of `noFilterText: "Any"`: the option `<option value="">Any</option>` will be included as the first entry *only in the filter toolbar*. The searching dialog will don't have the option.

The new default option `loadFilterDefaults: true` of the filter toolbar is very practical if one uses both the Filter Toolbar and the Searching Dialog in one grid. Setting of a simple filter via the Searching Dialog will be displayed in the filter toolbar. Another important case is loading the grid with the filter applied.

[The demo](https://www.ok-soft-gmbh.com/jqGrid/OK/formEditOnDoubleClick-jqueryui-fa1.htm) and [another one](https://www.ok-soft-gmbh.com/jqGrid/OK/formEditOnDoubleClick-jqueryui-fa-bootstrap.htm), which uses Bootsrap GUI style, use the following options:
```JavaScript
search: true,
postData: {
filters: {
groupOp: "AND",
rules: [
{ op: "le", field: "tax", data: "20" },
{ op: "gt", field: "amount", data: "250" }
]
}
}
```
and the filter will be displayed in the filter toolbar immediately during creating.

**BREAKING CHANGES**: The ruls of building ids of input elements of the filter toolbar are changed. Free jqGrid uses now the rule: `"gs_" + gridId + columnName` instead of using `"gs_" + columnName` before. It fixes problems, like the usage of jQuery UI Datepicker for the second grid on the page, in case of using the filter toolbar by multiple grids and having the same column names. The new option `idMode` allows to manage the rule of building ids. The option `idMode: "old"` forces the usage of old rule (`"gs_" + columnName`) for building of ids. The option `idMode: "compatibility"` creates the ids based on another rule: `"gs_" + idPrefix + columnName`. The rule would be helpful only if one uses `idPrefix` options with *different* `idPrefix` values for every grid. One can still have id duplicates if one don't use any `idPrefix` on multiple grids. The default value `idMode: "new"` uses `"gs_" + gridId + columnName`. It garantees, that there are no id duplicates in multiple grids.

We recommend everybody to scan your existing code for the string `gs_`, which you could use for direct accessing of input fields of the filter toolbar. If no such places will be found, then you can be sure that your code will have no compatibility problems. If you will find such places in your code then you can decide yourself, whether to change the code and to include the grid id in your code or to force the usage of the "old" or the "compatibility" rule (`idMode: "old"` or `idMode: "compatibility"`). To force compatibility rule you can add the following code
```JavaScript
$.jgrid = $.jgrid || {};
$.jgrid.search = $.jgrid.search || {};
$.jgrid.search.idMode = "compatibility"; // or "old" instead of default "new", which creates safe id values
```
somewhere at the beginning of your code. Alternatively you can use `searching: {idMode: "compatibility"}` option (or `searching: {idMode: "old"}` option).

### The below is the full list of changes in the version 4.13.1 compared with 4.13.0:

* Bug fix of the usage of `idPrefix` in the form editing.
* The ruls of building ids of input elements of the filter toolbar are changed. The new `idMode` of `filterToolbar` allows to customize the changes or to force the usage of old id rules.
* New `loadFilterDefaults: true` option and `jqGridRefreshFilterValues` event added. It force filling the filter toolbar based of the filter applied to the grid. Only `postData.filters` will be supported.
* Remove some additional places which works only for IE7 and lower.
* Fix styling of legacy/simple subgrid for Bootstrap style.
* Bug fix of compatibility to IE8 in `formatter: "checkbox"`.
* Improvement performance of scrolling.
* Add new `noFilterText` property of `searchoptions`, which allows to add the entry in the filter to clear filtering by the column.
* Properties of `searchoptions` can be skipped if the same properties exists in `editoptions` and if `stype: "select"`.
* Add normalizing of undefined values of the column with `formatter: "number"` or `formatter: "integer"`. Undefiled data for such cloumns will be interpreted now correctly as `0` during filtering.
* remove usage global `jQuery` variable for local filtering. `jQuery.noConflict` is full supported now.
* Bug fix in `getFullTreeNode` in case of usage numeric `id` (instead of string `id`).
* Updated bootstrap styling for the "loading" mesage.
Remark: the above URLs will be available **after publishing** the release of the version of 4.13.2.

### Below one can see the full list of changes in the version 4.13.2 compared with 4.13.1:

* Bug fix in encodding of attributes inside of predefined formatters (like `formatter: "showlink"`).
* Making `parseFilter` safer, It will be used in `filterToolbar` to restore the values in the filter based on the value of `postData.filters`.
* Bug fixes in `filterToolbar` in case of usage `searchOnEnter: true` option.
* Bug fixes in Seaching Dialog: the usage of `readonly` and `disabled` attributes defined in `editoptions` will be not used in Searching Dialog.
* The value of `this`, used in `afterRedraw` and `onChange` callbacks of the Searching Dialog, is fixed corresponds to the standard behavior of jqGrid.
* Add more parameters in `onChange` callback and `jqGridFilterAfterChange` event.
* Bug fix in `filterToolbar` in the wrong usage of `name` property of `colModel` instead of `index`.
* Add icons on top of README with some statistic and links to NPM, Bower, NuGet and Maven Central.
* Replace the usage `complete` to the usage of `success` & `error` callbacks inside of legacy/simplitied subgrid module.
* Add `aria-label='Close'` to closing icons used in free jqGrid.
* Some improvmenes in the error div used by Bootstrap. It will be used now `alert` and `alert-danger` Bootstrap classes.
* Bug fix in the usage of `jsonmap` property of `colModel` in case of `datatype: "jsonstring"`.
* Bug fix of missing dependencies used by `requireJs` for `grid.common`, `grid.treegrid` and `grid.import`.
* Bug fix in the behavior of the filter toolbar after pressing of Reset buttons of Searching Dialog.
* Bug fix in removing of trailing spaces from input fileds of the filter toolbar in case of usage `searchOnEnter: false` mode.
* More save processing of `formatter` and return value of some callbacks of cell and form editing mode, which should return arrays like `[true]` or `[false, "error description"]`. Old code could produce exceptions if wrong `undefined` or `null` value will be returned from the callbacks. After the fix the `undefined`/`null` value will be intrpreted as no error (`[true]`).
* Use `JSON.stringify` as the first choice instead of `xmlJsonClass.toJson` during processing of `postData.filters` in Searching Dialog.
* Bug fix in `footerData` and `setLabel` for the case of usage frozen columns.

Other readmes contain the list of the features and bug fixed implemented before:

* [README4.13.1.md](https://github.com/free-jqgrid/jqGrid/blob/master/README4.13.1.md) contains the readme of free jqGrid 4.13.1.
* [README4.13.0.md](https://github.com/free-jqgrid/jqGrid/blob/master/README4.13.0.md) contains the readme of free jqGrid 4.13.0.
* [README4.12.1.md](https://github.com/free-jqgrid/jqGrid/blob/master/README4.12.1.md) contains the readme of free jqGrid 4.12.1.
* [README4.12.0.md](https://github.com/free-jqgrid/jqGrid/blob/master/README4.12.0.md) contains the readme of free jqGrid 4.12.0.
Expand All @@ -115,7 +73,7 @@ Other readmes contain the list of the features and bug fixed implemented before:
* [README4.10.0.md](https://github.com/free-jqgrid/jqGrid/blob/master/README4.10.0.md) contains the readme of free jqGrid 4.10.0.
* [README492.md](https://github.com/free-jqgrid/jqGrid/blob/master/README492.md) contains the readme of free jqGrid 4.9.2.
* [README491.md](https://github.com/free-jqgrid/jqGrid/blob/master/README491.md) contains the readme of free jqGrid 4.9.1.
* [README49.md](https://github.com/free-jqgrid/jqGrid/blob/master/README49.md) contains the readme of free jqGrid 4.9.
* [README48.md](https://github.com/free-jqgrid/jqGrid/blob/master/README48.md) contains the readme of free jqGrid 4.8.
* [README49.md](https://github.com/free-jqgrid/jqGrid/blob/master/README49.md) contains the readme of free jqGrid 4.9.0.
* [README48.md](https://github.com/free-jqgrid/jqGrid/blob/master/README48.md) contains the readme of free jqGrid 4.8.0.

**Many thanks to all, who sent bug reports and suggestions to improve free jqGrid!**
2 changes: 1 addition & 1 deletion bower.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "free-jqgrid",
"description": "grid as jQuery plugin - fork of jqGrid before licensing change",
"version": "4.13.1",
"version": "4.13.2",
"main": [
"js/jquery.jqgrid.min.js",
"js/jquery.jqgrid.src.js",
Expand Down
4 changes: 2 additions & 2 deletions css/ui.jqgrid.css
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*!
* jqGrid 4.13.2-pre - free jqGrid: https://github.com/free-jqgrid/jqGrid
* Date: 2016-04-06
* jqGrid 4.13.2 - free jqGrid: https://github.com/free-jqgrid/jqGrid
* Date: 2016-04-10
*/

/* Grid */
Expand Down
4 changes: 2 additions & 2 deletions css/ui.jqgrid.min.css

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions js/grid.base.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@
// @compilation_level SIMPLE_OPTIMIZATIONS

/**
* @license jqGrid 4.13.2-pre - free jqGrid: https://github.com/free-jqgrid/jqGrid
* @license jqGrid 4.13.2 - free jqGrid: https://github.com/free-jqgrid/jqGrid
* Copyright (c) 2008-2014, Tony Tomov, [email protected]
* Copyright (c) 2014-2016, Oleg Kiriljuk, [email protected]
* Dual licensed under the MIT and GPL licenses
* https://www.opensource.org/licenses/mit-license.php
* https://www.gnu.org/licenses/gpl-2.0.html
* Date: 2016-04-06
* Date: 2016-04-10
*/
//jsHint options
/*jshint eqnull:true */
Expand Down Expand Up @@ -353,7 +353,7 @@

$.extend(true, jgrid, {
/** @const */
version: "4.13.2-pre",
version: "4.13.2",
/** @const */
productName: "free jqGrid",
defaults: {},
Expand Down
Loading

0 comments on commit d96c517

Please sign in to comment.