Merge pull request #2559 from openstreetmap/changeset-info

Add basic browser and platform into to changeset tags
This commit is contained in:
Bryan Housel
2015-03-20 22:30:10 -04:00
2 changed files with 52 additions and 16 deletions

View File

@@ -241,12 +241,15 @@ iD.Connection = function() {
};
connection.changesetTags = function(comment, imageryUsed) {
var tags = {
created_by: 'iD ' + iD.version,
host: (window.location.origin + window.location.pathname).substr(0, 255),
locale: iD.detect().locale,
imagery_used: imageryUsed.join(';').substr(0, 255),
};
var detected = iD.detect(),
tags = {
created_by: 'iD ' + iD.version,
imagery_used: imageryUsed.join(';').substr(0, 255),
host: (window.location.origin + window.location.pathname).substr(0, 255),
locale: detected.locale,
browser: detected.browser + ' ' + detected.version,
platform: detected.platform
};
if (comment) {
tags.comment = comment.substr(0, 255);

View File

@@ -330,17 +330,39 @@ iD.version = '1.7.0';
var detected = {};
var ua = navigator.userAgent,
msie = new RegExp('MSIE ([0-9]{1,}[\\.0-9]{0,})');
m = null;
if (msie.exec(ua) !== null) {
var rv = parseFloat(RegExp.$1);
detected.support = !(rv && rv < 9);
m = ua.match(/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/i); // IE11
if (m !== null) {
detected.browser = 'msie';
detected.version = m[1];
} else {
m = ua.match(/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i);
if (m !== null) {
detected.browser = m[1];
detected.version = m[2];
m = ua.match(/version\/([\.\d]+)/i);
if (m !== null) {
detected.version = m[1];
}
} else {
detected.browser = navigator.appName;
detected.version = navigator.appVersion;
}
}
// keep major.minor version only..
detected.version = detected.version.split(/\W/).slice(0,2).join('.');
if (detected.browser.toLowerCase() === 'msie') {
detected.browser = 'Internet Explorer';
detected.support = parseFloat(detected.version) > 9;
} else {
detected.support = true;
}
// Added due to incomplete svg style support. See #715
detected.opera = ua.indexOf('Opera') >= 0;
detected.opera = (detected.browser.toLowerCase() === 'opera');
detected.locale = navigator.language || navigator.userLanguage;
@@ -350,11 +372,22 @@ iD.version = '1.7.0';
return navigator.userAgent.indexOf(x) !== -1;
}
if (nav('Win')) detected.os = 'win';
else if (nav('Mac')) detected.os = 'mac';
else if (nav('X11')) detected.os = 'linux';
else if (nav('Linux')) detected.os = 'linux';
else detected.os = 'win';
if (nav('Win')) {
detected.os = 'win';
detected.platform = 'Windows';
}
else if (nav('Mac')) {
detected.os = 'mac';
detected.platform = 'Macintosh';
}
else if (nav('X11') || nav('Linux')) {
detected.os = 'linux';
detected.platform = 'Linux';
}
else {
detected.os = 'win';
detected.platform = 'Unknown';
}
iD.detect = function() { return detected; };
})();