Integrate accordion drawer prototype with app

VERIFIED FIXED in M3

Status

Pancake
Front-end
VERIFIED FIXED
6 years ago
6 years ago

People

(Reporter: gordonb, Assigned: gordonb)

Tracking

unspecified
x86
Mac OS X
Dependency tree / graph

Details

(Assignee)

Description

6 years ago
Now that we have the accordion drawer prototype (https://bugzilla.mozilla.org/show_bug.cgi?id=756272), lets integrate it with the actual app.
(Assignee)

Updated

6 years ago
Depends on: 758025
(Assignee)

Comment 2

6 years ago
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
(Assignee)

Comment 3

6 years ago
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
(Assignee)

Comment 4

6 years ago
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()
(Assignee)

Comment 5

6 years ago
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.
(Assignee)

Comment 6

6 years ago
(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
(Assignee)

Comment 7

6 years ago
Added test suite for LiveCollection move() https://bitbucket.org/mozillapancake/pancake/changeset/7951898fc29d
(Assignee)

Comment 8

6 years ago
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()
(Assignee)

Updated

6 years ago
Duplicate of this bug: 751434
(Assignee)

Comment 11

6 years ago
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)
(Assignee)

Updated

6 years ago
Depends on: 760606
(Assignee)

Comment 12

6 years ago
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).
(Assignee)

Comment 13

6 years ago
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.
(Assignee)

Comment 14

6 years ago
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
(Assignee)

Comment 15

6 years ago
(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.
(Assignee)

Comment 16

6 years ago
(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.
(Assignee)

Comment 17

6 years ago
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.
(Assignee)

Comment 18

6 years ago
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.
(Assignee)

Updated

6 years ago
Status: NEW → ASSIGNED
(Assignee)

Comment 19

6 years ago
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
(Assignee)

Comment 20

6 years ago
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.