Bug 1948391 - Move creating a login to the "More actions" dropdown menu. r=credential-management-reviewers,rsafaeian
Differential Revision: https://phabricator.services.mozilla.com/D238320
This commit is contained in:
@@ -85,18 +85,6 @@ export class MegalistAlpha extends MozLitElement {
|
|||||||
await Promise.all(passwordCards.map(el => el.updateComplete));
|
await Promise.all(passwordCards.map(el => el.updateComplete));
|
||||||
}
|
}
|
||||||
|
|
||||||
async updated(changedProperties) {
|
|
||||||
if (changedProperties.has("viewMode")) {
|
|
||||||
const mozButton = this.shadowRoot.querySelector("#create-login-button");
|
|
||||||
await mozButton.updateComplete;
|
|
||||||
// Need to set aria-expanded on the button element of the moz-button for screen readers to announce the change.
|
|
||||||
mozButton.buttonEl.setAttribute(
|
|
||||||
"aria-expanded",
|
|
||||||
this.viewMode === VIEW_MODES.ADD ? "true" : "false"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#onPasswordRevealClick(concealed, lineIndex) {
|
#onPasswordRevealClick(concealed, lineIndex) {
|
||||||
if (concealed) {
|
if (concealed) {
|
||||||
this.#messageToViewModel("Command", {
|
this.#messageToViewModel("Command", {
|
||||||
@@ -578,14 +566,7 @@ export class MegalistAlpha extends MozLitElement {
|
|||||||
|
|
||||||
renderFirstRow() {
|
renderFirstRow() {
|
||||||
return html`<div class="first-row">
|
return html`<div class="first-row">
|
||||||
${this.renderSearch()}
|
${this.renderSearch()} ${this.renderMenu()}
|
||||||
<moz-button
|
|
||||||
id="create-login-button"
|
|
||||||
@click=${() => this.#onAddButtonClick("toolbar")}
|
|
||||||
data-l10n-id="create-login-button"
|
|
||||||
type="icon"
|
|
||||||
iconSrc="chrome://global/skin/icons/plus.svg"
|
|
||||||
></moz-button>
|
|
||||||
</div>`;
|
</div>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -638,6 +619,11 @@ export class MegalistAlpha extends MozLitElement {
|
|||||||
aria-labelledby="more-options-menubutton"
|
aria-labelledby="more-options-menubutton"
|
||||||
data-l10n-id="more-options-popup"
|
data-l10n-id="more-options-popup"
|
||||||
>
|
>
|
||||||
|
<panel-item
|
||||||
|
action="add-password"
|
||||||
|
data-l10n-id="passwords-command-create"
|
||||||
|
@click=${() => this.#onAddButtonClick("toolbar")}
|
||||||
|
></panel-item>
|
||||||
<panel-item
|
<panel-item
|
||||||
action="import-from-browser"
|
action="import-from-browser"
|
||||||
data-l10n-id="passwords-command-import-from-browser"
|
data-l10n-id="passwords-command-import-from-browser"
|
||||||
@@ -669,7 +655,7 @@ export class MegalistAlpha extends MozLitElement {
|
|||||||
this.#sendCommand("RemoveAll");
|
this.#sendCommand("RemoveAll");
|
||||||
this.#recordToolbarAction("remove_all", "toolbar");
|
this.#recordToolbarAction("remove_all", "toolbar");
|
||||||
}}
|
}}
|
||||||
?disabled=${!this.header.value.total}
|
?disabled=${!this.header?.value.total}
|
||||||
></panel-item>
|
></panel-item>
|
||||||
<hr />
|
<hr />
|
||||||
<panel-item
|
<panel-item
|
||||||
@@ -703,9 +689,7 @@ export class MegalistAlpha extends MozLitElement {
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
return html`<div class="second-row">
|
return html`<div class="second-row">${this.renderRadioButtons()}</div>`;
|
||||||
${this.renderRadioButtons()} ${this.renderMenu()}
|
|
||||||
</div>`;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async #scrollPasswordCardIntoView(guid) {
|
async #scrollPasswordCardIntoView(guid) {
|
||||||
|
|||||||
@@ -13,14 +13,26 @@ add_setup(async function () {
|
|||||||
registerCleanupFunction(LoginTestUtils.clearData);
|
registerCleanupFunction(LoginTestUtils.clearData);
|
||||||
});
|
});
|
||||||
|
|
||||||
async function openLoginForm(megalist, selector = ".first-row > moz-button") {
|
const getShadowBtn = (el, selector) =>
|
||||||
|
el.querySelector(selector).shadowRoot.querySelector("button");
|
||||||
|
|
||||||
|
async function openLoginForm(megalist, isFromMenuDropdown = true) {
|
||||||
info("Opening login form.");
|
info("Opening login form.");
|
||||||
const addButton = megalist.querySelector(selector);
|
|
||||||
|
let button = megalist.querySelector(".empty-state-add-password");
|
||||||
|
if (isFromMenuDropdown) {
|
||||||
|
const menu = megalist.querySelector("panel-list");
|
||||||
|
const menuButton = megalist.querySelector("#more-options-menubutton");
|
||||||
|
menuButton.click();
|
||||||
|
await BrowserTestUtils.waitForEvent(menu, "shown");
|
||||||
|
button = getShadowBtn(menu, "[action='add-password']");
|
||||||
|
}
|
||||||
|
|
||||||
const loginFormPromise = BrowserTestUtils.waitForCondition(
|
const loginFormPromise = BrowserTestUtils.waitForCondition(
|
||||||
() => megalist.querySelector("login-form"),
|
() => megalist.querySelector("login-form"),
|
||||||
"Login form failed to load."
|
"Login form failed to load."
|
||||||
);
|
);
|
||||||
addButton.buttonEl.click();
|
button.click();
|
||||||
return loginFormPromise;
|
return loginFormPromise;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -169,7 +181,7 @@ add_task(async function test_passwords_add_password_empty_state() {
|
|||||||
ok(true, "Empty state rendered.");
|
ok(true, "Empty state rendered.");
|
||||||
|
|
||||||
info("Add a password via empty state");
|
info("Add a password via empty state");
|
||||||
await openLoginForm(megalist, ".empty-state-add-password");
|
await openLoginForm(megalist, false);
|
||||||
let events = Glean.contextualManager.toolbarAction.testGetValue();
|
let events = Glean.contextualManager.toolbarAction.testGetValue();
|
||||||
assertCPMGleanEvent(events[0], {
|
assertCPMGleanEvent(events[0], {
|
||||||
trigger: "empty_state_card",
|
trigger: "empty_state_card",
|
||||||
|
|||||||
Reference in New Issue
Block a user