1 of 16

Workstation, Org Unit, and User Settings

2 of 16

Background

https://bugs.launchpad.net/evergreen/+bug/1750894 - Wishlist: Store web staff workstation settings on the server - Evergreen Release 3.2

  • Moved workstation settings from local storage or Hatch to the database.
  • Made workstation settings more durable
  • Introduced ability to change settings from one type to another
  • Introduced Cascading settings

3 of 16

Database Tables for Settings

Setting Types:

  • config.org_unit_setting_type
  • config.usr_setting_type
  • config.workstation_setting_type

Settings:

  • actor.org_unit_setting
  • actor.usr_setting
  • actor.workstation_setting

4 of 16

Setting Types: config.org_unit_setting_type

5 of 16

Setting Types: config.usr_setting_type

6 of 16

Setting Types: config.workstation_setting_type

7 of 16

Settings: actor.org_unit_setting

8 of 16

Settings: actor.usr_setting

9 of 16

Settings: actor.workstation_setting

10 of 16

Moving Settings from one Type to another

  • No user interface for changing context of settings, so changes must be made at the database level
  • Setting types can be either usr or workstation, not both
  • Deleting a setting type from config.xxx_setting_type will delete all associated rows from actor.xxx_setting

11 of 16

Cascading Settings

  • Workstation or User setting types can be echoed in Org Unit setting types
  • In either case, an org unit setting can be set to be the “default” for that setting type

12 of 16

Example: Making Strict Barcode at Checkout true by default

Add the Org Unit setting type

INSERT into config.org_unit_setting_type

SELECT name, label, grp, description, datatype, fm_class

FROM config.workstation_setting_type

WHERE name = 'circ.checkout.strict_barcode'

13 of 16

Example: Making Strict Barcode at Checkout true by default

Set the Org Unit Setting to True

INSERT into actor.org_unit_setting

(org_unit, name, value)

VALUES

(1,'circ.checkout.strict_barcode',true)

14 of 16

Example: Making Strict Barcode at Checkout true by default

Optionally, remove the workstation level settings, but leave the setting type

DELETE from actor.workstation_setting

WHERE name = 'circ.checkout.strict_barcode'

This allows per workstation settings

15 of 16

Example: Making Strict Barcode at Checkout true by default

Optionally, remove the workstation level setting type and all workstation settings

DELETE from config.workstation_setting_type

WHERE name = 'circ.checkout.strict_barcode'

Removing the setting type deletes all the saved workstation settings, forcing all workstations to use the org unit setting. The setting can’t be saved per workstation.

16 of 16

Example: Changing Default Search Library from Workstation to User

INSERT into config.usr_setting_type

SELECT name, label, grp, description, datatype, fm_class

FROM config.workstation_setting_type

WHERE name = 'eg.search.search_lib'

DELETE from config.workstation_setting_type

WHERE name = 'eg.search.search_lib'

Users can set the setting themselves, or values can be inserted into actor.usr_setting.

Disclaimer: This is untested!