blob: 7bc2b4b958b4a7444dc35647996b999fce14b9b6 [file] [log] [blame]
Devon Carew3798eaa2015-01-13 13:25:56 -08001// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2// for details. All rights reserved. Use of this source code is governed by a
3// BSD-style license that can be found in the LICENSE file.
4
Devon Carewc43617e2016-03-13 21:23:52 -07005/// A simple web app to hand-test the usage library.
Devon Carew3798eaa2015-01-13 13:25:56 -08006library usage_example;
7
Devon Carew3798eaa2015-01-13 13:25:56 -08008import 'dart:html';
9
Devon Carewb59f60b2016-10-16 13:23:46 -070010import 'package:usage/usage_html.dart';
Devon Carew3798eaa2015-01-13 13:25:56 -080011
12Analytics _analytics;
13String _lastUa;
14int _count = 0;
15
16void main() {
Devon Carewc43617e2016-03-13 21:23:52 -070017 querySelector('#foo').onClick.listen((_) => _handleFoo());
18 querySelector('#bar').onClick.listen((_) => _handleBar());
19 querySelector('#page').onClick.listen((_) => _changePage());
Devon Carew3798eaa2015-01-13 13:25:56 -080020}
21
22String _ua() => (querySelector('#ua') as InputElement).value.trim();
23
Devon Carewb59f60b2016-10-16 13:23:46 -070024Analytics getAnalytics() {
Devon Carew3798eaa2015-01-13 13:25:56 -080025 if (_analytics == null || _lastUa != _ua()) {
26 _lastUa = _ua();
Nate Bosch2075fe92019-12-09 13:28:45 -080027 _analytics = AnalyticsHtml(_lastUa, 'Test app', '1.0');
Devon Carew3798eaa2015-01-13 13:25:56 -080028 _analytics.sendScreenView(window.location.pathname);
29 }
30
31 return _analytics;
32}
33
Devon Carewb59f60b2016-10-16 13:23:46 -070034void _handleFoo() {
35 Analytics analytics = getAnalytics();
Devon Carew3798eaa2015-01-13 13:25:56 -080036 analytics.sendEvent('main', 'foo');
37}
38
Devon Carewb59f60b2016-10-16 13:23:46 -070039void _handleBar() {
40 Analytics analytics = getAnalytics();
Devon Carew3798eaa2015-01-13 13:25:56 -080041 analytics.sendEvent('main', 'bar');
42}
43
Devon Carewb59f60b2016-10-16 13:23:46 -070044void _changePage() {
45 Analytics analytics = getAnalytics();
Devon Carew3798eaa2015-01-13 13:25:56 -080046 window.history.pushState(null, 'new page', '${++_count}.html');
47 analytics.sendScreenView(window.location.pathname);
48}