From cbb40dded8930c35802e65a914b8bf401c63a2b3 Mon Sep 17 00:00:00 2001 From: Jeff Morgan Date: Wed, 10 Dec 2014 18:55:03 -0800 Subject: [PATCH] Moving to leveldb --- meteor/client/lib/metrics.js | 33 ++++++++++++++++--- .../dashboard/settings/dashboard-settings.js | 8 ++--- 2 files changed, 32 insertions(+), 9 deletions(-) diff --git a/meteor/client/lib/metrics.js b/meteor/client/lib/metrics.js index 41e42ff8ba..410d4a8f62 100644 --- a/meteor/client/lib/metrics.js +++ b/meteor/client/lib/metrics.js @@ -8,18 +8,41 @@ var db = level(path.join(process.env[(process.platform === 'win32') ? 'USERPROFI 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) { if (!name) { return; } - var uuid = localStorage.getItem('metrics.uuid'); 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, { distinct_id: uuid, version: app.getVersion() }); - } + }); }); }; @@ -34,7 +57,9 @@ Metrics.prepareTracking = function () { } } db.get('metrics.uuid', function (err, value) { - db.put('metrics.uuid', uuid.v4()); + if (err && err.notFound) { + db.put('metrics.uuid', uuid.v4()); + } }); }); }; diff --git a/meteor/client/views/dashboard/settings/dashboard-settings.js b/meteor/client/views/dashboard/settings/dashboard-settings.js index c763828cd6..4b4cb88910 100644 --- a/meteor/client/views/dashboard/settings/dashboard-settings.js +++ b/meteor/client/views/dashboard/settings/dashboard-settings.js @@ -1,15 +1,13 @@ var remote = require('remote'); 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({ 'click .btn-usage-analytics-on': function () { - db.put('metrics.enabled', true); + Metrics.enable(); Session.set('metrics.enabled', true); }, 'click .btn-usage-analytics-off': function () { - db.put('metrics.enabled', false); + Metrics.disable(); Session.set('metrics.enabled', false); } }); @@ -17,7 +15,7 @@ Template.dashboardSettings.events({ Template.dashboardSettings.helpers({ metricsEnabled: function () { if (Session.get('metrics.enabled') === undefined) { - db.get('metrics.enabled', function (err, value) { + Metrics.enabled(function (value) { Session.set('metrics.enabled', value); }); }