Commit Graph

58235 Commits

Author SHA1 Message Date
Jonathan Druart 6096d986d5
Bug 40168: Remove cleanup() call from afterEach
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Pedro Amorim <pedro.amorim@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-08 15:42:02 -06:00
Jonathan Druart b83df697de
Bug 40168: Restore afterEach in KohaTable Cypress tests
We defined an anonymous function inside an arrow function, and Cypress does not call it.

Test plan:
Set AlwaysShowHoldingsTableFilters to "Do not"
Run t/cypress/integration/KohaTable/Holdings_spec.ts:
  yarn cypress run --spec t/cypress/integration/KohaTable/Holdings_spec.ts

When done, have a look at the value of AlwaysShowHoldingsTableFilters
=> without this patch it has been modified (not restored) and is set to
"Do"
=> With this patch applied the original value is restored at the end of
the tests (actually the end of each test)

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Pedro Amorim <pedro.amorim@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-08 15:42:02 -06:00
Jonathan Druart f0b4bd4fa2
Bug 39876: Make build-git-snapshot pass codespell
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-08 15:42:01 -06:00
Tomas Cohen Arazi 85b65afd1d
Bug 39876: Add build-git-snapshot type resolution
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-08 15:42:01 -06:00
Tomas Cohen Arazi 35c4a6eb07
Bug 39876: Make find-missing-op-in-forms.t test TT files
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-08 15:42:00 -06:00
Jonathan Druart 09bfbd5060
Bug 39876: Get TT files for tt_tidy
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-08 15:42:00 -06:00
Jonathan Druart 48263039af
Bug 39876: Apply module to other tests
We are ready to reuse Koha::Devel::Files in other places where
`git ls-files` is used.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-08 15:41:59 -06:00
Jonathan Druart e7e42c5e88
Bug 39876: Add context for tidy
With this patch we adjust what's needed to make misc/devel/tidy.pl run
identically as before

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-08 15:41:59 -06:00
Jonathan Druart 1d4071298c
Bug 39876: Move `git ls-files` to Koha::Devel::Files
This patch introduces a new Koha::Devel namespace. It clearly shows
that its purpose is for development and will not contain any business
logic.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-08 15:41:58 -06:00
Tomas Cohen Arazi b5a077425e
Bug 40164: (follow-up) Update debian/control
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-08 15:41:58 -06:00
Tomas Cohen Arazi 25951ea83f
Bug 40164: Add Template::Plugin::JSON dependency
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-08 15:41:50 -06:00
Jonathan Druart 8a5a0ab39e
Bug 38899: Fix Cypress tests
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-07 10:20:28 -06:00
Jonathan Druart d538261fd4
Bug 40129: Fix selenium tests
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-07 10:20:28 -06:00
Jonathan Druart 1c7cb4d43b
Bug 40277: Add a test
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-07 10:20:27 -06:00
Fridolin Somers d60deb348c
Bug 40277: Remove warn in C4::Koha::GetAuthorisedValues()
When using the OPAC and you are not logged in, there are warnings
in the logs:
[WARN] Use of uninitialized value $branch_limit in concatenation (.) or string

It comes from C4::Koha::GetAuthorisedValues() :
     my $branch_limit = C4::Context->userenv ? C4::Context->userenv->{"branch"} : "";
     my $cache_key    = "AuthorisedValues-$category-$opac-$branch_limit";

C4::Context->userenv->{"branch"} can be undef

The patch fixes using C4::Context::mybranch().

Test plan:
1. Set the OpacAdvancedSearchTypes system preference to something
   other than "itemtypes", for example "loc".
