[Koha-patches] [PATCH] bug 323: Item Circulation Alerts UI Fixes

Daniel Sweeney daniel.sweeney at liblime.com
Tue Feb 3 23:02:12 CET 2009


From: John Beppu <john.beppu at liblime.com>

- fixed cross browser issues.  (IE and Safari don't let you say
  someobject.class, presumably because "class" is a keyword that's reserved
  for future versions of JS.  Firefox and Opera allow it.)

- added text to the grid for added clarity.

Signed-off-by: Daniel Sweeney <daniel.sweeney at liblime.com>
---
 C4/ItemCirculationAlertPreference.pm               |    9 +++++-
 admin/item_circulation_alerts.pl                   |   18 ++++++------
 .../en/modules/admin/item_circulation_alerts.tmpl  |   31 ++++++++++++++++----
 3 files changed, 42 insertions(+), 16 deletions(-)

diff --git a/C4/ItemCirculationAlertPreference.pm b/C4/ItemCirculationAlertPreference.pm
index 7ade3df..9659cf6 100644
--- a/C4/ItemCirculationAlertPreference.pm
+++ b/C4/ItemCirculationAlertPreference.pm
@@ -349,13 +349,20 @@ sub grid {
             my $key = $c->categorycode . "-" . $i->itemtype . "-" . $notification;
             $key =~ s/\*/_/g;
             my @classes;
+            my $text = " ";
             if ($disabled{$key}) {
                 push @classes, 'disabled';
+                $text = "Disabled for $where->{branchcode}";
             }
             if ($default{$key}) {
                 push @classes, 'default';
+                $text = "Disabled for all";
             }
-            push @{$row->{items}}, { class => join(' ', @classes),  id => $key };
+            push @{$row->{items}}, {
+                class => join(' ', @classes),
+                id    => $key,
+                text  => $text,
+            };
         }
     }
     return \@grid;
diff --git a/admin/item_circulation_alerts.pl b/admin/item_circulation_alerts.pl
index f2a9ace..cf74f8f 100755
--- a/admin/item_circulation_alerts.pl
+++ b/admin/item_circulation_alerts.pl
@@ -21,7 +21,6 @@ use warnings;
 use CGI;
 use File::Basename;
 use Encode;
-use URI::Escape 'uri_escape_utf8';
 use JSON;
 #use Data::Dump 'pp';
 
@@ -73,7 +72,7 @@ sub show {
 
     my $br       = GetBranches;
     my $branch   = $input->param('branch') || '*';
-    my @branches = map { utf8($_, 'branchname') } (
+    my @branches = (
         {
             branchcode => '*',
             branchname => 'Default',
@@ -85,10 +84,10 @@ sub show {
     }
     my $branch_name = exists($br->{$branch}) && $br->{$branch}->{branchname};
 
-    my @categories = map { utf8($_, 'description') }  (
+    my @categories = (
         C4::Category->all
     );
-    my @item_types = map { utf8($_, 'description'); br($_, 'description') }  (
+    my @item_types = map { br($_, 'description') }  (
         C4::ItemType->all
     );
     my $grid_checkout = $preferences->grid({ branchcode => $branch, notification => 'CHECKOUT' });
@@ -134,14 +133,14 @@ sub toggle {
     my $response = { success => 1 };
     my @reasons  = $notifications->is_disabled_for($settings);
     if (@reasons == 0) {
-        $response->{class} = '';
+        $response->{classes} = '';
     } else {
         my $default_exists   = grep { $_->{branchcode} eq '*' } @reasons;
         my $non_default_also = grep { $_->{branchcode} ne '*' } @reasons;
         my @classes;
         push @classes, 'default'  if $default_exists;
         push @classes, 'disabled' if $non_default_also;
-        $response->{class} = join(' ', @classes);
+        $response->{classes} = join(' ', @classes);
     }
     print $input->header;
     print encode_json($response);
@@ -195,7 +194,7 @@ Display a branches item circulation alert preferences.
 
 Parameters:
 
-=over 4
+=over 2
 
 =item branch
 
@@ -212,11 +211,12 @@ Toggle a preference via AJAX
 
 Parameters:
 
-=over 4
+=over 2
 
 =item id
 
-"$categorycode-$item_type-$notification"
+The id should be string that can be split on "-" which contains:
+"$categorycode-$item_type-$notification".
 
 =item branch
 
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/item_circulation_alerts.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/item_circulation_alerts.tmpl
index 49bf688..e0010dd 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/item_circulation_alerts.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/item_circulation_alerts.tmpl
@@ -17,6 +17,10 @@ table.grid tbody th {
   text-align: right;
 }
 
+table.grid tbody td {
+  font-size: xx-small;
+}
+
 table.grid tbody td.info {
   background: #fff;
 }
@@ -43,6 +47,11 @@ table.grid td.default {
 var $branch = "<!-- TMPL_VAR NAME="branch" -->";
 $(function(){
 
+    var blocked            = _('Blocked!');
+    var saving             = _('Saving...');
+    var disabledForAll     = _('Disabled for all');
+    var disabledForCurrent = _('Disabled for') + ' ' + $branch;
+
     $('#branch_selector input:submit').hide();
     $('#branch').change(function(){
         $('#branch_selector').submit();
@@ -52,17 +61,27 @@ $(function(){
         var id = this.id;
         var td = $(this);
         if (td.hasClass('default') && $branch != '*') {
-            td.html(_('Blocked'));
+            td.html(blocked);
+            window.setTimeout(
+              function(){ td.html(disabledForAll) },
+              3000
+            );
         } else {
-            td.html(_('Saving...'));
+            td.html(saving);
             $.ajax({
                 url      : '/cgi-bin/koha/admin/item_circulation_alerts.pl',
                 type     : 'POST',
                 dataType : 'json',
                 data     : { action: 'toggle', id: id, branch: $branch },
                 success  : function(response){
-                    td.html(' ');
-                    td.attr('class', response.class);
+                    if ($branch == '*' && response.classes.match(/default/)) {
+                        td.html(disabledForAll);
+                    } else if (response.classes.match(/disabled/)) {
+                        td.html(disabledForCurrent);
+                    } else {
+                        td.html(' ');
+                    }
+                    td.attr('class', response.classes);
                 }
             });
         }
@@ -118,7 +137,7 @@ $(function(){
 <tr>
   <th><!-- TMPL_VAR NAME="description" --></th>
   <!-- TMPL_LOOP NAME="items" -->
-  <td class="<!-- TMPL_VAR NAME="class" -->" id="<!-- TMPL_VAR NAME="id" -->">&nbsp;</td>
+  <td class="<!-- TMPL_VAR NAME="class" -->" id="<!-- TMPL_VAR NAME="id" -->"><!-- TMPL_VAR NAME="text" --></td>
   <!-- /TMPL_LOOP -->
 </tr>
 <!-- /TMPL_LOOP -->
@@ -140,7 +159,7 @@ $(function(){
 <tr>
   <th><!-- TMPL_VAR NAME="description" --></th>
   <!-- TMPL_LOOP NAME="items" -->
-  <td class="<!-- TMPL_VAR NAME="class" -->" id="<!-- TMPL_VAR NAME="id" -->">&nbsp;</td>
+  <td class="<!-- TMPL_VAR NAME="class" -->" id="<!-- TMPL_VAR NAME="id" -->"><!-- TMPL_VAR NAME="text" --></td>
   <!-- /TMPL_LOOP -->
 </tr>
 <!-- /TMPL_LOOP -->
-- 
1.5.5.GIT




More information about the Koha-patches mailing list