diff --git a/CHANGELOG.md b/CHANGELOG.md
index ba1922e1d..2c544d2dd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,7 @@ and this project adheres to
- ♿️(frontend) use anchor links for interlinking sub-documents #2391
- ✨(frontend) reset side panel state between documents #2583
- ♿️(frontend) announce search loading state for screen readers #2526
+- ♻️(frontend) change favorite to star #2539
### Fixed
diff --git a/src/frontend/apps/e2e/__tests__/app-impress/auth.setup.ts b/src/frontend/apps/e2e/__tests__/app-impress/auth.setup.ts
index a28440f44..7f1a2b5d2 100644
--- a/src/frontend/apps/e2e/__tests__/app-impress/auth.setup.ts
+++ b/src/frontend/apps/e2e/__tests__/app-impress/auth.setup.ts
@@ -28,7 +28,7 @@ const saveStorageState = async (
* If the grid is displayed, it means the user is logged in and the storage state can be saved.
*/
await expect(
- page.getByRole('heading', { name: 'All docs', level: 2 }),
+ page.getByRole('heading', { name: 'Recent', level: 2 }),
).toBeVisible({ timeout: 10000 });
await page.context().storageState({
diff --git a/src/frontend/apps/e2e/__tests__/app-impress/doc-grid.spec.ts b/src/frontend/apps/e2e/__tests__/app-impress/doc-grid.spec.ts
index 58222c3a2..98a9133e6 100644
--- a/src/frontend/apps/e2e/__tests__/app-impress/doc-grid.spec.ts
+++ b/src/frontend/apps/e2e/__tests__/app-impress/doc-grid.spec.ts
@@ -112,29 +112,35 @@ test.describe('Document grid item options', () => {
).toBeVisible();
});
- test('it pins a document', async ({ page, browserName }) => {
+ test('it stars a document', async ({ page, browserName }) => {
const [docTitle] = await createDoc(page, `Favorite doc`, browserName);
+ const [docTitle2] = await createDoc(page, `Not Favorite doc`, browserName);
- await page.goto('/');
+ await page.getByRole('button', { name: 'Back to homepage' }).click();
const row = await getGridRow(page, docTitle);
- // Pin
+ // Star
await row.getByRole('button', { name: /Open the menu of actions/ }).click();
- await page.getByRole('menuitem', { name: 'Pin' }).click();
+ await page.getByRole('menuitem', { name: 'Star' }).click();
- // Check is pinned
- await expect(row.getByTestId('doc-pinned-icon')).toBeVisible();
- const leftPanelFavorites = page.getByTestId('left-panel-favorites');
- await expect(leftPanelFavorites.getByText(docTitle)).toBeVisible();
+ // Check is starred
+ await expect(row.getByText(/This document is starred/)).toBeVisible();
+ await expect(page.getByText(docTitle2)).toBeVisible();
- // Unpin
+ await page.getByRole('link', { name: 'Starred', exact: true }).click();
+ await expect(row.getByText(/This document is starred/)).toBeVisible();
+ await expect(page.getByText(docTitle2)).toBeHidden();
+
+ // Unstar
await row.getByRole('button', { name: /Open the menu of actions/ }).click();
- await page.getByText('Unpin').click();
+ await page.getByText('Unstar').click();
+ await expect(row).toBeHidden();
- // Check is unpinned
- await expect(row.getByTestId('doc-pinned-icon')).toBeHidden();
- await expect(leftPanelFavorites.getByText(docTitle)).toBeHidden();
+ // Check is unstarred
+ await page.getByRole('link', { name: 'Recent', exact: true }).click();
+ await expect(row).toBeVisible();
+ await expect(row.getByText(/This document is starred/)).toBeHidden();
});
test('it deletes the document', async ({ page, browserName }) => {
@@ -148,13 +154,6 @@ test.describe('Document grid item options', () => {
const row = await getGridRow(page, docTitle);
await row.getByRole('button', { name: /Open the menu of actions/ }).click();
- await page.getByRole('menuitem', { name: 'Pin' }).click();
-
- const leftPanelFavorites = page.getByTestId('left-panel-favorites');
- await expect(leftPanelFavorites.getByText(docTitle)).toBeVisible();
-
- await row.getByRole('button', { name: /Open the menu of actions/ }).click();
-
await page.getByRole('menuitem', { name: 'Delete' }).click();
await expect(
@@ -174,7 +173,6 @@ test.describe('Document grid item options', () => {
await expect(
page.getByLabel('Documents grid').getByText(docTitle),
).toBeHidden();
- await expect(leftPanelFavorites.getByText(docTitle)).toBeHidden();
});
test('it checks the leave feature', async ({ page, browserName }) => {
diff --git a/src/frontend/apps/e2e/__tests__/app-impress/doc-header.spec.ts b/src/frontend/apps/e2e/__tests__/app-impress/doc-header.spec.ts
index 7cb42a835..a95ff4974 100644
--- a/src/frontend/apps/e2e/__tests__/app-impress/doc-header.spec.ts
+++ b/src/frontend/apps/e2e/__tests__/app-impress/doc-header.spec.ts
@@ -520,46 +520,22 @@ test.describe('Doc Header', () => {
expect(clipboardContent.trim()).toMatch(url);
});
- test('it pins a document', async ({ page, browserName }) => {
- const [docTitle] = await createDoc(page, `Pin doc`, browserName);
+ test('it stars a document', async ({ page, browserName }) => {
+ await createDoc(page, `Star doc`, browserName);
+ // Star
await page
.getByRole('button', { name: 'Open the document options' })
.click();
+ await page.getByRole('menuitem', { name: 'Star' }).click();
+ await expect(page.getByText('This document is starred')).toBeVisible();
- // Pin
- await page.getByRole('menuitem', { name: 'Pin' }).click();
+ // UnStar
await page
.getByRole('button', { name: 'Open the document options' })
.click();
- await expect(page.getByText('Unpin')).toBeVisible();
-
- await page.goto('/');
-
- const row = await getGridRow(page, docTitle);
-
- // Check is pinned
- await expect(row.getByTestId('doc-pinned-icon')).toBeVisible();
- const leftPanelFavorites = page.getByTestId('left-panel-favorites');
- await expect(leftPanelFavorites.getByText(docTitle)).toBeVisible();
-
- await row.getByText(docTitle).click();
- await page
- .getByRole('button', { name: 'Open the document options' })
- .click();
-
- // Unpin
- await page.getByRole('menuitem', { name: 'Unpin' }).click();
- await page
- .getByRole('button', { name: 'Open the document options' })
- .click();
- await expect(page.getByRole('menuitem', { name: 'Pin' })).toBeVisible();
-
- await page.goto('/');
-
- // Check is unpinned
- await expect(row.getByTestId('doc-pinned-icon')).toBeHidden();
- await expect(leftPanelFavorites.getByText(docTitle)).toBeHidden();
+ await page.getByRole('menuitem', { name: 'Unstar' }).click();
+ await expect(page.getByText('This document is starred')).toBeHidden();
});
test('it duplicates a document', async ({ page, browserName }) => {
diff --git a/src/frontend/apps/e2e/__tests__/app-impress/doc-trashbin.spec.ts b/src/frontend/apps/e2e/__tests__/app-impress/doc-trashbin.spec.ts
index 9a3d2ae9e..469deb076 100644
--- a/src/frontend/apps/e2e/__tests__/app-impress/doc-trashbin.spec.ts
+++ b/src/frontend/apps/e2e/__tests__/app-impress/doc-trashbin.spec.ts
@@ -32,24 +32,27 @@ test.describe('Doc Trashbin', () => {
await page.getByRole('button', { name: 'Back to homepage' }).click();
+ // Delete the first document - Is not displayed
const row1 = await getGridRow(page, title1);
await clickInGridMenu(page, row1, 'Delete');
await page.getByRole('button', { name: 'Delete document' }).click();
await expect(row1.getByText(title1)).toBeHidden();
+ // Star the second document - Is displayed in the starred list
const row2 = await getGridRow(page, title2);
- await clickInGridMenu(page, row2, 'Pin');
- const leftPanelFavorites = page.getByTestId('left-panel-favorites');
- await expect(leftPanelFavorites.getByText(title2)).toBeVisible();
+ await clickInGridMenu(page, row2, 'Star');
+ await page.getByRole('link', { name: 'Starred', exact: true }).click();
+ await expect(row2.getByText(title2)).toBeVisible();
+ // Delete the second document - It is not displayed in the starred list anymore
await clickInGridMenu(page, row2, 'Delete');
await page.getByRole('button', { name: 'Delete document' }).click();
await expect(row2.getByText(title2)).toBeHidden();
- await expect(leftPanelFavorites.getByText(title2)).toBeHidden();
+ // It is displayed in the trashbin list
await page.getByRole('link', { name: 'Trashbin' }).click();
-
const docsGrid = page.getByTestId('docs-grid');
+ await expect(row2.getByText(title2)).toBeVisible();
await expect(docsGrid.getByText('Days remaining')).toBeVisible();
try {
@@ -86,8 +89,13 @@ test.describe('Doc Trashbin', () => {
await clickInGridMenu(page, row2, 'Restore');
await expect(row2.getByText(title2)).toBeHidden();
- await expect(leftPanelFavorites.getByText(title2)).toBeVisible();
- await page.getByRole('link', { name: 'All docs' }).click();
+
+ // It is displayed in the starred list again
+ await page.getByRole('link', { name: 'Starred', exact: true }).click();
+ await expect(row2.getByText(title2)).toBeVisible();
+
+ // It is displayed in the recent list again
+ await page.getByRole('link', { name: 'Recent' }).click();
const row2Restored = await getGridRow(page, title2);
await expect(row2Restored.getByText(title2)).toBeVisible();
await row2Restored.getByRole('link', { name: /Open document/ }).click();
@@ -115,7 +123,6 @@ test.describe('Doc Trashbin', () => {
browserName,
1,
);
- await verifyDocName(page, topParent);
const { name: subDocName } = await createRootSubPage(
page,
browserName,
@@ -132,12 +139,13 @@ test.describe('Doc Trashbin', () => {
await navigateToPageFromTree({ page, title: subDocName });
await verifyDocName(page, subDocName);
+ const docsGrid = page.getByTestId('docs-grid');
- await clickInEditorMenu(page, 'Pin');
+ await clickInEditorMenu(page, 'Star');
await page.getByRole('button', { name: 'Back to homepage' }).click();
- const leftPanelFavorites = page.getByTestId('left-panel-favorites');
- await expect(leftPanelFavorites.getByText(subDocName)).toBeVisible();
- await leftPanelFavorites.getByText(subDocName).click();
+ await page.getByRole('link', { name: 'Starred', exact: true }).click();
+ await expect(docsGrid.getByText(subDocName)).toBeVisible();
+ await page.getByText(subDocName).click();
await verifyDocName(page, subDocName);
await clickInEditorMenu(page, 'Delete');
@@ -145,7 +153,7 @@ test.describe('Doc Trashbin', () => {
await verifyDocName(page, topParent);
await page.getByRole('button', { name: 'Back to homepage' }).click();
- await expect(leftPanelFavorites.getByText(subDocName)).toBeHidden();
+ await expect(docsGrid.getByText(subDocName)).toBeHidden();
await page.getByRole('link', { name: 'Trashbin' }).click();
let row;
@@ -194,6 +202,7 @@ test.describe('Doc Trashbin', () => {
await expect(page.getByRole('button', { name: 'Share' })).toBeEnabled();
await expect(docTree.getByText(topParent)).toBeVisible();
await page.getByRole('button', { name: 'Back to homepage' }).click();
- await expect(leftPanelFavorites.getByText(subDocName)).toBeVisible();
+ await page.getByRole('link', { name: 'Starred', exact: true }).click();
+ await expect(docsGrid.getByText(subDocName)).toBeVisible();
});
});
diff --git a/src/frontend/apps/e2e/__tests__/app-impress/header.spec.ts b/src/frontend/apps/e2e/__tests__/app-impress/header.spec.ts
index 34c6b6907..cbb2dcf2c 100644
--- a/src/frontend/apps/e2e/__tests__/app-impress/header.spec.ts
+++ b/src/frontend/apps/e2e/__tests__/app-impress/header.spec.ts
@@ -19,7 +19,7 @@ test.describe('Header', () => {
// Clicking moves focus to the page heading
await skipLink.click();
const pageHeading = page.getByRole('heading', {
- name: 'All docs',
+ name: 'Recent',
level: 2,
});
await expect(pageHeading).toBeFocused();
diff --git a/src/frontend/apps/e2e/__tests__/app-impress/left-panel.spec.ts b/src/frontend/apps/e2e/__tests__/app-impress/left-panel.spec.ts
index 8e79553a9..d1cd268db 100644
--- a/src/frontend/apps/e2e/__tests__/app-impress/left-panel.spec.ts
+++ b/src/frontend/apps/e2e/__tests__/app-impress/left-panel.spec.ts
@@ -285,7 +285,7 @@ test.describe('Left panel responsive', () => {
await page.setViewportSize({ width: 900, height: 1200 });
await page.goto('/');
- await expect(page.getByRole('link', { name: 'All docs' })).toBeInViewport();
+ await expect(page.getByRole('link', { name: 'Recent' })).toBeInViewport();
await expect(newDocButton).toBeInViewport();
await expect(userMenu).toBeInViewport();
await expect(header.getByLabel('Toggle left panel')).toBeVisible();
diff --git a/src/frontend/apps/impress/src/assets/icons/doc-all.svg b/src/frontend/apps/impress/src/assets/icons/doc-all.svg
deleted file mode 100644
index a4e61a5aa..000000000
--- a/src/frontend/apps/impress/src/assets/icons/doc-all.svg
+++ /dev/null
@@ -1,20 +0,0 @@
-
diff --git a/src/frontend/apps/impress/src/assets/icons/ui-kit/clock.svg b/src/frontend/apps/impress/src/assets/icons/ui-kit/clock.svg
index 06bc5be0d..7cf330c52 100644
--- a/src/frontend/apps/impress/src/assets/icons/ui-kit/clock.svg
+++ b/src/frontend/apps/impress/src/assets/icons/ui-kit/clock.svg
@@ -1,12 +1,19 @@
-