Last Comment Bug 679696 - Identity picker on compose window is hard to use when you have a lot of identities
: Identity picker on compose window is hard to use when you have a lot of ident...
: ux-efficiency, ux-error-prevention
Product: Thunderbird
Classification: Client Software
Component: Message Compose Window (show other bugs)
: Trunk
: All All
-- enhancement with 1 vote (vote)
: Thunderbird 18.0
Assigned To: :aceman
Depends on: identity_ordering 793819
Blocks: 793135
  Show dependency treegraph
Reported: 2011-08-17 07:09 PDT by Dave Miller [:justdave] (
Modified: 2012-10-01 16:20 PDT (History)
9 users (show)
ryanvm: in‑testsuite-
See Also:
Crash Signature:
QA Whiteboard:
Iteration: ---
Points: ---

patch (4.74 KB, patch)
2012-09-20 14:01 PDT, :aceman
no flags Details | Diff | Splinter Review
patch v2 (2.67 KB, patch)
2012-09-22 14:51 PDT, :aceman
bwinton: ui‑review-
Details | Diff | Splinter Review
patch v3 (2.92 KB, patch)
2012-09-24 12:57 PDT, :aceman
bwinton: ui‑review+
Details | Diff | Splinter Review
patch v4 (3.15 KB, patch)
2012-10-01 11:28 PDT, :aceman
mkmelin+mozilla: review+
bwinton: ui‑review+
Details | Diff | Splinter Review
patch v5 (3.85 KB, patch)
2012-10-01 13:06 PDT, :aceman
acelists: review+
Details | Diff | Splinter Review

Description User image Dave Miller [:justdave] ( 2011-08-17 07:09:20 PDT
I participate in a lot of "role" addresses in my duties as a sysadmin, many of which are set up in Thunderbird as available addresses to send mail from.  Thus my identity picker on the compose window has about 50 addresses in it, with some on each of my mail accounts.

90% of the time when I'm manually setting an identity, I actually want the primary identity for an account, just a different one than it defaulted to.  The primary identities are hard to find because they look just like the rest of them.

Two possible solutions for this:
1) Make the primary identities all show as boldface in the menu


2) Draw a divider line between each account's identities within the menu, which will still make primary identities easy to spot, since they're the first one within each group.
Comment 1 User image Dave Miller [:justdave] ( 2011-08-17 07:11:40 PDT
What made me realize I should file this was because someone was asking me about using mailto: links and I wound up having to explain to they why I do right-click "Copy Email Address" in Firefox in order to paste the address into Thunderbird instead of just clicking the link.  And that explanation was that it's too hard to find the primary identities in the menu, and it was easier to choose the inbox from the account I wanted and then hit the "Write" button.
Comment 2 User image Barrie 2012-01-02 11:26:36 PST
I too have a large number of identities but the reason is that I use a specific address for each organisation I deal with (similar to disposable addresses) but these are attached to a single account. The proposed solutions would therefore not help me. The identity picker is a nightmare because (a) the list is not sorted into any logical order, (b) the list order cannot be changed and (c) the list cannot be searched. Providing any or all of these capabilities would be a great help.
Comment 3 User image :aceman 2012-09-20 03:38:34 PDT
Comment 0 is an interesting proposal. I can look at it.

Barrie, for (b) see bug 384303 and bug 314806.
Comment 4 User image :aceman 2012-09-20 12:33:26 PDT
Bwinton, Mkmelin, which option would you like from comment 0?
Comment 5 User image Blake Winton (:bwinton) (:☕️) 2012-09-20 13:10:10 PDT
I think either would be fine…
Comment 6 User image :aceman 2012-09-20 14:01:00 PDT
Created attachment 663159 [details] [diff] [review]

So make the default identities bold. I wanted to do a border too, but it wasn't ignored. Am I doing something wrong? Maybe there can't be border set on menulist items?
Comment 7 User image :aceman 2012-09-20 14:03:08 PDT
I mean the border WAS ignored (not shown).
Comment 8 User image :aceman 2012-09-20 14:09:06 PDT
Maybe Seamonkey guys would want this too.
Comment 9 User image 2012-09-21 13:50:30 PDT
Comment on attachment 663159 [details] [diff] [review]

[I know, you haven't asked for code review yet...]

>+  let result = [];
>+  for each (let member in fixIterator(supportsArray, iid))
>+    result.push(member);
>+  return result;
Or you could use toArray(fixIterator(...))

>+    let firstIdentity = true;
>+    for each (let identity in identites) {
>+      let item = menulist.appendItem(identity.identityName, identity.key,
>                                      account.incomingServer.prettyName);
>       item.setAttribute("accountkey", account.key);
>+      if (firstIdentity) {
Now this is where a simple for/next loop wins, since you can just use if (!index)

>+        item.setAttribute("class", "defaultIdentity");
item.setAttribute("default", "true"); also works.
Comment 10 User image Jim Porter (:squib) 2012-09-21 14:18:26 PDT
(In reply to :aceman from comment #6)
> So make the default identities bold. I wanted to do a border too, but it
> wasn't ignored. Am I doing something wrong? Maybe there can't be border set
> on menulist items?

Do you just want a <menuseparator>?
Comment 11 User image :aceman 2012-09-22 13:00:22 PDT
Squib, that could be a solution too. I can try that.
Comment 12 User image :aceman 2012-09-22 13:01:12 PDT
(In reply to from comment #9)
> >+        item.setAttribute("class", "defaultIdentity");
> item.setAttribute("default", "true"); also works.
How does this work?
Comment 13 User image :aceman 2012-09-22 14:51:51 PDT
Created attachment 663757 [details] [diff] [review]
patch v2

New version, incorporating the goodies from squib and Neil.
Comment 14 User image Blake Winton (:bwinton) (:☕️) 2012-09-24 08:26:57 PDT
Comment on attachment 663757 [details] [diff] [review]
patch v2

If we only have one identity for each account (which I believe is the usual case), then the lines look a little weird, and make the list take up twice as much space.  Could we only have the lines above and below if there is more than one identity for the account?  Also, what happened to bolding the default account (which we seem to do in the Manage Identities pane, so I think we should be consistent here if at all possible).

ui-r- so that I can check out the other two options.

Comment 15 User image :aceman 2012-09-24 12:57:31 PDT
Created attachment 664172 [details] [diff] [review]
patch v3

So this should fix the separators and I have filed bug 793819 to sort out the bold styling of default=true globally.
Comment 16 User image Blake Winton (:bwinton) (:☕️) 2012-10-01 07:37:16 PDT
Comment on attachment 664172 [details] [diff] [review]
patch v3

Well, this is close, but if I have an account with two items, and then an account with one item, the separator doesn't seem to show up, as you can see in

ui-r=me with that fixed.

(And, as a code note, I think you might want to move the separator check out of the "for (let i = 0; i < identities.length; i++)" loop, since we only need to insert a separator once per account.)

Comment 17 User image :aceman 2012-10-01 11:28:58 PDT
Created attachment 666628 [details] [diff] [review]
patch v4
Comment 18 User image Blake Winton (:bwinton) (:☕️) 2012-10-01 11:44:41 PDT
Comment on attachment 666628 [details] [diff] [review]
patch v4

(Since you fixed the only thing I complained about, you could have carried forward the ui-r=me, but just to make it official, ui-r=me.  ;)

Comment 19 User image Magnus Melin 2012-10-01 12:37:29 PDT
Comment on attachment 666628 [details] [diff] [review]
patch v4

Review of attachment 666628 [details] [diff] [review]:

Loos good, aceman! r=mkmelin

::: mail/components/compose/content/MsgComposeCommands.js
@@ +3230,5 @@
>    }
>  }
>  function queryISupportsArray(supportsArray, iid) {
> +  return toArray(fixIterator(supportsArray, iid));

Just drop this method and inline the two callers.
Comment 20 User image :aceman 2012-10-01 13:06:23 PDT
Created attachment 666667 [details] [diff] [review]
patch v5

Ok, thanks. Planned to do that in other bug but no problem with that.
Comment 21 User image Ryan VanderMeulen [:RyanVM] 2012-10-01 16:20:58 PDT

Note You need to log in before you can comment on or make changes to this bug.