Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature: send hostname #25

Merged
merged 1 commit into from
Mar 30, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion bower.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
],
"dependencies": {
"fabric": "~1.6.4",
"tui-code-snippet": "^1.2.5"
"tui-code-snippet": "^1.3.0"
},
"devDependencies": {
"tui-component-colorpicker": "~1.0.1",
Expand Down
2 changes: 1 addition & 1 deletion examples/example01-basic.html
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@
<div class="tui-image-editor"></div>
</div>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.6.7/fabric.js"></script>
<script type="text/javascript" src="https://cdn.rawgit.com/nhnent/tui.code-snippet/v1.2.5/dist/tui-code-snippet.js"></script>
<script type="text/javascript" src="https://unpkg.com/tui-code-snippet@1.3.0/dist/tui-code-snippet.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.3/FileSaver.min.js"></script>
<script type="text/javascript" src="https://cdn.rawgit.com/nhnent/tui.component.colorpicker/1.0.2/dist/colorpicker.min.js"></script>
Expand Down
2 changes: 1 addition & 1 deletion examples/example02-mobile.html
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@
<p class="msg">Menu Scrolling <b>Left ⇔ Right</b></p>
</div>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.6.7/fabric.js"></script>
<script type="text/javascript" src="https://cdn.rawgit.com/nhnent/tui.code-snippet/v1.2.5/dist/tui-code-snippet.js"></script>
<script type="text/javascript" src="https://unpkg.com/tui-code-snippet@1.3.0/dist/tui-code-snippet.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.3/FileSaver.min.js"></script>
<script type="text/javascript" src="https://cdn.rawgit.com/nhnent/tui.component.colorpicker/1.0.2/dist/colorpicker.min.js"></script>
Expand Down
37 changes: 22 additions & 15 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,6 @@
},
"dependencies": {
"core-js": "2.4.1",
"tui-code-snippet": "^1.2.5"
"tui-code-snippet": "^1.3.0"
}
}
10 changes: 9 additions & 1 deletion src/js/imageEditor.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import Invoker from './invoker';
import commandFactory from './factory/command';
import Graphics from './graphics';
import consts from './consts';
import {sendHostName} from './util';

const events = consts.eventNames;
const commands = consts.commandNames;
Expand All @@ -20,10 +21,13 @@ const {isUndefined, forEach, CustomEvents} = snippet;
* @param {Object} [option] - Canvas max width & height of css
* @param {number} option.cssMaxWidth - Canvas css-max-width
* @param {number} option.cssMaxHeight - Canvas css-max-height
* @param {boolean} [options.usageStatistics=true] - send hostname to google analytics
*/
class ImageEditor {
constructor(wrapper, option) {
option = option || {};
option = snippet.extend({
usageStatistics: true
}, option);

/**
* Invoker
Expand Down Expand Up @@ -64,6 +68,10 @@ class ImageEditor {
if (option.selectionStyle) {
this._setSelectionStyle(option.selectionStyle);
}

if (option.usageStatistics) {
sendHostName();
}
}

/**
Expand Down
18 changes: 17 additions & 1 deletion src/js/util.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
* @author NHN Ent. FE Development Team <[email protected]>
* @fileoverview Util
*/
import {forEach} from 'tui-code-snippet';
import {forEach, imagePing} from 'tui-code-snippet';
const {min, max} = Math;

module.exports = {
Expand Down Expand Up @@ -71,5 +71,21 @@ module.exports = {
}

return props;
},

/**
* send hostname
*/
sendHostName() {
const {hostname} = location;

imagePing('https://www.google-analytics.com/collect', {
v: 1,
t: 'event',
tid: 'UA-115377265-9',
cid: hostname,
dp: hostname,
dh: 'image-editor'
});
}
};
37 changes: 37 additions & 0 deletions test/imageEditor.spec.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/**
* @fileoverview Test env
* @author NHN Ent. FE Development Lab <[email protected]>
*/

import snippet from 'tui-code-snippet';
import ImageEditor from '../src/js/imageEditor';

describe('ImageEditor', () => {
describe('constructor', () => {
let imageEditor;

afterEach(() => {
imageEditor.destroy();
});

it('should send hostname by default', () => {
const el = document.createElement('div');
spyOn(snippet, 'imagePing');

imageEditor = new ImageEditor(el);

expect(snippet.imagePing).toHaveBeenCalled();
});

it('should not send hostname on usageStatistics option false', () => {
const el = document.createElement('div');
spyOn(snippet, 'imagePing');

imageEditor = new ImageEditor(el, {
usageStatistics: false
});

expect(snippet.imagePing).not.toHaveBeenCalled();
});
});
});