mirror of
https://github.com/mozilla/pdf.js.git
synced 2026-06-27 02:25:47 +02:00
Merge pull request #20832 from calixteman/fix_labels
Fix the label and tooltip on the paste buttons
This commit is contained in:
commit
cc680f68c3
@ -769,8 +769,11 @@ pdfjs-views-manager-status-close-button =
|
|||||||
.title = Close
|
.title = Close
|
||||||
pdfjs-views-manager-status-close-button-label = Close
|
pdfjs-views-manager-status-close-button-label = Close
|
||||||
|
|
||||||
|
pdfjs-views-manager-paste-button-label = Paste
|
||||||
|
pdfjs-views-manager-paste-button-before =
|
||||||
|
.title = Paste before the first page
|
||||||
|
|
||||||
# Variables:
|
# Variables:
|
||||||
# $page (Number) - the page number after which the paste button is.
|
# $page (Number) - the page number after which the paste button is.
|
||||||
pdfjs-views-manager-paste-button-after-label = Paste after page { $page }
|
pdfjs-views-manager-paste-button-after =
|
||||||
|
.title = Paste after page { $page }
|
||||||
pdfjs-views-manager-paste-button-before-label = Paste before the first page
|
|
||||||
|
|||||||
@ -34,6 +34,7 @@ import {
|
|||||||
waitAndClick,
|
waitAndClick,
|
||||||
waitForDOMMutation,
|
waitForDOMMutation,
|
||||||
waitForTextToBe,
|
waitForTextToBe,
|
||||||
|
waitForTooltipToBe,
|
||||||
} from "./test_utils.mjs";
|
} from "./test_utils.mjs";
|
||||||
|
|
||||||
async function waitForThumbnailVisible(page, pageNums) {
|
async function waitForThumbnailVisible(page, pageNums) {
|
||||||
@ -812,21 +813,27 @@ describe("Reorganize Pages View", () => {
|
|||||||
await waitAndClick(page, "#viewsManagerStatusActionCopy");
|
await waitAndClick(page, "#viewsManagerStatusActionCopy");
|
||||||
await awaitPromise(handlePagesEdited);
|
await awaitPromise(handlePagesEdited);
|
||||||
|
|
||||||
const prevSpanText = await page.$eval(
|
await waitForTextToBe(
|
||||||
|
page,
|
||||||
`button.thumbnailPasteButton:has(+ ${getThumbnailSelector(1)}) > span`,
|
`button.thumbnailPasteButton:has(+ ${getThumbnailSelector(1)}) > span`,
|
||||||
el => el.textContent.trim()
|
"Paste"
|
||||||
|
);
|
||||||
|
await waitForTooltipToBe(
|
||||||
|
page,
|
||||||
|
`button.thumbnailPasteButton:has(+ ${getThumbnailSelector(1)})`,
|
||||||
|
"Paste before the first page"
|
||||||
);
|
);
|
||||||
expect(prevSpanText)
|
|
||||||
.withContext(`In ${browserName}`)
|
|
||||||
.toBe("Paste before the first page");
|
|
||||||
|
|
||||||
const afterSpanText = await page.$eval(
|
await waitForTextToBe(
|
||||||
|
page,
|
||||||
`${getThumbnailSelector(1)} + button.thumbnailPasteButton > span`,
|
`${getThumbnailSelector(1)} + button.thumbnailPasteButton > span`,
|
||||||
el => el.textContent.trim()
|
"Paste"
|
||||||
|
);
|
||||||
|
await waitForTooltipToBe(
|
||||||
|
page,
|
||||||
|
`${getThumbnailSelector(1)} + button.thumbnailPasteButton`,
|
||||||
|
`Paste after page ${FSI}1${PDI}`
|
||||||
);
|
);
|
||||||
expect(afterSpanText)
|
|
||||||
.withContext(`In ${browserName}`)
|
|
||||||
.toBe(`Paste after page ${FSI}1${PDI}`);
|
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -899,6 +899,15 @@ function waitForTextToBe(page, selector, text) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function waitForTooltipToBe(page, selector, text) {
|
||||||
|
return page.waitForFunction(
|
||||||
|
(sel, str) => document.querySelector(sel)?.title === str,
|
||||||
|
{},
|
||||||
|
selector,
|
||||||
|
text
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
function isCanvasMonochrome(page, pageNumber, rectangle, color) {
|
function isCanvasMonochrome(page, pageNumber, rectangle, color) {
|
||||||
return page.evaluate(
|
return page.evaluate(
|
||||||
(rect, pageN, col) => {
|
(rect, pageN, col) => {
|
||||||
@ -1082,5 +1091,6 @@ export {
|
|||||||
waitForStorageEntries,
|
waitForStorageEntries,
|
||||||
waitForTextToBe,
|
waitForTextToBe,
|
||||||
waitForTimeout,
|
waitForTimeout,
|
||||||
|
waitForTooltipToBe,
|
||||||
waitForUnselectedEditor,
|
waitForUnselectedEditor,
|
||||||
};
|
};
|
||||||
|
|||||||
@ -182,17 +182,18 @@ class PDFThumbnailView extends RenderableView {
|
|||||||
const pasteButton = (this.pasteButton = document.createElement("button"));
|
const pasteButton = (this.pasteButton = document.createElement("button"));
|
||||||
pasteButton.classList.add("thumbnailPasteButton", "viewsManagerButton");
|
pasteButton.classList.add("thumbnailPasteButton", "viewsManagerButton");
|
||||||
pasteButton.tabIndex = 0;
|
pasteButton.tabIndex = 0;
|
||||||
const span = document.createElement("span");
|
pasteButton.setAttribute(
|
||||||
span.setAttribute(
|
|
||||||
"data-l10n-id",
|
"data-l10n-id",
|
||||||
"pdfjs-views-manager-paste-button-after-label"
|
"pdfjs-views-manager-paste-button-after"
|
||||||
);
|
);
|
||||||
span.setAttribute(
|
pasteButton.setAttribute(
|
||||||
"data-l10n-args",
|
"data-l10n-args",
|
||||||
JSON.stringify({
|
JSON.stringify({
|
||||||
page: this.pageLabel ?? this.id,
|
page: this.pageLabel ?? this.id,
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
const span = document.createElement("span");
|
||||||
|
span.setAttribute("data-l10n-id", "pdfjs-views-manager-paste-button-label");
|
||||||
pasteButton.append(span);
|
pasteButton.append(span);
|
||||||
pasteButton.addEventListener("click", () => {
|
pasteButton.addEventListener("click", () => {
|
||||||
pasteCallback(this.id);
|
pasteCallback(this.id);
|
||||||
@ -200,10 +201,9 @@ class PDFThumbnailView extends RenderableView {
|
|||||||
if (this.id === 1) {
|
if (this.id === 1) {
|
||||||
const prevPasteButton = (this.prevPasteButton =
|
const prevPasteButton = (this.prevPasteButton =
|
||||||
pasteButton.cloneNode(true));
|
pasteButton.cloneNode(true));
|
||||||
const prevSpan = prevPasteButton.firstElementChild;
|
prevPasteButton.setAttribute(
|
||||||
prevSpan.setAttribute(
|
|
||||||
"data-l10n-id",
|
"data-l10n-id",
|
||||||
"pdfjs-views-manager-paste-button-before-label"
|
"pdfjs-views-manager-paste-button-before"
|
||||||
);
|
);
|
||||||
prevPasteButton.addEventListener("click", () => {
|
prevPasteButton.addEventListener("click", () => {
|
||||||
pasteCallback(0);
|
pasteCallback(0);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user