1
0
Fork 0
fgdata/webgui/widgets/metar.js
2015-03-05 14:58:48 +01:00

46 lines
1.3 KiB
JavaScript

define([
'jquery', 'knockout', 'text!./metar.html'
], function(jquery, ko, htmlString) {
function ViewModel(params) {
var NO_METAR = "no METAR";
self.scrolledMetar = ko.observable("");
self.textStart = 0;
self.metar = ko.observable(NO_METAR);
self.valid = ko.observable(false).extend({ fgprop: 'metar-valid' });
self.valid.subscribe(function(newValue) {
self.textStart = 0;
if( false == newValue ) {
self.metar(NO_METAR);
return;
}
self.metar("Wait..");
jquery.get('/json/environment/metar/data', null, function(data) {
self.textStart = 0;
self.metar(data.value);
});
});
self.textLength = 20;
self.timeout = 300;
self.timerId = setInterval(function() {
var t = self.metar() + " " + self.metar();
var a = self.textStart;
var b = a+self.textLength;
self.scrolledMetar( t.substring(a,b) );
if( ++a >= self.metar().length )
a = 0;
self.textStart = a;
}, self.timeout );
}
ViewModel.prototype.dispose = function() {
clearInterval( self.timerId );
}
// Return component definition
return {
viewModel : ViewModel,
template : htmlString
};
});