The problem is that the dashboard serialization is not ordered to be from top to down, which means the fields mix up depending on which order they are stored, because the factory is adding one by one, so if there is a “hole” in the dashboard, the new widget will “jump higher” and then get pushed away with the original widget at this place. We had big troubles here till i now do:
state.sort(function(a,b){
return ((a.y * 100) + a.x) - ((b.y * 100) + b.x)
});
with the dashboard state before I give it to restore(). This should be fixed in the core code. (Although i am not using total recent webix pro 6.3.6, so sorry if it is already fixed)