Difference between revisions of "Widget:SpaceAPI"

From Hackerspace ACKspace
Jump to: navigation, search
m (added last update timestamp popup)
m (fixed timestamp, testing animation classname)
Line 227: Line 227:
 
                     this._beacon.point = L.latLng( this.data.sensors.beacon[0].location.lat, this.data.sensors.beacon[0].location.lon );
 
                     this._beacon.point = L.latLng( this.data.sensors.beacon[0].location.lat, this.data.sensors.beacon[0].location.lon );
 
                     this._beacon.circle.setRadius( this.data.sensors.beacon[0].location.accuracy );
 
                     this._beacon.circle.setRadius( this.data.sensors.beacon[0].location.accuracy );
 +
 +
                    var delta = (Date.now() - new Date( this.data.sensors.beacon[0].ext_lastchange * 1000 )) / 1000;
 +
                    var postfix = "s";
 +
                    if ( this._beacon.icons[ this.data.sensors.beacon[0].name ] )
 +
                        this._beacon.icons[ this.data.sensors.beacon[0].name ].options.className = delta > 60 ? "disconnected" : "";
 +
 +
                    // s->m
 +
                    if ( delta / 60 > 1 )
 +
                    {
 +
                        delta =/ 60;
 +
                        postfix = "m";
 +
                    }
 +
                    // m->h (starting @ 90m)
 +
                    if ( delta / 90 > 1 )
 +
                    {
 +
                        delta =/ 60;
 +
                        postfix = "h";
 +
                    }
 +
                    // h->d
 +
                    if ( delta / 24 > 1 )
 +
                    {
 +
                        delta =/ 24;
 +
                        postfix = "d";
 +
                    }
 +
                    // d->w
 +
                    if ( delta / 7 > 1 )
 +
                    {
 +
                        delta =/ 7;
 +
                        postfix = "W";
 +
                    }
 +
                    // w->m (@8)
 +
                    if ( delta / 8 > 1 )
 +
                    {
 +
                        delta = ( delta * 7 / 30.436875 );
 +
                        postfix = "M";
 +
                    }
 +
                    // m->y
 +
                    if ( delta / 12 > 1 )
 +
                    {
 +
                        delta /= 12;
 +
                        postfix = "Y";
 +
                    }
 +
                    this._beacon.marker.bindPopup( "Hackers on a Bike<br/>Last update: " + Math.round( delta ) + postfix + " ago" );
 
                     this._beacon.marker.setIcon( this._beacon.icons[ this.data.sensors.beacon[0].name ] || new L.Icon.Default() );
 
                     this._beacon.marker.setIcon( this._beacon.icons[ this.data.sensors.beacon[0].name ] || new L.Icon.Default() );
                    this._beacon.marker.bindPopup( "Hackers on a Bike<br/>Last update: " + new Date( this.data.sensors.beacon[0].ext_lastchange ) );
 
                    console.log( new Date() - this.data.sensors.beacon[0].ext_lastchange );
 
 
                 }
 
                 }
 
                 else
 
                 else

Revision as of 08:37, 12 May 2016

This widget allows you to display the Space API data (provided as JSON)

Created by Xopr

Using this widget

To insert this widget, use the following code:

{{#widget:SpaceAPI
|url=/spaceAPI/
|width=260px
|height=20px
|padding=8px
|interval=20
|float=right
}}

This will give the following result:

Notes

  • url is mandatory, the rest is optional (leave out interval to make the data static).
    it also must be written without protocol since colon (:) is not allowed, and may be relative, for example: //ackspace.nl/spaceAPI/ or /spaceAPI/
  • You must provide a unit for the sizes (i.e. px, %, etc.)

Copy to your site

To use this widget on your site, just install MediaWiki Widgets extension and copy full source code of this page to your wiki as Widget:SpaceAPI article.