[Koha-patches] [PATCH] Cleanup cities.pl and .tmpl - major
Joe Atzberger
joe.atzberger at liblime.com
Fri Jun 5 19:18:50 CEST 2009
80% of the javascript was junk.
Bad check failed on non-existant field borrowers.select_city.
Enabled warnings. Reduced "StringSearch" to 3 lines, removed unused args and vars.
Fixed row highlighting and removed "toggle" code. Etc.
TODO: Stop redirecting to the same page. Instead get the correct data and show it
on THIS pass.
---
admin/cities.pl | 91 +++---------
.../prog/en/modules/admin/cities.tmpl | 160 +++++++-------------
2 files changed, 77 insertions(+), 174 deletions(-)
diff --git a/admin/cities.pl b/admin/cities.pl
index fe26caa..1e7e877 100755
--- a/admin/cities.pl
+++ b/admin/cities.pl
@@ -18,33 +18,23 @@
# Suite 330, Boston, MA 02111-1307 USA
use strict;
+use warnings;
use CGI;
use C4::Context;
use C4::Auth;
use C4::Output;
-sub StringSearch {
- my ($searchstring,$type)=@_;
- my $dbh = C4::Context->dbh;
- $searchstring=~ s/\'/\\\'/g;
- my @data=split(' ',$searchstring);
- my $count=@data;
- my $sth=$dbh->prepare("Select * from cities where (city_name like ?)");
- $sth->execute("$data[0]%");
- my @results;
- while (my $data=$sth->fetchrow_hashref){
- push(@results,$data);
- }
- # $sth->execute;
- $sth->finish;
- return (scalar(@results),\@results);
+sub StringSearch {
+ my $sth = C4::Context->dbh->prepare("SELECT * FROM cities WHERE (city_name LIKE ?)");
+ $sth->execute("%" . (shift || '') . "%");
+ return $sth->fetchall_arrayref({});
}
my $input = new CGI;
-my $searchfield=$input->param('city_name');
-my $script_name="/cgi-bin/koha/admin/cities.pl";
-my $cityid=$input->param('cityid');
-my $op = $input->param('op');
+my $script_name = "/cgi-bin/koha/admin/cities.pl";
+my $searchfield = $input->param('city_name');
+my $cityid = $input->param('cityid');
+my $op = $input->param('op') || '';
my ($template, $loggedinuser, $cookie)
= get_template_and_user({template_name => "admin/cities.tmpl",
@@ -55,12 +45,11 @@ my ($template, $loggedinuser, $cookie)
debug => 1,
});
-
$template->param( script_name => $script_name,
cityid => $cityid ,
searchfield => $searchfield);
-
+my $dbh = C4::Context->dbh;
################## ADD_FORM ##################################
# called by default. Used to create form to add or modify a record
if ($op eq 'add_form') {
@@ -69,95 +58,57 @@ if ($op eq 'add_form') {
#---- if primkey exists, it's a modify action, so read values to modify...
my $data;
if ($cityid) {
- my $dbh = C4::Context->dbh;
my $sth=$dbh->prepare("select cityid,city_name,city_zipcode from cities where cityid=?");
$sth->execute($cityid);
$data=$sth->fetchrow_hashref;
- $sth->finish;
}
$template->param(
city_name => $data->{'city_name'},
city_zipcode => $data->{'city_zipcode'});
-##############ICI#####################
# END $OP eq ADD_FORM
################## ADD_VALIDATE ##################################
# called by add_form, used to insert/modify data in DB
} elsif ($op eq 'add_validate') {
- my $dbh = C4::Context->dbh;
my $sth;
if ($input->param('cityid') ){
$sth=$dbh->prepare("UPDATE cities SET city_name=?,city_zipcode=? WHERE cityid=?");
$sth->execute($input->param('city_name'),$input->param('city_zipcode'),$input->param('cityid'));
-
}
else{
$sth=$dbh->prepare("INSERT INTO cities (city_name,city_zipcode) values (?,?)");
$sth->execute($input->param('city_name'),$input->param('city_zipcode'));
}
- $sth->finish;
- print $input->redirect("/cgi-bin/koha/admin/cities.pl");
+ print $input->redirect($script_name);
exit;
-# END $OP eq ADD_VALIDATE
################## DELETE_CONFIRM ##################################
# called by default form, used to confirm deletion of data in DB
} elsif ($op eq 'delete_confirm') {
$template->param(delete_confirm => 1);
-
- my $dbh = C4::Context->dbh;
- my $sth=$dbh->prepare("select count(*) as total from borrowers,cities where borrowers.select_city=cities.cityid and cityid=?");
+ my $sth=$dbh->prepare("select count(*) as total from borrowers,cities where borrowers.city=cities.city_name and cityid=?");
+ # FIXME: this check used to pretend there was a FK "select_city" in borrowers.
$sth->execute($cityid);
my $total = $sth->fetchrow_hashref;
- $sth->finish;
- $template->param(total => $total->{'total'});
my $sth2=$dbh->prepare("select cityid,city_name,city_zipcode from cities where cityid=?");
$sth2->execute($cityid);
my $data=$sth2->fetchrow_hashref;
- $sth2->finish;
- if ($total->{'total'} >0) {
- $template->param(totalgtzero => 1);
- }
-
- $template->param(
- city_name => ( $data->{'city_name'}),
- city_zipcode => $data->{'city_zipcode'});
-
-
- # END $OP eq DELETE_CONFIRM
+ $template->param(
+ total => $total->{'total'},
+ city_name => $data->{'city_name'},
+ city_zipcode => $data->{'city_zipcode'},
+ );
################## DELETE_CONFIRMED ##################################
# called by delete_confirm, used to effectively confirm deletion of data in DB
} elsif ($op eq 'delete_confirmed') {
- my $dbh = C4::Context->dbh;
- my $categorycode=uc($input->param('cityid'));
my $sth=$dbh->prepare("delete from cities where cityid=?");
$sth->execute($cityid);
- $sth->finish;
- print "Content-Type: text/html\n\n<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=cities.pl\"></html>";
- exit;
+ print $input->redirect($script_name);
+ exit; # FIXME: what's the point of redirecting to this same page?
# END $OP eq DELETE_CONFIRMED
} else { # DEFAULT
$template->param(else => 1);
- my @loop;
- my ($count,$results)=StringSearch($searchfield,'web');
- my $toggle = 0;
- for (my $i=0; $i < $count; $i++){
- my %row = (cityid => $results->[$i]{'cityid'},
- city_name => $results->[$i]{'city_name'},
- city_zipcode => $results->[$i]{'city_zipcode'},
- toggle => $toggle );
- push @loop, \%row;
- if ( $toggle eq 0 )
- {
- $toggle = 1;
- }
- else
- {
- $toggle = 0;
- }
- }
- $template->param(loop => \@loop);
-
+ $template->param(loop => StringSearch($searchfield));
} #---- END $OP eq DEFAULT
output_html_with_http_headers $input, $cookie, $template->output;
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/cities.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/cities.tmpl
index 6d8b0df..6a96abf 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/cities.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/cities.tmpl
@@ -3,50 +3,16 @@
<!-- TMPL_INCLUDE NAME="doc-head-close.inc" -->
<script type="text/javascript">
//<![CDATA[
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- function isNotNull(f,noalert) {
- if (f.value.length == 0) {
- return false;
- }
- return true;
- }
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- function toUC(f) {
- var x=f.value.toUpperCase();
- f.value=x;
- return true;
- }
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- function isNum(v,maybenull) {
- var n = new Number(v.value);
- if (isNaN(n)) {
- return false;
- }
- if (maybenull == 0 && v.value =='') {
- return false;
- }
- return true;
- }
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- function isDate(f) {
- var t = Date.parse(f.value);
- if (isNaN(t)) {
- return false;
- }
- }
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- function Check(f) {
- var ok=1;
- var _alertString="";
- var alertString2;
- if (f.city_zipcode.value.length == 0 && f.city_name.value.length == 0 ) {
- _alertString += "\n- " + _("City name & zipcode missing");
- alert(_alertString);
- }
- else{
- document.Aform.submit();
- }
- }
+ function Check(f) {
+ if (f.city_zipcode.value.length == 0 && f.city_name.value.length == 0 ) {
+ alert("City name & zipcode missing");
+ } else{
+ document.Aform.submit();
+ }
+ }
+ $(document).ready(function() {
+ new YAHOO.widget.Button("newcity");
+ });
//]]>
</script>
</head>
@@ -54,7 +20,16 @@
<!-- TMPL_INCLUDE NAME="header.inc" -->
<!-- TMPL_INCLUDE NAME="cities-admin-search.inc" -->
-<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a> › <!-- TMPL_IF NAME="add_form" --><a href="/cgi-bin/koha/admin/cities.pl">Cities</a> › <!-- TMPL_IF NAME="cityid" --> Modify City<!-- TMPL_ELSE --> New City<!-- /TMPL_IF --><!-- TMPL_ELSE --><!-- TMPL_IF NAME="delete_confirm" --><a href="/cgi-bin/koha/admin/cities.pl">Cities</a> › Confirm Deletion of City<!-- TMPL_ELSE --> Cities<!-- /TMPL_IF --><!-- /TMPL_IF --></div>
+<div id="breadcrumbs">
+ <a href="/cgi-bin/koha/mainpage.pl">Home</a>
+ › <a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a>
+ › <a href="/cgi-bin/koha/admin/cities.pl">Cities</a>
+ <!-- TMPL_IF NAME="add_form" -->
+ › <!-- TMPL_IF NAME="cityid" -->Modify<!-- TMPL_ELSE -->New<!-- /TMPL_IF --> City
+ <!-- TMPL_ELSIF NAME="delete_confirm" -->
+ › Confirm Deletion of City
+ <!-- /TMPL_IF -->
+</div>
<div id="doc3" class="yui-t2">
@@ -80,7 +55,7 @@
<!-- /TMPL_IF -->
<li>
<label for="city_name">City name: </label>
- <input type="text" name="city_name" id="city_name" size="40" maxlength="80" value="<!-- TMPL_VAR NAME="city_name" ESCAPE="HTML" -->" />
+ <input type="text" name="city_name" id="city_name" size="40" maxlength="80" value="<!-- TMPL_VAR NAME="city_name" ESCAPE="HTML" -->" />
</li>
<li>
<label for="city_zipcode">City zipcode: </label>
@@ -94,67 +69,45 @@
<!-- /TMPL_IF -->
<!-- TMPL_IF NAME="delete_confirm" -->
- <!-- TMPL_IF NAME="totalgtzero" -->
-<div class="dialog message">
- <h3>Cannot Delete City "<!-- TMPL_VAR NAME="city_name" -->"</h3>
- <p>This record is used <!-- TMPL_VAR NAME="total" --> times. Impossible to delete it</p>
- <!-- TMPL_ELSE -->
-<div class="dialog alert">
-<h3>Delete City "<!-- TMPL_VAR NAME="city_name" -->?"</h3>
-<!-- /TMPL_IF -->
- <table>
- <tr>
- <th>City id
- </th>
- <td>
- <!-- TMPL_VAR NAME="cityid" -->
- </td>
- </tr>
-
- <tr>
- <th>City name</th>
- <td><!-- TMPL_VAR NAME="city_name" --></td>
- </tr>
- <tr>
- <th>City zipcode</th>
- <td><!-- TMPL_VAR NAME="city_zipcode" --></td>
- </tr>
-</table>
- <!-- TMPL_IF NAME="totalgtzero" -->
- <form action="<!-- TMPL_VAR NAME="script_name" -->" method="post">
- <input type="submit" class="approv" value="OK" />
- </form>
- <!-- TMPL_ELSE -->
-<form action="<!-- TMPL_VAR NAME="script_name" -->" method="post">
- <input type="hidden" name="op" value="delete_confirmed" />
- <input type="hidden" name="cityid" value="<!-- TMPL_VAR NAME="cityid" -->" /><input type="submit" class="approve" value="Yes, Delete" /></form> <form action="<!-- TMPL_VAR NAME="script_name" -->" method="post">
- <input type="submit" class="deny" value="No, do not Delete" /></form>
- <!-- /TMPL_IF -->
+ <!-- TMPL_IF NAME="total" -->
+ <div class="dialog message">
+ <h3>Cannot Delete City "<!-- TMPL_VAR NAME="city_name" -->"</h3>
+ <p>This record is used <!-- TMPL_VAR NAME="total" --> times. Impossible to delete it</p>
+ <!-- TMPL_ELSE -->
+ <div class="dialog alert">
+ <h3>Delete City "<!-- TMPL_VAR NAME="city_name" -->?"</h3>
+ <!-- /TMPL_IF -->
+ <table>
+ <tr><th>City id</th>
+ <td><!-- TMPL_VAR NAME="cityid" --></td>
+ </tr>
+ <tr><th>City name</th>
+ <td><!-- TMPL_VAR NAME="city_name" --></td>
+ </tr>
+ <tr><th>City zipcode</th>
+ <td><!-- TMPL_VAR NAME="city_zipcode" --></td>
+ </tr>
+ </table>
+ <form action="<!-- TMPL_VAR NAME="script_name" -->" method="post">
+ <!-- TMPL_IF NAME="total" -->
+ <input type="submit" class="approv" value="OK" />
+ <!-- TMPL_ELSE -->
+ <input type="hidden" name="op" value="delete_confirmed" />
+ <input type="hidden" name="cityid" value="<!-- TMPL_VAR NAME="cityid" -->" />
+ <input type="submit" class="approve" value="Yes, Delete" />
+ </form>
+ <form action="<!-- TMPL_VAR NAME="script_name" -->" method="get">
+ <input type="submit" class="deny" value="No, do not Delete" />
+ <!-- /TMPL_IF -->
+ </form>
</div>
<!-- /TMPL_IF -->
<!-- TMPL_IF NAME="else" -->
<div id="toolbar">
- <script type="text/javascript">
- //<![CDATA[
-
- // prepare DOM for YUI Toolbar
-
- $(document).ready(function() {
- yuiToolbar();
- });
-
- // YUI Toolbar Functions
-
- function yuiToolbar() {
- new YAHOO.widget.Button("newcity");
- }
-
- //]]>
- </script>
<ul class="toolbar">
- <li><a id="newcity" href="/cgi-bin/koha/admin/cities.pl?op=add_form">New City</a></li>
+ <li><a id="newcity" href="<!-- TMPL_VAR NAME="script_name" -->?op=add_form">New City</a></li>
</ul></div>
<h2>Cities</h2>
@@ -169,14 +122,13 @@
<th>City zipcode</th>
<th> </th>
<th> </th>
-
</tr>
<!-- TMPL_LOOP NAME="loop" -->
- <!-- TMPL_IF NAME="toggle" -->
- <tr class="hilighted">
+ <!-- TMPL_UNLESS NAME="__odd__" -->
+ <tr class="highlight">
<!-- TMPL_ELSE -->
<tr>
- <!-- /TMPL_IF -->
+ <!-- /TMPL_UNLESS -->
<td><!-- TMPL_VAR NAME="cityid" --></td>
<td><!-- TMPL_VAR NAME="city_name" --></td>
<td><!-- TMPL_VAR NAME="city_zipcode" --></td>
--
1.5.6.5
More information about the Koha-patches
mailing list