From: Chris Sharp Date: Wed, 12 Aug 2020 00:30:09 +0000 (-0400) Subject: Bumping version numbers, adding Upgrade Script and Changelog X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=c8e6e2432ebeeab24da1f84f6c44f6e48cfd50d4;p=working%2FEvergreen.git Bumping version numbers, adding Upgrade Script and Changelog Signed-off-by: Chris Sharp --- diff --git a/ChangeLog b/ChangeLog index 1f72b2c73e..cd4c9ada08 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,1409 @@ -Evergreen doesn't keep a GNU-style ChangeLog except in release tarballs. -Those seeking a change log are encouraged to run 'git log -v', or read -it online at: http://git.evergreen-ils.org/?p=Evergreen.git;a=log +commit ce4422e352852935c658f69059ea375a5c96ff6d +Author: Chris Sharp +Date: Tue Aug 11 20:28:32 2020 -0400 + + Updating upgrade docs for 3.4.4. + + Signed-off-by: Chris Sharp + +17 16 docs/installation/server_upgrade.adoc + +commit 4737705238e6f1ece8fe012c8338ca2d0989f2d6 +Author: Chris Sharp +Date: Tue Aug 11 20:28:26 2020 -0400 + + Bumping Perl version string for 3.4.4 + + Signed-off-by: Chris Sharp + +1 1 Open-ILS/src/perlmods/lib/OpenILS.pm + +commit 310793468727887a164c852b88b5b670972e2769 +Author: Jane Sandberg +Date: Tue Aug 11 16:09:51 2020 -0700 + + Docs: asciidoc syntax correction for 3.4 release notes + + Signed-off-by: Jane Sandberg + +3 3 docs/RELEASE_NOTES_3_4.adoc + +commit efce227c3ecfcd51f52b4922f35f3e092e658fc5 +Author: Jane Sandberg +Date: Tue Aug 11 13:10:44 2020 -0700 + + Docs: tweaks to 3.4.4 release notes + + Signed-off-by: Jane Sandberg + +31 1 docs/RELEASE_NOTES_3_4.adoc + +commit 3d71e0808bc69a137c5a00a92830c982a18158ef +Author: Jane Sandberg +Date: Tue Aug 11 11:24:46 2020 -0700 + + Docs: 3.4.4 release notes + + Signed-off-by: Jane Sandberg + +160 0 docs/RELEASE_NOTES_3_4.adoc + +commit 6e0886e75789aaf40a46e7e7d2e4d61f6d88200b +Author: Michele Morgan +Date: Tue Aug 27 08:55:06 2019 -0400 + + LP1811466 Add fields to holdings editor column pickers + + Adds item fields creator, editor and last edit date to the working and + completed grids in the holdings editor. + + Signed-off-by: Michele Morgan + Signed-off-by: Rogan Hamby + Signed-off-by: Jane Sandberg + +9 3 Open-ILS/src/templates/staff/cat/volcopy/t_edit.tt2 +1 1 Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js + +commit a199e3b5ef2e1c765a88c3427d8c53e8055e407e +Author: Galen Charlton +Date: Mon Aug 3 17:14:12 2020 -0400 + + LP#1839369: (follow-up) tweak button and styles + + - Change the button text from "Search" to "Search Catalog" + - adjust the styling on the AngularJS side to cuddle the + button with the search input + - standardize the placeholder text as "Search for..." + + Signed-off-by: Galen Charlton + Signed-off-by: Jane Sandberg + +1 1 Open-ILS/src/eg2/src/app/staff/splash.component.html +9 9 Open-ILS/src/templates/staff/t_splash.tt2 + +commit 6a3a03751cffbe7409ac5967eec2df6923f71f76 +Author: Terran McCanna +Date: Tue Oct 22 16:16:35 2019 -0400 + + LP#1839369 Accessibility for Search Box + + This adds an accessible label to the Search box on the splash + page of the staff client as well as to the Angular version of + the splash page. + + Signed-off-by: Terran McCanna + Signed-off-by: Galen Charlton + Signed-off-by: Jane Sandberg + +2 1 Open-ILS/src/eg2/src/app/staff/splash.component.html +1 0 Open-ILS/src/templates/staff/t_splash.tt2 + +commit 5a35074c9479cd20503f9543221d11c477446a96 +Author: Bill Erickson +Date: Wed Mar 18 12:41:38 2020 -0400 + + LP1867834 Staffcat clear basket on logout + + Tell the browser/local store service to treat the staff catalog basket + cache key as a "login item", meaning it should be cleared upon logout. + + Signed-off-by: Bill Erickson + Signed-off-by: Jane Sandberg + Signed-off-by: Galen Charlton + +3 0 Open-ILS/src/eg2/src/app/share/catalog/basket.service.ts + +commit f9491973457baf525d8165f6ff8d981e222b4cac +Author: Galen Charlton +Date: Tue Jul 28 11:09:45 2020 -0400 + + LP#1889251: make call number affix sort keys read-only + + This patch makes the call number prefix and suffix label sort + key fields read-only on their respective Server Administration + pages, as any values that a user would try to set for them + would get overwritten by a database trigger. + + To test + ------- + [1] Apply the patch. + [2] Go to Server Administration -> Call Number Prefixes (or Suffixes) + and attempt create and edit new affixes. + [3] Verify that the label sort key is a read-only display field on the + edit modal. + + Signed-off-by: Galen Charlton + Signed-off-by: Rogan Hamby + +10 0 Open-ILS/src/eg2/src/app/staff/admin/server/routing.module.ts + +commit bbb14ec1dba963cb808e72ef7d0564902dce7424 +Author: Josh Stompro +Date: Mon Mar 4 11:16:56 2019 -0600 + + LP#1674364 - Use database bib id for cover art lookup + + Export the 901c as the URN:BIBID identifier to allow the + ATOM2XHTML.xsl to construct a cover art img link using it. + + Testing Notes: + + I used a bookbag to test this out. + 1. Create a public bookbag of items and grab the bookbag id. + 2. View the source of these links on your system to see the current output. + /opac/extras/feed/bookbag/atom/ + /opac/extras/feed/bookbag/html-full/ + Make note that the jacket img link uses the ISBN to lookup cover art. + + Make changes. + 1. Restart supercat to re-load xsl transfor files. + osrf_control -l --service open-ils.supercat --restart + 2. View the source and output of these links on your system to see the changes. + /opac/extras/feed/bookbag/atom/ + /opac/extras/feed/bookbag/html-full/ + The cover art images should show up now in the html-full, and the + URN:BIBID: identifier should be populated in the atom file. + + Signed-off-by: Josh Stompro + Signed-off-by: Terran McCanna + Signed-off-by: Galen Charlton + +3 17 Open-ILS/xsl/ATOM2XHTML.xsl +9 0 Open-ILS/xsl/MARC21slim2ATOM.xsl + +commit 657acd544dd51a6ea81681bd1961c8514c530afb +Author: Galen Charlton +Date: Mon Aug 3 17:38:48 2020 -0400 + + LP#1731370: (follow-up) fix a typo that was causing console noise + + Signed-off-by: Galen Charlton + +1 1 Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js + +commit d973477eaac04e7f7142cf1c107da37670ddfc82 +Author: Galen Charlton +Date: Mon Aug 3 17:31:32 2020 -0400 + + LP#1761142: (follow-up) tweak field-change style + + [1] Ensure that the border is displayed. + [2] Change the border color to one that has more contrast + as compared to the bg-success background color. + + Signed-off-by: Galen Charlton + +1 1 Open-ILS/src/templates/staff/cat/volcopy/t_attr_edit.tt2 + +commit 22e866890d1e4e70359a627d15d1f77292a18caf +Author: a. bellenir +Date: Thu Mar 28 12:26:37 2019 -0400 + + LP1761142 Volume Copy Editor Changed Fields Hard to Discern + + Add a changed_fields object to the scope and update it as copies are + changed. The function field_changed(field) determines if any of the + selected copies have altered the given field. finally, a CSS class, + field-changed, is applied to add a green border to fields whose values + have been modified. + + Signed-off-by: a. bellenir + Signed-off-by: Ruth Frasur + Signed-off-by: Galen Charlton + +21 18 Open-ILS/src/templates/staff/cat/volcopy/t_attr_edit.tt2 +11 0 Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js + +commit 95b9fb7f9f12bbfbb2246857ca5c6a5b04f016d0 +Author: Josh Stompro +Date: Tue Jan 28 10:04:02 2020 -0600 + + LP#1783793 - Suspend holds when activation date set in web client angularjs + + 1. Modify Dates popup changed to not allow picking dates in the past for hold + activation date both in the date picker, and if typed in manually. If a + date in the past is typed in, it is changed to today's date and an alert + message is displayed. The date picker just won't allow past days to be + selected. The alert message remains until a date in the future is selected. + + 2. Suspend holds when the activation date is set and saved. + + 3. Adds a note about the fact that the hold will be suspended when the hold + activation date is selected for editing. This makes the behavior clear so + staff don't have to figure it out by trial and error. + + 4. Updates several sr-only (Screen Reader Only) labels in the holds date popup + template that were set to the wrong values. The file was copied from the hold + notification popup and the screen reader descriptions were left unchanged from + those values. + + Signed-off-by: Josh Stompro + Signed-off-by: Terran McCanna + Signed-off-by: Galen Charlton + +9 4 Open-ILS/src/templates/staff/circ/share/t_hold_dates.tt2 +17 1 Open-ILS/web/js/ui/default/staff/circ/services/holds.js + +commit ffdf63e9f79d8ae85cf7dfd2a6d43b837f4f9ae6 +Author: Mike Rylander +Date: Tue Jun 30 15:33:23 2020 -0400 + + LP#1885759: Count months and quarters across year boundaries + + We need to add year-multiples of months or quarters when using the + months_ago or quarters_ago transforms in the reporter. + + Signed-off-by: Mike Rylander + Signed-off-by: Rogan Hamby + Signed-off-by: Galen Charlton + +4 2 Open-ILS/src/perlmods/lib/OpenILS/Reporter/SQLBuilder.pm + +commit 70856ddb9fcccc997677eb64890ca2e8713f4fe5 +Author: Jeff Davis +Date: Tue Oct 8 16:00:12 2019 -0700 + + LP#1847343: fix Exclude Electronic Resources checkbox when locale picker is enabled + + Signed-off-by: Jeff Davis + Signed-off-by: Jane Sandberg + Signed-off-by: Galen Charlton + +2 4 Open-ILS/web/js/ui/default/opac/simple.js + +commit 99ebe4e7df8fce5fccaf3707bb489ce5fb1b4a69 +Author: Jane Sandberg +Date: Fri Oct 25 21:11:49 2019 -0700 + + LP #1717996 (follow-up) Change label for shareable user buckets + + Signed-off-by: Jane Sandberg + Signed-off-by: Jason Boyer + +2 1 Open-ILS/src/templates/staff/circ/patron/bucket/t_bucket_create.tt2 +2 1 Open-ILS/src/templates/staff/circ/patron/bucket/t_bucket_edit.tt2 + +commit a00d9db7cbdf5fc1c857c2f52465d1840bd94525 +Author: Tiffany Little +Date: Mon Oct 21 15:00:30 2019 -0400 + + LP #1717996 Change label for shareable buckets + + Changes 'publicly visible' label on buckets and also adds a tooltip with an explanation. Also makes sure that clicking the tooltip does not check the checkbox automatically. + + Signed-off-by: Tiffany Little + Signed-off-by: Jane Sandberg + Signed-off-by: Jason Boyer + +2 1 Open-ILS/src/templates/staff/cat/bucket/share/t_bucket_create.tt2 +2 1 Open-ILS/src/templates/staff/cat/bucket/share/t_bucket_edit.tt2 + +commit 9175916ae1b709e85d19a18dfc4c2fb091d53b51 +Author: Jason Boyer +Date: Fri Jul 31 12:39:23 2020 -0400 + + LP1842431: Add a release note + + Signed-off-by: Jason Boyer + +11 0 docs/RELEASE_NOTES_NEXT/Administration/autorenewal_action_trigger_result_code.adoc + create mode 100644 docs/RELEASE_NOTES_NEXT/Administration/autorenewal_action_trigger_result_code.adoc + +commit e39a35e5ec7c1be4b16b0b36744f0bdf1778e517 +Author: Jason Boyer +Date: Fri Jul 31 11:10:24 2020 -0400 + + LP1842431: Remove redundant description field + + This branch brings about a good change, but I think having reason + and description be identical in the case of a failure and blank / + 'SUCCESS' in the case of, well, success, is redundant and potentially + confusing. Also, if it's not used in the default template I doubt + anyone ever realizes it's there. :) Template editors can use + is_renewed to decide if they want to display success as a result + and that way the capitalization won't look like THE EIGHTIES have come + back in fashion again. :D + + Signed-off-by: Jason Boyer + Signed-off-by: Jason Stephenson + +0 1 Open-ILS/src/perlmods/lib/OpenILS/Application/Trigger/Reactor/Circ/AutoRenew.pm + +commit ec7db5a9bcfddec860b48f5112abc79f63197468 +Author: Jason Stephenson +Date: Fri Sep 6 11:09:18 2019 -0400 + + LP#1842431 Split textcode and desc fields for AutoRenew user data + + Split the event textcode and desc fields into textcode and description + fields, respectively, in the AutoRenew reactor's user data, but also + leave the reason field alone. This permits sites to show only the + description of the event if they want. + + Signed-off-by: Jason Stephenson + Signed-off-by: Michele Morgan + Signed-off-by: Jason Boyer + +2 0 Open-ILS/src/perlmods/lib/OpenILS/Application/Trigger/Reactor/Circ/AutoRenew.pm + +commit d47ba05830155323028e935c1be3eee6a8f0d1a6 +Author: Michele Morgan +Date: Thu Sep 12 16:30:47 2019 -0400 + + LP#1842431 Make renewal failure reason more appropriate for patron notifications + + Changes the failure reason for the autorenewal to include only the desc, + Removes the textcode of the event, which shouldn't be included in a patron notice. + + Signed-off-by: Michele Morgan + Signed-off-by: Jason Stephenson + Signed-off-by: Jason Boyer + +1 1 Open-ILS/src/perlmods/lib/OpenILS/Application/Trigger/Reactor/Circ/AutoRenew.pm + +commit d4185338f2726761d479e77765038189c4867f2e +Author: Jane Sandberg +Date: Mon Oct 8 17:24:20 2018 -0700 + + LP1731370: Distinguishing new copies and volumes with aditional means (WCAG 1.4.1) + + Signed-off-by: Jane Sandberg + Signed-off-by: Elaine Hardy + Signed-off-by: Galen Charlton + +2 0 Open-ILS/src/templates/staff/cat/volcopy/index.tt2 +1 2 Open-ILS/src/templates/staff/css/cat.css.tt2 +6 4 Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js + +commit 745b43a9118dc9bee802bb8cf2f773da9a5ca394 +Author: Jason Etheridge +Date: Wed Sep 12 08:10:32 2018 -0400 + + lp1731370 CSS styling for new items and volumes + + previous commit just handled volumes, this handles copies + + Signed-off-by: Jason Etheridge + Signed-off-by: Elaine Hardy + Signed-off-by: Galen Charlton + +1 0 Open-ILS/src/templates/staff/css/cat.css.tt2 +3 1 Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js + +commit 017cce2a57304a8f473730a23b643d891bb64552 +Author: Jason Etheridge +Date: Wed Sep 5 09:13:49 2018 -0400 + + lp1731370 CSS styling for new items and volumes + + in vol/copy editor + + Signed-off-by: Jason Etheridge + Signed-off-by: Elaine Hardy + Signed-off-by: Galen Charlton + +3 1 Open-ILS/src/templates/staff/css/cat.css.tt2 +1 1 Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js + +commit 8c8aafcbe26d24dd549015afdd5cbecaefb5de65 +Author: Josh Stompro +Date: Wed Nov 6 12:24:36 2019 -0600 + + LP#1851541 - Add audio alert for item alert popups + + Signed-off-by: Josh Stompro + Signed-off-by: Terran McCanna + Signed-off-by: Galen Charlton + +1 0 Open-ILS/web/js/ui/default/staff/circ/services/circ.js + +commit cd055be633d8f2d129a92b5c6949247dcbd528f9 +Author: Christine Morgan +Date: Thu Nov 21 12:53:11 2019 -0500 + + LP1735568, LP1830443: MARC Editor Fixes + + These style changes to the current MARC Editor fix the indicator box + resize problem and the blank subfield problem while improving usability. + Colors were tested using the Chrome extension Colorblindly, a + colorblindness simulator. + + Signed-off-by: Christine Morgan + Signed-off-by: Elaine Hardy + Signed-off-by: Galen Charlton + +24 21 Open-ILS/src/templates/staff/cat/share/t_marcedit.tt2 +3 3 Open-ILS/src/templates/staff/cat/share/t_marcedit_editable.tt2 +27 11 Open-ILS/src/templates/staff/css/cat.css.tt2 + +commit 5517094ec404001cf8fbae51f66570e4a709f677 +Author: Bill Erickson +Date: Tue Jul 28 17:21:28 2020 -0400 + + LP1889296 Staffcat holds request time includes time + + Display the hold request time as date plus time in the general purpose + Angluar holds grid. + + Signed-off-by: Bill Erickson + Signed-off-by: Jane Sandberg + +2 1 Open-ILS/src/eg2/src/app/staff/share/holds/grid.component.html + +commit 89b5bf9a7a750da48300ab23e6e4b6aa32e8f778 +Author: Galen Charlton +Date: Tue Jul 28 10:43:25 2020 -0400 + + LP#1776757: (follow-up) keep input for amount as type "number" + + Doing this preserves the form validation that ensures that + the user cannot submit the form with a non-numeric amount. + + This does lose forcing the display of default amounts such as + "1.50" to two decimal places, but I'm figuring that form validation + takes priority pending a longer-term solution such as a custom + value validator or using ng-currency. + + Signed-off-by: Galen Charlton + +1 1 Open-ILS/src/templates/staff/circ/share/t_bill_patron_dialog.tt2 +1 1 Open-ILS/web/js/ui/default/staff/circ/services/billing.js + +commit 7d86d434a323b15e0d4d17cbf6cc0ae562346b5e +Author: Mike Risher +Date: Wed Jan 29 20:20:35 2020 +0000 + + lp1776757 Default Billing Price Not Updating + + Fix the following bug: When billing a patron and one switches from + one billing type to a different billing type, the price isn't updating + to show the new default price + + Signed-off-by: Mike Risher + Signed-off-by: Terran McCanna + Signed-off-by: Galen Charlton + +1 1 Open-ILS/src/templates/staff/circ/share/t_bill_patron_dialog.tt2 +5 2 Open-ILS/web/js/ui/default/staff/circ/services/billing.js + +commit bb9a04aff2da25a0f7b7a7bf8bd11bbf61a77f87 +Author: Jane Sandberg +Date: Wed Oct 3 09:04:54 2018 -0700 + + LP1795469: Opac holdings sort now considers CN suffix + + To test: + 1) Create a bunch of Call Number suffixes in Administration + -> Server Administration -> Call Number Suffixes. + 2) Go to a bib record, and add a bunch of holdings, + all with the same call number label, owning/circ libraries, + item numbers, and parts (if using parts) but with different + barcodes and CN suffixes. + 3) Look at the OPAC view of these holdings. Note that they + are in order by barcode, without any consideration for + the CN suffix. + 4) Apply this commit. + 5) Look at the OPAC view again. Note that they are now sorted + by CN suffix, and then by barcode. + + Signed-off-by: Jane Sandberg + Signed-off-by: Josh Stompro + Signed-off-by: Galen Charlton + +1 0 Open-ILS/src/perlmods/lib/OpenILS/Application/AppUtils.pm + +commit ed894762a29d90ddb0eb5faff2166668355cd9fd +Author: Bill Erickson +Date: Mon Jun 8 16:03:14 2020 -0400 + + LP1882591 Empty combobox avoids default selection + + When clearing a combobox value, no combobox options are displayed in the + dropdown. This allows users to clear the value then tab out of the box + without the typeahead magic forcing selection of the first entry. + + The full list can still be displayed by clicking on the combobox. + + Signed-off-by: Bill Erickson + Signed-off-by: Galen Charlton + +7 6 Open-ILS/src/eg2/src/app/share/combobox/combobox.component.ts + +commit 8ed4dce43fadcfe0dbbb38f8a34c3259101fb82c +Author: Bill Erickson +Date: Mon Jul 27 10:58:52 2020 -0400 + + LP1878079 Staffcat Add Holdings action support + + Teaches the staff catalog Add Holdings button to open the holdings + editor using the appropriate parameters. If the holdings maintenance + grid is active, arguments to pass are based on the grid selection. + Otherwise it simply open the item editor with a single call number / + copy to be created 'here'. + + Signed-off-by: Bill Erickson + Signed-off-by: Jane Sandberg + +5 7 Open-ILS/src/eg2/src/app/staff/catalog/record/actions.component.ts +2 2 Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.ts +3 2 Open-ILS/src/eg2/src/app/staff/catalog/record/record.component.html +30 0 Open-ILS/src/eg2/src/app/staff/catalog/record/record.component.ts + +commit 4a6f6153a5d36b1db9b3f3486c8032406d27b759 +Author: Bill Erickson +Date: Wed May 13 12:17:19 2020 -0400 + + LP1878079 Staffcat 'Edit' items / call numbers support + + Adds support to the Angular staff catalog to properly handle requests + to Edit Items, Edit Call Numbers, and Edit Call Numbers and Items. + Prior to his change, these operations would behave more like Add + operations than Edit operations. + + Signed-off-by: Bill Erickson + Signed-off-by: Jane Sandberg + +6 6 Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.html +42 4 Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.ts +14 12 Open-ILS/src/eg2/src/app/staff/share/holdings/holdings.service.ts + +commit 92ef6cc3fb080486ce90e512a9d25e04fe4b965b +Author: Bill Erickson +Date: Mon May 11 15:10:37 2020 -0400 + + LP1878079 Staffcat Add Call Nums honors selected orgs + + When adding new call numbers from the Angular staff catalog Holdings + View grid, take all selected grid rows into consideration when + determining how many call numbers to add and what their owning libs + should be. + + To test: + * Navigate to the Holdings View tab of a record detail page in the Angular + staff catalog. + * Select multiple rows in the grid which are org unit-only rows (i.e. + the row does not refer to a specific call number or item). + * From the action menu / right client menu, select "Add Callnumbers" + * Confirm that a call number entry for each selected org unit is present + in the spawned holdings editor. + + Signed-off-by: Bill Erickson + Signed-off-by: Jane Sandberg + +15 10 Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.ts + +commit e0b6a271e23b9b3ebcf4d0e3cda44d615ac33681 +Author: Galen Charlton +Date: Mon Jul 27 10:55:19 2020 -0400 + + LP#1802166: stamp schema update + + Signed-off-by: Galen Charlton + +1 1 Open-ILS/src/sql/Pg/002.schema.config.sql +1 1 Open-ILS/src/sql/Pg/upgrade/{XXXX.function.actor_usr_delete.sql => 1211.function.actor_usr_delete.sql} + rename Open-ILS/src/sql/Pg/upgrade/{XXXX.function.actor_usr_delete.sql => 1211.function.actor_usr_delete.sql} (96%) + +commit 2a71751067376f5ab2e1fb758169bdb14a8bc384 +Author: Galen Charlton +Date: Mon Jul 27 10:51:37 2020 -0400 + + LP#1802166: (follow-up) document a way to clear names from already-purged patron records + + For reference, the following SQL will clear the preferred name + and name keyword fields from already-purged records: + + UPDATE actor.usr + SET pref_prefix = NULL, + pref_first_given_name = NULL, + pref_second_given_name = NULL, + pref_family_name = NULL, + pref_suffix = NULL, + name_keywords = NULL + WHERE usrname ~ ('^' || id || '-PURGED') + AND NOT active + AND deleted + AND ( + pref_prefix IS NOT NULL OR + pref_first_given_name IS NOT NULL OR + pref_second_given_name IS NOT NULL OR + pref_family_name IS NOT NULL OR + pref_suffix IS NOT NULL OR + name_keywords IS NOT NULL + ); + + Signed-off-by: Galen Charlton + +25 0 docs/RELEASE_NOTES_NEXT/Circulation/purge_usr_pref_names.adoc + +commit dcde76f08fbc64584796dc8cb3c55641bec05ace +Author: Jason Stephenson +Date: Fri Feb 15 13:33:08 2019 -0500 + + Lp 1802166: Purge User Name Keywords + + Add the name_keywords field to the fields that get set to null in + actor.usr_delete. + + Signed-off-by: Jason Stephenson + Signed-off-by: Rogan Hamby + Signed-off-by: Galen Charlton + +1 0 Open-ILS/src/sql/Pg/999.functions.global.sql +1 0 Open-ILS/src/sql/Pg/upgrade/XXXX.function.actor_usr_delete.sql + +commit e1b585db43cff2ae52aa1431838aacb7ca4c306b +Author: Jason Stephenson +Date: Fri Feb 15 12:21:19 2019 -0500 + + Lp 1802166: Purge User Preferred Names + + When the preferred names feature was added, the new fields were not + added to the update in the actor.usr_delete function. This commit + sets those new fields to NULL in that function. + + Signed-off-by: Jason Stephenson + Signed-off-by: Rogan Hamby + Signed-off-by: Galen Charlton + +5 0 Open-ILS/src/sql/Pg/999.functions.global.sql +124 0 Open-ILS/src/sql/Pg/upgrade/XXXX.function.actor_usr_delete.sql +5 0 docs/RELEASE_NOTES_NEXT/Circulation/purge_usr_pref_names.adoc + create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.function.actor_usr_delete.sql + create mode 100644 docs/RELEASE_NOTES_NEXT/Circulation/purge_usr_pref_names.adoc + +commit 418306e61c2abbe05c9bdffda3bce6758cac1b1e +Author: Jason Etheridge +Date: Fri Jun 5 09:00:53 2020 -0400 + + LP1819542 Hanging transits can cause checkins to fail + + So two bits of defensive programming for do_checkin: + + sub fix_broken_transit_status + sub cancel_transit_if_circ_exists + + I don't know if the first one does anything useful, but the idea is that it'll + at least temporarily set the copy status to In Transit for any status checks + within the do_checkin method that test for that. It doesn't actually repair + the status permanently (at least in the case of, say, an existing transit being + re-used for a ROUTE_ITEM event). We may want to do that. + + The second one will abort an associated transit (including retargeting a hold + for a hold transit) if both an active transit and an active circulation exist + for the item. This handles the situation I've been using to test the bug: + + 1) transit an item (CONC90000436 in Concerto) + 2) artificially change its status directly in the database (for example, to + Available) + 3) check it out to a patron (99999376864 in Concerto), noting + that the Cancel Transit prompt does not get triggered + 4) check in the item + + Signed-off-by: Jason Etheridge + Signed-off-by: Rogan Hamby + Signed-off-by: John Amundson + Signed-off-by: Jane Sandberg + +42 15 Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm + +commit 58a13e6728f95689ea594868c8b5e35d15904611 +Author: Jason Boyer +Date: Wed Jan 8 13:37:01 2020 -0500 + + LP1858701: prevent doubles slashes in opac iframe urls + + The CGI module (used by mkurl()) does not like it + if we have two slashes in a URL sort/of/like//this. + Things work but the path portion of the URL is doubled + each time mkurl is used on it. This branch fixes 2 + causes in the staff OPAC. + + Signed-off-by: Jason Boyer + Signed-off-by: Rogan Hamby + Signed-off-by: Jane Sandberg + +2 2 Open-ILS/web/js/ui/default/staff/cat/catalog/app.js + +commit 84c5a4ecf588990a448f88ed47330c88b98580e6 +Author: Jeff Davis +Date: Tue Jun 18 13:48:44 2019 -0700 + + LP#1833300: wrap SRU query in parentheses before appending site param + + Signed-off-by: Jeff Davis + Signed-off-by: Mike Risher + Signed-off-by: Galen Charlton + +1 1 Open-ILS/src/perlmods/lib/OpenILS/WWW/SuperCat.pm + +commit 210adb585bfa4ca6715bdbecd0ec659f20079d79 +Author: Jane Sandberg +Date: Mon Aug 19 12:43:33 2019 -0700 + + LP1739288: report back on invalid barcodes in Item Status screen + + To test: + + 1) Make a text file with both valid and invalid item barcodes. + 2) Go to Circulation > Item Status and upload your file. + 3) Note that the valid barcodes result in rows in the item status + screen, and the invalid barcodes are not displayed anywhere. + 4) Apply this commit. + 5) Repeat step 2. + 6) Notice that the invalid barcodes are now reported in a new alert. + 7) Make a text file with only valid barcodes and upload it. + 8) Upload it. Notice that the alert disappears. + + Signed-off-by: Jane Sandberg + Signed-off-by: Josh Stompro + + LP1739288: Add a summary report to the list of bad barcodes. + + (^^ squash of commit written by Josh Stompro) + + Signed-off-by: Jane Sandberg + Signed-off-by: Josh Stompro + Signed-off-by: Rogan Hamby + Signed-off-by: Galen Charlton + +21 0 Open-ILS/src/templates/staff/cat/item/index.tt2 +11 1 Open-ILS/web/js/ui/default/staff/cat/item/app.js + +commit 7827f05da1006492ce2883cfbb83e145e0af9abb +Author: Galen Charlton +Date: Tue Oct 15 18:32:19 2019 -0400 + + LP#1847784: (docs) refer to the badge score generator cron job by name + + Signed-off-by: Galen Charlton + Signed-off-by: Mike Rylander + +2 2 docs/admin/popularity_badges_web_client.adoc + +commit 40a28f954b24d41e91c684dc0bcf12f6fa20d33d +Author: Galen Charlton +Date: Tue Oct 15 18:29:40 2019 -0400 + + LP#1847784: install badge_score_generator.pl by default + + To test + ------- + [1] Perform an Evergreen installation/upgrade. + [2] Verify that badge_score_generator.pl is present + in /openils/bin (or an alternative installation + location specified during the ./configure step). + + Signed-off-by: Galen Charlton + Signed-off-by: Mike Rylander + +1 0 Open-ILS/src/Makefile.am + +commit c0ff29694e69162742e2807fe303aff53b1bc4c5 +Author: Jane Sandberg +Date: Sun Mar 15 08:49:48 2020 -0700 + + LP1867524: Add a help popover to the End field in the Closed Dates Editor + + To test: + 1) Go to Administration > Local Administration > Closed Dates Editor. + 2) Click Add Closing. + 3) Under closing type, choose Multiple Day. + 4) Note that the End field has no guidance for the user. + 5) Apply this commit. + 6) Repeat steps 1-3. + 7) Notice that the End field has some clarifying guidance for the user. + + Signed-off-by: Jane Sandberg + Signed-off-by: Mike Risher + Signed-off-by: Galen Charlton + +1 0 Open-ILS/src/templates/staff/admin/local/actor/edit_closed_dates.tt2 + +commit 9af1b3b0446c20aaa34bca65d04ebc6d1a70ed6b +Author: Chris Sharp +Date: Wed Nov 13 10:28:53 2019 -0500 + + LP#1852443 - Re-label duplicate-named "all circulations" source + + Signed-off-by: Chris Sharp + Signed-off-by: Rogan Hamby + Signed-off-by: Jane Sandberg + +1 1 Open-ILS/examples/fm_IDL.xml +13 0 docs/RELEASE_NOTES_NEXT/Reports/change_aacs_label.adoc + create mode 100644 docs/RELEASE_NOTES_NEXT/Reports/change_aacs_label.adoc + +commit de58d01d5104b590e4eeb1d1ef8860e232afcb69 +Author: Jason Boyer +Date: Fri Jul 24 09:53:16 2020 -0400 + + LP1747542: Stamp upgrade script + + Signed-off-by: Jason Boyer + +1 1 Open-ILS/src/sql/Pg/002.schema.config.sql +1 1 Open-ILS/src/sql/Pg/upgrade/{XXXX.lp1747542_action_item_user_circ_test.sql => 1209.lp1747542_action_item_user_circ_test.sql} + rename Open-ILS/src/sql/Pg/upgrade/{XXXX.lp1747542_action_item_user_circ_test.sql => 1209.lp1747542_action_item_user_circ_test.sql} (99%) + +commit 466c103cce7af38671f5bee6bc86d42ce3a4a82b +Author: Chris Sharp +Date: Mon Feb 5 18:58:43 2018 -0500 + + LP#1747542 - Repair item/user circulation test + + The action.item_user_circ_test function was previously + ignoring lost or longoverdue and paid-for circulations. + Adding a check for whether the circulation is closed + fixes this. + + Signed-off-by: Chris Sharp + Signed-off-by: Galen Charlton + Signed-off-by: Jason Boyer + +1 0 Open-ILS/src/sql/Pg/100.circ_matrix.sql +237 0 Open-ILS/src/sql/Pg/upgrade/XXXX.lp1747542_action_item_user_circ_test.sql + create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.lp1747542_action_item_user_circ_test.sql + +commit c88dce86daa5fa72a9e73afa30d3441d62ad1163 +Author: Galen Charlton +Date: Tue Jul 7 16:24:49 2020 -0400 + + LP#1886713: fix issue where AngularJS hotkeys fail to initialize + + Fixes a race condition where the navbar service can look for + eg-accesskey attributes before all of the elements that have + them meet the conditions to show up in the DOM. + + To test + ------- + [1] From an AngularJS part of the staff interface, note that + hitting F8 sometimes does not perform the retrieve + last patron action, nor does F8 show up on the list of + hot keys when you hit "?" outside of an input. + [2] Apply the patch and repeat step 1. This time, the F8 + hotkey should consistently work. + + Signed-off-by: Galen Charlton + + Signed-off-by: Rogan Hamby + Signed-off-by: Mike Rylander + +7 4 Open-ILS/web/js/ui/default/staff/services/navbar.js + +commit 5d6e9eddbd6f1ec4e9c9c0c4c631d059202a46b7 +Author: Jane Sandberg +Date: Thu Jun 6 18:15:56 2019 -0700 + + LP1474874: Consistent page headers in the Angular client + + This commit ensures that each screen in the Angular staff client uses + the component to better orient its users. + + This commit also gives the eg-staff-banner some

