blob: 7aa45f2e0be804ac0447244ebb5c056d9bb80bf9 [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
cr.define('print_preview', function() {
'use strict';
/**
* Widget that renders a terms-of-service agreement for using the FedEx Office
* print destination.
* @constructor
* @extends {print_preview.Component}
*/
function FedexTos() {
print_preview.Component.call(this);
};
/**
* Enumeration of event types dispatched by the widget.
* @enum {string}
*/
FedexTos.EventType = {
// Dispatched when the user agrees to the terms-of-service.
AGREE: 'print_preview.FedexTos.AGREE'
};
FedexTos.prototype = {
__proto__: print_preview.Component.prototype,
/** @param {boolean} isVisible Whether the widget is visible. */
setIsVisible: function(isVisible) {
if (isVisible) {
var heightHelperEl = this.getElement().querySelector('.height-helper');
this.getElement().style.height = heightHelperEl.offsetHeight + 'px';
} else {
this.getElement().style.height = 0;
}
},
/** @override */
createDom: function() {
this.setElementInternal(this.cloneTemplateInternal('fedex-tos-template'));
var tosTextEl = this.getElement().querySelector('.tos-text');
tosTextEl.innerHTML = loadTimeData.getStringF(
'fedexTos',
'<a href="http://www.fedex.com/us/office/copyprint/online/' +
'googlecloudprint/termsandconditions">',
'</a>');
},
/** @override */
enterDocument: function() {
var agreeCheckbox = this.getElement().querySelector('.agree-checkbox');
this.tracker.add(
agreeCheckbox, 'click', this.onAgreeCheckboxClick_.bind(this));
},
/**
* Called when the agree checkbox is clicked. Dispatches a AGREE event.
* @private
*/
onAgreeCheckboxClick_: function() {
cr.dispatchSimpleEvent(this, FedexTos.EventType.AGREE);
}
};
// Export
return {
FedexTos: FedexTos
};
});