From 0c33c120858922dba2bc6ed9fc568240ece170b6 Mon Sep 17 00:00:00 2001
From: Tomas Cohen Arazi <tomascohen@gmail.com>
Date: Thu, 12 Dec 2013 12:24:11 -0300
Subject: [PATCH] [PASSED QA] Bug 8018: (followup) make the default more
 explicit

This patch:
- Makes the new subfield tab show maxlength=9999 as default (instead of empty-then-zero).
- Updates the help to make exlpicit that 0 or empty defaults to 9999.
- Assumes all the subfields created with maxlength=0 inadvertedly are meant to mean
 "no limit" and hence update the database to reflect that.

To test (this patch and Pablo's):
- Edit a MARC framework, edit some field's subfields.
- Use the 'New' tab to create a new subfield (choose an unused letter).
- See in "More constrains" that the "Max length" field is empty. Leave it as-is.
- Save the changes (the new subfield).
- Edit the field again, verify that "Max length" is 0.
- Try tu use the framework and the the field/subfield just created > FAIL
- Apply the patches, upgrade
- Try to use the framework/field/subfield > SUCCESS (0 was converted to 9999)
- Repeat from the beggining, "Max length" should show 9999 on the new subfield tab.
- Leave it empty, it is saved as 9999.

Regards
To+

Edit: small typo

Sponsored-by: Universidad Nacionald de Cordoba
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Passes QA script and tests in t and xt.
Tested:
- deleting an existing subfield
- adding a new subfield with new default 9999
- editing the new subfield, changing value to 8888
- deleting new subfield
- adding new subfield, using 8888 as length
---
 admin/marc_subfields_structure.pl                                 | 1 +
 installer/data/mysql/updatedatabase.pl                            | 8 ++++++++
 .../prog/en/modules/help/admin/marc_subfields_structure.tt        | 2 +-
 3 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/admin/marc_subfields_structure.pl b/admin/marc_subfields_structure.pl
index d347012..0589968 100755
--- a/admin/marc_subfields_structure.pl
+++ b/admin/marc_subfields_structure.pl
@@ -276,6 +276,7 @@ if ( $op eq 'add_form' ) {
         my %row_data;    # get a fresh hash for the row data
         $row_data{'new_subfield'} = 1;
         $row_data{'subfieldcode'} = '';
+        $row_data{'maxlength'} = 9999;
 
         $row_data{tab} = CGI::scrolling_list(
             -name   => 'tab',
diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl
index 0220b42..ee8fc89 100755
--- a/installer/data/mysql/updatedatabase.pl
+++ b/installer/data/mysql/updatedatabase.pl
@@ -7875,6 +7875,14 @@ $DBversion = "3.15.00.010";
 if(CheckVersion($DBversion)) {
     $dbh->do("ALTER TABLE deleteditems DROP COLUMN marc");
     print "Upgrade to $DBversion done (Bug 6331: remove obsolete column in deleteditems.marc)\n";
+    SetVersion ($DBversion);
+}
+
+
+$DBversion = "3.15.00.XXX";
+if(CheckVersion($DBversion)) {
+    $dbh->do("UPDATE marc_subfield_structure SET maxlength=9999 WHERE maxlength IS NULL OR maxlength=0;");
+    print "Upgrade to $DBversion done (Bug 8018: new subfields have a default max length of zero)\n";
     SetVersion($DBversion);
 }
 
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/help/admin/marc_subfields_structure.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/help/admin/marc_subfields_structure.tt
index 9308e98..c949400 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/help/admin/marc_subfields_structure.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/help/admin/marc_subfields_structure.tt
@@ -69,7 +69,7 @@ To edit the subfields associated with the tag, click 'Subfields' to the right of
 <ul>
 	<li>Max length
 <ul>
-	<li>Define the max characters to fill.</li>
+    <li>Set the max characters allowed for the subfield. If empty or 0, it defaults to 9999.</li>
 </ul>
 </li>
 </ul>
-- 
1.8.3.2