147 lines
4.9 KiB
JavaScript
147 lines
4.9 KiB
JavaScript
var app = angular.module('infoApp', ['ngAnimate', 'ngRoute']);
|
|
|
|
app.controller('infoscreen_main', function($scope,$http,$timeout){
|
|
var templates = [];
|
|
$scope.init = function(rot){
|
|
$scope.rotation = rot;
|
|
get_rotation();
|
|
}
|
|
var get_rotation = function(){
|
|
$scope.index = -1;
|
|
$http.get('/infoscreen/rotation/'+$scope.rotation, {timeout:5000}).then(function(response){
|
|
templates = response.data.instances;
|
|
if (templates.length == 0) {
|
|
$timeout(get_rotation, 10000);
|
|
}
|
|
else {
|
|
$scope.next();
|
|
}
|
|
},function(response) { //eslint-disable-line no-unused-vars
|
|
$timeout(get_rotation, 10000);
|
|
});
|
|
}
|
|
|
|
$scope.next = function(){
|
|
$scope.index++;
|
|
if ($scope.index >= templates.length){
|
|
return get_rotation();
|
|
}
|
|
var temp = templates[$scope.index];
|
|
$scope.active = {
|
|
template: temp.item.template_url,
|
|
onload: function(){
|
|
for (var key in temp.item.options){
|
|
$scope[key] = temp.item.options[key]
|
|
}
|
|
}
|
|
};
|
|
$timeout($scope.next, temp.duration * 1000);
|
|
}
|
|
});
|
|
|
|
//Doing this the ugly way because Angular likes to be the special priviledged child
|
|
app.filter('trusted_url', ['$sce', function ($sce) {
|
|
return function(url) {
|
|
return $sce.trustAsResourceUrl(url);
|
|
};
|
|
}]);
|
|
|
|
app.controller('ABBController', function($scope, $http){
|
|
$scope.jobs = [];
|
|
var min_date = moment().subtract(30,'days').format("YYYY-MM-DD%20HH:mm:ss");
|
|
var url = "https://sahkoinsinoorikilta.fi/api/news.php";
|
|
var params = "?type=11&lang=fi&title_search=ABB&min_date="+min_date
|
|
$http.get(url+params).then(function(response){
|
|
$scope.jobs = _.filter(response.data, function(job){
|
|
if (job.autohide_enabled == 1){
|
|
if (moment(job.autohide) < moment()){
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
});
|
|
|
|
if ($scope.jobs.length > 3) {
|
|
$scope.jobs = $scope.jobs.slice(0, 3);
|
|
}
|
|
});
|
|
});
|
|
|
|
app.controller('SossoController', function($scope, $http) {
|
|
$scope.data = [];
|
|
$http.get("https://sosso.fi/api/get_recent_posts/?count=" + 3 ).then(function(response)
|
|
{
|
|
$scope.data = response.data;
|
|
})
|
|
});
|
|
|
|
app.controller('ApyController', function($scope, $http) {
|
|
$scope.items = [];
|
|
$http.get("/infoscreen/apyjson").then(function(response)
|
|
{
|
|
$scope.items = response.data.data
|
|
})
|
|
});
|
|
|
|
app.controller('EventController', function($scope, $http) {
|
|
$scope.data = [];
|
|
$http.get("https://sik.ayy.fi/api/events.php?limit=10").then(function(response)
|
|
{
|
|
$scope.events = response.data;
|
|
$scope.events = _.each($scope.events, function(ev){
|
|
var time = moment(ev.event_start);
|
|
ev.event_start = time;
|
|
ev.event_start = time.format("ddd DD.MM.");
|
|
// lets not trust locale
|
|
ev.event_start = ev.event_start.replace("Mon", "Ma");
|
|
ev.event_start = ev.event_start.replace("Tue", "Ti");
|
|
ev.event_start = ev.event_start.replace("Wed", "Ke");
|
|
ev.event_start = ev.event_start.replace("Thu", "To");
|
|
ev.event_start = ev.event_start.replace("Fri", "Pe");
|
|
ev.event_start = ev.event_start.replace("Sat", "La");
|
|
ev.event_start = ev.event_start.replace("Sun", "Su");
|
|
});
|
|
})
|
|
});
|
|
|
|
app.filter('unixTimeToDifference', function() {
|
|
return function(input) {
|
|
var date = moment.unix(input);
|
|
var now = moment();
|
|
var res = date.diff(now, 'minutes');
|
|
return res;
|
|
}
|
|
})
|
|
|
|
app.controller('timetableCtrl',
|
|
function($scope, $http, $interval) {
|
|
function load() {
|
|
$http.get('/infoscreen/hsl_data')
|
|
.then(function(data, status, headers, config) { //eslint-disable-line no-unused-vars
|
|
$scope.stoptimes = data.data;
|
|
$scope.error = data.data.error || null;
|
|
});
|
|
$http.get('/infoscreen/hsl_data/settings')
|
|
.then(function(data, status, headers, config) { //eslint-disable-line no-unused-vars
|
|
$scope.departureThreshold = data.data['departure_threshold'];
|
|
$scope.hurryThreshold = data.data['hurry_threshold'];
|
|
});
|
|
}
|
|
|
|
function update_clock() {
|
|
$scope.clock = Date.now();
|
|
}
|
|
|
|
$scope.$on('$destroy', function() {
|
|
$interval.cancel(load_interval);
|
|
$interval.cancel(clock_interval);
|
|
});
|
|
|
|
var load_interval = $interval(load, 5000);
|
|
var clock_interval = $interval(update_clock, 1000);
|
|
|
|
update_clock();
|
|
load();
|
|
}
|
|
);
|