Bug 19722: Don't show items at job completion if over pref
authorNick Clemens <nick@bywatersolutions.com>
Tue, 26 Mar 2019 20:20:29 +0000 (20:20 +0000)
committerNick Clemens <nick@bywatersolutions.com>
Thu, 28 Mar 2019 18:06:23 +0000 (18:06 +0000)
To test:
1 - Set MaxItemsToDisplayForBatchMod to some number
2 - Modify less items than that
3 - Note they show
    a - Note if over 1000 they show in a simple display
4 - Modify more items
5 - Note they do not show and you see a note

Signed-off-by: Josef Moravec <josef.moravec@gmail.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-edit.tt
tools/batchMod.pl

index e96dda3..968770d 100644 (file)
@@ -211,15 +211,19 @@ $(document).ready(function(){
 </div>
 [% END %]<!-- /item_loop -->
 
-[% IF ( simple_items_display ) %]
-    <p>The following items were modified:</p>
-    <ul>
-    [% FOREACH simple_items_displa IN simple_items_display %]
-  <li>
-      [% IF ( CAN_user_editcatalogue_edit_items ) %]<a href="/cgi-bin/koha/cataloguing/additem.pl?op=edititem&amp;biblionumber=[% simple_items_displa.biblionumber | uri %]&amp;itemnumber=[% simple_items_displa.itemnumber | uri %]">[% simple_items_displa.barcode | html %]</a>[% ELSE %][% simple_items_displa.barcode | html %][% END %]
-  </li>
+[% IF ( simple_items_display || job_completed ) %]
+    [% IF ( too_many_items_display ) %]
+        <p>Too many items ([% too_many_items_display | html %]): You have edited more than [% Koha.Preference('MaxItemsToDisplayForBatchMod') | html %] items in a batch, items will not be shown.</p>
+    [% ELSE %]
+        <p>The following items were modified:</p>
+        <ul>
+        [% FOREACH simple_items_displa IN simple_items_display %]
+      <li>
+          [% IF ( CAN_user_editcatalogue_edit_items ) %]<a href="/cgi-bin/koha/cataloguing/additem.pl?op=edititem&amp;biblionumber=[% simple_items_displa.biblionumber | uri %]&amp;itemnumber=[% simple_items_displa.itemnumber | uri %]">[% simple_items_displa.barcode | html %]</a>[% ELSE %][% simple_items_displa.barcode | html %][% END %]
+      </li>
+        [% END %]
+        </ul>
     [% END %]
-    </ul>
 [% END %]<!-- /simple_items_display -->
 
 [% IF ( show ) %]
index 8e1e854..85077ab 100755 (executable)
@@ -119,21 +119,27 @@ if ($op eq "action") {
     # Once the job is done
     if ($completedJobID) {
        # If we have a reasonable amount of items, we display them
-    if (scalar(@itemnumbers) <= ( C4::Context->preference("MaxItemsToDisplayForBatchDel") // 1000 ) ) {
-           $items_display_hashref=BuildItemsData(@itemnumbers);
-       } else {
-           # Else, we only display the barcode
-        my @simple_items_display = map {
-            my $itemnumber = $_;
-            my $item = Koha::Items->find($itemnumber);
-            {
-                itemnumber   => $itemnumber,
-                barcode      => $item ? ( $item->barcode // q{} ) : q{},
-                biblionumber => $item ? $item->biblio->biblionumber : q{},
-            };
-        } @itemnumbers;
-           $template->param("simple_items_display" => \@simple_items_display);
-       }
+    my $max_items = $del ? C4::Context->preference("MaxItemsToDisplayForBatchDel") : C4::Context->preference("MaxItemsToDisplayForBatchMod");
+    if (scalar(@itemnumbers) <= $max_items ){
+        if (scalar(@itemnumbers) <= 1000 ) {
+            $items_display_hashref=BuildItemsData(@itemnumbers);
+        } else {
+            # Else, we only display the barcode
+            my @simple_items_display = map {
+                my $itemnumber = $_;
+                my $item = Koha::Items->find($itemnumber);
+                {
+                    itemnumber   => $itemnumber,
+                    barcode      => $item ? ( $item->barcode // q{} ) : q{},
+                    biblionumber => $item ? $item->biblio->biblionumber : q{},
+                };
+            } @itemnumbers;
+            $template->param("simple_items_display" => \@simple_items_display);
+        }
+    } else {
+        $template->param( "too_many_items_display" => scalar(@itemnumbers) );
+        $template->param( "job_completed" => 1 );
+    }
 
        # Setting the job as done
        my $job = C4::BackgroundJob->fetch($sessionID, $completedJobID);