Updates some todos.
authorDavid Schoonover <dsc@wikimedia.org>
Tue, 22 May 2012 13:13:41 +0000 (06:13 -0700)
committerDavid Schoonover <dsc@wikimedia.org>
Tue, 22 May 2012 13:13:41 +0000 (06:13 -0700)
docs/internals/housekeeping.md [new file with mode: 0644]
docs/todo.md

diff --git a/docs/internals/housekeeping.md b/docs/internals/housekeeping.md
new file mode 100644 (file)
index 0000000..978169b
--- /dev/null
@@ -0,0 +1,63 @@
+# Housekeeping
+
+## Base
+- BaseModel
+    - `.fromURL()` -- use `.chartType.parseValue k, v` for parsers
+- BaseView
+    - `.modelEvents` or maybe `.events.{ el, model, view... }`
+- AppView for common `main()` tasks
+- ScaffoldView: generic form for a model's fields
+    - Bootstrap horizontal-form
+    - Hooks for filtering visibility
+    - Controls: Save, Load, Cancel; Delete
+
+
+## Edit UI
+- Backbone.Router?
+- Loading Indicator:
+    - Render UI at start with `loading` mode, showing placeholders and indicator
+    - Activate Loading Spinner post-ready when waiting
+
+
+## Data UI
+- Timespan compat check
+- Metric: `column_idx` -> `column_id`
+- Tab-pane height fix? all `inline-block`: `<dataset-pane> <sep-line height="100%"> <metric-edit-panes>`
+- Should data files have timespan in name?
+
+
+## Graph Options UI
+- `tags.json` to describe colors, sorting, ignored-tags
+- Outline modified
+- Fix UI pill color when expanded
+- Filter:
+    - by major Categories: labels, grid, axes, display, interactivity
+    - by Tag (collapsable box)
+    - via typeahead box: names + tags
+- Sort
+    - by: Modified, Importance, Tag, Lexical
+    - Use `categoryRows`
+- Derived Options:
+    - visibility
+    - colors
+    - dateWindow
+    - file
+    - width, height
+- Buttons: Reset {all,visible} to defaults
+
+
+## Misc
+- Generate markdoc wiki from `/docs` on Build, Deploy
+- Refactor directories:
+    - template/
+        graph/
+        chart/
+        data/
+        dashboard/
+    - dataset/ -> data/
+        dataset/ +metric
+        datasource/ +column
+    - scaffold/ -> base/scaffold/
+    - timeseries/ -> util/timeseries/
+- Wrap `Backbone.extend()` to fire `subclass` event on parent class
+
index 308bdab..9b16166 100644 (file)
@@ -1,54 +1,55 @@
 # todo
 
-### general
-- Library for undo/redo
-- LocalStorage for unsaved changes, so accidental refresh (etc) doesn't lose changes
-- Wrap `Backbone.extend()` to fire `subclass` event on parent class
+## GitHub Migration
+- Replace all instances of "Kraken" and "GraphKit" with "Limn"
+- Create library entry point & config
+- Resolve workflow for /data
+    - Extract history for /data, re-commit metadata files
+- Update & scrub docs & readme
+- Migrate tickets from Asana to GitHub issues
+- Webhook to push to Gerrit (on analytics.wmflabs.org?)
 
 
-### Dashboard
-- Sparklines
-- Combine graphs
-- Featured Graphs (reportcard)
-- Browse Graphs
-    - New
-    - Recently Edited
-    - Popular
-- Graph tags as categories (searchable?)
-- Users & Auth
-- "Fork this Graph"
-- User-relative slugs? `/user/:user/graph/:graph.slug/`
 
+## Features
 
-### View for show Graph
-- Embedding: iframe URL, `.js`
+### Display UI
+- Toggle Per-Metric Visibility
+    - Should redraw axes & scaling
+- Keyboard Shortcuts:
+    - Zoom to last 3 months
+    - Zoom out
+    - Pan left/right by timestep
+- Callout: current key-metric; YoY%, MoM% for key-metric
+
+
+### Charting
+- Better Benchmark Line on the graph
+- Per-series styles
+- Meta-metrics:
+    - Year-over-year
 
 
 ### Edit UX
 - Info & Alert message boxes, eg: save, load success/error, validation
 - Visual indicator graph is unsaved or has changes
-- Fields in `info` tab for graph identifiers:
-    - short URL (slug only)
-    - full URL (no slug -- all options)
-    - embed code (iframe with .js pointer)
-- Loading Indicator:
-    - Render UI at start with `loading` mode, showing placeholders and indicator
-    - Activate Loading Spinner post-ready when waiting
 - Keyboard Shortcuts:
     - Move between tabs
     - Zoom/pan chart
     - Focus on form?
     - Manipulating datasources and other complex forms (up, down, select, back, etc)
