Compare commits

...

36 Commits

Author SHA1 Message Date
d179558d5f 更新 src/i18n/lang/zh-CN.json 2023-10-13 14:18:04 +00:00
eb591fdd3c chore(deps): update dev-dependencies (#3769)
Reviewed-on: vikunja/frontend#3769
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2023-10-13 13:59:06 +00:00
23e1899fce fix(deps): update dependency @github/hotkey to v2.1.1 (#3770)
Reviewed-on: vikunja/frontend#3770
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2023-10-13 13:32:18 +00:00
22968ba639 fix(deps): update dependency pinia to v2.1.7 (#3771)
Reviewed-on: vikunja/frontend#3771
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2023-10-13 13:17:47 +00:00
b345f0ad61 fix(deps): update sentry-javascript monorepo to v7.74.0 (#3772)
Reviewed-on: vikunja/frontend#3772
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2023-10-13 12:27:20 +00:00
Frederick [Bot]
4df34701ab [skip ci] Updated translations via Crowdin 2023-10-13 00:08:52 +00:00
a5f7487bd0 fix(deps): update dependency marked to v9.1.1 (#3768)
Reviewed-on: vikunja/frontend#3768
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2023-10-11 21:42:37 +00:00
ae001c6ca7
fix(user): allow openid users to request their deletion
Resolves https://community.vikunja.io/t/delete-user-not-possible-when-using-oidc/1689/4
2023-10-11 19:07:11 +02:00
f0b340a9c7
feat(task): save currently opened task with control/meta + s 2023-10-11 17:44:17 +02:00
40538df392 fix(deps): update dependency @github/hotkey to v2.1.0 (#3766)
Reviewed-on: vikunja/frontend#3766
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2023-10-11 09:01:48 +00:00
fc17b16c60 chore(deps): update dependency sass to v1.69.2 (#3767)
Reviewed-on: vikunja/frontend#3767
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2023-10-11 07:34:29 +00:00
6c59b4e2d2 fix(deps): update dependency highlight.js to v11.9.0 (#3763)
Reviewed-on: vikunja/frontend#3763
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2023-10-10 19:21:25 +00:00
e8a38ed482 fix(deps): update vueuse to v10.5.0 (#3762)
Reviewed-on: vikunja/frontend#3762
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2023-10-10 18:28:10 +00:00
f5604dcac6 chore(deps): update dependency node to v18.18.1 2023-10-10 16:24:22 +00:00
049c644959 chore(deps): update dev-dependencies (#3761)
Reviewed-on: vikunja/frontend#3761
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2023-10-10 16:23:29 +00:00
07b1e9a6b7
chore: add pr lockdown 2023-10-10 18:02:40 +02:00
7aedf6ee1f chore(deps): update pnpm to v8.9.0 2023-10-09 12:09:54 +00:00
bc9bfe3300 fix(deps): update dependency marked to v9.1.0 (#3760)
Reviewed-on: vikunja/frontend#3760
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2023-10-05 07:06:20 +00:00
c2005c6c71 chore(deps): update dev-dependencies (#3757)
Reviewed-on: vikunja/frontend#3757
Reviewed-by: konrad <k@knt.li>
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2023-10-04 06:48:23 +00:00
d7cbade64e chore(deps): update node.js to v20.8 (#3756)
Reviewed-on: vikunja/frontend#3756
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2023-10-03 14:59:12 +00:00
06b00b77ed fix(deps): update dependency dompurify to v3.0.6 (#3754)
Reviewed-on: vikunja/frontend#3754
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2023-10-03 14:58:26 +00:00
f2392cef7e fix(deps): update dependency vue-router to v4.2.5 (#3755)
Reviewed-on: vikunja/frontend#3755
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2023-10-03 14:19:27 +00:00
e6f2b36d88 fix(deps): update dependency dayjs to v1.11.10 (#3753)
Reviewed-on: vikunja/frontend#3753
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2023-10-03 14:16:01 +00:00
7d2fcd26f2 chore(deps): update lockfile 2023-10-03 13:34:11 +00:00
369e22f224 fix(deps): update dependency ufo to v1.3.1 2023-10-03 13:34:11 +00:00
0ff5b90ebd chore(deps): update lockfile 2023-10-03 12:16:07 +00:00
e89245e42d fix(deps): update dependency @infectoone/vue-ganttastic to v2.2.0 2023-10-03 12:16:07 +00:00
35717a1e29 fix(deps): update dependency @kyvg/vue3-notification to v3 2023-10-03 12:16:07 +00:00
e46cf2fa1b fix(deps): update dependency vue-i18n to v9.5.0 2023-10-03 12:16:07 +00:00
1ad6d5a66b fix(deps): update dependency @intlify/unplugin-vue-i18n to v1 2023-10-03 12:16:07 +00:00
4754bb99f0 fix(deps): update dependency marked to v9 2023-10-03 12:16:07 +00:00
608e99fffc chore(deps): update pnpm to v8.8.0 2023-10-03 12:16:07 +00:00
d6741d19e3 fix(deps): update sentry-javascript monorepo to v7.73.0 2023-10-03 12:16:07 +00:00
ec52be0353 fix(deps): update dependency axios to v1.5.1 2023-10-03 12:16:07 +00:00
2d5ab4f5f0 chore(deps): update dependency node to v18.18.0 2023-10-03 11:45:51 +00:00
a71755e408 feat(gantt): implement dynamic sizing on small date ranges (#3750)
Reviewed-on: vikunja/frontend#3750
Reviewed-by: konrad <k@knt.li>
Co-authored-by: Giacomo Rossetto <jackyman_cs4@live.it>
Co-committed-by: Giacomo Rossetto <jackyman_cs4@live.it>
2023-10-03 11:30:24 +00:00
40 changed files with 999 additions and 920 deletions

View File

@ -42,7 +42,7 @@ steps:
# - .cache
- name: dependencies
image: node:20.7-alpine
image: node:20.8-alpine
pull: always
environment:
PNPM_CACHE_FOLDER: .cache/pnpm
@ -55,7 +55,7 @@ steps:
# - restore-cache
- name: lint
image: node:20.7-alpine
image: node:20.8-alpine
pull: always
environment:
PNPM_CACHE_FOLDER: .cache/pnpm
@ -66,7 +66,7 @@ steps:
- dependencies
- name: build-prod
image: node:20.7-alpine
image: node:20.8-alpine
pull: always
environment:
PNPM_CACHE_FOLDER: .cache/pnpm
@ -77,7 +77,7 @@ steps:
- dependencies
- name: test-unit
image: node:20.7-alpine
image: node:20.8-alpine
pull: always
commands:
- corepack enable && pnpm config set store-dir .cache/pnpm
@ -87,7 +87,7 @@ steps:
- name: typecheck
failure: ignore
image: node:20.7-alpine
image: node:20.8-alpine
pull: always
environment:
PNPM_CACHE_FOLDER: .cache/pnpm
@ -202,7 +202,7 @@ steps:
# - .cache
- name: build
image: node:20.7-alpine
image: node:20.8-alpine
pull: always
environment:
PNPM_CACHE_FOLDER: .cache/pnpm
@ -285,7 +285,7 @@ steps:
# - .cache
- name: build
image: node:20.7-alpine
image: node:20.8-alpine
pull: always
environment:
PNPM_CACHE_FOLDER: .cache/pnpm
@ -532,6 +532,6 @@ steps:
src/i18n/lang/en.json: en.json
---
kind: signature
hmac: 53db9cca5f819e82969d6161c5e921d9988193f60bceacdf1a677dfea71ce6f3
hmac: 3678445f9053754ee4aae3e8888f8275e592711b84f0a1f013da117c9c1f44ce
...

23
.github/workflows/lockdown.yml vendored Normal file
View File

@ -0,0 +1,23 @@
name: 'Repo Lockdown'
on:
pull_request_target:
types: opened
permissions:
issues: write
pull-requests: write
jobs:
action:
runs-on: ubuntu-latest
steps:
- uses: dessant/repo-lockdown@v3
with:
pr-comment: 'Hi! Thank you for your contribution.
This repo is only a mirror and unfortunately we can''t accept PRs made here. Please re-submit your changes to [our Gitea instance](https://kolaente.dev/vikunja/frontend/pulls).
Also check out the [contribution guidelines](https://vikunja.io/docs/development/#pull-requests).
Thank you for your understanding.'

2
.nvmrc
View File

@ -1 +1 @@
18.17.1
18.18.1

View File

@ -3,7 +3,7 @@
# │─││ │││ │ │
# ┘─┘┘─┘┘┘─┘┘─┘
FROM --platform=$BUILDPLATFORM node:20.7-alpine AS builder
FROM --platform=$BUILDPLATFORM node:20.8-alpine AS builder
WORKDIR /build

View File

@ -13,7 +13,7 @@
},
"homepage": "https://vikunja.io/",
"funding": "https://opencollective.com/vikunja",
"packageManager": "pnpm@8.7.4",
"packageManager": "pnpm@8.9.0",
"keywords": [
"todo",
"productivity",
@ -49,42 +49,42 @@
"@fortawesome/free-regular-svg-icons": "6.4.2",
"@fortawesome/free-solid-svg-icons": "6.4.2",
"@fortawesome/vue-fontawesome": "3.0.3",
"@github/hotkey": "2.0.1",
"@infectoone/vue-ganttastic": "2.1.4",
"@intlify/unplugin-vue-i18n": "0.13.0",
"@kyvg/vue3-notification": "2.9.1",
"@sentry/tracing": "7.68.0",
"@sentry/vue": "7.68.0",
"@vueuse/core": "10.4.1",
"@vueuse/router": "10.4.1",
"axios": "1.5.0",
"@github/hotkey": "2.1.1",
"@infectoone/vue-ganttastic": "2.2.0",
"@intlify/unplugin-vue-i18n": "1.4.0",
"@kyvg/vue3-notification": "3.0.2",
"@sentry/tracing": "7.74.0",
"@sentry/vue": "7.74.0",
"@vueuse/core": "10.5.0",
"@vueuse/router": "10.5.0",
"axios": "1.5.1",
"blurhash": "2.0.5",
"bulma-css-variables": "0.9.33",
"camel-case": "4.1.2",
"codemirror": "5.65.15",
"date-fns": "2.30.0",
"dayjs": "1.11.9",
"dompurify": "3.0.5",
"dayjs": "1.11.10",
"dompurify": "3.0.6",
"easymde": "2.18.0",
"fast-deep-equal": "3.1.3",
"flatpickr": "4.6.13",
"flexsearch": "0.7.31",
"floating-vue": "2.0.0-beta.24",
"highlight.js": "11.8.0",
"highlight.js": "11.9.0",
"is-touch-device": "1.0.1",
"klona": "2.0.6",
"lodash.debounce": "4.0.8",
"marked": "5.1.2",
"pinia": "2.1.6",
"marked": "9.1.1",
"pinia": "2.1.7",
"register-service-worker": "1.7.2",
"snake-case": "3.0.4",
"sortablejs": "1.15.0",
"ufo": "1.3.0",
"ufo": "1.3.1",
"vue": "3.3.4",
"vue-advanced-cropper": "2.8.8",
"vue-flatpickr-component": "11.0.3",
"vue-i18n": "9.2.2",
"vue-router": "4.2.4",
"vue-i18n": "9.5.0",
"vue-router": "4.2.5",
"workbox-precaching": "7.0.0",
"zhyswan-vuedraggable": "4.1.3"
},
@ -95,52 +95,52 @@
"@faker-js/faker": "8.1.0",
"@histoire/plugin-screenshot": "0.17.0",
"@histoire/plugin-vue": "0.17.1",
"@rushstack/eslint-patch": "1.5.0",
"@rushstack/eslint-patch": "1.5.1",
"@tsconfig/node18": "18.2.2",
"@types/codemirror": "5.60.10",
"@types/dompurify": "3.0.3",
"@types/flexsearch": "0.7.4",
"@types/is-touch-device": "1.0.0",
"@types/lodash.debounce": "4.0.7",
"@types/marked": "5.0.1",
"@types/node": "18.18.0",
"@types/marked": "5.0.2",
"@types/node": "18.18.5",
"@types/postcss-preset-env": "7.7.0",
"@types/sortablejs": "1.15.3",
"@typescript-eslint/eslint-plugin": "6.7.3",
"@typescript-eslint/parser": "6.7.3",
"@typescript-eslint/eslint-plugin": "6.7.5",
"@typescript-eslint/parser": "6.7.5",
"@vitejs/plugin-legacy": "4.1.1",
"@vitejs/plugin-vue": "4.3.4",
"@vitejs/plugin-vue": "4.4.0",
"@vue/eslint-config-typescript": "11.0.3",
"@vue/test-utils": "2.4.1",
"@vue/tsconfig": "0.4.0",
"autoprefixer": "10.4.16",
"browserslist": "4.22.0",
"caniuse-lite": "1.0.30001540",
"browserslist": "4.22.1",
"caniuse-lite": "1.0.30001547",
"css-has-pseudo": "6.0.0",
"csstype": "3.1.2",
"cypress": "12.17.4",
"esbuild": "0.19.3",
"eslint": "8.50.0",
"esbuild": "0.19.4",
"eslint": "8.51.0",
"eslint-plugin-vue": "9.17.0",
"happy-dom": "10.11.2",
"histoire": "0.17.2",
"postcss": "8.4.30",
"postcss": "8.4.31",
"postcss-easing-gradients": "3.0.1",
"postcss-easings": "4.0.0",
"postcss-focus-within": "8.0.0",
"postcss-preset-env": "9.1.4",
"rollup": "3.29.3",
"postcss-preset-env": "9.2.0",
"rollup": "3.29.4",
"rollup-plugin-visualizer": "5.9.2",
"sass": "1.68.0",
"sass": "1.69.3",
"start-server-and-test": "2.0.1",
"typescript": "5.2.2",
"vite": "4.4.9",
"vite": "4.4.11",
"vite-plugin-inject-preload": "1.3.3",
"vite-plugin-pwa": "0.16.5",
"vite-plugin-sentry": "1.3.0",
"vite-svg-loader": "4.0.0",
"vitest": "0.34.5",
"vue-tsc": "1.8.15",
"vitest": "0.34.6",
"vue-tsc": "1.8.19",
"wait-on": "7.0.1",
"workbox-cli": "7.0.0"
},

File diff suppressed because it is too large Load Diff

View File

@ -3,7 +3,7 @@
class="menu-show-button"
@click="baseStore.toggleMenu()"
@shortkey="() => baseStore.toggleMenu()"
v-shortcut="'Control+e'"
v-shortcut="'Mod+e'"
:title="$t('keyboardShortcuts.toggleMenu')"
:aria-label="menuActive ? $t('misc.hideMenu') : $t('misc.showMenu')"
/>

View File

@ -5,13 +5,12 @@ import {onBeforeUnmount, onMounted} from 'vue'
import {eventToHotkeyString} from '@github/hotkey'
const baseStore = useBaseStore()
const GLOBAL_HOTKEY = 'Control+k'
// See https://github.com/github/hotkey/discussions/85#discussioncomment-5214660
function openQuickActionsViaHotkey(event) {
const hotkeyString = eventToHotkeyString(event)
if (!hotkeyString) return
if (hotkeyString !== GLOBAL_HOTKEY) return
if (hotkeyString !== 'Control+k' && hotkeyString !== 'Meta+k') return
event.preventDefault()
openQuickActions()

View File

@ -152,6 +152,10 @@ export const KEYBOARD_SHORTCUTS : ShortcutGroup[] = [
title: 'keyboardShortcuts.task.favorite',
keys: ['s'],
},
{
title: 'keyboardShortcuts.task.save',
keys: [ctrl, 's'],
},
],
},
]

View File

@ -3,7 +3,7 @@
v-if="props.isLoading && !ganttBars.length || dayjsLanguageLoading"
class="gantt-container"
/>
<div class="gantt-container" v-else>
<div ref="ganttContainer" class="gantt-container" v-else>
<GGanttChart
:date-format="DAYJS_ISO_DATE_FORMAT"
:chart-start="isoToKebabDate(filters.dateFrom)"
@ -14,7 +14,7 @@
:grid="true"
@dragend-bar="updateGanttTask"
@dblclick-bar="openTask"
:width="ganttChartWidth + 'px'"
:width="ganttChartWidth"
>
<template #timeunit="{value, date}">
<div
@ -85,6 +85,8 @@ const dayjsLanguageLoading = ref(false)
// const dayjsLanguageLoading = useDayjsLanguageSync(dayjs)
extendDayjs()
const ganttContainer = ref(null)
const router = useRouter()
const dateFromDate = computed(() => new Date(new Date(filters.value.dateFrom).setHours(0,0,0,0)))
@ -92,9 +94,15 @@ const dateToDate = computed(() => new Date(new Date(filters.value.dateTo).setHou
const DAY_WIDTH_PIXELS = 30
const ganttChartWidth = computed(() => {
const dateDiff = Math.floor((dateToDate.value.valueOf() - dateFromDate.value.valueOf()) / MILLISECONDS_A_DAY)
return dateDiff * DAY_WIDTH_PIXELS
const ganttContainerReference = ganttContainer?.value
const ganttContainerWidth = ganttContainerReference ? (ganttContainerReference['clientWidth'] ?? 0) : 0
const dateDiff = Math.floor((dateToDate.value.valueOf() - dateFromDate.value.valueOf()) / MILLISECONDS_A_DAY)
const calculatedWidth = dateDiff * DAY_WIDTH_PIXELS
return (calculatedWidth > ganttContainerWidth) ? calculatedWidth + 'px' : '100%'
})
const ganttBars = ref<GanttBarObject[][]>([])

View File

@ -1,15 +1,11 @@
import type {Directive} from 'vue'
import {install, uninstall} from '@github/hotkey'
import {isAppleDevice} from '@/helpers/isAppleDevice'
const directive = <Directive<HTMLElement,string>>{
mounted(el, {value}) {
if(value === '') {
return
}
if (isAppleDevice() && value.includes('Control')) {
value = value.replace('Control', 'Meta')
}
install(el, value)
},
beforeUnmount(el) {

View File

@ -176,6 +176,7 @@
"title": "Delete your Vikunja Account",
"text1": "The deletion of your account is permanent and cannot be undone. We will delete all your projects, tasks and everything associated with it.",
"text2": "To proceed, please enter your password. You will receive an email with further instructions.",
"text3": "To proceed, please press the button below. You will receive an email with further instructions.",
"confirm": "Delete my account",
"requestSuccess": "The request was successful. You'll receive an email with further instructions.",
"passwordRequired": "Please enter your password.",
@ -183,6 +184,7 @@
"scheduled": "We will delete your Vikunja account at {date} ({dateSince}).",
"scheduledCancel": "To cancel the deletion of your account, click here.",
"scheduledCancelText": "To cancel the deletion of your account, please enter your password below:",
"scheduledCancelButton": "To cancel the deletion of your account, please press the button below:",
"scheduledCancelConfirm": "Cancel the deletion of my account",
"scheduledCancelSuccess": "We will not delete your account."
},
@ -880,7 +882,8 @@
"description": "Toggle editing of the task description",
"delete": "Delete this task",
"priority": "Change the priority of this task",
"favorite": "Mark this task as favorite / unfavorite"
"favorite": "Mark this task as favorite / unfavorite",
"save": "Save the current task"
},
"project": {
"title": "Project Views",

View File

@ -176,6 +176,7 @@
"title": "Smazat svůj účet",
"text1": "The deletion of your account is permanent and cannot be undone. We will delete all your projects, tasks and everything associated with it.",
"text2": "Chcete-li pokračovat, zadejte své heslo. Obdržíte e-mail s dalšími pokyny.",
"text3": "To proceed, please press the button below. You will receive an email with further instructions.",
"confirm": "Smazat můj účet",
"requestSuccess": "Požadavek byl úspěšný. Obdržíte e-mail s dalšími pokyny.",
"passwordRequired": "Prosím zadejte Vaše heslo.",
@ -183,6 +184,7 @@
"scheduled": "Váš Vikunja účet odstraníme do {date} ({dateSince}).",
"scheduledCancel": "Chcete-li zrušit smazání vašeho účtu, klikněte zde.",
"scheduledCancelText": "Chcete-li zrušit smazání vašeho účtu, zadejte prosím své heslo níže:",
"scheduledCancelButton": "To cancel the deletion of your account, please press the button below:",
"scheduledCancelConfirm": "Zrušit smazání mého účtu",
"scheduledCancelSuccess": "Váš účet nebude smazán."
},
@ -880,7 +882,8 @@
"description": "Přepnout úpravy popisu úkolu",
"delete": "Delete this task",
"priority": "Change the priority of this task",
"favorite": "Mark this task as favorite / unfavorite"
"favorite": "Mark this task as favorite / unfavorite",
"save": "Save the current task"
},
"project": {
"title": "Project Views",

View File

@ -176,6 +176,7 @@
"title": "Slet din Vikunja konto",
"text1": "The deletion of your account is permanent and cannot be undone. We will delete all your projects, tasks and everything associated with it.",
"text2": "For at fortsætte, skal du indtaste din adgangskode. Du vil modtage en e-mail med yderligere instruktioner.",
"text3": "To proceed, please press the button below. You will receive an email with further instructions.",
"confirm": "Slet min konto",
"requestSuccess": "Anmodningen blev gennemført. Du vil modtage en e-mail med yderligere instruktioner.",
"passwordRequired": "Indtast venligst din adgangskode.",
@ -183,6 +184,7 @@
"scheduled": "Vi sletter din Vikunja-konto {date} ({dateSince}).",
"scheduledCancel": "Klik her for at annullere sletningen af din konto.",
"scheduledCancelText": "For at annullere sletningen af din konto, skal du indtaste din adgangskode nedenfor:",
"scheduledCancelButton": "To cancel the deletion of your account, please press the button below:",
"scheduledCancelConfirm": "Annuller sletningen af min konto",
"scheduledCancelSuccess": "Vi sletter ikke din konto."
},
@ -880,7 +882,8 @@
"description": "Slå redigering af opgavebeskrivelse til/fra",
"delete": "Delete this task",
"priority": "Change the priority of this task",
"favorite": "Mark this task as favorite / unfavorite"
"favorite": "Mark this task as favorite / unfavorite",
"save": "Save the current task"
},
"project": {
"title": "Project Views",

View File

@ -176,6 +176,7 @@
"title": "Lösche deinen Vikunja-Account",
"text1": "Das Löschen deines Accounts ist dauerhaft und unwiderruflich. Alle Projekte, Aufgaben und zugehörige Daten werden gelöscht.",
"text2": "Zum Fortfahren gib bitte dein Passwort ein. Du erhältst eine E-Mail mit weiteren Anweisungen.",
"text3": "To proceed, please press the button below. You will receive an email with further instructions.",
"confirm": "Meinen Account löschen",
"requestSuccess": "Die Anfrage war erfolgreich. Du erhältst eine E-Mail mit weiteren Anweisungen.",
"passwordRequired": "Bitte gib dein Passwort ein.",
@ -183,6 +184,7 @@
"scheduled": "Wir werden deinen Vikunja-Account am {date} ({dateSince}) löschen.",
"scheduledCancel": "Um die Löschung deines Accounts abzubrechen, klicke hier.",
"scheduledCancelText": "Um die Löschung deines Accounts abzubrechen, gib bitte dein Passwort unten ein:",
"scheduledCancelButton": "To cancel the deletion of your account, please press the button below:",
"scheduledCancelConfirm": "Löschung meines Accounts abbrechen",
"scheduledCancelSuccess": "Wir werden deinen Account nicht löschen."
},
@ -880,7 +882,8 @@
"description": "Aufgabenbeschreibung bearbeiten",
"delete": "Diese Aufgabe löschen",
"priority": "Die Priorität dieser Aufgabe ändern",
"favorite": "Diese Aufgabe zum Favoriten machen / von Favoriten entfernen"
"favorite": "Diese Aufgabe zum Favoriten machen / von Favoriten entfernen",
"save": "Save the current task"
},
"project": {
"title": "Projektansichten",

View File

@ -176,6 +176,7 @@
"title": "Lösche deinen Vikunja-Account",
"text1": "Das Löschen deines Accounts ist dauerhaft und unwiderruflich. Alle Projekte, Aufgaben und zugehörige Daten werden gelöscht.",
"text2": "Zum Fortfahren gib bitte dein Passwort ein. Du erhältst eine E-Mail mit weiteren Anweisungen.",
"text3": "To proceed, please press the button below. You will receive an email with further instructions.",
"confirm": "Meinen Account löschen",
"requestSuccess": "Die Anfrage war erfolgreich. Du erhältst eine E-Mail mit weiteren Anweisungen.",
"passwordRequired": "Bitte gib dein Passwort ein.",
@ -183,6 +184,7 @@
"scheduled": "Wir werden deinen Vikunja-Account am {date} ({dateSince}) löschen.",
"scheduledCancel": "Um die Löschung deines Accounts abzubrechen, klicke hier.",
"scheduledCancelText": "Um die Löschung deines Accounts abzubrechen, gib bitte dein Passwort unten ein:",
"scheduledCancelButton": "To cancel the deletion of your account, please press the button below:",
"scheduledCancelConfirm": "Löschung meines Accounts abbrechen",
"scheduledCancelSuccess": "Wir werden deinen Account nicht löschen."
},
@ -880,7 +882,8 @@
"description": "Aufgabenbeschreibung bearbeiten",
"delete": "Diese Aufgabe löschen",
"priority": "Die Priorität dieser Aufgabe ändern",
"favorite": "Diese Aufgabe zum Favoriten machen / von Favoriten entfernen"
"favorite": "Diese Aufgabe zum Favoriten machen / von Favoriten entfernen",
"save": "Save the current task"
},
"project": {
"title": "Projektansichten",

View File

@ -176,6 +176,7 @@
"title": "Delete your Vikunja Account",
"text1": "The deletion of your account is permanent and cannot be undone. We will delete all your projects, tasks and everything associated with it.",
"text2": "To proceed, please enter your password. You will receive an email with further instructions.",
"text3": "To proceed, please press the button below. You will receive an email with further instructions.",
"confirm": "Delete my account",
"requestSuccess": "The request was successful. You'll receive an email with further instructions.",
"passwordRequired": "Please enter your password.",
@ -183,6 +184,7 @@
"scheduled": "We will delete your Vikunja account at {date} ({dateSince}).",
"scheduledCancel": "To cancel the deletion of your account, click here.",
"scheduledCancelText": "To cancel the deletion of your account, please enter your password below:",
"scheduledCancelButton": "To cancel the deletion of your account, please press the button below:",
"scheduledCancelConfirm": "Cancel the deletion of my account",
"scheduledCancelSuccess": "We will not delete your account."
},
@ -883,7 +885,8 @@
"description": "Toggle editing of the task description",
"delete": "Delete this task",
"priority": "Change the priority of this task",
"favorite": "Mark this task as favorite / unfavorite"
"favorite": "Mark this task as favorite / unfavorite",
"save": "Save the current task"
},
"project": {
"title": "Project Views",

View File

@ -176,6 +176,7 @@
"title": "Delete your Vikunja Account",
"text1": "The deletion of your account is permanent and cannot be undone. We will delete all your projects, tasks and everything associated with it.",
"text2": "To proceed, please enter your password. You will receive an email with further instructions.",
"text3": "To proceed, please press the button below. You will receive an email with further instructions.",
"confirm": "Delete my account",
"requestSuccess": "The request was successful. You'll receive an email with further instructions.",
"passwordRequired": "Please enter your password.",
@ -183,6 +184,7 @@
"scheduled": "We will delete your Vikunja account at {date} ({dateSince}).",
"scheduledCancel": "To cancel the deletion of your account, click here.",
"scheduledCancelText": "To cancel the deletion of your account, please enter your password below:",
"scheduledCancelButton": "To cancel the deletion of your account, please press the button below:",
"scheduledCancelConfirm": "Cancel the deletion of my account",
"scheduledCancelSuccess": "We will not delete your account."
},
@ -880,7 +882,8 @@
"description": "Toggle editing of the task description",
"delete": "Delete this task",
"priority": "Change the priority of this task",
"favorite": "Mark this task as favorite / unfavorite"
"favorite": "Mark this task as favorite / unfavorite",
"save": "Save the current task"
},
"project": {
"title": "Project Views",

View File

@ -176,6 +176,7 @@
"title": "Eliminar tu Cuenta de Vikunja",
"text1": "El borrado de tu cuenta es permanente y no puede deshacerse. Borraremos todos tus proyectos, tareas y todo lo que esté asociado con ellos.",
"text2": "Para continuar, por favor, introduce tu contraseña. Recibirás un correo electrónico con más instrucciones.",
"text3": "To proceed, please press the button below. You will receive an email with further instructions.",
"confirm": "Eliminar mi cuenta",
"requestSuccess": "La solicitud ha sido exitosa. Recibirás un correo electrónico con más instrucciones.",
"passwordRequired": "Por favor, introduce tu contraseña.",
@ -183,6 +184,7 @@
"scheduled": "Eliminaremos tu cuenta de Vikunja en {date} ({dateSince}).",
"scheduledCancel": "Para cancelar la eliminación de tu cuenta, haz clic aquí.",
"scheduledCancelText": "Para cancelar la eliminación de tu cuenta, por favor, introduce tu contraseña a continuación:",
"scheduledCancelButton": "To cancel the deletion of your account, please press the button below:",
"scheduledCancelConfirm": "Cancelar la eliminación de mi cuenta",
"scheduledCancelSuccess": "No eliminaremos tu cuenta."
},
@ -880,7 +882,8 @@
"description": "Editar la descripción de la tarea",
"delete": "Eliminar esta tarea",
"priority": "Cambiar la prioridad de esta tarea",
"favorite": "Marcar esta tarea como favorita / no favorita"
"favorite": "Marcar esta tarea como favorita / no favorita",
"save": "Save the current task"
},
"project": {
"title": "Vistas de proyecto",

View File

@ -176,6 +176,7 @@
"title": "Supprimer votre compte Vikunja",
"text1": "La suppression de votre compte est définitive et ne peut pas être annulée. Nous supprimerons tous vos projets, tâches et tout ce qui y est associé.",
"text2": "Pour continuer, saisissez votre mot de passe. Vous recevrez un courriel contenant les instructions à suivre.",
"text3": "To proceed, please press the button below. You will receive an email with further instructions.",
"confirm": "Supprimer mon compte",
"requestSuccess": "La requête a abouti. Vous recevrez un courriel avec des instructions à suivre.",
"passwordRequired": "Saisissez votre mot de passe.",
@ -183,6 +184,7 @@
"scheduled": "Nous allons supprimer votre compte Vikunja le {date} ({dateSince}).",
"scheduledCancel": "Pour annuler la suppression de votre compte, cliquez ici.",
"scheduledCancelText": "Pour annuler la suppression de votre compte, saisissez votre mot de passe ci-dessous :",
"scheduledCancelButton": "To cancel the deletion of your account, please press the button below:",
"scheduledCancelConfirm": "Annuler la suppression de mon compte",
"scheduledCancelSuccess": "Nous ne supprimerons pas votre compte."
},
@ -880,7 +882,8 @@
"description": "Activer ou désactiver la modification de la description de tâche",
"delete": "Supprimer cette tâche",
"priority": "Changer la priorité de cette tâche",
"favorite": "Marquer cette tâche comme favorite ou non"
"favorite": "Marquer cette tâche comme favorite ou non",
"save": "Save the current task"
},
"project": {
"title": "Vues du projet",

View File

@ -176,6 +176,7 @@
"title": "Törölje Vikunja fiókját",
"text1": "Fiókjának törlése végleges, és nem vonható vissza. Töröljük az összes projektjét, feladatát és minden, ami ehhez kapcsolódik.",
"text2": "A folytatáshoz adja meg jelszavát. Kapni fog egy e-mailt a további utasításokkal.",
"text3": "To proceed, please press the button below. You will receive an email with further instructions.",
"confirm": "Fiókom törlése",
"requestSuccess": "A kérés sikeres volt. Kapni fog egy e-mailt a további utasításokkal.",
"passwordRequired": "Kérjük, írja be jelszavát.",
@ -183,6 +184,7 @@
"scheduled": "Vikunja fiókját a következő időpontban töröljük: {date} ({dateSince}).",
"scheduledCancel": "A fiók törlésének megszakításához kattintson ide.",
"scheduledCancelText": "Fiókja törlésének megszakításához adja meg jelszavát alább:",
"scheduledCancelButton": "To cancel the deletion of your account, please press the button below:",
"scheduledCancelConfirm": "Fiókom törlésének megszakítása",
"scheduledCancelSuccess": "Fiókját nem töröljük."
},
@ -880,7 +882,8 @@
"description": "A feladatleírás szerkesztésének váltása",
"delete": "Feladat törlése",
"priority": "Módosítsa ennek a feladatnak a prioritását",
"favorite": "Jelölje meg ezt a feladatot kedvencként / nem kedvencként"
"favorite": "Jelölje meg ezt a feladatot kedvencként / nem kedvencként",
"save": "Save the current task"
},
"project": {
"title": "Projektnézetek",

View File

@ -176,6 +176,7 @@
"title": "Elimina il tuo Account Vikunja",
"text1": "The deletion of your account is permanent and cannot be undone. We will delete all your projects, tasks and everything associated with it.",
"text2": "Per continuare, inserisci la tua password. Riceverai un'e-mail con ulteriori istruzioni.",
"text3": "To proceed, please press the button below. You will receive an email with further instructions.",
"confirm": "Elimina il mio profilo",
"requestSuccess": "Richiesta riuscita. Riceverai un'e-mail con ulteriori istruzioni.",
"passwordRequired": "Inserisci la tua password.",
@ -183,6 +184,7 @@
"scheduled": "Elimineremo il tuo account Vikunja il {date} ({dateSince}).",
"scheduledCancel": "Per annullare l'eliminazione del tuo account, clicca qui.",
"scheduledCancelText": "Per annullare l'eliminazione del tuo account, inserisci la password qui sotto:",
"scheduledCancelButton": "To cancel the deletion of your account, please press the button below:",
"scheduledCancelConfirm": "Annulla l'eliminazione del mio account",
"scheduledCancelSuccess": "Non elimineremo il tuo account."
},
@ -880,7 +882,8 @@
"description": "Attiva/Disattiva modifica della descrizione dell'attività",
"delete": "Elimina questa attività",
"priority": "Modifica la priorità di questa attività",
"favorite": "Segna questa attività come preferita o non preferita"
"favorite": "Segna questa attività come preferita o non preferita",
"save": "Save the current task"
},
"project": {
"title": "Project Views",

View File

@ -176,6 +176,7 @@
"title": "Vikunjaアカウントの削除",
"text1": "アカウントの削除は永久的なものであり、元に戻すことはできません。あなたのプロジェクト、タスク、それらに関連するすべてのものを削除します。",
"text2": "続行するにはパスワードを入力してください。詳しい案内の記載したメールを送信します。",
"text3": "To proceed, please press the button below. You will receive an email with further instructions.",
"confirm": "アカウントの削除",
"requestSuccess": "リクエストは成功しました。詳しい案内はメールでお知らせします。",
"passwordRequired": "パスワードを入力してください。",
@ -183,6 +184,7 @@
"scheduled": "{date} ({dateSince}) にVikunjaアカウントは削除されます。",
"scheduledCancel": "アカウントの削除を取り消す場合はこちらをご覧ください。",
"scheduledCancelText": "アカウントの削除を取り消すにはパスワードを入力してください:",
"scheduledCancelButton": "To cancel the deletion of your account, please press the button below:",
"scheduledCancelConfirm": "アカウント削除の取り消し",
"scheduledCancelSuccess": "アカウント削除は行われません。"
},
@ -880,7 +882,8 @@
"description": "タスクの説明を編集",
"delete": "タスクを削除",
"priority": "タスクの優先度を設定",
"favorite": "タスクをお気に入りに追加/削除"
"favorite": "タスクをお気に入りに追加/削除",
"save": "Save the current task"
},
"project": {
"title": "プロジェクト",

View File

@ -176,6 +176,7 @@
"title": "계정 삭제",
"text1": "The deletion of your account is permanent and cannot be undone. We will delete all your projects, tasks and everything associated with it.",
"text2": "To proceed, please enter your password. You will receive an email with further instructions.",
"text3": "To proceed, please press the button below. You will receive an email with further instructions.",
"confirm": "계정을 삭제하시겠습니까?",
"requestSuccess": "The request was successful. You'll receive an email with further instructions.",
"passwordRequired": "비밀번호를 입력하십시오.",
@ -183,6 +184,7 @@
"scheduled": "We will delete your Vikunja account at {date} ({dateSince}).",
"scheduledCancel": "To cancel the deletion of your account, click here.",
"scheduledCancelText": "To cancel the deletion of your account, please enter your password below:",
"scheduledCancelButton": "To cancel the deletion of your account, please press the button below:",
"scheduledCancelConfirm": "Cancel the deletion of my account",
"scheduledCancelSuccess": "We will not delete your account."
},
@ -880,7 +882,8 @@
"description": "Toggle editing of the task description",
"delete": "Delete this task",
"priority": "Change the priority of this task",
"favorite": "Mark this task as favorite / unfavorite"
"favorite": "Mark this task as favorite / unfavorite",
"save": "Save the current task"
},
"project": {
"title": "Project Views",

View File

@ -176,6 +176,7 @@
"title": "Verwijder je Vikunja account",
"text1": "The deletion of your account is permanent and cannot be undone. We will delete all your projects, tasks and everything associated with it.",
"text2": "Graag je wachtwoord invullen om verder te gaan. Je zult een e-mail ontvangen met verdere instructies.",
"text3": "To proceed, please press the button below. You will receive an email with further instructions.",
"confirm": "Verwijder mijn account",
"requestSuccess": "Het verzoek was succesvol. Je ontvangt een e-mail met verdere instructies.",
"passwordRequired": "Voer alsjeblieft je wachtwoord in.",
@ -183,6 +184,7 @@
"scheduled": "We zullen je Vikunja account op {date} ({dateSince}) verwijderen.",
"scheduledCancel": "Klik hier om de verwijdering van je account te annuleren.",
"scheduledCancelText": "To cancel the deletion of your account, please enter your password below:",
"scheduledCancelButton": "To cancel the deletion of your account, please press the button below:",
"scheduledCancelConfirm": "Annuleer de verwijdering van mijn account",
"scheduledCancelSuccess": "We zullen je account niet verwijderen."
},
@ -880,7 +882,8 @@
"description": "Toggle editing of the task description",
"delete": "Delete this task",
"priority": "Change the priority of this task",
"favorite": "Mark this task as favorite / unfavorite"
"favorite": "Mark this task as favorite / unfavorite",
"save": "Save the current task"
},
"project": {
"title": "Project Views",

View File

@ -176,6 +176,7 @@
"title": "Slett kontoen din",
"text1": "The deletion of your account is permanent and cannot be undone. We will delete all your projects, tasks and everything associated with it.",
"text2": "For å fortsette, skriv inn passordet ditt. Du vil motta en e-post med ytterligere instruksjoner.",
"text3": "To proceed, please press the button below. You will receive an email with further instructions.",
"confirm": "Slett min konto",
"requestSuccess": "Forespørselen var vellykket. Du vil motta en e-post med ytterligere instruksjoner.",
"passwordRequired": "Skriv inn ditt passord.",
@ -183,6 +184,7 @@
"scheduled": "Vi vil slette din Vikunja konto den {date} ({dateSince}).",
"scheduledCancel": "For å avbryte slettingen av kontoen din, klikk her.",
"scheduledCancelText": "For å avbryte slettingen av kontoen din, skriv inn passordet under:",
"scheduledCancelButton": "To cancel the deletion of your account, please press the button below:",
"scheduledCancelConfirm": "Avbryt slettingen av kontoen min",
"scheduledCancelSuccess": "Vi vil ikke slette din konto."
},
@ -880,7 +882,8 @@
"description": "Veksle redigering av oppgavebeskrivelsen",
"delete": "Delete this task",
"priority": "Change the priority of this task",
"favorite": "Mark this task as favorite / unfavorite"
"favorite": "Mark this task as favorite / unfavorite",
"save": "Save the current task"
},
"project": {
"title": "Prosjektvisning",

View File

@ -176,6 +176,7 @@
"title": "Usuń swoje konto Vikunja",
"text1": "The deletion of your account is permanent and cannot be undone. We will delete all your projects, tasks and everything associated with it.",
"text2": "Aby kontynuować, wprowadź swoje hasło. Otrzymasz wiadomość e-mail z dalszymi instrukcjami.",
"text3": "To proceed, please press the button below. You will receive an email with further instructions.",
"confirm": "Usuń moje konto",
"requestSuccess": "Żądanie powiodło się. Otrzymasz wiadomość e-mail z dalszymi instrukcjami.",
"passwordRequired": "Wprowadź hasło.",
@ -183,6 +184,7 @@
"scheduled": "Twoje konto Vikunja zostanie usunięte w dniu {date} ({dateSince}).",
"scheduledCancel": "Aby anulować usunięcie konta, kliknij tutaj.",
"scheduledCancelText": "Aby anulować usunięcie konta, wprowadź poniżej swoje hasło:",
"scheduledCancelButton": "To cancel the deletion of your account, please press the button below:",
"scheduledCancelConfirm": "Anuluj usunięcie mojego konta",
"scheduledCancelSuccess": "Nie usuniemy Twojego konta."
},
@ -880,7 +882,8 @@
"description": "Toggle editing of the task description",
"delete": "Delete this task",
"priority": "Change the priority of this task",
"favorite": "Mark this task as favorite / unfavorite"
"favorite": "Mark this task as favorite / unfavorite",
"save": "Save the current task"
},
"project": {
"title": "Project Views",

View File

@ -176,6 +176,7 @@
"title": "Delete your Vikunja Account",
"text1": "The deletion of your account is permanent and cannot be undone. We will delete all your projects, tasks and everything associated with it.",
"text2": "To proceed, please enter your password. You will receive an email with further instructions.",
"text3": "To proceed, please press the button below. You will receive an email with further instructions.",
"confirm": "Delete my account",
"requestSuccess": "The request was successful. You'll receive an email with further instructions.",
"passwordRequired": "Please enter your password.",
@ -183,6 +184,7 @@
"scheduled": "We will delete your Vikunja account at {date} ({dateSince}).",
"scheduledCancel": "To cancel the deletion of your account, click here.",
"scheduledCancelText": "To cancel the deletion of your account, please enter your password below:",
"scheduledCancelButton": "To cancel the deletion of your account, please press the button below:",
"scheduledCancelConfirm": "Cancel the deletion of my account",
"scheduledCancelSuccess": "We will not delete your account."
},
@ -880,7 +882,8 @@
"description": "Toggle editing of the task description",
"delete": "Delete this task",
"priority": "Change the priority of this task",
"favorite": "Mark this task as favorite / unfavorite"
"favorite": "Mark this task as favorite / unfavorite",
"save": "Save the current task"
},
"project": {
"title": "Project Views",

View File

@ -176,6 +176,7 @@
"title": "Eliminar a tua conta Vikunja",
"text1": "A eliminação da tua conta é permanente e não pode ser revertida. Vão ser eliminados todos os teus projetos, tarefas e tudo o que lhes está associado.",
"text2": "Para prosseguires, introduz por favor a tua palavra-passe. Receberás um e-mail com mais instruções.",
"text3": "To proceed, please press the button below. You will receive an email with further instructions.",
"confirm": "Eliminar a minha conta",
"requestSuccess": "A solicitação foi bem sucedida. Receberás um e-mail com mais instruções.",
"passwordRequired": "Por favor, insere a tua palavra-passe.",
@ -183,6 +184,7 @@
"scheduled": "Vamos eliminar a tua conta no Vikunja em {date} ({dateSince}).",
"scheduledCancel": "Para cancelar a eliminação da tua conta, clica aqui.",
"scheduledCancelText": "Para cancelares a eliminação da tua conta, introduz a tua palavra-passe abaixo:",
"scheduledCancelButton": "To cancel the deletion of your account, please press the button below:",
"scheduledCancelConfirm": "Cancelar a eliminação da minha conta",
"scheduledCancelSuccess": "Não vamos apagar a tua conta."
},
@ -880,7 +882,8 @@
"description": "Alternar edição da descrição da tarefa",
"delete": "Eliminar esta tarefa",
"priority": "Alterar a prioridade desta tarefa",
"favorite": "Marcar / Desmarcar esta tarefa como favorita"
"favorite": "Marcar / Desmarcar esta tarefa como favorita",
"save": "Save the current task"
},
"project": {
"title": "Vista do Projeto",

View File

@ -176,6 +176,7 @@
"title": "Delete your Vikunja Account",
"text1": "The deletion of your account is permanent and cannot be undone. We will delete all your projects, tasks and everything associated with it.",
"text2": "To proceed, please enter your password. You will receive an email with further instructions.",
"text3": "To proceed, please press the button below. You will receive an email with further instructions.",
"confirm": "Delete my account",
"requestSuccess": "The request was successful. You'll receive an email with further instructions.",
"passwordRequired": "Please enter your password.",
@ -183,6 +184,7 @@
"scheduled": "We will delete your Vikunja account at {date} ({dateSince}).",
"scheduledCancel": "To cancel the deletion of your account, click here.",
"scheduledCancelText": "To cancel the deletion of your account, please enter your password below:",
"scheduledCancelButton": "To cancel the deletion of your account, please press the button below:",
"scheduledCancelConfirm": "Cancel the deletion of my account",
"scheduledCancelSuccess": "We will not delete your account."
},
@ -880,7 +882,8 @@
"description": "Toggle editing of the task description",
"delete": "Delete this task",
"priority": "Change the priority of this task",
"favorite": "Mark this task as favorite / unfavorite"
"favorite": "Mark this task as favorite / unfavorite",
"save": "Save the current task"
},
"project": {
"title": "Project Views",

View File

@ -176,6 +176,7 @@
"title": "Удалить свой аккаунт VIkunja",
"text1": "Удаление аккаунта необратимо. Мы удалим все ваши проекты, задачи и всё связанное с ними.",
"text2": "Для продолжения введите свой пароль. На почту будет отправлено письмо с дальнейшими инструкциями.",
"text3": "To proceed, please press the button below. You will receive an email with further instructions.",
"confirm": "Удалить мой аккаунт",
"requestSuccess": "Запрос успешно выполнен. На почту будет отправлено письмо с дальнейшими инструкциями.",
"passwordRequired": "Введите свой пароль.",
@ -183,6 +184,7 @@
"scheduled": "Мы удалим ваш аккаунт Vikunja {date} ({dateSince}).",
"scheduledCancel": "Что отменить удаление аккаунта, нажмите сюда.",
"scheduledCancelText": "Чтобы отменить удаление аккаунта, введите свой пароль ниже:",
"scheduledCancelButton": "To cancel the deletion of your account, please press the button below:",
"scheduledCancelConfirm": "Отменить удаление моего аккаунта",
"scheduledCancelSuccess": "Мы не будем удалять ваш аккаунт."
},
@ -880,7 +882,8 @@
"description": "Включить изменение описания задачи",
"delete": "Удалить задачу",
"priority": "Изменить приоритет задачи",
"favorite": "Mark this task as favorite / unfavorite"
"favorite": "Mark this task as favorite / unfavorite",
"save": "Save the current task"
},
"project": {
"title": "Просмотр проекта",

View File

@ -176,6 +176,7 @@
"title": "Delete your Vikunja Account",
"text1": "The deletion of your account is permanent and cannot be undone. We will delete all your projects, tasks and everything associated with it.",
"text2": "To proceed, please enter your password. You will receive an email with further instructions.",
"text3": "To proceed, please press the button below. You will receive an email with further instructions.",
"confirm": "Delete my account",
"requestSuccess": "The request was successful. You'll receive an email with further instructions.",
"passwordRequired": "Please enter your password.",
@ -183,6 +184,7 @@
"scheduled": "We will delete your Vikunja account at {date} ({dateSince}).",
"scheduledCancel": "To cancel the deletion of your account, click here.",
"scheduledCancelText": "To cancel the deletion of your account, please enter your password below:",
"scheduledCancelButton": "To cancel the deletion of your account, please press the button below:",
"scheduledCancelConfirm": "Cancel the deletion of my account",
"scheduledCancelSuccess": "We will not delete your account."
},
@ -880,7 +882,8 @@
"description": "Toggle editing of the task description",
"delete": "Delete this task",
"priority": "Change the priority of this task",
"favorite": "Mark this task as favorite / unfavorite"
"favorite": "Mark this task as favorite / unfavorite",
"save": "Save the current task"
},
"project": {
"title": "Project Views",

View File

@ -176,6 +176,7 @@
"title": "Delete your Vikunja Account",
"text1": "The deletion of your account is permanent and cannot be undone. We will delete all your projects, tasks and everything associated with it.",
"text2": "To proceed, please enter your password. You will receive an email with further instructions.",
"text3": "To proceed, please press the button below. You will receive an email with further instructions.",
"confirm": "Delete my account",
"requestSuccess": "The request was successful. You'll receive an email with further instructions.",
"passwordRequired": "Please enter your password.",
@ -183,6 +184,7 @@
"scheduled": "We will delete your Vikunja account at {date} ({dateSince}).",
"scheduledCancel": "To cancel the deletion of your account, click here.",
"scheduledCancelText": "To cancel the deletion of your account, please enter your password below:",
"scheduledCancelButton": "To cancel the deletion of your account, please press the button below:",
"scheduledCancelConfirm": "Cancel the deletion of my account",
"scheduledCancelSuccess": "We will not delete your account."
},
@ -880,7 +882,8 @@
"description": "Toggle editing of the task description",
"delete": "Delete this task",
"priority": "Change the priority of this task",
"favorite": "Mark this task as favorite / unfavorite"
"favorite": "Mark this task as favorite / unfavorite",
"save": "Save the current task"
},
"project": {
"title": "Project Views",

View File

@ -176,6 +176,7 @@
"title": "Delete your Vikunja Account",
"text1": "The deletion of your account is permanent and cannot be undone. We will delete all your projects, tasks and everything associated with it.",
"text2": "To proceed, please enter your password. You will receive an email with further instructions.",
"text3": "För att fortsätta, tryck på knappen nedan. Du kommer att få ett e-postmeddelande med ytterligare instruktioner.",
"confirm": "Radera mitt konto",
"requestSuccess": "The request was successful. You'll receive an email with further instructions.",
"passwordRequired": "Vänligen ange ditt lösenord.",
@ -183,6 +184,7 @@
"scheduled": "We will delete your Vikunja account at {date} ({dateSince}).",
"scheduledCancel": "To cancel the deletion of your account, click here.",
"scheduledCancelText": "To cancel the deletion of your account, please enter your password below:",
"scheduledCancelButton": "To cancel the deletion of your account, please press the button below:",
"scheduledCancelConfirm": "Cancel the deletion of my account",
"scheduledCancelSuccess": "Vi kommer inte radera ditt konto."
},
@ -880,7 +882,8 @@
"description": "Toggle editing of the task description",
"delete": "Radera denna uppgift",
"priority": "Change the priority of this task",
"favorite": "Mark this task as favorite / unfavorite"
"favorite": "Mark this task as favorite / unfavorite",
"save": "Save the current task"
},
"project": {
"title": "Project Views",

View File

@ -176,6 +176,7 @@
"title": "Delete your Vikunja Account",
"text1": "The deletion of your account is permanent and cannot be undone. We will delete all your projects, tasks and everything associated with it.",
"text2": "To proceed, please enter your password. You will receive an email with further instructions.",
"text3": "To proceed, please press the button below. You will receive an email with further instructions.",
"confirm": "Delete my account",
"requestSuccess": "The request was successful. You'll receive an email with further instructions.",
"passwordRequired": "Please enter your password.",
@ -183,6 +184,7 @@
"scheduled": "We will delete your Vikunja account at {date} ({dateSince}).",
"scheduledCancel": "To cancel the deletion of your account, click here.",
"scheduledCancelText": "To cancel the deletion of your account, please enter your password below:",
"scheduledCancelButton": "To cancel the deletion of your account, please press the button below:",
"scheduledCancelConfirm": "Cancel the deletion of my account",
"scheduledCancelSuccess": "We will not delete your account."
},
@ -880,7 +882,8 @@
"description": "Toggle editing of the task description",
"delete": "Delete this task",
"priority": "Change the priority of this task",
"favorite": "Mark this task as favorite / unfavorite"
"favorite": "Mark this task as favorite / unfavorite",
"save": "Save the current task"
},
"project": {
"title": "Project Views",

View File

@ -176,6 +176,7 @@
"title": "Xóa tài khoản của bạn",
"text1": "The deletion of your account is permanent and cannot be undone. We will delete all your projects, tasks and everything associated with it.",
"text2": "Để tiếp tục, vui lòng nhập mật khẩu của bạn. Bạn sẽ nhận được một email hướng dẫn thêm.",
"text3": "To proceed, please press the button below. You will receive an email with further instructions.",
"confirm": "Xóa tài khoản của tôi",
"requestSuccess": "Yêu cầu đã thành công. Bạn sẽ nhận được một email hướng dẫn thêm.",
"passwordRequired": "Vui lòng nhập mật khẩu.",
@ -183,6 +184,7 @@
"scheduled": "Chúng tôi sẽ xóa tài khoản của bạn vào {date} ({dateSince}).",
"scheduledCancel": "Để hủy việc xóa tài khoản của bạn, hãy nhấp vào đây.",
"scheduledCancelText": "Để hủy việc xóa tài khoản, vui lòng nhập mật khẩu của bạn vào ô bên dưới:",
"scheduledCancelButton": "To cancel the deletion of your account, please press the button below:",
"scheduledCancelConfirm": "Hủy lệnh xóa tài khoản",
"scheduledCancelSuccess": "Chúng tôi sẽ không xóa tài khoản của bạn nữa."
},
@ -880,7 +882,8 @@
"description": "Toggle editing of the task description",
"delete": "Delete this task",
"priority": "Change the priority of this task",
"favorite": "Mark this task as favorite / unfavorite"
"favorite": "Mark this task as favorite / unfavorite",
"save": "Save the current task"
},
"project": {
"title": "Project Views",

View File

@ -176,6 +176,7 @@
"title": "删除您的 Vikunja 帐户",
"text1": "The deletion of your account is permanent and cannot be undone. We will delete all your projects, tasks and everything associated with it.",
"text2": "若要继续,请输入您的密码。您将收到一封包含更多说明的电子邮件。",
"text3": "To proceed, please press the button below. You will receive an email with further instructions.",
"confirm": "删除我的帐户",
"requestSuccess": "请求成功。您将收到一封包含更多说明的电子邮件。",
"passwordRequired": "请输入密码",
@ -183,6 +184,7 @@
"scheduled": "您的 Vikunja帐户将于 {date} ({dateSince}) 完成注销删除。",
"scheduledCancel": "要取消您的帐户删除操作,请单击此处。",
"scheduledCancelText": "若要取消您的帐户删除操作,请在下面输入您的密码:",
"scheduledCancelButton": "To cancel the deletion of your account, please press the button below:",
"scheduledCancelConfirm": "取消删除我的帐户",
"scheduledCancelSuccess": "账户删除操作已撤销"
},
@ -207,7 +209,7 @@
"searchSelect": "Click or press enter to select this project",
"shared": "Shared Projects",
"noDescriptionAvailable": "No project description is available.",
"inboxTitle": "Inbox",
"inboxTitle": "收件箱",
"create": {
"header": "New project",
"titlePlaceholder": "The project's title goes here…",
@ -306,15 +308,15 @@
}
},
"list": {
"title": "List",
"add": "Add",
"title": "清单",
"add": "添加",
"addPlaceholder": "Add a new task…",
"empty": "This project is currently empty.",
"newTaskCta": "Create a new task.",
"editTask": "Edit Task"
},
"gantt": {
"title": "Gantt",
"title": "甘特图",
"showTasksWithoutDates": "Show tasks which don't have dates set",
"size": "Size",
"default": "Default",
@ -325,11 +327,11 @@
"noDates": "This task has no dates set."
},
"table": {
"title": "Table",
"columns": "Columns"
"title": "列表",
"columns": "详细信息"
},
"kanban": {
"title": "Kanban",
"title": "看板",
"limit": "Limit: {limit}",
"noLimit": "Not Set",
"doneBucket": "Done bucket",
@ -880,7 +882,8 @@
"description": "切换编辑时的任务描述",
"delete": "Delete this task",
"priority": "Change the priority of this task",
"favorite": "Mark this task as favorite / unfavorite"
"favorite": "Mark this task as favorite / unfavorite",
"save": "Save the current task"
},
"project": {
"title": "Project Views",
@ -947,7 +950,7 @@
"createProject": "Create a project",
"cmds": {
"newTask": "新建任务",
"newProject": "New project",
"newProject": "新建项目",
"newTeam": "新建团队"
}
},

