Skip to content

Commit 6f9bf59

Browse files
committed
moved brainstorm to google docs; new planning30 doc for minutes
1 parent 543748f commit 6f9bf59

File tree

2 files changed

+4
-142
lines changed

2 files changed

+4
-142
lines changed

Brainstorm.md

+2-142
Original file line numberDiff line numberDiff line change
@@ -1,142 +1,2 @@
1-
# Thoughts
2-
3-
> Don't build the 'everything-in-one' solution first. Build a "you must put the components together yourself" approach
4-
> first. Then create some directives afterwards that simply packages everything together _for_ you.
5-
6-
## Outstanding Problems
7-
8-
* pinned columns performance
9-
* Core performance (multiple grids, grids loading slowly, horizontal scrolling peformance in general)
10-
* Events (many bugs)
11-
* Layout flexibility
12-
13-
# Desired Functionality
14-
15-
* Pinning columns
16-
* Sorting Columns
17-
* Easy-to-customize templates
18-
* Editing
19-
* Grouping
20-
* Searching / filtering (over whole grid, by column)
21-
* Pagination (with hooks for backend retrieval)
22-
* Row / column selection (both by user and programmatically)
23-
* Column resizing (drag separator to resize, double-click to auto-size)
24-
* Mobile/responsive options? (Column
25-
* Swappable templating. [seems like a common request, update/swap template and alter grid look+feel+functionality]
26-
27-
# Browser Support?
28-
* IE9+, latest FF, Opera and Chrome. (Which safari version? jQuery 2.* goes with 5.1)
29-
30-
# Angular Support?
31-
* 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.
32-
33-
## Plugins?
34-
* Column reordering
35-
* Row reordering
36-
* Exporting?
37-
38-
# Declaritive HTML
39-
40-
```html
41-
<div ui-grid>
42-
<div ui-grid-header>
43-
<!-- auto-generate column headers if no content supplied? -->
44-
</html>
45-
46-
<!-- ui-grid-repeat auto-generates columns, ui-repeat-virtual handles the actual virtual repeater functionality? -->
47-
<div ui-grid-repeat ui-repeat-virtual="d in data">
48-
<!-- auto-generate columns if no content supplied? -->
49-
</div>
50-
51-
<!-- or perhaps this?? (from ProLoser) -->
52-
<ng-repeat="item in $virtualized" ui-virtualize="items">
53-
<!--
54-
ui-virtualize virtualizes a list of items and hands it to the built-in repeater, if the repeater is performant enough
55-
-->
56-
</div>
57-
```
58-
> We need to do a default rendering anyway, so yes, we would auto-generate column headers and columns.
59-
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.
60-
61-
> rob
62-
63-
## Alternative
64-
65-
```html
66-
<div class="grid">
67-
<div ui-grid-header scrollsync>
68-
<!-- auto-generate column headers if no content supplied? -->
69-
</div>
70-
71-
<div class="grid-body" ui-virtualize="data as $rows" scrollsync ui-pinnable="columns">
72-
<!-- virtualize creates `$rows` that is passed to ng-repeat -->
73-
<div ng-repeat="row in $rows">
74-
75-
76-
<div ng-repeat="column in row">
77-
<!-- ability to define custom columns -->
78-
<!-- ability to virtualize columns too:
79-
<div ng-repeat="column in $columns" ui-virtualize="row as $columns">
80-
-->
81-
</div>
82-
83-
<!-- or pretty much a default template of the above snippet ^^ -->
84-
<ui-grid-row data="row"></ui-grid-row>
85-
86-
</div>
87-
</div>
88-
</div>
89-
```
90-
91-
> 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.
92-
> Declarative pinning might look something like this?
93-
> rob
94-
95-
```html
96-
97-
<div class="grid">
98-
<!-- probably a new implementation of sortable or just renamed to ui-reorder, etc -->
99-
<div ui-grid-header ui-pinnable="data.columns" ui-sortable="data.columns">
100-
<!-- how to mark-up pinned columns so they align with resepective pinned grid-body below? -->
101-
<div ng-repeat="column in data.columns">
102-
{{ column }}
103-
<!-- Pinning is handled by heading row only, updated $pinnable object reflects changes to body automatically -->
104-
<a ng-click="$pinnable.pin(column, 'left')">Pin</a>
105-
</div>
106-
</div>
107-
<div class="grid-body" ui-virtualize="data.rows as $rows">
108-
<div ng-repeat="row in $rows">
109-
<!-- ui-pinnable creates a subset of columns -->
110-
<div ng-repeat="column in $pinnable.unpinned" ui-editable="row[column]">
111-
{{ row[column] }}
112-
</div>
113-
</div>
114-
</div>
115-
<!-- left and right pin-tables might be auto-generated by cloning the body table in compile phase -->
116-
<div class="grid-body pinned left" ui-virtualize="data as $rows">
117-
<div ng-repeat="row in $rows">
118-
<div ng-repeat="column in $pinnable.left" ui-editable="row[column]">
119-
{{ row[column] }}
120-
</div>
121-
</div>
122-
</div>
123-
<div class="grid-body pinned right" ui-virtualize="data as $rows">
124-
<div ng-repeat="row in $rows">
125-
<div ng-repeat="column in $pinnable.right" ui-editable="row[column]">
126-
{{ row[column] }}
127-
</div>
128-
</div>
129-
</div>
130-
</div>
131-
```
132-
133-
134-
# CSS
135-
```css
136-
.pinned.left {
137-
float: left;
138-
}
139-
.pinned.right {
140-
float: right;
141-
}
142-
```
1+
Moved to https://docs.google.com/document/d/1fk7EwwJUGq3MTXaE6vp29rA4sXgzp5DA_rn_ERcPIz8/edit?usp=sharing
2+
(Please sign-in to google so that we know who changed what for followup questions)

planning30.md

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Meeting minutes
2+
https://docs.google.com/a/singletreetech.com/document/d/1y6Yy0wgLvlOu8UbSnSDFo1QmQvnjapAMYVQj-Td1jB0/edit#

0 commit comments

Comments
 (0)