[Koha-patches] [PATCH] Bug 2969 - Report Name should be mandatory for saved reports

Owen Leonard oleonard at myacpl.org
Fri Jul 19 16:04:36 CEST 2013


This patch re-implements the database changes from the original patch
and adds an update for existing reports. It also reimplements the
client-side validation using the new built-in validation plugin and adds
coverage for SQL reports.

I have also added the "required" attribute to the SQL report textarea
since saving a report with no SQL triggers an error.

To test:

- Create a new guided report. Confirm that you cannot save your guided
  report without a report name.
- Create or edit a saved SQL report. Confirm that you cannot save your
  report without a name or without SQL.
- Confirm that the saved_sql table structure has been updated.
---
 installer/data/mysql/kohastructure.sql             |    2 +-
 installer/data/mysql/updatedatabase.pl             |    7 +++++++
 .../en/modules/reports/guided_reports_start.tt     |   14 +++++++-------
 3 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql
index 8f9b30c..4ad79f2 100644
--- a/installer/data/mysql/kohastructure.sql
+++ b/installer/data/mysql/kohastructure.sql
@@ -1841,7 +1841,7 @@ CREATE TABLE saved_sql ( -- saved sql reports
    `last_modified` datetime default NULL, -- the date this report was last edited
    `savedsql` text, -- the SQL for this report
    `last_run` datetime default NULL,
-   `report_name` varchar(255) default NULL, -- the name of this report
+   `report_name` varchar(255) NOT NULL default '', -- the name of this report
    `type` varchar(255) default NULL, -- always 1 for tabular
    `notes` text, -- the notes or description given to this report
    `cache_expiry` int NOT NULL default 300,
diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl
index fd8421e..6ead258 100755
--- a/installer/data/mysql/updatedatabase.pl
+++ b/installer/data/mysql/updatedatabase.pl
@@ -7050,6 +7050,13 @@ if ( CheckVersion($DBversion) ) {
     SetVersion($DBversion);
 }
 
+$DBversion = "3.13.00.XXX";
+if ( CheckVersion($DBversion) ) {
+   $dbh->do("ALTER TABLE saved_sql CHANGE report_name report_name VARCHAR( 255 ) NOT NULL DEFAULT '' ");
+   print "Upgrade to $DBversion done, requiring that saved report name not be NULL. (Bug 2969: Report Name should be mandatory for saved reports)\n";
+   SetVersion ($DBversion);
+}
+
 =head1 FUNCTIONS
 
 =head2 TableExists($table)
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/reports/guided_reports_start.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/reports/guided_reports_start.tt
index 8c34135..6bf0845 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/reports/guided_reports_start.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/reports/guided_reports_start.tt
@@ -636,7 +636,7 @@ canned reports and writing custom SQL reports.</p>
 [% END %]
 
 [% IF ( save ) %]
-<form action="/cgi-bin/koha/reports/guided_reports.pl" method="post">
+<form action="/cgi-bin/koha/reports/guided_reports.pl" method="post" class="validated">
 <input type="hidden" name="sql" value="[% sql |html %]" />
 <input type="hidden" name="type" value="[% type %]" />
 <input type="hidden" name="area" value="[% area %]" />
@@ -645,7 +645,7 @@ canned reports and writing custom SQL reports.</p>
 <fieldset class="rows">
 <legend>Save your custom report</legend>
 <ol>
-    <li><label for="reportname">Report name: </label><input type="text" id="reportname" name="reportname" /></li>
+    <li><label for="reportname" class="required">Report name: </label><input type="text" id="reportname" name="reportname" class="required" required="required" /> <span class="required">Required</span></li>
     [% PROCESS group_and_subgroup_selection %]
     <li><label for="notes">Notes:</label> <textarea name="notes" id="notes"></textarea></li>
 </ol></fieldset>
@@ -803,13 +803,13 @@ $(document).ready(function() {
     load_group_subgroups();
 });
 </script>
-<form action="/cgi-bin/koha/reports/guided_reports.pl" method="post">
+<form action="/cgi-bin/koha/reports/guided_reports.pl" method="post" class="validated">
 <fieldset class="rows">
 <legend>Create report from SQL</legend>
 <ol>
-    <li><label for="reportname">Report name:</label>
-        [% IF ( reportname ) %]<input type="text" id="reportname" name="reportname" value="[% reportname %]" />
-        [% ELSE %]<input type="text" id="reportname" name="reportname" />[% END %] 
+    <li><label for="reportname" class="required">Report name:</label>
+        [% IF ( reportname ) %]<input type="text" class="required" required="required" id="reportname" name="reportname" value="[% reportname %]" />
+        [% ELSE %]<input type="text" class="required" required="required" id="reportname" name="reportname" />[% END %] <span class="required">Required</span>
     </li>
     [% PROCESS group_and_subgroup_selection %]
 
@@ -840,7 +840,7 @@ $(document).ready(function() {
 <fieldset class="rows">
 <legend>SQL:</legend>
 <div style="margin:1em;">
-<textarea  id="sql" name="sql" cols="50" rows="10">[% sql %]</textarea>
+<textarea id="sql" name="sql" class="required" required="required" cols="50" rows="10">[% sql %]</textarea> <span class="required">Required</span>
 </div>
 </fieldset>
 
-- 
1.7.9.5


More information about the Koha-patches mailing list