Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/submitted bulk actions #3350

Open
wants to merge 9 commits into
base: staging
Choose a base branch
from
24 changes: 23 additions & 1 deletion site/gatsby-site/i18n/locales/es/submitted.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,5 +38,27 @@
"Claim": "Reclamar",
"Claiming...": "Reclamando...",
"Reviewing": "Revisando",
"No reports found": "No se encontraron informes"
"No reports found": "No se encontraron informes",
"Are you sure you want to claim these submissions? This will assign you as the editor on all the selected submissions.": "¿Estás seguro de que quieres reclamar estos envíos? Esto asignará a usted como editor en todos los envíos seleccionados.",
"Are you sure you want to unclaim these submissions? This will unassign you as the editor on all the selected submissions.": "¿Estás seguro de que quieres desasignar estos envíos? Esto eliminará su asignación como editor en todos los envíos seleccionados.",
"Are you sure you want to reject these submissions? This will permanently delete the submissions.": "¿Estás seguro de que quieres rechazar estos envíos? Esto eliminará permanentemente los envíos.",
"There was an error performing this action. Please try again.": "Hubo un error al realizar esta acción. Por favor, inténtelo de nuevo.",
"Select All": "Seleccionar todo",
"Unclaim": "Desasignar",
"Promote to Incident": "Promover a Incidente",
"Promote to Issue": "Promover a Problema",
"Submitters": "Envíos",
"Title": "Título",
"Date": "Fecha",
"Actions": "Acciones",
"There was an error updating this submission. Please try again.": "Hubo un error al actualizar este envío. Por favor, inténtelo de nuevo.",
"Bulk Actions": "Acciones en masa",
"Apply": "Aplicar",
"Successfully claimed {{count}} submissions": "{{count}} envíos reclamados exitosamente ",
"Successfully unclaimed {{count}} submissions": "{{count}} envíos desasignados exitosamente",
"Successfully rejected {{count}} submissions": "{{count}} envíos rechazados exitosamente",
"Successfully claimed {{count}} submission": "{{count}} envío reclamado exitosamente ",
"Successfully unclaimed {{count}} submission": "{{count}} envío desasignado exitosamente",
"Successfully rejected {{count}} submission": "{{count}} envío rechazado exitosamente"

}
24 changes: 23 additions & 1 deletion site/gatsby-site/i18n/locales/fr/submitted.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,5 +38,27 @@
"Claim": "Réclamer",
"Claiming...": "En cours...",
"Reviewing": "Révision",
"No reports found": "Aucun rapport trouvé"
"No reports found": "Aucun rapport trouvé",
"Are you sure you want to claim these submissions? This will assign you as the editor on all the selected submissions.": "Êtes-vous sûr de vouloir réclamer ces soumissions ? Cela vous assignera comme éditeur pour toutes les soumissions sélectionnées.",
"Are you sure you want to unclaim these submissions? This will unassign you as the editor on all the selected submissions.": "Êtes-vous sûr de vouloir désassigner ces soumissions ? Cela supprimera votre assignation en tant qu'éditeur pour toutes les soumissions sélectionnées.",
"Are you sure you want to reject these submissions? This will permanently delete the submissions.": "Êtes-vous sûr de vouloir rejeter ces soumissions ? Cela supprimera définitivement les soumissions.",
"There was an error performing this action. Please try again.": "Une erreur s'est produite lors de cette action. Veuillez réessayer.",
"Select All": "Tout sélectionner",
"Unclaim": "Désassigner",
"Promote to Incident": "Promouvoir en incident",
"Promote to Issue": "Promouvoir en problème",
"Submitters": "Soumissionnaires",
"Title": "Titre",
"Date": "Date",
"Actions": "Actions",
"There was an error updating this submission. Please try again.": "Une erreur s'est produite lors de la mise à jour de cette soumission. Veuillez réessayer.",
"Bulk Actions": "Actions groupées",
"Apply": "Appliquer",
"Successfully claimed {{count}} submission": "{{count}} soumission réclamée avec succès",
"Successfully unclaimed {{count}} submission": "{{count}} soumission désassignée avec succès",
"Successfully rejected {{count}} submission": "{{count}} soumission rejetée avec succès",
"Successfully claimed {{count}} submissions": "{{count}} soumissions réclamées avec succès",
"Successfully unclaimed {{count}} submissions": "{{count}} soumissions désassignées avec succès",
"Successfully rejected {{count}} submissions": "{{count}} soumissions rejetées avec succès"

}
23 changes: 22 additions & 1 deletion site/gatsby-site/i18n/locales/ja/submitted.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,5 +38,26 @@
"Claim": "再投稿",
"Claiming...": "再投稿中...",
"Reviewing": "レビュー中",
"No reports found": "レポートが見つかりません"
"No reports found": "レポートが見つかりません",
"Are you sure you want to claim these submissions? This will assign you as the editor on all the selected submissions.": "これらの投稿を担当しますか?選択されたすべての投稿のエディタとして割り当てられます。",
"Are you sure you want to unclaim these submissions? This will unassign you as the editor on all the selected submissions.": "これらの投稿の担当を外しますか?選択されたすべての投稿のエディタとしての割り当てが解除されます。",
"Are you sure you want to reject these submissions? This will permanently delete the submissions.": "これらの投稿を却下しますか?投稿は完全に削除されます。",
"There was an error performing this action. Please try again.": "この操作の実行中にエラーが発生しました。もう一度お試しください。",
"Select All": "すべて選択",
"Unclaim": "担当を外す",
"Promote to Incident": "インシデントに更新",
"Promote to Issue": "イシューに更新",
"Submitters": "投稿者",
"Title": "タイトル",
"Date": "日付",
"Actions": "アクション",
"There was an error updating this submission. Please try again.": "この投稿の更新中にエラーが発生しました。もう一度お試しください。",
"Bulk Actions": "一括操作",
"Apply": "適用",
"Successfully claimed {{count}} submission": "{{count}} 投稿を成功裡に再投稿しました",
"Successfully unclaimed {{count}} submission": "{{count}} 投稿を成功裡に担当を外しました",
"Successfully rejected {{count}} submission": "{{count}} 投稿を成功裡に却下しました",
"Successfully claimed {{count}} submissions": "{{count}} 投稿を成功裡に再投稿しました",
"Successfully unclaimed {{count}} submissions": "{{count}} 投稿を成功裡に担当を外しました",
"Successfully rejected {{count}} submissions": "{{count}} 投稿を成功裡に却下しました"
}
267 changes: 267 additions & 0 deletions site/gatsby-site/playwright/e2e-full/apps/submitted.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -700,4 +700,271 @@ test.describe('Submitted reports', () => {

})
});

