# 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';
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);
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?',
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 ' .
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";};
/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";};
/\(.*PPC.*\)/ && do {return "Mac System 9.x";};
/\(.*68K.*\)/ && do {return "Mac System 8.0";};
}
+ return "other";
}
- # default
- return "other";
}
##############################################################################
# End of subroutines
</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>