Skip to content

Commit 18a0535

Browse files
committed
Fix the label and tooltip on the paste buttons
1 parent d5653a1 commit 18a0535

4 files changed

Lines changed: 40 additions & 20 deletions

File tree

l10n/en-US/viewer.ftl

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -769,8 +769,11 @@ pdfjs-views-manager-status-close-button =
769769
.title = Close
770770
pdfjs-views-manager-status-close-button-label = Close
771771
772+
pdfjs-views-manager-paste-button-label = Paste
773+
pdfjs-views-manager-paste-button-before =
774+
.title = Paste before the first page
775+
772776
# Variables:
773777
# $page (Number) - the page number after which the paste button is.
774-
pdfjs-views-manager-paste-button-after-label = Paste after page { $page }
775-
776-
pdfjs-views-manager-paste-button-before-label = Paste before the first page
778+
pdfjs-views-manager-paste-button-after =
779+
.title = Paste after page { $page }

test/integration/reorganize_pages_spec.mjs

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import {
3434
waitAndClick,
3535
waitForDOMMutation,
3636
waitForTextToBe,
37+
waitForTooltipToBe,
3738
} from "./test_utils.mjs";
3839

3940
async function waitForThumbnailVisible(page, pageNums) {
@@ -812,21 +813,27 @@ describe("Reorganize Pages View", () => {
812813
await waitAndClick(page, "#viewsManagerStatusActionCopy");
813814
await awaitPromise(handlePagesEdited);
814815

815-
const prevSpanText = await page.$eval(
816+
await waitForTextToBe(
817+
page,
816818
`button.thumbnailPasteButton:has(+ ${getThumbnailSelector(1)}) > span`,
817-
el => el.textContent.trim()
819+
"Paste"
820+
);
821+
await waitForTooltipToBe(
822+
page,
823+
`button.thumbnailPasteButton:has(+ ${getThumbnailSelector(1)})`,
824+
"Paste before the first page"
818825
);
819-
expect(prevSpanText)
820-
.withContext(`In ${browserName}`)
821-
.toBe("Paste before the first page");
822826

823-
const afterSpanText = await page.$eval(
827+
await waitForTextToBe(
828+
page,
824829
`${getThumbnailSelector(1)} + button.thumbnailPasteButton > span`,
825-
el => el.textContent.trim()
830+
"Paste"
831+
);
832+
await waitForTooltipToBe(
833+
page,
834+
`${getThumbnailSelector(1)} + button.thumbnailPasteButton`,
835+
`Paste after page ${FSI}1${PDI}`
826836
);
827-
expect(afterSpanText)
828-
.withContext(`In ${browserName}`)
829-
.toBe(`Paste after page ${FSI}1${PDI}`);
830837
})
831838
);
832839
});

test/integration/test_utils.mjs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -899,6 +899,15 @@ function waitForTextToBe(page, selector, text) {
899899
);
900900
}
901901

902+
function waitForTooltipToBe(page, selector, text) {
903+
return page.waitForFunction(
904+
(sel, str) => document.querySelector(sel)?.title === str,
905+
{},
906+
selector,
907+
text
908+
);
909+
}
910+
902911
function isCanvasMonochrome(page, pageNumber, rectangle, color) {
903912
return page.evaluate(
904913
(rect, pageN, col) => {
@@ -1082,5 +1091,6 @@ export {
10821091
waitForStorageEntries,
10831092
waitForTextToBe,
10841093
waitForTimeout,
1094+
waitForTooltipToBe,
10851095
waitForUnselectedEditor,
10861096
};

web/pdf_thumbnail_view.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -182,28 +182,28 @@ class PDFThumbnailView extends RenderableView {
182182
const pasteButton = (this.pasteButton = document.createElement("button"));
183183
pasteButton.classList.add("thumbnailPasteButton", "viewsManagerButton");
184184
pasteButton.tabIndex = 0;
185-
const span = document.createElement("span");
186-
span.setAttribute(
185+
pasteButton.setAttribute(
187186
"data-l10n-id",
188-
"pdfjs-views-manager-paste-button-after-label"
187+
"pdfjs-views-manager-paste-button-after"
189188
);
190-
span.setAttribute(
189+
pasteButton.setAttribute(
191190
"data-l10n-args",
192191
JSON.stringify({
193192
page: this.pageLabel ?? this.id,
194193
})
195194
);
195+
const span = document.createElement("span");
196+
span.setAttribute("data-l10n-id", "pdfjs-views-manager-paste-button-label");
196197
pasteButton.append(span);
197198
pasteButton.addEventListener("click", () => {
198199
pasteCallback(this.id);
199200
});
200201
if (this.id === 1) {
201202
const prevPasteButton = (this.prevPasteButton =
202203
pasteButton.cloneNode(true));
203-
const prevSpan = prevPasteButton.firstElementChild;
204-
prevSpan.setAttribute(
204+
prevPasteButton.setAttribute(
205205
"data-l10n-id",
206-
"pdfjs-views-manager-paste-button-before-label"
206+
"pdfjs-views-manager-paste-button-before"
207207
);
208208
prevPasteButton.addEventListener("click", () => {
209209
pasteCallback(0);

0 commit comments

Comments
 (0)