sintonia/airtime_mvc/application/views/scripts/embed/weekly-program.phtml
Lucas Bickel f9a19d9e27 Uses the minimized angular from public dir instead of cdn
This uses the available minimized version of angular instead of using the non minimized version from the google cdn.
2017-04-18 08:43:44 +02:00

104 lines
4.7 KiB
PHTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="<?php echo $this->angular ?>" type="text/javascript"></script>
<link rel="stylesheet" href="<?php echo $this->css?>" type="text/css">
<script src="<?php echo $this->jquery ?>" type="text/javascript"></script>
<link href='https://fonts.googleapis.com/css?family=Roboto:400,100,300,700' rel='stylesheet' type='text/css'>
<script type="text/javascript">
$(document).ready(function() {
//initialize first day to active
$('.tabs').find("li").first().addClass("active");
$('.schedule_content').find('.schedule_item').first().addClass("active");
$('.tabs li').click(function(){
//var tab_id = $(this).attr('data-tab');
var tab_id = "day-"+$(this).find('span').text();
$('.tabs li').removeClass('active');
$('.schedule_item').removeClass('active');
$(this).addClass('active');
$("#"+tab_id).addClass('active');
});
});
String.prototype.paddingLeft = function(paddingValue) {
return String(paddingValue + this).slice(-paddingValue.length);
};
var schedule_data = <?php echo $this->schedule_data; ?>;
var app = angular.module('scheduleWidget', []);
app.controller('scheduleController', ['$scope', '$window', function($scope, $window) {
// Loop through every show and assign it to the corresponding day of the week's
// show array.
angular.forEach($window.schedule_data["shows"], function(value, key) {
// First we have to create a Date object out of the show time in UTC.
// Then we can format the string in the client's local timezone.
// NOTE: we have to multiply the timestamp by 1000 because in PHP
// the timestamps are in seconds and are in milliseconds in javascript.
var start_date = new Date(value.starts_timestamp*1000);
var end_date = new Date(value.ends_timestamp*1000);
// This variable is used to identify which schedule_data object (which day of the week)
// we should assign the show to.
// NOTE: we have to add 1 to the month because javascript's Date.getMonth()
// function returns the month number starting with an index of 0. In PHP,
// the months are indexed starting at 1.
var format_start_date = start_date.getFullYear() + "-" + (start_date.getMonth()+1) + "-" + start_date.getDate();
if ($window.schedule_data["weekDays"][format_start_date] !== undefined) {
$window.schedule_data["weekDays"][format_start_date]["shows"].push(
{
"show_start_hour": start_date.toLocaleTimeString([], { hour: 'numeric', minute : 'numeric' }),
"show_end_hour": end_date.toLocaleTimeString([], { hour: 'numeric', minute : 'numeric' }),
"name": value.name
});
}
});
// Convert the object into an array to maintain the same order when we
// iterate over each weekday
$scope.weekDays = $.map($window.schedule_data["weekDays"], function(value, index) {
return [value];
});
$scope.isEmpty = function(obj) {
return obj.length == 0;
};
}]);
</script>
</head>
<body ng-app="scheduleWidget" ng-controller="scheduleController">
<div class="schedule tab_content current">
<ul class="tabs">
<li ng-repeat="x in weekDays track by $index">
{{x.dayOfWeek}}<span>{{x.dayOfMonth}}</span>
</li>
</ul>
<div class="schedule_content">
<div ng-repeat="x in weekDays track by $index" ng-attr-id="{{'day-' + x.dayOfMonth}}" class="schedule_item">
<div ng-if="isEmpty(x.shows)" class="row empty-schedule"><?php echo _('Looks like there are no shows scheduled on this day.') ?></div>
<div ng-repeat="show in x.shows" class="row">
<div class="time_grid">{{show.show_start_hour}} - {{show.show_end_hour}}</div>
<div class="name_grid">{{show.name}}</div>
</div>
</div>
</div>
<div class="weekly-schedule-widget-footer" <?php if ($this->widgetStyle == "premium") echo "style='display:none'"; ?>>
<a href="<?php echo PRODUCT_SITE_URL; ?>" target="_blank"><?php printf(_('Powered by %s'), PRODUCT_NAME); ?></a>
</div>
</div>
</body>
</html>