Merge pull request #8293 from timvandermeij/es6-password-prompt

Convert the password prompt to ES6 syntax
This commit is contained in:
Jonas Jenwald 2017-04-16 15:38:24 +02:00 committed by GitHub
commit 10592a311a
2 changed files with 34 additions and 46 deletions

View File

@ -30,15 +30,11 @@ import { PasswordResponses } from './pdfjs';
* entry. * entry.
*/ */
/** class PasswordPrompt {
* @class
*/
var PasswordPrompt = (function PasswordPromptClosure() {
/** /**
* @constructs PasswordPrompt
* @param {PasswordPromptOptions} options * @param {PasswordPromptOptions} options
*/ */
function PasswordPrompt(options) { constructor(options) {
this.overlayName = options.overlayName; this.overlayName = options.overlayName;
this.container = options.container; this.container = options.container;
this.label = options.label; this.label = options.label;
@ -52,20 +48,18 @@ var PasswordPrompt = (function PasswordPromptClosure() {
// Attach the event listeners. // Attach the event listeners.
this.submitButton.addEventListener('click', this.verify.bind(this)); this.submitButton.addEventListener('click', this.verify.bind(this));
this.cancelButton.addEventListener('click', this.close.bind(this)); this.cancelButton.addEventListener('click', this.close.bind(this));
this.input.addEventListener('keydown', function (e) { this.input.addEventListener('keydown', (e) => {
if (e.keyCode === 13) { // Enter key if (e.keyCode === 13) { // Enter key
this.verify(); this.verify();
} }
}.bind(this)); });
OverlayManager.register(this.overlayName, this.container, OverlayManager.register(this.overlayName, this.container,
this.close.bind(this), true); this.close.bind(this), true);
} }
PasswordPrompt.prototype = { open() {
open: function PasswordPrompt_open() { OverlayManager.open(this.overlayName).then(() => {
OverlayManager.open(this.overlayName).then(function () {
this.input.type = 'password';
this.input.focus(); this.input.focus();
var promptString = mozL10n.get('password_label', null, var promptString = mozL10n.get('password_label', null,
@ -77,33 +71,28 @@ var PasswordPrompt = (function PasswordPromptClosure() {
} }
this.label.textContent = promptString; this.label.textContent = promptString;
}.bind(this)); });
}, }
close: function PasswordPrompt_close() { close() {
OverlayManager.close(this.overlayName).then(function () { OverlayManager.close(this.overlayName).then(() => {
this.input.value = ''; this.input.value = '';
this.input.type = ''; });
}.bind(this)); }
},
verify: function PasswordPrompt_verify() { verify() {
var password = this.input.value; var password = this.input.value;
if (password && password.length > 0) { if (password && password.length > 0) {
this.close(); this.close();
return this.updateCallback(password); return this.updateCallback(password);
} }
}, }
setUpdateCallback: setUpdateCallback(updateCallback, reason) {
function PasswordPrompt_setUpdateCallback(updateCallback, reason) {
this.updateCallback = updateCallback; this.updateCallback = updateCallback;
this.reason = reason; this.reason = reason;
} }
}; }
return PasswordPrompt;
})();
export { export {
PasswordPrompt, PasswordPrompt,

View File

@ -307,8 +307,7 @@ See https://github.com/adobe-type-tools/cmap-resources
<p id="passwordText" data-l10n-id="password_label">Enter the password to open this PDF file:</p> <p id="passwordText" data-l10n-id="password_label">Enter the password to open this PDF file:</p>
</div> </div>
<div class="row"> <div class="row">
<!-- The type="password" attribute is set via script, to prevent warnings in Firefox for all http:// documents. --> <input type="password" id="password" class="toolbarField">
<input id="password" class="toolbarField">
</div> </div>
<div class="buttonRow"> <div class="buttonRow">
<button id="passwordCancel" class="overlayButton"><span data-l10n-id="password_cancel">Cancel</span></button> <button id="passwordCancel" class="overlayButton"><span data-l10n-id="password_cancel">Cancel</span></button>