1 Configurable Bib Record Display Fields
2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4 Admin -> Server Admin -> 'MARC Search/Facet Fields' have 2 new configuration
5 fields: 'Display Field?' and 'Display XPATH'.
7 When 'Display Field' is set to true, data from the field will be extracted
8 from each record and added to a new table of display data for each bib
11 If a value is present in the 'Display XPATH' field, this XPATH will be
12 applied to the extracted data *after* the base XPATH (from the 'XPath'
13 field) is applied to each field.
15 This data acts as a replacement for the various and sundry ways bib record
16 data is currently extracted, including inline XPATH in the TPAC, reporter
17 views, real-time 'MVR' compilation from MODS, etc. and will be available
18 to the user interface, notification templates, etc. for rendering bib
21 The browser client gets a new service 'egBibDisplay' which is capable
22 of translating the display field data from various formats into
23 data more suitable for JavaScript usage.
25 The database gets 3 new VIEWs for representing display data in various
28 * metabib.flat_display_entry
29 ** List of all display fields linked to their configuration.
30 * metabib.compressed_display_entry
31 ** Same as metabib.flat_display_entry except there's one row
32 per display field type, which 'mulit' rows compressed into
33 JSON arrays. Non-multi fields are represented as JSON
35 * metabib.wide_display_entry
36 ** Tabular view of display field data, one column per well-known
37 field. Values are represented JSON, consistent with
38 metabib.flat_display_entry. The view DOE NOT CONTAIN locally
39 configured dispaly fields, as each field must be encoded in
40 the view and IDL definition. This is essentially a replacement
41 for reporter.simple_record.
46 After making changes to display field configuration, it's possible to
47 reingest only display field data in the database using the following:
50 ---------------------------------------------------------------------
51 SELECT metabib.reingest_metabib_field_entries(id, TRUE, FALSE, TRUE, TRUE,
52 (SELECT ARRAY_AGG(id)::INT[] FROM config.metabib_field WHERE display_field))
53 FROM biblio.record_entry WHERE NOT deleted AND id > 0;
54 ---------------------------------------------------------------------