added modal to ask for matomo

pull/924/head
lianahus 4 years ago committed by Liana Husikyan
parent c9415347ea
commit b71b5102d7
  1. 67
      apps/remix-ide/src/app.js
  2. 7
      apps/remix-ide/src/app/tabs/settings-tab.js

@ -20,24 +20,25 @@ import FetchAndCompile from './app/compiler/compiler-sourceVerifier-fetchAndComp
import migrateFileSystem, { migrateToWorkspace } from './migrateFileSystem' import migrateFileSystem, { migrateToWorkspace } from './migrateFileSystem'
var isElectron = require('is-electron') const isElectron = require('is-electron')
var csjs = require('csjs-inject') const csjs = require('csjs-inject')
var yo = require('yo-yo') const yo = require('yo-yo')
var remixLib = require('@remix-project/remix-lib') const remixLib = require('@remix-project/remix-lib')
var registry = require('./global/registry') const registry = require('./global/registry')
var loadFileFromParent = require('./loadFilesFromParent') const loadFileFromParent = require('./loadFilesFromParent')
var { OffsetToLineColumnConverter } = require('./lib/offsetToLineColumnConverter') const { OffsetToLineColumnConverter } = require('./lib/offsetToLineColumnConverter')
var QueryParams = require('./lib/query-params') const QueryParams = require('./lib/query-params')
var Storage = remixLib.Storage const Storage = remixLib.Storage
var RemixDProvider = require('./app/files/remixDProvider') const RemixDProvider = require('./app/files/remixDProvider')
var Config = require('./config') const Config = require('./config')
var modalDialogCustom = require('./app/ui/modal-dialog-custom') const modalDialogCustom = require('./app/ui/modal-dialog-custom')
var FileManager = require('./app/files/fileManager') const modalDialog = require('./app/ui/modaldialog')
var FileProvider = require('./app/files/fileProvider') const FileManager = require('./app/files/fileManager')
var WorkspaceFileProvider = require('./app/files/workspaceFileProvider') const FileProvider = require('./app/files/fileProvider')
var toolTip = require('./app/ui/tooltip') const WorkspaceFileProvider = require('./app/files/workspaceFileProvider')
var CompilerMetadata = require('./app/files/compiler-metadata') const toolTip = require('./app/ui/tooltip')
var CompilerImport = require('./app/compiler/compiler-imports') const CompilerMetadata = require('./app/files/compiler-metadata')
const CompilerImport = require('./app/compiler/compiler-imports')
const Blockchain = require('./blockchain/blockchain.js') const Blockchain = require('./blockchain/blockchain.js')
@ -53,8 +54,9 @@ const FilePanel = require('./app/panels/file-panel')
const Editor = require('./app/editor/editor') const Editor = require('./app/editor/editor')
const Terminal = require('./app/panels/terminal') const Terminal = require('./app/panels/terminal')
const ContextualListener = require('./app/editor/contextualListener') const ContextualListener = require('./app/editor/contextualListener')
const _paq = window._paq = window._paq || []
var css = csjs` const css = csjs`
html { box-sizing: border-box; } html { box-sizing: border-box; }
*, *:before, *:after { box-sizing: inherit; } *, *:before, *:after { box-sizing: inherit; }
body { body {
@ -347,6 +349,33 @@ Please make a backup of your contracts and start using http://remix.ethereum.org
settings settings
]) ])
if (!registry.get('config').api.exists('settings/matomo-analytics')) {
// Ask to opt in to Matomo for remix, remix-alpha and remix-beta
//if (window.location.hostname.includes('.ethereum.org')) {
modalDialog(
'Help as to improve our IDE!',
yo `<div>
>p>Remix IDE uses Matomo ( https://matomo.org/ ), an open source data analytics software to improve the use of our website.</p>
<p>All data collected through Matomo is stored at our own server - no data is given to third parties.</p>
<p>We do not store any personally identifiable information (PII).</p>
</div>`,
{
label: "I'am in",
fn: () => {
settings.updateMatomoAnalyticsChoice(true)
_paq.push(['forgetUserOptOut'])
}
},
{
label: 'Decline',
fn: () => {
settings.updateMatomoAnalyticsChoice(false)
_paq.push(['optUserOut'])
}
}
)
//}
}
// CONTENT VIEWS & DEFAULT PLUGINS // CONTENT VIEWS & DEFAULT PLUGINS
const compileTab = new CompileTab( const compileTab = new CompileTab(
editor, editor,

@ -11,7 +11,7 @@ const _paq = window._paq = window._paq || []
const profile = { const profile = {
name: 'settings', name: 'settings',
displayName: 'Settings', displayName: 'Settings',
methods: ['getGithubAccessToken'], methods: ['getGithubAccessToken', 'updateMatomoAnalyticsChoice'],
events: [], events: [],
icon: 'assets/img/settings.webp', icon: 'assets/img/settings.webp',
description: 'Remix-IDE settings', description: 'Remix-IDE settings',
@ -257,4 +257,9 @@ module.exports = class SettingsTab extends ViewPlugin {
getGithubAccessToken () { getGithubAccessToken () {
return this.config.get('settings/gist-access-token') return this.config.get('settings/gist-access-token')
} }
updateMatomoAnalyticsChoice (isChecked) {
this.config.set('settings/matomo-analytics', isChecked)
this._view.useMatomoAnalytics.setAttribute('checked', isChecked ? 'checked' : '')
}
} }

Loading…
Cancel
Save