Skip to content

Commit 9c8ca51

Browse files
committed
Add all validation errors to analytics object, to be incremented when they appear. This means all fields will be sent regardless of which errors actually occur
. Fixes both an unmasking issue and a slight privacy leak.
1 parent 9d508f8 commit 9c8ca51

File tree

1 file changed

+22
-22
lines changed

1 file changed

+22
-22
lines changed

client/app/controllers/clientController.js

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,29 @@ define(['jquery', 'controllers/tableController', 'helper/mpc', 'alertify', 'aler
2525
discrepancies: SEMANTIC_CELLS
2626
};
2727

28-
var MOUSE_PRECISION = 64;
28+
// currently the client width:height ratio is ~ 0.45:1
29+
var MOUSE_PRECISION_WIDTH = 90;
30+
var MOUSE_PRECISION_HEIGHT = 200;
2931

3032

3133
let analytics = {
32-
validation_errors: {},
34+
35+
validation_errors: {
36+
37+
SESSION_KEY_ERROR: 0,
38+
PARTICIPATION_CODE_ERROR: 0,
39+
SESSION_PARTICIPATION_CODE_SERVER_ERROR: 0,
40+
UNCHECKED_ERR: 0,
41+
ADD_QUESTIONS_ERR: 0,
42+
GENERIC_TABLE_ERR: 0,
43+
SERVER_ERR: 0,
44+
GENERIC_SUBMISSION_ERR: 0,
45+
NAN_EMPTY_CELLS: 0,
46+
SEMANTIC_CELLS: 0,
47+
},
3348
mouse_positions: [],
3449
time_ms: 0,
35-
}
50+
};
3651
/*
3752
[ [ [], [], ..., [] ],
3853
[ [], [], ..., [] ],
@@ -42,9 +57,9 @@ define(['jquery', 'controllers/tableController', 'helper/mpc', 'alertify', 'aler
4257
*/
4358

4459
// define mouse_positions as 100x1000 array
45-
for (var i = 0; i < MOUSE_PRECISION; i++) {
60+
for (var i = 0; i < MOUSE_PRECISION_WIDTH; i++) {
4661
analytics.mouse_positions.push([]);
47-
for (var k = 0; k < MOUSE_PRECISION; k++) {
62+
for (var k = 0; k < MOUSE_PRECISION_HEIGHT; k++) {
4863
analytics.mouse_positions[i].push(0)
4964
}
5065
}
@@ -80,8 +95,8 @@ define(['jquery', 'controllers/tableController', 'helper/mpc', 'alertify', 'aler
8095
// to account for difference in x, y page size
8196

8297
var pos = getPos(event);
83-
var x = Math.floor(pos[0] * MOUSE_PRECISION);
84-
var y = Math.floor(pos[1] * MOUSE_PRECISION);
98+
var x = Math.floor(pos[0] * MOUSE_PRECISION_WIDTH);
99+
var y = Math.floor(pos[1] * MOUSE_PRECISION_HEIGHT);
85100
//each array stores # of hits at this area
86101
analytics.mouse_positions[x][y]++;
87102
}
@@ -258,18 +273,12 @@ define(['jquery', 'controllers/tableController', 'helper/mpc', 'alertify', 'aler
258273
var $session = $('#session');
259274
if (!validateSessionInput($session, false)) {
260275
errors = errors.concat(SESSION_KEY_ERROR);
261-
if(analytics.validation_errors[SESSION_KEY_ERROR] == null) {
262-
analytics.validation_errors[SESSION_KEY_ERROR] = 0;
263-
}
264276
analytics.validation_errors[SESSION_KEY_ERROR]++;
265277
}
266278

267279
var $participationCode = $('#participation-code');
268280
if (!validateSessionInput($participationCode, false)) {
269281
errors = errors.concat(PARTICIPATION_CODE_ERROR);
270-
if(analytics.validation_errors[PARTICIPATION_CODE_ERROR] == null) {
271-
analytics.validation_errors[PARTICIPATION_CODE_ERROR] = 0;
272-
}
273282
analytics.validation_errors[PARTICIPATION_CODE_ERROR]++;
274283
}
275284

@@ -278,19 +287,13 @@ define(['jquery', 'controllers/tableController', 'helper/mpc', 'alertify', 'aler
278287
var validateRemainingComponents = function (result) {
279288
if (!result) {
280289
errors = errors.concat(SESSION_PARTICIPATION_CODE_SERVER_ERROR);
281-
if(analytics.validation_errors[SESSION_PARTICIPATION_CODE_SERVER_ERROR] == null) {
282-
analytics.validation_errors[SESSION_PARTICIPATION_CODE_SERVER_ERROR] = 0;
283-
}
284290
analytics.validation_errors[SESSION_PARTICIPATION_CODE_SERVER_ERROR]++;
285291
}
286292

287293
// Verify confirmation check box was checked
288294
var verifyChecked = $('#verify').is(':checked');
289295
if (!verifyChecked) {
290296
errors = errors.concat(UNCHECKED_ERR);
291-
if(analytics.validation_errors[UNCHECKED_ERR] == null) {
292-
analytics.validation_errors[UNCHECKED_ERR] = 0;
293-
}
294297
analytics.validation_errors[UNCHECKED_ERR]++;
295298
}
296299

@@ -317,9 +320,6 @@ define(['jquery', 'controllers/tableController', 'helper/mpc', 'alertify', 'aler
317320

318321
if (!questionsValid) {
319322
errors = errors.concat(ADD_QUESTIONS_ERR);
320-
if(analytics.validation_errors[ADD_QUESTIONS_ERR] == null) {
321-
analytics.validation_errors[ADD_QUESTIONS_ERR] = 0;
322-
}
323323
analytics.validation_errors[ADD_QUESTIONS_ERR]++;
324324
}
325325

0 commit comments

Comments
 (0)