Support having no special colors for a given friend
Short, concise description of the idea
Have the option of not selecting colors for a friend.
Full description of the idea
When adding a friend, users are able to pick a foreground and background color to associate with that user. The color is then supposed to be used in some way on the user's friends page.
However, if the user doesn't pick a color set the system just stores black on white. This is often not what the user wants. In most cases where the user picked no color they are likely to have meant "just use my layout colors".
There should be the option not to specify any colors at all. This would be indicated by some kind of flag in S2 allowing the S2 layout to do whatever it would normally have done and not use the colors at all.
- Users can elect not to use friends colors and instead have the entries display in a uniform matter.
- Users who have until now picked colors that resembled those their layout would have used will no longer have to laboriously reconfigure them when they change their color schemes.
- Layouts will no longer have to all separately implement a switch to turn off friends colors. Any time you've got every layout reimplementing the same thing it's a good clue that it should really be handled at some other point in the system.
- Users can elect to pick special colors for certain friends but not others -- a choice not possible with just a boolean switch for the layout as a whole.
An ordered list of problems/issues involved
- The DB schema doesn't currently allow for storing "no colors".
- Existing S2 layouts won't support this and will have to be upgraded. For compatibility's sake, the bgcolor and fgcolor fields could be filled with the current black on white to help out the layouts that aren't ready yet.
An organized list, or a few short paragraphs detailing suggestions for implementation
- Represent this in the database by storing the colors as NULL.
- Add a flag to the S2 Friend class indicating the lack of colors.
- As described above, pass in the current default as the colors for these friends to help out layouts that don't yet support the special flag.
- In the "add friends" UI, add a checkbox to allow the user to turn on special colors which is off by default. When the user turns it on, the checkboxes to pick a color become available.