test('Should perform a bulk claim on all submissions', async ({ page, login }) => {
await init();

const [userId] = await login({ customData: { first_name: 'Test', last_name: 'User', roles: ['incident_editor'] } });

await page.goto(url);

const { data: { submissions } } = await query({
query: gql`{
submissions {
_id
}
}
`,
});
// Select all submissions
await page.getByTestId("select-all-submissions").click({force: true});
await page.getByTestId("select-all-submissions").check({force: true});

page.on('dialog', dialog => dialog.accept());

// Select claim option
await page.getByTestId("bulk-action-select").selectOption('claim');

// Click on bulk action button
await page.getByTestId("bulk-action-button").click();

await expect(page.locator('[data-cy="toast"]').first()).toContainText(`Successfully claimed ${submissions.length} submissions`);


const { data: { submissions: updatedSubmissions } } = await query({
query: gql`{
submissions(filter: { incident_editors: { EQ: "${userId}" } }) {
_id
incident_editors {
userId
}
}
}
`,
});

expect(updatedSubmissions.length).toBe(submissions.length);
});

test('Should perform a bulk unclaim on all submissions', async ({ page, login }) => {
await init();

const [userId] = await login({ customData: { first_name: 'Test', last_name: 'User', roles: ['incident_editor'] } });

await page.goto(url);

const { data: { submissions } } = await query({
query: gql`{
submissions {
_id
}
}
`,
});
// Select all submissions
await page.getByTestId("select-all-submissions").click({force: true});
await page.getByTestId("select-all-submissions").check({force: true});

page.on('dialog', dialog => dialog.accept());

// Select unclaim option
await page.getByTestId("bulk-action-select").selectOption('unclaim');

// Click on bulk action button
await page.getByTestId("bulk-action-button").click();

await expect(page.locator('[data-cy="toast"]').first()).toContainText(`Successfully unclaimed ${submissions.length} submissions`);


const { data: { submissions: updatedSubmissions } } = await query({
query: gql`{
submissions(filter: { incident_editors: { EQ: "${userId}" } }) {
_id
incident_editors {
userId
}
}
}
`,
});

expect(updatedSubmissions.length).toBe(0);
});

