]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Patch for bug 248613: Custom global default platform/OS in non-usebrowserinfo scenari...
authorjocuri%softhome.net <>
Sat, 28 Aug 2004 15:58:13 +0000 (15:58 +0000)
committerjocuri%softhome.net <>
Sat, 28 Aug 2004 15:58:13 +0000 (15:58 +0000)
Bugzilla/Config.pm
defparams.pl
enter_bug.cgi
template/en/default/bug/create/create.html.tmpl

index 71bac4225290b1d43a6d2f7075d4b2d66beb7d15..fa6fc3147caf64da599a249433d4a5b0b67085e9 100644 (file)
@@ -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';
index c0e608a4dd117068242eecd1bc8503e1606709bc..57675e07d71395204bbf44a7ad59ed5c6103ebbf 100644 (file)
@@ -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 ' .
index a0291fae569312d6dfa2f75c98b121df587e6038..a9f1f49583d7b9af6c51a81d6ccdc77c899391b7 100755 (executable)
@@ -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
index ecb3dd8c99def6a2eba8ef15654b0eca7a4d2648..816b90038f6840eaaa3dfcdf0636c78a24dae997 100644 (file)
@@ -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>