103 lines
3.6 KiB
JavaScript
103 lines
3.6 KiB
JavaScript
function sendLog(name, data, event_type) {
|
|
var message = data || {};
|
|
message.chapter = PDF_URL || '';
|
|
message.name = 'textbook.pdf.' + name;
|
|
Logger.log(event_type ? event_type : message.name, message);
|
|
}
|
|
|
|
// this event is loaded after the others to accurately represent the order of events:
|
|
// click next -> pagechange
|
|
$(function() {
|
|
var first_page = true;
|
|
var scroll = {timeStamp: 0, direction: null};
|
|
|
|
$(window).bind('pagechange', function(event) {
|
|
// log every page render
|
|
var page = PDFViewerApplication.page;
|
|
var old_page = event.originalEvent.previousPageNumber;
|
|
// pagechange is called many times per viewing.
|
|
if (old_page !== page || first_page) {
|
|
first_page = false;
|
|
if ((event.timeStamp - scroll.timeStamp) < 50) {
|
|
sendLog('page.scrolled', {'page': page, 'direction': scroll.direction});
|
|
}
|
|
sendLog('page.loaded', {'type': 'gotopage', 'old': old_page, 'new': page}, 'book');
|
|
scroll.timeStamp = 0;
|
|
}
|
|
});
|
|
|
|
$('#viewerContainer').bind('DOMMouseScroll mousewheel', function(event) {
|
|
scroll.timeStamp = event.timeStamp;
|
|
scroll.direction = PDFViewerApplication.pdfViewer.scroll.down ? 'down' : 'up';
|
|
});
|
|
});
|
|
|
|
$('#viewThumbnail,#sidebarToggle').on('click', function() {
|
|
sendLog('thumbnails.toggled', {'page': PDFViewerApplication.page});
|
|
});
|
|
|
|
$('#thumbnailView a').live('click', function() {
|
|
sendLog('thumbnail.navigated', {'page': $('#thumbnailView a').index(this) + 1, 'thumbnail_title': $(this).attr('title')});
|
|
});
|
|
|
|
$('#viewOutline').on('click', function() {
|
|
sendLog('outline.toggled', {'page': PDFViewerApplication.page});
|
|
});
|
|
|
|
$('#previous').on('click', function() {
|
|
sendLog('page.navigatednext', {'type': 'prevpage', 'new': PDFViewerApplication.page - 1}, 'book');
|
|
});
|
|
|
|
$('#next').on('click', function() {
|
|
sendLog('page.navigatednext', {'type': 'nextpage', 'new': PDFViewerApplication.page + 1}, 'book');
|
|
});
|
|
|
|
$('#zoomIn,#zoomOut').on('click', function() {
|
|
sendLog('zoom.buttons.changed', {'direction': $(this).attr('id') == 'zoomIn' ? 'in' : 'out', 'page': PDFViewerApplication.page});
|
|
});
|
|
|
|
$('#pageNumber').on('change', function() {
|
|
sendLog('page.navigated', {'page': $(this).val()});
|
|
});
|
|
|
|
var old_amount = 1;
|
|
$(window).bind('scalechange', function(event) {
|
|
var amount = event.originalEvent.scale;
|
|
if (amount !== old_amount) {
|
|
sendLog('display.scaled', {'amount': amount, 'page': PDFViewerApplication.page});
|
|
old_amount = amount;
|
|
}
|
|
});
|
|
|
|
$('#scaleSelect').on('change', function() {
|
|
sendLog('zoom.menu.changed', {'amount': $('#scaleSelect').val(), 'page': PDFViewerApplication.page});
|
|
});
|
|
|
|
var search_event = null;
|
|
$(window).bind('find findhighlightallchange findagain findcasesensitivitychange', function(event) {
|
|
if (search_event && event.type == 'find') {
|
|
clearTimeout(search_event);
|
|
}
|
|
search_event = setTimeout(function() {
|
|
var message = event.originalEvent.detail;
|
|
message.status = $('#findMsg').text();
|
|
message.page = PDFViewerApplication.page;
|
|
var event_name = 'search';
|
|
switch (event.type) {
|
|
case 'find':
|
|
event_name += '.executed';
|
|
break;
|
|
case 'findhighlightallchange':
|
|
event_name += '.highlight.toggled';
|
|
break;
|
|
case 'findagain':
|
|
event_name += '.navigatednext';
|
|
break;
|
|
case 'findcasesensitivitychange':
|
|
event_name += 'casesensitivity.toggled';
|
|
break;
|
|
}
|
|
sendLog(event_name, message);
|
|
}, 500);
|
|
});
|