Portraying diffs in CCK multigroups should be handled differently from normal CCK fields, as each instance of each multigroup should be treated as a field, but with different elements (note: these multigroups are, in practice, most often displayed and edited as tables, with each instance as a row and each element a column).
My thoughts on requirements:
1) Instances removed should be noted
2) Instances added should be noted
3) Instances change should be noted, either only changed elements or show the entire element twice
A few different ideas on how to attack this:
a) Embed a table in the diffs table, noting each row as "removed row", "added row" or "changed row", with "changed row" elements showing changes in changed elements, and current values in other elements.
b) Embed full before/after tables in the diffs table.
I think "a" is probably better, but both seem clumsy to me. Very much looking forward to feedback / thoughts on this!
Comments
Comment #1
danepowell commentedSubscribing
Comment #2
arhak commentedwhen I came across this I thought "a" would suit best
but not so easy to implement, due to the nature of multigroups: they are faked
and when I reviewed it didn't look like going to land someplace steady (its D7 future seems compromised)
Comment #3
obrienmd commentedHrm, maybe I can sponsor a patch for this... I hope multigroups lands in D7 as contrib, at least - it's quite useful, integrates well with views (however 'faked'), and is far more elegant than other noderef-based options. So, arhak, am I to take it that this would be quite low on your priorities list for development internally?
Comment #4
arhak commentedthe earlier the better for CCK's APIs (I mean custom contributed fields, since Fields are in core)
than everything else, as a matter of fact
indeed,
but now that I recall, faked multigroups wasn't the reason to drop it
actually styling the tables was:
- arrange them up to make changed rows be side-by-side
- color styling vs textual signs (theming consistency issues)
- definitely not for "only changed elements", since it would be visual madness
however, I think this is perfectly doable
you'll see, a lot of improvements would be so nice for cdriven, but I don't have that much time
and most of all, advanced features require a lot of testing->feedback->testing->feedback
and I haven't had considerable feedback (while this module doesn't have SimpleTests)
so I'm being cautious when taking features in,
I'm still waiting for proper feedback on dates (or any advanced field)
for instance, you're the only one pushing for multigroups
and in addition, CCK 3.x doesn't land
(which BTW is a wise call from its maintainers, until having at least a glimpse of an upgrade path)
Comment #5
obrienmd commentedindeed,
but now that I recall, faked multigroups wasn't the reason to drop it
actually styling the tables was:
- arrange them up to make changed rows be side-by-side
- color styling vs textual signs (theming consistency issues)
- definitely not for "only changed elements", since it would be visual madness
however, I think this is perfectly doable
So, how may I best help you in this endeavor? Sponsor development? Intensive testing?