summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjocuri%softhome.net <>2004-08-28 17:58:13 +0200
committerjocuri%softhome.net <>2004-08-28 17:58:13 +0200
commit26640251cc8ace3a5fea3b6af121533150d8eed8 (patch)
tree735a76c0d51ab96c22360f64d0e4f0fde3b21ac2
parent1dff25eca7b5c489e0807cb8fd595c773bbfd4f5 (diff)
downloadbugzilla-26640251cc8ace3a5fea3b6af121533150d8eed8.tar.gz
bugzilla-26640251cc8ace3a5fea3b6af121533150d8eed8.tar.xz
Patch for bug 248613: Custom global default platform/OS in non-usebrowserinfo scenarios; patch by Marc Schumann <marcschum@web.de>; r=kiko, a=myk.
-rw-r--r--Bugzilla/Config.pm13
-rw-r--r--defparams.pl52
-rwxr-xr-xenter_bug.cgi14
-rw-r--r--template/en/default/bug/create/create.html.tmpl13
4 files changed, 75 insertions, 17 deletions
diff --git a/Bugzilla/Config.pm b/Bugzilla/Config.pm
index 71bac4225..fa6fc3147 100644
--- a/Bugzilla/Config.pm
+++ b/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/defparams.pl b/defparams.pl
index c0e608a4d..57675e07d 100644
--- a/defparams.pl
+++ b/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);
@@ -741,6 +761,30 @@ You will get this message once a day until you\'ve dealt with these bugs!
},
{
+ 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?',
type => 'b',
@@ -770,14 +814,6 @@ You will get this message once a day until you\'ve dealt with these bugs!
},
{
- 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 ' .
'for this to be effective, you will have to change the maximum ' .
diff --git a/enter_bug.cgi b/enter_bug.cgi
index a0291fae5..a9f1f4958 100755
--- a/enter_bug.cgi
+++ b/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/template/en/default/bug/create/create.html.tmpl b/template/en/default/bug/create/create.html.tmpl
index ecb3dd8c9..816b90038 100644
--- a/template/en/default/bug/create/create.html.tmpl
+++ b/template/en/default/bug/create/create.html.tmpl
@@ -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>