Files
tubestation/browser/components/preferences/dialogs/addEngine.js
Iulian Moraru d067b329de Backed out 5 changesets (bug 1864896) for causing newtab failures related to bundles. CLOSED TREE
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)
2024-03-01 12:58:03 +02:00

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());