2. Go to OPAC without logging in, and perform a search.
3. Check the /var/log/koha/kohadev/plack-opac-error.log and note
   the warnings in the log:
   [WARN] Use of uninitialized value $branch_limit in concatenation (.) or ...
   (Alternative, tail the logs: tail -f /var/log/koha/kohadev/*.log
4. Apply the patch.
5. Repeat step 2 and check that there are no longer any warnings.
6. Sign off.

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-07 10:20:27 -06:00
Jonathan Druart 1e81401295
Bug 39289: Display all checkouts in the batch extend due date tools
When paginate is false, pageLength is still used.
If more than 20 checkouts should be displayed, only 20 will.

Test plan:
Have more than 20 checkouts, use the batch extend due date tool and
notice that all checkouts are displayed when this patch is applied.

Signed-off-by: Magnus Enger <magnus@libriotech.no>
Tested on top of bug 39081.

Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-07 10:20:26 -06:00
Jonathan Druart 0802e46e18
Bug 40046: Use xml and auto-select it
Absolutely no idea why the previous code was not selecting MARCXML (MARC
was passed and so the import failed)

        cy.get('select[name="format"]')
            .select("MARCXML", { force: true })
            .should("have.value", "MARCXML");

But I found a bug in the JS code: we are supposed to auto-detect .xml
file and pre-select MARCXML. So let's rely on that behaviour!

sample.mrc is actually an xml file so it makes sense to rename it

Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-07 10:20:26 -06:00
Jonathan Druart 9ebfd8d462
Bug 40046: Prevent random failures when verifying select's values
Commands like .select() are queued. We need to prevent the should to
happen before the select is executed.

Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-07 10:20:25 -06:00
Jonathan Druart f12bbbf010
Bug 40046: (bug 39606 follow-up) Remove waits and screenshots
From bug 39606:
"""
Why are you taking screenshots?
The wait statements will certainly cause random failures.

cy.wait(5000);
cy.wait(2000);

Notice the following couple of lines:
  cy.get("#fileuploadstatus").contains("100%");
  cy.get("legend").contains("Look for existing records in catalog?").should('be.visible');

It makes Cypress wait 10s until "100%" appears (ie. the file is updated), then the block with the dropdown lists you are going to interact with to be visible.

You should almost never use cy.wait.
"""

Test plan:
  yarn cypress run --spec t/cypress/integration/Tools/ManageMarcImport_spec.ts
should still pass

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-07 10:20:25 -06:00
Martin Renvoize 32860c2778
Bug 37305: (follow-up) Only add control number subfield when defined
The previous commit introduced a bug where the control number subfield 'w'
was being added to the MARC field even when undefined, causing test failures.

This patch adds a condition to only push the control number subfield when
the value is actually defined, matching the pattern used for other subfields
in the method.

Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-07 10:20:24 -06:00
Martin Renvoize 3e627d7a77
Bug 37305: Remove C4::Biblio::prepare_host_field
This patch updates the only use of prepare_host_field to use the well
tested Koha::Biblio->generate_marc_host_field method instead and then
removes the aforementioned prepare_host_field method from C4::Biblio.

Test plan
1) Ensure the "enhanced workflow" for creating analytics still functions
   as expected.

Sponsored-by: Open Fifth <https://openfifth.co.uk>
Signed-off-by: Heather Hernandez <flyingendpaper@gmail.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-07 10:20:24 -06:00
Martin Renvoize 3d9778b2cd
Bug 37305: Subfield order matters
This patch updates the use of a hash to store and then pass subfields to
the MARC::Field new method to an array with key/value pairs using fat comma's.

This allows us to maintain the integrity check that we're passing string
as the first arguament in each pair whilst also allowing us to ensure
fields are passed in the order they are found.

Sponsored-by: Open Fifth <https://openfifth.co.uk>
Signed-off-by: Heather Hernandez <flyingendpaper@gmail.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-07 10:20:23 -06:00
Owen Leonard da12f99507
Bug 20601: Untranslatable strings in circulation statistics
This patch makes some updates to the circulation statistics wizard in
order to make more information translatable.

The patch also adds some template plugins to the output of filter
options in order to be able to show descriptions instead of codes, and
corrects the markup for the 'Patron library' dropdown which wasn't
working.

To test apply the patch and go to Reports -> Statistics wizards ->
Circulation.

- Test setting some or all options in the "Filter column" and running
  the report.
  - Confirm that the "Patron library" dropdown works.
- At the top of the results there should be a list of the filter options
  you selected and their values.
- All the filter labels should be correct, and the filter values should
  should be in their full/description form rather than in code form
  (e.g. library, item type, collection code, sorting field, etc.)

Sponsored-by: Athens County Public Libraries
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Aleisha Amohia <aleishaamohia@hotmail.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-07 10:20:23 -06:00
Tomas Cohen Arazi dc11fbdc5b
Bug 40261: Tidy debian/build-git-snapshot
Signed-off-by: David Flater <flaterdavid@gmail.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-07 10:20:12 -06:00
Lucas Gass a7ed3b9174
Revert "Bug 40164: Add Template::Plugin::JSON dependency"
This reverts commit d3783f8859.

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-03 08:56:11 -06:00
Lucas Gass d4647c9523
Bug 34561: DBRev 25.06.00.002
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-30 16:00:49 -06:00
Lisette Scheer c1a1b85c87
Bug 34561: (QA follow-up) Rename to StaffReportsHome to match othe html customizations
I noticed the rest of the html customizations don't have html in the option name, so I renamed for consistency.

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-30 16:00:48 -06:00
Owen Leonard 20caaf611a
Bug 34561: Move IntranetReportsHomeHTML to HTML customizations
This patch moves the IntranetReportsHomeHTML system preference into
HTML customizations, making it possible to have language- and
library-specific content.

To test you should have some content in the IntranetReportsHomeHTML
system preference before applying the patch. Apply the patch and run the
database update process.

- In the staff client, go to Tools -> HTML customizations and verify
  that the content from IntranetReportsHomeHTML is now stored there.
- The HTML customization entry form should offer
  IntranetReportsHomeHTML as a choice under "Display location."
- Update and reinstall active translations (for instance fr-FR):
  - perl misc/translator/translate update fr-FR
  - perl misc/translator/translate install fr-FR
- Enable the translation if necessary under Administration -> System
  preferences -> language.
- Edit the IntranetReportsHomeHTML HTML customization and add unique
  content to the "fr-FR" tab.

- Go to the reports home page. You should see the
  content you added to the IntranetReportsHomeHTML HTML
  customization.
- Switch to your updated translation and confirm that the content you
  added for your translation shows up correctly.
- Go to Administration -> System preferences and search for
  "IntranetReportsHomeHTML." It should return no results.

Sponsored-by: Athens County Public Libraries
Signed-off-by: Ray Delahunty <lib-systems@arts.ac.uk>
Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-30 16:00:48 -06:00
David Nind 3622664b91
Bug 40281: Hide the type column on the patron circulation history page
This fixes the patron circulation history page so that the type column
is hidden.

The type column on a patron's circulation history page was hidden by
Bug 38954 - Hide checkout type using colvis.

However, the commit for Bug 37273 - Add ID column to Agreements
table in the ERM, inadvertently reversed hiding the column.

Test plan:
1. Check out an item to a patron (for example, 39999000011418 to Mary
   Burton).
2. Look at the patron's circulation history page (Patrons > Mary Burton
   > Circulation history), and note there is a 'Type' column shown
   with a value of 'standard_checkout'.
3. Note that you can't hide the column, from either selecting the
   'Columns' or 'Configure' options for the table.
4. Apply the patch, restart everything (restart_all), and clear your
   browser cache.
5. Repeat step 2. Note that there is now no 'Type' column shown and
   it is not configurable, from either selecting the 'Columns' or
   'Configure' options for the table.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Laura_Escamilla <laura.escamilla@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-30 16:00:47 -06:00
Owen Leonard 0c074c694e
Bug 39441: Some staff interface templates have div.container instead of div.container-fluid
This patch updates a few templates so that div.container is replaced
with div.container-fluid. div.container gives us a fixed maximum width
that isn't consistent the rest of Koha.

To test, apply the patch and go to the staff interface.

- Perform a catalog search which will return multiple results.
- In the search results, check multiple results and click "Add to cart."
- Click the cart icon in the top menu to trigger the cart popup.
- The contents of the cart popup should fill the whole width of the
  window.
- The other instances of this are less noticeable because of how the
  pages work. These changes are more about consistency:
  - The OPAC place hold page
  - The club enrollment process (both in the OPAC and the staff
    interface)
  - As long as these interactions work correctly all is good.

Sponsored-by: Athens County Public Libraries
Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-30 16:00:47 -06:00
Lucas Gass 81859ce662
Bug 38939: Add reservenote column to members/holdshistory.pl
To test:
1. APPLY PATCH, restart_all
2. Make some holds for patrons in both the staff client and the OPAC. ( For OPAC turn on  OpacHoldNotes )
3. Make sure you add some notes to each of these holds.
4. Go to the patron account and click on the 'Holds history' tab.
5. Make sure the hold note is there and looks correct.
6. Ensure you can hide the coluimn properly via Table settings.

Signed-off-by: Andrew Auld <andrew.auld@openfifth.co.uk>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-30 16:00:46 -06:00
Martin Renvoize f8a1e44f5c
Bug 33729: (QA follow-up) Tidy
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-30 16:00:46 -06:00
Laura_Escamilla 6169b9cdf1
Bug 33729: Added datacolumn for date accessioned
Signed-off-by: Emmanuel Bétemps <e.betemps@gmail.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-30 16:00:45 -06:00
Laura_Escamilla 4b18fba007
Bug 33729: Added dateaccessioned to column_settings.yml
Signed-off-by: Andrew Auld <andrew.auld@openfifth.co.uk>
Signed-off-by: Emmanuel Bétemps <e.betemps@gmail.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-30 16:00:45 -06:00
Laura_Escamilla 5875adce83
Bug 33729: Added date accessioned to items search table
Test plan:
1. Apply patch
2. Go to item search
    1. Notice that there is now a date accessioned column
    2. Export the table into a CSV and notice that there is also a date accessioned column there
3. Sign off and have an amazing day :D

Signed-off-by: Emmanuel Bétemps <e.betemps@gmail.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-30 16:00:44 -06:00
Emily Lamancusa 8436f799c1
Bug 31632: (QA follow-up) Align behavior with order from suggestion
If an order is added from a suggestion in the first place, the
suggestion automatically changes status to ORDERED, and a notice is
sent out to the patron. If a suggestion is linked to the order after
the fact, it should move to ORDERED and notify the patron as well.

Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Aleisha Amohia <aleishaamohia@hotmail.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-30 16:00:44 -06:00
Emily Lamancusa ef271e8bd5
Bug 31632: (QA follow-up) Adjust TT filters and remove extra form-submit.js
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Aleisha Amohia <aleishaamohia@hotmail.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-30 16:00:43 -06:00
Aleisha Amohia 73de7c716e
Bug 31632: (follow-up) CSRF protection for linking order to suggestion
Signed-off-by: Andrew Fuerste Henry <andrew@bywatersolutions.com>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-30 16:00:43 -06:00
Tomas Cohen Arazi 8643b6c0fd
Bug 31632: (follow-up) Simplify link text
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Andrew Fuerste Henry <andrew@bywatersolutions.com>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-30 16:00:42 -06:00
Aleisha Amohia 7546669920
Bug 31632: Link a suggestion to an existing order
This enhancement allows library staff to link an order (in an unclosed basket, or a standing order) to an accepted suggestion.

To test:

1) In the staff interface, go to Suggestions and create at least two suggestions.
2) Mark at least two suggestions as Accepted.
3) Go to Acquisitions, create a vendor if you don't have one already.
4) Have or create two baskets - one should be standing, and one not standing (normal).
5) In the normal basket (not standing), add an order from any source but NOT from a suggestion.
6) When you save the order, there should be a new link in the Modify column of the Orders table - "Search for suggestion to link". Click this.
7) Choose one of your suggestions to link to the order.
8) You should be redirected back to the basket. Confirm your order has been correctly linked to the suggestion. Confirm there is no link to "Search for suggestion to link" for this order now that a suggestion has already been linked.
9) Add another order to this basket from any source but NOT from a suggestion.
10) Close the basket. Confirm there is no link to "Search for suggestion to link" because the basket is closed, but you could reopen the basket to link the order if you wanted to.
11) Go to Baskets in the left navigation so you can find your standing basket.
12) Add an order to your standing basket from any source but NOT from a suggestion.
13) Go to the vendor and Receive shipments. Receive your standing order and finish receiving.
14) Go to the standing basket. There should be a new unreceived standing order for the record you just received, with a link to "Search for suggestion to link". Click this.
15) Choose a suggestion to link to the order.
16) You should be redirected back to the basket. Confirm your orders for this record have been correctly linked to the suggestion.

Sponsored-by: Pymble Ladies' College
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Andrew Fuerste Henry <andrew@bywatersolutions.com>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-30 16:00:42 -06:00
Tomas Cohen Arazi d3783f8859
Bug 40164: Add Template::Plugin::JSON dependency
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-30 16:00:34 -06:00
Owen Leonard 3f6b630601
Bug 40249: "Copy settings" should be "Copy permissions"
This patch changes the "Copy sesttings" button on the patron permissions
page to return it to its previous text "Copy permissions." This is
consistent with related controls on the page.

To test, apply the patch and locate a patron in the staff interface.
From their checkout or detail page choose More -> Set permissions from
the toolbar.

In the toolbar of permissions-related controls you should see a button
labeled "Copy permissions."

Sponsored-by: Athens County Public Libraries
Signed-off-by: David Flater <flaterdavid@gmail.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-30 08:30:52 -06:00
Emily Lamancusa 78dbb72ce9
Bug 40030: Escape values when displaying action logs comparison
When viewing the action logs for a system preference change, there is an
option to view a comparison between different log lines for the same
system preference. However, if a system preference value contains HTML
markup (e.g. in IntranetUserJS), the diff text is only escaped on
sections where a change is marked, so unchanged lines containing HTML
markup result in the HTML being rendered.

Escape the string values for unchanged sections as well, to ensure that
HTML markup in the diff text will not be rendered.

To test:
1. Edit IntranetUserJS and add some code that contains HTML markup.
   For example:
$("body").append('<a id="helloworld" class="btn btn-default">Say hi</a>');
2. Save the preference
3. Make another change to IntranetUserJS that does not affect the line
   you just added, and save again to ensure there are at least 2 action
   log lines for comparison
4. Go to Tools > Log viewer
5. Select System Preferences module and Submit
6. Find the log entries for the above two revisions to IntranetUserJS
7. Check the Compare checkboxes on those entries, and click View
   comparison
--> Note that the HTML button is rendered in the comparison
8. Apply patch
9. Clear browser cache and refresh the page
10. Repeat step 7
--> The button is not rendered and the code is displayed as written
11. Make a change to the line you added in step 1 (for example, replace
    "Say hi" with "Say hello")
12. Refresh the page
13. Check the checkboxes for the newest 2 log entries and click View
    comparison to view the diff for that last change
--> Confirm the change is shown correctly - the button is not rendered
    and nothing has been double-escaped

Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-30 08:30:52 -06:00
Emmi Takkinen 2c4a89801e
Bug 34776: Add unit tests for sub restore_form_values
Test that input values don't change when send to the
sub restore_form_values.

To test prove t/Form_MessagingPreferences.t

Sponsored-by: Koha-Suomi Oy
Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-30 08:30:51 -06:00
Emmi Takkinen c4052b981f
Bug 34776: Remove unneeded if statement
We don't need to check if $op is add_form after
error, since this value always changes.

Sponsored-by: Koha-Suomi Oy
Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-30 08:30:51 -06:00
Marcel de Rooy 6cc683b518
Bug 34776: Unit tests
Just a small beginning..

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-30 08:30:50 -06:00
Emmi Takkinen 8ed31509ae
Bug 34776: Restore patron messaging preferences if error occurs during new account creation
If error occurs while creating a new patron messaging
preferences are either lost or reseted as default
fro patron category. This patch adds new method
restore_form_values to restore already added messaging
preferences.

To test:
1. Enable syspref EnhancedMessagingPreferences.
2. Create a new patron but cause an error to prevent it from
saving (e.g. add wrong age).
3. Add messaging preferences for patron (if there are default
preferences, add also new ones or remove defaults).
4. Attempt to save.
=> Note that messaging preferences were lost and you need to
readd them.
5. Apply this patch.
6. Repeat steps from 2 to 4.
=> Note that messaging preferences which you added are kept
even if error occurs.

Sponsored-by: Koha-Suomi Oy
Signed-off-by: Jesse Maseto <jesse@bywatersolutions.com>
Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-30 08:30:50 -06:00
Marcel de Rooy c0a1731715
Bug 39871: (QA follow-up) Do not hardcode nullable check
Lets check DBIx's columns_info.

Test plan:
Try to blank an integer column and a string column. Verify results.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-30 08:30:49 -06:00
Emily Lamancusa 341c93ee58
Bug 39871: Don't pass undef for non-nullable fields from batch mod tool
To test:
1. Set not-for-loan, withdrawn, and damaged statuses on some items
2. Try to edit only those items with the Batch item modification tool
3. Check the checkboxes to clear the withdrawn, not-for-loan, and
   damaged statuses
4. Click Save
5. View the background job report
   --> Note that it says the items could not be modified
6. Look at the items
   --> The statuses have not been cleared
7. Apply patch and restart_all
8. Repeat steps 2-5
   --> The background job report says the modifications were successful
9. View the items
   --> The statuses have been cleared

Signed-off-by: David Flater <flaterdavid@gmail.com>
Signed-off-by: Owen Leonard <oleonard@myacpl.org>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-30 08:30:49 -06:00
Tomas Cohen Arazi 77fdb32e8f
Bug 40244: Fix typo in branchoverdues.tt
This patch fixes a trivial typo. The text appears in two more places
with the right form on the same template.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Owen Leonard <oleonard@myacpl.org>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-30 08:30:48 -06:00