mirror of
https://github.com/n8n-io/n8n.git
synced 2025-03-05 20:50:17 -08:00
* ✨ Added pinia support. Migrated community nodes module. * ✨ Added ui pinia store, moved some data from root store to it, updated modals to work with pinia stores * ✨ Added ui pinia store and migrated a part of the root store * ✨ Migrated `settings` store to pinia * ✨ Removing vuex store refs from router * ✨ Migrated `users` module to pinia store * ⚡ Fixing errors after sync with master * ⚡ One more error after merge * ⚡ Created `workflows` pinia store. Moved large part of root store to it. Started updating references. * ✨ Finished migrating workflows store to pinia * ⚡ Renaming some getters and actions to make more sense * ✨ Finished migrating the root store to pinia * ✨ Migrated ndv store to pinia * ⚡ Renaming main panel dimensions getter so it doesn't clash with data prop name * ✔️ Fixing lint errors * ✨ Migrated `templates` store to pinia * ✨ Migrated the `nodeTypes`store * ⚡ Removed unused pieces of code and oold vuex modules * ✨ Adding vuex calls to pinia store, fixing wrong references * 💄 Removing leftover $store refs * ⚡ Added legacy getters and mutations to store to support webhooks * ⚡ Added missing front-end hooks, updated vuex state subscriptions to pinia * ✔️ Fixing linting errors * ⚡ Removing vue composition api plugin * ⚡ Fixing main sidebar state when loading node view * 🐛 Fixing an error when activating workflows * 🐛 Fixing isses with workflow settings and executions auto-refresh * 🐛 Removing duplicate listeners which cause import error * 🐛 Fixing route authentication * ⚡ Updating freshly pulled $store refs * ⚡ Adding deleted const * ⚡ Updating store references in ee features. Reseting NodeView credentials update flag when resetting workspace * ⚡ Adding return type to email submission modal * ⚡ Making NodeView only react to paste event when active * 🐛 Fixing signup view errors * ✨ Started migrating the `credentials` module to pinia * 👌 Addressing PR review comments * ✨ Migrated permissions module to pinia * ✨ Migrated `nodeCreator`, `tags` and `versions` modules to pinia * ✨ Implemented webhooks pinia store * ⚡ Removing all leftover vuex files and references * ✨ Removing final vuex refs * ⚡ Updating expected credentialId type * ⚡ Removing node credentials subscription code, reducing node click debounce timeout * 🐛 Fixing pushing nodes downstream when inserting new node * ✔️ Fixing a lint error in new type guard * ⚡ Updating helper reference * ✔️ Removing unnecessary awaits * ⚡ fix(editor): remove unnecessary imports from NDV * ⚡ Merging mapStores blocks in NodeView * ⚡ fix(editor): make sure JS Plumb not loaded earlier than needed * ⚡ Updating type guard nad credentials subscriptions * ⚡ Updating type guard so it doesn't use `any` type Co-authored-by: Csaba Tuncsik <csaba@n8n.io>
135 lines
2.8 KiB
Vue
135 lines
2.8 KiB
Vue
<template>
|
|
<ModalDrawer
|
|
:name="VERSIONS_MODAL_KEY"
|
|
direction="ltr"
|
|
width="520px"
|
|
>
|
|
<template slot="header">
|
|
<span :class="$style.title">
|
|
{{ $locale.baseText('updatesPanel.weVeBeenBusy') }}
|
|
</span>
|
|
</template>
|
|
<template slot="content">
|
|
<section :class="$style['description']">
|
|
<p v-if="currentVersion">
|
|
{{ $locale.baseText(
|
|
'updatesPanel.youReOnVersion',
|
|
{ interpolate: { currentVersionName: currentVersion.name } }
|
|
) }}
|
|
<strong><TimeAgo :date="currentVersion.createdAt" /></strong>{{ $locale.baseText('updatesPanel.andIs') }} <strong>{{ $locale.baseText(
|
|
'updatesPanel.version',
|
|
{
|
|
interpolate: {
|
|
numberOfVersions: nextVersions.length,
|
|
howManySuffix: nextVersions.length > 1 ? "s" : "",
|
|
}
|
|
}
|
|
)}}</strong> {{ $locale.baseText('updatesPanel.behindTheLatest') }}
|
|
</p>
|
|
|
|
<n8n-link
|
|
v-if="infoUrl"
|
|
:to="infoUrl"
|
|
:bold="true"
|
|
>
|
|
<font-awesome-icon icon="info-circle"></font-awesome-icon>
|
|
<span>
|
|
{{ $locale.baseText('updatesPanel.howToUpdateYourN8nVersion') }}
|
|
</span>
|
|
</n8n-link>
|
|
|
|
</section>
|
|
<section :class="$style.versions">
|
|
<div
|
|
v-for="version in nextVersions"
|
|
:key="version.name"
|
|
:class="$style['versions-card']"
|
|
>
|
|
<VersionCard :version="version" />
|
|
</div>
|
|
</section>
|
|
</template>
|
|
</ModalDrawer>
|
|
</template>
|
|
|
|
<script lang="ts">
|
|
import Vue from 'vue';
|
|
|
|
import ModalDrawer from './ModalDrawer.vue';
|
|
import TimeAgo from './TimeAgo.vue';
|
|
import VersionCard from './VersionCard.vue';
|
|
import { VERSIONS_MODAL_KEY } from '../constants';
|
|
import { mapStores } from 'pinia';
|
|
import { useVersionsStore } from '@/stores/versions';
|
|
import { IVersion } from '@/Interface';
|
|
|
|
export default Vue.extend({
|
|
name: 'UpdatesPanel',
|
|
components: {
|
|
ModalDrawer,
|
|
VersionCard,
|
|
TimeAgo,
|
|
},
|
|
computed: {
|
|
...mapStores(
|
|
useVersionsStore,
|
|
),
|
|
nextVersions(): IVersion[] {
|
|
return this.versionsStore.nextVersions;
|
|
},
|
|
currentVersion(): IVersion | undefined {
|
|
return this.versionsStore.currentVersion;
|
|
},
|
|
infoUrl(): string {
|
|
return this.versionsStore.infoUrl;
|
|
},
|
|
},
|
|
data() {
|
|
return {
|
|
VERSIONS_MODAL_KEY,
|
|
};
|
|
},
|
|
});
|
|
</script>
|
|
|
|
<style module lang="scss">
|
|
.title {
|
|
margin: 0;
|
|
font-size: 24px;
|
|
line-height: 24px;
|
|
color: $updates-panel-text-color;
|
|
font-weight: 400;
|
|
}
|
|
|
|
.description {
|
|
padding: 0px 30px;
|
|
margin-block-start: 16px;
|
|
margin-block-end: 30px;
|
|
|
|
p {
|
|
font-size: 16px;
|
|
line-height: 22px;
|
|
color: $updates-panel-description-text-color;
|
|
font-weight: 400;
|
|
margin: 0 0 16px 0;
|
|
}
|
|
|
|
div {
|
|
padding-top: 20px;
|
|
}
|
|
}
|
|
|
|
.versions {
|
|
background-color: $updates-panel-dark-background-color;
|
|
border-top: $updates-panel-border;
|
|
height: 100%;
|
|
padding: 30px;
|
|
overflow-y: scroll;
|
|
padding-bottom: 220px;
|
|
}
|
|
|
|
.versions-card {
|
|
margin-block-end: 15px;
|
|
}
|
|
</style>
|