From 26640251cc8ace3a5fea3b6af121533150d8eed8 Mon Sep 17 00:00:00 2001 From: "jocuri%softhome.net" <> Date: Sat, 28 Aug 2004 15:58:13 +0000 Subject: Patch for bug 248613: Custom global default platform/OS in non-usebrowserinfo scenarios; patch by Marc Schumann ; r=kiko, a=myk. --- Bugzilla/Config.pm | 13 +++++++ defparams.pl | 52 +++++++++++++++++++++---- enter_bug.cgi | 14 ++++--- template/en/default/bug/create/create.html.tmpl | 13 +++++-- 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); @@ -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/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() { -[% IF Param('usebrowserinfo') %] +[% UNLESS (Param('defaultplatform') && Param('defaultopsys')) %]
- 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') %]. -- cgit v1.2.3-24-g4f1b