diff options
author | mkanat%bugzilla.org <> | 2006-05-11 00:49:29 +0200 |
---|---|---|
committer | mkanat%bugzilla.org <> | 2006-05-11 00:49:29 +0200 |
commit | d7447bf95827d7e9da681d496a192fffbc2810a4 (patch) | |
tree | c4154e2891f79e580f722ec9c9897767aee3818b | |
parent | a6b4362d3ef33b1c1fdc06690511cac19b8e2be3 (diff) | |
download | bugzilla-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.pm | 2 | ||||
-rwxr-xr-x | checksetup.pl | 46 | ||||
-rw-r--r-- | template/en/default/bug/create/create-guided.html.tmpl | 3 | ||||
-rw-r--r-- | template/en/default/bug/create/create.html.tmpl | 3 | ||||
-rw-r--r-- | template/en/default/bug/edit.html.tmpl | 3 |
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> |