зеркало из https://github.com/mozilla/pjs.git
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:
Родитель
dcb1b43694
Коммит
79d0bbcc55
|
@ -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>
|
||||
|
|
Загрузка…
Ссылка в новой задаче