users with permission edit_help_texts are allowed to select edit help
texts from menu and enter texts for all event fields. Other users will
see help texts as tooltips. This allows to provide help to users
depending on your workflow. help texts are saved by project and studio.
On copying events from another studio selection will be saved.
The next time one wants to copy saved presets are preselected.
This simplifies to frequently rebroadcast shows from another project.
If audio files become inactive because a new file is uploaded, the new
file is marked as active and the old file is marked as not active.
This allows fastly querying events and their active upload file.
Before this change all event's audio files were found and needed to be
filtered afterwards to get a set of unique events.
After the end of a show, the audio recordings are uploaded to a
directory "listen_dir" under a secret name, beginning with the
transmission date "yyyy-mm-dd hh_mm". The directory is available as URL
"listen_url", but must not be listable. In order to gain access to the
recording for 7 days after the show, a check is done to determine
whether the file is available. A random key for the show is stored in
the database if a file matching the date is found in listen_dir. With
this key as a name, a symbolic link to the original audio file is
created. The random name can be used in public documents. If the show
data is read again, the key will be retrieved from the database. File
access can be restricted by the Apache2 handler ListenerAccess.pm. With
it, access to the public symlink is possible for one week.
User sessions will be stored in database and not in files anymore.
CGI::Session is not used anymore for this purpose. The new module
user_sessions.pm provides functions on new database table user_sessions.