Moving to leveldb

This commit is contained in:
Jeff Morgan 2014-12-10 18:55:03 -08:00
parent 9c5eed99fa
commit cbb40dded8
2 changed files with 32 additions and 9 deletions

View File

@ -8,18 +8,41 @@ var db = level(path.join(process.env[(process.platform === 'win32') ? 'USERPROFI
Metrics = {}; Metrics = {};
Metrics.enable = function () {
db.put('metrics.enabled', true);
};
Metrics.disable = function () {
db.put('metrics.enabled', false);
};
Metrics.enabled = function (callback) {
db.get('metrics.enabled', function (err, value) {
if (err) {
callback(false);
} else {
callback(value);
}
});
};
Metrics.trackEvent = function (name) { Metrics.trackEvent = function (name) {
if (!name) { if (!name) {
return; return;
} }
var uuid = localStorage.getItem('metrics.uuid');
db.get('metrics.enabled', function (err, value) { db.get('metrics.enabled', function (err, value) {
if (!err && uuid) { if (err || !value) {
return;
}
db.get('metrics.uuid', function (err, uuid) {
if (err) {
return;
}
mixpanel.track('docker_gui ' + name, { mixpanel.track('docker_gui ' + name, {
distinct_id: uuid, distinct_id: uuid,
version: app.getVersion() version: app.getVersion()
}); });
} });
}); });
}; };
@ -34,7 +57,9 @@ Metrics.prepareTracking = function () {
} }
} }
db.get('metrics.uuid', function (err, value) { db.get('metrics.uuid', function (err, value) {
db.put('metrics.uuid', uuid.v4()); if (err && err.notFound) {
db.put('metrics.uuid', uuid.v4());
}
}); });
}); });
}; };

View File

@ -1,15 +1,13 @@
var remote = require('remote'); var remote = require('remote');
var dialog = remote.require('dialog'); var dialog = remote.require('dialog');
var level = require('levelup');
var db = level(path.join(process.env[(process.platform === 'win32') ? 'USERPROFILE' : 'HOME'], 'Library/Application Support/Kitematic/data', 'db'));
Template.dashboardSettings.events({ Template.dashboardSettings.events({
'click .btn-usage-analytics-on': function () { 'click .btn-usage-analytics-on': function () {
db.put('metrics.enabled', true); Metrics.enable();
Session.set('metrics.enabled', true); Session.set('metrics.enabled', true);
}, },
'click .btn-usage-analytics-off': function () { 'click .btn-usage-analytics-off': function () {
db.put('metrics.enabled', false); Metrics.disable();
Session.set('metrics.enabled', false); Session.set('metrics.enabled', false);
} }
}); });
@ -17,7 +15,7 @@ Template.dashboardSettings.events({
Template.dashboardSettings.helpers({ Template.dashboardSettings.helpers({
metricsEnabled: function () { metricsEnabled: function () {
if (Session.get('metrics.enabled') === undefined) { if (Session.get('metrics.enabled') === undefined) {
db.get('metrics.enabled', function (err, value) { Metrics.enabled(function (value) {
Session.set('metrics.enabled', value); Session.set('metrics.enabled', value);
}); });
} }