]> git.evergreen-ils.org Git - working/Evergreen.git/blob - docs/admin_initial_setup/carousels.adoc
LP1615805 No inputs after submit in patron search (AngularJS)
[working/Evergreen.git] / docs / admin_initial_setup / carousels.adoc
1 Adding Carousels to Your Public Catalog
2 ---------------------------------------
3
4 This feature fully integrates the creation and management of book carousels into Evergreen, allowing for the display of book cover images on a library’s public catalog home page. Carousels may be animated or static. They can be manually maintained by staff or automatically maintained by Evergreen. Titles can appear in carousels based on newly cataloged items, recent returns, popularity, etc. Titles must have copies that are visible to the public catalog, be circulating, and holdable to appear in a carousel. Serial titles cannot be displayed in carousels. 
5
6 image::media/carousel1.png[Book carousel on public catalog front screen] 
7
8 There are three administrative interfaces used to create and manage carousels and their components: 
9
10 * <<carousel_types,Carousel Types>> - used to define different types of carousels 
11 * <<carousel_definitions,Carousels>> - used to create and manage specific carousel definitions
12 * <<carousel_mapping,Carousel Library Mapping>> - used to manage which libraries will display specific carousels, as well as the default display order on a library’s public catalog home page
13
14 Each of these interfaces are detailed below.
15
16 [[carousel_types]]
17 CAROUSEL TYPES
18 ~~~~~~~~~~~~~~
19
20 The Carousel Types administrative interface is used to create, edit, or delete carousel types. Carousel Types define the attributes of a carousel, such as whether it is automatically managed and how it is filtered. A carousel must be associated with a carousel type to function properly.  
21
22 There are five stock Carousel Types:
23
24 * *Newly Cataloged Items* - titles appear automatically based on the active date of the title’s copies
25 * *Recently Returned Items* - titles appear automatically based on the mostly recently circulated copy’s check-in scan date and time 
26 * *Top Circulated Titles* - titles appear automatically based on the most circulated copies in the Item Libraries identified in the carousel definition; titles are chosen based on the number of action.circulation rows created during an interval specified in the carousel definition and includes both circulations and renewals
27 * *Newest Items by Shelving Location* - titles appear automatically based on the active date and shelving location of the title’s copies 
28 * *Manual* - titles are added and managed manually by library staff
29
30 Additional types can be created in the Carousel Types Interface. Types can also be modified or deleted. Access the interface by going to Administration > Server Administration > Carousel Types. 
31
32 The interface displays the list of carousel types in a grid format. The grid displays the Carousel Type ID, name of the carousel type, and the characteristics of each type by default. The Actions Menu is used to edit or delete a carousel type.
33
34 image::media/carousel2.png[Carousel Types configuration screen]
35
36 Attributes of Carousel Types 
37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
38 Each Carousel Type defines attributes used to add titles to the carousels associated with the type. Filters apply only to automatically managed carousels.
39
40 * *Automatically Managed* - when set to true, Evergreen uses a cron job to add titles to a carousel automatically based on a set of criteria established in the carousel definition. When set to false, library staff must enter the contents of a carousel manually.
41 * *Filter by Age* - when set to true, the type includes or excludes titles based on the age of their attached items
42 * *Filter by Item Owning Library* - when set to true, the type includes or excludes titles based the owning organizational unit of their attached items
43 * *Filter by Item Location* - when set to true, the type includes or excludes titles based on the shelving locations of their attached items
44
45 Creating a Carousel Type
46 ^^^^^^^^^^^^^^^^^^^^^^^^
47
48 . Go to Administration > Server Administration > Carousel Types
49 . Select the *New Carousel Type* button
50 . Enter a name for the carousel type
51 . Use the checkboxes to apply filtering characteristics to the carousel type; filters for age, item owning library, and location are applied only to automatically managed carousels 
52   .. Automatically Managed?
53   .. Filter by Age?
54   .. Filter by Item Owning Library?
55   .. Filter by Item Location?
56
57 image::media/carousel3.png[Carousel Types Editor screen]
58
59 Editing a Carousel Type
60 ^^^^^^^^^^^^^^^^^^^^^^^
61 Users can rename a carousel type or change the characteristics of existing types.
62
63 . Go to Administration > Server Administration > Carousel Types
64 . Select the type you wish to edit with the checkbox at the beginning of the row for that type
65 . Select the Actions Button (or right-click on the type’s row) and choose Edit Type
66
67 Deleting a Carousel Type
68 ^^^^^^^^^^^^^^^^^^^^^^^^
69 Carousel types can be deleted with the Actions Menu
70
71 . Go to Administration > Server Administration > Carousel Types
72 . Select the type you wish to delete with the checkbox at the beginning of the row for that type
73 . Select the Actions button (or right-click on the type’s row) and choose Delete Type; carousel types cannot be deleted if there are carousels attached
74
75 [[carousel_definitions]]
76 CAROUSEL DEFINITIONS
77 ~~~~~~~~~~~~~~~~~~~~
78 The Carousels administration page is used to define the characteristics of the carousel, such as the carousel type, which libraries will be able to display the carousel, and which shelving locations should be used to populate the carousel.
79
80 The Carousels administration page is accessed through Administration > Server Administration > Carousels. (Please note that in the community release, this page will eventually move to Local Administration.) The interface displays existing carousels in a grid format. The grid can be filtered by organizational unit, based on ownership. The filter may include ancestor or descendent organization units, depending on the scope chosen. The columns displayed correspond to attributes of the carousel. The following are displayed by default: Carousel ID, Carousel Type, Owner, Name, Last Refresh Time, Active, Maximum Items. 
81
82 image::media/carousel4.png[Carousels configuration screen]
83
84 Additional columns may be added to the display with the column picker, including the log in of the creator and/or editor, the carousel’s creation or edit time, age limit, item libraries, shelving locations, or associated record bucket. 
85
86 Attributes of a Carousel Definition
87 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
88
89 * *Carousel ID* - unique identifier assigned by Evergreen when the carousel is created
90 * *Carousel Type* - identifies the carousel type associated with the carousel
91 * *Owner* - identifies the carousel’s owning library organizational unit
92 * *Name* - the name or label of the carousel
93 * *Bucket* - once the carousel is created, this field displays a link to the carousel’s corresponding record bucket
94 * *Age Limit* - defines the age limit for the items (titles) that are displayed in the carousel
95 * *Item Libraries* - identifies which libraries should be used for locating items/titles to add to the carousel; this attribute does not check organizational unit inheritance, so include all libraries that should be used
96 * *Shelving Locations* - sets which shelving locations can/should be used to find titles for the carousel
97 * *Last Refresh Time* - identifies the last date when the carousel was refreshed, either automatically or manually. This is currently read-only value.
98 * *Is Active* - when set to true, the carousel is visible to the public catalog; automatically-maintained carousels are refreshed regularly (inactive automatic carousels are not refreshed)
99 * *Maximum Items* - defines the maximum number of titles that should appear in the carousel; this attribute is enforced only for automatically maintained carousels
100
101
102 Creating a Carousel from the Carousels Administration Page
103 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
104
105 . Go to Administration > Server Administration > Carousels
106 . Select the *New Carousels* button
107 . A popup will open where you will enter information about the carousel
108 . Choose the Carousel Type from the drop-down menu
109 . Choose the Owning Library from the drop-down
110 . Enter the Name of the carousel
111 . Enter the Age limit - this field accepts values such as “6 mons or months,” “21 days,” etc.
112 . Choose the Item Libraries - this identifies the library from which items are pulled to include in the carousel
113   .. Click the field. A list of available organizational units will appear.
114   .. Select the organizational unit(s)
115    ... The owning and circulating libraries must be included on this list for titles/items to appear in the carousel. For libraries with items owned at one organizational unit (e.g., the library system), but circulating at a different organizational unit (e.g., a branch), both would need to be included in the list.
116   .. Click Add
117 . Shelving Locations - this identifies the shelving locations from which items are pulled to include in the carousel. Please note that this field is not applicable when creating a carousel of the Newly Cataloged carousel type. For creating a carousel of newly cataloged items with shelving location filters, use the Newest Items by Shelving Location type instead.
118   .. Click the field. A list of available shelving locations will appear.
119   .. Select the shelving location - the library that “owns” the shelving location does not have to be included in the list of Item Libraries
120   .. Click Add
121 . Last Refresh Time - not used while creating carousels - display the date/time when the carousel was most recently refreshed
122 . Is Active - set to true for the carousel to be visible to the public catalog
123 . Enter the Maximum Number of titles to display in the carousel
124 . Click Save 
125
126 image::media/carousel5.png[Carousel editor screen]
127
128 Carousels and Record Buckets
129 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
130 When a carousel is created, a corresponding record bucket is also created. The bucket is owned by the staff user who created the carousel; however, access to the carousel is controlled by the carousel’s owning library. The bucket is removed if the carousel is deleted. 
131
132 View a Carousel Bucket from Record Buckets
133 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
134 A record bucket linked to a carousel can be displayed in the Record Bucket interface through the Shared Bucket by ID action.
135
136 . Go to Cataloging > Record Buckets
137 . Select the Buckets button
138 . Enter the bucket number of the carousel’s bucket; this can be found on the Carousels administration page. “Bucket” is one of the column options for the grid. It displays the bucket number. 
139 . The contents of the carousel and bucket will be displayed
140
141 Users can add or remove records from the bucket. If the associated carousel is automatically maintained, any changes to the bucket’s contents are subject to being overwritten by the next automatic update. Users are warned of this when making changes to the bucket contents.
142
143 Create a Carousel from a Record Bucket
144 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
145 A carousel can be created from a record bucket.
146  
147 . Go to Cataloging > Record Buckets
148 . The Bucket View tab opens. Select the Buckets button and choose one of the existing buckets to open. The list of titles in the bucket will display on the screen.
149 . Select the Buckets button and choose Create Carousel from Bucket
150
151 image::media/carousel6.png[Record Bucket Actions button - Create Carousel from Bucket]
152
153 TIP: The Create Carousel from Bucket option is visible in both Record Query and Pending Buckets; however, initiating the creation of a carousel from either of these two tabs creates an empty bucket only. It will not pull titles from either to add contents to the carousel.
154
155 Manually Adding Contents to a Carousel from Record Details Page
156 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
157 Titles can be added to a manually maintained carousel through the record details page.
158
159 . Go to the details page for a title record
160 . Select the Other Actions button
161 . Choose Add to Carousel
162 +
163 image::media/carousel7.png[Actions button on Record Summary page - Add to Carousel] 
164 +
165 . A drop-down with a list of manually maintained carousels that have been shared to at least one of the user’s working locations will appear
166 . Choose the carousel from the list
167 . Click Add to Selected Carousel
168
169 TIP: The Add to Carousel menu item is disabled if no qualifying carousels are available
170
171 [[carousel_mapping]]
172 CAROUSEL LIBRARY MAPPING
173 ~~~~~~~~~~~~~~~~~~~~~~~~
174 The Carousel Library Mapping administration page is used to manage which libraries will display specific carousels, as well as the default display order on a library’s public catalog. 
175
176 The visibility of a carousel at a given organizational unit is not automatically inherited by the descendants of that unit. The carousel’s owning organizational unit is automatically added to the list of display organizational units.
177
178 The interface is accessed by going to Administration > Server Administration > Carousel Library Mapping. (Please note that in the community release, this page will eventually move to Local Administration.) The interface produces a grid display with a list of the current mapping. The grid can be filtered by organizational unit, based on ownership. The filter may include ancestor or descendent organizational units, depending on the scope chosen. 
179
180 WARNING: If a carousel is deleted, its mappings are deleted.
181
182 Attributes of Carousel Library Mapping
183 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
184
185 * *ID* - this is a unique identifier automatically generated by the database
186 * *Carousel* - this is the carousel affected by the mapping
187 * *Override Name* - this creates a name for automatically managed carousels that will be used in the public catalog display of the carousel instead of the carousel’s name
188 * *Library* - this is the organizational unit associated with the particular mapping; excludes descendent units
189 * *Sequence Number* - this is the order in which carousels will be displayed, starting with “0” (Example: Carousel 0 at consortial level will display first. Carousel 1 set at the consortial level will appear just below Carousel 0.)
190
191 Create a New Carousel Mapping
192 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
193
194 . Go to Administration > Server Administration > Carousel Library Mapping
195 . Select *New Carousels Visible at Library*
196 . Choose the Carousel you wish to map from the Carousel drop-down menu
197 . If you want the title of the carousel on the public catalog home screen to be different from the carousel’s name, enter your desired name in the Override Name field
198 . Click on the Library field to choose on which library organizational unit’s public catalog home screen the carousel will appear
199 . Enter a number in sequence number to indicate in which order the carousel should appear on the library public catalog home screen. “0” is the top level. “1” is the subsequent level, etc.
200
201 image::media/carousel8.png[Carousel mapping editor screen]
202
203
204 CAROUSELS - OTHER ADMINISTRATIVE FEATURES
205 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
206
207 New Staff Permissions
208 ^^^^^^^^^^^^^^^^^^^^^
209 Includes new staff permissions:
210
211 * ADMIN_CAROUSEL_TYPES - allows users to create, edit, or delete carousel types
212 * ADMIN_CAROUSELS - allows users to create, edit, or delete carousels
213 * REFRESH_CAROUSEL - allows users to perform a manual refresh of carousels
214
215 New Database Tables
216 ^^^^^^^^^^^^^^^^^^^
217 A new table was added to the database to specify the carousel and how it is to be populated, including the name, owning library, details about the most recent refresh, and a link to the Record Bucket and its contents.
218
219 Another new table defines carousel types and includes the name, whether the carousel is manually or automatically maintained, and a link to the QStore query specifying the foundation database query used to populate the carousel.
220
221 A third new table defines the set of organizational units at which the carousel is visible and the display order in which carousels should be listed at each organizational unit.
222
223 OPAC Templates
224 ^^^^^^^^^^^^^^
225 Carousels display on the public catalog home page by default. Administrators can modify the public catalog templates to display carousels where desired.
226
227 A new Template Toolkit macro called “carousels” allows the Evergreen administrator to inject the contents of one or more carousels into any point in the OPAC. The macro will accept the following parameters:
228
229 * carousel_id
230 * dynamic (Boolean, default value false)
231 * image_size (small, medium, or large)
232 * width (number of titles to display on a “pane” of the carousel)
233 * animated (Boolean to specify whether the carousel should automatically cycle through its panes)
234 * animation_interval (the interval (in seconds) to wait before advancing to the next pane)
235
236 If the carousel_id parameter is supplied, the carousel with that ID will be displayed. If carousel_id is not supplied, all carousels visible to the public catalog’s physical_loc organizational unit is displayed.
237
238 The dynamic parameter controls whether the entire contents of the carousel should be written in HTML (dynamic set to false) or if the contents of the carousel should be asynchronously fetched using JavaScript.
239
240 A set of CSS classes for the carousels and their contents will be exposed in style.css.tt2. Lightweight JavaScript was used for navigating the carousels, based either on jQuery or native JavaScript. The carousels are responsive.
241
242 Accessibility Features
243 ^^^^^^^^^^^^^^^^^^^^^^
244
245 * Users can advance through the carousel using only a keyboard
246 * Users can navigate to a title from the carousel using only a keyboard
247 * Users pause animated carousels
248 * Changes in the state of the carousel are announced to screen readers.
249
250 OpenSRF
251 ^^^^^^^
252 Several Evergreen APIs are used to support the following operations:
253
254 * refreshing the contents of an individual carousel
255 * refreshing the contents of all automatically-maintained carousels that are overdue for refresh
256 * retrieving the names and contents of a carousel or all visible ones
257 * creating a carousel by copying and existing record bucket
258
259 The retrieval APIs allow for anonymous access to permit Evergreen admins to create alternative implementation of the carousel display or to share the carousels with other systems. [h] 
260
261 Cron Job
262 ^^^^^^^^
263 The carousels feature includes a cronjob added to the example crontab to perform automatic carousel refreshes. It is implemented as a srfsh script that invokes open-ils.storage.carousel.refresh_all.