Bug 42133 - Do not append missing mandatory columns, but alert instead
git-svn-id: svn://svn.office.custis.ru/3rdparty/bugzilla.org/trunk@985 6955db30-a419-402b-8a0d-67ecbb4d7f56master
parent
7aaf013ae7
commit
8503edbe86
|
@ -23,7 +23,8 @@ use Bugzilla::User;
|
|||
# константы
|
||||
use constant BUG_DAYS => 92;
|
||||
use constant XLS_LISTNAME => 'Bugz';
|
||||
use constant MANDATORY_FIELDS => [qw(short_desc product component)];
|
||||
|
||||
my $MANDATORY_FIELDS = [qw(short_desc product component)];
|
||||
|
||||
# начинаем-с
|
||||
my $user = Bugzilla->login(LOGIN_REQUIRED);
|
||||
|
@ -87,6 +88,7 @@ for (keys %$args)
|
|||
|
||||
$vars->{bug_tpl} = $bug_tpl;
|
||||
$vars->{name_tr} = $name_tr;
|
||||
$vars->{mandatory_fields} = $MANDATORY_FIELDS;
|
||||
|
||||
# нужно всосать из шаблонов field_descs...
|
||||
# и несколько поменять... ;-/ поганый хак, конечно, а чё делать-то.
|
||||
|
@ -190,15 +192,6 @@ unless ($args->{commit})
|
|||
}
|
||||
}
|
||||
# показываем табличку с багами
|
||||
my %fhash = map { (exists $name_tr->{$_} ? $name_tr->{$_} : $_) => 1 } @{$table->{fields}};
|
||||
for (@{ MANDATORY_FIELDS() })
|
||||
{
|
||||
unless ($fhash{$_} || $bug_tpl->{$_})
|
||||
{
|
||||
push @{$table->{fields}}, $_;
|
||||
$name_tr->{$_} = $_;
|
||||
}
|
||||
}
|
||||
$vars->{fields} = $table->{fields};
|
||||
$vars->{data} = $table->{data};
|
||||
}
|
||||
|
|
|
@ -84,17 +84,38 @@ function addfield()
|
|||
<h2>Select worksheet items to import as bugs</h2>
|
||||
|
||||
<script language="JavaScript">
|
||||
var mandatory_columns = {
|
||||
[% FOR f = mandatory_fields %]
|
||||
"[% f %]": "[% import_field_descs.${f} | js %]",
|
||||
[% END %]
|
||||
"": ""
|
||||
};
|
||||
delete mandatory_columns[""];
|
||||
var columnIds = [ [% FOR f = fields %][% IF NOT loop.first %],[% END %]"[% f | js %]"[% END %] ];
|
||||
function toggleallbugz(chk)
|
||||
{
|
||||
var bgz = document.getElementById("bugz");
|
||||
for (var i = 0; i < bgz.childNodes.length; i++)
|
||||
if (bgz.childNodes[i].id && bgz.childNodes[i].id != "")
|
||||
document.getElementById('b_enabled_'+(""+bgz.childNodes[i].id).substr(5)).checked = chk;
|
||||
var bgz = document.getElementById("bugz");
|
||||
for (var i = 0; i < bgz.childNodes.length; i++)
|
||||
if (bgz.childNodes[i].id && bgz.childNodes[i].id != "")
|
||||
document.getElementById('b_enabled_'+(""+bgz.childNodes[i].id).substr(5)).checked = chk;
|
||||
}
|
||||
function fieldrename(field)
|
||||
{
|
||||
document.getElementById('tp_'+field).style.display='none';
|
||||
document.getElementById('t_'+field).style.display='';
|
||||
document.getElementById('tp_'+field).style.display='none';
|
||||
document.getElementById('t_'+field).style.display='';
|
||||
}
|
||||
function checkColumns()
|
||||
{
|
||||
var found = {}, foundall = true;
|
||||
for (var i in columnIds)
|
||||
found[document.getElementById('t_'+columnIds[i]).value] = true;
|
||||
var notfound = [];
|
||||
for (var j in mandatory_columns)
|
||||
if (!found[j])
|
||||
notfound.push(mandatory_columns[j]);
|
||||
if (notfound.length > 0)
|
||||
alert('Поля "'+notfound.join('", "')+'" являются обязательными, но не выбраны вами!');
|
||||
return notfound.length == 0;
|
||||
}
|
||||
</script>
|
||||
|
||||
|
@ -114,7 +135,7 @@ function fieldrename(field)
|
|||
[% END %]
|
||||
[% END %]
|
||||
|
||||
<form action="importxls.cgi" method="post">
|
||||
<form action="importxls.cgi" method="post" onsubmit="return checkColumns()">
|
||||
<input type="hidden" name="commit" value="1" />
|
||||
<input type="hidden" name="bugdays" value="[% bugdays | html %]" />
|
||||
<input type="hidden" name="listname" value="[% listname | html %]" />
|
||||
|
|
Loading…
Reference in New Issue