Patch for bug 248613: Custom global default platform/OS in non-usebrowserinfo scenarios; patch by Marc Schumann <marcschum@web.de>; r=kiko, a=myk.

This commit is contained in:
jocuri%softhome.net 2004-08-28 08:58:14 +00:00
Родитель 34dd0a955c
Коммит 42d1e9e2cc
4 изменённых файлов: 75 добавлений и 17 удалений

Просмотреть файл

@ -197,6 +197,19 @@ sub UpdateParams {
# We don't want it, so get rid of it
delete $param{'version'};
# Change from usebrowserinfo to defaultplatform/defaultopsys combo
if (exists $param{'usebrowserinfo'}) {
if (!$param{'usebrowserinfo'}) {
if (!exists $param{'defaultplatform'}) {
$param{'defaultplatform'} = 'Other';
}
if (!exists $param{'defaultopsys'}) {
$param{'defaultopsys'} = 'other';
}
}
delete $param{'usebrowserinfo'};
}
# Change from a boolean for quips to multi-state
if (exists $param{'usequip'} && !exists $param{'enablequips'}) {
$param{'enablequips'} = $param{'usequip'} ? 'on' : 'off';

Просмотреть файл

@ -66,6 +66,26 @@ sub check_priority {
return "";
}
sub check_platform {
my ($value) = (@_);
&::GetVersionTable();
if (lsearch(['', @::legal_platform], $value) < 0) {
return "Must be empty or a legal platform value: one of " .
join(", ", @::legal_platform);
}
return "";
}
sub check_opsys {
my ($value) = (@_);
&::GetVersionTable();
if (lsearch(['', @::legal_opsys], $value) < 0) {
return "Must be empty or a legal operating system value: one of " .
join(", ", @::legal_opsys);
}
return "";
}
sub check_shadowdb {
my ($value) = (@_);
$value = trim($value);
@ -740,6 +760,30 @@ You will get this message once a day until you\'ve dealt with these bugs!
checker => \&check_priority
},
{
name => 'defaultplatform',
desc => 'This is the platform that is preselected on the bug '.
'entry form.<br>'.
'You can leave this empty: '.
'Bugzilla will then use the platform that the browser '.
'reports to be running on as the default.',
type => 't',
default => '',
checker => \&check_platform
},
{
name => 'defaultopsys',
desc => 'This is the operating system that is preselected on the bug '.
'entry form.<br>'.
'You can leave this empty: '.
'Bugzilla will then use the operating system that the browser '.
'reports to be running on as the default.',
type => 't',
default => '',
checker => \&check_opsys
},
{
name => 'usetargetmilestone',
desc => 'Do you wish to use the Target Milestone field?',
@ -769,14 +813,6 @@ You will get this message once a day until you\'ve dealt with these bugs!
default => 0
},
{
name => 'usebrowserinfo',
desc => 'Do you want bug reports to be assigned an OS & Platform based ' .
'on the browser the user makes the report from?',
type => 'b',
default => 1
},
{
name => 'usevotes',
desc => 'Do you wish to allow users to vote for bugs? Note that in order ' .

Просмотреть файл

@ -155,7 +155,9 @@ sub formvalue {
sub pickplatform {
return formvalue("rep_platform") if formvalue("rep_platform");
if ( Param('usebrowserinfo') ) {
if (Param('defaultplatform')) {
return Param('defaultplatform');
} else {
for ($ENV{'HTTP_USER_AGENT'}) {
#PowerPC
/\(.*PowerPC.*\)/i && do {return "Macintosh";};
@ -196,16 +198,17 @@ sub pickplatform {
/Amiga/ && do {return "Macintosh";};
/WinMosaic/ && do {return "PC";};
}
return "Other";
}
# default
return "Other";
}
sub pickos {
if (formvalue('op_sys') ne "") {
return formvalue('op_sys');
}
if ( Param('usebrowserinfo') ) {
if (Param('defaultopsys')) {
return Param('defaultopsys');
} else {
for ($ENV{'HTTP_USER_AGENT'}) {
/\(.*IRIX.*\)/ && do {return "IRIX";};
/\(.*OSF.*\)/ && do {return "OSF/1";};
@ -259,9 +262,8 @@ sub pickos {
/\(.*PPC.*\)/ && do {return "Mac System 9.x";};
/\(.*68K.*\)/ && do {return "Mac System 8.0";};
}
return "other";
}
# default
return "other";
}
##############################################################################
# End of subroutines

Просмотреть файл

@ -321,13 +321,20 @@ function set_assign_to() {
</td>
</tr>
[% IF Param('usebrowserinfo') %]
[% UNLESS (Param('defaultplatform') && Param('defaultopsys')) %]
<tr>
<td></td>
<td colspan="3">
<br>
We've made a guess at your operating system and platform.
Please check them and, if we got it wrong, email
We've made a guess at your
[% IF Param('defaultplatform') %]
operating system. Please check it
[% ELSIF Param('defaultopsys') %]
platform. Please check it
[% ELSE %]
operating system and platform. Please check them
[% END %]
and, if we got it wrong, email
[%+ Param('maintainer') %].
</td>
</tr>