summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormkanat%bugzilla.org <>2006-05-11 00:49:29 +0200
committermkanat%bugzilla.org <>2006-05-11 00:49:29 +0200
commitd7447bf95827d7e9da681d496a192fffbc2810a4 (patch)
treec4154e2891f79e580f722ec9c9897767aee3818b
parenta6b4362d3ef33b1c1fdc06690511cac19b8e2be3 (diff)
downloadbugzilla-d7447bf95827d7e9da681d496a192fffbc2810a4.tar.gz
bugzilla-d7447bf95827d7e9da681d496a192fffbc2810a4.tar.xz
Bug 96431: It's possible to write an essay in the Summary field.
Patch By Max Kanat-Alexander <mkanat@bugzilla.org> r=LpSolit, a=myk
-rw-r--r--Bugzilla/DB/Schema.pm2
-rwxr-xr-xchecksetup.pl46
-rw-r--r--template/en/default/bug/create/create-guided.html.tmpl3
-rw-r--r--template/en/default/bug/create/create.html.tmpl3
-rw-r--r--template/en/default/bug/edit.html.tmpl3
5 files changed, 51 insertions, 6 deletions
diff --git a/Bugzilla/DB/Schema.pm b/Bugzilla/DB/Schema.pm
index 16b5320d6..f02f2d1af 100644
--- a/Bugzilla/DB/Schema.pm
+++ b/Bugzilla/DB/Schema.pm
@@ -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},
diff --git a/checksetup.pl b/checksetup.pl
index c3b719c4c..4a059f1c7 100755
--- a/checksetup.pl
+++ b/checksetup.pl
@@ -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.
#
diff --git a/template/en/default/bug/create/create-guided.html.tmpl b/template/en/default/bug/create/create-guided.html.tmpl
index b8f1d9fd9..1e41c07ef 100644
--- a/template/en/default/bug/create/create-guided.html.tmpl
+++ b/template/en/default/bug/create/create-guided.html.tmpl
@@ -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.
diff --git a/template/en/default/bug/create/create.html.tmpl b/template/en/default/bug/create/create.html.tmpl
index ed84f3391..ca400d31c 100644
--- a/template/en/default/bug/create/create.html.tmpl
+++ b/template/en/default/bug/create/create.html.tmpl
@@ -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>
diff --git a/template/en/default/bug/edit.html.tmpl b/template/en/default/bug/edit.html.tmpl
index 51f4223f3..adbccd141 100644
--- a/template/en/default/bug/edit.html.tmpl
+++ b/template/en/default/bug/edit.html.tmpl
@@ -374,7 +374,8 @@
</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>