test('Should perform a bulk to reject all submissions', async ({ page, login }) => {
await init();

await login({ customData: { first_name: 'Test', last_name: 'User', roles: ['incident_editor'] } });

await page.goto(url);

const { data: { submissions } } = await query({
query: gql`{
submissions {
_id
}
}
`,
});
// Select all submissions
await page.getByTestId("select-all-submissions").click({force: true});
await page.getByTestId("select-all-submissions").check({force: true});

page.on('dialog', dialog => dialog.accept());

// Select reject option
await page.getByTestId("bulk-action-select").selectOption('reject');

// Click on bulk action button
await page.getByTestId("bulk-action-button").click();

await expect(page.locator('[data-cy="toast"]').first()).toContainText(`Successfully rejected ${submissions.length} submissions`);


const { data: { submissions: updatedSubmissions } } = await query({
query: gql`{
submissions {
_id
}
}
`,
});

expect(updatedSubmissions.length).toBe(0);
});

test('Should select and claim one submission', async ({ page, login }) => {
await init();

const [userId] = await login({ customData: { first_name: 'Test', last_name: 'User', roles: ['incident_editor'] } });

await page.goto(url);

const { data: { submissions } } = await query({
query: gql`{
submissions {
_id
}
}
`,
});
// Select all submissions
const firstSubmission = submissions[0];
await page.getByTestId(`select-submission-${firstSubmission._id}`).click({force: true});
await page.getByTestId(`select-submission-${firstSubmission._id}`).check({force: true});

page.on('dialog', dialog => dialog.accept());

// Select claim option
await page.getByTestId("bulk-action-select").selectOption('claim');

// Click on bulk action button
await page.getByTestId("bulk-action-button").click();

await expect(page.locator('[data-cy="toast"]').first()).toContainText(`Successfully claimed 1 submission`);

const { data: { submissions: updatedSubmissions } } = await query({
query: gql`{
submissions(filter: { incident_editors: { EQ: "${userId}" }, _id: { EQ: "${firstSubmission._id}" } }) {
_id
incident_editors {
userId
}
}
}
`,
});

expect(updatedSubmissions.length).toBe(1);
});

test('Should select and unclaim one submission', async ({ page, login }) => {
await init();

const [userId] = await login({ customData: { first_name: 'Test', last_name: 'User', roles: ['incident_editor'] } });

await page.goto(url);

const { data: { submissions } } = await query({
query: gql`{
submissions {
_id
}
}
`,
});
// Select all submissions
const firstSubmission = submissions[0];
await page.getByTestId(`select-submission-${firstSubmission._id}`).click({force: true});
await page.getByTestId(`select-submission-${firstSubmission._id}`).check({force: true});

page.on('dialog', dialog => dialog.accept());

// Select unclaim option
await page.getByTestId("bulk-action-select").selectOption('unclaim');

// Click on bulk action button
await page.getByTestId("bulk-action-button").click();

await expect(page.locator('[data-cy="toast"]').first()).toContainText(`Successfully unclaimed 1 submission`);

const { data: { submissions: updatedSubmissions } } = await query({
query: gql`{
submissions(filter: { incident_editors: { EQ: "${userId}" }, _id: { EQ: "${firstSubmission._id}" } }) {
_id
incident_editors {
userId
}
}
}
`,
});

expect(updatedSubmissions.length).toBe(0);
});

test('Should select and reject one submission', async ({ page, login }) => {
await init();

const [userId] = await login({ customData: { first_name: 'Test', last_name: 'User', roles: ['incident_editor'] } });

await page.goto(url);

const { data: { submissions } } = await query({
query: gql`{
submissions {
_id
}
}
`,
});
// Select all submissions
const firstSubmission = submissions[0];
await page.getByTestId(`select-submission-${firstSubmission._id}`).click({force: true});
await page.getByTestId(`select-submission-${firstSubmission._id}`).check({force: true});

page.on('dialog', dialog => dialog.accept());

// Select reject option
await page.getByTestId("bulk-action-select").selectOption('reject');

// Click on bulk action button
await page.getByTestId("bulk-action-button").click();

await expect(page.locator('[data-cy="toast"]').first()).toContainText(`Successfully rejected 1 submission`);

const { data: { submissions: updatedSubmissions } } = await query({
query: gql`{
submissions(filter: { incident_editors: { EQ: "${userId}" }, _id: { EQ: "${firstSubmission._id}" } }) {
_id
incident_editors {
userId
}
}
}
`,
});

expect(updatedSubmissions.length).toBe(0);
});
});
Loading