Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
A lightweight, mobile-ready, data-driven, modular grid widget designed for use with dstore
JavaScript HTML CSS PHP

ColumnSet: Fix horizontal scrollbar regression on IE8

Also remove a space that was added to a query selector in
_onColumnSetScroll, which inexplicably causes acme to crash IE8
latest commit a3577b6a56
@kfranqueiro kfranqueiro authored
Failed to load latest commit information.
css Fix invisible focus rectangles on Firefox
demos Fix SingleQuery bug with _lastCollection
doc Fix #1142: Expand Editor docs on when dgrid-datachange event fires
extensions Remove util/misc#contains
test Fix #1124: ColumnHider#toggleColumnHiddenState + unhidable columns
util Remove util/misc#contains
.gitignore Initial updates to make tests run with Intern 2
.jshintignore Builder cleanup
.jshintrc Builder cleanup
CONTRIBUTING.md Revisions to CONTRIBUTING.md
CellSelection.js Replace put-selector with dojo/dom-* modules
ColumnSet.js ColumnSet: Fix horizontal scrollbar regression on IE8
Editor.js Update Editor.js
Grid.js Replace put-selector with dojo/dom-* modules
GridFromHtml.js Replace put-selector with dojo/dom-* modules
GridWithColumnSetsFromHtml.js Reformat modules and add .jshintrc
Gruntfile.js Add Gruntfile with stylus and intern tasks
Keyboard.js Remove util/misc#contains
LICENSE Update LICENSE year.
List.js Fix #1047: Expose auto-generated ID prefix so it can be overridden
OnDemandGrid.js Reformat modules and add .jshintrc
OnDemandList.js Replace put-selector with dojo/dom-* modules
README.md Update docs after stylus refactor
Selection.js Replace put-selector with dojo/dom-* modules
Selector.js Replace put-selector with dojo/dom-* modules
TouchScroll.js Remove xstyle dependency
Tree.js Fix #1144: Tree: Add dgrid-row-expandable class to parent rows
_StoreMixin.js Replace put-selector with dojo/dom-* modules
bower.json Remove xstyle dependency
package.js Add Gruntfile with stylus and intern tasks
package.json Add Gruntfile with stylus and intern tasks

README.md

The dgrid project provides widgets for lists of data, including simple sets of scrolling rows, grids of data, on-demand lazy-loaded data, and various mixins for additional functionality.

dgrid is available under the same dual BSD/AFLv2 license as the Dojo Toolkit.

Installation

Installing with bower

dgrid and its dependencies can be installed via bower using the following command:

bower install dgrid

Note that by default, bower installs to a bower_components subdirectory. If you'd like to install to the current directory instead (which tends to be more appropriate for AMD projects), add a .bowerrc with the following:

{
    "directory": "."
}

By default, bower will automatically find the highest tagged version of dgrid and install it along with its dependencies. Alternatively, the latest development version of dgrid can be installed by instructing bower to install from the master branch:

bower install dgrid#master

Note that while dgrid lists the dojo package as a dependency, it will not automatically install dijit, as it is not a hard requirement. Dijit can be additionally installed by running:

bower install dijit#<target>

...where <target> corresponds to the version of Dojo you have installed.

Manual Download

Alternatively, dgrid and its dependencies can be downloaded individually:

  • dstore for store-backed grids
  • The Dojo Toolkit SDK version 1.8 or higher
    • Out of the DTK components, Dojo core is the only hard dependency for dgrid; however, some of the test pages also use components from Dijit, and Dojox (namely grid for a comparison test, and mobile for a mobile page).

It is recommended to arrange all dependencies as siblings, resulting in a directory structure like the following:

  • dgrid
  • dijit (optional, dependency of some dgrid tests/components)
  • dojo
  • dojox (optional, dependency of some dgrid tests)
  • dstore
  • util (optional, e.g. if pursuing a custom build)

CDN

RawGit now offers CDN hosting of raw tagged git URLs. It can serve any version of dgrid and dstore via MaxCDN.

For example, here's a packages configuration for dgrid 0.4.0 and dstore 1.0.0:

packages: [
    {
        name: 'dgrid',
        location: '//cdn.rawgit.com/SitePen/dgrid/v0.4.0'
    },
    {
        name: 'dstore',
        location: '//cdn.rawgit.com/SitePen/dstore/v1.0.0'
    }
]

Browser and Dojo Version Support

dgrid 0.4 works with Dojo 1.8 or higher, and supports the following browsers:

  • IE 8+
  • Firefox latest + ESR
  • Chrome latest (desktop and mobile)
  • Safari latest (desktop and mobile)
  • Opera latest

dgrid 0.4 does not support quirks mode. You are heavily encouraged to include the HTML5 DOCTYPE (<!DOCTYPE html>) at the beginning of your pages.

Documentation

Documentation for dgrid components is available in the doc folder. In addition, the website hosts a number of tutorials.

If upgrading from a previous dgrid release, please be sure to read the release notes on GitHub.

Community

Reporting Issues

Bugs or enhancements can be filed by opening an issue in the issue tracker on GitHub.

When reporting a bug, please provide the following information:

  • Affected browsers and Dojo versions
  • A clear list of steps to reproduce the problem
  • If the problem cannot be easily reproduced in an existing dgrid test page, include a Gist with code for a page containing a reduced test case

If you would like to suggest a fix for a particular issue, you are welcome to fork dgrid, create a branch, and submit a pull request. Please note that a Dojo CLA is required for any non-trivial modifications.

Getting Support

Questions about dgrid usage can be asked in the following places:

Web interfaces for IRC and the mailing list are available from the Dojo Toolkit Community page.

SitePen also offers commercial support for dgrid, as well as Dojo and a number of other JavaScript libraries.

Testing

dgrid uses Intern as its test runner. Tests can either be run using the browser, or using a cloud provider such as Sauce Labs. More information on writing your own tests with Intern can be found in the Intern wiki.

Note that installing dgrid via bower will not include the test folder; if you wish to run dgrid's unit tests, download the package directly.

Setting up

Note: Commands listed in this section are all written assuming they are run inside the dgrid directory.

Run npm install to install the latest geezer version of Intern 2, which supports IE 8 in addition to modern browsers:

npm install

Running via the browser

  1. Open a browser to http://hostname/path_to_dgrid/test/intern/runTests.html
  2. View the console

Running via Sauce Labs

Make sure the proper Sauce Labs credentials are set in the environment:

export SAUCE_USERNAME=<your_sauce_username>
export SAUCE_ACCESS_KEY=<your_sauce_access_key>

Then kick off the runner with the following command:

grunt intern:remote

Running via local Selenium server

Windows

Obtain the latest version of the Selenium server and the IE driver server from Selenium's Download page. (The IE driver server needs to be placed in a folder on your PATH.)

The Selenium server can be started by executing:

java -jar path\to\selenium-server-standalone-<version>.jar

Mac OS X

The easiest way to obtain the Selenium standalone server for Mac OS X is by using Homebrew. Once Homebrew is installed, run the following commands:

brew update # ensure you have the latest formulae
brew install selenium-server-standalone
brew install chromedriver # for automating tests in Chrome

Recent versions of selenium-server-standalone install a selenium-server script which can be used to start up the server. For additional information (e.g. how to start the server at login), see the output of brew info selenium-server-standalone.

Running the tests

Once the Selenium server is running, kick off the Intern test runner with the following command:

grunt test

This runs the intern:local Grunt task, which uses the configuration in intern.local.js. This configuration overrides intern.js to use NullTunnel, and to test in Chrome by default (this can be customized as desired according to the browsers you have installed).

Something went wrong with that request. Please try again.