forked from mirrors/gecko-dev
MozReview-Commit-ID: 7M6JMJALz2j --HG-- extra : rebase_source : 171ace5252f1b750f96494b739d9e8fcafea9d7c
94 lines
4 KiB
JavaScript
94 lines
4 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/. */
|
|
|
|
/* globals Mozilla */
|
|
|
|
(function() {
|
|
"use strict";
|
|
|
|
let onCanSetDefaultBrowserInBackground = () => {
|
|
Mozilla.UITour.getConfiguration("appinfo", config => {
|
|
let canSetInBackGround = config.canSetDefaultBrowserInBackground;
|
|
let btn = document.getElementById("onboarding-tour-default-browser-button");
|
|
btn.setAttribute("data-cansetbg", canSetInBackGround);
|
|
btn.textContent = canSetInBackGround ? btn.getAttribute("data-bg") : btn.getAttribute("data-panel");
|
|
});
|
|
};
|
|
|
|
let onClick = evt => {
|
|
switch (evt.target.id) {
|
|
case "onboarding-tour-addons-button":
|
|
Mozilla.UITour.showHighlight("addons");
|
|
break;
|
|
case "onboarding-tour-customize-button":
|
|
Mozilla.UITour.showHighlight("customize");
|
|
break;
|
|
case "onboarding-tour-default-browser-button":
|
|
Mozilla.UITour.getConfiguration("appinfo", (config) => {
|
|
let isDefaultBrowser = config.defaultBrowser;
|
|
let btn = document.getElementById("onboarding-tour-default-browser-button");
|
|
let msg = document.getElementById("onboarding-tour-is-default-browser-msg");
|
|
let canSetInBackGround = btn.getAttribute("data-cansetbg") === "true";
|
|
if (isDefaultBrowser || canSetInBackGround) {
|
|
btn.classList.add("onboarding-hidden");
|
|
msg.classList.remove("onboarding-hidden");
|
|
if (canSetInBackGround) {
|
|
Mozilla.UITour.setConfiguration("defaultBrowser");
|
|
}
|
|
} else {
|
|
btn.disabled = true;
|
|
Mozilla.UITour.setConfiguration("defaultBrowser");
|
|
}
|
|
});
|
|
break;
|
|
case "onboarding-tour-library-button":
|
|
Mozilla.UITour.showHighlight("library");
|
|
break;
|
|
case "onboarding-tour-private-browsing-button":
|
|
Mozilla.UITour.showHighlight("privateWindow");
|
|
break;
|
|
case "onboarding-tour-singlesearch-button":
|
|
Mozilla.UITour.showMenu("urlbar");
|
|
break;
|
|
case "onboarding-tour-sync-button":
|
|
let emailInput = document.getElementById("onboarding-tour-sync-email-input");
|
|
if (emailInput.checkValidity()) {
|
|
Mozilla.UITour.showFirefoxAccounts(null, emailInput.value);
|
|
}
|
|
break;
|
|
case "onboarding-tour-sync-connect-device-button":
|
|
Mozilla.UITour.showConnectAnotherDevice();
|
|
break;
|
|
}
|
|
let classList = evt.target.classList;
|
|
// On keyboard navigation the target would be .onboarding-tour-item.
|
|
// On mouse clicking the target would be .onboarding-tour-item-container.
|
|
if (classList.contains("onboarding-tour-item") || classList.contains("onboarding-tour-item-container")) {
|
|
Mozilla.UITour.hideHighlight(); // Clean up UITour if a user tries to change to other tours.
|
|
}
|
|
};
|
|
|
|
let overlay = document.getElementById("onboarding-overlay");
|
|
overlay.addEventListener("submit", e => e.preventDefault());
|
|
overlay.addEventListener("click", onClick);
|
|
overlay.addEventListener("keypress", e => {
|
|
let { target, key } = e;
|
|
let classList = target.classList;
|
|
if ((key == " " || key == "Enter") &&
|
|
// On keyboard navigation the target would be .onboarding-tour-item.
|
|
// On mouse clicking the target would be .onboarding-tour-item-container.
|
|
(classList.contains("onboarding-tour-item") || classList.contains("onboarding-tour-item-container"))) {
|
|
Mozilla.UITour.hideHighlight(); // Clean up UITour if a user tries to change to other tours.
|
|
}
|
|
});
|
|
let overlayObserver = new MutationObserver(mutations => {
|
|
if (!overlay.classList.contains("onboarding-opened")) {
|
|
Mozilla.UITour.hideHighlight(); // Clean up UITour if a user tries to close the dialog.
|
|
}
|
|
});
|
|
overlayObserver.observe(overlay, { attributes: true });
|
|
document.getElementById("onboarding-overlay-button").addEventListener("Agent:Destroy", () => Mozilla.UITour.hideHighlight());
|
|
document.addEventListener("Agent:CanSetDefaultBrowserInBackground", onCanSetDefaultBrowserInBackground);
|
|
|
|
})();
|