]> git.evergreen-ils.org Git - Evergreen.git/blob - docs/RELEASE_NOTES_3_7.adoc
LP1615805 No inputs after submit in patron search (AngularJS)
[Evergreen.git] / docs / RELEASE_NOTES_3_7.adoc
1 = Evergreen 3.7 Release Notes =
2 :toc:
3 :numbered:
4
5 == Evergreen 3.7.2 ==
6
7 This release contains bug fixes improving on Evergreen 3.7.1.
8
9 === Upgrade notes ===
10
11 The fix for https://bugs.launchpad.net/evergreen/_bug/1450519[Launchpad bug 1450519] modifies the `fm_IDL.xml` file.  To ensure that everything is up-to-date, existing Evergreen sites should run `autogen.sh` after restarting OpenSRF services and before restarting Apache.
12
13 In reference to the fix for https://bugs.launchpad.net/evergreen/+bug/1944765[Launchpad bug 1944765], existing Evergreen systems on Debian and Ubuntu should do the following to ensure that mod_headers is active:
14
15 ----
16 sudo a2enmod headers
17 sudo systemctl restart apache2
18 ----
19
20 === Bug Fixes ===
21
22 ==== Acquisitions ====
23
24 * Fixes column header in Line Item Search (https://bugs.launchpad.net/evergreen/+bug/1906826[LP1906826])
25
26 ==== Administration ====
27
28 * Adds automated tests for ISBN-13 starting with 979 (https://bugs.launchpad.net/evergreen/+bug/1857060[LP1857060])
29 * Adds circ.collections.exempt user setting to seed data (https://bugs.launchpad.net/evergreen/+bug/1937299[LP1937299])
30 * Adds CPAN module prerequisites for the 'Did You Mean' search suggestions feature (https://bugs.launchpad.net/evergreen/+bug/1936662[LP1936662])
31 * Adds Library Setting to 'Did You Mean' baseline (https://bugs.launchpad.net/evergreen/+bug/1931167[LP1931167])
32 * Restricts access to library setting history for unauthorized users (https://bugs.launchpad.net/evergreen/+bug/1450519[LP1450519])
33 * Fixes filter errors on secondary admin pages (https://bugs.launchpad.net/evergreen/+bug/1919483[LP1919483])
34 * Fixes an issue with the Default Net Access Level Library Setting (https://bugs.launchpad.net/evergreen/+bug/1802682[LP1802682])
35 * Additional query optimization for 'Did You Mean' (https://bugs.launchpad.net/evergreen/+bug/1931162[LP1931162])
36 * Fixes an issue with Action Triggers that have a repeat delay (https://bugs.launchpad.net/evergreen/+bug/1823983[LP1823983])
37 * Fixes an issue with the Action Trigger ApplyPatronPenalty reactor (https://bugs.launchpad.net/evergreen/+bug/1859502[LP1859502])
38 * Enables Apache module mod_headers by default (https://bugs.launchpad.net/evergreen/+bug/1944765[LP1944765])
39 * Fixes typo in three Library Settings descriptions https://bugs.launchpad.net/evergreen/+bug/1826759[LP1826759])
40
41 ==== Architecture ====
42
43 * Fixes datatype issues that can cause unexpected behavior (https://bugs.launchpad.net/evergreen/+bug/1923076[LP1923076])
44 * Fixes an issue running "npm install" for the Angular JS web client (https://bugs.launchpad.net/evergreen/+bug/1937875[LP1937875])
45 * Fixes typo in pingest.pl help command (https://bugs.launchpad.net/evergreen/+bug/1924562[LP1924562])
46
47 ==== Booking ====
48
49 * Adds new Booking permissions to appropriate Permission Groups (https://bugs.launchpad.net/evergreen/+bug/1910891[LP1910891])
50 * Fixes an issue where Booking Resource Type box was not populating (https://bugs.launchpad.net/evergreen/+bug/1916949[LP1916949])
51
52 ==== Catalog ==== 
53
54 * Adds "Show more details" button & workstation setting for the Staff Catalog (https://bugs.launchpad.net/evergreen/+bug/1908722[LP1908722])
55 * Adds call number display Staff Catalog search results (https://bugs.launchpad.net/evergreen/+bug/1910808[LP1910808])
56 * Restores preferred library holdings count in search results (https://bugs.launchpad.net/evergreen/+bug/1913807[LP1913807])
57 * Fixes duplicate circ mod display in embedded OPAC view (https://bugs.launchpad.net/evergreen/+bug/1930308[LP1930308])
58 * Adds jump to details on one hit support to the Staff Catalog (https://bugs.launchpad.net/evergreen/+bug/1912852[LP1912852])
59 * Adds a Patron View button to the Staff Catalog (https://bugs.launchpad.net/evergreen/+bug/1910452[LP1910452])
60 * Fixes display of Age Hold Protection in the Staff Catalog (https://bugs.launchpad.net/evergreen/+bug/1908614[LP1908614])
61 * Adds OPAC visible to Holdings View in the Staff Catalog (https://bugs.launchpad.net/evergreen/+bug/1917338[LP1917338])
62 * Fixes 'copy queue to bucket' function in Staff Catalog (https://bugs.launchpad.net/evergreen/+bug/1928275[LP1929275])
63 * Fixes an issue where the holds page would refresh before a batch holds cancel was complete (https://bugs.launchpad.net/evergreen/+bug/1911023[LP1911023])
64 * Fixes an issue where 'submit' or 'enter' was required for a patron barcode on the Staff Catalog holds form (https://bugs.launchpad.net/evergreen/+bug/1903358[LP1903358])
65
66
67 ==== Cataloging ====
68
69 * Adds a workstation setting to allow users to save grid preferences for the angular catalog item table (https://bugs.launchpad.net/evergreen/+bug/1907296[LP1907296])
70 * Adds SRCE fixed field to Angular MARC Editor (https://bugs.launchpad.net/evergreen/+bug/1718782[LP1718782])
71 * Fixes the Delete Queue link on the Queue Details Page in MARC Batch Import/Export (https://bugs.launchpad.net/evergreen/+bug/1934184[LP1934184])
72 * Fixes a text error in the Load Shared Bucket modals (https://bugs.launchpad.net/evergreen/+bug/1929839[LP1929839])
73 * Fixes an issue that allows precat merges (https://bugs.launchpad.net/evergreen/+bug/827356[LP827356])
74 * Fixes a TCN/ID mismatch in the z39.50 interface (https://bugs.launchpad.net/evergreen/+bug/1786971[LP1786971])
75 * Fixes an issue where import operations could fail (https://bugs.launchpad.net/evergreen/+bug/1941764[LP1941764])
76 * Fixes an issue where authority records with long subfields would not load (https://bugs.launchpad.net/evergreen/+bug/1922567[LP1922567])
77 * Fixes excess openils.actor calls in Add to Item Bucket (https://bugs.launchpad.net/evergreen/+bug/1932051[LP1932051])
78
79 ==== Circulation ====
80
81 * Fixes excess pcrud calls in barcode lookup (https://bugs.launchpad.net/evergreen/+bug/1929136[LP1929136])
82 * Fixes an issue where batch checkin from Item Status caused rapid-fire popups (https://bugs.launchpad.net/evergreen/+bug/1742553[LP1742553])
83 * Fixes an issue where self-check audio alerts were failing (https://bugs.launchpad.net/evergreen/+bug/1815968[LP1815968])
84 * Fixes an issue where removing patrons from buckets caused too many simultaneous requests (https://bugs.launchpad.net/evergreen/+bug/1932358[LP1932358])
85 * Adds missing patron data to Holds for Patron print template (https://bugs.launchpad.net/evergreen/+bug/1926971[LP1926971])
86 * Fixes incorrect hints for fields in the Checkout print template (https://bugs.launchpad.net/evergreen/+bug/1901028[LP1901028])
87 * Fixes a timezone issue with staff scheduled Curbside appointments (https://bugs.launchpad.net/evergreen/+bug/1917396[LP1917396])
88 * Fixes an issue where the Missing Pieces slip was sent to the Default printer instead of the Receipt printer (https://bugs.launchpad.net/evergreen/+bug/1938450[LP1938450])
89 * Fixes sorting of SMS Carriers when editing an existing hold (https://bugs.launchpad.net/evergreen/+bug/1809157[LP1809157])
90 * Fixes messages in the patron Offline Block List (https://bugs.launchpad.net/evergreen/+bug/1752356[LP1752356])
91 * Fixes an issue where cloned patron addresses were set to Pending (https://bugs.launchpad.net/evergreen/+bug/1821804[LP1821804])
92 * Fixes an issue with retargeting when a hold's pickup library is changed (https://bugs.launchpad.net/evergreen/+bug/1866667[LP1866667])
93 * Fixes an issue that allowed Hold Activation Dates in the past in the Staff Catalog (https://bugs.launchpad.net/evergreen/+bug/1903357[LP1903357])
94 * Fixes patron name display to use preferred name in the Staff Catalog Place Hold screen (https://bugs.launchpad.net/evergreen/+bug/1924621[LP1924621])
95 * Fixes display of legacy circulations in circ summary (https://bugs.launchpad.net/evergreen/+bug/1942920[LP1942920])
96
97
98 ==== Client ====
99
100 * Fixes display issue in Angular grids (https://bugs.launchpad.net/evergreen/+bug/1916754[LP1916754])
101 * Restores the Circulation History by Year information in Item Status (https://bugs.launchpad.net/evergreen/+bug/1743611[LP1743611]) 
102 * Fixes a display issue with formerly precataloged items (https://bugs.launchpad.net/evergreen/+bug/1904754[LP1904754])
103 * Fixes an issue that allowed logins by expired accounts (https://bugs.launchpad.net/evergreen/+bug/1844121[LP1844121])
104 * Adds missing workstation types for Carousels (https://bugs.launchpad.net/evergreen/+bug/1920253[LP1920253])
105 * Adds caching for workstation & user settings values (https://bugs.launchpad.net/evergreen/+bug/1938729[LP1939729])
106
107 ==== Course Materials ====
108
109 * Fixes an issue where a blank course section number impacted OPAC display (https://bugs.launchpad.net/evergreen/+bug/1913221[LP1913221])
110 * Adds circulation modifier to OPAC Course Details page (https://bugs.launchpad.net/evergreen/+bug/1935693[LP1935693])
111 * Adds an Org Unit selector to the Course List (https://bugs.launchpad.net/evergreen/+bug/1905068[LP1905068])
112 * Fixes the owning library default when adding a new course (https://bugs.launchpad.net/evergreen/+bug/1917809[LP1917809])
113 * Fixes an issue that allowed unreasonable Course-Term mappings (https://bugs.launchpad.net/evergreen/+bug/1906058[LP1906058])
114
115 ==== Documentation ====
116
117 * Updates the Glossary & Apache Rewrite Tricks docs to define 'TLD' (https://bugs.launchpad.net/evergreen/+bug/1837753[LP1837753])
118 * Updates Address Alert docs for web client (https://bugs.launchpad.net/evergreen/+bug/1776977[LP1776977])
119 * Updates to library settings docs & filename corrections (https://git.evergreen-ils.org/?p=Evergreen.git;a=commit;h=c6e50ae7aca514a3b3db441df29162680279e0fb[commit])
120 * Updated Shelving Locations docs for Angular (https://bugs.launchpad.net/evergreen/+bug/1901758[LP1901758])
121 * Fixes to 3.7 Report Sources doc (https://git.evergreen-ils.org/?p=Evergreen.git;a=commit;h=efe8d20613f65c8a568f66f3cd2e334fe12e4341[commit])
122
123 ==== OPAC ====
124
125 * Fixes alignment issue on mobile devices (https://bugs.launchpad.net/evergreen/+bug/1928005[LP1928005])
126 * Adds Curbside Appointments to Bootstrap OPAC (https://bugs.launchpad.net/evergreen/+bug/1895737[LP1895737])
127 * Adds 'Limit to Available' in Bootstrap OPAC copy table (https://bugs.launchpad.net/evergreen/+bug/1908612[LP1908612])
128 * Fixes an issue where the Login box was not translateable (https://bugs.launchpad.net/evergreen/+bug/1919497[LP1919497])
129 * Fixes alignment issue with available and holds copy counts in the Bootstrap OPAC (https://bugs.launchpad.net/evergreen/+bug/1933125[LP1933125])
130 * Makes the Bootstrap OPAC self registration form more responsive (https://bugs.launchpad.net/evergreen/+bug/1920273[LP1920273])
131 * Adds missing title and descripton for Shared Lists in the Bootstrap OPAC (https://bugs.launchpad.net/evergreen/+bug/1909584[LP1909584])
132 * Fixes hold failures due to SMS notification selection errors (https://bugs.launchpad.net/evergreen/+bug/1933381[LP1933381])
133 * Fixes tabbing & focus in Bootstrap OPAC login form 
134 (https://bugs.launchpad.net/evergreen/+bug/1909144[LP1909144])
135 * Replaces javascript onfocus/onblur with HTML5 placeholder in KPAC (https://bugs.launchpad.net/evergreen/+bug/1834258[LP1834258])
136
137
138 ==== SIP ====
139
140 * Exports PERL5LIB in oils_ctl.sh to account for a change in Perl 5.26.0. This change affects Ubuntu 18.04 (Bionic Beaver) and Debian 10 (Buster) and any future releases. (https://bugs.launchpad.net/evergreen/+bug/1899974[LP1899974])
141
142 === Acknowledgements ===
143
144 We would like to thank the following individuals who contributed code,
145 testing and documentation patches to the 3.7.2 point release of Evergreen:
146
147 * John Amundson
148 * Adam Bowling
149 * Jason Boyer
150 * Dan Briem
151 * Christine Burns
152 * Eva Cerninakova
153 * Galen Charlton
154 * Garry Collum
155 * Dawn Dale
156 * Jeff Davis
157 * Bill Erickson
158 * Jason Etheridge
159 * Lynn Floyd
160 * Ruth Frasur
161 * Rogan Hamby
162 * Elaine Hardy
163 * Shula Link
164 * Tiffany Little
165 * Mary Llewellyn
166 * Terran McCanna
167 * Gina Monti
168 * Christine Morgan
169 * Michele Morgan
170 * Andrea Buntz Neiman
171 * Jennifer Pringle
172 * Mike Risher
173 * Erica Rohlfs
174 * Mike Rylander
175 * Jane Sandberg
176 * Chris Sharp
177 * Jason Stephenson
178 * Josh Stompro
179 * Jennifer Weston
180 * Beth Willis
181 * Jessica Woolford
182
183
184
185
186 == Evergreen  3.7.1 ==
187
188 This release contains bug fixes improving on Evergreen 3.7.0.
189
190
191 === Bug Fixes ===
192
193 ==== Acquisitions ====
194
195 * Acq PO Search cancel reason column shows description (https://bugs.launchpad.net/bugs/1906825[Bug 1906825])
196 * Date columns in Acq Search now also show time (https://bugs.launchpad.net/bugs/1912097[Bug 1912097])
197
198 ==== Administration ====
199
200 * Fixes an issue with editing carousels (https://bugs.launchpad.net/bugs/1879769[Bug 1879769])
201 * Carousel admin grid now has a link to edit the relevant bucket (https://bugs.launchpad.net/bugs/1901893[Bug 1901893])
202 * The Active Column in SMS Carrier administration now displays properly (https://bugs.launchpad.net/bugs/1873539[Bug 1873539])
203 * Fixes upgrade script for Enhanced Print/Email (https://bugs.launchpad.net/bugs/1905091[Bug 1905091])
204 * Cleans up numerous Perl warnings in logs (https://bugs.launchpad.net/bugs/1895660[Bug 1895660])
205
206
207 ==== Catalog ====
208
209 * Fixes an issue displaying highlighting in traditional and bootstrap catalogue (https://bugs.launchpad.net/bugs/1923225[Bug 1923225])
210 * Fixes an issue displaying works with the word "hidden" in the title (https://bugs.launchpad.net/bugs/1930933[Bug 1930933])
211 * Bootstrap OPAC: Simple Selector for Lang now works in Advanced Search (https://bugs.launchpad.net/bugs/1920042[Bug 1920042])
212 * Bootstrap OPAC: My account summary now displays ebook references according to config file (https://bugs.launchpad.net/bugs/1910288[Bug 1910288])
213 * Bootstrap OPAC: Item tags no longer display as separate copies on an x-small screen (https://bugs.launchpad.net/bugs/1916936[Bug 1916936])
214 * Fixes nesting issues on the Bootstrap OPAC Record Detail Page (https://bugs.launchpad.net/bugs/1901710[Bug 1901710])
215 * Opac SMS and Carrier Fields display according to OU Setting when Editing a Hold (https://bugs.launchpad.net/bugs/1902302[Bug 1902302])
216 * Better controls for collapsing and expanding the staff catalog search form (https://bugs.launchpad.net/bugs/1913338[Bug 1913338])
217
218 ==== Cataloging ====
219
220 * Angular Catalog: "Edit" link no longer ignores UPDATE_COPY perm (https://bugs.launchpad.net/bugs/1920815[Bug 1920815])
221 * Angular catalog: fixes an issue with metarecord search (https://bugs.launchpad.net/bugs/1930088[Bug 1930088])
222 * Angular staff catalog now displays e-resource links (https://bugs.launchpad.net/bugs/1881607[Bug 1881607])
223 * Record bucket Batch Edit now navigates to the Angular batch editor (https://bugs.launchpad.net/bugs/1926310[Bug 1926310])
224 * Angular Catalog: Shelving locations assigned to the top level OU now display in list (https://bugs.launchpad.net/bugs/1927527[Bug 1927527])
225 * Add to Carousel added back to the Other Actions menu in the Bib Record (https://bugs.launchpad.net/bugs/1922120[Bug 1922120])
226 * Makes terminology more consistent in Angular Catalog (https://bugs.launchpad.net/bugs/1925725[Bug 1925725])
227
228
229 ==== Circulation ====
230
231 * Preferred Name is now the prominent display name (https://bugs.launchpad.net/bugs/1924185[Bug 1924185])
232 * Unchanged workstation settings are no longer re-applied on every checkin (https://bugs.launchpad.net/bugs/1918362[Bug 1918362])
233 * Adds accessible field labels in patron search and edit (https://bugs.launchpad.net/bugs/1615800[Bug 1615800])
234 * Fixes an issue with the embedded "Place a hold" catalog in the checkout interface (https://bugs.launchpad.net/bugs/1887876[Bug 1887876])
235 * Angular Catalog: Hold status in View Holds is now saved (https://bugs.launchpad.net/bugs/1917495[Bug 1917495])
236 * Angular Staff Catalog: Hold Pickup Library no longer sometimes empty (https://bugs.launchpad.net/bugs/1917944[Bug 1917944])
237 * Fixes an issue with the Angular catalog view holds sort by patron barcode (https://bugs.launchpad.net/bugs/1928684[Bug 1928684])
238 * Staff catalog hold detail page now supports hold notes/notifications (https://bugs.launchpad.net/bugs/1910145[Bug 1910145])
239
240 ==== Client ====
241
242 * Angular grid column field picker has a better sort order (https://bugs.launchpad.net/bugs/1891699[Bug 1891699])
243 * Angular grids now support shift-click multi-row selection (https://bugs.launchpad.net/bugs/1911238[Bug 1911238])
244 * Fixes an issue with multi-word queries in the splash page catalog search (https://bugs.launchpad.net/bugs/1892435[Bug 1892435])
245
246 ==== Database ====
247
248 * Evergreen now uses the builtin array_remove() function rather than its own custom version (https://bugs.launchpad.net/bugs/1778955[Bug 1778955])
249 * Adds seed data for the eg.orgselect.hopeless.wide_holds setting (https://bugs.launchpad.net/bugs/1895738[Bug 1895738])
250
251
252 ==== Documentation ====
253
254 * Adds documentation on how to contribute Documentation (https://bugs.launchpad.net/bugs/1927534[Bug 1927534])
255 * Adds IDL acronym to the glossary (https://bugs.launchpad.net/bugs/1857917[Bug 1857917])
256 * Adds documentation on how to use the browser client efficiently (https://bugs.launchpad.net/bugs/1250528[Bug 1250528] and https://bugs.launchpad.net/bugs/1751146[Bug 1751146])
257 * Improves example for LDAP authentication (https://bugs.launchpad.net/bugs/1901940[Bug 1901940])
258 * Adds documentation about patron with negative balances (https://bugs.launchpad.net/bugs/1929467[Bug 1929467])
259
260 === Acknowledgements ===
261
262 We would like to thank the following individuals who contributed code,
263 testing and documentation patches to the 3.7.1 point release of Evergreen:
264
265
266 * Jason Boyer
267 * Dan Briem
268 * Galen Charlton
269 * Garry Collum
270 * Jeff Davis
271 * Bill Erickson
272 * Jason Etheridge
273 * Lynn Floyd
274 * Blake Graham Henderson
275 * Rogan Hamby
276 * Elaine Hardy
277 * Kyle Huckins
278 * Rosie Le Faive
279 * Tiffany Little
280 * Mary Llewellyn
281 * Katie G. Martin
282 * Terran McCanna
283 * Gina Monti
284 * Michele Morgan
285 * Andrea Buntz Neiman
286 * Mike Risher
287 * Mike Rylander
288 * Jane Sandberg
289 * Chris Sharp
290 * Chrisy Schroth
291 * Jason Stephenson
292 * Stephen Wills
293
294 == Evergreen  3.7.0 ==
295
296 === Upgrade notes ===
297
298 ==== Database Upgrade Procedure ====
299
300 The database schema upgrade for Evergreen 3.7 has more steps than normal. The general
301 procedure, assuming Evergreen 3.6.2 as the starting point, is:
302
303 . Run the main 3.6.2 => to 3.7 schema update script from the Evergreen source directory,
304 supplying database connection parameters as needed:
305 +
306 [source,sh]
307 ----
308 psql -f Open-ILS/src/sql/Pg/version-upgrade/3.6.2-3.7.0-upgrade-db.sql 2>&1 | tee 3.6.2-3.7.0-upgrade-db.log
309 ----
310 [start=2]
311 . Create and ingest search suggestions:
312 .. Run the following from `psql` to export the strings to files:
313 +
314 [source,sql]
315 ----
316 \a
317 \t
318
319 \o title
320 select value from metabib.title_field_entry;
321 \o author
322 select value from metabib.author_field_entry;
323 \o subject
324 select value from metabib.subject_field_entry;
325 \o series
326 select value from metabib.series_field_entry;
327 \o identifier 
328 select value from metabib.identifier_field_entry;
329 \o keyword
330 select value from metabib.keyword_field_entry;
331
332 \o
333 \a
334 \t
335 ----
336 [start=2]
337 .. From the command line, convert the exported words into SQL scripts to load into the database.
338 This step assumes that you are at the top of the Evergreen source tree.
339 +
340 [source,sh]
341 ----
342 $ ./Open-ILS/src/support-scripts/symspell-sideload.pl title > title.sql
343 $ ./Open-ILS/src/support-scripts/symspell-sideload.pl author > author.sql
344 $ ./Open-ILS/src/support-scripts/symspell-sideload.pl subject > subject.sql
345 $ ./Open-ILS/src/support-scripts/symspell-sideload.pl series > series.sql
346 $ ,/Open-ILS/src/support-scripts/symspell-sideload.pl identifier > identifier.sql
347 $ ./Open-ILS/src/support-scripts/symspell-sideload.pl keyword > keyword.sql
348 ----
349 [start=3]
350 .. Back in `psql`, import the suggestions. This step can take several hours in a large databases,
351 but the `\i $FILE.sql`` steps can be run in parallel.
352 +
353 [source,sql]
354 ----
355 ALTER TABLE search.symspell_dictionary SET UNLOGGED;
356 TRUNCATE search.symspell_dictionary;
357
358 \i identifier.sql
359 \i author.sql
360 \i title.sql
361 \i subject.sql
362 \i series.sql
363 \i keyword.sql
364
365 CLUSTER search.symspell_dictionary USING symspell_dictionary_pkey;
366 REINDEX TABLE search.symspell_dictionary;
367 ALTER TABLE search.symspell_dictionary SET LOGGED;
368 VACUUM ANALYZE search.symspell_dictionary;
369
370 DROP TABLE search.symspell_dictionary_partial_title;
371 DROP TABLE search.symspell_dictionary_partial_author;
372 DROP TABLE search.symspell_dictionary_partial_subject;
373 DROP TABLE search.symspell_dictionary_partial_series;
374 DROP TABLE search.symspell_dictionary_partial_identifier;
375 DROP TABLE search.symspell_dictionary_partial_keyword;
376 ----
377 [start=3]
378 . (optional) Apply the new opt-in setting for overdue and preduce notices.
379 The following query will set the circ.default_overdue_notices_enabled
380 user setting to true (the default value) for all existing users,
381 ensuring they continue to receive overdue/predue emails.
382 +
383 [source,sql]
384 ----
385 INSERT INTO actor.usr_setting (usr, name, value)
386 SELECT
387 id,
388 circ.default_overdue_notices_enabled,
389 true
390 FROM actor.usr;
391 ----
392 +
393 The following query will add the circ.default_overdue_notices_enabled
394 user setting as an opt-in setting for all action triggers that send
395 emails based on a circ being due (unless another opt-in setting is
396 already in use).
397 +
398 [source,sql]
399 ----
400 UPDATE action_trigger.event_definition
401 SET opt_in_setting = circ.default_overdue_notices_enabled,
402 usr_field = usr
403 WHERE opt_in_setting IS NULL
404 AND hook = checkout.due
405 AND reactor = SendEmail;
406 ----
407 Evergreen admins who wish to use the new setting should run both of
408 the above queries. Admins who do not wish to use it, or who are
409 already using a custom opt-in setting of their own, do not need to
410 do anything.
411 [start=4]
412 . Perform a `VACUUM ANALYZE` of the following tables using `psql`:
413 +
414 [source,sql]
415 ----
416 VACUUM ANALYZE authority.full_rec;
417 VACUUM ANALYZE authority.simple_heading;
418 VACUUM ANALYZE metabib.identifier_field_entry;
419 VACUUM ANALYZE metabib.combined_identifier_field_entry;
420 VACUUM ANALYZE metabib.title_field_entry;
421 VACUUM ANALYZE metabib.combined_title_field_entry;
422 VACUUM ANALYZE metabib.author_field_entry;
423 VACUUM ANALYZE metabib.combined_author_field_entry;
424 VACUUM ANALYZE metabib.subject_field_entry;
425 VACUUM ANALYZE metabib.combined_subject_field_entry;
426 VACUUM ANALYZE metabib.keyword_field_entry;
427 VACUUM ANALYZE metabib.combined_keyword_field_entry;
428 VACUUM ANALYZE metabib.series_field_entry;
429 VACUUM ANALYZE metabib.combined_series_field_entry;
430 VACUUM ANALYZE metabib.real_full_rec;
431 ----
432
433 ==== New Seed Data ====
434
435
436 ===== New Permissions =====
437
438 * Administer geographic location services (`ADMIN_GEOLOCATION_SERVICES`)
439 * Administer library groups (`ADMIN_LIBRARY_GROUPS`)
440 * Manage batch (subscription) hold events (`MANAGE_HOLD_GROUPS`)
441 * Modify patron SSO settings (`SSO_ADMIN`)
442 * View geographic location services (`VIEW_GEOLOCATION_SERVICES`)
443
444 ===== New Global Flags =====
445
446 * Block the ability of expired user with the STAFF_LOGIN permission to log into Evergreen (`auth.block_expired_staff_login`)
447 * Offer use of geographic location services in the public catalog (`opac.use_geolocation`)
448
449 ===== New Internal Flags =====
450
451 * Maximum search result count at which spelling suggestions may be offered (`opac.did_you_mean.low_result_threshold`)
452
453 ===== New Library Settings =====
454
455 * Allow both Shibboleth and native OPAC authentication (`opac.login.shib_sso.allow_native`)
456 * Allow renewal request if renewal recipient privileges have expired (`circ.renew.expired_patron_allow`)
457 * Enable Holdings Sort by Geographic Proximity ('opac.holdings_sort_by_geographic_proximity`)
458 * Enable Shibboleth SSO for the OPAC (`opac.login.shib_sso.enable`)
459 * Evergreen SSO matchpoint (`opac.login.shib_sso.evergreen_matchpoint`)
460 * Geographic Location Service to use for Addresses (`opac.geographic_location_service_for_address`)
461 * Keyboard distance score weighting in OPAC spelling suggestions (`search.symspell.keyboard_distance.weight`)
462 * Log out of the Shibboleth IdP (`opac.login.shib_sso.logout`)
463 * Minimum required uses of a spelling suggestions that may be offered (`search.symspell.min_suggestion_use_threshold`)
464 * Pg_trgm score weighting in OPAC spelling suggestions (`search.symspell.pg_trgm.weight`)
465 * Randomize group hold order (`holds.subscription.randomize`)
466 * Shibboleth SSO Entity ID (`opac.login.shib_sso.entityId`)
467 * Shibboleth SSO matchpoint (`opac.login.shib_sso.shib_matchpoint`)
468 * Show Geographic Proximity in Miles (`opac.geographic_proximity_in_miles`)
469 * Soundex score weighting in OPAC spelling suggestions (`search.symspell.soundex.weight`)
470
471 ===== New Stock Action/Trigger Event Definitions =====
472
473 * Hold Group Hold Placed for Patron Email Notification
474
475 === New Features ===
476
477
478 ==== Administration ====
479
480
481
482 ===== Single Sign On (Shibboleth) Public Catalog integration =====
483
484 The Evergreen OPAC can now be used as a Service Provider (SP) in a
485 Single Sign On infrastructure.  This allows system administrators to
486 connect the Evergreen OPAC to an identity provider (IdP).  Such a scenario
487 offers significant usability improvements to patrons:
488
489 * They can use the same, IdP-provided login screen and credentials that they
490 use for other applications (SPs).
491 * If they have already logged into another participating application, when
492 they arrive at the Evergreen OPAC, they can be logged in without needing to
493 enter any credentials at all.
494 * Evergreen can be configured to offer a Single Sign-out service, where
495 logging out of the Evergreen OPAC will also log the user out of all other SPs.
496
497 It can also offer security benefits, if it enables a Shibboleth-enabled
498 Evergreen installation to move away from insecure autogenerated user passwords
499 (e.g. year of birth or last four digits of a phone number).
500
501 Different Org Units can use different IdPs.  This development also supports a
502 mix of Shibboleth and non-Shibboleth libraries.
503
504 Note that only the OPAC can be integrated with Shibboleth at this time; no such
505 support exists for the staff client, self-check, etc.
506
507 Also note that this development does not include automatic provisioning of
508 accounts.  At this time, matching accounts must already exist in Evergreen
509 for a patron to successfully authenticate into the OPAC via Single Sign On.
510
511 ====== Installation ======
512
513 Installing and configuring Shibboleth support is a complex project.  In
514 broad strokes, the process includes:
515
516 . Installing Shibboleth and the Shibboleth Apache module (`apt install libapache2-mod-shib2` on Debian and Ubuntu)
517 . Configuring Shibboleth, including:
518   * Setting up a certificate
519   * assigning an Entity ID
520   * getting metadata about the IdP from the IdP (perhaps "locally maintained
521   metadata", where an XML file from the IdP is copied into place on your
522   Evergreen server)
523   * Understanding what attributes the IdP will provide about your users,
524   and describing them in the `attribute-map.xml` file.
525 . Providing your Entity ID, information about possible bindings, and any
526 other requested information to the IdP administrator.  Much of this information
527 will be available at http://YOUR_EVERGREEN_DOMAIN/Shibboleth.sso/Metadata
528 . Configuring Apache, including:
529   * Enabling Shibboleth authentication in the `eg_vhost.conf` file
530   * (Optional) Using the new _sso_loc_ Apache variable to identify
531   which org unit should be used as the context location when fetching
532   Shibboleth-related library settings.
533 . As a user with the new `SSO_ADMIN` permission, configure Evergreen using
534 the Library Settings Editor, including:
535   * Enable Shibboleth SSO for the OPAC
536   * (Optional) Configure whether you will use SSO exclusively, or offer
537   patrons a choice between SSO and standard Evergreen authentication
538   * (Optional) Configure whether or not you will use Single Log Out
539   * (Optional) In scenarios where a single Evergreen installation is
540   connected to multiple IdPs, assign org units to the relevant IdPs,
541   referenced by the IdP's Entity Id.
542   * Of the attributes defined in `attribute-map.xml`, configure which one
543   should be used to match users in the Evergreen database.  This defaults
544   to uid.
545   * For the attribute you chose in the previous step, configure which
546   Evergreen field it should match against.  Options are usrname (default),
547   barcode, and email.
548
549 This https://www.youtube.com/watch?v=SvppXbpv-5k[video on the SAML protocol] can
550 be very helpful for introducing the basic concepts used in the installation and
551 configuration processes.
552
553
554 ==== Architecture ====
555
556
557 ===== Block Login of Expired Staff Accounts =====
558
559 Evergreen now has the ability to prevent staff users whose
560 accounts have expired from logging in. This is controlled
561 by the new global flag "auth.block_expired_staff_login", which
562 is not enabled by default. If that flag is turned on, accounts
563 that have the `STAFF_LOGIN` permission and whose expiration date
564 is in the past are prevented from logging into any Evergreen
565 interface, including the staff client, the public catalog, and SIP2.
566
567 It should be noted that ordinary patrons are allowed to log into
568 the public catalog if their circulation privileges have expired. This
569 feature prevents expired staff users from logging into the public catalog
570 (and all other Evergreen interfaces and APIs) outright in order to
571 prevent them from getting into the staff interface anyway by
572 creative use of Evergreen's authentication APIs.
573
574 Evergreen admins are advised to check the expiration status of staff
575 accounts before turning on the global flag, as otherwise it is
576 possible to lock staff users out unexpectedly. The following SQL
577 query will identify expired but otherwise un-deleted users that
578 would be blocked by turning on the flag:
579
580 [source,sql]
581 ----
582 SELECT DISTINCT usrname, expire_date
583 FROM actor.usr au, permission.usr_has_perm_at_all(id, 'STAFF_LOGIN')
584 WHERE active
585 AND NOT deleted
586 AND NOT barred
587 AND expire_date < NOW()
588 ----
589
590 Note that this query can take a long time to run in large databases
591 given the general way that it checks for users that have the
592 `STAFF_LOGIN` permission. Replacing the use of
593 `permission.usr_has_perm_at_all()` with a query on expired users
594 with profiles known to have the `STAFF_LOGIN` permission will
595 be much faster.
596
597
598
599
600 ===== Migration From GIST to GIN Indexes for Full Text Search =====
601
602 Evergreen now uses GIN indexes for full text search in PostgreSQL.
603 GIN indexes offer better performance than GIST.  For more information
604 on the differences in the two index types, please refer to the
605 https://www.postgresql.org/docs/current/textsearch-indexes.html[PostgreSQL
606 documentation].
607
608 An upgrade script is provided as part of this migration.  If you
609 upgrade normally from a previous release of Evergreen, this upgrade
610 script should run as part of the upgrade process.  The migration
611 script recommends that you run a `VACUUM ANALYZE` in PostgreSQL on the
612 tables that had the indexes changed.  The migration process does not
613 do this for you, so you should do it as soon as is convenient after
614 the upgrade.
615
616 ====== Updating Your Own Indexes ======
617
618 If you have added your own full text indexes of type GIST, and you
619 wish to migrate them to GIN, you may do so.  The following query, when
620 run in your Evergreen databsase after the migration from GIST to GIN,
621 will identify the remaining GIST indexes in your database:
622
623 [source,sql]
624 ----------------------------------------
625 SELECT schemaname, indexname
626 FROM pg_indexes
627 WHERE indexdef ~* 'gist';
628 ----------------------------------------
629
630 If the above query produces output, you can run the next query to
631 output a SQL script to migrate the remaining indexes from GIST to GIN:
632
633 [source,sql]
634 ----------------------------------------
635 SELECT 'DROP INDEX ' || schemaname || '.' || indexname || E';\n' ||
636        REGEXP_REPLACE(indexdef, 'gist', 'gin', 'i') || E';\n' ||
637        'VACUUM ANAlYZE ' || schemaname || '.' || tablename || ';'
638 FROM pg_indexes
639 WHERE indexdef ~* 'gist';
640 ----------------------------------------
641
642
643
644
645 ===== Removal of Custom Dojo Build =====
646
647 Evergreen had a
648 https://wiki.evergreen-ils.org/doku.php?id=scratchpad:random_magic_spells#custom_dojo_build[method
649 of making a custom build of the Dojo JavaScript library].  Following
650 this procedure could improve the load times for the OPAC and other
651 interfaces that use Dojo.  However, very few sites took advantage of
652 this process or even knew of its existence.
653
654 As a part of the process, an `openils_dojo.js` file was built and
655 installed along with the other Dojo files.  Evergreen had many
656 references to load this optional file.  For the majority of sites that
657 did not use this custom Dojo process, this file did not exist.
658 Browsers would spend time and resources requesting this nonexistent
659 file.  This situation also contributed noise to the Apache logs with
660 the 404 errors from these requests.
661
662 In keeping with the goal of eliminating Dojo from Evergreen, all
663 references to `openils_dojo.js` have been removed from the OPAC and
664 other files.  The profile script required to make the custom Dojo
665 build has also been removed.
666
667
668
669
670
671 ====== Cataloging ======
672
673
674
675 ===== Czech language records in sample data =====
676
677 This release adds 7 Czech-language MARC records to the
678 sample data set (also known as Concerto data set).
679
680
681
682
683
684 ===== Publisher Catalog Display Includes 264 Tag =====
685
686 Publisher values are now extracted for display from tags 260 OR 264.
687
688 ====== Upgrade Notes ======
689
690 A partial reingest is required to extract the new publisher data for display.
691 This query may be long-running.
692
693 [source,sql]
694 --------------------------------------------------------------------------
695 WITH affected_bibs AS (
696     SELECT DISTINCT(bre.id) AS id
697     FROM biblio.record_entry bre
698     JOIN metabib.real_full_rec mrfr
699     ON (mrfr.record = bre.id AND mrfr.tag = '264')
700     WHERE NOT bre.deleted
701 )
702 SELECT metabib.reingest_metabib_field_entries(id, TRUE, FALSE, TRUE, TRUE)
703 FROM affected_bibs;
704 --------------------------------------------------------------------------
705
706
707
708
709
710 ==== Circulation ====
711
712
713
714 ===== Hold Groups =====
715
716 This feature allows staff to add multiple users to a named hold group
717 bucket and place title-level holds for a record for that entire set of users.
718 Users can be added to such a hold group bucket from either the patron
719 search result interface, via the Add to Bucket dropdown, or through a dedicated
720 Hold Group interface available from the Circulation menu.  Adding new
721 patrons to a hold group bucket will require staff have the PLACE_HOLD
722 permission.
723
724 Holds can be placed for the users in a hold group bucket either directly from
725 the normal staff-place hold interface in the embedded OPAC, or by supplying the
726 record ID within the hold group bucket interface.  In the latter case, the
727 list of users for which a hold was attempted but failed to be placed can be
728 downloaded by staff in order to address any placement issues.  Placing a
729 hold group bucket hold will requires staff have the MANAGE_HOLD_GROUPS
730 permission, which is new with this development.
731
732 In the event of a mistaken hold group hold, staff with the MANAGE_HOLD_GROUPS
733 permission will have the ability to cancel all unfulfilled holds created as
734 part of a hold group event.
735
736 A link to the title's hold interface is available from the list of hold group
737 events in the dedicated hold group interface.
738
739
740
741
742 ===== Scan Item as Missing Pieces Angular Port =====
743
744 The 'Scan Item As Missing Pieces' interface is now an Angular interface.
745 The functionality is the same, but the interface displays more details
746 on the item in question (title/author/callnum) before proceeding with the 
747 missing pieces process.
748
749
750
751
752 ===== Opt-In Setting for Overdue and Predue Emails =====
753
754 The "Receive Overdue and Courtesy Emails" user setting permits users to
755 control whether they receive email notifications about overdue items.
756
757 To use the setting, modify any action trigger event definitions which
758 send emails about overdue items, setting the "Opt In Setting" to
759 "circ.default_overdue_notices_enabled" and the "User Field" to "usr".
760 You can accomplish this by running the following query in your database:
761
762 ----
763 UPDATE action_trigger.event_definition
764 SET opt_in_setting = 'circ.default_overdue_notices_enabled',
765     usr_field = 'usr'
766 WHERE opt_in_setting IS NULL
767     AND hook = 'checkout.due'
768     AND reactor = 'SendEmail';
769 ----
770
771 Once this is done, the patron registration screen in the staff client
772 will show a "Receive Overdue and Courtesy Emails" checkbox, which will
773 be checked by default.  To ensure that existing patrons continue to
774 recieve email notifications, you will need to add the user setting to
775 their accounts, which you can do by running the following query in your
776 database:
777
778 ----
779 INSERT INTO actor.usr_setting (usr, name, value)
780 SELECT
781     id,
782     'circ.default_overdue_notices_enabled',
783     'true'
784 FROM actor.usr;
785 ----
786
787
788
789
790
791
792 ===== Allow Circulation Renewal for Expired Patrons =====
793
794 The "Allow renewal request if renewal recipient privileges have
795 expired" organizational unit setting can be set to true to permit
796 expired patrons to renew circulations.  Allowing renewals for expired
797 patrons reduces the number of auto-renewal failures and assumes that a
798 patron with items out eligible for renewals has not been expired for
799 very long and that such patrons are likely to renew their privileges
800 in a timely manner.
801
802 The setting is referenced based on the current circulation library for
803 the renewal.  It takes into account the global flags for "Circ: Use
804 original circulation library on desk renewal instead of the
805 workstation library" and "Circ: Use original circulation library on
806 opac renewal instead of user home library."
807
808
809
810
811 ==== OPAC ====
812
813
814
815 ===== Consistent Ordering for Carousels =====
816
817 Carousel ordering is now stable and predictable:
818
819  * Newly Cataloged Item and Newest Items by Shelving Location carousels are ordered from most recently cataloged to least recently cataloged.
820  * Recently Returned Item carousels is ordered is from most recently returned to least recently returned.
821  * Top Circulated Items carousels is ordered is from most circulated to least circulated.
822  * Manual carousels (as of now, without the ability to adjust the position of items) are in the order they are added to the backing bucket.
823   ** Emptying and refilling the bucket allows reordering.
824
825
826
827
828 ===== Default Public Catalog to the Bootstrap Skin =====
829
830 The public catalog now defaults to the Bootstrap skin rather than the
831 legacy TPAC skin.
832
833 Bootstrap is now the default in order to encourage more testing, but
834 users should be aware of the following 
835 https://bugs.launchpad.net/evergreen/+bugs?field.tag=bootstrap-blocker[issues];
836 certain specific functionality is available only in the TPAC skin.
837
838 The TPAC skin remains available for use, but current Evergreen users
839 should start actively considering migrating to the Bootstrap skin.
840
841 In order to continue to use the TPAC skin, comment out the following
842 line in `eg_vhost.conf`
843
844 [source,conf]
845 -------------------
846 PerlAddVar OILSWebTemplatePath "@localstatedir@/templates-bootstrap" # Comment this line out to use the legacy TPAC
847 -------------------
848
849
850
851 ===== Did You Mean? Single word search suggestions =====
852
853 This feature is the first in the series to add native search suggestions
854 to the Evergreen search logic.  A significant portion of the code is
855 dedicated to infrastructure that will be used in later enhancements to
856 the functionality.
857
858 ====== Overview ======
859
860 When searching the public or staff catalog in a single search class (title,
861 author, subject, series, identifier, or keyword) with a single search term
862 users can be presented with alternate search terms.  Depending on how the
863 instance has been configured, suggestions may be provided for only
864 misspelled words (as defined by existence in the bibliographic corpus),
865 terms that are spelled properly but occur very few times, or on every
866 single-term search.
867
868 ====== Settings ======
869
870 The following new library settings control the behavior of the suggestions:
871
872 * Maximum search result count at which spelling suggestions may be offered
873 * Minimum required uses of a spelling suggestions that may be offered
874 * Maximum number of spelling suggestions that may be offered
875 * Pg_trgm score weighting in OPAC spelling suggestions
876 * Soundex score weighting in OPAC spelling suggestions
877 * QWERTY Keyboard similarity score weighting in OPAC spelling suggestions 
878
879 There are also two new internal flags:
880
881 * symspell.prefix_length
882 * symspell.max_edit_distance
883
884 ====== Upgrading ======
885
886 This feature requires the addition of new Perl module dependencies.  Please
887 run the app server and database server dependency Makefiles before applying
888 the database and code updates.
889
890 At the end of the database upgrade script, the administrator is presented
891 with a set of instructions necessary to precompute the suggestion
892 dictionary based on the current bibliographic database.  The first half
893 of this procedure can be started even before the upgrade begins, as soon
894 as the Evergreen database is no longer accessible to users that might
895 cause changes to bibliographic records.  For very large instances, this
896 dictionary generation can take several hours and needs to be run on a
897 server with significant RAM and CPU resources. Please look at the upgrade
898 script before beginning an upgrade and plan this dictionary creation as
899 part of the overall upgrade procedure.
900
901 Given a server, such as a database server with 64G of RAM, you should
902 be able to run all six of the shell commands in parallel in screen
903 sessions or with a tool such as GNU parallel.
904
905 These commands invoke a script that will generate a class-specific sub-set
906 of the dictionary, and can be used to recreate the dictionary if
907 necessary in the future.
908
909
910
911
912 ===== Sort Holdings by Geographical Proximity =====
913
914 This functionality integrates 3rd party geographic lookup services to allow patrons
915 to enter an address on the record details page in the OPAC and sort the holdings
916 for that record based on proximity of their circulating libraries to the entered
917 address. To support this, latitude and longitude coordinates may be associated with
918 each org unit. Care is given to not log or leak patron provided addresses or the
919 context in which they are used.
920
921 Requires the following Perl modules: `Geo::Coder::Free`, `Geo::Coder::Google`, and `Geo::Coder::OSM`
922
923 Configuration instructions:
924
925  . Register an account with a third party geographic location service and copy the API Key.
926  . Configure the Geographic Location Service (Server Administration > Geographic Location Service > New Geographic Location Service).
927  . Enable Global Flag by navigating to Server Administration → Global Flags and locating the `opac.use_geolocation` flag. (Any entry in the Value field will be ignored.)
928  . Enable Library Setting: Enable Holdings Sort by Geographic Proximity (set to True).
929  . Enable Library Setting: Geographic Location Service to use for Addresses (use the value from the Name field entered in the Geographic Location Services Configuration entry).
930  . Enable Library Setting: Show Geographic Proximity in Miles (if not set, it will default to kilometers).
931  . Set the geographic coordinates for each location by navigating to Server Administration > Organizational Units. Select the org unit, switch to the Physical Address subtab and either manually enter Latitude and Longitude values or use the Get Coordinate button. 
932
933 Two new permissions, VIEW_GEOLOCATION_SERVICES and ADMIN_GEOLOCATION_SERVICES, control viewing and editing values in the Geolocation Location Services interface. They are added to the System Administrator and Global Administrator permissions groups by default.
934
935
936 ===== Library Groups =====
937
938 The Library Groups search feature revives a longstanding internal
939 concept in Evergreen called "Lassos," which allows an administrator
940 to define a group of organizational units for searching outside of
941 the standard organizational unit hierarchy.
942
943 Use case examples include creating a group of law or science
944 libraries within a university consortium, or grouping all school
945 libraries together within a mixed school/public library consortium.
946
947 Searches can be restricted to a particular Library Group from the
948 library selector in the public catalog basic search page and from
949 the new "Where" selector on the advanced search page.
950
951 Restricting catalog searches by Library Group is available only
952 in the public catalog and "traditional" staff catalog; it is not
953 available in the Angular staff catalog.
954
955 This feature adds a new permission, `ADMIN_LIBRARY_GROUPS`, that
956 allows updating Library Groups and Library Group Maps. This permission
957 is not associated with any profiles by default, and replaces
958 the `CREATE_LASSO`, `UPDATE_LASSO`, and `DELETE_LASSO` permissions. 
959
960 To define new library groups, use the Server Administration Library
961 Groups and Library Group Maps pages. An autogen and a reload of
962 Apache should be performed after making changes to Library Groups.
963
964
965 ===== Easier Styling of Public Catalog Logo and Cart Images =====
966
967 Evergreen now has IDs associated with logos and cart images in the TPAC and Bootstrap OPACs to aid in customization.  Images are as follows:
968
969 * small Evergreen logo in navigation bar is 'topnav_logo_image'
970 * the large Evergreen logo in the center of the splash page of the TPAC is 'homesearch_main_logo_image' 
971 * the cart icon is 'cart_icon_image' 
972 * the small logo in the footer is 'footer_logo_image'
973
974 The Bootstrap OPAC does not have a homesearch logo icon as it is added in the background by CSS and can be directly styled through the CSS.
975
976
977
978
979 ===== Easier TPAC Customization via colors.tt2 =====
980
981 Twelve new colors for TPAC have been added to the colors.tt2 file as well as 
982 having corresponding changes to the style.css.tt2 file. These use 
983 descriptive rather than abstract names. These changes help avoid 
984 situations were unreadable values are placed on top of each other 
985 and where different values are wanted for elements that only refernece 
986 a single color previously. Guidelines are below for setting values that 
987 correspond to the previous values used in the colors.tt2 file.  
988 For more diverse customizations the OPAC should be reviewed before 
989 a production load.
990
991 * 'footer' is used for the background color of the footer. It replaces the 
992 'primary'.
993 * 'footer_text' sets the text color in the footer and replaces 'text_invert' 
994 * 'header' sets the background of the header and replaces 'primary_fade'
995 * 'header_text' sets the color of text in the header and replaces 'text_invert'
996 * 'header_links_bar' sets the background of the links bar that separates the 
997 header on the front page of the opac and replaces 'background_invert'
998 * 'header_links_text' sets the text on the links bar and replaces 'text_invert'
999 * 'header_links_text_hover' set the hover text color on the links bar and 
1000 replaces 'primary'
1001 * 'opac_button' sets the background color of the My Opac button and replaces 
1002 'control'
1003 * 'opac_button_text' explicitly sets the text color on the My Opac button  
1004 * 'opac_button_hover' sets the background color of the My Opac button when the 
1005 mouse is hovering over it and replaces 'primary'
1006 * 'opac_button_hover_text' sets the text color of the My Opac button when the 
1007 mouse is hovering over it and replaces 'text invert'
1008
1009 Note that is patch is primarily meant for users who wish to continue
1010 using TPAC rather than the Bootstrap skin for a while; new Evergreen
1011 users are advised to use the now-default Bootstrap skin.
1012
1013
1014
1015 ===== Configurable Read More Accordion for OPAC Search and Record View (TPAC) =====
1016
1017 ====== Read More Button ======
1018
1019 Public catalog record fields (in the TPAC skin only) now truncate
1020 themselves based on a configurable amount of characters.  The full
1021 field may be displayed upon hitting a (Read More) link, which will
1022 then toggle into a (Read Less) link to re-truncate the field.
1023
1024 ====== Configuration ======
1025
1026 `Open-ILS/src/templates/opac/parts/config.tt2` contains two new
1027 configuration variables:
1028
1029
1030 * `truncate_contents` (default: 1)
1031 * `contents_truncate_length` (default: 50).
1032
1033 Setting `truncate_contents` to 0 will disable the read more
1034 functionality.  The variable `contents_truncate_length` corresponds
1035 to the amount of characters to display before truncating the text.
1036 If `contents_truncate_length` is removed, it will default to 100.
1037
1038 Additional configuration for note fields can be made in
1039 `Open-ILS/src/templates/opac/parts/record/contents.tt2`, allowing a
1040 `trunc_length` variable for each individual type of note, which will
1041 override `contents_truncate_length` for that specific
1042 type of note.
1043
1044
1045 ====== Adding Read More Functionality to further fields ======
1046
1047 To add Read More functionality to any additional fields, you may use
1048 the macro `accordion()`, defined in `misc_util.tt2`. It can take three
1049 variables: `str`, `trunc_length`, and `element`. `str` corresponds to
1050 the string you want to apply it to, `trunc_length` (optional) will
1051 override `contents_truncate_length` if supplied, and `element`
1052 (optional) provides an alternative HTML element to look at for the
1053 truncation process (useful in situations such as the Authors and Cast
1054 fields, where each field is processed individually, but needs to be
1055 treated as a single field).
1056
1057
1058
1059
1060 ==== Reports ====
1061
1062
1063 ===== Reports Scheduler Improvements =====
1064
1065 Previously, the reports scheduler allowed duplicated reports
1066 under certain circumstances.  A uniqueness constraint now
1067 disallows this without adversely affecting the reports process.
1068
1069
1070
1071 ==== Miscellaneous ====
1072
1073 * The 'Create Reservation' form in the Booking module now includes
1074   an option to search for the patron by attributes other than just
1075   their barcode. (https://bugs.launchpad.net/evergreen/+bug/1816655[Bug 1816655])
1076 * The form to add a user to a Course now includes an option to search
1077   for the patron by attributes other than just their barcode. (https://bugs.launchpad.net/evergreen/+bug/1907921[Bug 1907921])
1078 * For consistency with the menu action Cataloging => Retrieve Record by
1079   TCN Value, the staff catalog Numeric Search => TCN search now includes
1080   deleted bib records. (https://bugs.launchpad.net/evergreen/+bug/1881650[Bug 1881650])
1081 * Add a new command-line script, `overdrive-api-checker.pl`, for testing
1082   the OverDrive API. (https://bugs.launchpad.net/evergreen/+bug/1696825[Bug 1696825])
1083 * The Shelving Location Groups editor is ported to Angular. (https://bugs.launchpad.net/evergreen/+bug/1852321[Bug 1852321])
1084 * The staff catalog now has the ability to add all search results (up to
1085   1,000 titles) to the basket in one fell swoop. (https://bugs.launchpad.net/evergreen/+bug/1885179[Bug 1885179])
1086 * Add 'All Videos' as a search format. (https://bugs.launchpad.net/evergreen/+bug/1917826[Bug 1917826])
1087 * Server-side print templates can now have print contexts set. (https://bugs.launchpad.net/evergreen/+bug/1891550[Bug 1891550])
1088 * Add ability to set the print context for a print template to "No-Print"
1089   to specify, well, that a given receipt should never be printed. (https://bugs.launchpad.net/evergreen/+bug/1891550[Bug 1891550])
1090 * Add Check Number as an available column to the Bill History grids. (https://bugs.launchpad.net/evergreen/+bug/1705693[Bug 1705693])
1091 * Adds a new control to the item table in the TPAC public catalog only to
1092   specify that only items that are available should be displayed. (https://bugs.launchpad.net/evergreen/+bug/1853006[Bug 1853006])
1093 * Adds warning before deleting bib records with holds (https://bugs.launchpad.net/evergreen/+bug/1398107[Bug 1398107])
1094 * Library scope on (Angular) Administration pages now defaults to workstation location rather than consortium (https://bugs.launchpad.net/evergreen/+bug/1873322[Bug 173322])
1095 * Pending users now set last four digits of phone number as password when library setting is enabled (https://bugs.launchpad.net/evergreen/+bug/1887852[Bug 1887852])
1096
1097 === Acknowledgments ===
1098
1099 The Evergreen project would like to acknowledge the following
1100 organizations that commissioned developments in this release of
1101 Evergreen:
1102
1103 * BC Libraries Cooperative
1104 * Community Library (Sunbury)
1105 * Consortium of Ohio Libraries (COOL)
1106 * Evergreen Community Development Initiative
1107 * Evergreen Indiana
1108 * Georgia PINES
1109 * Linn-Benton Community College
1110 * Pennsylvania Integrated Library System (PaILS)
1111
1112
1113 We would also like to thank the following individuals who contributed
1114 code, translations, documentation, patches, and tests to this release of
1115 Evergreen:
1116
1117 * John Amundson
1118 * Zavier Banks
1119 * Felicia Beaudry
1120 * Jason Boyer
1121 * Dan Briem
1122 * Andrea Buntz Neiman
1123 * Christine Burns
1124 * Galen Charlton
1125 * Garry Collum
1126 * Eva Cerniňáková
1127 * Dawn Dale
1128 * Elizabeth Davis
1129 * Jeff Davis
1130 * Martha Driscoll
1131 * Bill Erickson
1132 * Jason Etheridge
1133 * Ruth Frasur
1134 * Blake Graham-Henderson
1135 * Katie Greenleaf Martin
1136 * Rogan Hamby
1137 * Elaine Hardy
1138 * Kyle Huckins
1139 * Angela Kilsdonk
1140 * Tiffany Little
1141 * Mary Llewellyn
1142 * Terran McCanna
1143 * Chauncey Montgomery
1144 * Gina Monti
1145 * Michele Morgan
1146 * Carmen Oleskevich
1147 * Jennifer Pringle
1148 * Mike Risher
1149 * Mike Rylander
1150 * Jane Sandberg
1151 * Chris Sharp
1152 * Ben Shum
1153 * Remington Steed
1154 * Jason Stephenson
1155 * Jennifer Weston
1156 * Beth Willis
1157
1158 We also thank the following organizations whose employees contributed
1159 patches:
1160
1161 * BC Libraries Cooperative
1162 * Calvin College
1163 * Catalyte
1164 * CW MARS
1165 * Equinox Open Library Initiative
1166 * Georgia Public Library Service
1167 * Kenton County Public Library
1168 * King County Library System
1169 * Linn-Benton Community College
1170 * MOBIUS
1171 * NOBLE
1172 * Westchester Library System
1173
1174 We regret any omissions.  If a contributor has been inadvertently
1175 missed, please open a bug at http://bugs.launchpad.net/evergreen/
1176 with a correction.
1177