Skip to content

Commit

Permalink
Merge pull request #370 from openfin/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
Dwaynekj authored Oct 26, 2016
2 parents 72f70a5 + f8a8cac commit 482d392
Show file tree
Hide file tree
Showing 131 changed files with 7,707 additions and 5,328 deletions.
2 changes: 1 addition & 1 deletion .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@
"no-delete-var": 2,
"no-label-var": 2,
"no-shadow-restricted-names": 2,
"no-shadow": 2,
"no-shadow": 0,
"no-undef-init": 2,
"no-undef": 2,
"no-unused-vars": [
Expand Down
1 change: 0 additions & 1 deletion .npmignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
!/images/index.js
!/images/images.js
/jsdoc-template
/node_modules
/src/index.js
/test
/favicon.ico
Expand Down
94 changes: 94 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# Welcome

Thank you in advance for being a part of this project and for helping to make HyperGrid the most performant and customizable grid
available!

## Beginners

We have several beginner help wanted [tickets](https://github.com/openfin/fin-hypergrid/issues) open for community involvement.

## HyperGrid Core vs Add-ons

The core of Hypergrid is being improved to focus primarily as a fast data-view with customizable rendering. Data transformations (ie. sorting)
are left to the user and are excluded from the core of the grid. If you wish to provide a layer for data transformations
please do so as an [add-on](https://github.com/openfin/fin-hypergrid/tree/master/add-ons).
Please note that eventually, these add-ons will be split out into their own set of repos.


## Getting Started

* Create a [GitHub account](https://github.com/signup/free)
* Fork the repository on GitHub

## Building & Interactive Development
```bash
$ git clone <your fork>
$ node -v # at least:
v4.0.0
$ npm -v # at least:
2.14.2
$ # We recommend using nvm to manage your versions of node and npm.
$ npm install -g gulp
$ npm install
$ gulp
```

## Making Changes

* Create a topic branch from where you want to base your work.
* This is usually the `develop` branch.
* Name your branch with a qualifier (IMPRV, DOCS, BUG, FEATURE, POC) followed by a forward slash and then some info about your branch.
i.e. *IMPRV/Removed-unused-code*
* Please avoid working directly on the `master` or `develop` branches.
* Make commits of logical units and squash your commits as needed to facilitate that
* Please *rebase* your work on top develop as needed so that your commits are seen as a fast-forward (and please fix any merge conflicts)
* Check for unnecessary whitespace with `git diff --check` before committing.
* For commit messages, please use full sentences and a brief explanation of what you accomplished.
* The following example message is adopted from Puppet's labs sample commit.

````
Make the example in CONTRIBUTING imperative and concrete
Without this patch applied the example commit message in the CONTRIBUTING
document is not a concrete example. This is a problem because the
contributor is left to imagine what the commit message should look like
based on a description rather than an example. This patch fixes the
problem by making the example concrete and imperative.
````

* Make sure you have added the necessary [tests](https://github.com/openfin/fin-hypergrid/tree/master/test) for your changes.
* Run _all_ the tests to assure nothing else was accidentally broken.
* Test your changes in all IE10+, Safari, Chrome, Chrome 40, Firefox
* We are evaluating different testing strategies but for the moment, the major considerations are for
* renders datacells when it is bound to homogenous data array
* scrolls/arrow-key navigates cell-by-cell
* uses less than 7% CPU when idle
* can use html5 controls to edit the data already loaded
* can draw customized renderers in cells performantly
* resizes based on its viewport
* can align fonts or unicode characters left, center or middle horizontally
* the grid can pass the raw data it recieved through a customized data transformation pipeline
* Columns can be resized
...


### Documentation

Code should be as self-explanatory as possible by using well-considered variable names; additional variables for intermediate values instead of unexplained subexpressions; clear, logical flow; parallel structure; etc.
Use comments only to explain any remaining subtleties.

On the other hand, we do believe in good usage of jsdocs _especially_ if your updating a public api call.
Here is an example of a [tutorial](http://openfin.github.io/fin-hypergrid/doc/tutorial-cell-editors.html)

## Submitting Changes

* Push your changes to a topic branch in your fork of the repository.
* Submit a pull request to the repository in the openfin organization.
* Do not submit until ready to publish — and then hold off a bit longer until you feel certain you are not submitting prematurely. If you find you absolutely must update a pull request, you must leave an explanatory comment. Updating will delay merging your PR if we have to review it again. Please try to avoid doing this (by not submitting too early; see above).
* The core team looks at Pull Requests on a regular basis within a three-week sprint cycle.
* If your PR is accepted, congratulations!!
* We will label it as `Reviewed` add your submission notes to our release notes.

# Additional Resources

Feel free to open [issues](https://github.com/openfin/fin-hypergrid/issues) or email [email protected]
66 changes: 10 additions & 56 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,21 @@

<img src="images/README/gridshot04.gif">

### Current Release (1.0.9 - 29 August 2016)
### Current Release (1.2.0 - 26 October 2016)

The current version 1.0 replaces last year's [prototype version](https://github.com/openfin/fin-hypergrid/tree/polymer-prototype), which was built around Polymer. It is now completely "de-polymerized" and is being made available as:
* An [npm module](https://www.npmjs.com/package/fin-hypergrid) for use with browserify.
* A single JavaScript file [fin-hypergrid.js](https://openfin.github.io/fin-hypergrid/build/fin-hypergrid.js) you can reference in a `<script>` tag.

_For a complete list of changes, see the [release notes](https://github.com/openfin/fin-hypergrid/releases)._
**The release notes for v1.2.0 are under review and will be posted no later than 27 October 2016.**

### Demos

##### Developer Tutorial

This [tutorial](https://openfin.github.io/fin-hypergrid) is a tool that shows developers how to use Hypergrid and implement its features.
##### Sample demo

Here is an [application](http://openfin.github.io/fin-hypergrid/) that demos various features.

##### Hyperblotter

Hyperblotter is a demo app that shows the capabilities of both OpenFin and Hypergrid.
Expand All @@ -30,65 +31,18 @@ Check out the Table view on Hyperblotter on a Windows machine via [this installe

![](https://github.com/openfin/fin-hypergrid/blob/master/images/README/Hypergrid%20Features.png)

##### Future development

* We are currently working on expanding the API to enable application developers to easily provide their own functionality.
* Hypergrid will have no opinion on how the underlying data should be pivoted, but will remain capable of presenting pivoted data.
* For local data transformations, the current sorting, filtering, _etc.,_ modules will be unbundled from the Hypergrid build and published as external modules, along with full API docs so you can roll your own.
* Remote data transformations will be supported with all the eventing necessary for triggering such transformations on a remote server.
* Drill-downs, currently implemented for local tree view, group view, and aggregated data view, will be supported for remote data as well.

### Integrating

[This](https://openfin.github.io/fin-hypergrid/example.html) is a basic example that embeds fin-hypergrid:
```html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
</head>
<body>

<div id="fin-grid"></div>

<script src="https://openfin.github.io/fin-hypergrid/build/fin-hypergrid.js"></script>

<script>
var data = [
{ symbol: 'APPL', name: 'Apple Inc.', prevclose: 93.13 },
{ symbol: 'MSFT', name: 'Microsoft Corporation', prevclose: 51.91 },
{ symbol: 'TSLA', name: 'Tesla Motors Inc.', prevclose: 196.40 },
{ symbol: 'IBM', name: 'International Business Machines Corp', prevclose: 155.35 }
];
var grid = new fin.Hypergrid('#fin-grid', { data: data });
grid.addProperties({
showRowNumbers: false,
showFilterRow: false
});
</script>
</body>
</html>
```

Will look like:

<img src="images/README/simple.png">

### Documentation

Essential documentation and examples will be added to this page in the near future.
### Developer Tutorial && Documentation

We have started a [wiki](https://github.com/openfin/fin-hypergrid/wiki).

We are also maintaining [online API documentation](http://openfin.github.io/fin-hypergrid/doc/Hypergrid.html) for all public objects and modules. This documentation is necessarily a on-going work-in-progress.

(Cell editor information can be found [here](http://openfin.github.io/fin-hypergrid/doc/tutorial-cell-editors.html).)

(Cell Rendering information can be found [here](http://openfin.github.io/fin-hypergrid/doc/tutorial-cell-renderer.html).)

Hypergrid global configurations can be found [here](http://openfin.github.io/fin-hypergrid/doc/module-defaults.html). Use it for modifying various hypergrid features and property defaults.
Hypergrid global configurations can be found [here](http://openfin.github.io/fin-hypergrid/doc/module-defaults.html).

### Contributors

Developers interested in contributing to this project should submit pull requests against the `develop` branch.
We have several beginner `help wanted` [tickets](https://github.com/openfin/fin-hypergrid/issues) open for community involvement.
Developers interested in contributing to this project should review our [contributing guide](CONTRIBUTING.md) before making pull requests.
24 changes: 24 additions & 0 deletions ROADMAP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
## Future development

* Eventing for triggering remote data transformations will be supported
* Hypergrid will be able to view hierarchical data
* Remotely transformed (grouped/joined/aggregated) will be able to presented hierarchically
* Public APIs on Hypergrid.js will be refactored to a module pattern where related API calls are bundled together
* We will continue to iteratively add to the Wikis to fill in the large knowledge gap with the grid's features
* Hypergrid's eventing architecture will be simplified from its current implementation
* The state of the grid will be available in a serializable format
* The grid will re-implement the ability for theming that was originally a 1.0 Polymer feature
* Examples, Examples, Examples!!!

## User Requested

### Features
- autopersist layouts
- visual queue for nested sort
- add ink effects
- mobile support
- Serializable Filtering and Sorting State
- Browserstack integration

If you would like to work on on these ideas or suggest your own, feel free to browse through our [githuib issues](https://github.com/openfin/fin-hypergrid/issues)
and read our [contributing guide](./CONTRIBUTING.md).
Loading

0 comments on commit 482d392

Please sign in to comment.