Cascade field change events on bug form, simplify reflow code on query form
parent
b918f359d9
commit
e6eb69d28b
|
@ -45,7 +45,7 @@ function initControlledField(i)
|
|||
}
|
||||
}
|
||||
|
||||
function handleControllerField_this(e)
|
||||
function handleControllerField_this(e, nonfirst)
|
||||
{
|
||||
var m = field_metadata[this.id];
|
||||
if (!m)
|
||||
|
@ -64,6 +64,11 @@ function handleControllerField_this(e)
|
|||
{
|
||||
handleControlledField(i);
|
||||
}
|
||||
// Cascade events
|
||||
for (var i in f)
|
||||
{
|
||||
handleControllerField_this.apply(document.getElementById(i), [ null, true ]);
|
||||
}
|
||||
}
|
||||
|
||||
function setFieldValue(f, v)
|
||||
|
|
|
@ -268,51 +268,30 @@ function handleQueryformField_this(e, nonfirst)
|
|||
|
||||
function reflowFieldRows()
|
||||
{
|
||||
var cells_per_row = 4;
|
||||
var per_row = 4;
|
||||
var rows = [];
|
||||
var fields = [];
|
||||
var visible = 0;
|
||||
for (var i = 0, e; e = document.getElementById('cf_row_'+i); i++)
|
||||
{
|
||||
rows.push(e.rows[0]);
|
||||
}
|
||||
var prev = [];
|
||||
for (var i = 0; i < rows.length; i++)
|
||||
{
|
||||
var vis = 0;
|
||||
for (var j = 0; j < rows[i].cells.length; j++)
|
||||
for (var j = 0; j < e.rows[0].cells.length; j++)
|
||||
{
|
||||
var v = rows[i].cells[j].style.display != 'none';
|
||||
if (prev.length && prev[0][0] < cells_per_row)
|
||||
{
|
||||
// Move this cell up
|
||||
rows[prev[0][1]].appendChild(rows[i].cells[j]);
|
||||
j--;
|
||||
if (v)
|
||||
{
|
||||
prev[0][0]++;
|
||||
if (prev[0][0] >= 4)
|
||||
{
|
||||
prev.shift();
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (v)
|
||||
{
|
||||
vis++;
|
||||
if (vis >= cells_per_row && i < rows.length-1)
|
||||
{
|
||||
// Move remaining cells down
|
||||
for (var k = rows[i].cells.length-1; k > j; k--)
|
||||
{
|
||||
rows[i+1].cells.length
|
||||
? rows[i+1].insertBefore(rows[i].cells[k], rows[i+1].cells[0])
|
||||
: rows[i+1].appendChild(rows[i].cells[k]);
|
||||
}
|
||||
}
|
||||
}
|
||||
var v = e.rows[0].cells[j].style.display != 'none' ? 1 : 0;
|
||||
fields.push([ e.rows[0].cells[j], v ]);
|
||||
visible += v;
|
||||
}
|
||||
if (vis < cells_per_row)
|
||||
}
|
||||
for (var cur_row = 0, j = 0; cur_row < rows.length && j < fields.length; cur_row++)
|
||||
{
|
||||
var v = 0;
|
||||
for (; j < fields.length; v += fields[j][1], j++)
|
||||
{
|
||||
prev.push([ vis, i ]);
|
||||
if (v >= per_row && fields[j][1])
|
||||
{
|
||||
break;
|
||||
}
|
||||
rows[cur_row].appendChild(fields[j][0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -311,6 +311,8 @@ window.hasClass = function(obj, c)
|
|||
{
|
||||
if (typeof(obj) == 'string')
|
||||
obj = document.getElementById(obj);
|
||||
if (obj.className === undefined)
|
||||
return false;
|
||||
var l = obj.className.split(/\s+/);
|
||||
for (var i = l.length-1; i >= 0; i--)
|
||||
if (l[i] == c)
|
||||
|
|
Loading…
Reference in New Issue