View File

@ -176,6 +176,7 @@
"title": "Delete your Vikunja Account",
"text1": "The deletion of your account is permanent and cannot be undone. We will delete all your projects, tasks and everything associated with it.",
"text2": "To proceed, please enter your password. You will receive an email with further instructions.",
"text3": "To proceed, please press the button below. You will receive an email with further instructions.",
"confirm": "Delete my account",
"requestSuccess": "The request was successful. You'll receive an email with further instructions.",
"passwordRequired": "Please enter your password.",
@ -183,6 +184,7 @@
"scheduled": "We will delete your Vikunja account at {date} ({dateSince}).",
"scheduledCancel": "To cancel the deletion of your account, click here.",
"scheduledCancelText": "To cancel the deletion of your account, please enter your password below:",
"scheduledCancelButton": "To cancel the deletion of your account, please press the button below:",
"scheduledCancelConfirm": "Cancel the deletion of my account",
"scheduledCancelSuccess": "We will not delete your account."
},
@ -880,7 +882,8 @@
"description": "Toggle editing of the task description",
"delete": "Delete this task",
"priority": "Change the priority of this task",
"favorite": "Mark this task as favorite / unfavorite"
"favorite": "Mark this task as favorite / unfavorite",
"save": "Save the current task"
},
"project": {
"title": "Project Views",

View File

@ -458,11 +458,12 @@
</template>
<script lang="ts" setup>
import {ref, reactive, toRef, shallowReactive, computed, watch, nextTick} from 'vue'
import {ref, reactive, toRef, shallowReactive, computed, watch, nextTick, onMounted, onBeforeUnmount} from 'vue'
import {useRouter, type RouteLocation} from 'vue-router'
import {useI18n} from 'vue-i18n'
import {unrefElement} from '@vueuse/core'
import {klona} from 'klona/lite'
import {eventToHotkeyString} from '@github/hotkey'
import TaskService from '@/services/task'
import TaskModel, {TASK_DEFAULT_COLOR} from '@/models/task'
@ -533,6 +534,24 @@ const kanbanStore = useKanbanStore()
const task = ref<ITask>(new TaskModel())
useTitle(toRef(task.value, 'title'))
// See https://github.com/github/hotkey/discussions/85#discussioncomment-5214660
function saveTaskViaHotkey(event) {
const hotkeyString = eventToHotkeyString(event)
if (!hotkeyString) return
if (hotkeyString !== 'Control+s' && hotkeyString !== 'Meta+s') return
event.preventDefault()
saveTask()
}
onMounted(() => {
document.addEventListener('keydown', saveTaskViaHotkey)
})
onBeforeUnmount(() => {
document.removeEventListener('keydown', saveTaskViaHotkey)
})
// We doubled the task color property here because verte does not have a real change property, leading
// to the color property change being triggered when the # is removed from it, leading to an update,
// which leads in turn to a change... This creates an infinite loop in which the task is updated, changed,

View File

@ -10,29 +10,34 @@
})
}}
</p>
<p>
{{ $t('user.deletion.scheduledCancelText') }}
</p>
<div class="field">
<label class="label" for="currentPasswordAccountDelete">
{{ $t('user.settings.currentPassword') }}
</label>
<div class="control">
<input
class="input"
:class="{'is-danger': errPasswordRequired}"
id="currentPasswordAccountDelete"
:placeholder="$t('user.settings.currentPasswordPlaceholder')"
type="password"
v-model="password"
@keyup="() => errPasswordRequired = password === ''"
ref="passwordInput"
/>
</div>
<p class="help is-danger" v-if="errPasswordRequired">
{{ $t('user.deletion.passwordRequired') }}
<template v-if="isLocalUser">
<p>
{{ $t('user.deletion.scheduledCancelText') }}
</p>
</div>
<div class="field">
<label class="label" for="currentPasswordAccountDelete">
{{ $t('user.settings.currentPassword') }}
</label>
<div class="control">
<input
class="input"
:class="{'is-danger': errPasswordRequired}"
id="currentPasswordAccountDelete"
:placeholder="$t('user.settings.currentPasswordPlaceholder')"
type="password"
v-model="password"
@keyup="() => errPasswordRequired = password === ''"
ref="passwordInput"
/>
</div>
<p class="help is-danger" v-if="errPasswordRequired">
{{ $t('user.deletion.passwordRequired') }}
</p>
</div>
</template>
<p v-else>
{{ $t('user.deletion.scheduledCancelButton') }}
</p>
</form>
<x-button
@ -43,10 +48,10 @@
</x-button>
</template>
<template v-else>
<form @submit.prevent="deleteAccount()">
<p>
{{ $t('user.deletion.text1') }}
</p>
<p>
{{ $t('user.deletion.text1') }}
</p>
<form @submit.prevent="deleteAccount()" v-if="isLocalUser">
<p>
{{ $t('user.deletion.text2') }}
</p>
@ -71,6 +76,9 @@
</p>
</div>
</form>
<p v-else>
{{ $t('user.deletion.text3') }}
</p>
<x-button
:loading="accountDeleteService.loading"
@ -83,7 +91,7 @@
</template>
<script lang="ts">
export default { name: 'user-settings-deletion' }
export default {name: 'user-settings-deletion'}
</script>
<script setup lang="ts">
@ -111,9 +119,12 @@ const configStore = useConfigStore()
const userDeletionEnabled = computed(() => configStore.userDeletionEnabled)
const deletionScheduledAt = computed(() => parseDateOrNull(authStore.info?.deletionScheduledAt))
const isLocalUser = computed(() => authStore.info?.isLocalUser)
const passwordInput = ref()
async function deleteAccount() {
if (password.value === '') {
if (isLocalUser.value && password.value === '') {
errPasswordRequired.value = true
passwordInput.value.focus()
return
@ -125,7 +136,7 @@ async function deleteAccount() {
}
async function cancelDeletion() {
if (password.value === '') {
if (isLocalUser.value && password.value === '') {
errPasswordRequired.value = true
passwordInput.value.focus()
return