Here's a brute-force workaround for Firefox, to remove the color picker and just have a text box. I only had to touch three spots in the file message_highlight.php:
Line 25:
Comment out the color picker Javascript file
// myt $this->include_script('colorpicker/mColorPicker.js');
Line 109:
Change the control to a text field
// myt $color = html::tag('input', array('id' => uniqid() ,'name' => '_mh_color[]' ,'type' => 'color' ,'text' => 'hidden', 'class' => 'mh_color_input', 'value' => $color));
$color = new html_inputfield(array('name' => '_mh_color[]', 'class' => 'rcmfd_mh_input', 'type' => 'text', 'autocomplete' => 'off', 'value' => $color));
Line 121:
Change the method to extract the data from the control
// myt html::span('mh_color', Q($this->gettext('mh_color'))) .
// myt $color .
$color->show() .
These changes will work in any browser that Roundcube works in to begin with.
Just as a bit of feedback. I was able to try the color picker, even though it wouldn't actually save the values. I found it pretty awkward to use. When typing in values, if I accidentally moved the mouse over the swatch while moving to the "Add Row" or "Save" buttons it would change the value, losing my data. If I clicked outside of the picker to make it go away, it would often discard my change. And just trying to decide exactly where to click in the box didn't seem to have enough feedback. It felt random.
Golden Rule of Programming: Don't lose the user's data.
I don't know if you've seen Squirrelmail's message highlight color picker. It's pretty brute-force, but very easy to use. In addition to the text field to type in a value, there are either 32 or 64 common colors shown as labels to radio buttons. It takes up a lot of screen space, and it's not elegant, but it's bullet-proof. And, it makes it much easier to repeat colors from one entry to the next.
And I guess this would count as a feature request. One other thing that their picker had was a label you could add to each highlight entry. I would use this as a reminder of what a particular entry was there for, so that I didn't have to look at the match criterion and try to decipher it and remember what I was checking for.
Drake