Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
moved brainstorm to google docs; new planning30 doc for minutes
- Loading branch information
Showing
2 changed files
with
4 additions
and
142 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -1,142 +1,2 @@ | |||
# Thoughts | Moved to https://docs.google.com/document/d/1fk7EwwJUGq3MTXaE6vp29rA4sXgzp5DA_rn_ERcPIz8/edit?usp=sharing | ||
|
(Please sign-in to google so that we know who changed what for followup questions) | ||
> Don't build the 'everything-in-one' solution first. Build a "you must put the components together yourself" approach | |||
> first. Then create some directives afterwards that simply packages everything together _for_ you. | |||
## Outstanding Problems | |||
|
|||
* pinned columns performance | |||
* Core performance (multiple grids, grids loading slowly, horizontal scrolling peformance in general) | |||
* Events (many bugs) | |||
* Layout flexibility | |||
|
|||
# Desired Functionality | |||
|
|||
* Pinning columns | |||
* Sorting Columns | |||
* Easy-to-customize templates | |||
* Editing | |||
* Grouping | |||
* Searching / filtering (over whole grid, by column) | |||
* Pagination (with hooks for backend retrieval) | |||
* Row / column selection (both by user and programmatically) | |||
* Column resizing (drag separator to resize, double-click to auto-size) | |||
* Mobile/responsive options? (Column | |||
* Swappable templating. [seems like a common request, update/swap template and alter grid look+feel+functionality] | |||
|
|||
# Browser Support? | |||
* IE9+, latest FF, Opera and Chrome. (Which safari version? jQuery 2.* goes with 5.1) | |||
|
|||
# Angular Support? | |||
* We should state support up front with each release. Also, one of the things that has come up a lot is issues with unstable releases. We should state whether or not we're going to support unstable angular. Just as a standard. | |||
|
|||
## Plugins? | |||
* Column reordering | |||
* Row reordering | |||
* Exporting? | |||
|
|||
# Declaritive HTML | |||
|
|||
```html | |||
<div ui-grid> | |||
<div ui-grid-header> | |||
<!-- auto-generate column headers if no content supplied? --> | |||
</html> | |||
|
|||
<!-- ui-grid-repeat auto-generates columns, ui-repeat-virtual handles the actual virtual repeater functionality? --> | |||
<div ui-grid-repeat ui-repeat-virtual="d in data"> | |||
<!-- auto-generate columns if no content supplied? --> | |||
</div> | |||
|
|||
<!-- or perhaps this?? (from ProLoser) --> | |||
<ng-repeat="item in $virtualized" ui-virtualize="items"> | |||
<!-- | |||
ui-virtualize virtualizes a list of items and hands it to the built-in repeater, if the repeater is performant enough | |||
--> | |||
</div> | |||
``` | |||
> We need to do a default rendering anyway, so yes, we would auto-generate column headers and columns. | |||
We'll have the code to do so in order to do some core demo/default implementation- even if we're successful and can get this thing fully customizable. | |||
|
|||
> rob | |||
## Alternative | |||
|
|||
```html | |||
<div class="grid"> | |||
<div ui-grid-header scrollsync> | |||
<!-- auto-generate column headers if no content supplied? --> | |||
</div> | |||
|
|||
<div class="grid-body" ui-virtualize="data as $rows" scrollsync ui-pinnable="columns"> | |||
<!-- virtualize creates `$rows` that is passed to ng-repeat --> | |||
<div ng-repeat="row in $rows"> | |||
|
|||
|
|||
<div ng-repeat="column in row"> | |||
<!-- ability to define custom columns --> | |||
<!-- ability to virtualize columns too: | |||
<div ng-repeat="column in $columns" ui-virtualize="row as $columns"> | |||
--> | |||
</div> | |||
|
|||
<!-- or pretty much a default template of the above snippet ^^ --> | |||
<ui-grid-row data="row"></ui-grid-row> | |||
|
|||
</div> | |||
</div> | |||
</div> | |||
``` | |||
|
|||
> I like this. There are lots of use cases we have to account for if we're going with this pattern, but at least as far as the basics I think it's clear. | |||
> Declarative pinning might look something like this? | |||
> rob | |||
```html | |||
|
|||
<div class="grid"> | |||
<!-- probably a new implementation of sortable or just renamed to ui-reorder, etc --> | |||
<div ui-grid-header ui-pinnable="data.columns" ui-sortable="data.columns"> | |||
<!-- how to mark-up pinned columns so they align with resepective pinned grid-body below? --> | |||
<div ng-repeat="column in data.columns"> | |||
{{ column }} | |||
<!-- Pinning is handled by heading row only, updated $pinnable object reflects changes to body automatically --> | |||
<a ng-click="$pinnable.pin(column, 'left')">Pin</a> | |||
</div> | |||
</div> | |||
<div class="grid-body" ui-virtualize="data.rows as $rows"> | |||
<div ng-repeat="row in $rows"> | |||
<!-- ui-pinnable creates a subset of columns --> | |||
<div ng-repeat="column in $pinnable.unpinned" ui-editable="row[column]"> | |||
{{ row[column] }} | |||
</div> | |||
</div> | |||
</div> | |||
<!-- left and right pin-tables might be auto-generated by cloning the body table in compile phase --> | |||
<div class="grid-body pinned left" ui-virtualize="data as $rows"> | |||
<div ng-repeat="row in $rows"> | |||
<div ng-repeat="column in $pinnable.left" ui-editable="row[column]"> | |||
{{ row[column] }} | |||
</div> | |||
</div> | |||
</div> | |||
<div class="grid-body pinned right" ui-virtualize="data as $rows"> | |||
<div ng-repeat="row in $rows"> | |||
<div ng-repeat="column in $pinnable.right" ui-editable="row[column]"> | |||
{{ row[column] }} | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
``` | |||
|
|||
|
|||
# CSS | |||
```css | |||
.pinned.left { | |||
float: left; | |||
} | |||
.pinned.right { | |||
float: right; | |||
} | |||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,2 @@ | |||
Meeting minutes | |||
https://docs.google.com/a/singletreetech.com/document/d/1y6Yy0wgLvlOu8UbSnSDFo1QmQvnjapAMYVQj-Td1jB0/edit# |