Skip to content

Instantly share code, notes, and snippets.

@navarr
Created April 25, 2010 01:29
Show Gist options
  • Save navarr/378084 to your computer and use it in GitHub Desktop.
Save navarr/378084 to your computer and use it in GitHub Desktop.
function widgetMoveUp(id)
{
var ele = document.getElementById("widget" + id);
var row = ele.getAttribute("data-row");
var column = ele.getAttribute("data-column");
if(row > 1)
{
var index;
if(document.getElementsByClassName)
{
for(var i = 0;i < ele.parentNode.getElementsByClassName("settings_widget").length;i++)
{
if(ele.parentNode.getElementsByClassName("settings_widget")[i].id == ele.id)
{ index = i;break; }
}
ele.setAttribute("data-row",row - 1);
document.getElementById("widget" + id + "Row").value = row - 1;
ele.parentNode.getElementsByClassName("settings_widget")[index - 1].setAttribute("data-row",row);
document.getElementById(ele.parentNode.getElementsByClassName("settings_widget")[index-1].id + "Row").value = row;
ele.parentNode.insertBefore(ele,ele.parentNode.getElementsByClassName("settings_widget")[index - 1]);
}
else
{
for(var i = 0;i < ele.parentNode.childNodes.length;i++)
{
if(ele.parentNode.childNodes[i].id == ele.id)
{ index = i;break; }
}
ele.setAttribute("data-row",row - 1);
document.getElementById("widget" + id + "Row").value = row - 1;
ele.parentNode.childNodes[index - 1].setAttribute("data-row",row);
document.getElementById(ele.parentNode.childNodes[index-1].id + "Row").value = row;
ele.parentNode.insertBefore(ele,ele.parentNode.childNodes[index - 1]);
}
}
}
function widgetMoveDown(id)
{
var ele = document.getElementById("widget" + id);
var row = ele.getAttribute("data-row");
var column = ele.getAttribute("data-column");
var rows;
if(document.getElementsByClassName) { rows = ele.parentNode.getElementsByClassName("settings_widget").length; }
else { rows = ele.parentNode.childNodes.length; }
if(row < rows)
{
var index;
if(document.getElementsByClassName)
{
for(var i = 0;i < ele.parentNode.getElementsByClassName("settings_widget").length;i++)
{
if(ele.parentNode.getElementsByClassName("settings_widget")[i].id == ele.id)
{ index = i; break; }
}
ele.setAttribute("data-row",row - 0 + 1);
document.getElementById("widget" + id + "Row").value = row - 0 + 1;
ele.parentNode.getElementsByClassName("settings_widget")[index + 1].setAttribute("data-row",row);
document.getElementById(ele.parentNode.getElementsByClassName("settings_widget")[index-0+1].id + "Row").value = row;
ele.parentNode.insertBefore(ele.parentNode.getElementsByClassName("settings_widget")[index - 0 + 1],ele);
}
else
{
for(var i = 0;i < ele.parentNode.childNodes.length;i++)
{
if(ele.parentNode.childNodes[i].id == ele.id)
{ index = i; break; }
}
ele.setAttribute("data-row",row - 0 + 1);
document.getElementById("widget" + id + "Row").value = row - 0 + 1;
ele.parentNode.childNodes[index + 1].setAttribute("data-row",row);
document.getElementById(ele.parentNode.childNodes[index-0+1].id + "Row").value = row;
ele.parentNode.insertBefore(ele.parentNode.childNodes[index - 0 + 1],ele);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment