Do not lose default values from cloned bug and from URL on the entry form

hinted-selects
Vitaliy Filippov 2014-11-19 16:20:13 +04:00
parent deec3c1ff0
commit 7d45395a51
2 changed files with 38 additions and 10 deletions

View File

@ -28,17 +28,40 @@ function initControlledFields()
reflowFieldColumns();
}
function initControlledField(i)
function initControlledField(id)
{
var f = document.getElementById(i);
if (f && document.forms['Create'] && field_metadata[i].default_value)
var f = document.getElementById(id);
if (f && document.forms['Create'] && field_metadata[id].default_value)
{
// Check if anything is selected initially on the entry form
var copt = getSelectedValues(f);
delete copt[''];
var nonempty = false;
for (var i in copt)
{
nonempty = true;
}
// Select global default value before selecting dependent ones
f._oldDefault = setFieldValue(f, field_metadata[i].default_value);
if (!nonempty)
{
f._oldDefault = setFieldValue(f, field_metadata[id].default_value);
}
else
{
f._oldDefault = field_metadata[id].default_value;
if (f.nodeName == 'SELECT')
{
f._oldDefault = f._oldDefault.split(',');
}
else
{
f._oldDefault = [ f._oldDefault ];
}
}
}
if (!f || f.nodeName != 'INPUT' || f.type != 'hidden')
{
handleControlledField(i, !document.forms['Create']);
handleControlledField(id, !document.forms['Create']);
}
if (f)
{
@ -185,7 +208,7 @@ function handleControlledField(controlled_id, is_initial_editform)
}
}
// Select and/or remember default value
if (m.default_field && document.getElementById(m.default_field))
if (m.default_field && document.getElementById(m.default_field) && 0)
{
var diff = false;
if (controlled._oldDefault)

View File

@ -206,11 +206,16 @@
</option>
[% END %]
[% IF NOT value_found %]
[% value = bug.get_object(field.name) %]
[% IF value %]
[% FOR v = value %]
<option selected="selected" value="[% v.name | html %]" id="v[% v.id | html %]_[% field.name | html %]">[% v.name | html %]</option>
[% IF bug.id %]
[% value = bug.get_object(field.name) %]
[% IF value %]
[% FOR v = value %]
<option selected="selected" value="[% v.name | html %]" id="v[% v.id | html %]_[% field.name | html %]">[% v.name | html %]</option>
[% END %]
[% END %]
[% ELSE %]
[%# Possible only on the entry form %]
<option selected="selected" value="[% value_name | html %]">[% value_name | html %]</option>
[% END %]
[% END %]
</select>