diff --git a/webtools/bugzilla/Bugzilla/Config.pm b/webtools/bugzilla/Bugzilla/Config.pm
index 71bac4225290..fa6fc3147caf 100644
--- a/webtools/bugzilla/Bugzilla/Config.pm
+++ b/webtools/bugzilla/Bugzilla/Config.pm
@@ -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';
diff --git a/webtools/bugzilla/defparams.pl b/webtools/bugzilla/defparams.pl
index c0e608a4dd11..57675e07d713 100644
--- a/webtools/bugzilla/defparams.pl
+++ b/webtools/bugzilla/defparams.pl
@@ -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.
'.
+ '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.
'.
+ '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 ' .
diff --git a/webtools/bugzilla/enter_bug.cgi b/webtools/bugzilla/enter_bug.cgi
index a0291fae5693..a9f1f49583d7 100755
--- a/webtools/bugzilla/enter_bug.cgi
+++ b/webtools/bugzilla/enter_bug.cgi
@@ -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
diff --git a/webtools/bugzilla/template/en/default/bug/create/create.html.tmpl b/webtools/bugzilla/template/en/default/bug/create/create.html.tmpl
index ecb3dd8c99de..816b90038f68 100644
--- a/webtools/bugzilla/template/en/default/bug/create/create.html.tmpl
+++ b/webtools/bugzilla/template/en/default/bug/create/create.html.tmpl
@@ -321,13 +321,20 @@ function set_assign_to() {
-[% IF Param('usebrowserinfo') %]
+[% UNLESS (Param('defaultplatform') && Param('defaultopsys')) %]