Closed Bug 800996 Opened 12 years ago Closed 11 years ago

Work - Implement Context App Bar buttons

Categories

(Firefox for Metro Graveyard :: Firefox Start, defect)

x86
Windows 8.1
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
Firefox 23

People

(Reporter: ally, Assigned: sfoster)

References

Details

(Keywords: feature, ux-consistency, Whiteboard: feature=work)

Attachments

(1 file)

      No description provided.
OS: Mac OS X → Windows 8 Metro
Whiteboard: [metro-mvp] → [metro-mvp] [LOE:?]
I think we'll want this for functionality on start screen tiles, like pinning/removing/editing items from the various start screen grids.  The same applies to other "tile" UI like the download manager.

It should work like a standard Metro tile view (for example, the Windows start screen):

* A short vertical swipe or a right-click selects or de-selects a tile.
* Selected tiles are visually highlighted with a border and a check icon.
* While any tile(s) are selected, the appbar appears, offering contextual actions for the selected items.
Keywords: ux-consistency
Whiteboard: [metro-mvp] [LOE:?] → [metro-mvp][LOE:2][metro-it1]
Whiteboard: [metro-mvp][LOE:2][metro-it1] → [metro-mvp][LOE:2][metro-it2]
Blocks: 794135
Assignee: nobody → sfoster
Depends on: 828510
Depends on: 829056
The context app bar is an app bar that's used to manage selected or otherwise active content. This group of stories covers the primary use cases for the context app bar which are not covered in other feature specific stories.
Assignee: sfoster → asa
Summary: implement context sensitive AppBar → Context app bar
Whiteboard: [metro-mvp][LOE:2][metro-it2] → epic [metro-mvp][LOE:2][metro-it2]
Depends on: 831934
Depends on: 831935
Depends on: 831937
Depends on: 831938
Priority: -- → P1
Blocks: metrov1
Priority: P1 → --
Blocks: 832105
Whiteboard: epic [metro-mvp][LOE:2][metro-it2] → feature=epic
Summary: Context app bar → Epic - Context App Bar
No longer blocks: 801161
No longer blocks: 801163
No longer blocks: 801166
No longer blocks: 832105
No longer depends on: 829056
I've removed most of the depends and blocks; in practice we want to land this independent of the various awesome screen behaviors that will use it. Provided those publish/notify and listen for the right events they can be worked without this, with just a final integration ticket needed to verify the user interaction
Assignee: asa → sfoster
No longer blocks: 801146, 808770, 812291, 794135
No longer depends on: 828510, 831934, 831935, 831937, 831938
Making this a work item rather than an epic - as it is a feature that is a part of a several other stories, rather than the other way around. 

The tile selection behavior is specified elsewhere (#831915). 

Will need UX eventually for button icons and tray design/behavior
Summary: Epic - Context App Bar → Work - Implement Context App Bar buttons
Whiteboard: feature=epic → feature=work
Blocks: 831934
No longer blocks: metrov1
Some of this landed in https://hg.mozilla.org/projects/elm/rev/35e219b514cc, as a part of #834190. The buttons and container are temporarily hidden in browser.xul to avoid confusion (as they don't yet do anything). Also, because of this ticket. 

We need icons/button treatment for several contextual actions, such as:  

* pin the selected tile(s) at their current position in the grid (e.g. top sites)
* unpin the selected tile(s) (e.g. top-sites)
* block (effectively remove/delete) the selected tile(s) (e.g. top-sites)
* remove the selected tile(s) (e.g. bookmark, history)

These have their own user stories, for this work we need a general button treament, any behavior and animation when we show/hidden buttons, and what should happen when there are no matching contextual actions for the current selection.
No longer blocks: 831934
Blocks: 831899
Blocks: 831934
No longer blocks: 831899
No longer blocks: 831934
Blocks: 835623
Component: General → Firefox Start
Version: unspecified → Trunk
There are new icons on https://bugzilla.mozilla.org/show_bug.cgi?id=836387, which include new unpin states, a clear selection icon and restore icon. 

Also, talked with Shorlander about transitions. The windows start screen fades in/out the icons as you select different tiles. We'll shoot to emulate that.
* Update contextual action images with new states
* Add clear-selection action when > 1 tiles are selected
* Moved context-actions event handler out of TopSites and into richgrid binding, controller.doActionOnSelectedTiles is called where it exists
* Added first-pass at show/hide transitions for the icons as selections change, emulating Windows start screen behavior
Attachment #734672 - Flags: review?(mbrubeck)
Comment on attachment 734672 [details] [diff] [review]
Clear selection, button transitions and refactored context-actions handling

Review of attachment 734672 [details] [diff] [review]:
-----------------------------------------------------------------

::: browser/metro/base/content/Util.js
@@ +138,5 @@
> +    // accept single node or a collection of nodes
> +    aNodes = aNodes.length ? aNodes : [aNodes];
> +    let defd = Promise.defer();
> +    let pending = 0;
> +    Array.forEach(aNodes, function(aNode){

nit: add a space before '{'

@@ +155,5 @@
> +        if (!pending){
> +          defd.resolve(true);
> +        }
> +      }, false);
> +      pending++;

I was going to suggest using join() here instead of a counter, but it looks like our promise implementation doesn't implement join. :(
Attachment #734672 - Flags: review?(mbrubeck) → review+
https://hg.mozilla.org/mozilla-central/rev/56ceb60c5d0b
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 23
OS: Windows 8 Metro → Windows 8.1
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: