analytics menu
This commit is contained in:
@@ -1,30 +1,11 @@
|
||||
class BaseCtrl {
|
||||
constructor(syncManager, dbManager, authManager) {
|
||||
constructor(syncManager, dbManager, analyticsManager) {
|
||||
dbManager.openDatabase(null, function(){
|
||||
// new database, delete syncToken so that items can be refetched entirely from server
|
||||
syncManager.clearSyncToken();
|
||||
syncManager.sync();
|
||||
})
|
||||
|
||||
// load analytics
|
||||
window._paq = window._paq || [];
|
||||
|
||||
(function() {
|
||||
var u="https://piwik.standardnotes.org/";
|
||||
window._paq.push(['setTrackerUrl', u+'piwik.php']);
|
||||
window._paq.push(['setSiteId', '2']);
|
||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
||||
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
|
||||
})();
|
||||
|
||||
var analyticsId = authManager.getUserAnalyticsId();
|
||||
if(analyticsId) {
|
||||
window._paq.push(['setUserId', analyticsId]);
|
||||
}
|
||||
window._paq.push(['trackPageView']);
|
||||
window._paq.push(['enableLinkTracking']);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
angular.module('app.frontend').controller('BaseCtrl', BaseCtrl);
|
||||
|
||||
51
app/assets/javascripts/app/services/analyticsManager.js
Normal file
51
app/assets/javascripts/app/services/analyticsManager.js
Normal file
@@ -0,0 +1,51 @@
|
||||
class AnalyticsManager {
|
||||
|
||||
constructor(authManager) {
|
||||
this.authManager = authManager;
|
||||
|
||||
var status = localStorage.getItem("analyticsEnabled");
|
||||
if(status === null) {
|
||||
this.enabled = true;
|
||||
} else {
|
||||
this.enabled = JSON.parse(status);
|
||||
}
|
||||
|
||||
if(this.enabled === true) {
|
||||
this.initialize();
|
||||
}
|
||||
}
|
||||
|
||||
setStatus(enabled) {
|
||||
this.enabled = enabled;
|
||||
localStorage.setItem("analyticsEnabled", JSON.stringify(enabled));
|
||||
|
||||
window.location.reload();
|
||||
}
|
||||
|
||||
toggleStatus() {
|
||||
this.setStatus(!this.enabled);
|
||||
}
|
||||
|
||||
initialize() {
|
||||
// load analytics
|
||||
window._paq = window._paq || [];
|
||||
|
||||
(function() {
|
||||
var u="https://piwik.standardnotes.org/";
|
||||
window._paq.push(['setTrackerUrl', u+'piwik.php']);
|
||||
window._paq.push(['setSiteId', '2']);
|
||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
||||
g.type='text/javascript'; g.id="piwik", g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
|
||||
})();
|
||||
|
||||
var analyticsId = this.authManager.getUserAnalyticsId();
|
||||
if(analyticsId) {
|
||||
window._paq.push(['setUserId', analyticsId]);
|
||||
}
|
||||
window._paq.push(['trackPageView', "AppInterface"]);
|
||||
window._paq.push(['enableLinkTracking']);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
angular.module('app.frontend').service('analyticsManager', AnalyticsManager);
|
||||
@@ -6,7 +6,7 @@ class AccountMenu {
|
||||
this.scope = {};
|
||||
}
|
||||
|
||||
controller($scope, authManager, modelManager, syncManager, dbManager, $timeout) {
|
||||
controller($scope, authManager, modelManager, syncManager, dbManager, analyticsManager, $timeout) {
|
||||
'ngInject';
|
||||
|
||||
$scope.formData = {mergeLocal: true, url: syncManager.serverURL};
|
||||
@@ -14,6 +14,7 @@ class AccountMenu {
|
||||
$scope.server = syncManager.serverURL;
|
||||
|
||||
$scope.syncStatus = syncManager.syncStatus;
|
||||
$scope.analyticsManager = analyticsManager;
|
||||
|
||||
$scope.encryptionKey = function() {
|
||||
return authManager.keys().mk;
|
||||
|
||||
Reference in New Issue
Block a user