Skip to content
Snippets Groups Projects
Commit 3aa54a80 authored by utkarsh_33's avatar utkarsh_33 Committed by Chris Wells
Browse files

Issue #3497909 by utkarsh_33, uttam, phenaproxima, narendrar, omkar-pd: Remove...

Issue #3497909 by utkarsh_33, uttam, phenaproxima, narendrar, omkar-pd: Remove the word "queue" from the Svelte code
parent 5ca023bc
No related branches found
No related tags found
1 merge request!706#3497909: Remove the word "queue" from the Svelte code
Pipeline #415845 passed
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
...@@ -4,11 +4,11 @@ import { BASE_URL, CURRENT_PATH } from './constants'; ...@@ -4,11 +4,11 @@ import { BASE_URL, CURRENT_PATH } from './constants';
export const updated = writable(0); export const updated = writable(0);
// Store for the queue list. // Store for the install list.
export const queueList = writable([]); export const installList = writable([]);
export function addToQueue(project) { export function addToInstallList(project) {
queueList.update((currentList) => { installList.update((currentList) => {
if (!currentList.includes(project)) { if (!currentList.includes(project)) {
currentList.push(project); currentList.push(project);
} }
...@@ -16,8 +16,8 @@ export function addToQueue(project) { ...@@ -16,8 +16,8 @@ export function addToQueue(project) {
}); });
} }
export function removeFromQueue(projectId) { export function removeFromInstallList(projectId) {
queueList.update((currentList) => { installList.update((currentList) => {
currentList = currentList.filter( currentList = currentList.filter(
(item) => item.id !== projectId, (item) => item.id !== projectId,
); );
...@@ -25,8 +25,8 @@ export function removeFromQueue(projectId) { ...@@ -25,8 +25,8 @@ export function removeFromQueue(projectId) {
}); });
} }
export function clearQueue() { export function clearInstallList() {
queueList.update((currentList) => { installList.update((currentList) => {
currentList = []; currentList = [];
return currentList; return currentList;
}); });
...@@ -77,8 +77,8 @@ export const handleError = async (errorResponse) => { ...@@ -77,8 +77,8 @@ export const handleError = async (errorResponse) => {
} else { } else {
div.innerHTML += `<p>${errorMessage}</p>`; div.innerHTML += `<p>${errorMessage}</p>`;
} }
const currentQueueList = get(queueList) || []; const currentInstallList = get(installList) || [];
for (const project of currentQueueList) { for (const project of currentInstallList) {
project.error = errorMessage; project.error = errorMessage;
} }
...@@ -198,17 +198,17 @@ export const doRequests = async (projectIds) => { ...@@ -198,17 +198,17 @@ export const doRequests = async (projectIds) => {
} }
}; };
export const processQueue = async () => { export const processInstallList = async () => {
const currentQueueList = get(queueList) || []; const currentInstallList = get(installList) || [];
const projectsToActivate = []; const projectsToActivate = [];
const projectsToDownloadAndActivate = []; const projectsToDownloadAndActivate = [];
if (currentQueueList.length === 0) { if (currentInstallList.length === 0) {
new Drupal.Message().add(Drupal.t('No projects selected'), { type: 'error' }); new Drupal.Message().add(Drupal.t('No projects selected'), { type: 'error' });
window.scrollTo({ top: 0, behavior: 'smooth' }); window.scrollTo({ top: 0, behavior: 'smooth' });
return; return;
} }
for (const proj of currentQueueList) { for (const proj of currentInstallList) {
if (proj.status === 'absent') { if (proj.status === 'absent') {
projectsToDownloadAndActivate.push(proj.id); projectsToDownloadAndActivate.push(proj.id);
} else if (proj.status === 'present') { } else if (proj.status === 'present') {
...@@ -227,8 +227,8 @@ export const processQueue = async () => { ...@@ -227,8 +227,8 @@ export const processQueue = async () => {
document.body.style.pointerEvents = 'auto'; document.body.style.pointerEvents = 'auto';
clearQueue(); clearInstallList();
for (const project of currentQueueList) { for (const project of currentInstallList) {
if(!project.error) { if(!project.error) {
project.status = 'active'; project.status = 'active';
} }
......
<script> <script>
import { import {
processQueue, processInstallList,
queueList, installList,
updated, updated,
clearQueue, clearInstallList,
} from './QueueProcessor'; } from './InstallListProcessor';
import Loading from './Loading.svelte'; import Loading from './Loading.svelte';
import LoadingEllipsis from './Project/LoadingEllipsis.svelte'; import LoadingEllipsis from './Project/LoadingEllipsis.svelte';
...@@ -14,14 +14,14 @@ ...@@ -14,14 +14,14 @@
let buttonClasses; let buttonClasses;
let bulkActionClasses = ''; let bulkActionClasses = '';
$: currentQueueList = $queueList || []; $: currentInstallList = $installList || [];
$: queueLength = currentQueueList.length; $: installListLength = currentInstallList.length;
let projectsToActivate = []; let projectsToActivate = [];
let projectsToDownloadAndActivate = []; let projectsToDownloadAndActivate = [];
const handleClick = async () => { const handleClick = async () => {
loading = true; loading = true;
await processQueue(); await processInstallList();
loading = false; loading = false;
$updated = new Date().getTime(); $updated = new Date().getTime();
}; };
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
function clearSelection() { function clearSelection() {
projectsToDownloadAndActivate = []; projectsToDownloadAndActivate = [];
projectsToActivate = []; projectsToActivate = [];
clearQueue(); clearInstallList();
$updated = new Date().getTime(); $updated = new Date().getTime();
} }
...@@ -48,17 +48,17 @@ ...@@ -48,17 +48,17 @@
<div <div
class=" views-bulk-actions pb-install_bulk_actions {bulkActionClasses}" class=" views-bulk-actions pb-install_bulk_actions {bulkActionClasses}"
data-drupal-sticky-vbo={queueLength !== 0} data-drupal-sticky-vbo={installListLength !== 0}
> >
<div <div
class="views-bulk-actions__item class="views-bulk-actions__item
views-bulk-actions__item--status views-bulk-actions__item-gin" views-bulk-actions__item--status views-bulk-actions__item-gin"
> >
{#if queueLength === 0} {#if installListLength === 0}
{Drupal.t('No projects selected')} {Drupal.t('No projects selected')}
{:else} {:else}
{Drupal.formatPlural( {Drupal.formatPlural(
queueLength, installListLength,
'1 project selected', '1 project selected',
'@count projects selected', '@count projects selected',
)} )}
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
<Loading /> <Loading />
<LoadingEllipsis <LoadingEllipsis
message={Drupal.formatPlural( message={Drupal.formatPlural(
queueLength, installListLength,
'Installing 1 project', 'Installing 1 project',
'Installing @count projects', 'Installing @count projects',
)} )}
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
{Drupal.t('Install selected projects')} {Drupal.t('Install selected projects')}
{/if} {/if}
</button> </button>
{#if queueLength !== 0} {#if installListLength !== 0}
<button class="button clear_button" on:click={clearSelection}> <button class="button clear_button" on:click={clearSelection}>
{Drupal.t('Clear selection')} {Drupal.t('Clear selection')}
</button> </button>
......
...@@ -6,12 +6,12 @@ ...@@ -6,12 +6,12 @@
import ProjectIcon from './ProjectIcon.svelte'; import ProjectIcon from './ProjectIcon.svelte';
import LoadingEllipsis from './LoadingEllipsis.svelte'; import LoadingEllipsis from './LoadingEllipsis.svelte';
import { import {
processQueue, processInstallList,
addToQueue, addToInstallList,
queueList, installList,
removeFromQueue, removeFromInstallList,
updated, updated,
} from '../QueueProcessor'; } from '../InstallListProcessor';
// eslint-disable-next-line import/no-mutable-exports,import/prefer-default-export // eslint-disable-next-line import/no-mutable-exports,import/prefer-default-export
export let project; export let project;
...@@ -20,34 +20,34 @@ ...@@ -20,34 +20,34 @@
const { Drupal } = window; const { Drupal } = window;
const processMultipleProjects = MAX_SELECTIONS === null || MAX_SELECTIONS > 1; const processMultipleProjects = MAX_SELECTIONS === null || MAX_SELECTIONS > 1;
$: isInQueue = $queueList.some((item) => item.id === project.id); $: isInInstallList = $installList.some((item) => item.id === project.id);
// If MAX_SELECTIONS is null (no limit), then the queue is never full. // If MAX_SELECTIONS is null (no limit), then the install list is never full.
const queueFull = $queueList.length === MAX_SELECTIONS; const InstallListFull = $installList.length === MAX_SELECTIONS;
let loading = false; let loading = false;
function handleAddToQueueClick(singleProject) { function handleAddToInstallListClick(singleProject) {
addToQueue(singleProject); addToInstallList(singleProject);
$updated = new Date().getTime(); $updated = new Date().getTime();
} }
function handleDequeueClick(projectId) { function handleRemoveFromInstallList(projectId) {
removeFromQueue(projectId); removeFromInstallList(projectId);
$updated = new Date().getTime(); $updated = new Date().getTime();
} }
const onClick = async () => { const onClick = async () => {
if (processMultipleProjects) { if (processMultipleProjects) {
if (isInQueue) { if (isInInstallList) {
handleDequeueClick(project.id); handleRemoveFromInstallList(project.id);
} else { } else {
handleAddToQueueClick(project); handleAddToInstallListClick(project);
} }
} else { } else {
handleAddToQueueClick(project); handleAddToInstallListClick(project);
loading = true; loading = true;
await processQueue(); await processInstallList();
loading = false; loading = false;
$updated = new Date().getTime(); $updated = new Date().getTime();
} }
...@@ -68,11 +68,11 @@ ...@@ -68,11 +68,11 @@
{:else} {:else}
<span> <span>
{#if PACKAGE_MANAGER.available && PACKAGE_MANAGER.errors.length === 0} {#if PACKAGE_MANAGER.available && PACKAGE_MANAGER.errors.length === 0}
{#if isInQueue && !processMultipleProjects} {#if isInInstallList && !processMultipleProjects}
<ProjectButtonBase> <ProjectButtonBase>
<LoadingEllipsis /> <LoadingEllipsis />
</ProjectButtonBase> </ProjectButtonBase>
{:else if queueFull && !isInQueue && processMultipleProjects} {:else if InstallListFull && !isInInstallList && processMultipleProjects}
<ProjectButtonBase disabled> <ProjectButtonBase disabled>
{@html Drupal.t( {@html Drupal.t(
'Select <span class="visually-hidden">@title</span>', 'Select <span class="visually-hidden">@title</span>',
...@@ -83,7 +83,7 @@ ...@@ -83,7 +83,7 @@
</ProjectButtonBase> </ProjectButtonBase>
{:else} {:else}
<ProjectButtonBase click={onClick}> <ProjectButtonBase click={onClick}>
{#if isInQueue} {#if isInInstallList}
{@html Drupal.t( {@html Drupal.t(
'Deselect <span class="visually-hidden">@title</span>', 'Deselect <span class="visually-hidden">@title</span>',
{ {
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
import Pagination from './Pagination.svelte'; import Pagination from './Pagination.svelte';
import Project from './Project/Project.svelte'; import Project from './Project/Project.svelte';
import { numberFormatter } from './util'; import { numberFormatter } from './util';
import { updated, queueList } from './QueueProcessor'; import { updated, installList } from './InstallListProcessor';
import MediaQuery from './MediaQuery.svelte'; import MediaQuery from './MediaQuery.svelte';
import { import {
BASE_URL, BASE_URL,
...@@ -145,7 +145,7 @@ ...@@ -145,7 +145,7 @@
*/ */
onMount(async () => { onMount(async () => {
if (MAX_SELECTIONS === 1) { if (MAX_SELECTIONS === 1) {
$queueList = []; $installList = [];
} }
const savedPageSize = localStorage.getItem('pageSize'); const savedPageSize = localStorage.getItem('pageSize');
if (savedPageSize) { if (savedPageSize) {
......
<script context="module"> <script context="module">
import Search from './Search/Search.svelte'; import Search from './Search/Search.svelte';
import Loading from './Loading.svelte'; import Loading from './Loading.svelte';
import ProcessQueueButton from './ProcessQueueButton.svelte'; import ProcessInstallListButton from './ProcessInstallListButton.svelte';
export { Search }; export { Search };
</script> </script>
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
<slot rows={visibleRows} /> <slot rows={visibleRows} />
</ul> </ul>
{#if PACKAGE_MANAGER.available && processMultipleProjects} {#if PACKAGE_MANAGER.available && processMultipleProjects}
<ProcessQueueButton /> <ProcessInstallListButton />
{/if} {/if}
{/if} {/if}
<slot name="foot" /> <slot name="foot" />
......
...@@ -417,9 +417,9 @@ class ProjectBrowserInstallerUiTest extends WebDriverTestBase { ...@@ -417,9 +417,9 @@ class ProjectBrowserInstallerUiTest extends WebDriverTestBase {
} }
/** /**
* Tests that adding projects to queue is plugin specific. * Tests that adding projects to install list is plugin specific.
*/ */
public function testPluginSpecificQueue(): void { public function testPluginSpecificInstallList(): void {
$assert_session = $this->assertSession(); $assert_session = $this->assertSession();
$this->container->get('module_installer')->install(['project_browser_devel'], TRUE); $this->container->get('module_installer')->install(['project_browser_devel'], TRUE);
$this->drupalGet('project-browser/project_browser_test_mock'); $this->drupalGet('project-browser/project_browser_test_mock');
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment