managing of contacts in multiple groups is broken
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Coccinella |
Fix Released
|
Medium
|
buzzdee |
Bug Description
When having a contact in mulitple groups, e.g. ContactA in groupA and groupB.
When using RMB on a contact to edit contact, then both groups are shown in the list.
it is A) not possible with coccinella to add a contact to more than one group. Or is there a hidden way to do so, Sander?
and B) when removing a group (setting the value in the field to None or removing its contents)
and clicking save, then the contact is removed from the online contacts and only shown in the respective groups below
the offline contacts
And C) when someone changes the group assignments (adding the contact to other groups) with another client (e.g. tkabber) while also online with coccinella: The same as in B) happens
And D) in case a user is assigned to more than one group, it is possible to select the same group multiple times, without a warning or notice message. (however, only one group item is sent to the server in the roster update, so the duplicates get filtered out)
proposed solution for A) and D):
change the edit contact dialog to look like the one of tkabber, see appended screenshot.
proposed solution for B) and C):
fix it ;)
I should probably fix this, at least the problems shown in B) and C) before going on with #150360
Changed in coccinella: | |
status: | Fix Committed → Fix Released |
Problem B) and C) only seems to happens when I try to put myself in two groups.
I also get this exception message now, when I login:
preshook ::namespace inscope ::Roster PresenceEvent failed: 1 :SetItemAlterna tive" line 5) $name,setItemAl t) $jid $key image $value" AltImages" line 8) AltImages $jid" :StyleCreateIte m" line 6) :StyleCreateIte m $jid "available" -name buzz -groups {Coccinella Cacher} -subscription none -resource Coccinella@sre -type available" :StyleCreateIte m $jid "available" roster, multi-resources ) {
bad modifier "88": must be above, ancestors, below, bottom, child, children, descendants, firstchild, lastchild, left, leftmost, next, nextsibling, parent, prev, prevsibling, right, rightmost, sibling, or top
while executing
"$T item element configure $item cTree $elem -image $image"
(procedure "SetAltImage" line 29)
invoked from within
"SetAltImage $jid $key $value"
(procedure "::RosterPlain:
invoked from within
"$plugin(
(procedure "StyleConfigure
invoked from within
"StyleConfigure
(procedure "::RosterTree:
invoked from within
"::RosterTree:
("eval" body line 1)
invoked from within
"eval {
::RosterTree:
} $itemAttr [array get presA]"
("highest-prio" arm line 15)
invoked from within
"switch -- $config(
"highest-prio" {
# Add only the one with highest priority. /Coccinella@ sre -type available -resource Coccinella@sre -xmldata {presence {from sebastia@l00..." /Coccinella@ sre xml:lang en to <email address hidden> /Coccinella@ sre} ..." /Coccinella@ sre xml:lang en to sebastia@ l00-bugd. .." :SetItemAlterna tive" line 5) $name,setItemAl t) $jid $key image $value" AltImages" line 8) AltImages $jid" :StyleCreateIte m" line 6) :StyleCreateIte m $jid "available" -name buzz -groups {Coccinella Cacher} -subscription none -resource Coccinella@sre -type available"
set jid2 [jlib::barejid $jid]
..."
(procedure "NewAvailableItem" line 11)
invoked from within
"NewAvailableItem $rjid"
(procedure "Presence" line 70)
invoked from within
"Presence $jid3 $type -from <email address hidden>
("eval" body line 1)
invoked from within
"eval {Presence $jid3 $type} $opts"
(procedure "PresenceEvent" line 63)
invoked from within
"PresenceEvent ::jlib::jlib1 {presence {from <email address hidden>
(in namespace inscope "::Roster" script line 1)
invoked from within
"::namespace inscope ::Roster PresenceEvent ::jlib::jlib1 {presence {from <email address hidden>
("uplevel" body line 1)
invoked from within
"uplevel #0 $func [list $jlibname $xmldata]"
bad modifier "88": must be above, ancestors, below, bottom, child, children, descendants, firstchild, lastchild, left, leftmost, next, nextsibling, parent, prev, prevsibling, right, rightmost, sibling, or top
while executing
"$T item element configure $item cTree $elem -image $image"
(procedure "SetAltImage" line 29)
invoked from within
"SetAltImage $jid $key $value"
(procedure "::RosterPlain:
invoked from within
"$plugin(
(procedure "StyleConfigure
invoked from within
"StyleConfigure
(procedure "::RosterTree:
invoked from within
"::RosterTree:
("eval" b...