-- Standard-view layout
-- Fixed Chart at top?
+- Fields in `info` tab for graph identifiers:
+    - Short URL (slug only)
+    - Full URL (no slug -- all options)
+    - Embed code (iframe with .js pointer)
+- Standard-view preview
 - Bold/darken numeric portion of formatted legend? Decrease size, change color of KMB suffix?
-- Load dygraph chart-spec on demand
 
 
 ### GraphModel
-- Use dataset name for Graph.name if empty
-- Cascade dataset chart-type defaults before `root`?
-- toURL():
+- Use dataset name for `Graph.name` if empty
+- Cascade dataset chart-type defaults before `root`
+- `.toURL()`:
     - Slug only if not `.isNew()`
     - Filter `id` out
     - Diff with last saved state
         - `dataset` -> `d`
 - Graph Options (non-chart options):
     - `palette`: String | { name:String, length:Number }
-        - `name`: Infer colors from ColorBrewer + index
-        - `columns`: Use this as column-length
     - Zoom range: `dateWindow`
-    - redraw graph on page resize
-- Backbone.Router, history w/ undo/redo
+    - redraw graph on page resize?
+- history w/ undo/redo
 - "Save as PNG" link; post PNG to server
 
 
 ### Data UI
-- CSV cache: Load and parse
-- Split `transform` out from `CSVData` as a wrapper
-- `ModelCache.lookup(id | ids[], cb, ctx)`
-- Add CacheableModel & List w/ instance methods:
-    - `CacheableModelList.lookup(id | ids[], cb, ctx)`
-
-- Sources Selector: list datasets via YAML metadata descriptor files (`/datasources/list` -> UI)
-- Metric Selector: select metrics out of multiple dataset & graph together
+- Controls:
+    - Delete metric
+    - Reorder metrics
+    - "Import All..." Button: import all cols from a datasource
+        - Backwards compat with `dataset` URL-field
+- Global Settings Pane w/ Palette, etc
+    - `palette`: String | { name:String, length:Number }
 - Metric Presentation:
     - label, color
     - Date range selector & scrubber?
     - Step compat check
     - Use `step` to format date legend/labels (`1mo`? omit day, eg `2012/01`)
     - Date picker
-- Graph Options:
-    - `palette`: String | { name:String, length:Number }
-        - `name`: Infer colors from ColorBrewer + index
-        - `columns`: Use this as column-length
 - Apply `meta.chart.{type, options}`
-- Should data files have timespan in name?
-
-
-### Charting
-- Finish Chart & Chart wrapper
-- Benchmark line on the graph
-- Per-series styles
-- Meta-metrics:
-    - Year-over-year
 
 
 ### Annotations
-- Click chart to add an Annotation
 - Props:
     - label/title
     - desc/text: markdown
     - show
     - hide
 - UI for icon?
+- Click chart to add an Annotation
 
 
-### Graph Options UI
+### Chart Options UI
 - `tags.json` to describe colors, sorting, ignored-tags
 - Outline modified
 - Fix UI pill color when expanded
     - by: Modified, Importance, Tag, Lexical
     - Use `categoryRows`
 - Derived Options:
-    - visibility
-    - colors
-    - dateWindow
-    - file
-    - width, height
-- Buttons: Reset {all,visible} to defaults
+    - `visibility`
+    - `colors`
+    - `dateWindow`
+    - `file`
+    - `width`, `height`
+- Buttons: Reset {all,visible} to Defaults
 
 
-### Server-side Persistence
+### Server
 - Prompt to override slug
 - Generate UUID for `Graph.id`
+- Embedding endpoints: iframe URL, `.js`
+
 
+### Admin UIs
+- Manage saved Graphs
+- Create new DataSource
+- User/Group management
 
 
+### Dashboard
+- Combine Graphs UI
+- Featured Graphs (reportcard)
+- Browse Graphs
+    - New
+    - Recently Edited
+    - Popular
+- Graph tags as categories (searchable?)
+- Users & Auth
+- "Fork this Graph"
+- User-relative slugs? `/user/:user/graph/:graph.slug/`
+- Sparklines
+
+
+
+
+
+
+
+## Future
+
+### General Wishlist
+- Library for undo/redo
+- LocalStorage for unsaved changes, so accidental refresh (etc) doesn't lose changes
 
-## notes
 
-### UI Notes from Diederik (Future)
+### from Diederik
 
 - Relationships between datasets which can help inform rich UI responses (click on "Europe" and have it expand to the countries)
 - easily create new graphs side-by-side