mirror of
https://github.com/owntracks/recorder.git
synced 2024-11-15 09:58:40 -07:00
Merge branch 'master'
This commit is contained in:
commit
9dc1f65466
@ -51,7 +51,7 @@
|
||||
script.type = 'text/javascript';
|
||||
if (typeof apiKey != 'undefined' && apiKey != "" ) {
|
||||
script.src = 'https://maps.googleapis.com/maps/api/js?v=3' +
|
||||
'&signed_in=true&key=' + apiKey +'&callback=initialize_googlemaps';
|
||||
'&key=' + apiKey +'&callback=initialize_googlemaps';
|
||||
} else {
|
||||
$("head").append("<link rel='stylesheet' href='https://unpkg.com/leaflet@1.0.2/dist/leaflet.css' type='text/css' />");
|
||||
|
||||
|
@ -34,7 +34,7 @@
|
||||
script.type = 'text/javascript';
|
||||
if (typeof apiKey != 'undefined' && apiKey != "" ) {
|
||||
script.src = 'https://maps.googleapis.com/maps/api/js?v=3' +
|
||||
'&signed_in=true&key=' + apiKey +'&callback=initialize_googlemaps';
|
||||
'&key=' + apiKey +'&callback=initialize_googlemaps';
|
||||
} else {
|
||||
$("head").append("<link rel='stylesheet' href='https://unpkg.com/leaflet@1.2.0/dist/leaflet.css' type='text/css' />");
|
||||
// Dynamic script loading from http://stackoverflow.com/a/8578840
|
||||
|
@ -82,9 +82,10 @@ function initialize_googlemaps() {
|
||||
tst: tst,
|
||||
addr: event.feature.getProperty('address'),
|
||||
fulldate: dt.format("DD MMM YYYY HH:mm:ss"),
|
||||
vel: event.feature.getProperty('vel'),
|
||||
};
|
||||
|
||||
var t = "{{ addr }}<br/><span class='latlon'>({{ lat }},{{lon}})</span> {{ fulldate }}";
|
||||
var t = "{{ addr }}<br/><span class='latlon'>({{ lat }},{{lon}})</span> vel={{vel}} {{ fulldate }}";
|
||||
if (typeof(tst) === 'undefined') {
|
||||
t = "Position: {{lat}}, {{lon}}";
|
||||
}
|
||||
|
@ -42,12 +42,23 @@ function initialize_leaflet() {
|
||||
data.lon = feature.geometry.coordinates[1].toFixed(4);
|
||||
data.addr = feature.properties.address;
|
||||
var tst = feature.properties.tst;
|
||||
// determine speed
|
||||
data.speed = feature.properties.vel;
|
||||
var speed = data.speed;
|
||||
var dt = moment.utc(tst * 1000).local();
|
||||
data.tst = tst;
|
||||
data.fulldate = dt.format("DD MMM YYYY HH:mm:ss")
|
||||
var t = "{{ addr }}<br/><span class='latlon'>({{ lat }},{{lon}})</span> {{ fulldate }}";
|
||||
var t = "{{ addr }}<br/><span class='latlon'>({{ lat }},{{lon}})</span> {{ fulldate }}<br/> Speed: {{ speed }}";
|
||||
// if speed is 0 then don't display speed
|
||||
if (speed === 0) {
|
||||
t = "{{ addr }}<br/><span class='latlon'>({{ lat }},{{lon}})</span> {{ fulldate }}"
|
||||
}
|
||||
if (typeof(tst) === 'undefined') {
|
||||
t = "Position: {{lat}}, {{lon}}";
|
||||
t = "Position: ({{lat}},{{lon}})<br/>Speed: {{speed}}";
|
||||
}
|
||||
// if speed is 0 then don't display speed
|
||||
if (typeof(tst) === 'undefined' && speed === 0) {
|
||||
t = "Position: ({{lat}},{{lon}})";
|
||||
}
|
||||
|
||||
layer.bindPopup(Mustache.render(t, data));
|
||||
|
70
docroot/table/flags/Hello.txt
Normal file
70
docroot/table/flags/Hello.txt
Normal file
@ -0,0 +1,70 @@
|
||||
Flag Icons by GoSquared (http://www.gosquared.com/)
|
||||
|
||||
Version: 2.6
|
||||
Last Updated: 8th March 2013
|
||||
|
||||
Usage:
|
||||
You're free to use this set for both personal and commercial projects
|
||||
(MIT License, see LICENSE.txt), and a back-link is not required
|
||||
(but certainly appreciated).
|
||||
|
||||
|
||||
Inclusion of flags:
|
||||
This icon set includes all flags for recognized sovereign states, plus several other major
|
||||
territories. As a rule, disputed states ARE included without discrimination.
|
||||
|
||||
|
||||
Contacting Us:
|
||||
If you have any suggestions of corrections (incorrectly named, missing, or out-of-date flags etc.),
|
||||
then don't hesitate to get in touch at support@gosquared.com and we will do our best
|
||||
to rectify any mistakes or omissions.
|
||||
|
||||
|
||||
Changelog:
|
||||
|
||||
* 2.6: 8th March 2013
|
||||
Added Saint Martin to bring total now to 260
|
||||
|
||||
* 2.5: 3rd March 2013
|
||||
Couple more missing flags:
|
||||
Canary Islands
|
||||
Curaçao
|
||||
|
||||
* 2.4: 2nd March 2013
|
||||
Added a couple more missing:
|
||||
Basque Country
|
||||
Martinique
|
||||
Added "unknown"
|
||||
Cleaned out some buggy files called ".png" that crept in somehow
|
||||
|
||||
* 2.3: 26th January 2013
|
||||
Added more missing flags:
|
||||
French Polynesia
|
||||
Frensh Southern Territories
|
||||
Tokelau
|
||||
Wallis and Futuna
|
||||
Removed Kosovo's ISO code (it doesn't have one, KV was wrong)
|
||||
Corrected East Timor's ISO code (TP -> TL)
|
||||
|
||||
* 2.2: 29th October 2012
|
||||
Added some missing flags:
|
||||
British Antarctic Territories
|
||||
Christmas Island
|
||||
Cocos (Keeling) Islands
|
||||
Cook Islands
|
||||
Gibraltar
|
||||
Mayotte
|
||||
New Caledonia
|
||||
Niue
|
||||
Added ico and icns formats
|
||||
Fixed problem where all flags in flats/flat had no extension (oops!)
|
||||
Fixed alignment of Nepal overlay at 48x48
|
||||
|
||||
* 2.1: 19th October 2012
|
||||
Fixed incorrect ISO code for Montenegro (CS -> ME)
|
||||
|
||||
* 2.0: 18th October 2012
|
||||
Fully revamped with new "shiny" style, updated with changed and new flags
|
||||
|
||||
* 1.0: 16th September 2010
|
||||
First created. Icon set containing 2400 flag icons
|
@ -298,7 +298,7 @@
|
||||
var script = document.createElement('script');
|
||||
script.type = 'text/javascript';
|
||||
script.src = 'https://maps.googleapis.com/maps/api/js?v=3' +
|
||||
'&signed_in=true&key=' + apiKey +'&callback=initialize';
|
||||
'&key=' + apiKey +'&callback=initialize';
|
||||
document.body.appendChild(script);
|
||||
}
|
||||
|
||||
|
45
storage.c
45
storage.c
@ -41,6 +41,7 @@
|
||||
char STORAGEDIR[BUFSIZ] = STORAGEDEFAULT;
|
||||
|
||||
#define LINESIZE 8192
|
||||
#define LARGEBUF (BUFSIZ * 2)
|
||||
|
||||
static struct gcache *gc = NULL;
|
||||
|
||||
@ -49,9 +50,9 @@ void storage_init(int revgeo)
|
||||
setenv("TZ", "UTC", 1);
|
||||
|
||||
if (revgeo) {
|
||||
char path[BUFSIZ];
|
||||
char path[LARGEBUF];
|
||||
|
||||
snprintf(path, BUFSIZ, "%s/ghash", STORAGEDIR);
|
||||
snprintf(path, LARGEBUF, "%s/ghash", STORAGEDIR);
|
||||
gc = gcache_open(path, NULL, TRUE);
|
||||
if (gc == NULL) {
|
||||
olog(LOG_ERR, "storage_init(): gc is NULL");
|
||||
@ -61,17 +62,17 @@ void storage_init(int revgeo)
|
||||
|
||||
void storage_gcache_dump(char *lmdbname)
|
||||
{
|
||||
char path[BUFSIZ];
|
||||
snprintf(path, BUFSIZ, "%s/ghash", STORAGEDIR);
|
||||
char path[LARGEBUF];
|
||||
snprintf(path, LARGEBUF, "%s/ghash", STORAGEDIR);
|
||||
|
||||
gcache_dump(path, lmdbname);
|
||||
}
|
||||
|
||||
void storage_gcache_load(char *lmdbname)
|
||||
{
|
||||
char path[BUFSIZ];
|
||||
char path[LARGEBUF];
|
||||
|
||||
snprintf(path, BUFSIZ, "%s/ghash", STORAGEDIR);
|
||||
snprintf(path, LARGEBUF, "%s/ghash", STORAGEDIR);
|
||||
gcache_load(path, lmdbname);
|
||||
}
|
||||
|
||||
@ -178,19 +179,19 @@ static void get_gw_data(char *username, char *device, JsonNode *last)
|
||||
|
||||
void append_card_to_object(JsonNode *obj, char *user, char *device)
|
||||
{
|
||||
char path[BUFSIZ], path1[BUFSIZ], *cardfile = NULL;
|
||||
char path[LARGEBUF], path1[LARGEBUF], *cardfile = NULL;
|
||||
JsonNode *card;
|
||||
|
||||
if (!user || !*user)
|
||||
return;
|
||||
|
||||
|
||||
snprintf(path, BUFSIZ, "%s/cards/%s/%s/%s-%s.json",
|
||||
snprintf(path, LARGEBUF, "%s/cards/%s/%s/%s-%s.json",
|
||||
STORAGEDIR, user, device, user, device);
|
||||
if (access(path, R_OK) == 0) {
|
||||
cardfile = path;
|
||||
} else {
|
||||
snprintf(path1, BUFSIZ, "%s/cards/%s/%s.json",
|
||||
snprintf(path1, LARGEBUF, "%s/cards/%s/%s.json",
|
||||
STORAGEDIR, user, user);
|
||||
|
||||
if (access(path1, R_OK) == 0) {
|
||||
@ -207,10 +208,10 @@ void append_card_to_object(JsonNode *obj, char *user, char *device)
|
||||
|
||||
void append_device_details(JsonNode *userlist, char *user, char *device)
|
||||
{
|
||||
char path[BUFSIZ];
|
||||
char path[LARGEBUF];
|
||||
JsonNode *node, *last;
|
||||
|
||||
snprintf(path, BUFSIZ, "%s/last/%s/%s/%s-%s.json",
|
||||
snprintf(path, LARGEBUF, "%s/last/%s/%s/%s-%s.json",
|
||||
STORAGEDIR, user, device, user, device);
|
||||
|
||||
last = json_mkobject();
|
||||
@ -233,7 +234,7 @@ void append_device_details(JsonNode *userlist, char *user, char *device)
|
||||
}
|
||||
|
||||
/* Extra data */
|
||||
snprintf(path, BUFSIZ, "%s/last/%s/%s/extra.json",
|
||||
snprintf(path, LARGEBUF, "%s/last/%s/%s/extra.json",
|
||||
STORAGEDIR, user, device);
|
||||
json_copy_from_file(last, path);
|
||||
#if WITH_GREENWICH
|
||||
@ -253,9 +254,9 @@ JsonNode *last_users(char *in_user, char *in_device, JsonNode *fields)
|
||||
{
|
||||
JsonNode *obj = json_mkobject();
|
||||
JsonNode *un, *dn, *userlist = json_mkarray();
|
||||
char path[BUFSIZ], user[BUFSIZ], device[BUFSIZ];
|
||||
char path[LARGEBUF], user[BUFSIZ], device[BUFSIZ];
|
||||
|
||||
snprintf(path, BUFSIZ, "%s/last", STORAGEDIR);
|
||||
snprintf(path, LARGEBUF, "%s/last", STORAGEDIR);
|
||||
|
||||
// fprintf(stderr, "last_users(%s, %s)\n", (in_user) ? in_user : "<nil>",
|
||||
// (in_device) ? in_device : "<nil>");
|
||||
@ -918,7 +919,7 @@ void locations(char *filename, JsonNode *obj, JsonNode *arr, time_t s_lo, time_t
|
||||
*
|
||||
*/
|
||||
|
||||
static void append_to_feature_array(JsonNode *features, double lat, double lon, char *tid, char *addr, long tst)
|
||||
static void append_to_feature_array(JsonNode *features, double lat, double lon, char *tid, char *addr, long tst, long vel)
|
||||
{
|
||||
JsonNode *geom, *props, *f = json_mkobject();
|
||||
|
||||
@ -934,6 +935,7 @@ static void append_to_feature_array(JsonNode *features, double lat, double lon,
|
||||
props = json_mkobject();
|
||||
json_append_member(props, "name", json_mkstring(tid));
|
||||
json_append_member(props, "address", json_mkstring(addr));
|
||||
json_append_member(props, "vel", json_mknumber(vel));
|
||||
json_append_member(props, "tst", json_mknumber(tst));
|
||||
|
||||
json_append_member(f, "geometry", geom);
|
||||
@ -957,7 +959,7 @@ JsonNode *geo_json(JsonNode *location_array)
|
||||
json_foreach(one, location_array) {
|
||||
double lat = 0.0, lon = 0.0;
|
||||
char *addr = "", *tid = "";
|
||||
long tst = 0;
|
||||
long tst = 0, vel = 0;
|
||||
|
||||
if ((j = json_find_member(one, "lat")) != NULL) {
|
||||
lat = j->number_;
|
||||
@ -975,8 +977,11 @@ JsonNode *geo_json(JsonNode *location_array)
|
||||
if ((j = json_find_member(one, "tst")) != NULL) {
|
||||
tst = j->number_;
|
||||
}
|
||||
if ((j = json_find_member(one, "vel")) != NULL) {
|
||||
vel = j->number_;
|
||||
}
|
||||
|
||||
append_to_feature_array(feature_array, lat, lon, tid, addr, tst);
|
||||
append_to_feature_array(feature_array, lat, lon, tid, addr, tst, vel);
|
||||
}
|
||||
|
||||
json_append_member(fcollection, "features", feature_array);
|
||||
@ -1477,7 +1482,7 @@ void csv_output(JsonNode *array, output_type otype, JsonNode *fields, void (*fun
|
||||
|
||||
char *storage_userphoto(char *username)
|
||||
{
|
||||
static char path[BUFSIZ];
|
||||
static char path[LARGEBUF];
|
||||
|
||||
if (!username || !*username)
|
||||
return (NULL);
|
||||
@ -1494,7 +1499,7 @@ char *storage_userphoto(char *username)
|
||||
|
||||
void extra_http_json(JsonNode *array, char *user, char *device)
|
||||
{
|
||||
char path[BUFSIZ], *js_string;
|
||||
char path[LARGEBUF], *js_string;
|
||||
JsonNode *node;
|
||||
|
||||
if (!array || !user || !*user || !device || !*device)
|
||||
@ -1503,7 +1508,7 @@ void extra_http_json(JsonNode *array, char *user, char *device)
|
||||
return;
|
||||
|
||||
/* Extra data */
|
||||
snprintf(path, BUFSIZ, "%s/last/%s/%s/http.json",
|
||||
snprintf(path, LARGEBUF, "%s/last/%s/%s/http.json",
|
||||
STORAGEDIR, user, device);
|
||||
|
||||
if ((js_string = slurp_file(path, TRUE)) == NULL) {
|
||||
|
Loading…
Reference in New Issue
Block a user