- it compares boot time of liquidsoap and the time user clicks on "Save"
on stream setting page. The status only gets updated if the
"boot_time" > "user update time"
- as soon as a user click on save, status is set to "wating"
- since there is no timing issue, quering interval is reduced to 1 sec
This happens because we use same field in the db to store whether stream is disabled, and which
type is it (Icecast/Shoutcast). Thus when we disable a stream, we forget about the fact that
it was set to Shoutcast before.
Fixed by separating out the enable/disable state from stream type.
Whether a stream is enabled/disabled is stored in new fields sx_enable.
Stream type is stored in the old fields, sx_output.
Deleted show was being returned because we don't delete it from database if it's repeating, nor do we check
if it's modified when querying the db.
Fixed by checking modified_instance column; only return it if modified_instance != TRUE
For a previous ticket, I changed the code so that both "Today's Program" widget
and "Now Playing" widget both use the liveInfoAction, but forgot that for "Now Playing" widget, it retrieves
the shows within next 48 hours instead of within end of day today...
Fixed by passing GET parameters to liveInfoAction, specify whether we want to retrieve shows within an
interval or end of day. Also added a GET parameter for specifying the number of shows to display.
- mktemp is used to generate temp name within /tmp dir
- it generate temp file when the file gets uploade to /tmp and then copy to
organize folder as original file name
- Converting times to UTC timezone in ApiController before sending them to model functions
- Added utility functions in DateHelper.php
- GetShowsByDayOfWeek has been removed due to bugs caused by using local timezone
based variable like $day, which represents day of the week in local time, in db query,
which has times saved in UTC timezone. Converting stuff like day of the week from local
to UTC is messy. GetNextShows(...) can do the job so WeekInfoAction now uses it instead
Fixing the issue of "show entries" dropdown setting not being saved.
After some investigation, it seems like we're destroying the calendar
everytime we modify the dropdown value, and create a new one,
which explains why the new setting is not being saved.
Fixed by moving the code that handles the updating to the place after
we create the new calendar. This makes the code cleaner as well.
1. changed the behavior so that the tooltip comes up on hover
2. changed stat server link to "http://stat.sourcefabric.org/airtime_latest_version"
3. only updates the db if version returned by stat server is valid
on signup, do not display popup on login
- title needs to update with db access since airtime-saas can change title
- storing it to session variable is not an option
Initial implementation.
- added some code in phone_home_stat to retrieve latest version from stat server
and store result in db
- created new view helper VersionNotify.php, which queries and calculates version
difference, then returns the necessary information in html to the view files
- created new javascript file versiontooltip.js, which sets up the qtip stuff so that
when the version notification icon is clicked, a tooltip is displayed
Not only were frontend widgets showing UTC time,
the SQL query was also comparing UTC timestamp with local timestamps,
causing widgets to display shows in the wrong day, etc.
Another problem was that "On air today" widget was simply calling
GetNextShows which returns shows within next 48 hours.
Fixed by:
1. Under models/Show.php:
In the GetCurrentShow/GetNextShows/GetShowsByDayOfWeek functions,
added code to convert UTC timestamp to local timestamp or vice versa,
depending on which one is more suitable, in SQL queries, thus
removing inconsistency in timezones. Also, before returning query result,
added code to convert result to local timezone.
In GetNextShows, added an optional parameter endTime to limit the interval
of shows to get. This is useful for the "On air today" widget.
2. Under models/DateHelper.php:
Added a few timezone functions to help converting timezones easier in Show.php.
3. Under controller/ApiController.php:
Added todayInfoAction which is to be used by "On Air Today" widget.
Added StringLength validators for the UI fields. This way when user gave more than what
they should gave as the input, it's going to display an error msg.
The maximum length for the fields is queried from the database before the
fields were initialized.
1. If the preference is not user-specific, or if id is null, set subjid to null
2. Rewrote the code for the setValue logic, added comments. Should be easier
to read and understand
Added system preference in Preference page for user to select the start day of a week
(defaults to Sunday).
Calendar will utilize this information and update the calendar UI accordingly.
For week and day views under Calendar page, save the change to pref db table when
user updates the interval dropdown. Same thing goes for the "show XXX entries"
dropdown found under Playlist Builder page.
When visiting these pages, we retrieves the entry from database for current user
and use those values. Defaults to 30m for interval and 10 entries for "show xxx entries"
if values were never set.
Updated the calendar page so that when user chooses a different time scale to display(day/week/month),
the new setting is stored in the pref database. Each user id has its own entry in the database.
When visiting the calendar, we retrieves the entry from database for current user
and show that time scale; defaults to monthly view if no entry found.