Now that we have the accordion drawer prototype (https://bugzilla.mozilla.org/show_bug.cgi?id=756272), lets integrate it with the actual app.
Drawer code written in the branch has been reconciled and merged with the latest from default in Pancake repository https://bitbucket.org/mozillapancake/pancake/changesets/tip/branch%28%22accordion-drawer%22%29 https://bitbucket.org/mozillapancake/pancake/changeset/8ea34c8e9420
TODO: * Unit tests * Click handler for stacks should create a "now" era if one does not already exist * Parse method for Eras * fetch/save configuration for Eras
Need to write tests for: LiveCollection move() ListView moveView() ListView appendView() ListView register() ListView deregister() ListView registerAll() ListView lookup() ListView views() PlaceCollection stack() BaseModel.subcollection() Need to remove or deprecate: LiveCollection put()
Just found an issue related to https://bitbucket.org/mozillapancake/pancake/changeset/8dd9aea88ebe. PlaceCollection::add() requires a stack() to decorate incoming models. However, add() is called before initialize() (during construction), and initialize() is where we overshadow PlaceCollection::stack(). Any stack that was passed in via options just isn't configured yet.
(In reply to Gordon Brander :gbrander from comment #5) > PlaceCollection::add() requires a stack() to decorate incoming models. > However, add() is called before initialize() (during construction), and > initialize() is where we overshadow PlaceCollection::stack(). Any stack that > was passed in via options just isn't configured yet. Resolved by https://bitbucket.org/mozillapancake/pancake/changeset/5ccdee3d0613
Added test suite for LiveCollection move() https://bitbucket.org/mozillapancake/pancake/changeset/7951898fc29d
Test suites written so far (* denotes "done"): * LiveCollection move() - ListView appendView() * ListView register() * ListView deregister() * ListView deregisterAll() * ListView lookup() * ListView views() * ListView "add" event handler * ListView "remove" event handler * ListView "move" event handler * ListView resetViews clears and re-builds registry. * PlaceCollection stack() * BaseModel.subcollection()
Added test for appendView() https://bitbucket.org/mozillapancake/pancake/changeset/5edc11949590
Router will need 3 routes now: stack/:stack_id stack/:stack_id/:session_id stack/:stack_id/:session_id/:place_id (or maybe stack/:stack_id/:place_id)
In order to avoid having to tackle https://bugzilla.mozilla.org/show_bug.cgi?id=760184 in M3, we're going to implement the accordion drawer **without sessions**. Work on this was started in https://bugzilla.mozilla.org/show_bug.cgi?id=760606, and continues in branch https://bitbucket.org/mozillapancake/pancake/changesets/tip/branch(%22accordion-drawer-no-eras%22).
Lots of progress has been made, as of https://bitbucket.org/mozillapancake/pancake/changeset/ff164bfd05c3. * Stacks and places are now correctly parsed when returned from server. * Stack and place can now be selected via router (stateless drawer) * Click handlers have been updated to pipe everything state-related through router.
TODO: * Moving stacks to the top when active * Loadingback for places * Test for promisePlaces * Test for promiseStacks * Communication with Lattice (warps) * Hooking up from-server events to routes
(In reply to Gordon Brander :gbrander from comment #14) > TODO: > * Communication with Lattice (warps) > * Hooking up from-server events to routes Done. I still want to do some additional smoke testing of navigation and warp behavior.
(In reply to Gordon Brander :gbrander from comment #14) > TODO: > > * Moving stacks to the top when active Working in https://bitbucket.org/mozillapancake/pancake/changesets/tip/branch%28%22accordion-drawer-move-stack%22%29, but performance is not anywhere close to 60fps. Currently exploring approaches to improving performance.
As of https://bitbucket.org/mozillapancake/pancake/changeset/a5beac6e4fcd, getting pretty close to 60fps on the desktop, due to some creative waterfalling and avoidance of repaints. There are some height calculation issues that need to be addressed, though.
When play is slow, using the drawer is frustrating. I'm going to work on adding loading indicators so we can respond to user actions immediately, rather than when we have data ready.
Additionally, working on a branch of the drawer that makes better use of the browser's reflow calculation to position items. Follow progress in https://bitbucket.org/mozillapancake/pancake/changesets/tip/branch%28%22drawer-perf%22%29
As of https://bitbucket.org/mozillapancake/pancake/changeset/93895ed6a217, the drawer-perf branch is ready to merge with default.
Status: ASSIGNED → RESOLVED
Last Resolved: 6 years ago
Resolution: --- → FIXED
Verified 6/26/2012 Dev build
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.