jubilee/src/v1/js/app.js
2018-03-23 17:13:53 +00:00

97 lines
3.4 KiB
JavaScript

/* eslint-disable max-len */
require('muicss');
const $ = require('jquery');
const _ = require('underscore');
const Backbone = require('backbone');
const { LocationModel, LocationView } = require('./Location');
const { GreetModel, GreetView } = require('./Greet');
const { NearbyModel, NearbyView } = require('./Nearby');
const { WeatherModel, WeatherView } = require('./Weather');
const { WeatherAlertModel, WeatherAlertView } = require('./WeatherAlert');
const { ForecastModel, ForecastView } = require('./Forecast');
const { NewsModel, NewsView } = require('./News');
const { NewsCardModel, NewsCardView } = require('./NewsViewer');
const { NewsListModel, NewsListView } = require('./NewsList');
const { ByMeModel, ByMeView } = require('./RightByMe');
const { AgendaModel, AgendaView } = require('./Agenda');
const { TrafficModel, TrafficView } = require('./Traffic');
var app = app || {};
const live = false;
if (live) {
window.loc = 'https://jubilee.silvrtree.co.uk';
if ('serviceWorker' in navigator)
navigator.serviceWorker
.register('./service-worker.js')
.then(function() {
console.log('Service Worker Registered');
});
}
else
window.loc = 'http://localhost:8110';
(function () {
const offline = false;
/* var myRouter = Backbone.Router.extend({
//
});*/
app.eventBus = _.extend({}, Backbone.Events);
app.locationModel = new LocationModel();
app.locationView = new LocationView({ 'model': app.locationModel, 'el':'#location' });
// new TrainView({ 'model': new TrainModel(route), 'eventBus': app.eventBus });
app.greetView = new GreetView({ 'model': new GreetModel(), 'eventBus': app.eventBus, 'location': app.locationModel });
app.nearby = new NearbyView({ 'model': new NearbyModel(), 'eventBus': app.eventBus, 'location': app.locationModel, 'el':'#nearby' });
app.weather = new WeatherView({ 'model': new WeatherModel(), 'eventBus': app.eventBus, 'location': app.locationModel, 'el':'#weather', 'viewFrame':'#viewFrame' });
app.weatherAlert = new WeatherAlertView({ 'model': new WeatherAlertModel(), 'eventBus': app.eventBus, 'location': app.locationModel, 'el':'#weatherAlert', 'viewFrame':'#viewFrame' });
app.forecastCard = new ForecastView({ 'model': new ForecastModel(), 'eventBus': app.eventBus });
app.newsCard = new NewsCardView({ 'model': new NewsCardModel(), 'eventBus': app.eventBus });
app.newsList = new NewsListView({'model': new NewsListModel(), 'eventBus' : app.eventBus});
app.news = new NewsView({ 'model': new NewsModel(), 'eventBus': app.eventBus, 'el':'#newsShell' });
app.byMe = new ByMeView({ 'model': new ByMeModel(), 'eventBus': app.eventBus, 'location': app.locationModel, 'el':'#byme' });
app.agenda = new AgendaView({ 'model': new AgendaModel(), 'eventBus': app.eventBus, 'el':'#agenda' });
app.traffic = new TrafficView({ 'model': new TrafficModel(), 'eventBus': app.eventBus, 'location': app.locationModel, 'el':'#traffic' });
app.updateOnlineStatus = function(event) {
if (navigator.onLine)
// handle online status
{
console.log('online');
$('#connectionStatus').hide(500);
}
else
// handle offline status
{
console.log('offline');
$('#connectionStatus').show(500);
}
};
window.addEventListener('focus', () => {
console.log('Window has focus...');
app.eventBus.trigger('focused');
});
window.addEventListener('online', app.updateOnlineStatus);
window.addEventListener('offline', app.updateOnlineStatus);
})();