* Remove the "hidden" field from the REST blacklist, the analyzer needs to set it.
* Added import_status column messages in the recent uploads table
* Auto-refresh the recent uploads table while imports are pending
* Moved the file moving stuff to its own analyzer in airtime_analyzer
* Basic error reporting to the REST API in airtime_analyzer, needs
hardeneing though
* Fixed a bug with the number of recent uploads
* Prevent airtime_analyzer from running if media_monitor is running
* Overhauled Add Media screen, now shows state of recent uploads
* Dropped old unused "state" column, added new file_import column to cc_files
* New PluploadController methods
* Save the filename as the track title for unprocessed uploads
* Hide pending files from the library until they've been processed.
* Don't overwrite files with duplicate names, we rename them instead.
* Added session auth to the Media API (if you're logged in)
* Started reworking our Plupload interaction with the server to be less
awkward.
* Basic uploading works with the Add Media page again, but messages
aren't dispatched to airtime_analyzer yet (coming next...)
* Added MetadataAnalyzer unit tests and test data
* Improved debug logging and squashed pika logging
* Implemented file moving
* Extract the track number/total
* Fixed mapping of mutagen to Airtime fields in a few spots. The mapping
matches the DB column names now.
* Fixed the bin/airtime_analyzer binary
* Started work on PluploadController to make it work with the new File
API
Disabled linked checkbox field in show form while the show is playing
Added a warning message if the user attempts to change this value
Update .po and .mo files with the warning message string
timezone.
* Use the user timezone in eventFeedAction(), will fix a bug where
shows at the edge of a week can disappear from the calendar if
the user timezone is not the same as the station timezone.
timezone.
* Fixed GetPlayOrderRange to be consistently return everything in UTC.
* ApiController liveInfoAction now returns everything consistently in
the station timezone. This fixes negative remaining time that could
occur in the embeddable JS Airtime widgets if you were logged in to
Airtime while you viewed your website. (The widgets display in
the browser's local time.)
* ScheduleController getCurrentPlaylistAction() returns everything
consistently in the user timezone now.
moving var serverTimezoneOffset to bootstrap,
also creating a var for userTimezoneOffset.
Utilities.js uses the userTimezoneOffset to calculate time in forms.