Backed out changeset 2cd1cc279f99 (bug 1864896) Backed out changeset e48d6928bdcb (bug 1864896) Backed out changeset 1abbcaf91693 (bug 1864896) Backed out changeset 06a05e5257d5 (bug 1864896) Backed out changeset b1955ae3e9e2 (bug 1864896)
70 lines
1.9 KiB
JavaScript
70 lines
1.9 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
/* import-globals-from ../main.js */
|
|
|
|
let gAddEngineDialog = {
|
|
_form: null,
|
|
_name: null,
|
|
_alias: null,
|
|
|
|
onLoad() {
|
|
document.mozSubdialogReady = this.init();
|
|
},
|
|
|
|
async init() {
|
|
this._dialog = document.querySelector("dialog");
|
|
this._form = document.getElementById("addEngineForm");
|
|
this._name = document.getElementById("engineName");
|
|
this._alias = document.getElementById("engineAlias");
|
|
|
|
this._name.addEventListener("input", this.onNameInput.bind(this));
|
|
this._alias.addEventListener("input", this.onAliasInput.bind(this));
|
|
this._form.addEventListener("input", this.onFormInput.bind(this));
|
|
|
|
document.addEventListener("dialogaccept", this.onAddEngine.bind(this));
|
|
},
|
|
|
|
async onAddEngine(event) {
|
|
let url = document
|
|
.getElementById("engineUrl")
|
|
.value.replace(/%s/, "{searchTerms}");
|
|
await Services.search.wrappedJSObject.addUserEngine(
|
|
this._name.value,
|
|
url,
|
|
this._alias.value
|
|
);
|
|
},
|
|
|
|
async onNameInput() {
|
|
if (this._name.value) {
|
|
let engine = Services.search.getEngineByName(this._name.value);
|
|
let validity = engine
|
|
? document.getElementById("engineNameExists").textContent
|
|
: "";
|
|
this._name.setCustomValidity(validity);
|
|
}
|
|
},
|
|
|
|
async onAliasInput() {
|
|
let validity = "";
|
|
if (this._alias.value) {
|
|
let engine = await Services.search.getEngineByAlias(this._alias.value);
|
|
if (engine) {
|
|
engine = document.getElementById("engineAliasExists").textContent;
|
|
}
|
|
}
|
|
this._alias.setCustomValidity(validity);
|
|
},
|
|
|
|
async onFormInput() {
|
|
this._dialog.setAttribute(
|
|
"buttondisabledaccept",
|
|
!this._form.checkValidity()
|
|
);
|
|
},
|
|
};
|
|
|
|
window.addEventListener("load", () => gAddEngineDialog.onLoad());
|