]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 96431: It's possible to write an essay in the Summary field.
authormkanat%bugzilla.org <>
Wed, 10 May 2006 22:49:29 +0000 (22:49 +0000)
committermkanat%bugzilla.org <>
Wed, 10 May 2006 22:49:29 +0000 (22:49 +0000)
Patch By Max Kanat-Alexander <mkanat@bugzilla.org> r=LpSolit, a=myk

Bugzilla/DB/Schema.pm
checksetup.pl
template/en/default/bug/create/create-guided.html.tmpl
template/en/default/bug/create/create.html.tmpl
template/en/default/bug/edit.html.tmpl

index 16b5320d6029484473a25fde2ca2dbb1c102d934..f02f2d1af960ecdef518a4d6dbf08c7f77072c07 100644 (file)
@@ -167,7 +167,7 @@ use constant ABSTRACT_SCHEMA => {
             bug_status          => {TYPE => 'varchar(64)', NOTNULL => 1},
             creation_ts         => {TYPE => 'DATETIME'},
             delta_ts            => {TYPE => 'DATETIME', NOTNULL => 1},
-            short_desc          => {TYPE => 'MEDIUMTEXT', NOTNULL => 1},
+            short_desc          => {TYPE => 'varchar(255)', NOTNULL => 1},
             op_sys              => {TYPE => 'varchar(64)', NOTNULL => 1},
             priority            => {TYPE => 'varchar(64)', NOTNULL => 1},
             product_id          => {TYPE => 'INT2', NOTNULL => 1},
index c3b719c4caeae2d9f0e6e55a9f8c51645b570c79..4a059f1c7038ca7b3e8abfb258884701b9d50f37 100755 (executable)
@@ -3781,8 +3781,10 @@ if ($dbh->bz_column_info('votes', 'count')) {
 }
 
 # 2004/02/15 - Summaries shouldn't be null - see bug 220232
-$dbh->bz_alter_column('bugs', 'short_desc',
-                      {TYPE => 'MEDIUMTEXT', NOTNULL => 1}, '');
+if (!exists $dbh->bz_column_info('bugs', 'short_desc')->{NOTNULL}) {
+    $dbh->bz_alter_column('bugs', 'short_desc',
+                          {TYPE => 'MEDIUMTEXT', NOTNULL => 1}, '');
+}
 
 # 2003-10-24 - alt@sonic.net, bug 224208
 # Support classification level
@@ -4293,6 +4295,46 @@ if ($dbh->bz_column_info('flags', 'id')->{'TYPE'} eq 'INT3') {
     $dbh->bz_drop_column('flags', 'is_active');
 }
 
+# short_desc should not be a mediumtext, fix anything longer than 255 chars.
+if($dbh->bz_column_info('bugs', 'short_desc')->{TYPE} eq 'MEDIUMTEXT') {
+    # Move extremely long summarries into a comment ("from" the Reporter),
+    # and then truncate the summary.
+    my $long_summary_bugs = $dbh->selectall_arrayref(
+        'SELECT bug_id, short_desc, reporter
+           FROM bugs WHERE LENGTH(short_desc) > 255');
+
+    if (@$long_summary_bugs) {
+        print <<EOF;
+
+WARNING: Some of your bugs had summaries longer than 255 characters.
+They have had their original summary copied into a comment, and then
+the summary was truncated to 255 characters. The affected bug numbers were:
+EOF
+        my $comment_sth = $dbh->prepare(
+            'INSERT INTO longdescs (bug_id, who, thetext, bug_when) 
+                  VALUES (?, ?, ?, NOW())');
+        my $desc_sth = $dbh->prepare('UPDATE bugs SET short_desc = ? 
+                                       WHERE bug_id = ?');
+        my @affected_bugs;
+        foreach my $bug (@$long_summary_bugs) {
+            my ($bug_id, $summary, $reporter_id) = @$bug;
+            my $summary_comment = "The original summary for this bug"
+               . " was longer than 255 characters, and so it was truncated"
+               . " when Bugzilla was upgraded. The original summary was:"
+               . "\n\n$summary";
+            $comment_sth->execute($bug_id, $reporter_id, $summary_comment);
+            my $short_summary = substr($summary, 0, 252) . "...";
+            $desc_sth->execute($short_summary, $bug_id);
+            push(@affected_bugs, $bug_id);
+        }
+        print join(', ', @affected_bugs) . "\n\n";
+    }
+
+    $dbh->bz_alter_column('bugs', 'short_desc', {TYPE => 'varchar(255)', 
+                                                 NOTNULL => 1});
+}
+
+
 # If you had to change the --TABLE-- definition in any way, then add your
 # differential change code *** A B O V E *** this comment.
 #
index b8f1d9fd9e11439f571f2a8f12d3c0ebac9b8bf8..1e41c07ef17d893d43b96adc536936b255218fff 100644 (file)
@@ -310,7 +310,8 @@ function PutDescription() {
       <b>Summary</b>
     </td>
     <td valign="top">
-      <input type="text" size="80" name="short_desc" id="short_desc">
+      <input type="text" size="80" name="short_desc" id="short_desc" 
+             maxlength="255">
       <p>
         A sentence which summarises the problem.
         Please be descriptive and use lots of keywords.
index ed84f339155362452dfe164725344a7b8fe5a32f..ca400d31c052f8fe11c44a79081fea62498e4b40 100644 (file)
@@ -301,7 +301,8 @@ function set_assign_to() {
   <tr>
     <td align="right"><strong>Summary:</strong></td>
     <td colspan="3">
-      <input name="short_desc" size="60" value="[% short_desc FILTER html %]">
+      <input name="short_desc" size="60" value="[% short_desc FILTER html %]"
+             maxlength="255">
     </td>
   </tr>
 
index 51f4223f379816a7059ddd4ba38f49c68359d5f0..adbccd1419e5b3caf21474633caaa6159a7d76d7 100644 (file)
             </td>
             <td colspan="5">
               <input name="short_desc" id="short_desc"
-                     value="[% bug.short_desc FILTER html %]" size="60">
+                     value="[% bug.short_desc FILTER html %]" size="60"
+                     maxlength="255">
             </td>
           </tr>