Fix parent-child links when re-arrangning tasks
This commit is contained in:
parent
d259b5d88f
commit
5ef856ad6b
1 changed files with 12 additions and 3 deletions
|
@ -560,7 +560,7 @@ function rcube_tasklist_ui(settings)
|
||||||
oldid = rec.tempid || id,
|
oldid = rec.tempid || id,
|
||||||
oldrec = listdata[oldid],
|
oldrec = listdata[oldid],
|
||||||
oldindex = $.inArray(oldid, listindex),
|
oldindex = $.inArray(oldid, listindex),
|
||||||
oldparent = oldrec && (oldrec._old_parent_id || oldrec.parent_id),
|
oldparent = oldrec ? (oldrec._old_parent_id || oldrec.parent_id) : null,
|
||||||
list = me.tasklists[rec.list];
|
list = me.tasklists[rec.list];
|
||||||
|
|
||||||
if (oldindex >= 0)
|
if (oldindex >= 0)
|
||||||
|
@ -575,14 +575,23 @@ function rcube_tasklist_ui(settings)
|
||||||
var oldchilds = listdata[oldparent].children,
|
var oldchilds = listdata[oldparent].children,
|
||||||
i = $.inArray(oldid, oldchilds);
|
i = $.inArray(oldid, oldchilds);
|
||||||
if (i >= 0) {
|
if (i >= 0) {
|
||||||
oldchilds = oldchilds.slice(0,i).concat(oldchilds.slice(i+1));
|
listdata[oldparent].children = oldchilds.slice(0,i).concat(oldchilds.slice(i+1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// register a forward-pointer to child tasks
|
// register a forward-pointer to child tasks
|
||||||
if (rec.parent_id && listdata[rec.parent_id] && listdata[rec.parent_id].children && $.inArray(id, listdata[rec.parent_id].children) >= 0)
|
if (rec.parent_id && listdata[rec.parent_id] && listdata[rec.parent_id].children && $.inArray(id, listdata[rec.parent_id].children) < 0)
|
||||||
listdata[rec.parent_id].children.push(id);
|
listdata[rec.parent_id].children.push(id);
|
||||||
|
|
||||||
|
// restore pointers to my children
|
||||||
|
if (!listdata[id].children) {
|
||||||
|
listdata[id].children = [];
|
||||||
|
for (var pid in listdata) {
|
||||||
|
if (listdata[pid].parent_id == id)
|
||||||
|
listdata[id].children.push(pid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (list.active)
|
if (list.active)
|
||||||
render_task(rec, oldid);
|
render_task(rec, oldid);
|
||||||
else
|
else
|
||||||
|
|
Loading…
Add table
Reference in a new issue