Having to write [% KOHA_VERSION %] for each url is bad because:
- It's easily forgettable when adding new <script> or <link>
- It prevents grep'ing for the full filename
- It violates the DRY principle
- If at some point we want to change the "force js and css reload"
mechanism, it will be tedious
This patch:
- adds a Template::Toolkit plugin that generates <script> and
<link> tags for JS and CSS files, and inserts automatically the Koha
version in the filename
- use the new plugin to remove all occurences of [% KOHA_VERSION %]
- remove the code that was adding KOHA_VERSION as a template variable
Test plan:
1. Apply patch
2. Go to several different pages in Koha (opac and intranet) while
checking your browser's dev tools (there should be no 404 for JS and
CSS files, and the Koha version should appear in filenames) and the
server logs (there should be no "File not found")
3. `git grep KOHA_VERSION` should return nothing
4. prove t/db_dependent/Koha/Template/Plugin/Asset.t
Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Finally we add the ability to export the list of lost items.
The items will be export in CSV format using a CSV profile defined.
Test plan:
0/ Apply all the patches from this patch set
1/ Define a CSV profile (type=SQL, Usage=Export lost items in report)
Try something like that to get the same columns as the default table:
Title=biblio.title
|Author=biblio.author
|Lost status=items.itemlost
|Lost on=items.itemlost_on
|Barcode=items.barcode
|Call number=items.itemcallnumber
|Date last seen=items.datelastseen
|Price=items.price
|Rep. price=items.replacementprice
|Library=items.homebranch
|item type=items.itype
|Current location=items.holdingbranch
|Location=items.location
|Not for loan status=items.notforloan
|Notes=items.itemnotes
2/ Use the filters and select items to export
3/ Export the list of items you want and make sure the CSV is correctly
formatted and contains the items you selected
QA Notes:
- I think we should add default CSV profiles for the different "usage",
but I would consider it as a separate enhancement since none of them is
defined yet
- Most of the code to export CSV is no reusable. We should make
Koha::Exporter::Record support CSV export for type=SQL (it only
supports MARC type so far).
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Séverine QUEUNE <severine.queune@bulac.fr>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This patch modifies the staff client "Additional tools" templates so
that JavaScript is included in the footer instead of the header:
- Calendar
- CSV profiles
- Log viewer
- News
- Task scheduler
- Edit quotes for QOTD feature
- Upload
Note that the log viewer template has been modified so that the
"interface" variable (passed to the template to provide the correct path
to staff client assets) isn't overwritten by an "interface" variable
required by the log viewer.
To test, apply the patch and test the JavaScript-driven features of
each modified template: All button controls, DataTables functionality,
form validation, etc.
Signed-off-by: Claire Gravely <claire.gravely@bsz-bw.de>
Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
To Test
1. Hit the page /cgi-bin/koha/tools/csv-profiles.pl?op=add_form
2. Add a text in the field Profile name, Profile description
and Profile MARC fields that contains js
3. Save the page.
4. Notice js is execute
5. Apply patch and reload, the js is escaped
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
To test:
1) Go to Tools -> CSV profiles
2) Notice old style of links for Edit and Delete
3) Apply patch and refresh page
4) Notice buttons for Edit and Delete
5) Confirm they work as expected
Sponsored-by: Catalyst IT
Signed-off-by: Lee Jamison <ldjamison@marywood.edu>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Translation tool for file csv-profiles.tt picks following line:
%s [%% IF csv_profile.encoding == encoding OR NOT csv_profile AND encoding == 'utf8' %%]
It is is due to a line break inside a template directive. This patch removes it.
To test:
- Verify that code change makes sense
- Apply patch
- Verify that csv exports behave as before
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This patch allows the user to use a CSV export profile to create the fields to export the basket as CSV in a basket page.
Test plan:
1) Apply the patch
2) Go to Tools › CSV export profiles and create a profile of type "SQL for basket export in acquisition"
example:
biblionumber=biblio.biblionumber|auteur=biblio.author|titre=biblio.title|date=biblioitems.copyrightdate|editeur=biblioitems.publishercode|isbn=biblioitems.isbn|quantite=aqorders.quantity|prix=aqorders.rrp|panier=aqorders.basketno
3) In acquisition module, create a new basket and add an order to the basket
4) On basket detail page, there should be the split button labelled "Export to CSV"
5) Try to use the button and export CSV with your CSV profile you defined in step 2
6) Validate the CSV file.
7) Repeat 4-6 with a closed basket.
a) close the basket
b) View the basket
c) validate that there is an export button
d) test it with an export
8) prove t/db_dependent/Acquisition/GetBasketAsCSV.t t/db_dependent/Koha/CsvProfiles.t
Initial work:
Sponsored by: CCSR
Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
Signed-off-by: mehdi <mehdi.hamidi@inlibro.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
1/ If a librarian edit (add_validate) a non-existing csv profile, we
explicitely die
2/ If you try to delete a non-existing csv profile, you will now get a
nice alert box
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
This page was inconsistent with the other admin and tool pages.
The 2 tabs 'New profile' and 'Edit existing profile' were useless, the
ergonomic needs to be revisited.
This patch applies the same script/page structure as others: by default
a table containing all csv profiles is displayed with 2 action links:
edit and delete.
Test plan:
1/ Create 1+ CSV profiles, with different types (marc and sql)
2/ Update some values using the Edit link
3/ Delete a CSV profile
Note: When deleting a CSV profile, it would be great to warn the user if it is
used.
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
No problems on create, update and delete.
No errors
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
To test:
Apply patch and go to pretty much every page on the Intranet - look out
for labels on forms etc where there should be colons but aren't. If you
see any that I've missed but I'm 99% sure I got all of them! Make sure
to click through some forms where creating a new thing involves
continuing the submission on multiple pages.
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Rebased on current master and checked all changed pages.
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com
Signed-off-by: Courret <scourret@gmail.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Form fields in the staff client which are required should be configured
to be so by doing several things:
- Add a class "required" to the field's <label>
- Add a class "required" to the form field
- Add 'required="required"' to the form field
- Apppend a <span class="required">Required</span> after the form field.
Several places in the templates are missing the <span>. This patch adds
them.
To test, apply the patch and view the following pages to confirm that
the "Required" text appears:
- Acquisitions -> Add an order to a basket from a new (empty) record.
Title, quantity, and fund should indicate they are required.
- Administration -> Authority types -> New authority type. The
authority type and description fields should indicate they are
required.
- Administration -> Authority types -> MARC structure -> New tag. The
tag field should indicate it is required.
- Patron types and categories -> New category. Category code,
description, and category type should indicate that they are required.
FIXME: Enrollment period is required but the user must choose one. I'm
not sure how to handle that clearly.
- Tools -> CSV profiles. Profile name, profile type, and profile MARC
fields should indicate they are required on both the new and edit
forms.
- Administration -> Manage MARC modification templates. Under "Create a
new template" the name field should indicate that it is required.
- Tools -> Batch patron modification -> Submit a batch for editing. Any
fields which are required according to your BorrowerMandatoryField
system preference should indicate that they are required.
Patch behaves as expected.
Signed-off-by: Marc Véron <veron@veron.ch>
QA Edits: Re-worded the "required" not on the batch patron edit form,
added a missing word to the help text on that page. On the csv-profiles
page I removed an unnecessary "javascript:" protocol from the markup.
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Works and passes QA script.
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
The recent upgrade to jQueryUI didn't take into account the new method
for forcing selection of a tab by adding a class to the tab markup. This
patch corrects this by updating the class name.
This patch also updates one instance where it was necessary to switch to
the new function for selecting a tab by ID, introduced by Bug 12075.
To test, view the following pages:
- Perform a catalog search in the staff client. On the search results
page the "Search the catalog" tab should be selected.
- In Acquisitions, view the basket groups page for a vendor which has
open and closed basket groups
(/cgi-bin/koha/acqui/basketgroup.pl?booksellerid=X). Append
"&listclosed=1" to the URL. The "Closed" tab should be selected.
- In Administration -> Authorized values, modify an authorized value for
which an icon has been selected. When the edit form loads the
corresponding icon tab should be selected.
- In Administration -> Item types, modify an itemtype for which an icon
has been selected. When the edit form loads the corresponding icon tab
should be selected.
- In Cataloging, open an existing record and select any tab besides the
first one. Choose "Save and continue editing" from the Save menu. When
the page reloads you should be returned to the tab you selected
before.
- In Suggestions, markup for selected the tab has been removed because
it didn't appear to be performing any function. The first tab is
selected by default. The template doesn't need to explicitly add a
class to make it so.
- In Tools -> CSV profiles, choose an existing profile for editing. When
the page loads the "Edit existing profile" tab should be selected.
Signed-off-by: Mark Tompsett <mtompset@hotmail.com>
NOTE: Unable to duplicate Cataloging step issue, but there is no
visible regression with the patch. The second part of the
addbiblio.tt portion of the patch is clearly correct,
because it is the same type of change as made in the other
sections.
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
This patch adds the use of the jQuery validator plugin for
the two forms (new and edit) on the CSV profiles page. Doing
this standardizes messages that gets displayed on validation
errors.
This patch, in the process, fixes a bug where if a page has
more than one validated form, only the first such form would
get the validator plugin applied to it -- it looks like $.validate()
does not do implicit iteration.
To test:
[1] Apply the patch, then go to Tools | CSV profiles.
[2] Create a new profile, but leave the name and the MARC/SQL
fields blank. When you click the submit button, the form
should not be submitted; instead, text will be displayed
to the right of each input that lacks required input.
[3] As above, but change the profile type and verify that the form
is not submitted unless all of the required fields are filled in.
[4] Edit an existing form, then empty the MARC/SQL field. Try
submitting the form; it should refuse to submit the form
and display text saying that the field is required.
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Fixed some tabs, works nicely and as described.
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Some fields are required on editing/adding CSV profiles. This
patch adds HTML5 validation so that required fields must be
filled in before the form is submitted.
Test plan:
- add a new CSV profile (tools/csv-profiles.pl) without any value.
- save => error on empty fields.
- fill the "marc" content, select type="sql", fill the CSV name input.
- save => error on sql content field.
- fill the sql content
- save => the CSV profile is saved.
- retry for the edit form.
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Comment: On top of both patches for Bug 10853
Works very well, now we get an alert with empty field
Saves correctly MARC and SQL profiles
Solved minor conflict introduced by tab followup on Bug 10853
Again small tab errors corrected in followup
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Works as described, looks a bit 'non standard' for Koha,
but improves usability of the form.
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
This patch:
- adds a new column 'type' to the export_format table.
- renames the field name export_format.marcfields with
export_format.content.
Test plan:
- Check that existing profiles have the type "marc" selected by default
- Create a new profile with a type "sql"
- Save and verify the profile is correctly displayed when you select it.
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Comment: Work as described. koha-qa reports Small tabs errors,
corrected in followup
Test:
1) go to Tools > CSV profiles, Create profile, current
2) Apply patch, run updatedatabase
3) Go to Tools > CSV profiles, new option present
old profile with type MARC
4) Create new profile MARC, save and show correct
5) Create new profile SQL, save and show correct
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
All tests and QA script pass with all 3 patches applied.
Works as described. Functionality for SQL profiles will be
added by another patch. For now it's possible to add/edit/delete
them.
Existing CSV profiles can still be exported correctly.
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
When editing an existing CSV profile, its encoding is not selected in combobox, first value "ascii" is always selected.
This patch corrects this (surely appeared with TT conversion) and also the fact that "uft8" is by default selected in creation form.
Test plan:
- Go to Tools/CSV Profiles
- In "New prodile" tab
=> Check that "uft8" is selected
- Create a new profile by entering name, an encoding (other than the first), and MARC fields
- Click on "Edit existing profile" tab
- Select created profile
=> Check that specified encoding is selected
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Template only change.
Fixed tabs.
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
Correcting the markup of error messages in three places:
catalogue merge, CSV profile editing, and opac comments.
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Current jQuery-driven tabs are done using a very old
version of the tabs plugin. This patch upgrades jQueryUI
to the latest version and adds the tabs widget dependency
to the jqueryui js file and updates the syntax for existing
tabs:
- $("#foo > ul").tabs(); changes to $("#foo").tabs();
- Remove full URL from tab links (use #anchor only).
Pages with "static" tabs (tabs which are built in the
markup rather than generated by the plugin) have been
modified to use their own style. Examples: pay.tt in
the staff client and opac-readingrecord.tt in the OPAC.
Edit: Minor revision to some uncorrected markup
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
This patch also fixes some strings:
* itemcallnumber => item call number
* Profile marcfields=> Profile MARC fields
Fixing improperly nested template logic inside HTML tags in
CSV profiles template
Also fixing improperly scoped template variable which prevented
the current profile from being preselected under the edit tab.
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>