This patch changes the behavior of the SMS cellular providers management
page so that sections of the page are shown or hidden based on what the
current task is. Other changes include:
- Moving JavaScript to a separate file
- Adding a toolbar with a "New SMS provider" button.
- Adding the "generic" catalog search header form to the top of the
page.
- Adding "Required" classes to required fields so that the staff
client's built-in JS validation library can be used.
To test, the SMSSendDriver system preference must be set to "Email."
Apply the patch and go to Administration -> SMS cellular providers.
- Confirm that the add/edit form is hidden initially. A toolbar with a
"New SMS provider" button should appear with existing SMS cellular
providers in a table below. If there are no existing providers a
message dialog should say so.
- Confirm that the "New SMS provider" button works:
- The table should be hidden and an empty "add" form displayed.
- Confirm that an empty form cannot be submitted.
- Confirm that submitting valid data works.
- Confirm that clicking the "Cancel" button hides the form and
redisplays the table.
- Test the "edit" button for an existing provider:
- Confirm that the edit form is displayed and populated with the
correct data.
- Confirm that edits are saved correctly.
- When viewing the table of existing providers, confirm that clicking
the "Delete" button triggers a confirmation dialog. Test both
cancelling and confirming that dialog.
- Ponder whether all this is an improvement or not.
Signed-off-by: Nicole C Engard <nengard@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Brendan A Gallagher <brendan@bywatersolutions.com>
This patch adds some JavaScript to the item search fields management
page so that the add form is not displayed by default. This simplifies
the interface and makes it more consistent with other similar
interfaces.
Also changed in this patch:
- Changing instances of "Items search fields" to "Item search fields."
- Correct form structure to use ordered list
- Add "required" classes and enable built-in JS form validation.
- Add explicitly labeled "Choose" options to <select>s.
- Add missing ids to form fields (labels don't work without them).
- Correct classes of message and alert dialogs.
- Add JS confirmation of deletions.
- Convert MARC tag and subfield dropdowns to regular inputs (Bug 15384).
To test, apply the patch and go to Administration.
- Confirm that the "Item search fields" link is correct.
- Follow the link and confirm that the list of existing fields is shown
by default, or a message saying there are no existing fields.
- Click the "New search field" button and confirm that it displays the
entry form.
- Confirm that submitting an empty form does not work.
- Confirm that clicking the "Cancel" link correctly hides the form.
- Confirm that submitting valid data works correctly.
- In the table of existing item search fields, confirm that the "Edit"
button works correctly.
- Confirm that submitting edits works correctly.
- In the table of existing item search fields, confirm that clicking
"Delete" highlights the row in question and a confirmation dialog
appears.
- Test both canceling and confirming deletion.
Signed-off-by: Hector Castro <hector.hecaxmmx@gmail.com>
Works as described. JSHint OK, koha-qa OK.
Revision per QA: Undid the change making tag and subfield inputs text
fields.
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Brendan A Gallagher <brendan@bywatersolutions.com>
Bug 14189 added some global JavaScript to a new include file which is
included in doc-head-close.inc. Since it's included globally, there is
no reason not to move it to staff-global.js. This patch does so.
To test, apply the patch and clear your browser cache if necessary.
- Navigate to any page in the staff client which has multiple header
search tabs.
- Type something in one of the tabs.
- Switch tabs. Verify that your text was copied to the newly-displayed
form field.
Followed test plan, works as expected.
Signed-off-by: Marc Véron <veron@veron.ch>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com
The JavaScript embedded in the MARC modification templates template is
not dependent on template processing to such an extent that it can't
be safely moved to a separate file. This patch does so, adding
definition of a some translatable strings to the template.
Other minor changes: A couple of JSHint warnings corrected, a couple of
missing semicolons added to template markup.
To test, apply the patch and go to Tools -> MARC modification templates
- Confirm that The add/update form works normally with various actions
(Add/update,Delete,Move, etc.).
- Confirm that template switching works correctly.
- Confirm that template deletion confirmation works correctly.
- Confirm that cancelling an edit works correctly
Signed-off-by: Hector Castro <hector.hecaxmmx@gmail.com>
Works as advertised
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com
Commit 243b797dd1
Bug 15285: Update common files
Set 'B' to the default dom of Datatable constructor.
This cannot work if there is no button defined.
This patch defined an empty 'buttons' param for this constructor, DT
does not raised an error anymore when initialising.
Test plan:
Confirm that the tables on the following tables are not broken:
- circ/waitingreserves.pl
- circ/reserveratios.pl
- patron_lists/lists.pl
- virtualshelves/shelves.pl
- acqui/invoices.pl
And with datatables:
- circ/circulation.pl
- admin/currency.pl
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com
We should strive to keep as much JavaScript as possible out of templates
in order to keep things modular and maximize the benefits of browser
caching. This patch moves JavaScript out of the patron entry template
Two other minor edits: Missing semicolons added on the advice of JSHint.
To test, apply the patch and confirm that the following interactions
still work on the patron entry form:
1. clear_entry(): With ExtendedPatronAttributes enabled, the "Clear"
link next to any attribute form field should work to clear the field.
2. clone_entry(): With ExtendedPatronAttributes enabled and a repeatable
attribute defined, it should be possible to click the "New" link to
add another instance of that attribute's entry field.
3. update_category_code(): With ExtendedPatronAttributes enabled and an
attribute defined which is limited to a single patron category,
changing the patron category selection should correctly show or hide the
attribute entry form.
4. select_user(): When adding or editing a patron with a "Child"
category it should be possible to search for and select a guarantor
to add to the record by clicking the "Set to patron" button.
Selecting a new guarantor should change the text of the button from
"Set to patron" to "Change."
5. noEnterSubmit(): This function should be correctly preventing you
from hitting "ENTER" in any form field to submit the form.
6. guarantordelete(): When adding or editing a patron with a "Child"
category, it should be possible to clear existing guarantor
information by clicking the "Delete" button. Clicking the "Delete"
button should change the text of the adjacent button to "Set to
patron."
7. select_city(): With one or more cities defined it should be possible
to use the drop-down menu of cities to populate the city, state, zip,
and country fields.
8. Date of birth entry should have a maximum date limit of yesterday.
The drop-down menu of years should go back 100 years.
9. Client-side validation rules should be in effect, requiring that a
valid email address be entered in the primary email, secondary email,
and alternate address email fields.
10.When editing a patron, the "Add manual restriction" link should
display the form for adding a manual restriction, and clicking the
"Cancel" link should hide it.
Signed-off-by: Marc Véron <veron@veron.ch>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com
The JavaScript embedded in the MARC subfields structure template is not
dependent on template processing and can safely be moved to a separate
file. This patch does so. Removed in the process is some lines which
were commented out.
To test, apply the patch and go to Administration -> MARC framworks.
- Click 'MARC structure' for a framework you can edit.
- Click 'subfields' for a tag you can edit.
- Click 'Edit' for a subfield you can edit.
- Confirm that tabs and accordian sections work correctly.
- Make changes under Advanced constraints -> Visibility and confirm
that they are saved correctly.
Signed-off-by: Hector Castro <hector.hecaxmmx@gmail.com>
Works as advertised
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com
This patch corrects minor errors in staff-global.js according to
warnings raised by JSHint.
To test, apply the patch and run JSHint on staff-global.js. No warnings
should be raised.
To confirm that the behavior of the JS is not changed, clear your
browser cache if necessary and:
- Confirm that the "Help" link opens the help window.
- Confirm that audio alerts work with local and remote sound files
- Confirm that the format() method is still working correctly by, for
instance, opening the detail page for a bibliographic record with
multiple items and choosing 'Edit -> Delete record' from the menu. The
error message should read like "2 item(s) are attached to this
record..."
Signed-off-by: Hector Castro <hector.hecaxmmx@gmail.com>
Works as described. No errors with JSHint CLI (6 errors fixed)
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com
This patch corrects minor errors in the staff client's basket.js
according to warnings raised by JSHint.
To test, apply the patch and run JSHint on basket.js. No warnings
should be raised.
To confirm that the behavior of the JS is not changed, clear your
browser cache if necessary and:
- Test adding multiple titles to the Cart from staff client search
results.
- Confirm that adding titles to the Cart triggers a message by the Cart
link.
- Test clicking the "Cart" link in the header menu when the Cart popup
is open but behind the main window.
- Testing emptying the Cart.
Signed-off-by: Hector Castro <hector.hecaxmmx@gmail.com>
Works as described. No warnigns raised with jshint tool
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com
The checkouts, currency and items lost tables redefine the dom/sDom and
the older C(olvis) should be replaced with the current B(utton).
Test plan:
To test the whole patch set, you will have to test the 4 tables impacted
by this patch as well as the others using the columns settings.
The additem has specific code and should be tested keeping that in mind.
Signed-off-by: Marc Véron <veron@veron.ch>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com
This patch moves the Button area all tables which does not redefine the
dom/sDom DT parameter.
Signed-off-by: Marc Véron <veron@veron.ch>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com
UPDATE: Added to checkin-search.inc to show up on returns.pl
To test:
1) Apply patch
2) Confirm that there is now a Renew tab on the pages where there is also a Check-in tab only
3) Attempt to renew a book using this, confirm it works as expected
4) Check if I have missed any pages
Signed-off-by: Marc Véron <veron@veron.ch>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com
This enhancment adds the ability to suspend and resume individual holds
from the holds table on circulation.pl and moremember.pl.
The interface is inspired/cribbed from the same feature already
available in the opac.
Test Plan:
1) Apply this patch
2) Find a patron with holds
3) Suspend a hold with no resume date
4) Resume the suspended hold
5) Suspend a hold with a resume date
6) Resume the suspended hold
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Cathi Wiggins <CWIGGINS@ci.arcadia.ca.us>
Signed-off-by: Megan Wianecki <mwianecki@mplmain.mtpl.org>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Brendan A Gallagher <brendan@bywatersolutions.com>
This removes the following functions that are not used anywhere:
- dt_add_rangedate_filter
- dt_overwrite_string_sorting_localeCompare
- replace_html
- replace_html_date
Test plan:
1. Search for calls to the above functions in the code. There should be
none.
2. Check that existing tables using DataTables are not broken.
Signed-off-by: Marc Véron <veron@veron.ch>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Brendan A Gallagher <brendan@bywatersolutions.com>
To test:
1. Go to admin preferences, Acquisitions, Policy.
2. Find MarcFieldsToOrder and click "Click to Edit"
3. Notice that a "Click to collapse" button appears, click it.
4. Notice that the box has collapsed
This fix should be applicable to all "Click to Edit" textboxes
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Works well, and a nice improvement.
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Brendan A Gallagher <brendan@bywatersolutions.com>
To Test: Add an item to cart click "cart" click "send"
confirm that the send window is larger and the send button is
visible
NOTE: Remember to clear cache to refresh javascripts.
This is much more visible if you zoom in 10% or more.
This is larger, but more of a stop gap if you've got a large zoom.
Signed-off-by: Mark Tompsett <mtompset@hotmail.com>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com>
This patch set display amounts for charge, fine, price etc. right aligned in tables
on patron pages.
To test, apply patch and verify that amounts appear right aligned on following pages:
- Go to Home > Patrons, perform a search (Column 'Fines')
- Go to a patron with fines and credits
- Checkout tab (circulation.pl): Columns 'Charge', 'Fine', 'Price'
(maybe you have to show column with 'Show / hide colums')
- Fines Tab > Pay fines (pay.pl): Columns 'Amount', 'Amount Outstanding'
- Fines Tab > Account (boraccount.pl): Columns 'Amount', 'Outstanding'
Note: Test here 'Filter paid transactions' as well
Signed-off-by: Nicole Engard <nengard@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Brendan A Gallagher <brendan@bywatersolutions.com>
Test plan:
- log with a user that have "borrowers" permission but not "Remaining circulation permissions"
- go to a borrower's detail page (who has at least a loan) and click on "show checkouts"
- check that you see loan(s) and that you can't renew and checkin
- Do the same with a borrower that have "Remaining circulation permissions"
- check that you see loan(s) and that you can renew and checkin
Followed test plan. Works as expected.
Signed-off-by: Marc Véron <veron@veron.ch>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Brendan A Gallagher <brendan@bywatersolutions.com>
The nonpublic note for items is not displayed in the staff client. It
should be displayed in the following areas:
1) Checkouts (circulation.pl)
2) Checkins (returns.pl)
3) Record details ( moredetail.pl )
Test Plan:
1) Ensure your non-public note field is mapped to the
items.itemnotes_nonpublic database column
2) Edit an item, add a test nonpublic note
3) Check out the item, verify the note is visible in the checkouts table
4) Check in the item, verify the note is visible in the checkins table
5) View the item details, verify the note is visible and editable
if your account has the rights to edit items
Followed test plan, works as expected.
Signed-off-by: Marc Véron <veron@veron.ch>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Fields < 010 were systematically unchecked during target rebuild because
they have no subfields (unchecking manually all subfields of a field
automatically uncheck the field)
When user check a field or a subfield, we have to uncheck it before
calling (sub)field_can_be_added. Otherwise, field is treated as if it
was already in target record, and this is a problem for non-repeatable
fields.
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Instead of copying/removing a piece of DOM in target record each time a
checkbox is checked/unchecked, the target record is *entirely* rebuilt
each time a checkbox is checked/unchecked.
This is slower but allow for a more consistent and less error-prone
behaviour.
This patch also fix the mandatory check for subfields
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch set replaces and extends Koha's current sound options.
This is implemented be removing the existing sound system, and
re-engineering using a table of selector/sound combinations such that
the highest precedence selector that is found in the DOM will trigger
and audio alert. The existing audio behaviors are implemented as a set
of default audio alerts.
Test Plan:
1) Apply this patch set
2) Run updatedatabase.pl
3) Enable the AudioAlerts system preference
4) Test existing sounds
5) Enter the new alerts editor in the admin section
6) Add a new audo alert with the following selector:
"body:contains('Check in message')",
choose any sound alert you wish, make sure it's not one of the 3
sounds already used! Make this selector precedence 1
4) Browse to the checkins page, you should hear the default sound
5) Attempt to return an invalid barcode, you should hear your custom sound!
Signed-off-by: Nick Clemens <nick@quecheelibrary.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
This patch introduces 2 sysprefs :
RestrictionBlockRenewing to allow/block renewal of items when patron is restricted.
OverduesBlockRenewing to allow, block only the late ones or block all checked out items
Default is "allow" in both case.
Signed-off-by: Matthias Meusburger <matthias.meusburger@biblibre.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
The issue is that CircAutocompl loads a script element under #header_search
element. When this element is missing, it also messes up the indexing,
because we were calculating the indexing of the found element by subtracting
one from the found element's index (to eliminate the <script> element).
Thats why the shortcut key problem in this bug takes you one too to the left,
because we are still subtracting one from the index even though there is no
<script> element anymore.
This patches selects only the div elements and gets the index from them.
No subtractions needed.
To test keys:
1. Set CircAutocompl system preference to Don't try.
2. Try the shortcut keys. They will work incorrectly like this:
Alt+U = Search catalogue
Alt+R = Check out
Alt+Q = Check in
3. Set CircAutocompl system preference to Try.
4. Try the shortcut keys. They will work correctly like this:
Alt+U = Check out
Alt+R = Check in
ALt+Q = Search catalogue
5. Apply patch
6. Repeat step 1 and 4.
7. Repeat step 3 and 4.
8. Observe that regardless of CircAutocompl, shortcut keys worked correctly.
Followed test plan, 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: Tomas Cohen Arazi <tomascohen@theke.io>
Bug 10177 rejects password with leading or trailing whitespaces, but
only on the member-password page.
It's not consistent to only do this check on 1 place.
This patch adds the check for the 2 other places: memberentry and at the
OPAC.
Test plan:
1/ Edit a patron and set a password with leading and/or trailing
whitespaces. You should not be allowed to do it (no server side check).
2/ Same at the OPAC ("Change you password" tab). Here there is a server
side check.
Followed test plan. Works as expected.
Signed-off-by: Marc Véron <veron@veron.ch>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@unc.edu.ar>
This has been introduced by bug 11703.
Bug 13190 should have been fixed it.
If the pref ExportWithCsvProfile is defined with a MARC CSV profile and
it contains item infos to display, only info from the checked out item
should be displayed.
Test plan:
0/ Don't apply this patch
1/ Create a biblio with 1+ items
2/ Check one of the item out to a patron
3/ Define a CSV profile which contains item fields ("245$a|952$p" for instance)
4/ Export the item (from circ/circulation/pl) using the CSV option
Note that the csv contains the barcode from all items
5/ Apply this patch and repeat 4.
6/ Note that the csv contains only the barcode from the checked out
item.
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: Tomas Cohen Arazi <tomascohen@theke.io>
This patch makes the following changes to achieve that:
[1] Use Upload.pm in stage-marc-import.pl, upload-cover-image.pl,
offline_circ/process_koc.pl and enqueue_koc.pl.
[2] A new file-upload.js replaces file-upload.inc in the associated template.
We now use ajax to get progress figures instead of launching perl script
upload-file-progress.
The js changes now also allow for aborting a file upload.
[3] Adds a tools/upload script and template. It allows to upload multiple
files at once.
[4] Makes upload-file return error messages in JSON. For a multiple upload,
we could have some files with errors and others without errors.
The upload is now marked as Failed only if there was no upload at all.
[5] The upload plugin is converted to use tools/upload with plugin param.
Deleting an upload is now presented via the search results form.
NOTE: In editing the process_koc.tt I noticed that the form enqueuefile was
hidden and no longer used (with associated code in process_koc.pl). When a
file has been uploaded, I display the form again (with the Apply directly
button). The code still works.
NOTE: We fix an error in upload-file from one of the patches of bug 6874.
The userid of the Koha admin user is passed to haspermission, but we
should pick the userid from the session.
NOTE: Bug 14686 will add a specific permission for tools/upload.pl, and
will add the tools/upload script to the Tools menu.
For now, you need edit_catalogue to start upload.pl and you will
additionally need a permission like upload_local_cover_images
to successfully upload a new file.
Test plan:
[1] Upload a marc file in stage-marc-import. (This is temp storage.)
[2] Check new entry in table uploaded_files. Look for the file in your
temporary directory (/tmp ?), subfolder koha_upload.
Bonus: Remove permissions on this subfolder. Retry, check error and
restore permissions again.
[3] Upload another (larger) file and abort the upload. Check table and
directory again. You should have a partial file, but no record.
[4] Verify that Stage for import still works as expected.
[5] Test Upload local cover image. (Enable OPACLocalCoverImages.) You can
test an individual image or a zip file including images and a file
called datalink.txt (with lines biblionumber,filename).
[6] Test uploading a offline circulation file:
Enable AllowOfflineCirculation, and create a koc file (plain text):
Line1: Version=1.0\tA=1\tB=2
Line2: 2015-08-06 08:00:00 345\treturn\t[barcode]
Note: Replace tabs and barcode. The number of tabs is essential!
Checkout the item with your barcode.
Go to Offline circulation file upload. Upload and click Apply directly.
Checkout again. Upload again, click Add to offline circulation queue.
[7] Upload three files via tools/upload.pl with a category and marked as
public. Check the results in the table.
Verify that you can download the file in OPAC without being logged in.
[8] Pick one new file and one of the files of step 7. Upload them in the
same category. One upload should succeed. Check for reported error.
[9] Connect upload.pl to field 856$u.
Goto Cataloguing editor.
In an empty 856$u, click the tag editor. Upload a file and click Choose.
Save the record. Open the record in the OPAC and click the link.
Copy this link to your clipboard for next step.
[A] Go back to editor. Click the tag editor on the same 856 field.
Choose for Delete.
Open the link in your clipboard again. Error message?
[B] Check the process of upload, search, download and delete of an upload
with some diacritical characters in the filename. (Bonus points for
adding special chars in the category code.)
Note: You can add categories via authorized values, UPLOAD key.
Signed-off-by: Mirko Tietgen <mirko@abunchofthings.net>
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
Bug 14321: [QA Follow-up] Perltidy upload.pl
Run perltidy -pro=xt/perltidyrc on tools/upload.pl.
No other changes.
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
At the opac, the renew checkbox should not be displayed if it's an
on-site checkout (same on the intranet).
On the way, this patch adds a specific message to the intranet if the
librarian try to renew an on-site checkout.
Indeed before this patch a renew was allowed if the barcode was scanned.
Test plan:
1/ Create an on-site checkout for a patron
2/ Confirm that the checkbox 'renew' is not displayed on the checkout
list tables
3/ At the OPAC, the renew should not be allowed (no checkbox)
4/ Try to check the item out to the same patron, confirm that you get a
specifig message to inform you the renew is not allowed for on-site
checkouts.
Signed-off-by: Mirko Tietgen <mirko@abunchofthings.net>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Changed 'issue' to 'item' in the error message.
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
There is a missing space in the "added to cart" message on the staff side, when you are adding 2 or more items to the cart, where 1+ is already in the cart and 1+ is not in the cart. I verified that this is not an issue in the OPAC cart function.
Test:
1. Search for records in your system.
2. In search results, select the first two records and choose Add to Cart.
3. Message returned, "2 item(s) added to your cart", as expected.
4. Keep those 2 records selected, and select 2 additional records (so 4 total records selected), and choose Add to Cart again.
5. Message returned, "2 item(s) added to your cart2 already in your cart".
6. Apply this patch
7. Repeat steps 1 through 4
8. Note the two phrases are on separate lines
Signed-off-by: Heather Braum <hbraum@nekls.org>
Signed-off-by: Joonas Kylmälä <j.kylmala@gmail.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@unc.edu.ar>
Test plan:
1. Navigate to the "opaccredits" syspref (or any other textarea, i.e.,
"Click to Edit", syspref) in the system preferences editor.
2. Change its contents, by either pasting or typing. The field may not
be marked as modified, even after you click outside the box.
3. Apply the patch.
4. Reload the page and try again; either pasting or typing should mark
the field as changed and allow you to save.
Signed-off-by: Jesse Weaver <pianohacker@gmail.com>
Confirmed working for normal input, paste and middle-click paste in
Chrome and Firefox in Linux.
Signed-off-by: Jonathan Druart <jonathan.druart@koha-community.org>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@unc.edu.ar>
If you have no item plugins, the events variable in BindPluginEvents
of additem.js will be null. So testing events.length will generate
the described error.
This patch adds a check to prevent that from happening again.
Test plan:
[1] Do not yet apply this patch !
[2] Temporarily remove framework plugins from your items (in ACQ or default
framework). Probably you have to clear dateaccessioned.pl and
barcode.pl.
[3] Open js console in your browser.
[4] Go to Acquisition. Open a basket and add an order from a new empty
record.
[5] You should see js error: "TypeError: events is null" (additem.js:176)
[6] Apply this patch and reload the page (make sure that you refresh so
that the new javascript code is read).
[7] The TypeError should be gone.
[8] Restore the framework plugins from step 2. Refresh the page again and
verify that they still work as expected.
Signed-off-by: Jonathan Druart <jonathan.druart@koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
$.cookie('foo', null);
is deprecated and should be replaced with
$.removeCookie('foo');
This patch replaces the occurrences for the "showColumns" cookie.
Before this patch, there was a bug on the batchmod tools.
To reproduce the issue:
1/ Go on the Batch item modification tool
2/ Fill the textarea with barcodes and submit
3/ Click on some column names (to create the cookie)
4/ Click on 'Show all columns" (to set the cookie to null)
5/ Don't submit and repeat steps 1 & 2
6/ You should see a js error:
Error: Syntax error, unrecognized expression: :nth-child
...break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecogni...
Test plan:
Confirm the issue has gone away and there is no regression on the column
selection
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
No js error, no regressions, no errors
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
$.cookie('foo', null);
is deprecated and should be replaced with
$.removeCookie('foo');
This patch replaces the occurrences for the "holdfor" cookie.
Test plan:
1/ Search for a patron
2/ On the patron detail page, click on "search to hold"
3/ Search for records
4/ On the results page, click on "Place hold" > "Forget PATRON"
5/ Reload the page.
6/ The "Place hold" button should not contain the patron anymore
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Works as described, no errors
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
If you click the plugin next to an authority field that is already
populated it takes the values from the field and puts them in the search
in the reverse order.
Test plan:
1/ Edit a biblio
2/ Fill the subfield for an authority field (for instance 650$v, 650$x,
650$y, etc.)
3/ Click on the authority plugin
Before this patch, the values were concatenated in the reverse order.
With this patch, it should not.
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Work as described, no koha-qa errors
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
A code change for report 10480 in cataloging.js does not work well in case
you clone a field with a plugin on a subfield.
The events (click, focus, etc.) do not work on the subfield of the clone.
This patch corrects the situation by finding the right html element for
adding event binding.
NOTE: The test plan uses EXAMPLE.pl since many old plugins do not operate
on the correct field value when cloning. This is corrected in bug 13437.
Test plan:
[1] Attach EXAMPLE.pl to field 007, 246h and 260c.
In sql for 007: update marc_subfield_structure set
value_builder='EXAMPLE.pl' where tagfield='007' and tagsubfield='@';
[2] Clone field 007. Verify that focus and click operate on both fields.
Check also that the plugin works on the value corresponding with
the button you clicked.
[3] Clone field 246. Do the same checks on both subfields $h.
[4] Clone subfield 260c. Do the same checks again.
Test Remarks:
============
1/ Setup a new framework (B213) based off 'Default' and fired off
an SQL statement to update value_builder values for 007, 246$h
and 269$c (UPDATE `marc_subfield_structure` SET value_builder
= 'EXAMPLE.pl' WHERE frameworkcode = 'B213' AND ( (tagfield =
'007' AND tagsubfield = '@') OR ( tagfield LIKE '246' AND
tagsubfield = 'h') OR (tagfield = '260' AND tagsubfield = 'c'))
2/ Tested step 2, 3 and 4 of the given test plan above. The missing
plugin support in the cloned fields were noted.
3/ Applied patch
4/ Re-tested steps 2, 3 and 4 as before. The defined plugins were
correctly cloned and found to be functional.
Signed-off-by: Indranil Das Gupta (L2C2 Technologies) <indradg@gmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Sometime you get the "Nothing to save" message when clicking on the "save
all preferences" button, even if something has changed.
On irritating behavior is the middle click: if you use the middle click
to paste some text in the input, the "keyup" event won't be trigger.
This patch replaces the "keyup" event with the "change", which works
as we want here.
The issues:
1/ Search for "wanted" (admin/preferences.pl?op=search&searchfield=wanted)
Empty the input, click save
Type something and remove it
You are able to save, but nothing has changed
2/ Put something in your selection buffer and use the middle click to
paste it in the input.
No change detected.
Test plan:
Confirm the issues are fixed and you don't find any regression
Note that now the "(modified)" string is displayed when the input loses
the focus.
Followed test plan. 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: Tomas Cohen Arazi <tomascohen@gmail.com>
The "Date Due" column for checkouts is using the column index 1 to sort by.
This column is the one that is used for grouping items into today's checkouts
and previous checkouts. This is definitely not the column that should be used.
Instead, we should be using column index 2, which contains the raw unformatted
due date.
Revised Test Plan:
1) Find a patron with no checkouts
2) Check out something as due the beginning on the month.
3) Check out something as due the end of the month.
4) Check out something due tomorrow (hopefully not end of month)
-- so you should have 2015-04-01, 2015-04-30, and 2015-04-14
(for example)
5) Attempt to sort by due date
-- Note the sorting is incorrect
6) Apply this patch
7) Clear your browser cache
8) Reload the page
9) Attempt to sort by due date again
-- Note the sorting works correctly this time
10) Verify there are no regressions with bug 13908
-- this will require finding a patron with many checkouts,
playing with the Circulation system preferences
previousIssuesDefaultSortOrder and todaysIssuesDefaultSortOrder,
and understanding what the four different cases mean with
respect to actually manually sorting the 'Due Date' column.
NOTE: I did not do step 10,
Signed-off-by: Mark Tompsett <mtompset@hotmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
When viewing the list of a patron's holds from the circulation or patron
detail page the pickup library is not listed. This patch adds a column
to the table of holds which shows the pickup branch.
This patch also removes some unnecessary markup from the generation of
the table and corrects an instance where the term "reserve" was used
instead of "hold."
This patch also modifies the language describing an item which is marked
waiting at the current library: "Item is waiting here" instead of "Item
waiting."
To test, add several holds to a patron's account with various pickup
locations.
- Confirm that those pickup locations are correctly displayed
under the Holds tab in Circulation.
- Check in and confirm a hold which is to be picked up at the current
branch. Confirm that the revised language appears.
- Confirm that table sorting works correctly.
Signed-off-by: Nick <Nick@quechelibrary.org>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Test plan:
1/ Verify that the location column is correctly displayed on the
checkouts tables (circ/circulation.pl and members/moremember.pl).
2/ Verify that you can hide/show this column (using the admin page
and/or the ColVis DT plugin).
Signed-off-by: Aleisha <aleishaamohia@hotmail.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Test plan:
1/ Verify that you can show/hide columns on the checkouts table (circulation.pl).
2/ Play with the column configuration admin page (admin/columns_settings.pl),
and confirm the behavior is correct (depends on what you have selected).
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Tested together with patch #1, works as expected
Signed-off-by: Marc Veron <veron@veron.ch>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
This patch implements the use of Koha::FrameworkPlugin in Cataloguing,
Authorities, Acquisition, Serials and Tools.
The main change is architectural: see the commit message of the previous
patch. No changes in behavior are expected, but the support of new events
may provide additional functionality in the future. Some small bugs are
resolved along the way.
The change primarily focuses on the MARC and items editor in Cataloguing.
But the MARC editor for Authorities and the item editor in Acquisition,
Serials and Tools are touched too. This commit message gives some comments
per module.
NOTE FOR CATALOGUING:
A new plugin without popup (or other click event code) now shows the title
No popup when hovering over the tag editor image. The image alerts the
user on a plugin, the title tells about its status. The noclick property
allows for further style modifications in the template. Note that a
follow-up patch will clean up the old style plugins too with the same
effect.
Some additional code in cataloging.js makes it possible to clone subfields
with plugins (although only theoretically useful). The clones use the
same javascript functions but event.data contains an updated id.
This effectively resolves bug 13306. Note that if old plugins do not use
the javascript parameter for the id but the perl variable, cloning does
still operate on the wrong field (with and without this patch set).
In the absence of report 12176 in master, it is not yet necessary to modify
additem.tt. When it gets pushed, it should be an easy rebase.
New style item plugins will no longer need an extra parameter. (The code in
the FrameworkPlugin object actually takes care of that.)
NOTE FOR AUTHORITIES:
This patch also adds class name tag_editor to the buttonDot anchors. This
effectively makes the same tag editor image appear as in Cataloguing.
Futhermore it removes the button from the tab sequence if there is no click
event (really effective after conversion to the new style, since the old
style plugins contain empty onclicks and launchers).
Both small adjustments increase consistency between auth and bib edits.
NOTE FOR ACQUISITION:
In Acquisition two scripts use an item editor, but in a different way.
The scripts addorderiso2709 and neworderempty both rely on the routine
PrepareItemrecordDisplay in C4::Items, but neworderempty creates item
blocks dynamically via an ajax call to services/itemrecorddisplay.pl.
In order to make the dynamic item blocks work with plugins, some code
changes were needed in additem.js. (Normally the event binding is done
at document ready time; now it must be done later.)
At this moment the routine in Items.pm contains the html tags, and this
makes changes to the following templates not necessary for now:
* acqui/addorderiso2709.tt
* services/itemrecorddisplay.tt
Report 13397 has been opened to address moving the html to the templates.
NOTE FOR SERIALS:
Script serial-edit relies also on C4::Items (just as in Acquisition).
This makes changes to serials/serials-edit.tt not necessary for now.
NOTE FOR TOOLS:
The current code in tools/batchMod.pl allows the use of plugins for batch
modification of items. This patch just converts that code to use the new
object. Most item plugins however may not be very useful for operating on
multiple items at once.
PERFORMANCE:
I have benchmarked build_tabs in addbiblio to see how especially the
additional processing of the javascript in the FrameworkPlugin object
would impact performance. Testing default MARC21 framework with 8 plugins
gave the following figures:
- Old situation: 851 ms
- New situation: 942 ms (+10,7%)
- New situation after plugin cleanup: 881 ms (+3,4%)
Note also that adding lines for event binding is compensated by removing
lines for unused events. Page load should essentially be the same.
TEST PLAN:
Suggestion: If you also apply the next patch with the EXAMPLE plugin, you
can test with a rather harmless plugin (with popup) on various places :)
But your test should also include old style plugins, with[out] popups.
If you want to test a new plugin without popup, rename/remove Click$id
in the javascript code of the $builder definition (temporarily).
[1] Test Cataloguing:
- Add/Edit biblio. Try plugins with and without popup.
- Add/Edit items. (EXAMPLE can be used as an item plugin with popup.)
- Clone a subfield with plugin (use EXAMPLE): Verify that the plugin
works on both original and clone with the respective field values.
Is the value put back in the right field too?
[2] Test Authorities:
Edit an authority record. Try plugins with an without popup.
[3] Test Acquisition:
Set system preference AcqCreateItem to "placing an order".
Check the item editor in the following two places:
a- addorderiso2709: Open a basket, add an order from a staged file.
Select a file, click Add orders, and go to tab Item information.
b- neworderempty: Open a basket, add an order from a new empty record.
[4] Test Serials:
Check the item editor on serials-edit. Go to subscription detail.
Click Receive. Choose "Click to add item". (Note that this subscription
should create an item record when receiving this serial.)
[5] Test Tools:
Check the item editor for batch item modification. Enter a few valid
barcodes and press Continue to reach the item editor.
Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
This should affect the relatives' checkouts table too.
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
NOTE: This is the one later in the javascript file.
Checkout tab on the patron details page.
Signed-off-by: Mark Tompsett <mtompset@hotmail.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
With the conversion of the circulation and patron detail checkout
summary tables to AJAX recently we lost the ability to sort by title
while ignoring articles.
This patch corrects the problem by adding the "anti-the" configuration
to the relevant column in the DataTables initializtion script.
To test, apply the patch and clear your cache if necessary. Check out to
a patron who has multiple checkouts, some of which have titles beginning
with "a," "an," and "the." Sorting those checkouts by title should
ignore articles.
Test the patron detail page for that patron as well.
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
NOTE: This is the one early in the javascript file.
This is the one visible by having multiple checkouts
where the title excluding the articles is a different
order than titles including the articles.
Patrons -> Details (scroll down to check out area, view
checkouts and toggle the title sort)
Signed-off-by: Mark Tompsett <mtompset@hotmail.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
The checkouts table no longer honors the system preferences
todaysIssuesDefaultSortOrder and previousIssuesDefaultSortOrder.
This causes much frustration for librarians who prefer a different sort
order. In particular, many librarians prefer to see the oldest previous
issues at the top of the list so those overdue items are visible "above
the fold".
Test Plan:
1) Apply this patch
2) Find a patron with many previous checkouts due on different days
3) Try all 4 combinations of todaysIssuesDefaultSortOrder and previousIssuesDefaultSortOrder
4) Note they all sort correctly
Signed-off-by: Sean McGarvey <seanm@pascolibraries.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>