Commit graph

1317 commits

Author SHA1 Message Date
कारतोफ्फेलस्क्रिप्ट™ 17f13b3b6e
ci: Setup eslint-import-resolver-typescript for improved TS linting (#4996)
* Setup stricter linting for typescript

* make `import/no-unresolved` an error everywhere

* use prettier to format `.vscode/settings.default.json`

* address PR comments
2022-12-22 09:55:39 +01:00
Jan Oberhauser fde6961116 🔖 Release n8n-editor-ui@0.175.0 2022-12-21 16:36:31 +00:00
Jan Oberhauser 341ecb017a ⬆️ Set n8n-design-system@0.49.0 and n8n-workflow@0.131.0 on n8n-editor-ui 2022-12-21 16:36:30 +00:00
Omar Ajoue 25e9f0817a
refactor: Workflow sharing bug bash fixes (#4888)
* fix: Prevent workflows with only manual trigger from being activated

* fix: Fix workflow id when sharing from workflows list

* fix: Update sharing modal translations

* fix: Allow sharees to disable workflows and fix issue with unique key when removing a user

* refactor: Improve error messages and change logging level to be less verbose

* fix: Broken user removal transfer issue

* feat: Implement workflow sharing BE telemetry

* chore: temporarily add sharing env vars

* feat: Implement BE telemetry for workflow sharing

* fix: Prevent issues with possibly missing workflow id

* feat: Replace WorkflowSharing flag references (no-changelog) (#4918)

* ci: Block all external network calls in tests (no-changelog) (#4930)

* setup nock to prevent tests from making any external requests

* mock all calls to posthog sdk

* feat: Replace WorkflowSharing flag references (no-changelog)

Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <netroy@users.noreply.github.com>

* refactor: Remove temporary feature flag for workflow sharing

* refactor: add sharing_role to both manual and node executions

* refactor: Allow changing name, position and disabled of read only nodes

* feat: Overhaul dynamic translations for local and cloud (#4943)

* feat: Overhaul dynamic translations for local and cloud

* fix: remove type casting

* chore: remove unused translations

* fix: fix workflow sharing translation

* test: Fix broken test

* refactor: remove unnecessary import

* refactor: Minor code improvements

* refactor: rename dynamicTranslations to contextBasedTranslationKeys

* fix: fix type imports

* refactor: Consolidate sharing feature check

* feat: update cred sharing unavailable translations

* feat: update upgrade message when user management not available

* fix: rename plan names to Pro and Power

* feat: update translations to no longer contain plan names

* wip: subworkflow permissions

* feat: add workflowsFromSameOwner caller policy

* feat: Fix subworkflow permissions

* shared entites should check for role when deleting users

* refactor: remove circular dependency

* role filter shouldn't be an array

* fixed role issue

* fix: Corrected behavior when removing users

* feat: show instance owner credential sharing message only if isnt sharee

* feat: update workflow caller policy caller ids labels

* feat: update upgrade plan links to contain instance ids

* fix: show check errors below creds message only to owner

* fix(editor): Hide usage page on cloud

* fix: update credential validation error message for sharee

* fix(core): Remove duplicate import

* fix(editor): Extending deployment types

* feat: Overhaul contextual translations (#4992)

feat: update how contextual translations work

* refactor: improve messageing for subworkflow permissions

* test: Fix issue with user deletion and transfer

* fix: Explicitly throw error message so it can be displayed in UI

Co-authored-by: Alex Grozav <alex@grozav.com>
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <netroy@users.noreply.github.com>
Co-authored-by: freyamade <freya@n8n.io>
Co-authored-by: Csaba Tuncsik <csaba@n8n.io>
2022-12-21 16:42:07 +01:00
कारतोफ्फेलस्क्रिप्ट™ e225c3190e
fix: View option for binary-data shouldn't download the file on Chrome/Edge (#4995)
* delete unused code

* fix: Do not set the `Content-Disposition` header when viewing binary files

* remove the duplicate styles.

these already exist in BinaryDataDisplayEmbed.vue
2022-12-21 13:30:51 +01:00
Iván Ovejero 80e07f86ac
refactor(editor): Make null no longer conditionally displayed (#4993)
 Make `null` no longer conditionally displayed
2022-12-21 13:29:30 +01:00
Mutasem Aldmour 82f763589b
fix: Fix stickies resize (#4986) 2022-12-20 16:58:54 +01:00
Mutasem Aldmour 87c76434a2
fix: Keep expression when dropping mapped value (#4981)
fix: keep expression when dropping mapped value
2022-12-20 16:23:57 +01:00
Mutasem Aldmour 9d00b4748b
fix: Update mapping gifs (#4982)
fix: update mapping gifs
2022-12-20 14:55:47 +01:00
Mutasem Aldmour 29364ea702
fix: Prevent keyboard shortcuts in expression editor modal (#4984)
* fix: prevent keyboard shortcuts in expression editor modal

* support esc
2022-12-20 14:38:41 +01:00
Csaba Tuncsik 0da338f9b5
feat(editor): Add usage and plan pages (#4819)
* feat(editor): Usage and plan page (#4793)

feat(editor): usage and plan page

* feat(editor): Update Usage and plan page (#4842)

* feat(editor): usage and plan store

* feat(editor): usage and plan page updates

* feat(editor): usage and plan add buttons and alert

* tes(editor): usage and plan store

* tes(editor): usage remove refresh button and add link to view plans

* tes(editor): usage use info tip

* tes(editor): usage info style

* feat(editor): Get quotas data (#4866)

feat(editor): get quotas data

* feat(editor): In-app experience (#4875)

* feat: Add license quotas endpoint

* feat: Add trigger count to workflow activation process

* refactor: Get quotas from db

* feat: Add license information

*  - finalised GET /license endpoint

* 🔨 - getActiveTriggerCount return 0 instead of null

* 🐛 - ignore manualTrigger when counting active triggers

*  - add activation endpoint

*  - added renew endpoint

* 🔨 - added return type interfaces

* 🔨 - handle license errors where methods are called

* 🔨 - rename function to match name from lib

* feat(editor): usage add plans buttons logic

* 🚨 - testing new License methods

* feat(editor): usage add more business logic

* chore(editor): code formatting

* 🚨 - added license api tests

* fix(editor): usage store

* fix(editor): usage update translations

* feat(editor): usage add license activation modal

* feat(editor): usage change subscription app url

* feat(editor): usage add contact us link

* feat(editor): usage fix modal width

*  - Add renewal tracking metric

*  - add license data to pulse event

* 🔨 - set default triggercount on entity model

*  - add db migrations for mysql and postgres

* fix(editor): Usage api call data processing and error handling

* fix(editor): Usage fix activation query key

* 🚨 - add initDb to telemetry tests

* 🔨 - move getlicensedata to licenseservice

* 🔨 - return 403 instead of 404 to non owners

* 🔨 - move owner checking to middleware

* 🐛 - fixed incorrectly returned error from middleware

* 🐛 - using mock instead of test db for pulse tests

* fix(editor): Usage fix activation and add success messages

* fix(editor): Usage should not renew activation right after activation

* 🚨 - skipping failing pulse tests for now

* fix(editor): Usage add telemetry calls and apply design review outcomes

* feat(editor): Hide usage page according to BE flag

* feat(editor): Usage modify key activation flow

* feat(editor): Usage change subscription app url

* feat(editor): Usage add telemetry for manage plan

* feat(editor): Usage extend link url query params

* feat(editor): Usage add line chart if there is a workflow limit

* feat(editor): Usage remove query after key activation redirection

* fix(editor): Usage handle limit exceeded workflow chart, add focus to input when modal opened

* fix(editor): Usage activation can return router promise when removing query

* fix(editor): Usage and plan design review

* 🐛 - fix renew endpoint hanging issue

* 🐛 - fix license activation bug

* fix(editor): Usage proper translation for plans and/or editions

* fix(editor): Usage apply David's review results

* fix(editor): Usage page set as default and first under Settings

* fix(editor): Usage open subscription app in new tab

* fix(editor): Usage page having key query param a plan links

* test: Fix broken test

* fix(editor): Usage page address review

* 🧪 Flush promises on telemetry tests

*  Extract helper with `setImmediate`

* 🔥 Remove leftovers

*  Use Adi's helper

* refactor: Comment broken tests

* refactor: add Tenant id to settings

* feat: add environment to license endpoints

* refactor: Move license environment to general settings

* fix: fix routing bug

* fix(editor): Usage page some code review changes and formatting

* fix(editor): Usage page remove direct usage of reusable translation keys

* fix(editor): Usage page async await instead of then

* fix(editor): Usage page show some content only if network requests in component mounted were successful

* chore(editor): code formatting

* fix(editor): Usage checking license environment

* feat(editor): Improve license activation error messages (no-changelog) (#4958)

* fix(editor): Usage changing activation error title

* remove unnecessary import

* fix(editor): Usage refactor notification showing

* fix(editor): Usage using notification directly in store actions

Co-authored-by: Omar Ajoue <krynble@gmail.com>
Co-authored-by: freyamade <freya@n8n.io>
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
Co-authored-by: Mutasem <mutdmour@gmail.com>
Co-authored-by: Cornelius Suermann <cornelius@n8n.io>

* fix(editor): Usage change mounted lifecycle logic

* fix(editor): Usage return after successful activation in mounted

* fix: remove console log

* test: fix tests related to settings (#4979)

Co-authored-by: Omar Ajoue <krynble@gmail.com>
Co-authored-by: freyamade <freya@n8n.io>
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
Co-authored-by: Mutasem <mutdmour@gmail.com>
Co-authored-by: Cornelius Suermann <cornelius@n8n.io>
Co-authored-by: Mutasem Aldmour <4711238+mutdmour@users.noreply.github.com>
2022-12-20 10:52:01 +01:00
Milorad FIlipović 96296e1724
test(editor): Add canvas actions e2e tests (#4950)
*  Added some more workflow actions tests
*  Updating duplicate workflow tests
*  Fixed duplicate workflow tests
*  Added first batch of canvas tests
*  Added zoom and select tests
*  Added tests for adding and deleting nodes
*  Adding a wait before clicking connection action buttons
*  Adding tests for node actions
* 👌 Addressing review feedback
* 👌 Addressing PR feedback
2022-12-20 10:33:20 +01:00
Mutasem Aldmour 343f53bf53
feat: Update mapping pill for table/json views (#4965)
* feat: standarize mapping pill

* test: update test
2022-12-20 09:39:38 +01:00
Mutasem Aldmour 90bfdfd577
fix: Redirect home to workflows always (#4968)
fix: redirect to workflows always
2022-12-20 09:39:29 +01:00
Mutasem Aldmour 5b11dc3ff9
fix: Hide trigger tooltip for nodes with static test output (#4970) 2022-12-20 09:39:09 +01:00
OlegIvaniv 445463a605
fix(editor): Correctly display trigger nodes without actions and with related regular node in the "On App Events" category (#4976)
Fix an issue where trigger nodes without action and with related regular node wouldn't show in the "On App Events" category
2022-12-19 17:42:30 +01:00
Jan Oberhauser 89cd7ed33e 🔖 Release n8n-editor-ui@0.174.1 2022-12-19 14:16:40 +00:00
Milorad FIlipović bfc8e68b37
fix(editor): Fix for wrong execution data displayed in executions preview (#4966) 2022-12-19 14:36:25 +01:00
कारतोफ्फेलस्क्रिप्ट™ 2a7cb0192a
ci: Fix build on master (no-changelog) (#4949)
ci: upgrade workflow version in dependencies as well (no-changelog)
2022-12-16 15:27:37 +01:00
Jan Oberhauser 4afcf01ff6 🔖 Release n8n-editor-ui@0.174.0 2022-12-16 13:24:46 +00:00
Jan Oberhauser 26a49a2dbf ⬆️ Set n8n-design-system@0.48.0 on n8n-editor-ui 2022-12-16 13:24:46 +00:00
OlegIvaniv 626879b3a2
fix(editor): Fix an issue where some node actions wouldn't select default params correctly (#4946) 2022-12-16 10:58:06 +01:00
Iván Ovejero 6b83972f6e
fix(editor): Allow mapping onto expression editor with selection range (#4945)
🔥 Remove unneeded guard
2022-12-16 10:06:28 +01:00
Ricardo Duarte 76a3f13458
fix(editor): Fix typo in retry-button option "Retry with original workflow" (#4528)
Fix typo in index name on retry-button

Co-authored-by: Jan Oberhauser <janober@users.noreply.github.com>
2022-12-16 06:22:31 +01:00
Iván Ovejero 4208040495
test(editor): Add e2e tests for inline expression editor (#4936)
🧪 Add tests for inline expression editor
2022-12-15 15:36:28 +01:00
Valya fe0f982437
feat: Hide credentials password values (#4868)
* feat: redact password field values in credentials

* feat: disable expanding password fields

* fix: redacting credentials without a valid type

This only seems to be a thing in testing?
2022-12-15 13:31:06 +00:00
Iván Ovejero 0e4cda5763
refactor: Phase out TSLint in editor-ui (no-changelog) (#4935)
* 🔥 Remove `tslint.json`

* 🔥 Remove TSLint commands

* 🔥 Remove exceptions in `editor-ui`

* 🔥 Remove from `.npmignore`

* 🔥 Remove from `eslint-config`

* 🔥 Remove exception from `design-system`

* 🎨 Prettify

* 📦 Update pnpm-lock

* 🔥 Remove duplicate import

* 🔥 Remove exemption for `no-explicit-any`

* 👕 Inline `no-explicit-any` exemptions
2022-12-15 14:06:00 +01:00
Alex Grozav ac066fc9f3
feat: Add workflow sharing telemetry (#4906)
* feat: Add workflow sharing telemetry

* chore: fix linting issue

* fix: fix telemetry typo
2022-12-15 10:05:54 +02:00
Milorad FIlipović 9956547504
test(editor): Add more tests for workflow actions (no-changelog) (#4931)
*  Added test for importing workflow from URL
*  Added test for importing workflow from file
*  Added test ids for workflow settings elements
*  Added test for changing workflow settings
*  Adding back missing test id for delete node button
2022-12-14 17:13:03 +01:00
Alex Grozav 2964458191
feat: Update workflow overwriting message (#4917)
* feat: Update workflow overwriting message

* fix: remove unused import
2022-12-14 15:50:31 +02:00
Alex Grozav fbcbef20e7
feat(editor): Update user management setup message when sharing is disabled (#4928)
* feat: Update user management setup message when sharing is disabled

* feat: Update messages when sharing license unavailable

* fix: fix linting issue
2022-12-14 15:43:13 +02:00
Iván Ovejero a1259898c0
feat(editor): Inline expression editor (#4814)
* WIP

* 🔥 Remove unneeded watch

*  Further setup

*  Fix import

*  Minor tweaks

* 🔥 Remove logging

* 🎨 Add some styling

* 🎨 More styling changes

* 🐛 Fix wrong marking of stale data

* 🎨 Prevent fx on dragging

* 🔥 Remove logging

*  Refine draggable target offsets

* refactor(editor): Consolidate expression management logic (#4836)

*  Extract `ExpressionFunctionIcon`

*  Simplify syntax

*  Move to mixin

* 🎨 Format

* 📘 Unify types

*  Dedup double brace handler

*  Consolidate resolvable highlighter

* 🎨 Format

*  Consolidate language pack

* ✏️ Add comment

*  Move completions to plugins

*  Partially deduplicate themes

* refactor(editor): Apply styling feedback to inline expression editor (#4846)

* 🎨 Adjust styling for expression parameter input

* 🎨 Style outputs differently

*  Set single line for RLC

* 🎨 Style both openers identically

* 🐛 Prevent defocus on resize

*  Adjust line height

* 🎨 Adjust border with for expression input

*  Fix font family for inline output

*  Set up telemetry

*  Complete telemetry

*  Simplify event source

*  Set monospaced font for inline output

* 🎨 Hide cursor on schema pill drop

* 🧪 Update snapshots

*  Consolidate editor styles

* ✏️ Add tech debt comments

*  Improve naming

*  Improve inside resolvable detection

*  Improve var naming

* 🔥 Remove outdated comment

* 🚚 Move constant to data

* ✏️ Clarify comments

* 🔥 Remove outdated comments

* 🔥 Remove unneeded try-catch

* 🔥 Remove unneeded method

* 🔥 Remove unneeded check

* 🔥 Remove `openExpression` check

* 🔥 Remove unused timeout

* 🔥 Remove commented out sections

*  Use Pinia naming convention

*  Re-evaluate on change of `ndvInputData`

* 🐛 Fix handling of `0` in number-type input

* 🐛 Surface focus and blur for mapping hints

* 🔥 Remove logging

* ✏️ Reword error

*  Change kebab-case to PascalCase

*  Refactor state fields for clarity

*  Support double bracing on selection

* 🎨 More styling

*  Miscellaneous cleanup

*  Disregard error on drop

* 🎨 Fix schema pill styling

* 🎨 More `background` to `background-color` fixes

* 🧪 Update snapshots

* 🎨 Replace non-existing var with white

* 🧪 Update snapshot

* 📦 Integrate `codemirror-lang-n8n-expression`

* 🎨 Fix formatting

* 🧪 Re-update test snapshots

* 🧪 Update selectors for inline editor

* 🔥 Remove unused test ID

* 📘 Add type for `currentNodePaneType`

*  Refactor mixin to util

*  Use `:global`

* 🔥 Remove comment

*  Add watch

*  Change import style

* 👕 Fix lint

*  Refactor preventing blur on resize

* 🔥 Remove comment

* 🧪 Re-update snapshots

* 🎨 Prettify

* 👕 Fix lint

* 🔥 Remove comment

Co-authored-by: Mutasem <mutdmour@gmail.com>
2022-12-14 14:43:02 +01:00
Alex Grozav f73267ffa5
fix: Update permission for showing workflow caller policy (#4916)
* fix: Update permission for showing workflow caller polic

* fix: remove unused store setting
2022-12-14 15:42:21 +02:00
Alex Grozav 990d13d366
feat: Update last credential accessor removal message (no-changelog) (#4925) 2022-12-14 15:31:31 +02:00
Alex Grozav 1bcfb39698
feat: Update credential sharing messages (no-changelog) (#4927)
feat: Update cred sharing messages
2022-12-14 15:25:36 +02:00
Milorad FIlipović 69e9bf082b
test(editor): Add e2e tests for undo/redo (#4904)
*  Added history store and mixin
*  Implemented node position change undo/redo
*  Implemented move nodes bulk command
*  Not clearing the redo stack after pushing the bulk command
* 🔨 Implemented commands using classes
* 🔥 Removed unnecessary interfaces and actions
* 🔥 Removing unused constants
* 🔨 Refactoring classes file
*  Adding eventBus to command obects
*  Added undo/redo support for adding and removing nodes
*  Implemented initial add/remove connections undo support
*  Covering some corner cases with reconnecting nodes
*  Adding undo support for reconnecting nodes
*  Fixing going back and forward between undo and redo
*  Implemented async command revert
*  Preventing push to undo if bulk redo/undo is in progress
*  Handling re-connecting nodes and stopped pushing empty bulk actions to undo stack
*  Handling adding a node between two connected nodes
*  Handling the case of removing multiple connections on the same index. Adding debounce to undo/redo keyboard calls
*  Removing unnecessary timeouts, adding missing awaits, refactoring
*  Resetting history when opening new workflow, fixing incorrect bulk recording when inserting node
* ✔️ Fixing lint error
*  Minor refactoring + some temporary debugging logs
*  Preserving node properties when undoing it's removal, removing some unused repaint code
*  Added undo/redo support for import workflow and node enable/disable
* 🔥 Removing some unused constant
*  Added undo/redo support for renaming nodes
*  Fixing rename history recording
*  Added undo/redo support for duplicating nodes
* 📈 Implemented telemetry events
* 🔨 A bit of refactoring
*  Fixing edgecases in removing connection and moving nodes
*  Handling case of adding duplicate nodes when going back and forward in history
*  Recording connections added directly to store
*  Moving main history reset after wf is opened
* 🔨 Simplifying rename recording
* 📈 Adding NDV telemetry event, updating existing event name case
* 📈 Updating telemetry events
*  Added initial undo/redo tests
*  Fixing duplicate connections on undo/redo
*  Stopping undo events from firing constantly on keydown
*  Added connection test for undo/redo
* 📈 Updated telemetry event for hitting undo in NDV
*  Adding undo support for disabling nodes using keyboard shortcuts
*  Added more tests for adding and deleting nodes undo/redo
*  Preventing adding duplicate connection commands to history
* 📈 Adding connection assertions to delete node tests
*  Clearing redo stack when new change is added
*  Preventing adding connection actions to undo stack while redoing them
* 👌 Addressing PR comments part 1
* 👌 Moving undo logic for disabling nodes to `NodeView`
* 👌 Implemented command comparing logic
*  Fix for not clearing redo stack on every user action
*  Fixing recording when moving nodes
*  Fixing undo for moving connections
*  Fixing tracking new nodes after latest merge
*  Fixing broken bulk delete
*  Added tests for moving nodes
*  Added tests for deleting connections
*  Added tests for disabling nodes
*  Added node rename tests
*  Added tests for duplicating and pasting nodes
*  Added multi-step undo/redo tests
*  Fixing assertion condition
*  Fixing timeout issue between keyboard strokes
* ⬆️ Updating pnpm lock file
*  Waiting for page load to finish before each test
*  Adding proper handling of meta key press
* 🚨 Temporarily disabling slack notifications
*  Adding check before clicking connection actions
*  Removing comments from other undo tests
* 🎨 Fixing a typo
2022-12-14 10:33:44 +01:00
Iván Ovejero 5ca2148c7e
refactor(editor): Apply Prettier (no-changelog) (#4920)
*  Adjust `format` script

* 🔥 Remove exemption for `editor-ui`

* 🎨 Prettify

* 👕 Fix lint
2022-12-14 10:04:10 +01:00
Alex Grozav bcde07e032
feat: Set all resources view as default subview (#4919) 2022-12-14 10:29:35 +02:00
OlegIvaniv 74100d3d5b
fix(editor): Do not show actions dialog for actionless triggers when selected via keyboard (#4911) 2022-12-13 16:47:03 +01:00
Jan Oberhauser 3bca6a98b6 🔖 Release n8n-editor-ui@0.173.1 2022-12-13 13:15:41 +00:00
Csaba Tuncsik 0b6d47086a
fix(editor): Schema view render empty data (#4902)
* fix(editor): Schema view render empty data

* fix(editor): Schema view switch n8n-alert with n8n-info-tip

* Revert "fix(editor): Schema view render empty data"

This reverts commit 0294b5e8 for Alert component

* chore(editor): code styling fix

* fix(editor): Table view empty data hint

* Revert "fix(editor): Table view empty data hint"

This reverts commit d42dabf2c5.
2022-12-13 14:00:20 +01:00
Alex Grozav b4d3f12b51
feat: Update readonly node notice when using foreign credentials (no-changelog) (#4895) 2022-12-13 10:55:31 +02:00
Milorad FIlipović 3fc2d7cc5a
fix(editor): Fix for wrong keycode when shift is pressed (#4898) 2022-12-12 17:39:33 +01:00
Jan Oberhauser 965584460b 🔖 Release n8n-editor-ui@0.173.0 2022-12-12 14:57:04 +00:00
Jan Oberhauser f942e1a0d3 ⬆️ Set n8n-design-system@0.47.0 and n8n-workflow@0.129.0 on n8n-editor-ui 2022-12-12 14:57:03 +00:00
Alex Grozav c013245db7
feat: Add sharing permissions info for workflow sharees (#4892)
* feat: Add sharing permissions info for workflow sharees

* fix: Remove infotip for owner
2022-12-12 14:46:34 +02:00
Alex Grozav 1cce8eaf16
fix(editor): Fix credential sharing issues handler when no matching id or name (#4879)
* fix: fix credential sharing issues handler when no matching id or name

* feat: Show erroring credential name as placeholder when available

* feat: Add (unavailable) descriptor for unavailable credentials
2022-12-12 14:46:10 +02:00
Alex Grozav 74b831b9b7
fix: Update translation for sharing toast (no-changelog) (#4893) 2022-12-12 14:45:45 +02:00
Alex Grozav ca8e85933f
fix: Remove delete sharee prompt except when deleting last cred accessor (no-changelog) (#4894)
* fix: Remove delete sharee prompt except when deleting last cred accessor (no-changelog)

* chore: Remove unused translation
2022-12-12 14:44:29 +02:00
Alex Grozav 7d2e2ee0f7
fix: Remove foreign credentials when copying nodes or duplicating workflow (#4880)
* fix: Remove foreign credentials when copying nodes or duplicating workflow

* chore: fix linting issue
2022-12-12 12:59:16 +02:00