git-svn-id: https://192.168.0.254/svn/Proyectos.Incam_SGD/tags/3.7.0.2_original@1 eb19766c-00d9-a042-a3a0-45cb8ec72764
53 lines
1.5 KiB
JavaScript
53 lines
1.5 KiB
JavaScript
function getSibling(elm, which) {
|
|
var ret = elm[which + 'Sibling'];
|
|
|
|
while(!isUndefinedOrNull(ret) && ret.nodeName == '#text') ret = ret[which + 'Sibling'];
|
|
if(isUndefinedOrNull(ret)) return false;
|
|
return ret;
|
|
}
|
|
|
|
function swapItems(first, second) {
|
|
// ALWAYS in order
|
|
toggleElementClass('odd', first, second);
|
|
toggleElementClass('even', first, second);
|
|
first.parentNode.insertBefore(first, second);
|
|
var pos = first.reorderField.value;
|
|
first.reorderField.value = second.reorderField.value;
|
|
second.reorderField.value = pos;
|
|
|
|
}
|
|
|
|
function moveUp() {
|
|
var otherItem = getSibling(this, 'previous');
|
|
if(otherItem) {
|
|
swapItems(this, otherItem);
|
|
}
|
|
return false;
|
|
}
|
|
|
|
|
|
function moveDown() {
|
|
var otherItem = getSibling(this, 'next');
|
|
if(otherItem) {
|
|
swapItems(otherItem, this);
|
|
}
|
|
return false;
|
|
}
|
|
|
|
|
|
function hookReorderDisplay() {
|
|
var container = $('reorder-container');
|
|
if(isUndefinedOrNull(container)) return;
|
|
forEach(getElementsByTagAndClassName('*', 'reorder-item', container), function(item) {
|
|
var up = getElementsByTagAndClassName('*', 'reorder-up', item)[0],
|
|
down = getElementsByTagAndClassName('*', 'reorder-down', item)[0];
|
|
|
|
up.onclick = bind(moveUp, item);
|
|
down.onclick = bind(moveDown, item);
|
|
item.reorderField = getElementsByTagAndClassName('input', 'reorder-field', item)[0];
|
|
});
|
|
}
|
|
|
|
|
|
|
|
addLoadEvent(hookReorderDisplay); |