Bug 16263: making authority tags and subfields actions buttons
EDIT: Subfields icon, 'i' to eye
To test:
1) Go to Admin -> Authority types
2) Click the dropdown for one of the frameworks and click MARC structure
3) Confirm the actions subfields, edit and delete all show in the dropdown and work as expected
4) Click subfields
5) Confirm the action delete on this page shows as a font awesome button and works as expected
Sponsored-by: Catalyst IT Signed-off-by: Arslan Farooq <arslanone@gmail.com> Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Another sign, pretty eye.
No errors.
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Owen Leonard [Thu, 28 Apr 2016 01:44:57 +0000 (21:44 -0400)]
Bug 10171 [Follow-up] Add a header in Advanced Search (staff interface)
This patch re-indents the new include file because it's not often you
get to help a new file come into the world, it should be indented
nicely.
Signed-off-by: Marc Véron <veron@veron.ch> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Bug 10171: Add a search box include on advanced search and item search pages
This patch creates a new file: adv-search.inc. This search include has
no catalog search (as it makes no sense to have the catalog search tab
on the advanced search page).
The item search page uses home-search.inc (with catalog search) as the
catalog search is different to the item search.
To test:
1) Go to Search (advanced search)
2) Confirm search header is there with no catalog search tab and works
as expected
3) Go to item search
4) Confirm search header is there with catalog search tab and works as
expected
Sponsored-by: Catalyst IT Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Tested together with follow up patch, works as expected. Signed-off-by: Marc Véron <veron@veron.ch> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Bug 15414: Silencing warns triggered by creating a new layout in patron card creator
This patch assigns $field and $image values in the for loops
To test:
1) Go to Tools -> Patron Card Creator -> New layout
2) Notice warns
3) Apply patch and refresh page
4) Notice warns are gone and page still works as expected
Sponsored-by: Catalyst IT
NOTE: Trivial initialization in a loop issue.
Signed-off-by: Mark Tompsett <mtompset@hotmail.com> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Mark Tompsett [Mon, 11 Apr 2016 03:22:11 +0000 (23:22 -0400)]
Bug 16236: Whitespace followup
tab to 4 spaces on line 255, as per koha qa test tool failure
without this patch.
TEST PLAN
---------
1) Apply first patch
2) Run koha qa test tools
-- fails because of a tab
3) Apply this patch
4) Run koha qa test tools
-- passes
Signed-off-by: Mark Tompsett <mtompset@hotmail.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Bug 16236: Making authorised values actions buttons
To test:
1) Go to Admin -> Authorised values
2) Select a category
3) Confirm that Edit and Delete shows as buttons under 'Actions' column and work as expected
Sponsored-by: Catalyst IT Signed-off-by: Mark Tompsett <mtompset@hotmail.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Bug 16235: Making borrower account actions buttons
EDIT: Fixing some indenting and adding actions class to the cells so the buttons don't wrap
EDIT: Comment 6
EDIT: Moving the buttons into one column
EDIT: Fixing typo and js error
EDIT: removing tabs
To test:
1) Go to a borrower's account page who has paid fines before
a) Confirm column heading is now 'Actions' and covers both Reverse column and Print column
b) Confirm Reverse and Print show as buttons and work as expected
2) Go to a borrower's account page who has never paid fines (or create a new borrower)
a) Create a manual credit (just to put something in their account)
b) Go back to their account page
c) Confirm the Reverse column does not show as the column heading for Print is (since there is only one action in this column and it's written on every button)
d) Confirm Print shows as a button and works as expected
Sponsored-by: Catalyst IT Signed-off-by: Mark Tompsett <mtompset@hotmail.com>
Followed test plan. White spaces OK. Signed-off-by: Marc Véron <veron@veron.ch> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
To test:
1) Go to the Fines account of a borrower (i.e. members/boraccount.pl)
2) Notice 'View link' text is unnecessary and clutters description column
3) Apply patch and refresh page
4) Confirm 'view link' text is gone and the record title is now a link and works as expected
Sponsored-by: Catalyst IT Signed-off-by: Mark Tompsett <mtompset@hotmail.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Aleisha [Thu, 31 Mar 2016 21:24:21 +0000 (21:24 +0000)]
Bug 16182: Make phone number clickable to call
EDIT: fixing typo, changing sms number from tel: to sms:
To test:
1) Go to a patron detail page
2) Confirm that all available phone numbers can be clicked and allow you to call this number from your device
a) in the top left circ-menu.inc
b) primary/secondary/other/organisation/mobile phone numbers
c) alternate address phone number
d) alternate contact phone number
e) enable the EnhancedMessagingPreferences system preference. check the SMS number under Patron messaging preferences (back on the detail page) is clickable
3) Check to see if there are any phone numbers I have missed.
Sponsored-by: Catalyst IT Signed-off-by: Marc Veron <veron@veron.ch> Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Owen Leonard [Fri, 22 Apr 2016 13:31:10 +0000 (09:31 -0400)]
Bug 16281: [Follow-up] Remove the use of "onclick" from Reports module
This minor follow-up adds a dummy href attribute to the "Return to the
previous page" link so that the link behaves like a link. A
"preventDefault()" is added to the goback() function to keep the "#"
link from triggering a page jump.
To test, apply the patch, create a report with an SQL error and run
it. Confirm that the 'Return to previous page' link works as expected.
Signed-off-by: Hector Castro <hector.hecaxmmx@gmail.com>
Works as advertised
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Bug 16281: Remove the use of 'onclick' from Reports module
EDIT: Removing unnecessary functions
To test:
1) Go to Reports -> Dictionary
a) Attempt to delete a definition. Confirm the Ok and cancel
buttons in confirm dialog work as expected
2) Go to Reports -> Build new
a) On each step of building a report, confirm the back button
works as expected
b) Confirm add column and delete column on step 3 works as
expected
3) Confirm deleting a report from the toolbar triggers confirm dialog
and it works as expected
4) Create a report with an SQL error and run it. Confirm that the
'Return to previous page' link works as expected
Sponsored-by: Catalyst IT Signed-off-by: Owen Leonard <oleonard@myacpl.org> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Bug 16268: Add confirm message for deleting circ and fines rules
EDIT: Removes unnecessary code and uses confirm message in staff-global.js
To test:
1) Apply 16267
2) Go to Admin -> Circ and fines rules
3) Try clicking on Delete and Unset buttons
4) Confirm a confirm message pops up and works as expected
Sponsored-by: Catalyst IT Signed-off-by: Marc Véron <veron@veron.ch> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Bug 16267: Making circ and fines rules actions buttons
EDIT: Comment 3
To test:
1) Go to Admin -> Circulation and fines rules
2) Fines rules
a) Confirm that buttons Edit, Delete, Save, and Clear all show as font awesome buttons and work as expected
2) Default checkout, hold and return policy
a) Confirm that column heading is now Actions
b) Confirm that actions Save and Unset show as font awesome buttons and work as expected
3) Checkout limit by patron category AND holds policy by item type
a) Confirm that buttons Add and Delete show as font awesome buttons and work as expected (you may need to add a rule to see the Delete button)
4) Confirm that none of the buttons wrap on a narrower browser
Sponsored-by: Catalyst IT Signed-off-by: Arslan Farooq <arslanone@gmail.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Bug 16363: Add floating toolbar to advanced search
EDIT: Ah yes I was so sure it wasn't mini but couldn't remember what to
use! Thanks for that Owen
To test:
1) Go to advanced search
2) Confirm Save, More Options and Clear fields (notice change from New
search to Clear fields) are in toolbar and work as expected
Sponsored-by: Catalyst IT Signed-off-by: Owen Leonard <oleonard@myacpl.org> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Bug 16360: Adding 'actions' class to column in tag review so buttons don't wrap
EDIT: Comment 3
Note: the wrapping only happens when all tags have been approved (or all
rejected), i.e. column has a certain width. When testing, ensure all
tags have been approved or rejected and click the opposite
action to see the effect of the bug and the patch.
To test:
1) Go to Tools -> Tags
2) Click Reject for a tag
3) Notice buttons do not wrap
Sponsored-by: Catalyst IT Signed-off-by: Owen Leonard <oleonard@myacpl.org> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Bug 16359: Changing size of text input fields so filter box doesn't cover parts of page
To test:
1) Go to Reports -> Saved reports
2) Notice how Filter covers parts of page
3) Apply patch and refresh page
4) Notice how Filter does not cover anything anymore
Sponsored-by: Catalyst IT Signed-off-by: Owen Leonard <oleonard@myacpl.org>
I couldn't see the problem in Firefox, but it is a problem in Chrome.
The fix works fine for both.
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
EDIT: Added 'validated' class to form and removed 'Required' span (became unnecessary)
To test:
1) Go to Acqui -> Do a vendor search
2) Receive a shipment
3) Attempt to click 'Next' without specifying invoice number. Notice error.
4) Go back to vendor search then apply patch. Click Receive shipment
5) Notice you cannot click 'Next' until you put something in invoice number.
Sponsored-by: Catalyst IT Signed-off-by: Marc Véron <veron@veron.ch> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
To test:
1) Go to Admin -> Item types
2) Confirm Edit and Delete show as font awesome buttons and work as expected
3) Confirm the buttons do not wrap with a narrower browser
Sponsored-by: Catalyst IT Signed-off-by: Marc Véron <veron@veron.ch> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Jonathan Druart [Fri, 8 Apr 2016 12:37:46 +0000 (13:37 +0100)]
Bug 16221: follow-up for changes made by bug 16229
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Tomas Cohen Arazi <tomascohen@unc.edu.ar> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Jacek Ablewicz [Thu, 7 Apr 2016 08:26:31 +0000 (10:26 +0200)]
Bug 16221: Use Storable::dclone() instead of Clone::clone() for L1 cache deep-copying mode
Storable dclone() is over 3x faster then Clone::clone() when used for
creating a deep copies of the big, complex data structures like MARC
frameworks. See also Bug 16044 comments #18 & #20.
This is a trivial version of Bug 16166. Performance test
results (see Bug 16140 comment #23 for test setup description):
Bug 16166 is a bit faster and more comprehensive implementation, but
also more complex and harder to test/evaluate.
Test plan:
1) apply patch
2) profile GetMarcStructure() calls before / after patch, e.g. by
running some script which calls it often (like catalogue search
w/ XSLT processing turned on, etc.)
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Tomas Cohen Arazi <tomascohen@unc.edu.ar> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Kyle M Hall [Mon, 18 Apr 2016 13:21:12 +0000 (13:21 +0000)]
Bug 15534 [QA Followup] - Remove superfluous lines from unit tests
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Kyle M Hall [Sat, 6 Feb 2016 03:59:31 +0000 (03:59 +0000)]
Bug 15534 - Add the ability to prevent a patron from placing a hold on a record with available items
Some libraries would like to prevent patrons from placing holds on
items where there are other items available for the patron to
check out.
Test Plan:
1) Apply this patch
2) Browse to the circulation rules
3) Note the new option for "On shelf holds allowed"
4) Set the rule to "If all unavailable", set "item level holds" to allow
5) Find a patron/branch/itemtype applicable to this rule
6) Ensure at least one item on the record is available for the
patron to check out
7) Attempt to place a hold for the item
8) Note you cannot place the hold
9) Check the available item out to another patron
10) Note you can now place a hold for the first patron
Signed-off-by: Andreas Hedström Mace <andreas.hedstrom.mace@sub.su.se>
Works as intended!
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Julian Maurice [Tue, 12 Apr 2016 13:18:20 +0000 (15:18 +0200)]
Bug 15533: Fix 'ambiguous' SQL query in CanItemBeReserved
Adding reserves.itemtype made a query to fail in CanItemBeReserved.
This patch prefixes the column names with the corresponding table names
to prevent that.
You can trigger the error by running
prove t/db_dependent/Holds.t
You should see something like this:
Column 'itemtype' in where clause is ambiguous
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Kyle M Hall [Fri, 25 Dec 2015 12:05:57 +0000 (12:05 +0000)]
Bug 15533 - Allow patrons and librarians to select itemtype when placing hold
Some libraries would like the ability to select the itemtype to request
when placing holds. For example, if a record has 3 copies of BookA and 3
copies of BookA in large print, this feature would allow a person to
place a hold on the record, but still be able to target only the Large
Print edition so that the first Large Print copy that becomes available
is targeted, rather than forcing the patron to select a particular copy
to hold.
Test Plan:
1) Apply this patch
2) Run updatedatabase.pl
3) Create a record with items of two or more itemtypes
4) Place a record level hold on the record while choosing one particular
itemtype
5) Check in an item from the record that is not of that itemtype
6) Notee it is not trapped for the hold
7) Check in an item from the record that does match the selected itemtype
8) Note the item is trapped for the hold
Signed-off-by: Andreas Hedström Mace <andreas.hedstrom.mace@sub.su.se> Signed-off-by: Benjamin Rokseth <benjamin.rokseth@kul.oslo.kommune.no> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Kyle M Hall [Sat, 19 Dec 2015 11:34:03 +0000 (11:34 +0000)]
Bug 15532: Add ability to allow only items whose home/holding branch matches the hold's pickup branch to fill a given hold
Some libraries would like to be able to limit hold filling to items that
match the pickup library for a hold based on the item's home or holding
library. The patron's home library should not affect whether a patron
can place the hold, instead the hold will only be fillable when an item
matching the pickup location becomes available.
Test Plan:
1) Apply this patch
2) Run updatedatabase.pl
3) Note the new "Hold pickup library match" rules for "checkout, hold,
and return policy" and for "holds policy by item type"
4) Set the policy to "item's holding library"
5) Place a hold where the item's holding branch does not match
the pickup branch
6) Check in the item
7) Note it is not trapped for the hold
8) Update the item's holding branch to match the pickup branch
8) Check in the item
9) Note the item is trapped for the hold
10) Repeat steps 4-9 but for home branch instead
Signed-off-by: Hector Castro <hector.hecaxmmx@gmail.com>
Works as described
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Jonathan Druart [Fri, 18 Mar 2016 13:39:27 +0000 (13:39 +0000)]
Bug 16105: Do not initialize the memory cache if not needed
Cache::Memory is loaded and Koha::Cache::_initialize_memory is called
even if a memcached cache has been correctly initialize, it does not
make sense.
It should only be initialize if needed.
Test plan:
Correctly configure a memcache server and confirm that the memory cache
is not initialize.
Do not configure correctly a memcache server and confirm that the cache
system default on Cache::Memory
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Marc Véron [Wed, 27 Apr 2016 10:38:58 +0000 (12:38 +0200)]
Bug 12721: (followup) Replace mysqlism by DBIx::Class
This patch removes the mysqlism (see comment #18)
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Fixed QA tools complaints about missing lines before
and after =cut in POD.
- Change syspref to any combination of location|itype|ccode
=> Result: Table displays columns as appropriate
- Change syspref to some garbage
=> Result: Same as with empty syspref (was crashing without patch)
- Change syspref to valid combination with trailing |
=> Result: Table displays columns as appropriate (was crashing
without patch)
- Change syspref to a combination of valid and invalid fields
(location|blah|ccode)
=> Result: Table displays column of valid fields only (was crashing
without patch)
Marc Véron [Sun, 18 Oct 2015 16:27:58 +0000 (18:27 +0200)]
Bug 12721 - Syspref StatisticsFields: Warning on About page and text change in System preferences
This patch adds a warning to the about page if the syspref 'StatisticsFields' is misconfigured.
Additionally, the text on Home > Administration > SystemPreferences for 'Statistics Fields'
is changed.
To test:
- Apply patch
- Edit syspref 'StatisticsFields'. Verify that the explanation makes sense.
- Leave field empty
=> verify that no message appears on About page, tab System information
- Insert valid field names, e.g. location|itype
=> verify that no message appears on the About page
- Add trailing char
=> verify that the warning message appears on the About page
- Fill in some garbage or misspell a field name
=> verify that the warning message appears on the About page
Jonathan Druart [Wed, 6 Apr 2016 15:35:23 +0000 (16:35 +0100)]
Bug 16217: Resync names of notices
Bug 12752 has fixed a bug for installations upgrading from 3.14, but has
not fixed the problem for new installations.
Because of some wrong data manipulations, the names for a given letter
code may diverge.
In particular OVERDUE and PREDUE names of phone notices have been
wrongly modify by bug 11867: they have been set to the name of the first HOLD
notice.
Trying to be back on our feet, this update DB entry will try to guess
and set back up the correct name.
To know if your install is affected by this bug, the following SQL query
can help you:
SELECT code, name, message_transport_type
FROM letter
WHERE code="PREDUE" OR code="OVERDUE";
If the names are different for the same code, something went wrong.
Executing this update DB entry should fix the divergence.
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Fix the problem, see comment #6 for test.
No koha-qa errors
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Jonathan Druart [Wed, 6 Apr 2016 14:59:02 +0000 (15:59 +0100)]
Bug 12752: FIX letter names in 3.15.00.041
3.15.00.041 was wrong, the name of the letter should not always been the
name of the first HOLD notice.
PREDUE_PHONE should be updated with the first name of the PREDUE notice,
same for OVERDUE_PHONE and OVERDUE
Signed-off-by: Chris Cormack <chrisc@catalyst.net.z> Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Jacek Ablewicz [Thu, 28 Apr 2016 07:35:51 +0000 (09:35 +0200)]
Bug 16373: merge.pl reports success but files are not merged
To recreate:
1) Select two biblios to merge
2) Merge them
3) Sucess reported but list of bibs contains only the reference record.
4) View the 'new' record, it won't have any additional items
5) View the 'merged' record, it is still there with its items
This happens because record IDs (biblionumbers) are not correctly
set up in the template on the 2nd merge stage, since Bug 15358.
To test:
1) apply patch
2) try to recreate this issue once again, confirm that a problem
is resolved
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Marc Véron [Thu, 28 Apr 2016 09:47:57 +0000 (11:47 +0200)]
Bug 16378: Overdues.pm: Can't call method "store" without a package or object reference
Overdues.pm line 588 tries to do an $accountline->set with column outstanding
instead of amountoutstanding.
This patch fixes it.
To test:
- Verify that code change is correct.
- Try to trigger a situation where an existing fine is updated
(see comment in line 574 in C4/Overdues.pm)
Signed-off-by: Jacek Ablewicz <abl@biblos.pk.edu.pl> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Jonathan Druart [Tue, 29 Mar 2016 15:38:18 +0000 (16:38 +0100)]
Bug 16158: Move GetAuthorisedValues outside the loop
In catalogue/detail.pl and catalogue/moredetail.pl, the
GetAuthorisedValues subroutine is called once per item. It's not needed,
only 1 call is enough.
Test plan:
Edit item and view a catalogue record.
The withdrawn, lost and damaged values should be correctly
displayed/saved.
Signed-off-by: Mark Tompsett <mtompset@hotmail.com> Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> Signed-off-by: Brendan Gallagher <bredan@bywatersolutions.com>
Aleisha [Tue, 29 Mar 2016 01:40:35 +0000 (01:40 +0000)]
Bug 2324: Adding confirm dialog when undoing import
EDIT: Comment 3
To test:
1) Go to Tools -> Staged MARC Management
2) Click on a batch to see details
3) If not already imported, then import, otherwise you should already see the button to undo import into catalog.
4) Click this button. Confirm you are asked to confirm. Confirm clicking Cancel will cancel the undo. Confirm clicking OK will continue with the undo.
Sponsored-by: Catalyst IT Signed-off-by: Mark Tompsett <mtompset@hotmail.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Brendan Gallagher <bredan@bywatersolutions.com>
Owen Leonard [Thu, 15 Aug 2013 18:53:26 +0000 (14:53 -0400)]
Bug 10347 - Deactivate "Add item" button when "Add multiple copies" was activated
When the "Add multiple items" button is pressed the other submit buttons
should be hidden in order to eliminate confusion about which button
submits the form at that stage in the process.
This patch alters the form so that clicking the "add multiple" button
hides the other two buttons and displays form for submitting the number
of copies to add.
This patch also makes changes to accompanying text in order to make
things (hopefully) clearer. The button text has been changed (again, see
Bug 10346) to "Add multiple copies of this item."
Explanatory text has been added "The barcode you enter will be
incremented for each additional item," because that seemed non-obvious
about the process.
Unrelated change: a section of obsolete JavaScript has been removed.
To test, go to the add/edit items page for a new or existing record.
Test adding a single item, adding & duplicating, and adding multiple.
The add multiple form should be shown upon clicking 'add multiple,' and
hidden when 'cancel' is clicked.
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Work as described, tried adding one, one & dup, multiple and cancel multiple
No errors
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Brendan Gallagher <bredan@bywatersolutions.com>
Marcel de Rooy [Mon, 8 Feb 2016 09:26:58 +0000 (10:26 +0100)]
Bug 14686: Add Upload to Tools menu
This patch makes sure that the added granular permissions work as
advertised.
Note: The field owner was not included in the Koha::Upload->get response.
The code to verify if a user is allowed to delete an upload, is concentrated
in the template now. When get returns a Koha::Object, this check could be
relocated.
Test plan:
[1] Verify that the current user has permission for tools, or has
at least upload_general_files.
[2] Do you see Upload in the Tools menu? Follow the link.
[3] Upload a permanent file (with a category).
[4] Do you see the Delete button in the results form?
[5] Make sure that another user has no permission to upload.
[6] Login as that user and check the Tools menu.
Try the URL [yourserver]/cgi-bin/koha/tools/upload.pl
You should have no access to the upload form.
[7] Enable upload_general_files for this user. Go to upload and search for
the upload from step 3. You should not see a Delete button.
[8] Enable upload_manage for this user. Search for the upload again.
Delete the upload.
[9] Go to upload via the Cataloguing editor (856$u plugin) or add
parameter "plugin=1" to the URL. You should not see the Tools menu.
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> Signed-off-by: Mirko Tietgen <mirko@abunchofthings.net> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Brendan Gallagher <bredan@bywatersolutions.com>
Marcel de Rooy [Mon, 14 Mar 2016 12:42:10 +0000 (13:42 +0100)]
Bug 14686: Add two granular permission for upload under tools
[1] Upload_general_files
This will allow you to access the tools/upload form via the Tools menu.
And it will also allow you to add permanent uploads.
[2] Upload_manage
It will allow you to delete uploads from other users.
Note that anyone may delete his own uploads.
It is not meant to include upload_general_files.
In order to not disturb existing users that now have edit_catalogue and are
using the plugin (read: added at least one record to uploaded_files), we
will add the first permission for them. New users will need to be authorized
in the usual way thereafter.
Note: If you only have one of the other permissions checked in allows_add_by,
e.g. stage_marc_import, you can add temporary uploads, but not permanent
uploads.
Test plan:
We are only testing the dbrev here, not if the perm works as advertised.
[1] Run the dbrev and check that you see the perms with a description on
the Patron/Set permissions page.
[2] If you had records in uploaded_files and a user with edit_catalogue
*only*, verify that this user now also has upload_general_files.
Marcel de Rooy [Mon, 14 Mar 2016 12:22:14 +0000 (13:22 +0100)]
Bug 14686: Add allows_add_by to check permissions for uploading
The three permissions in tools/upload-file.pl are moved to a custom
routine in DBIx's UploadedFile.pm. An additional granular permission
upload_general_files is added. (The dbrev patch will contain it too.)
At some point in time this could be moved to a Koha::Object class.
The routine is tested in Upload.t.
Test plan:
[1] Run t/db_dependent/Upload.t
[2] If you only apply this patch, you can also test uploading with a
user that has edit_catalogue but does not have tools or circulate.
Upload status should say: Denied.
Owen Leonard [Thu, 21 Apr 2016 16:39:53 +0000 (12:39 -0400)]
Bug 16321 - 'Show all details' checkbox triggers JS error after jQuery upgrade
This patch fixes problems with show/hide actions on a few pages
caused by some problematic jQuery syntax.
To test, apply the patch and go to Acquisitions.
Testing basket.tt:
- Locate a vendor which has an open basket with multiple orders.
- View the details of that basket.
- Click the 'Show all details' checkbox above the table of orders.
- Checking the box should trigger the display of additional columns in
the table.
- Unchecking the box should hide them again.
Testing invoice.tt:
- Go to Acquisitions -> Invoices and perform an invoice search.
- Click to view an invoice which includes one or more received records.
- Click the 'Show all details' checkbox above the table of titles and
confirm that it fuctions as described above.
Testing newordersubscription.tt:
- Go to Acquisitions and locate a vendor which is linked to a
subscription
- Create or add to a basket for that vendor.
- Add an order using the 'From a subscription' option.
- Perform a search for subscriptions.
- In the table of subscriptions search results, checking or
unchecking the "Show only renewed" checkbox should work correctly.
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Bug 16249: Zebra-specific tests should pass with ES disabled
This patch makes the t/db_dependent/Search.t tests correctly set
'Zebra' for the 'SearchEngine' syspref.
To test:
- On top of bug 12478 branch, run
$ prove t/db_dependent/Search.t
=> FAIL: Tests fail
- Apply the patch
- Run:
$ prove t/db_dependent/Search.t
=> SUCCESS: Tests now pass.
Signed-off-by: Chris <chrisc@catalyst.net.nz> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
* t/Koha/ItemType.pm:
* Rename to .t
* Fix method names
* t/db_dependent/Koha/ItemTypes.t: Fix method names and Koha::Database usage
Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Bug 12748: (QA followup) fix several tiny QA tools warnings
* admin/searchengine/elasticsearch/mappings.yaml:
* Fix indentation so QA tools believe it's valid YAML
* C4::AuthoritiesMarc: Remove tab character
* C4::Search: Fix POD
* Koha::BiblioUtils: remove "return undef"
* Koha::Schema::Result::Search*: rename type to _type
* Koha::SE::ES::Search:
* Fix spelling/@_[0]
* Add my to loop variable
* Remove unused var $error
* Add use Modern::Perl
* Fix undefined variables
* Koha::ES::Indexer: fix POD
* Koha::SE::ES::QueryBuilder:
* Don't define variables in conditionals
* Fix POD
* Koha::SE::Zebra::Search:
* Fix debug warns/POD/barewords
* Koha::SE::Zebra::Search: add use Modern::Perl
* kohastructure.sql: remove old, unused elasticsearch_mappings table,
add new tables
* labels/label-item-search.pl: remove C4::Dates
* opac/elasticsearch.pl: remove old file
Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Bug 16248: ModZebra doesn't update zebraqueue if ES is enabled
The zebraqueue table should still be populated with updates if ES is enabled, so
the Zebra indexer keeps the Z39.50/SRU indexes up to date.
To test:
- Set SearchEngine = Elasticsearch
- Watch for zebraqueue changes
$ watch -n 0.5 'echo "SELECT COUNT(*) FROM zebraqueue WHERE done=0" | sudo koha-mysql kohadev'
- Call touch_all_biblios.pl to simulate record changes
$ sudo koha-shell kohadev ; cd kohaclone
$ perl misc/maintenance/touch_all_biblios.pl -v
=> FAIL: Notice the watch is not changing the number of records to be indexed.
- Apply the patch
- Call touch_all_biblios.pl to simulate record changes
$ sudo koha-shell kohadev ; cd kohaclone
$ perl misc/maintenance/touch_all_biblios.pl -v
=> SUCCESS: The count raises (more than 0) and the zebra indexer picks the updates.
- Sign off
Signed-off-by: Chris <chrisc@catalyst.net.nz> Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Chris Cormack [Thu, 14 Apr 2016 21:27:10 +0000 (21:27 +0000)]
Bug 12478 Increasing test Coverage for Koha::SearchEngine::Elasticsearch::Search
Before this patch it was 24.6%, after it is 64%
Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Chris Cormack [Thu, 14 Apr 2016 20:23:13 +0000 (20:23 +0000)]
Bug 12478 Shifting tests and adding copyright headers
Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Chris Cormack [Wed, 13 Apr 2016 21:20:36 +0000 (21:20 +0000)]
Bug 12478 : Fixing the tests for Koha::SearchEngine::Elasticsearch::Search
perl t/Koha_SearchEngine_Elasticsearch_Search.t
Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Chris Cormack [Wed, 13 Apr 2016 20:51:59 +0000 (20:51 +0000)]
Bug 12478 : Fixing the tests in t/Koha_ElasticSearch_Indexer.t
Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Chris [Tue, 12 Apr 2016 20:57:49 +0000 (08:57 +1200)]
Bug 12478: Making sure the syspref is set to Zebra by default
Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Chris [Tue, 12 Apr 2016 20:45:28 +0000 (08:45 +1200)]
Bug 12478 : Remove the rest of the references to the old mapping tables
Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Chris [Tue, 12 Apr 2016 20:42:53 +0000 (08:42 +1200)]
Bug 12478 : Remove reference to deprecated table elasticsearch_mapping.sql
Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Bug 12478: (QA followup) Koha::SearchEngine should fallback to Zebra
Signed-off-by: Tomas Cohen Arazi <tomascohen@unc.edu.ar> Signed-off-by: Chris <chrisc@catalyst.net.nz> Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Jonathan Druart [Mon, 11 Apr 2016 07:11:11 +0000 (08:11 +0100)]
Bug 12478: Define simple_search_compat for Zebra
When Zebra is defined as the search engine, the authority search is
broken (Can't locate object method "simple_search_compat" via package
"Koha::SearchEngine::Zebra::Search" at /home/koha/koha/C4/AuthoritiesMarc.pm line 357.)
simple_search_compat is not defined in
Koha::SearchEngine::Zebra::Search, it should be a wrapper for
C4::Search::SimpleSearch
Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Jonathan Druart [Tue, 13 Oct 2015 09:45:32 +0000 (10:45 +0100)]
Bug 12478: Display facet terms ordered by number of occurrences
By default ES returns the facet terms ordered by most used, which makes
sense.
This patch removes resort done in the scripts (catalogue/search.pl and
opac/opac-search.pl) and moves it to the module.
For Zebra it's now done in C4::Search::getRecords, and there is no
change to expect (still alphabetically).
On the Elastic search side, we could imagine to let the library define
the order of the facets. The facet terms are now sorted by most used.
To test easily this change, turn on the displayFacetCount pref.
Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Jonathan Druart [Mon, 12 Oct 2015 16:03:38 +0000 (17:03 +0100)]
Bug 12478: Remove previous mappings file (sql)
Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Jonathan Druart [Mon, 12 Oct 2015 15:54:12 +0000 (16:54 +0100)]
Bug 12478: Manually add the many_to_many relationships
This will create the add_to_* accessors for us.
Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Jonathan Druart [Mon, 12 Oct 2015 15:52:11 +0000 (16:52 +0100)]
Bug 12478: update the schema
These files have been generated with the
misc/devel/update_dbix_class_files.pl script.
Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Jonathan Druart [Mon, 12 Oct 2015 15:46:16 +0000 (16:46 +0100)]
Bug 12478: Move mapping attributes to the join table
To make things consistent, the attributes of the mappings (sort,
suggestible, facet) should be moved to the join tables
(search_marc_to_field).
Indeed the search_marc_map could represent a mapping for several search
fields with different attributes. Before this change it was not
possible.
Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Jonathan Druart [Fri, 25 Sep 2015 14:48:50 +0000 (15:48 +0100)]
Bug 12478: Add Koha::SearchField[s] and Koha::SearchMarcMap[s] classes
This was initially submited on bug 14899, but we will need it here.
Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Jonathan Druart [Mon, 12 Oct 2015 16:11:28 +0000 (17:11 +0100)]
Bug 12478: Add the yaml mappings file
This should facilitate the modification of the mappings.
The yaml format is more readable than sql.
Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Robin Sheat [Thu, 8 Oct 2015 04:02:21 +0000 (17:02 +1300)]
Bug 12478: "fix" notforloan
Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Jonathan Druart [Mon, 5 Oct 2015 16:15:01 +0000 (17:15 +0100)]
Bug 12478: Take the FacetMaxCount pref into account
The system preference FacetMaxCount should work as expected with ES.
Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Jonathan Druart [Mon, 5 Oct 2015 10:34:54 +0000 (11:34 +0100)]
Bug 12478: Remove empty limit parameter
If no limit are passed, the url will contain '&limit=' anyway.
It is not necessary and can be avoided easily
Test plan:
1/ Search for a term in your catalogue
2/ Hover over a link in the facet area
3/ The link is
cgi-bin/koha/opac-search.pl?idx=kw&q=your_term&limit=&limit=[...]
With this patch, the empty limit parameter does not appear.
Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Jonathan Druart [Mon, 5 Oct 2015 14:29:52 +0000 (15:29 +0100)]
Bug 12478: Display facet terms ordered by number of occurrences
By default ES returns the facet terms ordered by most used, which makes
sense.
This patch removes resort done in the scripts (catalogue/search.pl and
opac/opac-search.pl) and moves it to the module.
For Zebra it's now done in C4::Search::getRecords, and there is no
change to expect (still alphabetically).
On the Elastic search side, we could imagine to let the library define
the order of the facets. The facet terms are now sorted by most used.
To test easily this change, turn on the displayFacetCount pref.
Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Jonathan Druart [Mon, 5 Oct 2015 11:50:52 +0000 (12:50 +0100)]
Bug 12478: facets - Display description instead of code for locations
Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Jonathan Druart [Mon, 5 Oct 2015 11:51:37 +0000 (12:51 +0100)]
Bug 12478: Add Koha::AuthorisedValue[s] class
These 2 classes come from bug 10363.
Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Jonathan Druart [Mon, 5 Oct 2015 11:17:09 +0000 (12:17 +0100)]
Bug 12478: Use the new Koha::ItemTypes to retrieve itypes descriptions
Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>