|
|
|
|
// Network check component
|
|
enyo.kind({
|
|
name: "FoodChain.NetworkCheck",
|
|
kind: enyo.Control,
|
|
classes: "networkCheck",
|
|
published: { connected: false },
|
|
components: [
|
|
{name: "box", components: []}
|
|
],
|
|
|
|
// Constructor
|
|
create: function() {
|
|
this.inherited(arguments);
|
|
this.then = null;
|
|
},
|
|
|
|
// Constructor
|
|
rendered: function() {
|
|
this.inherited(arguments);
|
|
},
|
|
|
|
// Check the connection
|
|
check: function(then) {
|
|
// Remove previous attempt
|
|
var items = [];
|
|
enyo.forEach(this.$.box.getControls(), function(item) {
|
|
items.push(item);
|
|
});
|
|
for (var i = 0 ; i < items.length ; i++) {
|
|
items[i].destroy();
|
|
}
|
|
|
|
// Ping network
|
|
this.then = then;
|
|
this.$.box.createComponent(
|
|
{kind: "Image", showing: false, src: "images/cards/_ping.png?"+(new Date()).getTime(), onload: "networkOK", onerror: "networkKO"},
|
|
{owner: this}
|
|
).render();
|
|
},
|
|
|
|
// Update icons depending of network response
|
|
networkOK: function() {
|
|
this.connected = true;
|
|
if (this.then) this.then(this.connected);
|
|
},
|
|
|
|
networkKO: function() {
|
|
this.connected = false;
|
|
if (this.then) this.then(this.connected);
|
|
}
|
|
});
|