semantics, per + WebAIM's guidance: "Pages should be structured in a hierarchical manner, + generally with one 1st degree headings (

) being the most important + (usually page titles or main content heading)" -- https://webaim.org/techniques/semanticstructure/ + + To test: + + 1) Go to [your-server]/eg2/en-US/staff/catalog/search + 2) Confirm that there is a header that gives the page title at the top + of the page. + 3) Go to an Angular Vandelay page. + 4) Confirm that you see a similar header as in step 2. + 5) Go to an Angular Administration page. + 6) repeat step 4. + + Signed-off-by: Jane Sandberg + Signed-off-by: Jason Boyer + +2 1 Open-ILS/src/eg2/src/app/staff/cat/vandelay/vandelay.component.html +2 0 Open-ILS/src/eg2/src/app/staff/catalog/browse.component.html +2 0 Open-ILS/src/eg2/src/app/staff/catalog/catalog.component.html +2 0 Open-ILS/src/eg2/src/app/staff/catalog/cnbrowse.component.html +1 1 Open-ILS/src/eg2/src/app/staff/share/staff-banner.component.ts + +commit b221b4935e69320b6accbe8fb41a6abcd1004a61 +Author: Jason Boyer +Date: Fri Jul 24 08:41:49 2020 -0400 + + LP1870605: Stamp upgrade script + + Signed-off-by: Jason Boyer + +1 1 Open-ILS/src/sql/Pg/002.schema.config.sql +1 1 Open-ILS/src/sql/Pg/upgrade/{xxxx.schema.emergency_closing_fines_fix.sql => 1208.schema.emergency_closing_fines_fix.sql} + rename Open-ILS/src/sql/Pg/upgrade/{xxxx.schema.emergency_closing_fines_fix.sql => 1208.schema.emergency_closing_fines_fix.sql} (99%) + +commit 873cd4848a7f2ea33ec00661020294b6838cffff +Author: Steven Callender +Date: Fri Apr 3 15:20:39 2020 -0400 + + LP1870605: Fix typo in emergency closing functions + + The emergency closing handler was ignoring any + circulations that already had fines due to a typo + in the stage 2 circ and reservation functions. + + Signed-off-by: Steven Callender + Signed-off-by: Rogan Hamby + Signed-off-by: Jason Boyer + +2 2 Open-ILS/src/sql/Pg/096.schema.emergency_closing.sql +191 0 Open-ILS/src/sql/Pg/upgrade/xxxx.schema.emergency_closing_fines_fix.sql + create mode 100644 Open-ILS/src/sql/Pg/upgrade/xxxx.schema.emergency_closing_fines_fix.sql + +commit bf398f0fac0bf694d8b22ac47c85c0e00bffc6b1 +Author: Jane Sandberg +Date: Thu Jul 23 06:37:07 2020 -0700 + + LP#1705302: Stamping Upgrade Script + + Signed-off-by: Jane Sandberg + +1 1 Open-ILS/src/sql/Pg/002.schema.config.sql +1 1 Open-ILS/src/sql/Pg/upgrade/{XXXX.data.lp1705302-update-receipt-template-setting-descriptions.sql => 1207.data.lp1705302-update-receipt-template-setting-descriptions.sql} + rename Open-ILS/src/sql/Pg/upgrade/{XXXX.data.lp1705302-update-receipt-template-setting-descriptions.sql => 1207.data.lp1705302-update-receipt-template-setting-descriptions.sql} (96%) + +commit 84818d35249d3e8e3d5d0f3346aabc59d3f0313d +Author: Mike Risher +Date: Tue Jun 11 09:57:58 2019 -0700 + + lp1705302 update description of receipt template + + Updated editing instructions to give correct syntax and changing name + from receipt templates to Print Templates + + Signed-off-by: Mike Risher + + Changes to be committed: + modified: src/sql/Pg/950.data.seed-values.sql + new file: src/sql/Pg/upgrade/XXXX.data.lp1705302-update-receipt-template-setting-descriptions.sql + + Signed-off-by: Terran McCanna + Signed-off-by: Jane Sandberg + +5 5 Open-ILS/src/sql/Pg/950.data.seed-values.sql +36 0 Open-ILS/src/sql/Pg/upgrade/XXXX.data.lp1705302-update-receipt-template-setting-descriptions.sql + create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.data.lp1705302-update-receipt-template-setting-descriptions.sql + +commit 4e97cedc212bff316606730c7248c1a3febc0572 +Author: Jason Stephenson +Date: Wed Jan 29 12:33:30 2020 -0500 + + LP#1775940: Archived Penalties/Messages does not Respect Date Range + + This patch implements a.bellenir's suggestion of switching from + setQuery to watchQury in the archiveGrid of the web client circulation + patron app. It does now appear to respect the date range entered by + the user. + + Signed-off-by: Jason Stephenson + Signed-off-by: John Amundson + Signed-off-by: Galen Charlton + +1 1 Open-ILS/web/js/ui/default/staff/circ/patron/app.js + +commit 73d4c1dbf9bc1535c0b0379d104b99e0f93584b8 +Author: Josh Stompro +Date: Mon Feb 3 13:42:08 2020 -0600 + + LP#1754387 - User Buckets - Pending Users Enhancement + + It wasn't possible to load more than 100 users from a barcode file import in + user buckets because of two issues. The pager was limited to only showing 100 + barcodes at a time, and moving any users from the pending list would clear the + pending list. + + Here is a branch that makes the following changes. + + 1. Sets the default number of items to 100 and allows choosing the + 500,1000,10000 options for the pager. + + 2. When moving users from pending to a bucket, only removes the moved users + from the pending list. This allows the user to move a larger number of + users to a bucket from pending, a batch at a time. + + Testing Plan: + + Before Changes: + + 1. Load a file with 110 patron barcodes in the User Buckets, Pending Users interface. + 2. See that the pager only allows a max of 100 for the page size. + 3. Move one user to a bucket and note that the pending list gets cleared. + + After Changes: + + 1. Load a file with 110 patron barcodes. + 2. See that the pager allows for picking larger page sizes. + 3. Move one user to a bucket, and note that the pending list removes just that one user. + + Another way to see the changes is to pick a pager size of 25, and select all the + entries. Then move them to a bucket and see that you can continue to move + batches of 25 until you have moved all the pending users. + + Signed-off-by: Josh Stompro + Signed-off-by: Gina Monti + Signed-off-by: Galen Charlton + +2 1 Open-ILS/src/templates/staff/circ/patron/bucket/t_pending.tt2 +18 2 Open-ILS/web/js/ui/default/staff/circ/patron/bucket/app.js + +commit 94bf31cd20e3fb1a6d596702fe479d8cea342318 +Author: Jane Sandberg +Date: Sun Mar 8 07:58:09 2020 -0700 + + LP1845241: Use the correct API call to Undelete a bib record + + To test: + + 1) Open up a delete-ready bibliographic record in the Web client + (no attached holdings, no located URI, no open orders attached, etc.) + 2) Delete it. + 3) Undelete it. Note that the "Undelete" button briefly turns into a + "Delete" button before changing back to an "Undelete" button. Note that + the bib record does not show up in search results within the Web client. + 4) Apply this commit. + 5) Now try undeleting the record again. Notice that the "Delete" button + does not revert to an "Undelete" button. Note also that the record is + once again showing up in search results (although you may have to be a + bit creative using search terms, due to search results caching). + + Signed-off-by: Jane Sandberg + Signed-off-by: blake + Signed-off-by: Galen Charlton + +2 0 Open-ILS/src/templates/staff/cat/share/marcedit_strings.tt2 +18 2 Open-ILS/web/js/ui/default/staff/cat/services/marcedit.js + +commit 41214e31852477e63106f83fb0271fb3ea4302d7 +Author: Dan Scott +Date: Tue Jan 7 15:05:06 2020 -0500 + + LP1805860: Display long patron names without obscuring input fields + + Long patron names can obscure the input fields and menu items on patron + action screens. The only workaround is to reduce the font size using the + browser controls until the input fields and menu items are visible. + + While the fixed position saves space at the top of the screen for + typical cases, it can be hard for staff to remember the font-reduction + workaround when they hit a long patron name. + + Removing the fixed position CSS also better supports the display of + regular patron names on browsers that are not wide enough to display the + top menu (Search/Circulation/Cataloging/.../Workstation name/Locale) all + on a single line. + + Signed-off-by: Dan Scott + Signed-off-by: Terran McCanna + Signed-off-by: Galen Charlton + +0 6 Open-ILS/src/templates/staff/css/circ.css.tt2 + +commit d2534cdc70601b29269b2894ea0a0deec9203d96 +Author: Galen Charlton +Date: Mon Jun 22 11:40:08 2020 -0400 + + LP#1844365: fix initialization of stat cats in patron registration form + + If you edit a patron and it has (or gets added) a stat cat entry, + then from the registration form click on its inline patron search + link, fetch a patron that has no stat cats, then edit it, the + first patron's stat cats can show up in the registration form. + If the second patron does have stat cats, but not values set + for all of them, then the first patron's stat cat entries can + fill in cases where no entry was previously set. + + This patch fixes patronRegSvc's initialization when loading + an existing patron record to avoid this. + + To test + ------- + [1] Edit a patron and ensure that it has at least one + statistical category set. + [2] From the patron search link in the patron app tab + bar, NOT the Search | Patron menu item, search for + and retrieve a patron that has no stat cats assigned. + [3] Edit the patron. Observe that the first patron's + stat cat entry displays in the second patron's + registration form. + [4] Apply the patch and repeats steps 1-3. This time, + the previous patron's stat cats should not infect + the second patron's registration form. + + Signed-off-by: Galen Charlton + Signed-off-by: Mike Risher + +1 0 Open-ILS/web/js/ui/default/staff/circ/patron/regctl.js + +commit 5418f1b851eb79c323dfaf72f321dbedf49ff3c6 +Author: Kyle Huckins +Date: Thu May 23 21:47:02 2019 +0000 + + lp1775286 Color Indication of Overdue on Items Out + + - Overdue items are highlighted in red in the Items Out UI. + - Ensure overdue-row and lost-row classes handle visited links + + Signed-off-by: Kyle Huckins + Signed-off-by: Jennifer Pringle + Signed-off-by: Galen Charlton + +3 2 Open-ILS/src/templates/staff/circ/patron/t_items_out.tt2 +1 1 Open-ILS/src/templates/staff/css/style.css.tt2 +9 0 Open-ILS/web/js/ui/default/staff/circ/patron/items_out.js + +commit de8e1a075264a629191cd33c23d9f1c8f79f9dfc +Author: Jeff Davis +Date: Tue May 5 10:34:36 2020 -0700 + + LP#1840294: use dedicated UI for match set admin, rather than auto-generated admin pages + + Signed-off-by: Jeff Davis + Signed-off-by: Jane Sandberg + Signed-off-by: Galen Charlton + +1 1 Open-ILS/src/eg2/src/app/staff/admin/server/admin-server-splash.component.html + +commit 5aa2f703e5a6c8e0c292bea55c757d9e942530e9 +Author: Bill Erickson +Date: Fri Apr 24 16:09:57 2020 -0400 + + LP1874897 Staff catalog honors classification scheme + + Use the org unit setting "cat.default_classification_scheme" to + determine which scheme to use when extracting the bib-level call number + for display in the Angular staff catalog. + + This also modifies the API to look the value up so future calls to the + API will Just Work (and it's one less bit of data the browser has to + retrieve). + + Signed-off-by: Bill Erickson + Signed-off-by: Jane Sandberg + Signed-off-by: Galen Charlton + +1 4 Open-ILS/src/eg2/src/app/share/catalog/bib-record.service.ts +13 3 Open-ILS/src/perlmods/lib/OpenILS/Application/Cat.pm + +commit fe27ffee96efcffb0ac9f8c26599f1492e1c5c3d +Author: Bill Erickson +Date: Fri Jul 3 10:05:33 2020 -0400 + + LP1886118 Staff catalog search format repair + + Fixes an error in the staff catalog search params builder with regard to + encoding the search format. The 'format' param should be 'search_format'. + + Signed-off-by: Bill Erickson + Signed-off-by: Jane Sandberg + Signed-off-by: Galen Charlton + +1 1 Open-ILS/src/eg2/src/app/share/catalog/search-context.ts + +commit 1f2e3549a2d744aa57ad248566eb5e1bb14070a7 +Author: Jason Stephenson +Date: Fri Jul 17 07:09:29 2020 -0400 + + LP#1886852: Stamping Upgrade Script + + Signed-off-by: Jason Stephenson + +1 1 Open-ILS/src/sql/Pg/002.schema.config.sql +1 1 Open-ILS/src/sql/Pg/upgrade/{XXXX.function.distinct-regen_copy_map.sql => 1206.function.distinct-regen_copy_map.sql} + rename Open-ILS/src/sql/Pg/upgrade/{XXXX.function.distinct-regen_copy_map.sql => 1206.function.distinct-regen_copy_map.sql} (82%) + +commit a78747a609f3db4b557bb2305cb85d9c0adc9b79 +Author: Mike Rylander +Date: Wed Jul 8 13:18:52 2020 -0400 + + LP#1886852: Protect against dupes in hold-copy map function + + If the DB function that regenerates the hold-copy maps for a hold + receives duplicate copies in its second parameter, it blows up. This + commit prevents that by making the list unique at use time. + + Signed-off-by: Mike Rylander + Signed-off-by: Jason Stephenson + +1 1 Open-ILS/src/sql/Pg/090.schema.action.sql +12 0 Open-ILS/src/sql/Pg/upgrade/XXXX.function.distinct-regen_copy_map.sql + create mode 100755 Open-ILS/src/sql/Pg/upgrade/XXXX.function.distinct-regen_copy_map.sql + +commit f043d0180c10d7fffc8c65e87d2527c582f7b5ea +Author: Jane Sandberg +Date: Sun Jul 12 08:10:26 2020 -0700 + + LP1848573: follow-up: minor changes to IDL labels for the ccs class + + Signed-off-by: Jane Sandberg + +2 2 Open-ILS/examples/fm_IDL.xml + +commit bdc7d1bba8484ec10657b5638e8e47f448453245 +Author: Shula Link +Date: Mon Mar 16 10:30:27 2020 -0400 + + LP1848573: Added nice labels to Open-ILS\examples\fm_IDL.xml + for copy status + + Signed-off-by: Shula Link + Signed-off-by: Rogan Hamby + Signed-off-by: Mike Risher + Signed-off-by: Jane Sandberg + +7 7 Open-ILS/examples/fm_IDL.xml + +commit fd0742990053634894b5d10254b812543a5f59fd +Author: Mike Rylander +Date: Wed Sep 12 09:14:58 2018 -0400 + + LP#1712854: Disable all server-side sorting, but provide a stub for later, if we move that way + + Signed-off-by: Mike Rylander + Signed-off-by: John Yorio + Signed-off-by: Jane Sandberg + +1 1 Open-ILS/src/templates/staff/circ/holds/t_shelf_list.tt2 +3 1 Open-ILS/web/js/ui/default/staff/cat/catalog/app.js +34 1 Open-ILS/web/js/ui/default/staff/circ/holds/app.js + +commit 10dee660124e542ea6fb1e736958b241cb2dda6c +Author: Mike Rylander +Date: Tue Sep 11 17:36:30 2018 -0400 + + LP#1712854: Add User Alias and User Alias or Display Name columns to shelf list + + Signed-off-by: Mike Rylander + Signed-off-by: John Yorio + Signed-off-by: Jane Sandberg + +1 0 Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/action.pm +2 0 Open-ILS/src/templates/staff/circ/holds/t_shelf_list.tt2 + +commit f594911fc97dc53035f871e68507fa6e646320ae +Author: Jason Boyer +Date: Fri Feb 21 16:08:36 2020 -0500 + + LP1864056: Don't compare multiple new Date()s + + This branch addresses a race condition when + checking out or renewing items. + (The use of minDate in items_out was implicitly + immune to this issue, but that is made explicit + with this patch.) + + To test + ------- + [1] The race condition would be difficult to reliably + reproduce directly, although a tool like + https://github.com/mattzeunert/javascript-clock-speedup + might help simulate the problem, so to test, verify + that the following actions do not break: + + * checking out a loan, both with and without + setting a specific due date + * renewing a loan with a specific due date + from the patron items out tab + * renewing a loan from Circulation -> Renew Items, + both with and without setting a specific due date. + + Signed-off-by: Jason Boyer + Signed-off-by: Galen Charlton + Signed-off-by: Jane Sandberg + +3 2 Open-ILS/web/js/ui/default/staff/circ/patron/checkout.js +3 2 Open-ILS/web/js/ui/default/staff/circ/patron/items_out.js +3 3 Open-ILS/web/js/ui/default/staff/circ/renew/app.js + +commit e6160c20dfa79b82eb392e857dbb8132f8c355b1 +Author: Mike Risher +Date: Thu Feb 20 23:07:30 2020 +0000 + + lp1735828 Copy Bucket multi show status + + Revise the web client so that when one is in the copy bucket one can + select multiple entries and do "show status" on all of them. + + Signed-off-by: Mike Risher + Signed-off-by: Tiffany Little + Signed-off-by: Jane Sandberg + +2 0 Open-ILS/src/templates/staff/cat/bucket/copy/t_view.tt2 +9 0 Open-ILS/web/js/ui/default/staff/cat/bucket/copy/app.js + +commit 473ea12f85e76e6a4de40afde3101d55b31b7631 +Author: Galen Charlton +Date: Thu Jun 25 10:29:57 2020 -0400 + + LP#1884787: check in package-lock.json updates + + Signed-off-by: Galen Charlton + +2069 2114 Open-ILS/src/eg2/package-lock.json + +commit b6ca1003e403f16283d02e0d3ba6ea0294e93853 +Author: Galen Charlton +Date: Thu Jun 25 10:28:09 2020 -0400 + + LP#1884787: pin moment-timezone to 0.5.27 + + This updates moment-timezone to pull in an updated + tzdb but pins it to avoid future build errors if + npm update is run. Unlike the version of this patch + series for rel_3_5+, no attempt is made to update + moment-timezone to the version that includes built-in + TypeScript types. + + Signed-off-by: Galen Charlton + +1 1 Open-ILS/src/eg2/package.json + +commit b97ad773a18f008f8697b1e25a4a540f195424a2 +Author: Bill Erickson +Date: Fri Jun 12 11:20:29 2020 -0400 + + LP1883267 Minor release note tweaks + + Signed-off-by: Bill Erickson + +5 5 docs/RELEASE_NOTES_NEXT/Architecture/do-not-cache-angular-root.adoc + +commit e3fc6af20ee13f34c534789f2b19e2cd1553497c +Author: Mike Rylander +Date: Fri Jun 12 10:55:29 2020 -0400 + + LP#1883267: Adding release notes + + Signed-off-by: Mike Rylander + Signed-off-by: Bill Erickson + +36 0 docs/RELEASE_NOTES_NEXT/Architecture/do-not-cache-angular-root.adoc + create mode 100644 docs/RELEASE_NOTES_NEXT/Architecture/do-not-cache-angular-root.adoc + +commit d893d1c7bfd98f38117e554aa2c59a4e01687f8b +Author: Mike Rylander +Date: Fri Jun 12 10:36:48 2020 -0400 + + LP#1883267: Never cache Angular index.html + + If we cache index.html then clients will be delayed seeing updates in + normal circumstances. + + Signed-off-by: Mike Rylander + Signed-off-by: Bill Erickson + +14 0 Open-ILS/examples/apache_24/eg_vhost.conf.in + +commit ae3c1fa9b18f470b8831a3a851db5798bf731bdb +Author: Dan Wells +Date: Thu Jun 11 17:03:34 2020 -0400 + + Forward-port 3.4.3 upgrade script + + Signed-off-by: Dan Wells + +171 0 Open-ILS/src/sql/Pg/version-upgrade/3.4.2-3.4.3-upgrade-db.sql + create mode 100644 Open-ILS/src/sql/Pg/version-upgrade/3.4.2-3.4.3-upgrade-db.sql diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application.pm index d750216454..ff1a5fae10 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application.pm @@ -7,7 +7,7 @@ use OpenILS::Utils::Fieldmapper; sub ils_version { # version format is "x-y-z", for example "2-0-0" for Evergreen 2.0.0 # For branches, format is "x-y" - return "HEAD"; + return "3-4-4"; } __PACKAGE__->register_method( diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql index d24eda74da..07864d58bc 100644 --- a/Open-ILS/src/sql/Pg/002.schema.config.sql +++ b/Open-ILS/src/sql/Pg/002.schema.config.sql @@ -93,6 +93,7 @@ CREATE TRIGGER no_overlapping_deps FOR EACH ROW EXECUTE PROCEDURE evergreen.array_overlap_check ('deprecates'); INSERT INTO config.upgrade_log (version, applied_to) VALUES ('1211', :eg_version); -- Dyrcona/rhamby/gmcharlt +INSERT INTO config.upgrade_log (version, applied_to) VALUES ('3.4.4', :eg_version); CREATE TABLE config.bib_source ( id SERIAL PRIMARY KEY, diff --git a/Open-ILS/src/sql/Pg/version-upgrade/3.4.3-3.4.4-upgrade-db.sql b/Open-ILS/src/sql/Pg/version-upgrade/3.4.3-3.4.4-upgrade-db.sql new file mode 100644 index 0000000000..070d779d51 --- /dev/null +++ b/Open-ILS/src/sql/Pg/version-upgrade/3.4.3-3.4.4-upgrade-db.sql @@ -0,0 +1,600 @@ +--Upgrade Script for 3.4.3 to 3.4.4 +\set eg_version '''3.4.4''' +BEGIN; +INSERT INTO config.upgrade_log (version, applied_to) VALUES ('3.4.4', :eg_version); + +SELECT evergreen.upgrade_deps_block_check('1206', :eg_version); + +CREATE OR REPLACE FUNCTION + action.hold_request_regen_copy_maps( + hold_id INTEGER, copy_ids INTEGER[]) RETURNS VOID AS $$ + DELETE FROM action.hold_copy_map WHERE hold = $1; + INSERT INTO action.hold_copy_map (hold, target_copy) SELECT DISTINCT $1, UNNEST($2); +$$ LANGUAGE SQL; + + +SELECT evergreen.upgrade_deps_block_check('1207', :eg_version); + +UPDATE config.org_unit_setting_type + SET description = oils_i18n_gettext( + 'circ.staff_client.receipt.alert_text', + 'Text to be inserted into Print Templates in place of {{includes.alert_text}}', + 'cwst', 'label') + WHERE name = 'circ.staff_client.receipt.alert_text'; +UPDATE config.org_unit_setting_type + SET description = oils_i18n_gettext( + 'circ.staff_client.receipt.event_text', + 'Text to be inserted into Print Templates in place of {{includes.event_text}}', + 'cwst', 'label') + WHERE name = 'circ.staff_client.receipt.event_text'; +UPDATE config.org_unit_setting_type + SET description = oils_i18n_gettext( + 'circ.staff_client.receipt.footer_text', + 'Text to be inserted into Print Templates in place of {{includes.footer_text}}', + 'cwst', 'label') + WHERE name = 'circ.staff_client.receipt.footer_text'; +UPDATE config.org_unit_setting_type + SET description = oils_i18n_gettext( + 'circ.staff_client.receipt.header_text', + 'Text to be inserted into Print Templates in place of {{includes.header_text}}', + 'cwst', 'label') + WHERE name = 'circ.staff_client.receipt.header_text'; +UPDATE config.org_unit_setting_type + SET description = oils_i18n_gettext( + 'circ.staff_client.receipt.notice_text', + 'Text to be inserted into Print Templates in place of {{includes.notice_text}}', + 'cwst', 'label') + WHERE name = 'circ.staff_client.receipt.notice_text'; + + +SELECT evergreen.upgrade_deps_block_check('1208', :eg_version); + +CREATE OR REPLACE FUNCTION action.emergency_closing_stage_2_circ ( circ_closing_entry INT ) + RETURNS BOOL AS $$ +DECLARE + circ action.circulation%ROWTYPE; + e_closing action.emergency_closing%ROWTYPE; + e_c_circ action.emergency_closing_circulation%ROWTYPE; + closing actor.org_unit_closed%ROWTYPE; + adjacent actor.org_unit_closed%ROWTYPE; + bill money.billing%ROWTYPE; + last_bill money.billing%ROWTYPE; + day_number INT; + hoo_close TIME WITHOUT TIME ZONE; + plus_days INT; + avoid_negative BOOL; + extend_grace BOOL; + new_due_date TEXT; +BEGIN + -- Gather objects involved + SELECT * INTO e_c_circ + FROM action.emergency_closing_circulation + WHERE id = circ_closing_entry; + + IF e_c_circ.process_time IS NOT NULL THEN + -- Already processed ... moving on + RETURN FALSE; + END IF; + + SELECT * INTO e_closing + FROM action.emergency_closing + WHERE id = e_c_circ.emergency_closing; + + IF e_closing.process_start_time IS NULL THEN + -- Huh... that's odd. And wrong. + RETURN FALSE; + END IF; + + SELECT * INTO closing + FROM actor.org_unit_closed + WHERE emergency_closing = e_closing.id; + + SELECT * INTO circ + FROM action.circulation + WHERE id = e_c_circ.circulation; + + -- Record the processing + UPDATE action.emergency_closing_circulation + SET original_due_date = circ.due_date, + process_time = NOW() + WHERE id = circ_closing_entry; + + UPDATE action.emergency_closing + SET last_update_time = NOW() + WHERE id = e_closing.id; + + SELECT value::BOOL INTO avoid_negative FROM actor.org_unit_ancestor_setting('bill.prohibit_negative_balance_on_overdues', circ.circ_lib); + SELECT value::BOOL INTO extend_grace FROM actor.org_unit_ancestor_setting('circ.grace.extend', circ.circ_lib); + + new_due_date := evergreen.find_next_open_time( closing.org_unit, circ.due_date, EXTRACT(EPOCH FROM circ.duration)::INT % 86400 > 0 )::TEXT; + UPDATE action.circulation SET due_date = new_due_date::TIMESTAMPTZ WHERE id = circ.id; + + -- Now, see if we need to get rid of some fines + SELECT * INTO last_bill + FROM money.billing b + WHERE b.xact = circ.id + AND NOT b.voided + AND b.btype = 1 + ORDER BY billing_ts DESC + LIMIT 1; + + FOR bill IN + SELECT * + FROM money.billing b + WHERE b.xact = circ.id + AND b.btype = 1 + AND NOT b.voided + AND ( + b.billing_ts BETWEEN closing.close_start AND new_due_date::TIMESTAMPTZ + OR (extend_grace AND last_bill.billing_ts <= new_due_date::TIMESTAMPTZ + circ.grace_period) + ) + AND NOT EXISTS (SELECT 1 FROM money.account_adjustment a WHERE a.billing = b.id) + ORDER BY billing_ts + LOOP + IF avoid_negative THEN + PERFORM FROM money.materialized_billable_xact_summary WHERE id = circ.id AND balance_owed < bill.amount; + EXIT WHEN FOUND; -- We can't go negative, and voiding this bill would do that... + END IF; + + UPDATE money.billing + SET voided = TRUE, + void_time = NOW(), + note = COALESCE(note,'') || ' :: Voided by emergency closing handler' + WHERE id = bill.id; + END LOOP; + + RETURN TRUE; +END; +$$ LANGUAGE PLPGSQL; + +CREATE OR REPLACE FUNCTION action.emergency_closing_stage_2_reservation ( res_closing_entry INT ) + RETURNS BOOL AS $$ +DECLARE + res booking.reservation%ROWTYPE; + e_closing action.emergency_closing%ROWTYPE; + e_c_res action.emergency_closing_reservation%ROWTYPE; + closing actor.org_unit_closed%ROWTYPE; + adjacent actor.org_unit_closed%ROWTYPE; + bill money.billing%ROWTYPE; + day_number INT; + hoo_close TIME WITHOUT TIME ZONE; + plus_days INT; + avoid_negative BOOL; + new_due_date TEXT; +BEGIN + -- Gather objects involved + SELECT * INTO e_c_res + FROM action.emergency_closing_reservation + WHERE id = res_closing_entry; + + IF e_c_res.process_time IS NOT NULL THEN + -- Already processed ... moving on + RETURN FALSE; + END IF; + + SELECT * INTO e_closing + FROM action.emergency_closing + WHERE id = e_c_res.emergency_closing; + + IF e_closing.process_start_time IS NULL THEN + -- Huh... that's odd. And wrong. + RETURN FALSE; + END IF; + + SELECT * INTO closing + FROM actor.org_unit_closed + WHERE emergency_closing = e_closing.id; + + SELECT * INTO res + FROM booking.reservation + WHERE id = e_c_res.reservation; + + IF res.pickup_lib IS NULL THEN -- Need to be far enough along to have a pickup lib + RETURN FALSE; + END IF; + + -- Record the processing + UPDATE action.emergency_closing_reservation + SET original_end_time = res.end_time, + process_time = NOW() + WHERE id = res_closing_entry; + + UPDATE action.emergency_closing + SET last_update_time = NOW() + WHERE id = e_closing.id; + + SELECT value::BOOL INTO avoid_negative FROM actor.org_unit_ancestor_setting('bill.prohibit_negative_balance_on_overdues', res.pickup_lib); + + new_due_date := evergreen.find_next_open_time( closing.org_unit, res.end_time, EXTRACT(EPOCH FROM res.booking_interval)::INT % 86400 > 0 )::TEXT; + UPDATE booking.reservation SET end_time = new_due_date::TIMESTAMPTZ WHERE id = res.id; + + -- Now, see if we need to get rid of some fines + FOR bill IN + SELECT * + FROM money.billing b + WHERE b.xact = res.id + AND b.btype = 1 + AND NOT b.voided + AND b.billing_ts BETWEEN closing.close_start AND new_due_date::TIMESTAMPTZ + AND NOT EXISTS (SELECT 1 FROM money.account_adjustment a WHERE a.billing = b.id) + LOOP + IF avoid_negative THEN + PERFORM FROM money.materialized_billable_xact_summary WHERE id = res.id AND balance_owed < bill.amount; + EXIT WHEN FOUND; -- We can't go negative, and voiding this bill would do that... + END IF; + + UPDATE money.billing + SET voided = TRUE, + void_time = NOW(), + note = COALESCE(note,'') || ' :: Voided by emergency closing handler' + WHERE id = bill.id; + END LOOP; + + RETURN TRUE; +END; +$$ LANGUAGE PLPGSQL; + + + +SELECT evergreen.upgrade_deps_block_check('1209', :eg_version); + +CREATE OR REPLACE FUNCTION action.item_user_circ_test( circ_ou INT, match_item BIGINT, match_user INT, renewal BOOL ) RETURNS SETOF action.circ_matrix_test_result AS $func$ +DECLARE + user_object actor.usr%ROWTYPE; + standing_penalty config.standing_penalty%ROWTYPE; + item_object asset.copy%ROWTYPE; + item_status_object config.copy_status%ROWTYPE; + item_location_object asset.copy_location%ROWTYPE; + result action.circ_matrix_test_result; + circ_test action.found_circ_matrix_matchpoint; + circ_matchpoint config.circ_matrix_matchpoint%ROWTYPE; + circ_limit_set config.circ_limit_set%ROWTYPE; + hold_ratio action.hold_stats%ROWTYPE; + penalty_type TEXT; + items_out INT; + context_org_list INT[]; + done BOOL := FALSE; + item_prox INT; + home_prox INT; +BEGIN + -- Assume success unless we hit a failure condition + result.success := TRUE; + + -- Need user info to look up matchpoints + SELECT INTO user_object * FROM actor.usr WHERE id = match_user AND NOT deleted; + + -- (Insta)Fail if we couldn't find the user + IF user_object.id IS NULL THEN + result.fail_part := 'no_user'; + result.success := FALSE; + done := TRUE; + RETURN NEXT result; + RETURN; + END IF; + + -- Need item info to look up matchpoints + SELECT INTO item_object * FROM asset.copy WHERE id = match_item AND NOT deleted; + + -- (Insta)Fail if we couldn't find the item + IF item_object.id IS NULL THEN + result.fail_part := 'no_item'; + result.success := FALSE; + done := TRUE; + RETURN NEXT result; + RETURN; + END IF; + + SELECT INTO circ_test * FROM action.find_circ_matrix_matchpoint(circ_ou, item_object, user_object, renewal); + + circ_matchpoint := circ_test.matchpoint; + result.matchpoint := circ_matchpoint.id; + result.circulate := circ_matchpoint.circulate; + result.duration_rule := circ_matchpoint.duration_rule; + result.recurring_fine_rule := circ_matchpoint.recurring_fine_rule; + result.max_fine_rule := circ_matchpoint.max_fine_rule; + result.hard_due_date := circ_matchpoint.hard_due_date; + result.renewals := circ_matchpoint.renewals; + result.grace_period := circ_matchpoint.grace_period; + result.buildrows := circ_test.buildrows; + + -- (Insta)Fail if we couldn't find a matchpoint + IF circ_test.success = false THEN + result.fail_part := 'no_matchpoint'; + result.success := FALSE; + done := TRUE; + RETURN NEXT result; + RETURN; + END IF; + + -- All failures before this point are non-recoverable + -- Below this point are possibly overridable failures + + -- Fail if the user is barred + IF user_object.barred IS TRUE THEN + result.fail_part := 'actor.usr.barred'; + result.success := FALSE; + done := TRUE; + RETURN NEXT result; + END IF; + + -- Fail if the item can't circulate + IF item_object.circulate IS FALSE THEN + result.fail_part := 'asset.copy.circulate'; + result.success := FALSE; + done := TRUE; + RETURN NEXT result; + END IF; + + -- Fail if the item isn't in a circulateable status on a non-renewal + IF NOT renewal AND item_object.status <> 8 AND item_object.status NOT IN ( + (SELECT id FROM config.copy_status WHERE is_available) ) THEN + result.fail_part := 'asset.copy.status'; + result.success := FALSE; + done := TRUE; + RETURN NEXT result; + -- Alternately, fail if the item isn't checked out on a renewal + ELSIF renewal AND item_object.status <> 1 THEN + result.fail_part := 'asset.copy.status'; + result.success := FALSE; + done := TRUE; + RETURN NEXT result; + END IF; + + -- Fail if the item can't circulate because of the shelving location + SELECT INTO item_location_object * FROM asset.copy_location WHERE id = item_object.location; + IF item_location_object.circulate IS FALSE THEN + result.fail_part := 'asset.copy_location.circulate'; + result.success := FALSE; + done := TRUE; + RETURN NEXT result; + END IF; + + -- Use Circ OU for penalties and such + SELECT INTO context_org_list ARRAY_AGG(id) FROM actor.org_unit_full_path( circ_ou ); + + -- Proximity of user's home_ou to circ_ou to see if penalties should be ignored. + SELECT INTO home_prox prox FROM actor.org_unit_proximity WHERE from_org = user_object.home_ou AND to_org = circ_ou; + + -- Proximity of user's home_ou to item circ_lib to see if penalties should be ignored. + SELECT INTO item_prox prox FROM actor.org_unit_proximity WHERE from_org = user_object.home_ou AND to_org = item_object.circ_lib; + + IF renewal THEN + penalty_type = '%RENEW%'; + ELSE + penalty_type = '%CIRC%'; + END IF; + + FOR standing_penalty IN + SELECT DISTINCT csp.* + FROM actor.usr_standing_penalty usp + JOIN config.standing_penalty csp ON (csp.id = usp.standing_penalty) + WHERE usr = match_user + AND usp.org_unit IN ( SELECT * FROM unnest(context_org_list) ) + AND (usp.stop_date IS NULL or usp.stop_date > NOW()) + AND (csp.ignore_proximity IS NULL + OR csp.ignore_proximity < home_prox + OR csp.ignore_proximity < item_prox) + AND csp.block_list LIKE penalty_type LOOP + + result.fail_part := standing_penalty.name; + result.success := FALSE; + done := TRUE; + RETURN NEXT result; + END LOOP; + + -- Fail if the test is set to hard non-circulating + IF circ_matchpoint.circulate IS FALSE THEN + result.fail_part := 'config.circ_matrix_test.circulate'; + result.success := FALSE; + done := TRUE; + RETURN NEXT result; + END IF; + + -- Fail if the total copy-hold ratio is too low + IF circ_matchpoint.total_copy_hold_ratio IS NOT NULL THEN + SELECT INTO hold_ratio * FROM action.copy_related_hold_stats(match_item); + IF hold_ratio.total_copy_ratio IS NOT NULL AND hold_ratio.total_copy_ratio < circ_matchpoint.total_copy_hold_ratio THEN + result.fail_part := 'config.circ_matrix_test.total_copy_hold_ratio'; + result.success := FALSE; + done := TRUE; + RETURN NEXT result; + END IF; + END IF; + + -- Fail if the available copy-hold ratio is too low + IF circ_matchpoint.available_copy_hold_ratio IS NOT NULL THEN + IF hold_ratio.hold_count IS NULL THEN + SELECT INTO hold_ratio * FROM action.copy_related_hold_stats(match_item); + END IF; + IF hold_ratio.available_copy_ratio IS NOT NULL AND hold_ratio.available_copy_ratio < circ_matchpoint.available_copy_hold_ratio THEN + result.fail_part := 'config.circ_matrix_test.available_copy_hold_ratio'; + result.success := FALSE; + done := TRUE; + RETURN NEXT result; + END IF; + END IF; + + -- Fail if the user has too many items out by defined limit sets + FOR circ_limit_set IN SELECT ccls.* FROM config.circ_limit_set ccls + JOIN config.circ_matrix_limit_set_map ccmlsm ON ccmlsm.limit_set = ccls.id + WHERE ccmlsm.active AND ( ccmlsm.matchpoint = circ_matchpoint.id OR + ( ccmlsm.matchpoint IN (SELECT * FROM unnest(result.buildrows)) AND ccmlsm.fallthrough ) + ) LOOP + IF circ_limit_set.items_out > 0 AND NOT renewal THEN + SELECT INTO context_org_list ARRAY_AGG(aou.id) + FROM actor.org_unit_full_path( circ_ou ) aou + JOIN actor.org_unit_type aout ON aou.ou_type = aout.id + WHERE aout.depth >= circ_limit_set.depth; + IF circ_limit_set.global THEN + WITH RECURSIVE descendant_depth AS ( + SELECT ou.id, + ou.parent_ou + FROM actor.org_unit ou + WHERE ou.id IN (SELECT * FROM unnest(context_org_list)) + UNION + SELECT ou.id, + ou.parent_ou + FROM actor.org_unit ou + JOIN descendant_depth ot ON (ot.id = ou.parent_ou) + ) SELECT INTO context_org_list ARRAY_AGG(ou.id) FROM actor.org_unit ou JOIN descendant_depth USING (id); + END IF; + SELECT INTO items_out COUNT(DISTINCT circ.id) + FROM action.circulation circ + JOIN asset.copy copy ON (copy.id = circ.target_copy) + LEFT JOIN action.circulation_limit_group_map aclgm ON (circ.id = aclgm.circ) + WHERE circ.usr = match_user + AND circ.circ_lib IN (SELECT * FROM unnest(context_org_list)) + AND circ.checkin_time IS NULL + AND circ.xact_finish IS NULL + AND (circ.stop_fines IN ('MAXFINES','LONGOVERDUE') OR circ.stop_fines IS NULL) + AND (copy.circ_modifier IN (SELECT circ_mod FROM config.circ_limit_set_circ_mod_map WHERE limit_set = circ_limit_set.id) + OR copy.location IN (SELECT copy_loc FROM config.circ_limit_set_copy_loc_map WHERE limit_set = circ_limit_set.id) + OR aclgm.limit_group IN (SELECT limit_group FROM config.circ_limit_set_group_map WHERE limit_set = circ_limit_set.id) + ); + IF items_out >= circ_limit_set.items_out THEN + result.fail_part := 'config.circ_matrix_circ_mod_test'; + result.success := FALSE; + done := TRUE; + RETURN NEXT result; + END IF; + END IF; + SELECT INTO result.limit_groups result.limit_groups || ARRAY_AGG(limit_group) FROM config.circ_limit_set_group_map WHERE limit_set = circ_limit_set.id AND NOT check_only; + END LOOP; + + -- If we passed everything, return the successful matchpoint + IF NOT done THEN + RETURN NEXT result; + END IF; + + RETURN; +END; +$func$ LANGUAGE plpgsql; + + +SELECT evergreen.upgrade_deps_block_check('1211', :eg_version); -- Dyrcona/rhamby/gmcharlt + +CREATE OR REPLACE FUNCTION actor.usr_delete( + src_usr IN INTEGER, + dest_usr IN INTEGER +) RETURNS VOID AS $$ +DECLARE + old_profile actor.usr.profile%type; + old_home_ou actor.usr.home_ou%type; + new_profile actor.usr.profile%type; + new_home_ou actor.usr.home_ou%type; + new_name text; + new_dob actor.usr.dob%type; +BEGIN + SELECT + id || '-PURGED-' || now(), + profile, + home_ou, + dob + INTO + new_name, + old_profile, + old_home_ou, + new_dob + FROM + actor.usr + WHERE + id = src_usr; + -- + -- Quit if no such user + -- + IF old_profile IS NULL THEN + RETURN; + END IF; + -- + perform actor.usr_purge_data( src_usr, dest_usr ); + -- + -- Find the root grp_tree and the root org_unit. This would be simpler if we + -- could assume that there is only one root. Theoretically, someday, maybe, + -- there could be multiple roots, so we take extra trouble to get the right ones. + -- + SELECT + id + INTO + new_profile + FROM + permission.grp_ancestors( old_profile ) + WHERE + parent is null; + -- + SELECT + id + INTO + new_home_ou + FROM + actor.org_unit_ancestors( old_home_ou ) + WHERE + parent_ou is null; + -- + -- Truncate date of birth + -- + IF new_dob IS NOT NULL THEN + new_dob := date_trunc( 'year', new_dob ); + END IF; + -- + UPDATE + actor.usr + SET + card = NULL, + profile = new_profile, + usrname = new_name, + email = NULL, + passwd = random()::text, + standing = DEFAULT, + ident_type = + ( + SELECT MIN( id ) + FROM config.identification_type + ), + ident_value = NULL, + ident_type2 = NULL, + ident_value2 = NULL, + net_access_level = DEFAULT, + photo_url = NULL, + prefix = NULL, + first_given_name = new_name, + second_given_name = NULL, + family_name = new_name, + suffix = NULL, + alias = NULL, + guardian = NULL, + day_phone = NULL, + evening_phone = NULL, + other_phone = NULL, + mailing_address = NULL, + billing_address = NULL, + home_ou = new_home_ou, + dob = new_dob, + active = FALSE, + master_account = DEFAULT, + super_user = DEFAULT, + barred = FALSE, + deleted = TRUE, + juvenile = DEFAULT, + usrgroup = 0, + claims_returned_count = DEFAULT, + credit_forward_balance = DEFAULT, + last_xact_id = DEFAULT, + alert_message = NULL, + pref_prefix = NULL, + pref_first_given_name = NULL, + pref_second_given_name = NULL, + pref_family_name = NULL, + pref_suffix = NULL, + name_keywords = NULL, + create_date = now(), + expire_date = now() + WHERE + id = src_usr; +END; +$$ LANGUAGE plpgsql; + +COMMIT; + +-- Update auditor tables to catch changes to source tables. +-- Can be removed/skipped if there were no schema changes. +SELECT auditor.update_auditors(); diff --git a/Open-ILS/xul/staff_client/chrome/content/main/about.html b/Open-ILS/xul/staff_client/chrome/content/main/about.html index b2b87b683f..ea4572b554 100644 --- a/Open-ILS/xul/staff_client/chrome/content/main/about.html +++ b/Open-ILS/xul/staff_client/chrome/content/main/about.html @@ -1,7 +1,7 @@

Evergreen

Target Server ID:

-

$HeadURL$

+

http://git.evergreen-ils.org/?p=Evergreen.git;a=shortlog;h=refs/heads/tags/rel_3_4_4

What is Evergreen?

diff --git a/Open-ILS/xul/staff_client/defaults/preferences/prefs.js b/Open-ILS/xul/staff_client/defaults/preferences/prefs.js index 0613a13ddf..6804084833 100644 --- a/Open-ILS/xul/staff_client/defaults/preferences/prefs.js +++ b/Open-ILS/xul/staff_client/defaults/preferences/prefs.js @@ -11,7 +11,7 @@ pref("toolkit.singletonWindowType", "eg_main"); pref("open-ils.enable_join_tabs", true); // We'll use this one to help brand some build information into the client, and rely on subversion keywords -pref("open-ils.repository.headURL","$HeadURL$"); +pref("open-ils.repository.headURL","http://git.evergreen-ils.org/?p=Evergreen.git;a=shortlog;h=refs/heads/tags/rel_3_4_4"); pref("open-ils.repository.author","$Author$"); pref("open-ils.repository.revision","$Revision$"); pref("open-ils.repository.date","$Date$"); diff --git a/Open-ILS/xul/staff_client/windowssetup.nsi b/Open-ILS/xul/staff_client/windowssetup.nsi index a9543579a8..7f20eae48f 100644 --- a/Open-ILS/xul/staff_client/windowssetup.nsi +++ b/Open-ILS/xul/staff_client/windowssetup.nsi @@ -3,7 +3,7 @@ ; HM NIS Edit Wizard helper defines ; Old versions of makensis don't like this, moved to Makefile ;!define /file PRODUCT_VERSION "client/VERSION" -!define PRODUCT_TAG "Master" +!define PRODUCT_TAG "3.4" !define PRODUCT_INSTALL_TAG "${PRODUCT_TAG}" !define UI_IMAGESET "beta" ;!define UI_IMAGESET "release" diff --git a/README b/README deleted file mode 120000 index 1ee2103e6f..0000000000 --- a/README +++ /dev/null @@ -1 +0,0 @@ -docs/installation/server_installation.adoc \ No newline at end of file diff --git a/README b/README new file mode 100644 index 0000000000..e2a93a9c2a --- /dev/null +++ b/README @@ -0,0 +1,649 @@ +Installing the Evergreen server +=============================== +:toc: +:numbered: + +Preamble: referenced user accounts +---------------------------------- + +In subsequent sections, we will refer to a number of different accounts, as +follows: + + * Linux user accounts: + ** The *user* Linux account is the account that you use to log onto the + Linux system as a regular user. + ** The *root* Linux account is an account that has system administrator + privileges. On Debian you can switch to this account from + your *user* account by issuing the `su -` command and entering the + password for the *root* account when prompted. On Ubuntu you can switch + to this account from your *user* account using the `sudo su -` command + and entering the password for your *user* account when prompted. + ** The *opensrf* Linux account is an account that you create when installing + OpenSRF. You can switch to this account from the *root* account by + issuing the `su - opensrf` command. + ** The *postgres* Linux account is created automatically when you install + the PostgreSQL database server. You can switch to this account from the + *root* account by issuing the `su - postgres` command. + * PostgreSQL user accounts: + ** The *evergreen* PostgreSQL account is a superuser account that you will + create to connect to the PostgreSQL database server. + * Evergreen administrator account: + ** The *egadmin* Evergreen account is an administrator account for + Evergreen that you will use to test connectivity and configure your + Evergreen instance. + +Preamble: developer instructions +-------------------------------- + +[NOTE] +Skip this section if you are using an official release tarball downloaded +from http://evergreen-ils.org/egdownloads + +Developers working directly with the source code from the Git repository, +rather than an official release tarball, must perform one step before they +can proceed with the `./configure` step. + +As the *user* Linux account, issue the following command in the Evergreen +source directory to generate the configure script and Makefiles: + +[source, bash] +------------------------------------------------------------------------------ +autoreconf -i +------------------------------------------------------------------------------ + +Installing prerequisites +------------------------ + + * **PostgreSQL**: The minimum supported version is 9.6. + * **Linux**: Evergreen has been tested on + Debian Buster (10), + Debian Stretch (9), + Debian Jessie (8), + Ubuntu Bionic Beaver (18.04), + and Ubuntu Xenial Xerus (16.04). + If you are running an older version of these distributions, you may want + to upgrade before upgrading Evergreen. For instructions on upgrading these + distributions, visit the Debian or Ubuntu websites. + * **OpenSRF**: The minimum supported version of OpenSRF is 3.2.0. + + +Evergreen has a number of prerequisite packages that must be installed +before you can successfully configure, compile, and install Evergreen. + +1. Begin by installing the most recent version of OpenSRF (3.2.0 or later). + You can download OpenSRF releases from http://evergreen-ils.org/opensrf-downloads/ ++ +2. Issue the following commands as the *root* Linux account to install + prerequisites using the `Makefile.install` prerequisite installer, + substituting `debian-buster`,`debian-stretch`,`debian-jessie`,`ubuntu-bionic`, or + `ubuntu-xenial` for below: ++ +[source, bash] +------------------------------------------------------------------------------ +make -f Open-ILS/src/extras/Makefile.install +------------------------------------------------------------------------------ ++ +[[optional_developer_additions]] +3. OPTIONAL: Developer additions ++ +To perform certain developer tasks from a Git source code checkout, +including the testing of the Angular web client components, +additional packages may be required. As the *root* Linux account: ++ + * To install packages needed for retrieving and managing web dependencies, + use the -developer Makefile.install target. Currently, + this is only needed for building and installing the web + staff client. ++ +[source, bash] +------------------------------------------------------------------------------ +make -f Open-ILS/src/extras/Makefile.install -developer +------------------------------------------------------------------------------ ++ + * To install packages required for building Evergreen translations, use + the -translator Makefile.install target. ++ +[source, bash] +------------------------------------------------------------------------------ +make -f Open-ILS/src/extras/Makefile.install -translator +------------------------------------------------------------------------------ ++ + * To install packages required for building Evergreen release bundles, use + the -packager Makefile.install target. ++ +[source, bash] +------------------------------------------------------------------------------ +make -f Open-ILS/src/extras/Makefile.install -packager +------------------------------------------------------------------------------ + +Extra steps for web staff client +-------------------------------- + +[NOTE] +Skip this entire section if you are using an official release tarball downloaded +from http://evergreen-ils.org/downloads. Otherwise, ensure you have installed the +<> before proceeding. + +[[install_files_for_web_staff_client]] +Install AngularJS files for web staff client +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +1. Building, Testing, Minification: The remaining steps all take place within + the staff JS web root: ++ +[source,sh] +------------------------------------------------------------------------------ +cd $EVERGREEN_ROOT/Open-ILS/web/js/ui/default/staff/ +------------------------------------------------------------------------------ ++ +2. Install Project-local Dependencies. npm inspects the 'package.json' file + for dependencies and fetches them from the Node package network. ++ +[source,sh] +------------------------------------------------------------------------------ +npm install # fetch JS dependencies +------------------------------------------------------------------------------ ++ +3. Run the build script. ++ +[source,sh] +------------------------------------------------------------------------------ +# build, concat+minify +npm run build-prod +------------------------------------------------------------------------------ ++ +4. OPTIONAL: Test web client code if the -developer packages were installed. + CHROME_BIN should be set to the path to chrome or chromimum, e.g., + `/usr/bin/chromium`: ++ +[source,sh] +------------------------------------------------------------------------------ +CHROME_BIN=/path/to/chrome npm run test +------------------------------------------------------------------------------ + +[[install_files_for_angular_web_staff_client]] +Install Angular files for web staff client +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +1. Building, Testing, Minification: The remaining steps all take place within + the Angular staff root: ++ +[source,sh] +------------------------------------------------------------------------------ +cd $EVERGREEN_ROOT/Open-ILS/src/eg2/ +------------------------------------------------------------------------------ ++ +2. Install Project-local Dependencies. npm inspects the 'package.json' file + for dependencies and fetches them from the Node package network. ++ +[source,sh] +------------------------------------------------------------------------------ +npm install # fetch JS dependencies +------------------------------------------------------------------------------ ++ +3. Run the build script. ++ +[source,sh] +------------------------------------------------------------------------------ +# build and run tests +ng build --prod +------------------------------------------------------------------------------ ++ +4. OPTIONAL: Test eg2 web client code if the -developer packages were installed: + CHROME_BIN should be set to the path to chrome or chromimum, e.g., + `/usr/bin/chromium`: ++ +[source,sh] +------------------------------------------------------------------------------ +CHROME_BIN=/path/to/chrome npm run test +------------------------------------------------------------------------------ + +Configuration and compilation instructions +------------------------------------------ + +For the time being, we are still installing everything in the `/openils/` +directory. From the Evergreen source directory, issue the following commands as +the *user* Linux account to configure and build Evergreen: + +[source, bash] +------------------------------------------------------------------------------ +PATH=/openils/bin:$PATH ./configure --prefix=/openils --sysconfdir=/openils/conf +make +------------------------------------------------------------------------------ + +These instructions assume that you have also installed OpenSRF under `/openils/`. +If not, please adjust PATH as needed so that the Evergreen `configure` script +can find `osrf_config`. + +Installation instructions +------------------------- + +1. Once you have configured and compiled Evergreen, issue the following + command as the *root* Linux account to install Evergreen and copy + example configuration files to `/openils/conf`. ++ +[source, bash] +------------------------------------------------------------------------------ +make install +------------------------------------------------------------------------------ + +Change ownership of the Evergreen files +--------------------------------------- + +All files in the `/openils/` directory and subdirectories must be owned by the +`opensrf` user. Issue the following command as the *root* Linux account to +change the ownership on the files: + +[source, bash] +------------------------------------------------------------------------------ +chown -R opensrf:opensrf /openils +------------------------------------------------------------------------------ + +Run ldconfig +------------ + +On Debian Stretch / Buster, run the following command as the root user: + +[source, bash] +------------------------------------------------------------------------------ +ldconfig +------------------------------------------------------------------------------ + +Additional Instructions for Developers +-------------------------------------- + +[NOTE] +Skip this section if you are using an official release tarball downloaded +from http://evergreen-ils.org/egdownloads + +Developers working directly with the source code from the Git repository, +rather than an official release tarball, need to install the Dojo Toolkit +set of JavaScript libraries. The appropriate version of Dojo is included in +Evergreen release tarballs. Developers should install the Dojo 1.3.3 version +of Dojo by issuing the following commands as the *opensrf* Linux account: + +[source, bash] +------------------------------------------------------------------------------ +wget http://download.dojotoolkit.org/release-1.3.3/dojo-release-1.3.3.tar.gz +tar -C /openils/var/web/js -xzf dojo-release-1.3.3.tar.gz +cp -r /openils/var/web/js/dojo-release-1.3.3/* /openils/var/web/js/dojo/. +------------------------------------------------------------------------------ + + +Configure the Apache Web server +------------------------------- + +. Use the example configuration files to configure your Web server for +the Evergreen catalog, web staff client, Web services, and administration +interfaces. Issue the following commands as the *root* Linux account: ++ +[source,bash] +------------------------------------------------------------------------------------ +cp Open-ILS/examples/apache_24/eg_24.conf /etc/apache2/sites-available/eg.conf +cp Open-ILS/examples/apache_24/eg_vhost_24.conf /etc/apache2/eg_vhost.conf +cp Open-ILS/examples/apache_24/eg_startup /etc/apache2/ +# Now set up SSL +mkdir /etc/apache2/ssl +cd /etc/apache2/ssl +------------------------------------------------------------------------------------ ++ +. The `openssl` command cuts a new SSL key for your Apache server. For a +production server, you should purchase a signed SSL certificate, but you can +just use a self-signed certificate and accept the warnings in the +and browser during testing and development. Create an SSL key for the Apache +server by issuing the following command as the *root* Linux account: ++ +[source,bash] +------------------------------------------------------------------------------ +openssl req -new -x509 -days 365 -nodes -out server.crt -keyout server.key +------------------------------------------------------------------------------ ++ +. As the *root* Linux account, edit the `eg.conf` file that you copied into +place. + a. To enable access to the offline upload / execute interface from any + workstation on any network, make the following change (and note that + you *must* secure this for a production instance): + * Replace `Require host 10.0.0.0/8` with `Require all granted` +. Change the user for the Apache server. + * As the *root* Linux account, edit + `/etc/apache2/envvars`. Change `export APACHE_RUN_USER=www-data` to + `export APACHE_RUN_USER=opensrf`. +. As the *root* Linux account, configure Apache with KeepAlive settings + appropriate for Evergreen. Higher values can improve the performance of a + single client by allowing multiple requests to be sent over the same TCP + connection, but increase the risk of using up all available Apache child + processes and memory. + * Edit `/etc/apache2/apache2.conf`. + a. Change `KeepAliveTimeout` to `1`. + b. Change `MaxKeepAliveRequests` to `100`. +. As the *root* Linux account, configure the prefork module to start and keep + enough Apache servers available to provide quick responses to clients without + running out of memory. The following settings are a good starting point for a + site that exposes the default Evergreen catalogue to the web: ++ +.`/etc/apache2/mods-available/mpm_prefork.conf` +[source,bash] +------------------------------------------------------------------------------ + + StartServers 15 + MinSpareServers 5 + MaxSpareServers 15 + MaxRequestWorkers 75 + MaxConnectionsPerChild 500 + +------------------------------------------------------------------------------ ++ +. As the *root* user, enable the mpm_prefork module: ++ +[source,bash] +------------------------------------------------------------------------------ +a2dismod mpm_event +a2enmod mpm_prefork +------------------------------------------------------------------------------ ++ +. As the *root* Linux account, enable the Evergreen site: ++ +[source,bash] +------------------------------------------------------------------------------ +a2dissite 000-default # OPTIONAL: disable the default site (the "It Works" page) +a2ensite eg.conf +------------------------------------------------------------------------------ ++ +. As the *root* Linux account, enable Apache to write + to the lock directory; this is currently necessary because Apache + is running as the `opensrf` user: ++ +[source,bash] +------------------------------------------------------------------------------ +chown opensrf /var/lock/apache2 +------------------------------------------------------------------------------ + +Learn more about additional Apache options in the following sections: + + * <<_apache_rewrite_tricks,Apache Rewrite Tricks>> + * <<_apache_access_handler_perl_module,Apache Access Handler Perl Module>> + +Configure OpenSRF for the Evergreen application +----------------------------------------------- +There are a number of example OpenSRF configuration files in `/openils/conf/` +that you can use as a template for your Evergreen installation. Issue the +following commands as the *opensrf* Linux account: + +[source, bash] +------------------------------------------------------------------------------ +cp -b /openils/conf/opensrf_core.xml.example /openils/conf/opensrf_core.xml +cp -b /openils/conf/opensrf.xml.example /openils/conf/opensrf.xml +------------------------------------------------------------------------------ + +When you installed OpenSRF, you created four Jabber users on two +separate domains and edited the `opensrf_core.xml` file accordingly. Please +refer back to the OpenSRF README and, as the *opensrf* Linux account, edit the +Evergreen version of the `opensrf_core.xml` file using the same Jabber users +and domains as you used while installing and testing OpenSRF. + +[NOTE] +The `-b` flag tells the `cp` command to create a backup version of the +destination file. The backup version of the destination file has a tilde (`~`) +appended to the file name, so if you have forgotten the Jabber users and +domains, you can retrieve the settings from the backup version of the files. + +`eg_db_config`, described in <<_creating_the_evergreen_database,Creating the Evergreen +database>>, sets the database connection information in `opensrf.xml` for you. + +Configure action triggers for the Evergreen application +------------------------------------------------------- +_Action Triggers_ provide hooks for the system to perform actions when a given +event occurs; for example, to generate reminder or overdue notices, the +`checkout.due` hook is processed and events are triggered for potential actions +if there is no checkin time. + +To enable the default set of hooks, issue the following command as the +*opensrf* Linux account: + +[source, bash] +------------------------------------------------------------------------------ +cp -b /openils/conf/action_trigger_filters.json.example /openils/conf/action_trigger_filters.json +------------------------------------------------------------------------------ + +For more information about configuring and running action triggers, see +<<_processing_action_triggers,Notifications / Action Triggers>>. + +Creating the Evergreen database +------------------------------- + +Setting up the PostgreSQL server +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +For production use, most libraries install the PostgreSQL database server on a +dedicated machine. Therefore, by default, the `Makefile.install` prerequisite +installer does *not* install the PostgreSQL 9 database server that is required +by every Evergreen system. You can install the packages required by Debian or +Ubuntu on the machine of your choice using the following commands as the +*root* Linux account: + +. Installing PostgreSQL server packages + +Each OS build target provides the postgres server installation packages +required for each operating system. To install Postgres server packages, +use the make target 'postgres-server-'. Choose the most appropriate +command below based on your operating system. + +[source, bash] +------------------------------------------------------------------------------ +make -f Open-ILS/src/extras/Makefile.install postgres-server-debian-buster +make -f Open-ILS/src/extras/Makefile.install postgres-server-debian-stretch +make -f Open-ILS/src/extras/Makefile.install postgres-server-debian-jessie +make -f Open-ILS/src/extras/Makefile.install postgres-server-ubuntu-xenial +make -f Open-ILS/src/extras/Makefile.install postgres-server-ubuntu-bionic +------------------------------------------------------------------------------ + +For a standalone PostgreSQL server, install the following Perl modules for your +distribution as the *root* Linux account: + +.(Debian and Ubuntu) +No extra modules required for these distributions. + +You need to create a PostgreSQL superuser to create and access the database. +Issue the following command as the *postgres* Linux account to create a new +PostgreSQL superuser named `evergreen`. When prompted, enter the new user's +password: + +[source, bash] +------------------------------------------------------------------------------ +createuser -s -P evergreen +------------------------------------------------------------------------------ + +.Enabling connections to the PostgreSQL database + +Your PostgreSQL database may be configured by default to prevent connections, +for example, it might reject attempts to connect via TCP/IP or from other +servers. To enable TCP/IP connections from localhost, check your `pg_hba.conf` +file, found in the `/etc/postgresql/` directory on Debian and Ubuntu. +A simple way to enable TCP/IP +connections from localhost to all databases with password authentication, which +would be suitable for a test install of Evergreen on a single server, is to +ensure the file contains the following entries _before_ any "host ... ident" +entries: + +------------------------------------------------------------------------------ +host all all ::1/128 md5 +host all all 127.0.0.1/32 md5 +------------------------------------------------------------------------------ + +When you change the `pg_hba.conf` file, you will need to reload PostgreSQL to +make the changes take effect. For more information on configuring connectivity +to PostgreSQL, see +http://www.postgresql.org/docs/devel/static/auth-pg-hba-conf.html + +Creating the Evergreen database and schema +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Once you have created the *evergreen* PostgreSQL account, you also need to +create the database and schema, and configure your configuration files to point +at the database server. Issue the following command as the *root* Linux account +from inside the Evergreen source directory, replacing , , +, , and with the appropriate values for your +PostgreSQL database (where and are for the *evergreen* +PostgreSQL account you just created), and replace and +with the values you want for the *egadmin* Evergreen administrator account: + +[source, bash] +------------------------------------------------------------------------------ +perl Open-ILS/src/support-scripts/eg_db_config --update-config \ + --service all --create-database --create-schema --create-offline \ + --user --password --hostname --port \ + --database --admin-user --admin-pass +------------------------------------------------------------------------------ + +This creates the database and schema and configures all of the services in +your `/openils/conf/opensrf.xml` configuration file to point to that database. +It also creates the configuration files required by the Evergreen `cgi-bin` +administration scripts, and sets the user name and password for the *egadmin* +Evergreen administrator account to your requested values. + +You can get a complete set of options for `eg_db_config` by passing the +`--help` parameter. + +Loading sample data +~~~~~~~~~~~~~~~~~~~ +If you add the `--load-all-sample` parameter to the `eg_db_config` command, +a set of authority and bibliographic records, call numbers, copies, staff +and regular users, and transactions will be loaded into your target +database. This sample dataset is commonly referred to as the _concerto_ +sample data, and can be useful for testing out Evergreen functionality and +for creating problem reports that developers can easily recreate with their +own copy of the _concerto_ sample data. + +Creating the database on a remote server +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +In a production instance of Evergreen, your PostgreSQL server should be +installed on a dedicated server. + +PostgreSQL 9.6 and later +^^^^^^^^^^^^^^^^^^^^^^^^ +To create the database instance on a remote database server running PostgreSQL +9.6 or later, simply use the `--create-database` flag on `eg_db_config`. + +Starting Evergreen +------------------ +1. As the *root* Linux account, start the `memcached` and `ejabberd` services +(if they aren't already running): ++ +[source, bash] +------------------------------------------------------------------------------ +/etc/init.d/ejabberd start +/etc/init.d/memcached start +------------------------------------------------------------------------------ ++ +2. As the *opensrf* Linux account, start Evergreen. The `-l` flag in the +following command is only necessary if you want to force Evergreen to treat the +hostname as `localhost`; if you configured `opensrf.xml` using the real +hostname of your machine as returned by `perl -ENet::Domain 'print +Net::Domain::hostfqdn() . "\n";'`, you should not use the `-l` flag. ++ +[source, bash] +------------------------------------------------------------------------------ +osrf_control -l --start-all +------------------------------------------------------------------------------ ++ + ** If you receive the error message `bash: osrf_control: command not found`, + then your environment variable `PATH` does not include the `/openils/bin` + directory; this should have been set in the *opensrf* Linux account's + `.bashrc` configuration file. To manually set the `PATH` variable, edit the + configuration file `~/.bashrc` as the *opensrf* Linux account and add the + following line: ++ +[source, bash] +------------------------------------------------------------------------------ +export PATH=$PATH:/openils/bin +------------------------------------------------------------------------------ ++ +3. As the *opensrf* Linux account, generate the Web files needed by the web staff + client and catalogue and update the organization unit proximity (you need to do + this the first time you start Evergreen, and after that each time you change the library org unit configuration. +): ++ +[source, bash] +------------------------------------------------------------------------------ +autogen.sh +------------------------------------------------------------------------------ ++ +4. As the *root* Linux account, restart the Apache Web server: ++ +[source, bash] +------------------------------------------------------------------------------ +/etc/init.d/apache2 restart +------------------------------------------------------------------------------ ++ +If the Apache Web server was running when you started the OpenSRF services, you +might not be able to successfully log in to the OPAC or web staff client until the +Apache Web server is restarted. + +Testing connections to Evergreen +-------------------------------- + +Once you have installed and started Evergreen, test your connection to +Evergreen via `srfsh`. As the *opensrf* Linux account, issue the following +commands to start `srfsh` and try to log onto the Evergreen server using the +*egadmin* Evergreen administrator user name and password that you set using the +`eg_db_config` command: + +[source, bash] +------------------------------------------------------------------------------ +/openils/bin/srfsh +srfsh% login +------------------------------------------------------------------------------ + +You should see a result like: + + Received Data: "250bf1518c7527a03249858687714376" + ------------------------------------ + Request Completed Successfully + Request Time in seconds: 0.045286 + ------------------------------------ + + Received Data: { + "ilsevent":0, + "textcode":"SUCCESS", + "desc":" ", + "pid":21616, + "stacktrace":"oils_auth.c:304", + "payload":{ + "authtoken":"e5f9827cc0f93b503a1cc66bee6bdd1a", + "authtime":420 + } + + } + + ------------------------------------ + Request Completed Successfully + Request Time in seconds: 1.336568 + ------------------------------------ +[[install-troubleshooting-1]] +If this does not work, it's time to do some troubleshooting. + + * As the *opensrf* Linux account, run the `settings-tester.pl` script to see + if it finds any system configuration problems. The script is found at + `Open-ILS/src/support-scripts/settings-tester.pl` in the Evergreen source + tree. + * Follow the steps in the http://evergreen-ils.org/dokuwiki/doku.php?id=troubleshooting:checking_for_errors[troubleshooting guide]. + * If you have faithfully followed the entire set of installation steps + listed here, you are probably extremely close to a working system. + Gather your configuration files and log files and contact the + http://evergreen-ils.org/communicate/mailing-lists/[Evergreen development +mailing list] for assistance before making any drastic changes to your system + configuration. + +Getting help +------------ + +Need help installing or using Evergreen? Join the mailing lists at +http://evergreen-ils.org/communicate/mailing-lists/ or contact us on the Freenode +IRC network on the #evergreen channel. + +License +------- +This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 +Unported License. To view a copy of this license, visit +http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative +Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA. diff --git a/configure.ac b/configure.ac index dacb5a36b7..c792514b6b 100644 --- a/configure.ac +++ b/configure.ac @@ -20,8 +20,8 @@ export PATH=${PATH}:/usr/sbin AC_PREREQ(2.61) -AC_INIT(Open-ILS, trunk, open-ils-dev@list.georgialibraries.org) -AM_INIT_AUTOMAKE([OpenILS], [trunk]) +AC_INIT(Open-ILS, 3.4.4, open-ils-dev@list.georgialibraries.org) +AM_INIT_AUTOMAKE([OpenILS], [3.4.4]) AC_REVISION($Revision: 0.1 $) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_SUBDIRS([Open-ILS/xul/staff_client/external/libmar])