\section{Carousel 5.1.0 Release Notes}
\begin{description}

\item[{\color{red}
\textbf{1291} \textbf{Bulletins have a 'Last Updated' field in the database}
\textbf{Greatly reduces the amount of processing needed to update dynamic bulletins. IMPORTANT NOTE: You will need to re-edit any bulletins with Web Pictures so that the database gets the "IsDynamic" field set.  Otherwise the pictures won't get updated by the service.}
\item[{\color{red}
\textbf{1325} \textbf{Optimized file downloading in DisplayEngine}
\textbf{The DisplayEngine downloads smaller files from the server first, saving the larger files for later.  This is so the DisplayEngine can display content as quickly as it can, rather than waiting for larger files to finish downloading.}
\item[{\color{red}
\textbf{1374} \textbf{More efficient "caching" of data in service}
\textbf{The Carousel service is much faster when procuring data from the database, which allows Carousel to scale to larger installations.}
\item[{\color{red}
\textbf{1494} \textbf{Bulk adding of tags to Zones and Media}
\textbf{You can now add several tags to zones/media in a single field by separating them with a comma, rather than adding them one at a time.}
\item[{\color{red}
\textbf{1503} \textbf{Carousel represents all timezones}
\textbf{It is now possible to assign any timezone in the world to each zone via the zone configuration screen.}
\item[{\color{red}
\textbf{1515} \textbf{A zone's RSS output can be enabled or disabled}
\textbf{The RSS feed for zones can be disabled to prevent subscriptions to that zone.  You can find this setting in the Zone Settings screen, under the "Other Zone Outputs" area.}
\item[{\color{red}
\textbf{1516} \textbf{Transition Previews appear in setup menus}
\textbf{A small preview of the transition can be seen in the zone transitions list, and when selecting the default transition for a zone.}
\item[{\color{red}
\textbf{1525} \textbf{More robust Housekeeping options}
\textbf{Allows users to delete bulletins in bulk by bulletin type, including Active, Stale, Saved, and Waiting bulletins.  You may also specify deletion for all users, for all zones, for a particular user, or for a selected zone.}
\item[{\color{red}
\textbf{1532} \textbf{DisplayEngine versions reported in WebUI}
\textbf{The version of each connected DisplayEngine is visible on the "Display Engine Registration" web page.  Now you can quickly determine which of your players need to be updated.}
\item[{\color{red}
\textbf{1540} \textbf{Bulletin and Cycle Sync Timeouts need to be system wide}
\textbf{Timeouts now apply to the entire system, rather than to individual zones, which effectively made them useless.}
\item[{\color{red}
\textbf{1595} \textbf{Repeating bulletins now obey the proper repeat interval}
\textbf{Repeating bulletins will now intersperse themselves between each and every bulletin, rather than only between groups of bulletins.  This works even when the repeat interval is greater than the total number of bulletins within the list.}
\item[{\color{red}
\textbf{1939} \textbf{Event Display bulletins: word count is divided by zero}
\textbf{A division by zero error occurred when an EDS bulletin had no events listed.}
\item[{\color{red}
\textbf{1962} \textbf{Media Packages are difficult to create and upload}
\textbf{The WebUI now contains a link where you can download an example media package.  You can use this sample zip file to create your own media packages.}
\item[{\color{red}
\textbf{2067} \textbf{Date and time disappears permanently when Text Outline is disabled }
\textbf{A small bug prevented the date/time overlay from being displayed when the text outline was turned off.  You can now disable the text outline property, and the overlay will continue to be displayed.}
\item[{\color{red}
\textbf{2185} \textbf{Error when long crawl is created}
\textbf{If a crawl is made with no spaces in the text, an error was thrown as Carousel tried to truncate the string on a word boundary for displaying a preview.  Now, Carousel will forcibly truncate after 100 characters if there isn't a space available.}
\item[{\color{red}
\textbf{2186} \textbf{Previews of Crawl Bulletins do not contain the entire message and runs off the page}
\textbf{In the Bulletin List screen, crawls are now wrapped in a scroll box, so you can see the entire crawl without it destroying the page layout.}
\item[{\color{red}
\textbf{2193} \textbf{Crawls are allowed as Full Screen Alerts}
\textbf{A small bug in the WebUI allowed the creation of crawl bulletins on full-screen alert zones, which isn't supported elsewhere in the software.}
\item[{\color{red}
\textbf{2195} \textbf{Zone list in the config menu does not order numbers properly }
\textbf{Zones are now sorted in a more human-friendly way}
\item[{\color{red}
\textbf{2274} \textbf{Bulletins which expired before they were approved become inaccessible}
\textbf{The bulletins now become "stale," and should be available in the user's stale list.  Users can then "reactivate" the bulletin, at which point it will need to be approved.}
\item[{\color{red}
\textbf{2275} \textbf{After editing a zone's name it will no longer display on the public web}
\textbf{A bug in the WebUI was mistakenly overwriting a setting in the database, which caused the public output options to always be disabled, no matter what you've selected.}
\item[{\color{red}
\textbf{2279} \textbf{The zone selector cuts off some zones in certain browsers}
\textbf{Scrolling through a large list of zones in the zone selector screen would "cut off" the bottom end of the zone list in some browsers.  Now, all zones are properly displayed.}
\item[{\color{red}
\textbf{2385} \textbf{Entering in too much text in a standard bulletin throws an error}
\textbf{A bug in the text-resizing code would cause an error when trying to resize text beyond the smallest possible font size.  In this case, we simply use the smallest size.}
\item[{\color{red}
\textbf{2394} \textbf{Active bulletins get set to queued between 11:59:00 PM and midnight}
\textbf{Added a fix to the WebUI that correctly formats the dates when saving bulletins.}
\item[{\color{red}
\textbf{2463} \textbf{Stale/Saved bulletins reappearing in groups that are still active }
\textbf{Saved and stale bulletins will no longer reappear when their group is edited.}
\item[{\color{red}
\textbf{2516} \textbf{Clock bulletins display without fading when they are the only bulletin in a zone}
\textbf{the DisplayEngine is smarter about displaying clock bulletins when they are the only bulletin in a zone.  They will now be displayed continuously, rather than fading up and down as the bulletin "finishes."}
\item[{\color{red}
\textbf{2737} \textbf{Error message when uploading an invalid image is confusing}
\textbf{If you upload an image file that Carousel cannot process, you are presented with a friendly message containing a list of supported file types, rather than a nasty COM error message.}
\item[{\color{red}
\textbf{2755} \textbf{DisplayEngine can now span multiple monitors}
\textbf{A new interface exists for configuring how a DisplayEngine is shown on multiple-monitor setups.  You can select which single monitor will be used, or span multiple monitors.}
\item[{\color{red}
\textbf{2757} \textbf{RSS Feeds with no content should create no jpgs}
\textbf{If an RSS feed which previously had content eventually becomes "empty," Carousel would continue to display the previous set of content from the feed.  Now, the bulletin is "skipped" from display if the feed is empty.}
\item[{\color{red}
\textbf{2805} \textbf{Multiple Clock or LiveVideo bulletins can't be displayed at the same time}
\textbf{A race condition caused the playback of clock/live bulletins to be stopped early if more than one was being shown at the same time.  We now track the bulletins correctly so they are shown in their entirety.}
\item[{\color{red}
\textbf{2853} \textbf{Crawl zones aren't migrated properly}
\textbf{Some data wasn't being transfered over from older versions, causing erratic behavior on channels with crawls.  The database script now correctly migrates crawl data.}
\item[{\color{red}
\textbf{2859} \textbf{Weather Bulletins aren't updated regularly}
\textbf{Weather bulletins weren't respecting the "LastUpdated" field that was introduced in Case 1291.}
\item[{\color{red}
\textbf{2863} \textbf{Dynamic pages stop udating}
\textbf{We were using the wrong ID number to identify dynamic bulletins, so they would never get updated during the update cycle.  After changing the code to use the correct ID number, dynamic bulletins are updated as expected.}
\item[{\color{red}
\textbf{2879} \textbf{Bulletin groups not moving from "Saved" to "Active"}
\textbf{Activating a group of saved bulletins wouldn't always succeed, depending on the date/time settings of the group's bulletins.  Now, moving the group to Active bulletins should work correctly.}
\item[{\color{red}
\textbf{2882} \textbf{Removed the QuickTime and DirectX installers from the Carousel Framework installer}
\textbf{The Carousel Framework installer is installed on servers only, which don't need DirectX or Quicktime to be installed as they won't be running the DisplayEngine.}
\item[{\color{red}
\textbf{2896} \textbf{DisplayEngine reports "NOT LICENSED" if there are no channels on the system}
\textbf{On systems with no channels created, the DisplayEngine assumed it wasn't licensed.  Now, the DisplayEngine will report that there are no channels available, which better reflects what is going on.}
\end{description}

