(2, 10, oils_i18n_gettext(2, 'System Local', 'cbs', 'source'), FALSE, TRUE);
INSERT INTO config.bib_source (id, quality, source, transcendant, can_have_copies) VALUES
(3, 1, oils_i18n_gettext(3, 'Project Gutenberg', 'cbs', 'source'), TRUE, TRUE);
+INSERT INTO config.bib_source (id, quality, source, transcendant, can_have_copies) VALUES
+ (4, 1, oils_i18n_gettext(4, 'Course materials module', 'cbs', 'source'), TRUE, FALSE);
SELECT SETVAL('config.bib_source_id_seq'::TEXT, 100);
INSERT INTO biblio.peer_type (id,name) VALUES
VALUES (
52, 'identifier', 'origin_info', 'marcxml',
oils_i18n_gettext(52, 'Origin Info', 'cmf', 'label'),
- $$//*[@tag='260']$$,
+ $$//*[@tag='260' or @tag='264'][1]$$,
$$//*[local-name()='subfield' and contains('abc',@code)]$$,
TRUE, FALSE, FALSE
);
( 622, 'VIEW_BOOKING_RESOURCE', oils_i18n_gettext(622,
'View booking resources', 'ppl', 'description')),
( 623, 'UPDATE_ORG_UNIT_SETTING.opac.matomo', oils_i18n_gettext(623,
- 'Allows a user to configure Matomo Analytics org unit settings', 'ppl', 'description'))
+ 'Allows a user to configure Matomo Analytics org unit settings', 'ppl', 'description')),
+ ( 624, 'MANAGE_RESERVES', oils_i18n_gettext(624,
+ 'Allows user to manage Courses, Course Materials, and associate Users with Courses.', 'ppl', 'description')),
+ ( 625, 'VIEW_BOOKING_RESERVATION', oils_i18n_gettext(625,
+ 'View booking reservations', 'ppl', 'description')),
+ ( 626, 'VIEW_BOOKING_RESERVATION_ATTR_MAP', oils_i18n_gettext(626,
+ 'View booking reservation attribute maps', 'ppl', 'description')),
+ ( 627, 'SSO_ADMIN', oils_i18n_gettext(627,
+ 'Modify patron SSO settings', 'ppl', 'description')),
+ ( 628, 'MANAGE_HOLD_GROUPS', oils_i18n_gettext(628,
+ 'Manage batch (subscription) hold events', 'ppl', 'description')),
+ ( 629, 'ADMIN_LIBRARY_GROUPS', oils_i18n_gettext(629,
+ 'Administer library groups', 'ppl', 'description')),
+ ( 630, 'VIEW_GEOLOCATION_SERVICES', oils_i18n_gettext(630,
+ 'View geographic location services', 'ppl', 'description')),
+ ( 631, 'ADMIN_GEOLOCATION_SERVICES', oils_i18n_gettext(631,
+ 'Administer geographic location services', 'ppl', 'description')),
+ ( 632, 'UPDATE_USER_PHOTO_URL', oils_i18n_gettext(632,
+ 'Update the user photo url field in patron registration and editor', 'ppl', 'description'))
;
'UPDATE_PICKUP_LIB_FROM_HOLDS_SHELF',
'VIEW_BOOKING_RESOURCE',
'VIEW_BOOKING_RESOURCE_TYPE',
+ 'VIEW_BOOKING_RESERVATION',
+ 'VIEW_BOOKING_RESERVATION_ATTR_MAP',
'VIEW_GROUP_PENALTY_THRESHOLD',
'VIEW_STANDING_PENALTY',
'VOID_BILLING',
'PATRON_EXCEEDS_FINES.override',
'PATRON_EXCEEDS_OVERDUE_COUNT.override',
'RETRIEVE_RESERVATION_PULL_LIST',
- 'UPDATE_HOLD');
+ 'UPDATE_HOLD',
+ 'UPDATE_USER_PHOTO_URL');
-- Add advanced circulation permissions to the Circulation Admin group
'CREATE_CIRC_DURATION',
'CREATE_PRECAT',
'DELETE_CIRC_DURATION',
+ 'MANAGE_RESERVES',
'MARK_ITEM_MISSING_PIECES',
'UPDATE_CIRC_DURATION',
'UPDATE_HOLD_REQUEST_TIME',
'UPDATE_USER',
'VIEW_BOOKING_RESOURCE',
'VIEW_BOOKING_RESOURCE_TYPE',
+ 'VIEW_BOOKING_RESERVATION',
+ 'VIEW_BOOKING_RESERVATION_ATTR_MAP',
'VIEW_REPORT_OUTPUT',
'VIEW_STANDING_PENALTY',
'VOID_BILLING',
'VIEW_PROVIDER',
'VIEW_PURCHASE_ORDER',
'VIEW_IMPORT_MATCH_SET',
- 'VIEW_MERGE_PROFILE'
+ 'VIEW_MERGE_PROFILE',
'VIEW_REPORT_OUTPUT');
INSERT INTO action.hold_request_cancel_cause (id,label) VALUES (5, oils_i18n_gettext(5, 'Staff forced', 'ahrcc', 'label'));
INSERT INTO action.hold_request_cancel_cause (id,label) VALUES (6, oils_i18n_gettext(6, 'Patron via OPAC', 'ahrcc', 'label'));
INSERT INTO action.hold_request_cancel_cause (id,label) VALUES (7, oils_i18n_gettext(7, 'Patron via SIP', 'ahrcc', 'label'));
+INSERT INTO action.hold_request_cancel_cause (id,label) VALUES (8, oils_i18n_gettext(8, 'Hold Group Event rollback', 'ahrcc', 'label'));
SELECT SETVAL('action.hold_request_cancel_cause_id_seq', 100);
'string'
);
+INSERT INTO config.usr_setting_type (
+ name,
+ opac_visible,
+ label,
+ description,
+ datatype,
+ reg_default
+) VALUES (
+ 'circ.default_overdue_notices_enabled',
+ TRUE,
+ oils_i18n_gettext(
+ 'circ.default_overdue_notices_enabled',
+ 'Receive Overdue and Courtesy Emails',
+ 'cust',
+ 'label'
+ ),
+ oils_i18n_gettext(
+ 'circ.default_overdue_notices_enabled',
+ 'Receive overdue and predue email notifications',
+ 'cust',
+ 'description'
+ ),
+ 'bool',
+ 'true'
+);
+
-- Add groups for org_unit settings
INSERT INTO config.settings_group (name, label) VALUES
('acq', oils_i18n_gettext('acq', 'Acquisitions', 'csg', 'label')),
'coust', 'description'),
'bool', null)
+,( 'circ.renew.expired_patron_allow', 'circ',
+ oils_i18n_gettext('circ.renew.expired_patron_allow',
+ 'Allow renewal request if renewal recipient privileges have expired',
+ 'coust', 'label'),
+ oils_i18n_gettext('circ.renew.expired_patron_allow',
+ 'If enabled, users within the org unit who are expired may still renew items.',
+ 'coust', 'description'),
+ 'bool', null)
+
,( 'circ.holds.hold_has_copy_at.alert', 'holds',
oils_i18n_gettext('circ.holds.hold_has_copy_at.alert',
'Has Local Copy Alert',
'coust', 'description'),
'bool', null)
+,( 'circ.course_materials_opt_in', 'circ',
+ oils_i18n_gettext(
+ 'circ.course_materials_opt_in',
+ 'Opt Org Unit into the Course Materials Module',
+ 'coust', 'label'),
+ oils_i18n_gettext(
+ 'circ.course_materials_opt_in',
+ 'If enabled, the Org Unit will utilize Course Material functionality.',
+ 'coust', 'description'),
+ 'bool', null)
+
+,( 'circ.course_materials_browse_by_instructor', 'circ',
+ oils_i18n_gettext(
+ 'circ.course_materials_browse_by_instructor',
+ 'Allow users to browse Courses by Instructor',
+ 'coust', 'label'),
+ oils_i18n_gettext(
+ 'circ.course_materials_browse_by_instructor',
+ 'If enabled, the Org Unit will allow OPAC users to browse Courses by instructor name.',
+ 'coust', 'description'),
+ 'bool', null)
+
+,( 'circ.course_materials_brief_record_bib_source', 'circ',
+ oils_i18n_gettext(
+ 'circ.course_materials_brief_record_bib_source',
+ 'Bib source for brief records created in the course materials module',
+ 'coust', 'label'),
+ oils_i18n_gettext(
+ 'circ.course_materials_brief_record_bib_source',
+ 'The course materials module will use this bib source for any new brief bibliographic records made inside that module. For best results, use a transcendant bib source.',
+ 'coust', 'description'),
+ 'link', 'cbs')
+
+
,( 'circ.password_reset_request_per_user_limit', 'sec',
oils_i18n_gettext('circ.password_reset_request_per_user_limit',
'Maximum concurrently active self-serve password reset requests per user',
'For staff-placed holds, in the absence of a patron preferred pickup location, fall back to using the staff workstation OU (rather than patron home OU)',
'coust', 'description'),
'bool', null)
+,( 'ui.patron.edit.au.photo_url.require', 'gui',
+ oils_i18n_gettext('ui.patron.edit.au.photo_url.require',
+ 'Require Photo URL field on patron registration',
+ 'coust', 'label'),
+ oils_i18n_gettext('ui.patron.edit.au.photo_url.require',
+ 'The Photo URL field will be required on the patron registration screen.',
+ 'coust', 'description'),
+ 'bool', null)
+,( 'ui.patron.edit.au.photo_url.show', 'gui',
+ oils_i18n_gettext('ui.patron.edit.au.photo_url.show',
+ 'Show Photo URL field on patron registration',
+ 'coust', 'label'),
+ oils_i18n_gettext('ui.patron.edit.au.photo_url.show',
+ 'The Photo URL field will be shown on the patron registration screen. Showing a field makes it appear with required fields even when not required. If the field is required this setting is ignored.',
+ 'coust', 'description'),
+ 'bool', null)
+,( 'ui.patron.edit.au.photo_url.suggest', 'gui',
+ oils_i18n_gettext('ui.patron.edit.au.photo_url.suggest',
+ 'Suggest Photo URL field on patron registration',
+ 'coust', 'label'),
+ oils_i18n_gettext('ui.patron.edit.au.photo_url.suggest',
+ 'The Photo URL field will be suggested on the patron registration screen. Suggesting a field makes it appear when suggested fields are shown. If the field is shown or required this setting is ignored.',
+ 'coust', 'description'),
+ 'bool', null)
;
UPDATE config.org_unit_setting_type
INSERT INTO container.user_bucket_type (code,label) VALUES ('folks:hold.cancel', oils_i18n_gettext('folks:hold.cancel', 'Cancel Holds', 'cubt', 'label'));
INSERT INTO container.user_bucket_type (code,label) SELECT code,label FROM container.copy_bucket_type where code = 'staff_client';
+INSERT INTO container.user_bucket_type (code,label) VALUES ('hold_subscription', oils_i18n_gettext('hold_subscription', 'Hold Group Container', 'cubt', 'label'));
----------------------------------
-- MARC21 record structure data --
INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('MRec', '008', 'VIS', 38, 1, ' ');
INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('S/L', '006', 'SER', 17, 1, '0');
INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('S/L', '008', 'SER', 34, 1, '0');
+INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Srce', '008', 'BKS', 39, 1, ' ');
+INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Srce', '008', 'COM', 39, 1, ' ');
+INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Srce', '008', 'MAP', 39, 1, ' ');
+INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Srce', '008', 'MIX', 39, 1, ' ');
+INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Srce', '008', 'REC', 39, 1, ' ');
+INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Srce', '008', 'SCO', 39, 1, ' ');
+INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Srce', '008', 'SER', 39, 1, ' ');
+INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Srce', '008', 'VIS', 39, 1, ' ');
INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('TMat', '006', 'VIS', 16, 1, ' ');
INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('TMat', '008', 'VIS', 33, 1, ' ');
INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Type', 'ldr', 'BKS', 6, 1, 'a');
INSERT INTO config.record_attr_definition (name,label,fixed_field,description) values ('lit_form','LitF','LitF',oils_i18n_gettext('lit_form', 'Literary Form', 'crad', 'description'));
INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('mrec','MRec','MRec');
INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('ff_sl','S/L','S/L');
+INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('srce','Srce','Srce');
INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('type_mat','TMat','TMat');
INSERT INTO config.record_attr_definition (name,label,fixed_field,multi,description) values ('item_type','Type','Type',FALSE,oils_i18n_gettext('item_type', 'Item Type', 'crad', 'description'));
INSERT INTO config.record_attr_definition (name,label,phys_char_sf,description) values ('vr_format','Videorecording format',72,oils_i18n_gettext('vr_format', 'Video Format', 'crad', 'description'));
oils_i18n_gettext(633, 'Blu-ray', 'ccvm', 'search_label')),
(1737,'search_format','preloadedaudio',
oils_i18n_gettext(1737, 'Preloaded Audio', 'ccvm', 'value'),
- oils_i18n_gettext(1737, 'Preloaded Audio', 'ccvm', 'search_label'));
+ oils_i18n_gettext(1737, 'Preloaded Audio', 'ccvm', 'search_label')),
+(1738,'search_format','video',
+ oils_i18n_gettext(1738, 'All Videos', 'ccvm', 'value'),
+ oils_i18n_gettext(1738, 'All Videos', 'ccvm', 'search_label'));
-- Electronic search format, not opac_visible
INSERT INTO config.coded_value_map
INSERT INTO config.coded_value_map (id, ctype, code, value, opac_visible) VALUES (1733, 'ills4', 'o', oils_i18n_gettext('1733', 'Photographs', 'ccvm', 'value'), FALSE);
INSERT INTO config.coded_value_map (id, ctype, code, value, opac_visible) VALUES (1734, 'ills4', 'p', oils_i18n_gettext('1734', 'Illuminations', 'ccvm', 'value'), FALSE);
+INSERT INTO config.coded_value_map (id, ctype, code, value) VALUES
+(1750, 'srce', ' ', oils_i18n_gettext('1750', 'National bibliographic agency', 'ccvm', 'value')),
+(1751, 'srce', 'c', oils_i18n_gettext('1751', 'Cooperative cataloging program', 'ccvm', 'value')),
+(1752, 'srce', 'd', oils_i18n_gettext('1752', 'Other', 'ccvm', 'value'));
+
-- carve out a slot of 10k IDs for stock CCVMs
SELECT SETVAL('config.coded_value_map_id_seq'::TEXT, 10000);
(coded_value, definition) VALUES
(1736,'{"0":{"_attr":"item_type","_val":"i"},"1":{"_attr":"item_form","_val":"q"}}');
+--all videos
+INSERT INTO config.composite_attr_entry_definition (coded_value, definition) VALUES
+ (1738, '{"_attr":"item_type","_val":"g"}');
-- use the definitions from the icon_format as the basis for the MR hold format definitions
DO $$
-- Sample Overdue Notice --
-INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field, group_field, max_delay, template)
- VALUES (1, 'f', 1, '7 Day Overdue Email Notification', 'checkout.due', 'CircIsOverdue', 'SendEmail', '7 days', 'due_date', 'usr', '8 days',
+INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field, group_field, max_delay, opt_in_setting, usr_field, template)
+ VALUES (1, 'f', 1, '7 Day Overdue Email Notification', 'checkout.due', 'CircIsOverdue', 'SendEmail', '7 days', 'due_date', 'usr', '8 days', 'circ.default_overdue_notices_enabled', 'usr',
$$
[%- USE date -%]
[%- user = target.0.usr -%]
-- Sample Pre-due Notice --
-INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field, group_field, max_delay, template)
- VALUES (6, 'f', 1, '3 Day Courtesy Notice', 'checkout.due', 'CircIsOpen', 'SendEmail', '-3 days', 'due_date', 'usr', '-2 days',
+INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field, group_field, max_delay, opt_in_setting, usr_field, template)
+ VALUES (6, 'f', 1, '3 Day Courtesy Notice', 'checkout.due', 'CircIsOpen', 'SendEmail', '-3 days', 'due_date', 'usr', '-2 days', 'circ.default_overdue_notices_enabled', 'usr',
$$
[%- USE date -%]
[%- user = target.0.usr -%]
),
oils_i18n_gettext(
'ui.circ.items_out.longoverdue',
-'Value is a numeric code, describing which list the circulation '||
-'should appear while checked out and whether the circulation should '||
-'continue to appear in the bottom list, when checked in with '||
+'Value is a numeric code, describing: A. In which tab ("Items Checked Out", '||
+'or "Other/Special Circulations") the circulation '||
+'should appear while checked out, and B. Whether the circulation should '||
+'continue to appear in the "Other" tab when checked in with '||
'oustanding fines. '||
-'1 = top list, bottom list. 2 = bottom list, bottom list. ' ||
-'5 = top list, do not display. 6 = bottom list, do not display.',
+'1 = (A) "Items", (B) "Other". 2 = (A) "Other", (B) "Other". ' ||
+'5 = (A) "Items", (B) do not display. 6 = (A) "Other", (B) do not display.',
'coust',
'description'
)
),
oils_i18n_gettext(
'ui.circ.items_out.lost',
-'Value is a numeric code, describing which list the circulation '||
-'should appear while checked out and whether the circulation should '||
-'continue to appear in the bottom list, when checked in with '||
+'Value is a numeric code, describing: A. In which tab ("Items Checked Out", '||
+'or "Other/Special Circulations") the circulation '||
+'should appear while checked out, and B. Whether the circulation should '||
+'continue to appear in the "Other" tab when checked in with '||
'oustanding fines. '||
-'1 = top list, bottom list. 2 = bottom list, bottom list. ' ||
-'5 = top list, do not display. 6 = bottom list, do not display.',
+'1 = (A) "Items", (B) "Other". 2 = (A) "Other", (B) "Other". ' ||
+'5 = (A) "Items", (B) do not display. 6 = (A) "Other", (B) do not display.',
'coust',
'description'
)
),
oils_i18n_gettext(
'ui.circ.items_out.claimsreturned',
-'Value is a numeric code, describing which list the circulation '||
-'should appear while checked out and whether the circulation should '||
-'continue to appear in the bottom list, when checked in with '||
+'Value is a numeric code, describing: A. In which tab ("Items Checked Out", '||
+'or "Other/Special Circulations") the circulation '||
+'should appear while checked out, and B. Whether the circulation should '||
+'continue to appear in the "Other" tab when checked in with '||
'oustanding fines. '||
-'1 = top list, bottom list. 2 = bottom list, bottom list. ' ||
-'5 = top list, do not display. 6 = bottom list, do not display.',
+'1 = (A) "Items", (B) "Other". 2 = (A) "Other", (B) "Other". ' ||
+'5 = (A) "Items", (B) do not display. 6 = (A) "Other", (B) do not display.',
'coust',
'description'
)
(currval('action_trigger.event_definition_id_seq'), 'home_ou.mailing_address'),
(currval('action_trigger.event_definition_id_seq'), 'home_ou.billing_address');
+INSERT INTO action_trigger.event_definition (active, owner, name, hook, validator, reactor, delay, delay_field, group_field, cleanup_success, template)
+ VALUES ('f', 1, 'Hold Group Hold Placed for Patron Email Notification', 'hold_request.success', 'NOOP_True', 'SendEmail', '30 minutes', 'request_time', 'usr', 'CreateHoldNotification',
+$$
+[%- USE date -%]
+[%- user = target.0.usr -%]
+To: [%- params.recipient_email || user.email %]
+From: [%- params.sender_email || default_sender %]
+Date: [%- date.format(date.now, '%a, %d %b %Y %T -0000', gmt => 1) %]
+Subject: Subcription Hold placed for you
+Auto-Submitted: auto-generated
+
+Dear [% user.family_name %], [% user.first_given_name %]
+The following items have been placed on hold for you:
+
+[% FOR hold IN target %]
+ [%- copy_details = helpers.get_copy_bib_basics(hold.current_copy.id) -%]
+ Title: [% copy_details.title %]
+ Author: [% copy_details.author %]
+ Call Number: [% hold.current_copy.call_number.label %]
+ Barcode: [% hold.current_copy.barcode %]
+ Library: [% hold.pickup_lib.name %]
+[% END %]
+
+$$);
+
+INSERT INTO action_trigger.environment (event_def, path ) VALUES
+( currval('action_trigger.event_definition_id_seq'), 'usr' ),
+( currval('action_trigger.event_definition_id_seq'), 'pickup_lib' ),
+( currval('action_trigger.event_definition_id_seq'), 'current_copy.call_number' );
+
+INSERT INTO action_trigger.event_definition (
+ active, owner, name, hook, validator, reactor, cleanup_success,
+ delay, delay_field, group_field, template
+) VALUES (
+ false, 1, 'Hold Group Hold Placed for Patron SMS Notification', 'hold_request.success', 'NOOP_True',
+ 'SendSMS', 'CreateHoldNotification', '00:30:00', 'shelf_time', 'sms_notify',
+ '[%- USE date -%]
+[%- user = target.0.usr -%]
+From: [%- params.sender_email || default_sender %]
+Date: [%- date.format(date.now, ''%a, %d %b %Y %T -0000'', gmt => 1) %]
+To: [%- params.recipient_email || helpers.get_sms_gateway_email(target.0.sms_carrier,target.0.sms_notify) %]
+Subject: [% target.size %] subscription hold(s) placed for you
+Auto-Submitted: auto-generated
+
+[% FOR hold IN target %][%-
+ bibxml = helpers.xml_doc( hold.current_copy.call_number.record.marc );
+ title = "";
+ FOR part IN bibxml.findnodes(''//*[@tag="245"]/*[@code="a"]'');
+ title = title _ part.textContent;
+ END;
+ author = bibxml.findnodes(''//*[@tag="100"]/*[@code="a"]'').textContent;
+%][% hold.usr.first_given_name %]:[% title %] @ [% hold.pickup_lib.name %]
+[% END %]
+'
+);
+
+INSERT INTO action_trigger.environment (
+ event_def,
+ path
+) VALUES (
+ currval('action_trigger.event_definition_id_seq'),
+ 'current_copy.call_number.record.simple_record'
+), (
+ currval('action_trigger.event_definition_id_seq'),
+ 'usr'
+), (
+ currval('action_trigger.event_definition_id_seq'),
+ 'pickup_lib.billing_address'
+);
+
+INSERT INTO action_trigger.event_params (event_def, param, value)
+ VALUES (currval('action_trigger.event_definition_id_seq'), 'check_sms_notify', 1);
INSERT INTO config.org_unit_setting_type
(name, grp, label, description, datatype)
'cwst', 'label'
)
), (
+ 'eg.grid.hopeless.wide_holds', 'gui', 'object',
+ oils_i18n_gettext(
+ 'eg.grid.hopeless.wide_holds',
+ 'Grid Config: hopeless.wide_holds',
+ 'cwst', 'label'
+ )
+), (
'eg.grid.cat.holdings', 'gui', 'object',
oils_i18n_gettext(
'eg.grid.cat.holdings',
'coust', 'description'),
'bool', null);
+INSERT INTO config.org_unit_setting_type
+( name, grp, label, description, datatype, update_perm )
+VALUES
+('opac.login.shib_sso.enable',
+ 'opac',
+ oils_i18n_gettext('opac.login.shib_sso.enable', 'Enable Shibboleth SSO for the OPAC', 'coust', 'label'),
+ oils_i18n_gettext('opac.login.shib_sso.enable', 'Enable Shibboleth SSO for the OPAC', 'coust', 'description'),
+ 'bool', 627),
+('opac.login.shib_sso.entityId',
+ 'opac',
+ oils_i18n_gettext('opac.login.shib_sso.entityId', 'Shibboleth SSO Entity ID', 'coust', 'label'),
+ oils_i18n_gettext('opac.login.shib_sso.entityId', 'Which configured Entity ID to use for SSO when there is more than one available to Shibboleth', 'coust', 'description'),
+ 'string', 627),
+('opac.login.shib_sso.logout',
+ 'opac',
+ oils_i18n_gettext('opac.login.shib_sso.logout', 'Log out of the Shibboleth IdP', 'coust', 'label'),
+ oils_i18n_gettext('opac.login.shib_sso.logout', 'When logging out of Evergreen, also force a logout of the IdP behind Shibboleth', 'coust', 'description'),
+ 'bool', 627),
+('opac.login.shib_sso.allow_native',
+ 'opac',
+ oils_i18n_gettext('opac.login.shib_sso.allow_native', 'Allow both Shibboleth and native OPAC authentication', 'coust', 'label'),
+ oils_i18n_gettext('opac.login.shib_sso.allow_native', 'When Shibboleth SSO is enabled, also allow native Evergreen authentication', 'coust', 'description'),
+ 'bool', 627),
+('opac.login.shib_sso.evergreen_matchpoint',
+ 'opac',
+ oils_i18n_gettext('opac.login.shib_sso.evergreen_matchpoint', 'Evergreen SSO matchpoint', 'coust', 'label'),
+ oils_i18n_gettext('opac.login.shib_sso.evergreen_matchpoint',
+ 'Evergreen-side field to match a patron against for Shibboleth SSO. Default is usrname. Other reasonable values would be barcode or email.',
+ 'coust', 'description'),
+ 'string', 627),
+('opac.login.shib_sso.shib_matchpoint',
+ 'opac',
+ oils_i18n_gettext('opac.login.shib_sso.shib_matchpoint', 'Shibboleth SSO matchpoint', 'coust', 'label'),
+ oils_i18n_gettext('opac.login.shib_sso.shib_matchpoint',
+ 'Shibboleth-side field to match a patron against for Shibboleth SSO. Default is uid; use eppn for Active Directory', 'coust', 'description'),
+ 'string', 627)
+;
+
+INSERT INTO config.org_unit_setting_type
+ (name, label, description, grp, datatype)
+VALUES (
+ 'holds.subscription.randomize',
+ oils_i18n_gettext(
+ 'holds.subscription.randomize',
+ 'Randomize group hold order',
+ 'coust',
+ 'label'
+ ),
+ oils_i18n_gettext(
+ 'holds.subscription.randomize',
+ 'When placing a batch group hold, randomize the order of the patrons receiving the holds so they are not always in the same order.',
+ 'coust',
+ 'description'
+ ),
+ 'holds',
+ 'bool'
+);
INSERT INTO config.workstation_setting_type (name, grp, datatype, label)
VALUES (
)
);
+INSERT INTO config.workstation_setting_type (name, grp, datatype, label)
+VALUES (
+ 'eg.print.template_context.booking_capture', 'gui', 'string',
+ oils_i18n_gettext(
+ 'eg.print.template_context.booking_capture',
+ 'Print Template Context: booking_capture',
+ 'cwst', 'label'
+ )
+);
INSERT INTO config.workstation_setting_type (name, grp, datatype, label)
VALUES (
'Grid Config: Booking Captured Reservations',
'cwst', 'label')
), (
- 'eg.booking.manage.selected_org_family', 'gui', 'object',
+ 'eg.grid.booking.pull_list', 'gui', 'object',
+ oils_i18n_gettext(
+ 'booking.pull_list',
+ 'Grid Config: Booking Pull List',
+ 'cwst', 'label')
+),(
+ 'eg.booking.manage.selected_org_family', 'gui', 'object',
oils_i18n_gettext(
'booking.manage.selected_org_family',
'Sticky setting for pickup ou family in Manage Reservations screen',
)
);
+INSERT INTO actor.org_unit_setting (org_unit, name, value)
+ SELECT 1, 'circ.course_materials_brief_record_bib_source', id
+ FROM config.bib_source
+ WHERE source='Course materials module';
+
+INSERT INTO asset.course_module_role (id, name, is_public) VALUES
+(1, oils_i18n_gettext(1, 'Instructor', 'acmr', 'name'), true),
+(2, oils_i18n_gettext(2, 'Teaching assistant', 'acmr', 'name'), true),
+(3, oils_i18n_gettext(3, 'Student', 'acmr', 'name'), false);
+SELECT SETVAL('asset.course_module_role_id_seq'::TEXT, 100);
+
+
+
INSERT INTO config.workstation_setting_type (name, grp, datatype, label)
VALUES (
'eg.catalog.results.count', 'gui', 'integer',
'cwst', 'label'
)
), (
+ 'eg.orgselect.hopeless.wide_holds', 'gui', 'integer',
+ oils_i18n_gettext(
+ 'eg.orgselect.hopeless.wide_holds',
+ 'Default org unit for hopeless holds interface',
+ 'cwst', 'label'
+ )
+), (
'eg.grid.cat.authority.browse', 'gui', 'object',
oils_i18n_gettext(
'eg.grid.cat.authority.browse',
'coust', 'description'),
'string', 623
);
+-- curbside pickup
+INSERT INTO config.org_unit_setting_type (name, label, grp, description, datatype)
+VALUES (
+ 'circ.curbside',
+ oils_i18n_gettext('circ.curbside',
+ 'Enable curbside pickup functionality at library.',
+ 'coust', 'label'),
+ 'circ',
+ oils_i18n_gettext('circ.curbside',
+ 'When set to TRUE, enable staff and public interfaces to schedule curbside pickup of holds that become available for pickup.',
+ 'coust', 'description'),
+ 'bool'
+);
+
+INSERT INTO config.org_unit_setting_type (name, label, grp, description, datatype)
+VALUES (
+ 'circ.curbside.granularity',
+ oils_i18n_gettext('circ.curbside.granularity',
+ 'Time interval between curbside appointments',
+ 'coust', 'label'),
+ 'circ',
+ oils_i18n_gettext('circ.curbside.granularity',
+ 'Time interval between curbside appointments',
+ 'coust', 'description'),
+ 'interval'
+);
+
+INSERT INTO config.org_unit_setting_type (name, label, grp, description, datatype)
+VALUES (
+ 'circ.curbside.max_concurrent',
+ oils_i18n_gettext('circ.curbside.max_concurrent',
+ 'Maximum number of patrons that may select a particular curbside pickup time',
+ 'coust', 'label'),
+ 'circ',
+ oils_i18n_gettext('circ.curbside.max_concurrent',
+ 'Maximum number of patrons that may select a particular curbside pickup time',
+ 'coust', 'description'),
+ 'integer'
+);
+
+INSERT INTO config.org_unit_setting_type (name, label, grp, description, datatype)
+VALUES (
+ 'circ.curbside.disable_patron_input',
+ oils_i18n_gettext('circ.curbside.disable_patron_input',
+ 'Disable patron modification of curbside appointments in public catalog',
+ 'coust', 'label'),
+ 'circ',
+ oils_i18n_gettext('circ.curbside.disable_patron_input',
+ 'When set to TRUE, patrons cannot use the My Account interface to select curbside pickup times',
+ 'coust', 'description'),
+ 'bool'
+);
+
+INSERT INTO actor.org_unit_setting (org_unit, name, value)
+ SELECT id, 'circ.curbside', 'false' FROM actor.org_unit WHERE parent_ou IS NULL
+ UNION
+ SELECT id, 'circ.curbside.max_concurrent', '10' FROM actor.org_unit WHERE parent_ou IS NULL
+ UNION
+ SELECT id, 'circ.curbside.granularity', '"15 minutes"' FROM actor.org_unit WHERE parent_ou IS NULL
+;
+
+INSERT INTO action_trigger.hook (key, core_type, description, passive)
+VALUES (
+ 'hold.offer_curbside',
+ 'ahr',
+ oils_i18n_gettext(
+ 'hold.offer_curbside',
+ 'Hook used to trigger the notification of an offer of curbside pickup',
+ 'ath',
+ 'description'
+ ),
+ FALSE
+);
+
+INSERT INTO action_trigger.hook (key, core_type, description, passive)
+VALUES (
+ 'hold.confirm_curbside',
+ 'acsp',
+ oils_i18n_gettext(
+ 'hold.confirm_curbside',
+ 'Hook used to trigger the notification of the creation or update of a curbside pickup appointment with an arrival URL',
+ 'ath',
+ 'description'
+ ),
+ FALSE
+);
+
+INSERT INTO action_trigger.reactor (module, description) VALUES (
+ 'CurbsideSlot', 'Create a curbside pickup appointment slot when necessary'
+);
+
+INSERT INTO action_trigger.validator (module, description) VALUES (
+ 'Curbside', 'Confirm that curbside pickup is enabled for the hold pickup library'
+);
+
+-- geosort
+
+INSERT INTO config.global_flag (name, value, enabled, label)
+VALUES (
+ 'opac.use_geolocation',
+ NULL,
+ FALSE,
+ oils_i18n_gettext(
+ 'opac.use_geolocation',
+ 'Offer use of geographic location services in the public catalog',
+ 'cgf', 'label'
+ )
+);
+
+INSERT INTO config.org_unit_setting_type (name, label, grp, description, datatype)
+VALUES (
+ 'opac.holdings_sort_by_geographic_proximity',
+ oils_i18n_gettext('opac.holdings_sort_by_geographic_proximity',
+ 'Enable Holdings Sort by Geographic Proximity',
+ 'coust', 'label'),
+ 'opac',
+ oils_i18n_gettext('opac.holdings_sort_by_geographic_proximity',
+ 'When set to TRUE, will cause the record details page to display the controls for sorting holdings by geographic proximity. This also depends on the global flag opac.use_geolocation being enabled.',
+ 'coust', 'description'),
+ 'bool'
+);
+
+INSERT INTO config.org_unit_setting_type (name, label, grp, description, datatype)
+VALUES (
+ 'opac.geographic_proximity_in_miles',
+ oils_i18n_gettext('opac.geographic_proximity_in_miles',
+ 'Show Geographic Proximity in Miles',
+ 'coust', 'label'),
+ 'opac',
+ oils_i18n_gettext('opac.geographic_proximity_in_miles',
+ 'When set to TRUE, will cause the record details page to show distances for geographic proximity in miles instead of kilometers.',
+ 'coust', 'description'),
+ 'bool'
+);
+
+INSERT INTO config.org_unit_setting_type (name, label, grp, description, datatype, fm_class)
+VALUES (
+ 'opac.geographic_location_service_for_address',
+ oils_i18n_gettext('opac.geographic_location_service_for_address',
+ 'Geographic Location Service to use for Addresses',
+ 'coust', 'label'),
+ 'opac',
+ oils_i18n_gettext('opac.geographic_location_service_for_address',
+ 'Specifies which geographic location service to use for converting address input to geographic coordinates.',
+ 'coust', 'description'),
+ 'link', 'cgs'
+);
+
+INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
+ SELECT
+ pgt.id, perm.id, aout.depth, TRUE
+ FROM
+ permission.grp_tree pgt,
+ permission.perm_list perm,
+ actor.org_unit_type aout
+ WHERE
+ (pgt.name = 'Global Administrator' OR pgt.name = 'System Administrator') AND
+ aout.name = 'Consortium' AND
+ (perm.code = 'ADMIN_GEOLOCATION_SERVICES' OR perm.code = 'VIEW_GEOLOCATION_SERVICES');
+
+------------------- Disabled example A/T defintions ------------------------------
+
+-- Create a "dummy" slot when applicable, and trigger the "offer curbside" events
+INSERT INTO action_trigger.event_definition (
+ active,
+ owner,
+ name,
+ hook,
+ validator,
+ reactor,
+ delay
+) VALUES (
+ 'f',
+ 1,
+ 'Trigger curbside offer events and create a placeholder for the patron, where applicable',
+ 'hold.available',
+ 'Curbside',
+ 'CurbsideSlot',
+ '00:30:00'
+);
+
+-- Email offer
+INSERT INTO action_trigger.event_definition (
+ active,
+ owner,
+ name,
+ hook,
+ validator,
+ reactor,
+ delay,
+ delay_field,
+ group_field,
+ template
+) VALUES (
+ 'f',
+ 1,
+ 'Curbside offer Email notification, triggered by CurbsideSlot reactor on a definition attached to the hold.available hook',
+ 'hold.offer_curbside',
+ 'Curbside',
+ 'SendEmail',
+ '00:00:00',
+ 'shelf_time',
+ 'usr',
+$$
+[%- USE date -%]
+[%- user = target.0.usr -%]
+To: [%- params.recipient_email || user.email %]
+From: [%- params.sender_email || default_sender %]
+Date: [%- date.format(date.now, '%a, %d %b %Y %T -0000', gmt => 1) %]
+Subject: Curbside Pickup
+Auto-Submitted: auto-generated
+
+[% target.0.pickup_lib.name %] is now offering curbside delivery
+service. Please call [% target.0.pickup_lib.phone %] or visit the
+link below to schedule a pickup time.
+
+https://example.org/eg/opac/myopac/holds_curbside
+
+Stay safe! Wash your hands!
+$$);
+
+INSERT INTO action_trigger.environment (
+ event_def,
+ path
+) VALUES (
+ currval('action_trigger.event_definition_id_seq'),
+ 'pickup_lib'
+), (
+ currval('action_trigger.event_definition_id_seq'),
+ 'usr'
+);
+
+INSERT INTO action_trigger.event_params (event_def, param, value)
+ VALUES (currval('action_trigger.event_definition_id_seq'), 'check_email_notify', 1);
+
+-- SMS offer
+INSERT INTO action_trigger.event_definition (
+ active,
+ owner,
+ name,
+ hook,
+ validator,
+ reactor,
+ delay,
+ delay_field,
+ group_field,
+ template
+) VALUES (
+ false,
+ 1,
+ 'Curbside offer SMS notification, triggered by CurbsideSlot reactor on a definition attached to the hold.available hook',
+ 'hold.offer_curbside',
+ 'Curbside',
+ 'SendSMS',
+ '00:00:00',
+ 'shelf_time',
+ 'sms_notify',
+ $$[%- USE date -%]
+[%- user = target.0.usr -%]
+From: [%- params.sender_email || default_sender %]
+Date: [%- date.format(date.now, '%a, %d %b %Y %T -0000', gmt => 1) %]
+To: [%- params.recipient_email || helpers.get_sms_gateway_email(target.0.sms_carrier,target.0.sms_notify) %]
+Subject: Curbside Pickup
+Auto-Submitted: auto-generated
+
+[% target.0.pickup_lib.name %] offers curbside pickup.
+Call [% target.0.pickup_lib.phone %] or visit https://example.org/eg/opac/myopac/holds_curbside
+$$
+);
+
+INSERT INTO action_trigger.environment (
+ event_def,
+ path
+) VALUES (
+ currval('action_trigger.event_definition_id_seq'),
+ 'pickup_lib'
+), (
+ currval('action_trigger.event_definition_id_seq'),
+ 'usr'
+);
+
+INSERT INTO action_trigger.event_params (event_def, param, value)
+ VALUES (currval('action_trigger.event_definition_id_seq'), 'check_sms_notify', 1);
+
+-- Email confirmation
+INSERT INTO action_trigger.event_definition (
+ active,
+ owner,
+ name,
+ hook,
+ validator,
+ reactor,
+ delay,
+ template
+) VALUES (
+ 'f',
+ 1,
+ 'Curbside confirmation Email notification',
+ 'hold.confirm_curbside',
+ 'Curbside',
+ 'SendEmail',
+ '00:00:00',
+$$
+[%- USE date -%]
+[%- user = target.patron -%]
+To: [%- params.recipient_email || user.email %]
+From: [%- params.sender_email || default_sender %]
+Date: [%- date.format(date.now, '%a, %d %b %Y %T -0000', gmt => 1) %]
+Subject: Curbside Pickup Confirmed
+Auto-Submitted: auto-generated
+
+This email is to confirm that you have scheduled a curbside item
+pickup at [% target.org.name %] for [% date.format(helpers.format_date(target.slot), '%a, %d %b %Y %T') %].
+
+You can cancel or change to your appointment, add vehicle description
+notes, and alert staff to your arrival by going to the link below.
+
+When you arrive, please call [% target.org.phone %] or visit the
+link below to let us know you are here.
+
+https://example.org/eg/opac/myopac/holds_curbside
+
+Stay safe! Wash your hands!
+$$);
+
+INSERT INTO action_trigger.environment (
+ event_def,
+ path
+) VALUES (
+ currval('action_trigger.event_definition_id_seq'),
+ 'org'
+), (
+ currval('action_trigger.event_definition_id_seq'),
+ 'patron'
+);
+
+-- We do /not/ add this by default, treating curbside request as implicit opt-in
+/*
+INSERT INTO action_trigger.event_params (event_def, param, value)
+ VALUES (currval('action_trigger.event_definition_id_seq'), 'check_email_notify', 1);
+*/
+
+-- SMS confirmation
+INSERT INTO action_trigger.event_definition (
+ active,
+ owner,
+ name,
+ hook,
+ validator,
+ reactor,
+ delay,
+ template
+) VALUES (
+ false,
+ 1,
+ 'Curbside confirmation SMS notification',
+ 'hold.confirm_curbside',
+ 'Curbside',
+ 'SendSMS',
+ '00:00:00',
+ $$[%- USE date -%]
+[%- user = target.patron -%]
+From: [%- params.sender_email || default_sender %]
+Date: [%- date.format(date.now, '%a, %d %b %Y %T -0000', gmt => 1) %]
+To: [%- params.recipient_email || helpers.get_sms_gateway_email(helpers.get_user_setting(user.id, 'opac.default_sms_carrier'), helpers.get_user_setting(user.id, 'opac.default_sms_notify')) %]
+Subject: Curbside Pickup Confirmed
+Auto-Submitted: auto-generated
+
+Location: [% target.org.name %]
+Time: [% date.format(helpers.format_date(target.slot), '%a, %d %b %Y %T') %]
+Make changes at https://example.org/eg/opac/myopac/holds_curbside
+$$
+);
+
+INSERT INTO action_trigger.environment (
+ event_def,
+ path
+) VALUES (
+ currval('action_trigger.event_definition_id_seq'),
+ 'org'
+), (
+ currval('action_trigger.event_definition_id_seq'),
+ 'patron'
+);
+
+-- We do /not/ add this by default, treating curbside request as implicit opt-in
+/*
+INSERT INTO action_trigger.event_params (event_def, param, value)
+ VALUES (currval('action_trigger.event_definition_id_seq'), 'check_sms_notify', 1);
+*/
+
+INSERT INTO config.workstation_setting_type (name, grp, datatype, label)
+VALUES (
+ 'eg.staffcat.exclude_electronic', 'gui', 'bool',
+ oils_i18n_gettext(
+ 'eg.staffcat.exclude_electronic',
+ 'Staff Catalog "Exclude Electronic Resources" Option',
+ 'cwst', 'label'
+ )
+);
+
+INSERT INTO config.workstation_setting_type (name, grp, datatype, fm_class, label)
+VALUES (
+ 'eg.orgselect.catalog.holdings', 'gui', 'link', 'aou',
+ oils_i18n_gettext(
+ 'eg.orgselect.catalog.holdings',
+ 'Default org unit for catalog holdings tab',
+ 'cwst', 'label'
+ )
+);
+
+INSERT INTO config.workstation_setting_type (name, grp, datatype, label)
+VALUES (
+ 'eg.catalog.search.form.open', 'gui', 'bool',
+ oils_i18n_gettext(
+ 'eg.catalog.search.form.open',
+ 'Catalog Search Form Visibility Sticky Setting',
+ 'cwst', 'label'
+ )
+);
+
+INSERT INTO config.workstation_setting_type (name, grp, datatype, label)
+VALUES (
+ 'eg.grid.catalog.record.copies', 'gui', 'object',
+ oils_i18n_gettext(
+ 'eg.grid.catalog.record.copies',
+ 'Grid Config: eg.grid.catalog.record.copies',
+ 'cwst', 'label'
+ )
+);
+
+INSERT INTO config.global_flag (name, value, enabled, label)
+VALUES (
+ 'auth.block_expired_staff_login',
+ NULL,
+ FALSE,
+ oils_i18n_gettext(
+ 'auth.block_expired_staff_login',
+ 'Block the ability of expired user with the STAFF_LOGIN permission to log into Evergreen.',
+ 'cgf', 'label'
+ )
+);
+
+INSERT INTO config.internal_flag (name, value, enabled) VALUES ('symspell.prefix_length', '6', TRUE);
+INSERT INTO config.internal_flag (name, value, enabled) VALUES ('symspell.max_edit_distance', '3', TRUE);
+
+INSERT into config.org_unit_setting_type
+( name, grp, label, description, datatype )
+VALUES
+( 'opac.did_you_mean.low_result_threshold', 'opac',
+ oils_i18n_gettext(
+ 'opac.did_you_mean.low_result_threshold',
+ 'Maximum search result count at which spelling suggestions may be offered',
+ 'coust', 'label'),
+ oils_i18n_gettext(
+ 'opac.did_you_mean.low_result_threshold',
+ 'If a search results in this number or fewer results, and there are correctable spelling mistakes, a suggested search may be provided.',
+ 'coust', 'description'),
+ 'integer' );
+
+INSERT into config.org_unit_setting_type
+( name, grp, label, description, datatype )
+VALUES
+( 'search.symspell.min_suggestion_use_threshold', 'opac',
+ oils_i18n_gettext(
+ 'search.symspell.min_suggestion_use_threshold',
+ 'Minimum required uses of a spelling suggestions that may be offered',
+ 'coust', 'label'),
+ oils_i18n_gettext(
+ 'search.symspell.min_suggestion_use_threshold',
+ 'The number of bibliographic records (more or less) that a spelling suggestion must appear in to be considered before offering it to a user. Defaults to 1 (must appear in the bib data).',
+ 'coust', 'description'),
+ 'integer' );
+
+INSERT into config.org_unit_setting_type
+( name, grp, label, description, datatype )
+VALUES
+( 'search.symspell.soundex.weight', 'opac',
+ oils_i18n_gettext(
+ 'search.symspell.soundex.weight',
+ 'Soundex score weighting in OPAC spelling suggestions.',
+ 'coust', 'label'),
+ oils_i18n_gettext(
+ 'search.symspell.soundex.weight',
+ 'Soundex, trgm, and keyboard distance similarity measures can be combined to form a secondary ordering parameter for spelling suggestions. This controls the relative weight of the scaled soundex component. Defaults to 0 for "off".',
+ 'coust', 'description'),
+ 'integer' );
+
+INSERT into config.org_unit_setting_type
+( name, grp, label, description, datatype )
+VALUES
+( 'search.symspell.pg_trgm.weight', 'opac',
+ oils_i18n_gettext(
+ 'search.symspell.pg_trgm.weight',
+ 'Pg_trgm score weighting in OPAC spelling suggestions.',
+ 'coust', 'label'),
+ oils_i18n_gettext(
+ 'search.symspell.pg_trgm.weight',
+ 'Soundex, pg_trgm, and keyboard distance similarity measures can be combined to form a secondary ordering parameter for spelling suggestions. This controls the relative weight of the scaled pg_trgm component. Defaults to 0 for "off".',
+ 'coust', 'description'),
+ 'integer' );
+
+INSERT into config.org_unit_setting_type
+( name, grp, label, description, datatype )
+VALUES
+( 'search.symspell.keyboard_distance.weight', 'opac',
+ oils_i18n_gettext(
+ 'search.symspell.keyboard_distance.weight',
+ 'Keyboard distance score weighting in OPAC spelling suggestions.',
+ 'coust', 'label'),
+ oils_i18n_gettext(
+ 'search.symspell.keyboard_distance.weight',
+ 'Soundex, trgm, and keyboard distance similarity measures can be combined to form a secondary ordering parameter for spelling suggestions. This controls the relative weight of the scaled keyboard distance component. Defaults to 0 for "off".',
+ 'coust', 'description'),
+ 'integer' );
+
+
+INSERT INTO config.workstation_setting_type (name, grp, datatype, label)
+VALUES (
+ 'eg.staff.catalog.results.show_more', 'gui', 'bool',
+ oils_i18n_gettext(
+ 'eg.staff.catalog.results.show_more',
+ 'Show more details in Angular staff catalog',
+ 'cwst', 'label'
+ )
+);
+