Skip to content

Commit

Permalink
fix(editor): Move workerview entry into settings menu (#7761)
Browse files Browse the repository at this point in the history
As the worker view is not an essential function, it is being moved from
the main side bar to the settings side bar for the time being.
  • Loading branch information
flipswitchingmonkey committed Nov 21, 2023
1 parent b7c5c74 commit 366cd67
Show file tree
Hide file tree
Showing 6 changed files with 55 additions and 81 deletions.
4 changes: 2 additions & 2 deletions cypress/pages/workerView.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import { BasePage } from './base';

export class WorkerViewPage extends BasePage {
url = '/workers';
url = '/settings/workers';
getters = {
workerCards: () => cy.getByTestId('worker-card'),
workerCard: (workerId: string) => this.getters.workerCards().contains(workerId),
workerViewLicensed: () => cy.getByTestId('worker-view-licensed'),
workerViewUnlicensed: () => cy.getByTestId('worker-view-unlicensed'),
menuItems: () => cy.get('.el-menu-item'),
menuItem: () => this.getters.menuItems().get('#workersview'),
menuItem: () => this.getters.menuItems().get('#settings-workersview'),
};

actions = {};
Expand Down
15 changes: 0 additions & 15 deletions packages/editor-ui/src/components/MainSidebar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -261,15 +261,6 @@ export default defineComponent({
position: 'top',
activateOnRouteNames: [VIEWS.EXECUTIONS],
},
{
id: 'workersview',
icon: 'truck-monster',
label: this.$locale.baseText('mainSidebar.workersView'),
position: 'top',
available:
this.settingsStore.isQueueModeEnabled && this.settingsStore.isWorkerViewAvailable,
activateOnRouteNames: [VIEWS.WORKER_VIEW],
},
{
id: 'cloud-admin',
type: 'link',
Expand Down Expand Up @@ -448,12 +439,6 @@ export default defineComponent({
}
break;
}
case 'workersview': {
if (this.$router.currentRoute.name !== VIEWS.WORKER_VIEW) {
this.goToRoute({ name: VIEWS.WORKER_VIEW });
}
break;
}
case 'settings': {
const defaultRoute = this.findFirstAccessibleSettingsRoute();
if (defaultRoute) {
Expand Down
13 changes: 13 additions & 0 deletions packages/editor-ui/src/components/SettingsSidebar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,15 @@ export default defineComponent({
available: this.canAccessLdapSettings(),
activateOnRouteNames: [VIEWS.LDAP_SETTINGS],
},
{
id: 'settings-workersview',
icon: 'truck-monster',
label: this.$locale.baseText('mainSidebar.workersView'),
position: 'top',
available:
this.settingsStore.isQueueModeEnabled && this.settingsStore.isWorkerViewAvailable,
activateOnRouteNames: [VIEWS.WORKER_VIEW],
},
];
for (const item of this.settingsFakeDoorFeatures) {
Expand Down Expand Up @@ -241,6 +250,10 @@ export default defineComponent({
void this.$router.push({ name: VIEWS.AUDIT_LOGS });
}
break;
case 'settings-workersview': {
await this.navigateTo(VIEWS.WORKER_VIEW);
break;
}
default:
break;
}
Expand Down
8 changes: 4 additions & 4 deletions packages/editor-ui/src/components/Workers/WorkerCard.ee.vue
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
:class="stale ? [$style.cardHeading, $style.stale] : [$style.cardHeading]"
data-test-id="worker-card-name"
>
{{ worker.workerId }} ({{ worker.hostname }}) | Average Load:
{{ averageWorkerLoadFromLoadsAsString(worker.loadAvg ?? [0]) }} | Free Memory:
Name: {{ worker.workerId }} ({{ worker.hostname }}) <br />
Average Load: {{ averageWorkerLoadFromLoadsAsString(worker.loadAvg ?? [0]) }} | Free Memory:
{{ memAsGb(worker.freeMem).toFixed(2) }}GB / {{ memAsGb(worker.totalMem).toFixed(2) }}GB
{{ stale ? ' (stale)' : '' }}
</n8n-heading>
Expand All @@ -17,8 +17,8 @@
<n8n-text color="text-light" size="small" :class="$style.container">
<span
>{{ $locale.baseText('workerList.item.lastUpdated') }} {{ secondsSinceLastUpdateString }}s
ago | Architecture: {{ worker.arch }} | Platform: {{ worker.platform }} | n8n-Version:
{{ worker.version }} | Uptime: {{ upTime(worker.uptime) }}</span
ago | n8n-Version: {{ worker.version }} | Architecture: {{ worker.arch }} (
{{ worker.platform }}) | Uptime: {{ upTime(worker.uptime) }}</span
>
<WorkerJobAccordion :items="worker.runningJobsSummary" />
<WorkerNetAccordion :items="sortedWorkerInterfaces" />
Expand Down
29 changes: 14 additions & 15 deletions packages/editor-ui/src/router.ts
Original file line number Diff line number Diff line change
Expand Up @@ -217,21 +217,6 @@ export const routes = [
},
},
},
{
path: '/workers',
name: VIEWS.WORKER_VIEW,
components: {
default: WorkerView,
sidebar: MainSidebar,
},
meta: {
permissions: {
allow: {
loginStatus: [LOGIN_STATUS.LoggedIn],
},
},
},
},
{
path: '/workflows',
name: VIEWS.WORKFLOWS,
Expand Down Expand Up @@ -736,6 +721,20 @@ export const routes = [
},
},
},
{
path: 'workers',
name: VIEWS.WORKER_VIEW,
components: {
settingsView: WorkerView,
},
meta: {
permissions: {
allow: {
loginStatus: [LOGIN_STATUS.LoggedIn],
},
},
},
},
{
path: 'community-nodes',
name: VIEWS.COMMUNITY_NODES,
Expand Down
67 changes: 22 additions & 45 deletions packages/editor-ui/src/views/WorkerView.vue
Original file line number Diff line number Diff line change
@@ -1,30 +1,26 @@
<template>
<div :class="$style.workerListWrapper">
<div :class="$style.workerList">
<WorkerList
v-if="settingsStore.isQueueModeEnabled && settingsStore.isWorkerViewAvailable"
data-test-id="worker-view-licensed"
/>
<n8n-action-box
v-else
data-test-id="worker-view-unlicensed"
:class="$style.actionBox"
:description="$locale.baseText('workerList.actionBox.description')"
:buttonText="$locale.baseText('workerList.actionBox.buttonText')"
@click:button="goToUpgrade"
>
<template #heading>
<span>{{ $locale.baseText('workerList.actionBox.title') }}</span>
</template>
<template #description>
{{ $locale.baseText('workerList.actionBox.description') }}
<a :href="$locale.baseText('workerList.docs.url')" target="_blank">
{{ $locale.baseText('workerList.actionBox.description.link') }}
</a>
</template>
</n8n-action-box>
</div>
</div>
<WorkerList
v-if="settingsStore.isQueueModeEnabled && settingsStore.isWorkerViewAvailable"
data-test-id="worker-view-licensed"
/>
<n8n-action-box
v-else
data-test-id="worker-view-unlicensed"
:class="$style.actionBox"
:description="$locale.baseText('workerList.actionBox.description')"
:buttonText="$locale.baseText('workerList.actionBox.buttonText')"
@click:button="goToUpgrade"
>
<template #heading>
<span>{{ $locale.baseText('workerList.actionBox.title') }}</span>
</template>
<template #description>
{{ $locale.baseText('workerList.actionBox.description') }}
<a :href="$locale.baseText('workerList.docs.url')" target="_blank">
{{ $locale.baseText('workerList.actionBox.description.link') }}
</a>
</template>
</n8n-action-box>
</template>

<script setup lang="ts">
Expand All @@ -41,25 +37,6 @@ const goToUpgrade = () => {
</script>

<style module lang="scss">
.workerListWrapper {
display: grid;
grid-template-rows: 1fr 0;
position: relative;
height: 100%;
width: 100%;
max-width: 1280px;
}
.workerList {
position: relative;
height: 100%;
overflow: auto;
padding: var(--spacing-l) var(--spacing-l) 0;
@media (min-width: 1200px) {
padding: var(--spacing-2xl) var(--spacing-2xl) 0;
}
}
.actionBox {
margin: var(--spacing-2xl) 0 0;
}
Expand Down

0 comments on commit 366cd67

Please sign in to comment.