Bug 1370474 - (Part 1) Make editProfile more like manageProfiles for consistency. r=lchang
MozReview-Commit-ID: Jt3f24BeM6L
--- a/browser/extensions/formautofill/content/editProfile.js
+++ b/browser/extensions/formautofill/content/editProfile.js
@@ -11,24 +11,29 @@ Cu.import("resource://formautofill/FormA
function EditDialog() {
this._address = window.arguments && window.arguments[0];
window.addEventListener("DOMContentLoaded", this, {once: true});
}
EditDialog.prototype = {
init() {
- this.refs = {
+ this._elements = {
controlsContainer: document.getElementById("controls-container"),
cancel: document.getElementById("cancel"),
save: document.getElementById("save"),
};
this.attachEventListeners();
},
+ uninit() {
+ this.detachEventListeners();
+ this._elements = null;
+ },
+
/**
* Asks FormAutofillParent to save or update an address.
* @param {object} data
* {
* {string} guid [optional]
* {object} address
* }
*/
@@ -79,62 +84,63 @@ EditDialog.prototype = {
case "click": {
this.handleClick(event);
break;
}
case "input": {
// Toggle disabled attribute on the save button based on
// whether the form is filled or empty.
if (Object.keys(this.buildAddressObject()).length == 0) {
- this.refs.save.setAttribute("disabled", true);
+ this._elements.save.setAttribute("disabled", true);
} else {
- this.refs.save.removeAttribute("disabled");
+ this._elements.save.removeAttribute("disabled");
}
break;
}
+ case "unload": {
+ this.uninit();
+ break;
+ }
}
},
/**
* Handle click events
*
* @param {DOMEvent} event
*/
handleClick(event) {
- if (event.target == this.refs.cancel) {
- this.detachEventListeners();
+ if (event.target == this._elements.cancel) {
window.close();
}
- if (event.target == this.refs.save) {
+ if (event.target == this._elements.save) {
if (this._address) {
this.saveAddress({
guid: this._address.guid,
address: this.buildAddressObject(),
});
} else {
this.saveAddress({
address: this.buildAddressObject(),
});
}
- this.detachEventListeners();
window.close();
}
},
/**
* Attach event listener
*/
attachEventListeners() {
- this.refs.controlsContainer.addEventListener("click", this);
+ this._elements.controlsContainer.addEventListener("click", this);
document.addEventListener("input", this);
},
/**
* Remove event listener
*/
detachEventListeners() {
- this.refs.controlsContainer.removeEventListener("click", this);
+ this._elements.controlsContainer.removeEventListener("click", this);
document.removeEventListener("input", this);
},
};
-// Pass in argument from openDialog
new EditDialog();